From 70f8f924a0bcfd544f29c078287baecd81a5a6b2 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 3 Jul 2026 00:12:40 +0100 Subject: [PATCH 001/260] Create comment statement node --- .../fortran/ast/nodes/stmt/CommentStmt.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommentStmt.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommentStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommentStmt.java new file mode 100644 index 00000000..96163e15 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommentStmt.java @@ -0,0 +1,25 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class CommentStmt extends Stmt { + public static final DataKey CONTENT = KeyFactory.string("content"); + + public CommentStmt(DataStore data, Collection children) { + super(data, children); + } + + public String getContent() { + return get(CONTENT); + } + + @Override + public String getCode() { + return getContent(); + } +} From ee14a4ca840ba353d9ba91eb4dcd7efeceadd5ad Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 3 Jul 2026 00:33:30 +0100 Subject: [PATCH 002/260] Create stub for JSON comment processing --- .../fortran/parser/FortranJsonParser.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java index d319c4d4..bf670203 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java @@ -58,6 +58,9 @@ private FortranJsonResult parsePrivate(Reader input) { case "nodes": parseNodes(reader); break; + case "comments": + parseComments(reader); + break; case "enums": parseEnums(reader); break; @@ -140,6 +143,23 @@ private void processNodeData(Map nodeData) { attributes.put(id, nodeData); } + private void parseComments(JsonReader reader) { + try { + reader.beginArray(); + while (reader.hasNext()) { + var commentData = nextObject(reader); + processCommentData(commentData); + } + reader.endArray(); + } catch (IOException e) { + throw new RuntimeException("Problem while parsing Fortran json", e); + } + } + + private void processCommentData(Map commentData) { + + } + /** * Kind is encoded in the id. * From 97e9a57f98731b2dffc7e40191e98f6396458f4b Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 4 Jul 2026 00:19:47 +0100 Subject: [PATCH 003/260] Refactor execution statement output logic --- .../fortran/ast/nodes/decl/LabelDecl.java | 6 ++++++ .../ast/nodes/omp/OmpBlockConstruct.java | 2 +- .../ast/nodes/omp/OmpLoopConstruct.java | 2 +- .../fortran/ast/nodes/program/Execution.java | 18 ----------------- .../fortran/ast/nodes/stmt/AllocateStmt.java | 2 +- .../ast/nodes/stmt/AssignmentStmt.java | 2 +- .../fortran/ast/nodes/stmt/CallStmt.java | 2 +- .../ast/nodes/stmt/CompilerDirective.java | 2 +- .../fortran/ast/nodes/stmt/ContinueStmt.java | 2 +- .../ast/nodes/stmt/DeallocateStmt.java | 2 +- .../specs/fortran/ast/nodes/stmt/DoStmt.java | 2 +- .../ast/nodes/stmt/ExecutableStmt.java | 12 +++++++++++ .../fortran/ast/nodes/stmt/GotoStmt.java | 2 +- .../ast/nodes/stmt/LiteralExecutionStmt.java | 2 +- .../fortran/ast/nodes/stmt/PrintStmt.java | 2 +- .../fortran/ast/nodes/stmt/StopStmt.java | 2 +- .../fortran/ast/nodes/stmt/WriteStmt.java | 2 +- .../ast/nodes/stmt/ifstmt/IfConstruct.java | 2 +- .../fortran/ast/nodes/stmt/ifstmt/IfStmt.java | 2 +- .../nodes/stmt/selectcase/CaseConstruct.java | 2 +- .../fortran/parser/FortranJsonParser.java | 20 ++++++++++++++++--- .../fortran/parser/processors/Nodes.java | 1 + .../parser/processors/UtilsProcessors.java | 9 +++++++++ 23 files changed, 62 insertions(+), 38 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/LabelDecl.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/LabelDecl.java index 3e0ad5cd..79b902e3 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/LabelDecl.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/LabelDecl.java @@ -10,6 +10,7 @@ /** * Represents the declaration of a label, that appears before a statement. */ +// TODO(Process-ing): Replace this label for a standard label in ExecutableStmt public class LabelDecl extends FortranDecl { // DATAKEYS BEGIN @@ -24,4 +25,9 @@ public class LabelDecl extends FortranDecl { public LabelDecl(DataStore data, Collection children) { super(data, children); } + + @Override + public String getCode() { + return get(LABEL).toString(); + } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpBlockConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpBlockConstruct.java index 9f5268d0..054fece5 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpBlockConstruct.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpBlockConstruct.java @@ -25,7 +25,7 @@ public Execution setBody(Execution body) { } @Override - public String getCode() { + public String getStmtCode() { var code = new StringBuilder(); String directive = get(KINDS).stream() .map(OmpDirectiveKind::getString) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpLoopConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpLoopConstruct.java index 6e6fe8e3..cdc5aa6f 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpLoopConstruct.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpLoopConstruct.java @@ -43,7 +43,7 @@ public boolean hasNowait() { } @Override - public String getCode() { + public String getStmtCode() { var code = new StringBuilder(); String directive = get(KINDS).stream() .map(OmpDirectiveKind::getString) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Execution.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Execution.java index 5e6877c1..1820c771 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Execution.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Execution.java @@ -21,22 +21,4 @@ public class Execution extends StmtBlock { public Execution(DataStore data, Collection children) { super(data, children); } - - public List getExecutableStatements() { - return getChildren(ExecutableStmt.class); - } - - - @Override - public String getCode() { - var code = new StringBuilder(); - for (var stmt : getExecutableStatements()) { - - //System.out.println("LABEL: " + stmt.getLabel()); - stmt.getLabel().ifPresent(label -> code.append(label.get(LabelDecl.LABEL) + " ")); - - code.append(stmt.getCode()).append(ln()); - } - return code.toString(); - } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AllocateStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AllocateStmt.java index 79b44279..7e4015fe 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AllocateStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AllocateStmt.java @@ -24,7 +24,7 @@ public List getOptions() { } @Override - public String getCode() { + public String getStmtCode() { StringBuilder code = new StringBuilder(); code.append("allocate("); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AssignmentStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AssignmentStmt.java index c3d4f052..c98c636a 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AssignmentStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AssignmentStmt.java @@ -21,7 +21,7 @@ public Expr getExpression() { } @Override - public String getCode() { + public String getStmtCode() { // a = 1; var code = new StringBuilder(); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CallStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CallStmt.java index 03effce0..cc9db75e 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CallStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CallStmt.java @@ -17,7 +17,7 @@ public Call getCall() { } @Override - public String getCode() { + public String getStmtCode() { return keyword(FortranKeyword.CALL) + " " + getCall().getCode(); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CompilerDirective.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CompilerDirective.java index 6dacd1bb..ecbe363a 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CompilerDirective.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CompilerDirective.java @@ -19,7 +19,7 @@ public List getPairs() { } @Override - public String getCode() { + public String getStmtCode() { return "!DIR$ " + getPairs().stream() .map(NameValue::getCode) .collect(Collectors.joining(" ")); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ContinueStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ContinueStmt.java index adef54cc..acc7b07b 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ContinueStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ContinueStmt.java @@ -11,7 +11,7 @@ public ContinueStmt(DataStore data, Collection children) } @Override - public String getCode() { + public String getStmtCode() { return "continue"; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DeallocateStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DeallocateStmt.java index 063e480e..e88dc15f 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DeallocateStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DeallocateStmt.java @@ -18,7 +18,7 @@ public List getRefs() { } @Override - public String getCode() { + public String getStmtCode() { StringBuilder code = new StringBuilder(); code.append("deallocate("); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DoStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DoStmt.java index 92e6ce53..ee947483 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DoStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DoStmt.java @@ -47,7 +47,7 @@ private String getControlCode() { } @Override - public String getCode() { + public String getStmtCode() { var code = new StringBuilder(); Optional name = getName(); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExecutableStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExecutableStmt.java index b703bed4..342b6080 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExecutableStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExecutableStmt.java @@ -6,6 +6,7 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.decl.LabelDecl; import pt.up.fe.specs.util.SpecsCollections; +import pt.up.fe.specs.util.utilities.PrintOnce; import java.util.Collection; import java.util.Optional; @@ -33,4 +34,15 @@ public Optional getLabel() { var labelDecls = getChildrenOf(LabelDecl.class); return SpecsCollections.toOptional(labelDecls); } + + public String getStmtCode() { + PrintOnce.info("getStmtCode() not implemented for nodes of type " + getClass()); + return "\n/*<.getStmtCode() not implemented for node " + this.getClass() + ">*/"; + } + + @Override + public final String getCode() { + var labelPrefix = getLabel().map(label -> label.getCode() + " ").orElse(""); + return labelPrefix + getStmtCode(); + } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/GotoStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/GotoStmt.java index 77bd5d7e..e4e761ad 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/GotoStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/GotoStmt.java @@ -20,7 +20,7 @@ public int getGotoLabel() { } @Override - public String getCode() { + public String getStmtCode() { var label = getGotoLabel(); return keyword(FortranKeyword.GO) + " " + keyword(FortranKeyword.TO) + " " + label; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/LiteralExecutionStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/LiteralExecutionStmt.java index a0bb0a16..cbd9fd39 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/LiteralExecutionStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/LiteralExecutionStmt.java @@ -13,7 +13,7 @@ public LiteralExecutionStmt(DataStore data, Collection ch } @Override - public String getCode() { + public String getStmtCode() { return getLiteralCode(); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/PrintStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/PrintStmt.java index 1077b72e..d0adaafa 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/PrintStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/PrintStmt.java @@ -30,7 +30,7 @@ public List getOutputItems() { } @Override - public String getCode() { + public String getStmtCode() { var code = new StringBuilder(); code.append(keyword(FortranKeyword.PRINT)); code.append(" ").append(getFormat().getCode()); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/StopStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/StopStmt.java index daa47515..85370e23 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/StopStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/StopStmt.java @@ -39,7 +39,7 @@ public Optional getQuiet() { } @Override - public String getCode() { + public String getStmtCode() { var errorStop = isErrorStop(); var stopCodeOpt = getStopCode(); var quietOpt = getQuiet(); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/WriteStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/WriteStmt.java index 86b74d4c..13b3390a 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/WriteStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/WriteStmt.java @@ -36,7 +36,7 @@ public List getOutputItems() { } @Override - public String getCode() { + public String getStmtCode() { StringBuilder code = new StringBuilder(); code.append(FortranKeyword.WRITE).append("("); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfConstruct.java index a82d2c0e..b4d700e5 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfConstruct.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfConstruct.java @@ -41,7 +41,7 @@ public EndIfStmt getEndIfStmt() { } @Override - public String getCode() { + public String getStmtCode() { var ifThenBlock = getIfThenBlock(); var elseIfBlocks = getElseIfBlocks(); var elseBlock = getElseBlock(); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfStmt.java index 0a298bb0..485c0e8e 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfStmt.java @@ -22,7 +22,7 @@ public ActionStmt getThenAction() { } @Override - public String getCode() { + public String getStmtCode() { var condition = getCondition(); var thenAction = getThenAction(); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/CaseConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/CaseConstruct.java index e9656f10..868ada9c 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/CaseConstruct.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/CaseConstruct.java @@ -34,7 +34,7 @@ public EndSelectStmt getEndSelectStmt() { } @Override - public String getCode() { + public String getStmtCode() { var selectCaseStmt = getSelectCaseStmt(); var caseBlocks = getCaseBlocks(); var endSelectStmt = getEndSelectStmt(); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java index bf670203..0eb7bb57 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java @@ -4,6 +4,7 @@ import org.suikasoft.GsonPlus.JsonReaderParser; import pt.up.fe.specs.fortran.ast.FortranContext; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.CommentStmt; import pt.up.fe.specs.util.SpecsCheck; import pt.up.fe.specs.util.SpecsLogs; @@ -146,9 +147,9 @@ private void processNodeData(Map nodeData) { private void parseComments(JsonReader reader) { try { reader.beginArray(); - while (reader.hasNext()) { + for (int index = 0; reader.hasNext(); index++) { var commentData = nextObject(reader); - processCommentData(commentData); + processCommentData(commentData, index); } reader.endArray(); } catch (IOException e) { @@ -156,8 +157,21 @@ private void parseComments(JsonReader reader) { } } - private void processCommentData(Map commentData) { + private void processCommentData(Map commentData, int index) { + var id = "0x" + index + "-CommentStmt"; + ids.add(id); + + var commentNode = context.get(FortranContext.FACTORY).newNode(CommentStmt.class, Collections.emptyList(), id); + fortranNodes.put(id, commentNode); + + var content = commentData.get("text"); + var stmtId = commentData.get("stmtId").toString(); + attributes.put(id, Map.of("content", content, "stmtId", stmtId)); + var stmtAttrs = attributes.get(stmtId); + stmtAttrs.putIfAbsent("comments", new ArrayList<>()); + var commentsList = (List) stmtAttrs.get("comments"); + commentsList.add(id); } /** diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 1a7b053b..9e61534b 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -152,6 +152,7 @@ public Nodes(FortranJsonResult data) { processors.put(NameValue.class, u::nameValue); processors.put(IoUnit.class, u::ioUnit); processors.put(IoControlSpec.class, u::ioControlSpec); + processors.put(CommentStmt.class, u::commentStmt); var l = new LoopProcessors(data); processors.put(RangeLoopControl.class, l::loopRange); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java index 90359393..4a9b6299 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java @@ -1,5 +1,6 @@ package pt.up.fe.specs.fortran.parser.processors; +import pt.up.fe.specs.fortran.ast.nodes.stmt.CommentStmt; import pt.up.fe.specs.fortran.ast.nodes.utils.*; import pt.up.fe.specs.fortran.ast.nodes.utils.enums.IoControlSpecKind; import pt.up.fe.specs.fortran.parser.FlangName; @@ -53,4 +54,12 @@ public void ioControlSpec(IoControlSpec ioControlSpec) { ioControlSpec.addChild(getChild(attributes().get(childId).getString(FlangName.EXPR))); } + + public void commentStmt(CommentStmt commentStmt) { + var content = attributes().getString(commentStmt, "content"); + commentStmt.set(CommentStmt.CONTENT, content); + + var stmtId = attributes().getString(commentStmt, "stmtId"); + var stmtNode = getChild(stmtId); + } } From 9d923a106b2248ebd55e9b0adc094a4cb16f1ce4 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 4 Jul 2026 00:21:28 +0100 Subject: [PATCH 004/260] Update first test --- FortranParser/resources-test/fortran/parser/hello.expected.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FortranParser/resources-test/fortran/parser/hello.expected.f90 b/FortranParser/resources-test/fortran/parser/hello.expected.f90 index 22033216..0ddf7293 100644 --- a/FortranParser/resources-test/fortran/parser/hello.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/hello.expected.f90 @@ -2,6 +2,6 @@ PROGRAM HELLO PRINT *, "Hello, World!" PRINT 100, "Hello, World!", 2 100 - /*<.getCode() not implemented for node class pt.up.fe.specs.fortran.ast.nodes.stmt.FormatStmt>*/ + /*<.getStmtCode() not implemented for node class pt.up.fe.specs.fortran.ast.nodes.stmt.FormatStmt>*/ 20 PRINT "(A, F6.3)", "Value = ", 3 END PROGRAM HELLO \ No newline at end of file From 3692991d083d198aa69e552e40803f48d2b049f1 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 6 Jul 2026 15:47:22 +0100 Subject: [PATCH 005/260] Refactor statements again and try to process comments --- .../fortran/ast/nodes/stmt/CommentStmt.java | 2 +- .../fortran/ast/nodes/stmt/CommonStmt.java | 2 +- .../fortran/ast/nodes/stmt/ContainsStmt.java | 4 ++-- .../ast/nodes/stmt/ExecutableStmt.java | 16 --------------- .../fortran/ast/nodes/stmt/ParameterStmt.java | 2 +- .../fe/specs/fortran/ast/nodes/stmt/Stmt.java | 20 +++++++++++++++++++ .../ast/nodes/stmt/TypeDeclarationStmt.java | 2 +- .../specs/fortran/ast/nodes/stmt/UseStmt.java | 4 ++-- .../ast/nodes/stmt/datastmt/DataStmt.java | 2 +- .../ast/nodes/stmt/ifstmt/ElseBlock.java | 5 +++-- .../ast/nodes/stmt/ifstmt/ElseIfBlock.java | 5 +++-- .../ast/nodes/stmt/ifstmt/ElseIfStmt.java | 5 +++-- .../ast/nodes/stmt/ifstmt/ElseStmt.java | 5 +++-- .../ast/nodes/stmt/ifstmt/EndIfStmt.java | 5 +++-- .../stmt/selectcase/DefaultCaseStmt.java | 2 +- .../nodes/stmt/selectcase/EndSelectStmt.java | 2 +- .../nodes/stmt/selectcase/SelectCaseStmt.java | 2 +- .../nodes/stmt/selectcase/ValueCaseStmt.java | 2 +- .../parser/processors/UtilsProcessors.java | 10 ++++++++++ 19 files changed, 58 insertions(+), 39 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommentStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommentStmt.java index 96163e15..89fce7ea 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommentStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommentStmt.java @@ -19,7 +19,7 @@ public String getContent() { } @Override - public String getCode() { + public String getStmtCode() { return getContent(); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonStmt.java index 6d7da00d..34f355c9 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonStmt.java @@ -18,7 +18,7 @@ public List getBlocks() { } @Override - public String getCode() { + public String getStmtCode() { var blocks = getBlocks(); var blocksCode = blocks.stream() .map(CommonBlock::getCode) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ContainsStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ContainsStmt.java index 879cc94c..711107d0 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ContainsStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ContainsStmt.java @@ -5,13 +5,13 @@ import java.util.Collection; -public class ContainsStmt extends Stmt { +public class ContainsStmt extends ExecutableStmt { public ContainsStmt(DataStore data, Collection children) { super(data, children); } @Override - public String getCode() { + public String getStmtCode() { return "contains"; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExecutableStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExecutableStmt.java index 342b6080..8a051a9f 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExecutableStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExecutableStmt.java @@ -29,20 +29,4 @@ public abstract class ExecutableStmt extends Stmt { public ExecutableStmt(DataStore data, Collection children) { super(data, children); } - - public Optional getLabel() { - var labelDecls = getChildrenOf(LabelDecl.class); - return SpecsCollections.toOptional(labelDecls); - } - - public String getStmtCode() { - PrintOnce.info("getStmtCode() not implemented for nodes of type " + getClass()); - return "\n/*<.getStmtCode() not implemented for node " + this.getClass() + ">*/"; - } - - @Override - public final String getCode() { - var labelPrefix = getLabel().map(label -> label.getCode() + " ").orElse(""); - return labelPrefix + getStmtCode(); - } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ParameterStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ParameterStmt.java index ad872ecc..fd7188aa 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ParameterStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ParameterStmt.java @@ -19,7 +19,7 @@ public List getDefs() { } @Override - public String getCode() { + public String getStmtCode() { var defsCode = getDefs().stream() .map(NamedConstantDef::getCode) .collect(Collectors.joining(", ")); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java index 11f27d51..cfb69e44 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java @@ -2,12 +2,32 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.decl.LabelDecl; +import pt.up.fe.specs.util.SpecsCollections; +import pt.up.fe.specs.util.utilities.PrintOnce; import java.util.Collection; +import java.util.Optional; public abstract class Stmt extends FortranNode { public Stmt(DataStore data, Collection children) { super(data, children); } + + public Optional getLabel() { + var labelDecls = getChildrenOf(LabelDecl.class); + return SpecsCollections.toOptional(labelDecls); + } + + public String getStmtCode() { + PrintOnce.info("getStmtCode() not implemented for nodes of type " + getClass()); + return "\n/*<.getStmtCode() not implemented for node " + this.getClass() + ">*/"; + } + + @Override + public final String getCode() { + var labelPrefix = getLabel().map(label -> label.getCode() + " ").orElse(""); + return labelPrefix + getStmtCode(); + } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java index 6466490c..9c37931c 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java @@ -30,7 +30,7 @@ public List getAttributes() { } @Override - public String getCode() { + public String getStmtCode() { // integer :: a, b = 1; var code = new StringBuilder(); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/UseStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/UseStmt.java index 947b298c..79e0e991 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/UseStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/UseStmt.java @@ -21,7 +21,7 @@ public String getName() { } @Override - public String getCode() { - return FortranKeyword.USE.toString() + " " + getName(); + public String getStmtCode() { + return FortranKeyword.USE + " " + getName(); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmt.java index 55ca3bf3..ef2208de 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmt.java @@ -19,7 +19,7 @@ public List getDataSets() { } @Override - public String getCode() { + public String getStmtCode() { var dataSets = getDataSets(); var dataSetsCode = dataSets.stream() diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseBlock.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseBlock.java index d85030b1..f404de0d 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseBlock.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseBlock.java @@ -3,10 +3,11 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.program.StmtBlock; +import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; import java.util.Collection; -public class ElseBlock extends FortranNode { +public class ElseBlock extends Stmt { public ElseBlock(DataStore data, Collection children) { super(data, children); } @@ -20,7 +21,7 @@ public StmtBlock getBlock() { } @Override - public String getCode() { + public String getStmtCode() { var elseStmt = getElseStmt(); var block = getBlock(); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseIfBlock.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseIfBlock.java index a6a1c38b..9b78affd 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseIfBlock.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseIfBlock.java @@ -5,10 +5,11 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; import pt.up.fe.specs.fortran.ast.nodes.program.StmtBlock; +import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; import java.util.Collection; -public class ElseIfBlock extends FortranNode { +public class ElseIfBlock extends Stmt { public ElseIfBlock(DataStore data, Collection children) { super(data, children); } @@ -22,7 +23,7 @@ public StmtBlock getBlock() { } @Override - public String getCode() { + public String getStmtCode() { var elseIfStmt = getElseIfStmt(); var block = getBlock(); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseIfStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseIfStmt.java index 29ecf514..04353499 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseIfStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseIfStmt.java @@ -4,13 +4,14 @@ import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; +import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; import java.util.Collection; /** * R1136 else-if-stmt */ -public class ElseIfStmt extends FortranNode { +public class ElseIfStmt extends Stmt { public ElseIfStmt(DataStore data, Collection children) { super(data, children); } @@ -19,7 +20,7 @@ public Expr getCondition() { return getChild(Expr.class, 0); } - public String getCode() { + public String getStmtCode() { var condition = getCondition(); var nameOpt = ((IfConstruct) getParent().getParent()).getName(); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseStmt.java index 3159b0d0..8cd2c24e 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseStmt.java @@ -3,18 +3,19 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; import java.util.Collection; /** * R1137 else-stmt */ -public class ElseStmt extends FortranNode { +public class ElseStmt extends Stmt { public ElseStmt(DataStore data, Collection children) { super(data, children); } - public String getCode() { + public String getStmtCode() { var nameOpt = ((IfConstruct) getParent().getParent()).getName(); var code = new StringBuilder(); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/EndIfStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/EndIfStmt.java index 68fc8787..5f9636fc 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/EndIfStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/EndIfStmt.java @@ -3,19 +3,20 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; import java.util.Collection; /** * R1138 end-if-stmt */ -public class EndIfStmt extends FortranNode { +public class EndIfStmt extends Stmt { public EndIfStmt(DataStore data, Collection children) { super(data, children); } @Override - public String getCode() { + public String getStmtCode() { var nameOpt = ((IfConstruct) getParent()).getName(); var code = new StringBuilder(); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/DefaultCaseStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/DefaultCaseStmt.java index 8f7d72ea..76ae2089 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/DefaultCaseStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/DefaultCaseStmt.java @@ -12,7 +12,7 @@ public DefaultCaseStmt(DataStore data, Collection childre } @Override - public String getCode() { + public String getStmtCode() { var nameOpt = getAncestor(CaseConstruct.class).getName(); var code = new StringBuilder(); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/EndSelectStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/EndSelectStmt.java index ec9a8444..e027cd38 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/EndSelectStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/EndSelectStmt.java @@ -13,7 +13,7 @@ public EndSelectStmt(DataStore data, Collection children) } @Override - public String getCode() { + public String getStmtCode() { var nameOpt = getAncestor(CaseConstruct.class).getName(); var code = new StringBuilder(); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/SelectCaseStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/SelectCaseStmt.java index cec28846..2abcf89b 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/SelectCaseStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/SelectCaseStmt.java @@ -18,7 +18,7 @@ public Expr getExpr() { } @Override - public String getCode() { + public String getStmtCode() { var nameOpt = getAncestor(CaseConstruct.class).getName(); var expr = getExpr(); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/ValueCaseStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/ValueCaseStmt.java index 142c21ec..962ce586 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/ValueCaseStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/ValueCaseStmt.java @@ -18,7 +18,7 @@ public List getCaseValueRanges() { } @Override - public String getCode() { + public String getStmtCode() { var nameOpt = getAncestor(CaseConstruct.class).getName(); var caseValueRanges = getCaseValueRanges(); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java index 4a9b6299..acb0632b 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java @@ -5,6 +5,7 @@ import pt.up.fe.specs.fortran.ast.nodes.utils.enums.IoControlSpecKind; import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; +import pt.up.fe.specs.util.utilities.PrintOnce; public class UtilsProcessors extends ANodeProcessor { @@ -61,5 +62,14 @@ public void commentStmt(CommentStmt commentStmt) { var stmtId = attributes().getString(commentStmt, "stmtId"); var stmtNode = getChild(stmtId); + var parentNode = stmtNode.getParent(); + PrintOnce.info("Statement with id '" + stmtId + "' has " + (parentNode != null ? "" : "no ") + "parent"); + assert parentNode != null; + + var numComments = (int)commentStmt.getChildren() + .stream() + .filter(child -> child instanceof CommentStmt) + .count(); + parentNode.addChild(numComments, commentStmt); } } From c948f6e9b2b16cff98b231cbb7730947f523aa96 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 6 Jul 2026 16:00:33 +0100 Subject: [PATCH 006/260] Improve AST comment representation --- .../fe/specs/fortran/ast/nodes/stmt/Stmt.java | 14 +- .../fortran/parser/hello.expected.f90 | 1 + .../resources-test/fortran/parser/hello.json | 262 +++++++++--------- .../fortran/parser/FortranAstBuilder.java | 12 +- .../parser/processors/UtilsProcessors.java | 7 +- 5 files changed, 161 insertions(+), 135 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java index cfb69e44..c92c4d4d 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java @@ -7,7 +7,9 @@ import pt.up.fe.specs.util.utilities.PrintOnce; import java.util.Collection; +import java.util.List; import java.util.Optional; +import java.util.stream.Collectors; public abstract class Stmt extends FortranNode { @@ -20,6 +22,10 @@ public Optional getLabel() { return SpecsCollections.toOptional(labelDecls); } + public List getComments() { + return getChildrenOf(CommentStmt.class); + } + public String getStmtCode() { PrintOnce.info("getStmtCode() not implemented for nodes of type " + getClass()); return "\n/*<.getStmtCode() not implemented for node " + this.getClass() + ">*/"; @@ -28,6 +34,12 @@ public String getStmtCode() { @Override public final String getCode() { var labelPrefix = getLabel().map(label -> label.getCode() + " ").orElse(""); - return labelPrefix + getStmtCode(); + + var comments = getComments(); + var commentsPrefix = comments.stream() + .map(comment -> comment.getCode() + ln()) + .collect(Collectors.joining()); + + return commentsPrefix + labelPrefix + getStmtCode(); } } diff --git a/FortranParser/resources-test/fortran/parser/hello.expected.f90 b/FortranParser/resources-test/fortran/parser/hello.expected.f90 index 0ddf7293..531ab64d 100644 --- a/FortranParser/resources-test/fortran/parser/hello.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/hello.expected.f90 @@ -1,4 +1,5 @@ PROGRAM HELLO + ! This is a comment line; it is ignored by the compiler PRINT *, "Hello, World!" PRINT 100, "Hello, World!", 2 100 diff --git a/FortranParser/resources-test/fortran/parser/hello.json b/FortranParser/resources-test/fortran/parser/hello.json index 1f320bf9..da9433bb 100644 --- a/FortranParser/resources-test/fortran/parser/hello.json +++ b/FortranParser/resources-test/fortran/parser/hello.json @@ -1,328 +1,334 @@ { "nodes": [ { - "id": "0x56012713ff00-Program", + "id": "0x55c4f2323f00-Program", "ProgramUnit": [ - "0x560127174e30-ProgramUnit" + "0x55c4f2358cb0-ProgramUnit" ] }, { - "id": "0x560127174e30-ProgramUnit", + "id": "0x55c4f2358cb0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x56012716deb0-MainProgram" + "MainProgram": "0x55c4f2351d00-MainProgram" }, { - "id": "0x56012716deb0-MainProgram", - "Statement": "0x56012716dff8-Statement", - "SpecificationPart": "0x56012716df50-SpecificationPart", - "ExecutionPart": "0x56012716df38-ExecutionPart", - "Statement": "0x56012716deb0-Statement" + "id": "0x55c4f2351d00-MainProgram", + "Statement": "0x55c4f2351e48-Statement", + "SpecificationPart": "0x55c4f2351da0-SpecificationPart", + "ExecutionPart": "0x55c4f2351d88-ExecutionPart", + "Statement": "0x55c4f2351d00-Statement" }, { - "id": "0x56012716dff8-Statement", - "statement": "0x56012716e008-ProgramStmt", + "id": "0x55c4f2351e48-Statement", + "statement": "0x55c4f2351e58-ProgramStmt", "source": "program HELLO" }, { - "id": "0x56012716e008-ProgramStmt", - "Name": "0x56012716e008-Name" + "id": "0x55c4f2351e58-ProgramStmt", + "Name": "0x55c4f2351e58-Name" }, { - "id": "0x56012716e008-Name", + "id": "0x55c4f2351e58-Name", "source": "HELLO" }, { - "id": "0x56012716df50-SpecificationPart", - "ImplicitPart": "0x56012716df68-ImplicitPart" + "id": "0x55c4f2351da0-SpecificationPart", + "ImplicitPart": "0x55c4f2351db8-ImplicitPart" }, { - "id": "0x56012716df68-ImplicitPart" + "id": "0x55c4f2351db8-ImplicitPart" }, { - "id": "0x56012716df38-ExecutionPart", + "id": "0x55c4f2351d88-ExecutionPart", "ExecutionPartConstruct": [ - "0x56012717fbc0-ExecutionPartConstruct", - "0x56012717f460-ExecutionPartConstruct", - "0x56012717f4c0-ExecutionPartConstruct", - "0x56012714d110-ExecutionPartConstruct" + "0x55c4f2363c10-ExecutionPartConstruct", + "0x55c4f2360560-ExecutionPartConstruct", + "0x55c4f2363c70-ExecutionPartConstruct", + "0x55c4f2331170-ExecutionPartConstruct" ] }, { - "id": "0x56012716df38-ExecutionPartConstruct" + "id": "0x55c4f2351d88-ExecutionPartConstruct" }, { - "id": "0x56012717fbc0-ExecutionPartConstruct", + "id": "0x55c4f2363c10-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56012717fbc0-ExecutableConstruct" + "ExecutableConstruct": "0x55c4f2363c10-ExecutableConstruct" }, { - "id": "0x56012717fbc0-ExecutableConstruct", + "id": "0x55c4f2363c10-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56012717fbc0-Statement" + "Statement": "0x55c4f2363c10-Statement" }, { - "id": "0x56012717fbc0-Statement", - "statement": "0x56012717fbd0-ActionStmt", + "id": "0x55c4f2363c10-Statement", + "statement": "0x55c4f2363c20-ActionStmt", "source": "print *, 'Hello, World!'" }, { - "id": "0x56012717fbd0-ActionStmt", + "id": "0x55c4f2363c20-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x56012717edc0-PrintStmt" + "PrintStmt": "0x55c4f22d9260-PrintStmt" }, { - "id": "0x56012717edc0-PrintStmt", - "Format": "0x56012717edd8-Format", + "id": "0x55c4f22d9260-PrintStmt", + "Format": "0x55c4f22d9278-Format", "OutputItem": [ - "0x5601270f5270-OutputItem" + "0x55c4f2364ea0-OutputItem" ] }, { - "id": "0x56012717edd8-Format", + "id": "0x55c4f22d9278-Format", "variantKey": "Star", - "Star": "0x56012717edd8-Star" + "Star": "0x55c4f22d9278-Star" }, { - "id": "0x56012717edd8-Star" + "id": "0x55c4f22d9278-Star" }, { - "id": "0x5601270f5270-OutputItem", + "id": "0x55c4f2364ea0-OutputItem", "variantKey": "Expr", - "Expr": "0x5601270f5270-Expr" + "Expr": "0x55c4f2364ea0-Expr" }, { - "id": "0x5601270f5270-Expr", + "id": "0x55c4f2364ea0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5601270f5290-LiteralConstant" + "LiteralConstant": "0x55c4f2364ec0-LiteralConstant" }, { - "id": "0x5601270f5290-LiteralConstant", + "id": "0x55c4f2364ec0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x5601270f5290-CharLiteralConstant" + "CharLiteralConstant": "0x55c4f2364ec0-CharLiteralConstant" }, { - "id": "0x5601270f5290-CharLiteralConstant", + "id": "0x55c4f2364ec0-CharLiteralConstant", "string": "Hello, World!" }, { - "id": "0x56012717f460-ExecutionPartConstruct", + "id": "0x55c4f2360560-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56012717f460-ExecutableConstruct" + "ExecutableConstruct": "0x55c4f2360560-ExecutableConstruct" }, { - "id": "0x56012717f460-ExecutableConstruct", + "id": "0x55c4f2360560-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56012717f460-Statement" + "Statement": "0x55c4f2360560-Statement" }, { - "id": "0x56012717f460-Statement", - "statement": "0x56012717f470-ActionStmt", + "id": "0x55c4f2360560-Statement", + "statement": "0x55c4f2360570-ActionStmt", "source": "print 100, 'Hello, World!', 2" }, { - "id": "0x56012717f470-ActionStmt", + "id": "0x55c4f2360570-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x56012717f350-PrintStmt" + "PrintStmt": "0x55c4f2360450-PrintStmt" }, { - "id": "0x56012717f350-PrintStmt", - "Format": "0x56012717f368-Format", + "id": "0x55c4f2360450-PrintStmt", + "Format": "0x55c4f2360468-Format", "OutputItem": [ - "0x56012717c4d0-OutputItem", - "0x56012717c3e0-OutputItem" + "0x55c4f2360370-OutputItem", + "0x55c4f2362c70-OutputItem" ] }, { - "id": "0x56012717f368-Format", + "id": "0x55c4f2360468-Format", "variantKey": "uint64_t", "uint64_t": "100" }, { - "id": "0x56012717c4d0-OutputItem", + "id": "0x55c4f2360370-OutputItem", "variantKey": "Expr", - "Expr": "0x56012717c4d0-Expr" + "Expr": "0x55c4f2360370-Expr" }, { - "id": "0x56012717c4d0-Expr", + "id": "0x55c4f2360370-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56012717c4f0-LiteralConstant" + "LiteralConstant": "0x55c4f2360390-LiteralConstant" }, { - "id": "0x56012717c4f0-LiteralConstant", + "id": "0x55c4f2360390-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56012717c4f0-CharLiteralConstant" + "CharLiteralConstant": "0x55c4f2360390-CharLiteralConstant" }, { - "id": "0x56012717c4f0-CharLiteralConstant", + "id": "0x55c4f2360390-CharLiteralConstant", "string": "Hello, World!" }, { - "id": "0x56012717c3e0-OutputItem", + "id": "0x55c4f2362c70-OutputItem", "variantKey": "Expr", - "Expr": "0x56012717c3e0-Expr" + "Expr": "0x55c4f2362c70-Expr" }, { - "id": "0x56012717c3e0-Expr", + "id": "0x55c4f2362c70-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56012717c400-LiteralConstant" + "LiteralConstant": "0x55c4f2362c90-LiteralConstant" }, { - "id": "0x56012717c400-LiteralConstant", + "id": "0x55c4f2362c90-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56012717c400-IntLiteralConstant" + "IntLiteralConstant": "0x55c4f2362c90-IntLiteralConstant" }, { - "id": "0x56012717c400-IntLiteralConstant", + "id": "0x55c4f2362c90-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x56012717f4c0-ExecutionPartConstruct", + "id": "0x55c4f2363c70-ExecutionPartConstruct", "variantKey": "Statement", - "Statement": "0x56012717f4c0-Statement" + "Statement": "0x55c4f2363c70-Statement" }, { - "id": "0x56012717f4c0-Statement", - "statement": "0x560127182500-FormatStmt", + "id": "0x55c4f2363c70-Statement", + "statement": "0x55c4f2366380-FormatStmt", "label": "100", "source": "100 format(a, i3)" }, { - "id": "0x560127182500-FormatStmt", - "FormatSpecification": "0x560127182500-FormatSpecification" + "id": "0x55c4f2366380-FormatStmt", + "FormatSpecification": "0x55c4f2366380-FormatSpecification" }, { - "id": "0x560127182500-FormatSpecification", + "id": "0x55c4f2366380-FormatSpecification", "items": [ - "0x560127180970-FormatItem", - "0x56012717fc50-FormatItem" + "0x55c4f2364810-FormatItem", + "0x55c4f2364e30-FormatItem" ], "unlimitedItems": [] }, { - "id": "0x560127180970-FormatItem", + "id": "0x55c4f2364810-FormatItem", "variantKey": "IntrinsicTypeDataEditDesc", - "IntrinsicTypeDataEditDesc": "0x560127180980-IntrinsicTypeDataEditDesc" + "IntrinsicTypeDataEditDesc": "0x55c4f2364820-IntrinsicTypeDataEditDesc" }, { - "id": "0x560127180980-IntrinsicTypeDataEditDesc", - "kind": "0x560127180980-Kind" + "id": "0x55c4f2364820-IntrinsicTypeDataEditDesc", + "kind": "0x55c4f2364820-Kind" }, { - "id": "0x560127180980-Kind" + "id": "0x55c4f2364820-Kind" }, { - "id": "0x56012717fc50-FormatItem", + "id": "0x55c4f2364e30-FormatItem", "variantKey": "IntrinsicTypeDataEditDesc", - "IntrinsicTypeDataEditDesc": "0x56012717fc60-IntrinsicTypeDataEditDesc" + "IntrinsicTypeDataEditDesc": "0x55c4f2364e40-IntrinsicTypeDataEditDesc" }, { - "id": "0x56012717fc60-IntrinsicTypeDataEditDesc", - "kind": "0x56012717fc60-Kind", + "id": "0x55c4f2364e40-IntrinsicTypeDataEditDesc", + "kind": "0x55c4f2364e40-Kind", "width": "3" }, { - "id": "0x56012717fc60-Kind" + "id": "0x55c4f2364e40-Kind" }, { - "id": "0x56012714d110-ExecutionPartConstruct", + "id": "0x55c4f2331170-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56012714d110-ExecutableConstruct" + "ExecutableConstruct": "0x55c4f2331170-ExecutableConstruct" }, { - "id": "0x56012714d110-ExecutableConstruct", + "id": "0x55c4f2331170-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56012714d110-Statement" + "Statement": "0x55c4f2331170-Statement" }, { - "id": "0x56012714d110-Statement", - "statement": "0x56012714d120-ActionStmt", + "id": "0x55c4f2331170-Statement", + "statement": "0x55c4f2331180-ActionStmt", "label": "20", "source": "20 print '(A, F6.3)', 'Value = ', 3" }, { - "id": "0x56012714d120-ActionStmt", + "id": "0x55c4f2331180-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x56012716ad80-PrintStmt" + "PrintStmt": "0x55c4f234ebd0-PrintStmt" }, { - "id": "0x56012716ad80-PrintStmt", - "Format": "0x56012716ad98-Format", + "id": "0x55c4f234ebd0-PrintStmt", + "Format": "0x55c4f234ebe8-Format", "OutputItem": [ - "0x56012716aca0-OutputItem", - "0x56012716abb0-OutputItem" + "0x55c4f234eaf0-OutputItem", + "0x55c4f234ea00-OutputItem" ] }, { - "id": "0x56012716ad98-Format", + "id": "0x55c4f234ebe8-Format", "variantKey": "Expr", - "Expr": "0x56012716ad98-Expr" + "Expr": "0x55c4f234ebe8-Expr" }, { - "id": "0x56012716ad98-Expr", + "id": "0x55c4f234ebe8-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56012716adb8-LiteralConstant" + "LiteralConstant": "0x55c4f234ec08-LiteralConstant" }, { - "id": "0x56012716adb8-LiteralConstant", + "id": "0x55c4f234ec08-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56012716adb8-CharLiteralConstant" + "CharLiteralConstant": "0x55c4f234ec08-CharLiteralConstant" }, { - "id": "0x56012716adb8-CharLiteralConstant", + "id": "0x55c4f234ec08-CharLiteralConstant", "string": "(A, F6.3)" }, { - "id": "0x56012716aca0-OutputItem", + "id": "0x55c4f234eaf0-OutputItem", "variantKey": "Expr", - "Expr": "0x56012716aca0-Expr" + "Expr": "0x55c4f234eaf0-Expr" }, { - "id": "0x56012716aca0-Expr", + "id": "0x55c4f234eaf0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56012716acc0-LiteralConstant" + "LiteralConstant": "0x55c4f234eb10-LiteralConstant" }, { - "id": "0x56012716acc0-LiteralConstant", + "id": "0x55c4f234eb10-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56012716acc0-CharLiteralConstant" + "CharLiteralConstant": "0x55c4f234eb10-CharLiteralConstant" }, { - "id": "0x56012716acc0-CharLiteralConstant", + "id": "0x55c4f234eb10-CharLiteralConstant", "string": "Value = " }, { - "id": "0x56012716abb0-OutputItem", + "id": "0x55c4f234ea00-OutputItem", "variantKey": "Expr", - "Expr": "0x56012716abb0-Expr" + "Expr": "0x55c4f234ea00-Expr" }, { - "id": "0x56012716abb0-Expr", + "id": "0x55c4f234ea00-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56012716abd0-LiteralConstant" + "LiteralConstant": "0x55c4f234ea20-LiteralConstant" }, { - "id": "0x56012716abd0-LiteralConstant", + "id": "0x55c4f234ea20-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56012716abd0-IntLiteralConstant" + "IntLiteralConstant": "0x55c4f234ea20-IntLiteralConstant" }, { - "id": "0x56012716abd0-IntLiteralConstant", + "id": "0x55c4f234ea20-IntLiteralConstant", "CharBlock": "3" }, { - "id": "0x56012716deb0-Statement", - "statement": "0x56012716dec0-EndProgramStmt", + "id": "0x55c4f2351d00-Statement", + "statement": "0x55c4f2351d10-EndProgramStmt", "source": "end program HELLO" }, { - "id": "0x56012716dec0-EndProgramStmt", - "Name": "0x56012716dec0-Name" + "id": "0x55c4f2351d10-EndProgramStmt", + "Name": "0x55c4f2351d10-Name" }, { - "id": "0x56012716dec0-Name", + "id": "0x55c4f2351d10-Name", "source": "HELLO" } ], + "comments": [ + { + "text": "! This is a comment line; it is ignored by the compiler", + "stmtId": "0x55c4f2363c10-Statement" + } + ], "enums": { "Fortran::common::CUDADataAttr": [ "Constant", diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranAstBuilder.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranAstBuilder.java index e90319ab..94a14a27 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranAstBuilder.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranAstBuilder.java @@ -3,6 +3,7 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.decl.LabelDecl; import pt.up.fe.specs.fortran.ast.nodes.program.ProgramUnit; +import pt.up.fe.specs.fortran.ast.nodes.stmt.CommentStmt; import pt.up.fe.specs.fortran.ast.nodes.utils.LabelRef; import pt.up.fe.specs.fortran.parser.processors.Nodes; import pt.up.fe.specs.util.SpecsCheck; @@ -29,7 +30,16 @@ public FortranNode build() { // Process each node var processor = new Nodes(data); for (var node : data.fortranNodes().values()) { - processor.process(node); + if (!(node instanceof CommentStmt)) { + processor.process(node); + } + } + + // Process comments only after all other nodes, since the processor depends on the parents + for (var node: data.fortranNodes().values()) { + if (node instanceof CommentStmt) { + processor.process(node); + } } // Apply post-processing at the file level diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java index acb0632b..ea5d54e7 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java @@ -62,14 +62,11 @@ public void commentStmt(CommentStmt commentStmt) { var stmtId = attributes().getString(commentStmt, "stmtId"); var stmtNode = getChild(stmtId); - var parentNode = stmtNode.getParent(); - PrintOnce.info("Statement with id '" + stmtId + "' has " + (parentNode != null ? "" : "no ") + "parent"); - assert parentNode != null; - var numComments = (int)commentStmt.getChildren() + var numComments = (int)stmtNode.getChildren() .stream() .filter(child -> child instanceof CommentStmt) .count(); - parentNode.addChild(numComments, commentStmt); + stmtNode.addChild(numComments, commentStmt); } } From 853c8b112a6f47fe6b0c61cad7e5035c32075abd Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 6 Jul 2026 18:15:38 +0100 Subject: [PATCH 007/260] Refactor AST comment representation and processing --- .../fortran/ast/nodes/stmt/CommentStmt.java | 25 -- .../fe/specs/fortran/ast/nodes/stmt/Stmt.java | 13 +- .../ast/nodes/stmt/ifstmt/ElseBlock.java | 4 +- .../ast/nodes/stmt/ifstmt/ElseIfBlock.java | 4 +- .../ast/nodes/stmt/ifstmt/IfThenStmt.java | 5 +- .../resources-test/fortran/parser/hello.json | 258 +++++++++--------- .../fortran/parser/FortranAstBuilder.java | 12 +- .../fortran/parser/FortranJsonParser.java | 20 +- .../fortran/parser/processors/Nodes.java | 4 +- .../parser/processors/OmpProcessors.java | 10 +- .../parser/processors/StmtProcessors.java | 88 +++++- .../parser/processors/UtilsProcessors.java | 16 -- 12 files changed, 235 insertions(+), 224 deletions(-) delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommentStmt.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommentStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommentStmt.java deleted file mode 100644 index 89fce7ea..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommentStmt.java +++ /dev/null @@ -1,25 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.stmt; - -import org.suikasoft.jOptions.Datakey.DataKey; -import org.suikasoft.jOptions.Datakey.KeyFactory; -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; - -import java.util.Collection; - -public class CommentStmt extends Stmt { - public static final DataKey CONTENT = KeyFactory.string("content"); - - public CommentStmt(DataStore data, Collection children) { - super(data, children); - } - - public String getContent() { - return get(CONTENT); - } - - @Override - public String getStmtCode() { - return getContent(); - } -} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java index c92c4d4d..6d0d2e0b 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java @@ -1,5 +1,7 @@ package pt.up.fe.specs.fortran.ast.nodes.stmt; +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.decl.LabelDecl; @@ -12,18 +14,20 @@ import java.util.stream.Collectors; public abstract class Stmt extends FortranNode { + public static final DataKey> COMMENTS = KeyFactory.list("comments", String.class); public Stmt(DataStore data, Collection children) { super(data, children); } + // TODO(Process-ing): Convert this to data property public Optional getLabel() { var labelDecls = getChildrenOf(LabelDecl.class); return SpecsCollections.toOptional(labelDecls); } - public List getComments() { - return getChildrenOf(CommentStmt.class); + public List getComments() { + return get(COMMENTS); } public String getStmtCode() { @@ -35,9 +39,8 @@ public String getStmtCode() { public final String getCode() { var labelPrefix = getLabel().map(label -> label.getCode() + " ").orElse(""); - var comments = getComments(); - var commentsPrefix = comments.stream() - .map(comment -> comment.getCode() + ln()) + var commentsPrefix = getComments().stream() + .map(comment -> comment + ln()) .collect(Collectors.joining()); return commentsPrefix + labelPrefix + getStmtCode(); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseBlock.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseBlock.java index f404de0d..e8bd2397 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseBlock.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseBlock.java @@ -7,7 +7,7 @@ import java.util.Collection; -public class ElseBlock extends Stmt { +public class ElseBlock extends FortranNode { public ElseBlock(DataStore data, Collection children) { super(data, children); } @@ -21,7 +21,7 @@ public StmtBlock getBlock() { } @Override - public String getStmtCode() { + public String getCode() { var elseStmt = getElseStmt(); var block = getBlock(); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseIfBlock.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseIfBlock.java index 9b78affd..0d5fe3fa 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseIfBlock.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseIfBlock.java @@ -9,7 +9,7 @@ import java.util.Collection; -public class ElseIfBlock extends Stmt { +public class ElseIfBlock extends FortranNode { public ElseIfBlock(DataStore data, Collection children) { super(data, children); } @@ -23,7 +23,7 @@ public StmtBlock getBlock() { } @Override - public String getStmtCode() { + public String getCode() { var elseIfStmt = getElseIfStmt(); var block = getBlock(); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfThenStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfThenStmt.java index 1128905f..cb55b986 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfThenStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfThenStmt.java @@ -4,13 +4,14 @@ import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; +import pt.up.fe.specs.fortran.ast.nodes.stmt.ActionStmt; import java.util.Collection; /** * R1135 if-then-stmt */ -public class IfThenStmt extends FortranNode { +public class IfThenStmt extends ActionStmt { public IfThenStmt(DataStore data, Collection children) { super(data, children); } @@ -20,7 +21,7 @@ public Expr getCondition() { } @Override - public String getCode() { + public String getStmtCode() { var nameOpt = getAncestor(IfConstruct.class).getName(); var condition = getCondition(); diff --git a/FortranParser/resources-test/fortran/parser/hello.json b/FortranParser/resources-test/fortran/parser/hello.json index da9433bb..b8bb2ec9 100644 --- a/FortranParser/resources-test/fortran/parser/hello.json +++ b/FortranParser/resources-test/fortran/parser/hello.json @@ -1,332 +1,332 @@ { "nodes": [ { - "id": "0x55c4f2323f00-Program", + "id": "0x5630aa794f00-Program", "ProgramUnit": [ - "0x55c4f2358cb0-ProgramUnit" + "0x5630aa7c9cb0-ProgramUnit" ] }, { - "id": "0x55c4f2358cb0-ProgramUnit", + "id": "0x5630aa7c9cb0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x55c4f2351d00-MainProgram" + "MainProgram": "0x5630aa7c2d00-MainProgram" }, { - "id": "0x55c4f2351d00-MainProgram", - "Statement": "0x55c4f2351e48-Statement", - "SpecificationPart": "0x55c4f2351da0-SpecificationPart", - "ExecutionPart": "0x55c4f2351d88-ExecutionPart", - "Statement": "0x55c4f2351d00-Statement" + "id": "0x5630aa7c2d00-MainProgram", + "Statement": "0x5630aa7c2e48-Statement", + "SpecificationPart": "0x5630aa7c2da0-SpecificationPart", + "ExecutionPart": "0x5630aa7c2d88-ExecutionPart", + "Statement": "0x5630aa7c2d00-Statement" }, { - "id": "0x55c4f2351e48-Statement", - "statement": "0x55c4f2351e58-ProgramStmt", + "id": "0x5630aa7c2e48-Statement", + "statement": "0x5630aa7c2e58-ProgramStmt", "source": "program HELLO" }, { - "id": "0x55c4f2351e58-ProgramStmt", - "Name": "0x55c4f2351e58-Name" + "id": "0x5630aa7c2e58-ProgramStmt", + "Name": "0x5630aa7c2e58-Name" }, { - "id": "0x55c4f2351e58-Name", + "id": "0x5630aa7c2e58-Name", "source": "HELLO" }, { - "id": "0x55c4f2351da0-SpecificationPart", - "ImplicitPart": "0x55c4f2351db8-ImplicitPart" + "id": "0x5630aa7c2da0-SpecificationPart", + "ImplicitPart": "0x5630aa7c2db8-ImplicitPart" }, { - "id": "0x55c4f2351db8-ImplicitPart" + "id": "0x5630aa7c2db8-ImplicitPart" }, { - "id": "0x55c4f2351d88-ExecutionPart", + "id": "0x5630aa7c2d88-ExecutionPart", "ExecutionPartConstruct": [ - "0x55c4f2363c10-ExecutionPartConstruct", - "0x55c4f2360560-ExecutionPartConstruct", - "0x55c4f2363c70-ExecutionPartConstruct", - "0x55c4f2331170-ExecutionPartConstruct" + "0x5630aa7d4c10-ExecutionPartConstruct", + "0x5630aa7d1560-ExecutionPartConstruct", + "0x5630aa7d4c70-ExecutionPartConstruct", + "0x5630aa7a2170-ExecutionPartConstruct" ] }, { - "id": "0x55c4f2351d88-ExecutionPartConstruct" + "id": "0x5630aa7c2d88-ExecutionPartConstruct" }, { - "id": "0x55c4f2363c10-ExecutionPartConstruct", + "id": "0x5630aa7d4c10-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55c4f2363c10-ExecutableConstruct" + "ExecutableConstruct": "0x5630aa7d4c10-ExecutableConstruct" }, { - "id": "0x55c4f2363c10-ExecutableConstruct", + "id": "0x5630aa7d4c10-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55c4f2363c10-Statement" + "Statement": "0x5630aa7d4c10-Statement" }, { - "id": "0x55c4f2363c10-Statement", - "statement": "0x55c4f2363c20-ActionStmt", + "id": "0x5630aa7d4c10-Statement", + "statement": "0x5630aa7d4c20-ActionStmt", "source": "print *, 'Hello, World!'" }, { - "id": "0x55c4f2363c20-ActionStmt", + "id": "0x5630aa7d4c20-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x55c4f22d9260-PrintStmt" + "PrintStmt": "0x5630aa74a260-PrintStmt" }, { - "id": "0x55c4f22d9260-PrintStmt", - "Format": "0x55c4f22d9278-Format", + "id": "0x5630aa74a260-PrintStmt", + "Format": "0x5630aa74a278-Format", "OutputItem": [ - "0x55c4f2364ea0-OutputItem" + "0x5630aa7d5ea0-OutputItem" ] }, { - "id": "0x55c4f22d9278-Format", + "id": "0x5630aa74a278-Format", "variantKey": "Star", - "Star": "0x55c4f22d9278-Star" + "Star": "0x5630aa74a278-Star" }, { - "id": "0x55c4f22d9278-Star" + "id": "0x5630aa74a278-Star" }, { - "id": "0x55c4f2364ea0-OutputItem", + "id": "0x5630aa7d5ea0-OutputItem", "variantKey": "Expr", - "Expr": "0x55c4f2364ea0-Expr" + "Expr": "0x5630aa7d5ea0-Expr" }, { - "id": "0x55c4f2364ea0-Expr", + "id": "0x5630aa7d5ea0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55c4f2364ec0-LiteralConstant" + "LiteralConstant": "0x5630aa7d5ec0-LiteralConstant" }, { - "id": "0x55c4f2364ec0-LiteralConstant", + "id": "0x5630aa7d5ec0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55c4f2364ec0-CharLiteralConstant" + "CharLiteralConstant": "0x5630aa7d5ec0-CharLiteralConstant" }, { - "id": "0x55c4f2364ec0-CharLiteralConstant", + "id": "0x5630aa7d5ec0-CharLiteralConstant", "string": "Hello, World!" }, { - "id": "0x55c4f2360560-ExecutionPartConstruct", + "id": "0x5630aa7d1560-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55c4f2360560-ExecutableConstruct" + "ExecutableConstruct": "0x5630aa7d1560-ExecutableConstruct" }, { - "id": "0x55c4f2360560-ExecutableConstruct", + "id": "0x5630aa7d1560-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55c4f2360560-Statement" + "Statement": "0x5630aa7d1560-Statement" }, { - "id": "0x55c4f2360560-Statement", - "statement": "0x55c4f2360570-ActionStmt", + "id": "0x5630aa7d1560-Statement", + "statement": "0x5630aa7d1570-ActionStmt", "source": "print 100, 'Hello, World!', 2" }, { - "id": "0x55c4f2360570-ActionStmt", + "id": "0x5630aa7d1570-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x55c4f2360450-PrintStmt" + "PrintStmt": "0x5630aa7d1450-PrintStmt" }, { - "id": "0x55c4f2360450-PrintStmt", - "Format": "0x55c4f2360468-Format", + "id": "0x5630aa7d1450-PrintStmt", + "Format": "0x5630aa7d1468-Format", "OutputItem": [ - "0x55c4f2360370-OutputItem", - "0x55c4f2362c70-OutputItem" + "0x5630aa7d1370-OutputItem", + "0x5630aa7d3c70-OutputItem" ] }, { - "id": "0x55c4f2360468-Format", + "id": "0x5630aa7d1468-Format", "variantKey": "uint64_t", "uint64_t": "100" }, { - "id": "0x55c4f2360370-OutputItem", + "id": "0x5630aa7d1370-OutputItem", "variantKey": "Expr", - "Expr": "0x55c4f2360370-Expr" + "Expr": "0x5630aa7d1370-Expr" }, { - "id": "0x55c4f2360370-Expr", + "id": "0x5630aa7d1370-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55c4f2360390-LiteralConstant" + "LiteralConstant": "0x5630aa7d1390-LiteralConstant" }, { - "id": "0x55c4f2360390-LiteralConstant", + "id": "0x5630aa7d1390-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55c4f2360390-CharLiteralConstant" + "CharLiteralConstant": "0x5630aa7d1390-CharLiteralConstant" }, { - "id": "0x55c4f2360390-CharLiteralConstant", + "id": "0x5630aa7d1390-CharLiteralConstant", "string": "Hello, World!" }, { - "id": "0x55c4f2362c70-OutputItem", + "id": "0x5630aa7d3c70-OutputItem", "variantKey": "Expr", - "Expr": "0x55c4f2362c70-Expr" + "Expr": "0x5630aa7d3c70-Expr" }, { - "id": "0x55c4f2362c70-Expr", + "id": "0x5630aa7d3c70-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55c4f2362c90-LiteralConstant" + "LiteralConstant": "0x5630aa7d3c90-LiteralConstant" }, { - "id": "0x55c4f2362c90-LiteralConstant", + "id": "0x5630aa7d3c90-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55c4f2362c90-IntLiteralConstant" + "IntLiteralConstant": "0x5630aa7d3c90-IntLiteralConstant" }, { - "id": "0x55c4f2362c90-IntLiteralConstant", + "id": "0x5630aa7d3c90-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x55c4f2363c70-ExecutionPartConstruct", + "id": "0x5630aa7d4c70-ExecutionPartConstruct", "variantKey": "Statement", - "Statement": "0x55c4f2363c70-Statement" + "Statement": "0x5630aa7d4c70-Statement" }, { - "id": "0x55c4f2363c70-Statement", - "statement": "0x55c4f2366380-FormatStmt", + "id": "0x5630aa7d4c70-Statement", + "statement": "0x5630aa7d7380-FormatStmt", "label": "100", "source": "100 format(a, i3)" }, { - "id": "0x55c4f2366380-FormatStmt", - "FormatSpecification": "0x55c4f2366380-FormatSpecification" + "id": "0x5630aa7d7380-FormatStmt", + "FormatSpecification": "0x5630aa7d7380-FormatSpecification" }, { - "id": "0x55c4f2366380-FormatSpecification", + "id": "0x5630aa7d7380-FormatSpecification", "items": [ - "0x55c4f2364810-FormatItem", - "0x55c4f2364e30-FormatItem" + "0x5630aa7d5810-FormatItem", + "0x5630aa7d5e30-FormatItem" ], "unlimitedItems": [] }, { - "id": "0x55c4f2364810-FormatItem", + "id": "0x5630aa7d5810-FormatItem", "variantKey": "IntrinsicTypeDataEditDesc", - "IntrinsicTypeDataEditDesc": "0x55c4f2364820-IntrinsicTypeDataEditDesc" + "IntrinsicTypeDataEditDesc": "0x5630aa7d5820-IntrinsicTypeDataEditDesc" }, { - "id": "0x55c4f2364820-IntrinsicTypeDataEditDesc", - "kind": "0x55c4f2364820-Kind" + "id": "0x5630aa7d5820-IntrinsicTypeDataEditDesc", + "kind": "0x5630aa7d5820-Kind" }, { - "id": "0x55c4f2364820-Kind" + "id": "0x5630aa7d5820-Kind" }, { - "id": "0x55c4f2364e30-FormatItem", + "id": "0x5630aa7d5e30-FormatItem", "variantKey": "IntrinsicTypeDataEditDesc", - "IntrinsicTypeDataEditDesc": "0x55c4f2364e40-IntrinsicTypeDataEditDesc" + "IntrinsicTypeDataEditDesc": "0x5630aa7d5e40-IntrinsicTypeDataEditDesc" }, { - "id": "0x55c4f2364e40-IntrinsicTypeDataEditDesc", - "kind": "0x55c4f2364e40-Kind", + "id": "0x5630aa7d5e40-IntrinsicTypeDataEditDesc", + "kind": "0x5630aa7d5e40-Kind", "width": "3" }, { - "id": "0x55c4f2364e40-Kind" + "id": "0x5630aa7d5e40-Kind" }, { - "id": "0x55c4f2331170-ExecutionPartConstruct", + "id": "0x5630aa7a2170-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55c4f2331170-ExecutableConstruct" + "ExecutableConstruct": "0x5630aa7a2170-ExecutableConstruct" }, { - "id": "0x55c4f2331170-ExecutableConstruct", + "id": "0x5630aa7a2170-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55c4f2331170-Statement" + "Statement": "0x5630aa7a2170-Statement" }, { - "id": "0x55c4f2331170-Statement", - "statement": "0x55c4f2331180-ActionStmt", + "id": "0x5630aa7a2170-Statement", + "statement": "0x5630aa7a2180-ActionStmt", "label": "20", "source": "20 print '(A, F6.3)', 'Value = ', 3" }, { - "id": "0x55c4f2331180-ActionStmt", + "id": "0x5630aa7a2180-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x55c4f234ebd0-PrintStmt" + "PrintStmt": "0x5630aa7bfbd0-PrintStmt" }, { - "id": "0x55c4f234ebd0-PrintStmt", - "Format": "0x55c4f234ebe8-Format", + "id": "0x5630aa7bfbd0-PrintStmt", + "Format": "0x5630aa7bfbe8-Format", "OutputItem": [ - "0x55c4f234eaf0-OutputItem", - "0x55c4f234ea00-OutputItem" + "0x5630aa7bfaf0-OutputItem", + "0x5630aa7bfa00-OutputItem" ] }, { - "id": "0x55c4f234ebe8-Format", + "id": "0x5630aa7bfbe8-Format", "variantKey": "Expr", - "Expr": "0x55c4f234ebe8-Expr" + "Expr": "0x5630aa7bfbe8-Expr" }, { - "id": "0x55c4f234ebe8-Expr", + "id": "0x5630aa7bfbe8-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55c4f234ec08-LiteralConstant" + "LiteralConstant": "0x5630aa7bfc08-LiteralConstant" }, { - "id": "0x55c4f234ec08-LiteralConstant", + "id": "0x5630aa7bfc08-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55c4f234ec08-CharLiteralConstant" + "CharLiteralConstant": "0x5630aa7bfc08-CharLiteralConstant" }, { - "id": "0x55c4f234ec08-CharLiteralConstant", + "id": "0x5630aa7bfc08-CharLiteralConstant", "string": "(A, F6.3)" }, { - "id": "0x55c4f234eaf0-OutputItem", + "id": "0x5630aa7bfaf0-OutputItem", "variantKey": "Expr", - "Expr": "0x55c4f234eaf0-Expr" + "Expr": "0x5630aa7bfaf0-Expr" }, { - "id": "0x55c4f234eaf0-Expr", + "id": "0x5630aa7bfaf0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55c4f234eb10-LiteralConstant" + "LiteralConstant": "0x5630aa7bfb10-LiteralConstant" }, { - "id": "0x55c4f234eb10-LiteralConstant", + "id": "0x5630aa7bfb10-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55c4f234eb10-CharLiteralConstant" + "CharLiteralConstant": "0x5630aa7bfb10-CharLiteralConstant" }, { - "id": "0x55c4f234eb10-CharLiteralConstant", + "id": "0x5630aa7bfb10-CharLiteralConstant", "string": "Value = " }, { - "id": "0x55c4f234ea00-OutputItem", + "id": "0x5630aa7bfa00-OutputItem", "variantKey": "Expr", - "Expr": "0x55c4f234ea00-Expr" + "Expr": "0x5630aa7bfa00-Expr" }, { - "id": "0x55c4f234ea00-Expr", + "id": "0x5630aa7bfa00-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55c4f234ea20-LiteralConstant" + "LiteralConstant": "0x5630aa7bfa20-LiteralConstant" }, { - "id": "0x55c4f234ea20-LiteralConstant", + "id": "0x5630aa7bfa20-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55c4f234ea20-IntLiteralConstant" + "IntLiteralConstant": "0x5630aa7bfa20-IntLiteralConstant" }, { - "id": "0x55c4f234ea20-IntLiteralConstant", + "id": "0x5630aa7bfa20-IntLiteralConstant", "CharBlock": "3" }, { - "id": "0x55c4f2351d00-Statement", - "statement": "0x55c4f2351d10-EndProgramStmt", + "id": "0x5630aa7c2d00-Statement", + "statement": "0x5630aa7c2d10-EndProgramStmt", "source": "end program HELLO" }, { - "id": "0x55c4f2351d10-EndProgramStmt", - "Name": "0x55c4f2351d10-Name" + "id": "0x5630aa7c2d10-EndProgramStmt", + "Name": "0x5630aa7c2d10-Name" }, { - "id": "0x55c4f2351d10-Name", + "id": "0x5630aa7c2d10-Name", "source": "HELLO" } ], "comments": [ { "text": "! This is a comment line; it is ignored by the compiler", - "stmtId": "0x55c4f2363c10-Statement" + "stmtId": "0x5630aa7d4c10-Statement" } ], "enums": { diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranAstBuilder.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranAstBuilder.java index 94a14a27..e90319ab 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranAstBuilder.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranAstBuilder.java @@ -3,7 +3,6 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.decl.LabelDecl; import pt.up.fe.specs.fortran.ast.nodes.program.ProgramUnit; -import pt.up.fe.specs.fortran.ast.nodes.stmt.CommentStmt; import pt.up.fe.specs.fortran.ast.nodes.utils.LabelRef; import pt.up.fe.specs.fortran.parser.processors.Nodes; import pt.up.fe.specs.util.SpecsCheck; @@ -30,16 +29,7 @@ public FortranNode build() { // Process each node var processor = new Nodes(data); for (var node : data.fortranNodes().values()) { - if (!(node instanceof CommentStmt)) { - processor.process(node); - } - } - - // Process comments only after all other nodes, since the processor depends on the parents - for (var node: data.fortranNodes().values()) { - if (node instanceof CommentStmt) { - processor.process(node); - } + processor.process(node); } // Apply post-processing at the file level diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java index 0eb7bb57..40fdd95e 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java @@ -4,7 +4,6 @@ import org.suikasoft.GsonPlus.JsonReaderParser; import pt.up.fe.specs.fortran.ast.FortranContext; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.stmt.CommentStmt; import pt.up.fe.specs.util.SpecsCheck; import pt.up.fe.specs.util.SpecsLogs; @@ -147,9 +146,9 @@ private void processNodeData(Map nodeData) { private void parseComments(JsonReader reader) { try { reader.beginArray(); - for (int index = 0; reader.hasNext(); index++) { + while (reader.hasNext()) { var commentData = nextObject(reader); - processCommentData(commentData, index); + processCommentData(commentData); } reader.endArray(); } catch (IOException e) { @@ -157,21 +156,14 @@ private void parseComments(JsonReader reader) { } } - private void processCommentData(Map commentData, int index) { - var id = "0x" + index + "-CommentStmt"; - ids.add(id); - - var commentNode = context.get(FortranContext.FACTORY).newNode(CommentStmt.class, Collections.emptyList(), id); - fortranNodes.put(id, commentNode); - - var content = commentData.get("text"); + private void processCommentData(Map commentData) { + var content = commentData.get("text").toString(); var stmtId = commentData.get("stmtId").toString(); - attributes.put(id, Map.of("content", content, "stmtId", stmtId)); var stmtAttrs = attributes.get(stmtId); stmtAttrs.putIfAbsent("comments", new ArrayList<>()); - var commentsList = (List) stmtAttrs.get("comments"); - commentsList.add(id); + var stmtComments = (List) stmtAttrs.get("comments"); + stmtComments.add(content); } /** diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 9e61534b..769813b5 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -152,14 +152,13 @@ public Nodes(FortranJsonResult data) { processors.put(NameValue.class, u::nameValue); processors.put(IoUnit.class, u::ioUnit); processors.put(IoControlSpec.class, u::ioControlSpec); - processors.put(CommentStmt.class, u::commentStmt); var l = new LoopProcessors(data); processors.put(RangeLoopControl.class, l::loopRange); processors.put(ConcurrentLoopControl.class, l::concurrentLoopControl); processors.put(ConcurrentRange.class, l::concurrentRange); - var omp = new OmpProcessors(data); + var omp = new OmpProcessors(data, s); processors.put(OmpBlockConstruct.class, omp::ompBlockConstruct); processors.put(OmpLoopConstruct.class, omp::ompLoopConstruct); processors.put(OmpDataSharingClause.class, omp::ompDataSharingClause); @@ -175,5 +174,4 @@ public void process(FortranNode node) { } } - } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/OmpProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/OmpProcessors.java index 13888f94..84d8c462 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/OmpProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/OmpProcessors.java @@ -16,11 +16,17 @@ import java.util.List; public class OmpProcessors extends ANodeProcessor { - public OmpProcessors(FortranJsonResult data) { + private StmtProcessors stmtProcessors; + + public OmpProcessors(FortranJsonResult data, StmtProcessors stmtProcessors) { super(data); + + this.stmtProcessors = stmtProcessors; } public void ompBlockConstruct(OmpBlockConstruct ompBlockConstruct) { + stmtProcessors.stmt(ompBlockConstruct); + String directive = attributes().getString(ompBlockConstruct, "directive", FlangName.OMP_BEGIN_DIRECTIVE, FlangName.OMP_DIRECTIVE_NAME); String clauseList = attributes().getString(ompBlockConstruct, "id", FlangName.OMP_BEGIN_DIRECTIVE, FlangName.OMP_CLAUSE_LIST); @@ -36,6 +42,8 @@ public void ompBlockConstruct(OmpBlockConstruct ompBlockConstruct) { } public void ompLoopConstruct(OmpLoopConstruct ompLoopConstruct) { + stmtProcessors.stmt(ompLoopConstruct); + String directive = attributes().getString(ompLoopConstruct, "directive", FlangName.OMP_BEGIN_LOOP_DIRECTIVE, FlangName.OMP_DIRECTIVE_NAME); String clauseList = attributes().getString(ompLoopConstruct, "id", FlangName.OMP_BEGIN_LOOP_DIRECTIVE, FlangName.OMP_CLAUSE_LIST); String endClauseList = attributes().getString(ompLoopConstruct, "id", FlangName.OMP_END_LOOP_DIRECTIVE, FlangName.OMP_CLAUSE_LIST); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 45a8f81a..72640349 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -27,25 +27,42 @@ public StmtProcessors(FortranJsonResult data) { super(data); } - private void executableStmt(ExecutableStmt executableStmt) { - executableStmt.set(ExecutableStmt.SOURCE, attributes(executableStmt).getString("source")); + public void stmt(Stmt stmt) { + stmtWithAttrs(stmt, attributes(stmt)); + } + + public void stmtWithAttrs(Stmt stmt, FlangAttributes attrs) { + if (attrs.has("comments")) { + var comments = attrs.getStringList("comments"); + stmt.set(Stmt.COMMENTS, comments); + } else { + stmt.set(Stmt.COMMENTS, List.of()); + } - var labelOpt = attributes(executableStmt).getOptionalString("label"); + var labelOpt = attrs.getOptionalString("label"); labelOpt.ifPresent(label -> { var labelDecl = factory().labelDecl(Integer.parseInt(label)); data().processorData().addLabelDecl(labelDecl); - executableStmt.addChild(0, labelDecl); + stmt.addChild(0, labelDecl); }); } + public void executableStmt(ExecutableStmt executableStmt) { + stmt(executableStmt); + + // Uncomment this if we really need the statement source + // executableStmt.set(ExecutableStmt.SOURCE, attributes(executableStmt).getString("source")); + } + - private void actionStmt(ActionStmt actionStmt) { + public void actionStmt(ActionStmt actionStmt) { executableStmt(actionStmt); } public void printStmt(PrintStmt printStmt) { actionStmt(printStmt); + printStmt.addChild(getChild(printStmt, FlangName.FORMAT)); printStmt.addChildren(getChildren(printStmt, FlangName.OUTPUT_ITEM)); } @@ -55,6 +72,8 @@ public void formatStmt(FormatStmt formatStmt) { } public void typeDeclarationStmt(TypeDeclarationStmt typeDeclarationStmt) { + stmt(typeDeclarationStmt); + var entityDecls = getChildren(typeDeclarationStmt, FlangName.ENTITY_DECL); var type = getChild(typeDeclarationStmt, FlangName.DECLARATION_TYPE_SPEC); @@ -75,6 +94,8 @@ public void typeDeclarationStmt(TypeDeclarationStmt typeDeclarationStmt) { } public void assignmentStmt(AssignmentStmt assignmentStmt) { + actionStmt(assignmentStmt); + var variable = getChild(assignmentStmt, FlangName.VARIABLE); var expression = getChild(assignmentStmt, FlangName.EXPR); assignmentStmt.addChild(variable); @@ -86,6 +107,8 @@ public void stmtBlock(StmtBlock stmtBlock) { } public void ifConstruct(IfConstruct ifConstruct) { + executableStmt(ifConstruct); + // Add if-then block var ifThenStmt = getStmtChild(ifConstruct, FlangName.IF_THEN_STMT); @@ -126,6 +149,8 @@ public void ifConstruct(IfConstruct ifConstruct) { } public void ifThenStmt(IfThenStmt ifThenStmt) { + actionStmt(ifThenStmt); + var condition = getChild(ifThenStmt, FlangName.EXPR); ifThenStmt.addChild(0, condition); @@ -142,6 +167,8 @@ public void elseIfBlock(ElseIfBlock ifElseBlock) { } public void elseIfStmt(ElseIfStmt elseIfStmt) { + stmt(elseIfStmt); + var condition = getChild(elseIfStmt, FlangName.EXPR); elseIfStmt.addChild(condition); } @@ -156,15 +183,17 @@ public void elseBlock(ElseBlock elseBlock) { elseBlock.addChild(block); } - public void elseStmt(ElseStmt ignoredElseStmt) { - // Nothing to do + public void elseStmt(ElseStmt elseStmt) { + stmt(elseStmt); } - public void endIfStmt(EndIfStmt ignoredEndIfStmt) { - // Nothing to do + public void endIfStmt(EndIfStmt endIfStmt) { + stmt(endIfStmt); } public void ifStmt(IfStmt ifStmt) { + actionStmt(ifStmt); + var condition = getChild(ifStmt, FlangName.EXPR); var thenStmt = getUnlabeledStmtChild(ifStmt, FlangName.ACTION_STMT); @@ -173,6 +202,8 @@ public void ifStmt(IfStmt ifStmt) { } public void caseConstruct(CaseConstruct caseConstruct) { + executableStmt(caseConstruct); + var selectCaseStmt = getStmtChild(caseConstruct, FlangName.SELECT_CASE_STMT); var caseBlocks = getChildren(caseConstruct, FlangName.CASE); var endSelectStmt = getStmtChild(caseConstruct, FlangName.END_SELECT_STMT); @@ -190,6 +221,8 @@ public void caseConstruct(CaseConstruct caseConstruct) { } public void selectCaseStmt(SelectCaseStmt selectCaseStmt) { + stmt(selectCaseStmt); + var expr = getChild(selectCaseStmt, FlangName.EXPR); selectCaseStmt.addChild(expr); @@ -223,6 +256,7 @@ public CaseStmt buildCaseStmt(String id) { .toList(); var valueCaseStmt = factory().newNode(ValueCaseStmt.class); + stmtWithAttrs(valueCaseStmt, caseSelectorAttrs); valueCaseStmt.addChildren(caseValueRanges); return valueCaseStmt; @@ -230,7 +264,9 @@ public CaseStmt buildCaseStmt(String id) { // If selector has a default child, build a default case statement if (caseSelectorAttrs.has(FlangName.DEFAULT)) { - return factory().newNode(DefaultCaseStmt.class); + var defaultCaseStmt = factory().newNode(DefaultCaseStmt.class); + stmtWithAttrs(defaultCaseStmt, caseSelectorAttrs); + return defaultCaseStmt; } throw new RuntimeException("Unknown case selector: " + caseSelectorId); @@ -288,11 +324,13 @@ public CaseValueRange buildCaseValueRange(String id) { throw new RuntimeException("Could not determine case value range type for id: " + id + " with attributes: " + attrs); } - public void endSelectStmt(EndSelectStmt ignoredEndSelectStmt) { - // Nothing to do + public void endSelectStmt(EndSelectStmt endSelectStmt) { + stmt(endSelectStmt); } public void doStmt(DoStmt doStmt) { + executableStmt(doStmt); + Optional control = attributes().getOptionalString(doStmt, "id", FlangName.NON_LABEL_DO_STMT, FlangName.LOOP_CONTROL); Optional name = attributes().getOptionalString(doStmt, "source", FlangName.NON_LABEL_DO_STMT, FlangName.NAME); @@ -330,15 +368,21 @@ public void doStmt(DoStmt doStmt) { } public void compilerDirective(CompilerDirective compilerDirective) { + executableStmt(compilerDirective); + var variantKey = attributes(compilerDirective).getVariantKey(); compilerDirective.addChildren(getChildren(compilerDirective, variantKey)); } public void callStmt(CallStmt callStmt) { + actionStmt(callStmt); + callStmt.addChild(getChild(callStmt, "call")); } public void gotoStmt(GotoStmt gotoStmt) { + actionStmt(gotoStmt); + var strLabel = attributes(gotoStmt).getString("uint64_t"); var label = Integer.parseInt(strLabel); @@ -346,6 +390,8 @@ public void gotoStmt(GotoStmt gotoStmt) { } public void writeStmt(WriteStmt writeStmt) { + actionStmt(writeStmt); + if (attributes(writeStmt).has("iounit")) { writeStmt.addChild(getChild(writeStmt, "iounit")); } @@ -364,19 +410,25 @@ public void writeStmt(WriteStmt writeStmt) { } public void containsStmt(ContainsStmt containsStmt) { - + executableStmt(containsStmt); } public void allocateStmt(AllocateStmt allocateStmt) { + actionStmt(allocateStmt); + allocateStmt.addChildren(getChildren(allocateStmt, FlangName.ALLOCATION)); allocateStmt.addChildren(getChildren(allocateStmt, FlangName.ALLOC_OPT)); } public void deallocateStmt(DeallocateStmt deallocateStmt) { + actionStmt(deallocateStmt); + deallocateStmt.addChildren(getChildren(deallocateStmt, FlangName.ALLOCATE_OBJECT)); } public void useStmt(UseStmt useStmt) { + stmt(useStmt); + String nameId = attributes(useStmt).getString("moduleName"); String name = attributes().get(nameId).getString("source"); @@ -384,10 +436,12 @@ public void useStmt(UseStmt useStmt) { } public void continueStmt(ContinueStmt continueStmt) { - + actionStmt(continueStmt); } public void parameterStmt(ParameterStmt parameterStmt) { + stmt(parameterStmt); + parameterStmt.addChildren(getChildren(parameterStmt, FlangName.NAMED_CONSTANT_DEF)); } @@ -400,6 +454,8 @@ public void namedConstantDef(NamedConstantDef namedConstantDef) { } public void stopStmt(StopStmt stopStmt) { + actionStmt(stopStmt); + var kindId = attributes(stopStmt).getString("kind"); var kind = attributes().get(kindId).getString("value"); stopStmt.set(StopStmt.ERROR_STOP, kind.equals("ErrorStop")); @@ -415,6 +471,8 @@ public void stopStmt(StopStmt stopStmt) { } public void dataStmt(DataStmt dataStmt) { + stmt(dataStmt); + var dataStmtSets = getChildren(dataStmt, FlangName.DATA_STMT_SET); dataStmt.addChildren(dataStmtSets); } @@ -453,6 +511,8 @@ public void dataStmtVariable(DataStmtVariable dataStmtVariable) { } public void commonStmt(CommonStmt commonStmt) { + stmt(commonStmt); + var blocks = getChildren(commonStmt, FlangName.COMMON_STMT_BLOCK); commonStmt.addChildren(blocks); } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java index ea5d54e7..90359393 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java @@ -1,11 +1,9 @@ package pt.up.fe.specs.fortran.parser.processors; -import pt.up.fe.specs.fortran.ast.nodes.stmt.CommentStmt; import pt.up.fe.specs.fortran.ast.nodes.utils.*; import pt.up.fe.specs.fortran.ast.nodes.utils.enums.IoControlSpecKind; import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; -import pt.up.fe.specs.util.utilities.PrintOnce; public class UtilsProcessors extends ANodeProcessor { @@ -55,18 +53,4 @@ public void ioControlSpec(IoControlSpec ioControlSpec) { ioControlSpec.addChild(getChild(attributes().get(childId).getString(FlangName.EXPR))); } - - public void commentStmt(CommentStmt commentStmt) { - var content = attributes().getString(commentStmt, "content"); - commentStmt.set(CommentStmt.CONTENT, content); - - var stmtId = attributes().getString(commentStmt, "stmtId"); - var stmtNode = getChild(stmtId); - - var numComments = (int)stmtNode.getChildren() - .stream() - .filter(child -> child instanceof CommentStmt) - .count(); - stmtNode.addChild(numComments, commentStmt); - } } From 045c6f95ef25bdda952a1227d020c96fe8387090 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 7 Jul 2026 12:12:25 +0100 Subject: [PATCH 008/260] Fix tests with comments --- .../arrays/array_implied_do.expected.f90 | 7 + .../parser/arrays/array_implied_do.json | 1430 +- .../fortran/parser/polybench/3mm.expected.f90 | 22 + .../fortran/parser/polybench/3mm.json | 21202 ++++++++-------- 4 files changed, 11641 insertions(+), 11020 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/arrays/array_implied_do.expected.f90 b/FortranParser/resources-test/fortran/parser/arrays/array_implied_do.expected.f90 index 4a22d774..acc281ac 100644 --- a/FortranParser/resources-test/fortran/parser/arrays/array_implied_do.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/arrays/array_implied_do.expected.f90 @@ -5,18 +5,25 @@ PROGRAM TEST_IMPLIED_DO INTEGER, DIMENSION(9) :: arr6 INTEGER, DIMENSION(15) :: arr7 + ! Basic implied-do arr1 = [(i, i = 1, 5)] + ! With expression arr2 = [(i * 10, i = 1, 5)] + ! With step arr3 = [(i, i = 1, 9, 2)] + ! Mixed values and implied-do arr4 = [0, (i, i = 1, 8), 99] + ! With type-spec arr5 = [INTEGER :: (i * 2, i = 1, 10)] + ! Nested implied-do arr6 = [((i + j, i = 1, 3), j = 1, 3)] + ! Multiple values per iteration arr7 = [(i, i * 10, i * 100, i = 1, 5)] END PROGRAM TEST_IMPLIED_DO \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/arrays/array_implied_do.json b/FortranParser/resources-test/fortran/parser/arrays/array_implied_do.json index c50aa0f7..f77c0863 100644 --- a/FortranParser/resources-test/fortran/parser/arrays/array_implied_do.json +++ b/FortranParser/resources-test/fortran/parser/arrays/array_implied_do.json @@ -1,1740 +1,1770 @@ { "nodes": [ { - "id": "0x55a303257f00-Program", + "id": "0x564807c3bf00-Program", "ProgramUnit": [ - "0x55a303293fa0-ProgramUnit" + "0x564807c77e90-ProgramUnit" ] }, { - "id": "0x55a303293fa0-ProgramUnit", + "id": "0x564807c77e90-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x55a30328c870-MainProgram" + "MainProgram": "0x564807c70800-MainProgram" }, { - "id": "0x55a30328c870-MainProgram", - "Statement": "0x55a30328c9b8-Statement", - "SpecificationPart": "0x55a30328c910-SpecificationPart", - "ExecutionPart": "0x55a30328c8f8-ExecutionPart", - "Statement": "0x55a30328c870-Statement" + "id": "0x564807c70800-MainProgram", + "Statement": "0x564807c70948-Statement", + "SpecificationPart": "0x564807c708a0-SpecificationPart", + "ExecutionPart": "0x564807c70888-ExecutionPart", + "Statement": "0x564807c70800-Statement" }, { - "id": "0x55a30328c9b8-Statement", - "statement": "0x55a30328c9c8-ProgramStmt", + "id": "0x564807c70948-Statement", + "statement": "0x564807c70958-ProgramStmt", "source": "program TEST_IMPLIED_DO" }, { - "id": "0x55a30328c9c8-ProgramStmt", - "Name": "0x55a30328c9c8-Name" + "id": "0x564807c70958-ProgramStmt", + "Name": "0x564807c70958-Name" }, { - "id": "0x55a30328c9c8-Name", + "id": "0x564807c70958-Name", "source": "TEST_IMPLIED_DO" }, { - "id": "0x55a30328c910-SpecificationPart", - "ImplicitPart": "0x55a30328c928-ImplicitPart", + "id": "0x564807c708a0-SpecificationPart", + "ImplicitPart": "0x564807c708b8-ImplicitPart", "DeclarationConstruct": [ - "0x55a303265110-DeclarationConstruct", - "0x55a303282fd0-DeclarationConstruct", - "0x55a303283370-DeclarationConstruct", - "0x55a303283620-DeclarationConstruct", - "0x55a3032838d0-DeclarationConstruct" + "0x564807c49170-DeclarationConstruct", + "0x564807c48da0-DeclarationConstruct", + "0x564807c671d0-DeclarationConstruct", + "0x564807c67480-DeclarationConstruct", + "0x564807c67730-DeclarationConstruct" ] }, { - "id": "0x55a30328c928-ImplicitPart" + "id": "0x564807c708b8-ImplicitPart" }, { - "id": "0x55a303265110-DeclarationConstruct", + "id": "0x564807c49170-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55a303265110-SpecificationConstruct" + "SpecificationConstruct": "0x564807c49170-SpecificationConstruct" }, { - "id": "0x55a303265110-SpecificationConstruct", + "id": "0x564807c49170-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55a303265110-Statement" + "Statement": "0x564807c49170-Statement" }, { - "id": "0x55a303265110-Statement", - "statement": "0x55a303282840-TypeDeclarationStmt", + "id": "0x564807c49170-Statement", + "statement": "0x564807c78570-TypeDeclarationStmt", "source": "integer :: i, j" }, { - "id": "0x55a303282840-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55a303282870-DeclarationTypeSpec", + "id": "0x564807c78570-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x564807c785a0-DeclarationTypeSpec", "EntityDecl": [ - "0x55a303282a40-EntityDecl", - "0x55a303282950-EntityDecl" + "0x564807c66880-EntityDecl", + "0x564807c66790-EntityDecl" ] }, { - "id": "0x55a303282870-DeclarationTypeSpec", + "id": "0x564807c785a0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55a303282870-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x564807c785a0-IntrinsicTypeSpec" }, { - "id": "0x55a303282870-IntrinsicTypeSpec", + "id": "0x564807c785a0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55a303282870-IntegerTypeSpec" + "IntegerTypeSpec": "0x564807c785a0-IntegerTypeSpec" }, { - "id": "0x55a303282870-IntegerTypeSpec" + "id": "0x564807c785a0-IntegerTypeSpec" }, { - "id": "0x55a303282a40-EntityDecl", - "Name": "0x55a303282af8-Name" + "id": "0x564807c66880-EntityDecl", + "Name": "0x564807c66938-Name" }, { - "id": "0x55a303282af8-Name", + "id": "0x564807c66938-Name", "source": "i" }, { - "id": "0x55a303282950-EntityDecl", - "Name": "0x55a303282a08-Name" + "id": "0x564807c66790-EntityDecl", + "Name": "0x564807c66848-Name" }, { - "id": "0x55a303282a08-Name", + "id": "0x564807c66848-Name", "source": "j" }, { - "id": "0x55a303282fd0-DeclarationConstruct", + "id": "0x564807c48da0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55a303282fd0-SpecificationConstruct" + "SpecificationConstruct": "0x564807c48da0-SpecificationConstruct" }, { - "id": "0x55a303282fd0-SpecificationConstruct", + "id": "0x564807c48da0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55a303282fd0-Statement" + "Statement": "0x564807c48da0-Statement" }, { - "id": "0x55a303282fd0-Statement", - "statement": "0x55a3032828c0-TypeDeclarationStmt", + "id": "0x564807c48da0-Statement", + "statement": "0x564807c66960-TypeDeclarationStmt", "source": "integer, dimension(5) :: arr1, arr2, arr3" }, { - "id": "0x55a3032828c0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55a3032828f0-DeclarationTypeSpec", + "id": "0x564807c66960-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x564807c66990-DeclarationTypeSpec", "AttrSpec": [ - "0x55a30329ba70-AttrSpec" + "0x564807c7fa00-AttrSpec" ], "EntityDecl": [ - "0x55a303282e00-EntityDecl", - "0x55a303282c20-EntityDecl", - "0x55a303282d10-EntityDecl" + "0x564807c66cc0-EntityDecl", + "0x564807c66ae0-EntityDecl", + "0x564807c66bd0-EntityDecl" ] }, { - "id": "0x55a3032828f0-DeclarationTypeSpec", + "id": "0x564807c66990-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55a3032828f0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x564807c66990-IntrinsicTypeSpec" }, { - "id": "0x55a3032828f0-IntrinsicTypeSpec", + "id": "0x564807c66990-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55a3032828f0-IntegerTypeSpec" + "IntegerTypeSpec": "0x564807c66990-IntegerTypeSpec" }, { - "id": "0x55a3032828f0-IntegerTypeSpec" + "id": "0x564807c66990-IntegerTypeSpec" }, { - "id": "0x55a30329ba70-AttrSpec", + "id": "0x564807c7fa00-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x55a30329ba70-ArraySpec" + "ArraySpec": "0x564807c7fa00-ArraySpec" }, { - "id": "0x55a30329ba70-ArraySpec", + "id": "0x564807c7fa00-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55a303293de0-ExplicitShapeSpec" + "0x564807c77cd0-ExplicitShapeSpec" ] }, { - "id": "0x55a303293de0-ExplicitShapeSpec", - "upper_bound": "0x55a303293de0-SpecificationExpr" + "id": "0x564807c77cd0-ExplicitShapeSpec", + "upper_bound": "0x564807c77cd0-SpecificationExpr" }, { - "id": "0x55a303293de0-SpecificationExpr", - "Expr": "0x55a3031f7790-Expr" + "id": "0x564807c77cd0-SpecificationExpr", + "Expr": "0x564807bdb790-Expr" }, { - "id": "0x55a3031f7790-Expr", + "id": "0x564807bdb790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a3031f77b0-LiteralConstant" + "LiteralConstant": "0x564807bdb7b0-LiteralConstant" }, { - "id": "0x55a3031f77b0-LiteralConstant", + "id": "0x564807bdb7b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a3031f77b0-IntLiteralConstant" + "IntLiteralConstant": "0x564807bdb7b0-IntLiteralConstant" }, { - "id": "0x55a3031f77b0-IntLiteralConstant", + "id": "0x564807bdb7b0-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x55a303282e00-EntityDecl", - "Name": "0x55a303282eb8-Name" + "id": "0x564807c66cc0-EntityDecl", + "Name": "0x564807c66d78-Name" }, { - "id": "0x55a303282eb8-Name", + "id": "0x564807c66d78-Name", "source": "arr1" }, { - "id": "0x55a303282c20-EntityDecl", - "Name": "0x55a303282cd8-Name" + "id": "0x564807c66ae0-EntityDecl", + "Name": "0x564807c66b98-Name" }, { - "id": "0x55a303282cd8-Name", + "id": "0x564807c66b98-Name", "source": "arr2" }, { - "id": "0x55a303282d10-EntityDecl", - "Name": "0x55a303282dc8-Name" + "id": "0x564807c66bd0-EntityDecl", + "Name": "0x564807c66c88-Name" }, { - "id": "0x55a303282dc8-Name", + "id": "0x564807c66c88-Name", "source": "arr3" }, { - "id": "0x55a303283370-DeclarationConstruct", + "id": "0x564807c671d0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55a303283370-SpecificationConstruct" + "SpecificationConstruct": "0x564807c671d0-SpecificationConstruct" }, { - "id": "0x55a303283370-SpecificationConstruct", + "id": "0x564807c671d0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55a303283370-Statement" + "Statement": "0x564807c671d0-Statement" }, { - "id": "0x55a303283370-Statement", - "statement": "0x55a303282b20-TypeDeclarationStmt", + "id": "0x564807c671d0-Statement", + "statement": "0x564807c669e0-TypeDeclarationStmt", "source": "integer, dimension(10) :: arr4, arr5" }, { - "id": "0x55a303282b20-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55a303282b50-DeclarationTypeSpec", + "id": "0x564807c669e0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x564807c66a10-DeclarationTypeSpec", "AttrSpec": [ - "0x55a303294a00-AttrSpec" + "0x564807c78990-AttrSpec" ], "EntityDecl": [ - "0x55a303283280-EntityDecl", - "0x55a303283190-EntityDecl" + "0x564807c670e0-EntityDecl", + "0x564807c66ff0-EntityDecl" ] }, { - "id": "0x55a303282b50-DeclarationTypeSpec", + "id": "0x564807c66a10-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55a303282b50-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x564807c66a10-IntrinsicTypeSpec" }, { - "id": "0x55a303282b50-IntrinsicTypeSpec", + "id": "0x564807c66a10-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55a303282b50-IntegerTypeSpec" + "IntegerTypeSpec": "0x564807c66a10-IntegerTypeSpec" }, { - "id": "0x55a303282b50-IntegerTypeSpec" + "id": "0x564807c66a10-IntegerTypeSpec" }, { - "id": "0x55a303294a00-AttrSpec", + "id": "0x564807c78990-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x55a303294a00-ArraySpec" + "ArraySpec": "0x564807c78990-ArraySpec" }, { - "id": "0x55a303294a00-ArraySpec", + "id": "0x564807c78990-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55a303293e10-ExplicitShapeSpec" + "0x564807c77d00-ExplicitShapeSpec" ] }, { - "id": "0x55a303293e10-ExplicitShapeSpec", - "upper_bound": "0x55a303293e10-SpecificationExpr" + "id": "0x564807c77d00-ExplicitShapeSpec", + "upper_bound": "0x564807c77d00-SpecificationExpr" }, { - "id": "0x55a303293e10-SpecificationExpr", - "Expr": "0x55a3032830a0-Expr" + "id": "0x564807c77d00-SpecificationExpr", + "Expr": "0x564807c66f00-Expr" }, { - "id": "0x55a3032830a0-Expr", + "id": "0x564807c66f00-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a3032830c0-LiteralConstant" + "LiteralConstant": "0x564807c66f20-LiteralConstant" }, { - "id": "0x55a3032830c0-LiteralConstant", + "id": "0x564807c66f20-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a3032830c0-IntLiteralConstant" + "IntLiteralConstant": "0x564807c66f20-IntLiteralConstant" }, { - "id": "0x55a3032830c0-IntLiteralConstant", + "id": "0x564807c66f20-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x55a303283280-EntityDecl", - "Name": "0x55a303283338-Name" + "id": "0x564807c670e0-EntityDecl", + "Name": "0x564807c67198-Name" }, { - "id": "0x55a303283338-Name", + "id": "0x564807c67198-Name", "source": "arr4" }, { - "id": "0x55a303283190-EntityDecl", - "Name": "0x55a303283248-Name" + "id": "0x564807c66ff0-EntityDecl", + "Name": "0x564807c670a8-Name" }, { - "id": "0x55a303283248-Name", + "id": "0x564807c670a8-Name", "source": "arr5" }, { - "id": "0x55a303283620-DeclarationConstruct", + "id": "0x564807c67480-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55a303283620-SpecificationConstruct" + "SpecificationConstruct": "0x564807c67480-SpecificationConstruct" }, { - "id": "0x55a303283620-SpecificationConstruct", + "id": "0x564807c67480-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55a303283620-Statement" + "Statement": "0x564807c67480-Statement" }, { - "id": "0x55a303283620-Statement", - "statement": "0x55a303283020-TypeDeclarationStmt", + "id": "0x564807c67480-Statement", + "statement": "0x564807c66e80-TypeDeclarationStmt", "source": "integer, dimension(9) :: arr6" }, { - "id": "0x55a303283020-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55a303283050-DeclarationTypeSpec", + "id": "0x564807c66e80-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x564807c66eb0-DeclarationTypeSpec", "AttrSpec": [ - "0x55a303295570-AttrSpec" + "0x564807c79500-AttrSpec" ], "EntityDecl": [ - "0x55a303283530-EntityDecl" + "0x564807c67390-EntityDecl" ] }, { - "id": "0x55a303283050-DeclarationTypeSpec", + "id": "0x564807c66eb0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55a303283050-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x564807c66eb0-IntrinsicTypeSpec" }, { - "id": "0x55a303283050-IntrinsicTypeSpec", + "id": "0x564807c66eb0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55a303283050-IntegerTypeSpec" + "IntegerTypeSpec": "0x564807c66eb0-IntegerTypeSpec" }, { - "id": "0x55a303283050-IntegerTypeSpec" + "id": "0x564807c66eb0-IntegerTypeSpec" }, { - "id": "0x55a303295570-AttrSpec", + "id": "0x564807c79500-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x55a303295570-ArraySpec" + "ArraySpec": "0x564807c79500-ArraySpec" }, { - "id": "0x55a303295570-ArraySpec", + "id": "0x564807c79500-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55a303293e40-ExplicitShapeSpec" + "0x564807c77d30-ExplicitShapeSpec" ] }, { - "id": "0x55a303293e40-ExplicitShapeSpec", - "upper_bound": "0x55a303293e40-SpecificationExpr" + "id": "0x564807c77d30-ExplicitShapeSpec", + "upper_bound": "0x564807c77d30-SpecificationExpr" }, { - "id": "0x55a303293e40-SpecificationExpr", - "Expr": "0x55a303283440-Expr" + "id": "0x564807c77d30-SpecificationExpr", + "Expr": "0x564807c672a0-Expr" }, { - "id": "0x55a303283440-Expr", + "id": "0x564807c672a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303283460-LiteralConstant" + "LiteralConstant": "0x564807c672c0-LiteralConstant" }, { - "id": "0x55a303283460-LiteralConstant", + "id": "0x564807c672c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303283460-IntLiteralConstant" + "IntLiteralConstant": "0x564807c672c0-IntLiteralConstant" }, { - "id": "0x55a303283460-IntLiteralConstant", + "id": "0x564807c672c0-IntLiteralConstant", "CharBlock": "9" }, { - "id": "0x55a303283530-EntityDecl", - "Name": "0x55a3032835e8-Name" + "id": "0x564807c67390-EntityDecl", + "Name": "0x564807c67448-Name" }, { - "id": "0x55a3032835e8-Name", + "id": "0x564807c67448-Name", "source": "arr6" }, { - "id": "0x55a3032838d0-DeclarationConstruct", + "id": "0x564807c67730-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55a3032838d0-SpecificationConstruct" + "SpecificationConstruct": "0x564807c67730-SpecificationConstruct" }, { - "id": "0x55a3032838d0-SpecificationConstruct", + "id": "0x564807c67730-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55a3032838d0-Statement" + "Statement": "0x564807c67730-Statement" }, { - "id": "0x55a3032838d0-Statement", - "statement": "0x55a3032833c0-TypeDeclarationStmt", + "id": "0x564807c67730-Statement", + "statement": "0x564807c67220-TypeDeclarationStmt", "source": "integer, dimension(15) :: arr7" }, { - "id": "0x55a3032833c0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55a3032833f0-DeclarationTypeSpec", + "id": "0x564807c67220-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x564807c67250-DeclarationTypeSpec", "AttrSpec": [ - "0x55a30328ed30-AttrSpec" + "0x564807c72cc0-AttrSpec" ], "EntityDecl": [ - "0x55a3032837e0-EntityDecl" + "0x564807c67640-EntityDecl" ] }, { - "id": "0x55a3032833f0-DeclarationTypeSpec", + "id": "0x564807c67250-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55a3032833f0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x564807c67250-IntrinsicTypeSpec" }, { - "id": "0x55a3032833f0-IntrinsicTypeSpec", + "id": "0x564807c67250-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55a3032833f0-IntegerTypeSpec" + "IntegerTypeSpec": "0x564807c67250-IntegerTypeSpec" }, { - "id": "0x55a3032833f0-IntegerTypeSpec" + "id": "0x564807c67250-IntegerTypeSpec" }, { - "id": "0x55a30328ed30-AttrSpec", + "id": "0x564807c72cc0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x55a30328ed30-ArraySpec" + "ArraySpec": "0x564807c72cc0-ArraySpec" }, { - "id": "0x55a30328ed30-ArraySpec", + "id": "0x564807c72cc0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55a303293e90-ExplicitShapeSpec" + "0x564807c77d80-ExplicitShapeSpec" ] }, { - "id": "0x55a303293e90-ExplicitShapeSpec", - "upper_bound": "0x55a303293e90-SpecificationExpr" + "id": "0x564807c77d80-ExplicitShapeSpec", + "upper_bound": "0x564807c77d80-SpecificationExpr" }, { - "id": "0x55a303293e90-SpecificationExpr", - "Expr": "0x55a3032836f0-Expr" + "id": "0x564807c77d80-SpecificationExpr", + "Expr": "0x564807c67550-Expr" }, { - "id": "0x55a3032836f0-Expr", + "id": "0x564807c67550-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303283710-LiteralConstant" + "LiteralConstant": "0x564807c67570-LiteralConstant" }, { - "id": "0x55a303283710-LiteralConstant", + "id": "0x564807c67570-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303283710-IntLiteralConstant" + "IntLiteralConstant": "0x564807c67570-IntLiteralConstant" }, { - "id": "0x55a303283710-IntLiteralConstant", + "id": "0x564807c67570-IntLiteralConstant", "CharBlock": "15" }, { - "id": "0x55a3032837e0-EntityDecl", - "Name": "0x55a303283898-Name" + "id": "0x564807c67640-EntityDecl", + "Name": "0x564807c676f8-Name" }, { - "id": "0x55a303283898-Name", + "id": "0x564807c676f8-Name", "source": "arr7" }, { - "id": "0x55a30328c8f8-ExecutionPart", + "id": "0x564807c70888-ExecutionPart", "ExecutionPartConstruct": [ - "0x55a303285610-ExecutionPartConstruct", - "0x55a303285ec0-ExecutionPartConstruct", - "0x55a303286470-ExecutionPartConstruct", - "0x55a303286d20-ExecutionPartConstruct", - "0x55a3032873b0-ExecutionPartConstruct", - "0x55a303288b10-ExecutionPartConstruct", - "0x55a303289600-ExecutionPartConstruct" + "0x564807c69670-ExecutionPartConstruct", + "0x564807c69e40-ExecutionPartConstruct", + "0x564807c6a3f0-ExecutionPartConstruct", + "0x564807c6aca0-ExecutionPartConstruct", + "0x564807c6b330-ExecutionPartConstruct", + "0x564807c6ca10-ExecutionPartConstruct", + "0x564807c6d500-ExecutionPartConstruct" ] }, { - "id": "0x55a30328c8f8-ExecutionPartConstruct" + "id": "0x564807c70888-ExecutionPartConstruct" }, { - "id": "0x55a303285610-ExecutionPartConstruct", + "id": "0x564807c69670-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55a303285610-ExecutableConstruct" + "ExecutableConstruct": "0x564807c69670-ExecutableConstruct" }, { - "id": "0x55a303285610-ExecutableConstruct", + "id": "0x564807c69670-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55a303285610-Statement" + "Statement": "0x564807c69670-Statement" }, { - "id": "0x55a303285610-Statement", - "statement": "0x55a303285620-ActionStmt", + "id": "0x564807c69670-Statement", + "statement": "0x564807c69680-ActionStmt", "source": "arr1 = [(i, i = 1, 5)]" }, { - "id": "0x55a303285620-ActionStmt", + "id": "0x564807c69680-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55a303294b40-AssignmentStmt" + "AssignmentStmt": "0x564807c78ad0-AssignmentStmt" }, { - "id": "0x55a303294b40-AssignmentStmt", - "Variable": "0x55a303294c20-Variable", - "Expr": "0x55a303294b50-Expr" + "id": "0x564807c78ad0-AssignmentStmt", + "Variable": "0x564807c78bb0-Variable", + "Expr": "0x564807c78ae0-Expr" }, { - "id": "0x55a303294c20-Variable", + "id": "0x564807c78bb0-Variable", "variantKey": "Designator", - "Designator": "0x55a303284320-Designator" + "Designator": "0x564807c67ec0-Designator" }, { - "id": "0x55a303284320-Designator", + "id": "0x564807c67ec0-Designator", "variantKey": "DataRef", - "DataRef": "0x55a303284330-DataRef" + "DataRef": "0x564807c67ed0-DataRef" }, { - "id": "0x55a303284330-DataRef", + "id": "0x564807c67ed0-DataRef", "variantKey": "Name", - "Name": "0x55a303284330-Name" + "Name": "0x564807c67ed0-Name" }, { - "id": "0x55a303284330-Name", + "id": "0x564807c67ed0-Name", "source": "arr1" }, { - "id": "0x55a303294b50-Expr", + "id": "0x564807c78ae0-Expr", "variantKey": "ArrayConstructor", - "ArrayConstructor": "0x55a303294b70-ArrayConstructor" + "ArrayConstructor": "0x564807c78b00-ArrayConstructor" }, { - "id": "0x55a303294b70-ArrayConstructor", - "AcSpec": "0x55a303294b70-AcSpec" + "id": "0x564807c78b00-ArrayConstructor", + "AcSpec": "0x564807c78b00-AcSpec" }, { - "id": "0x55a303294b70-AcSpec", + "id": "0x564807c78b00-AcSpec", "values": [ - "0x55a303292af0-AcValue" + "0x564807c769e0-AcValue" ] }, { - "id": "0x55a303292af0-AcValue", + "id": "0x564807c769e0-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x55a3032839a0-AcImpliedDo" + "AcImpliedDo": "0x564807c674d0-AcImpliedDo" }, { - "id": "0x55a3032839a0-AcImpliedDo", + "id": "0x564807c674d0-AcImpliedDo", "AcValue": [ - "0x55a3032931d0-AcValue" + "0x564807c770c0-AcValue" ], - "AcImpliedDoControl": "0x55a3032839a0-AcImpliedDoControl" + "AcImpliedDoControl": "0x564807c674d0-AcImpliedDoControl" }, { - "id": "0x55a3032931d0-AcValue", + "id": "0x564807c770c0-AcValue", "variantKey": "Expr", - "Expr": "0x55a303284e30-Expr" + "Expr": "0x564807c68e20-Expr" }, { - "id": "0x55a303284e30-Expr", + "id": "0x564807c68e20-Expr", "variantKey": "Designator", - "Designator": "0x55a303264d90-Designator" + "Designator": "0x564807c49100-Designator" }, { - "id": "0x55a303264d90-Designator", + "id": "0x564807c49100-Designator", "variantKey": "DataRef", - "DataRef": "0x55a303264da0-DataRef" + "DataRef": "0x564807c49110-DataRef" }, { - "id": "0x55a303264da0-DataRef", + "id": "0x564807c49110-DataRef", "variantKey": "Name", - "Name": "0x55a303264da0-Name" + "Name": "0x564807c49110-Name" }, { - "id": "0x55a303264da0-Name", + "id": "0x564807c49110-Name", "source": "i" }, { - "id": "0x55a3032839a0-AcImpliedDoControl", - "value": "0x55a3032839a0-LoopBounds" + "id": "0x564807c674d0-AcImpliedDoControl", + "value": "0x564807c674d0-LoopBounds" }, { - "id": "0x55a3032839a0-LoopBounds", - "var": "0x55a3032839a0-Name", - "lower": "0x55a303285360-Expr", - "upper": "0x55a303284d50-Expr" + "id": "0x564807c674d0-LoopBounds", + "var": "0x564807c674d0-Name", + "lower": "0x564807c69350-Expr", + "upper": "0x564807c68d40-Expr" }, { - "id": "0x55a3032839a0-Name", + "id": "0x564807c674d0-Name", "source": "i" }, { - "id": "0x55a303285360-Expr", + "id": "0x564807c69350-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303285380-LiteralConstant" + "LiteralConstant": "0x564807c69370-LiteralConstant" }, { - "id": "0x55a303285380-LiteralConstant", + "id": "0x564807c69370-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303285380-IntLiteralConstant" + "IntLiteralConstant": "0x564807c69370-IntLiteralConstant" }, { - "id": "0x55a303285380-IntLiteralConstant", + "id": "0x564807c69370-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55a303284d50-Expr", + "id": "0x564807c68d40-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303284d70-LiteralConstant" + "LiteralConstant": "0x564807c68d60-LiteralConstant" }, { - "id": "0x55a303284d70-LiteralConstant", + "id": "0x564807c68d60-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303284d70-IntLiteralConstant" + "IntLiteralConstant": "0x564807c68d60-IntLiteralConstant" }, { - "id": "0x55a303284d70-IntLiteralConstant", + "id": "0x564807c68d60-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x55a303285ec0-ExecutionPartConstruct", + "id": "0x564807c69e40-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55a303285ec0-ExecutableConstruct" + "ExecutableConstruct": "0x564807c69e40-ExecutableConstruct" }, { - "id": "0x55a303285ec0-ExecutableConstruct", + "id": "0x564807c69e40-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55a303285ec0-Statement" + "Statement": "0x564807c69e40-Statement" }, { - "id": "0x55a303285ec0-Statement", - "statement": "0x55a303285ed0-ActionStmt", + "id": "0x564807c69e40-Statement", + "statement": "0x564807c69e50-ActionStmt", "source": "arr2 = [(i * 10, i = 1, 5)]" }, { - "id": "0x55a303285ed0-ActionStmt", + "id": "0x564807c69e50-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55a303285d30-AssignmentStmt" + "AssignmentStmt": "0x564807c69cb0-AssignmentStmt" }, { - "id": "0x55a303285d30-AssignmentStmt", - "Variable": "0x55a303285e10-Variable", - "Expr": "0x55a303285d40-Expr" + "id": "0x564807c69cb0-AssignmentStmt", + "Variable": "0x564807c69d90-Variable", + "Expr": "0x564807c69cc0-Expr" }, { - "id": "0x55a303285e10-Variable", + "id": "0x564807c69d90-Variable", "variantKey": "Designator", - "Designator": "0x55a303284c80-Designator" + "Designator": "0x564807c68c70-Designator" }, { - "id": "0x55a303284c80-Designator", + "id": "0x564807c68c70-Designator", "variantKey": "DataRef", - "DataRef": "0x55a303284c90-DataRef" + "DataRef": "0x564807c68c80-DataRef" }, { - "id": "0x55a303284c90-DataRef", + "id": "0x564807c68c80-DataRef", "variantKey": "Name", - "Name": "0x55a303284c90-Name" + "Name": "0x564807c68c80-Name" }, { - "id": "0x55a303284c90-Name", + "id": "0x564807c68c80-Name", "source": "arr2" }, { - "id": "0x55a303285d40-Expr", + "id": "0x564807c69cc0-Expr", "variantKey": "ArrayConstructor", - "ArrayConstructor": "0x55a303285d60-ArrayConstructor" + "ArrayConstructor": "0x564807c69ce0-ArrayConstructor" }, { - "id": "0x55a303285d60-ArrayConstructor", - "AcSpec": "0x55a303285d60-AcSpec" + "id": "0x564807c69ce0-ArrayConstructor", + "AcSpec": "0x564807c69ce0-AcSpec" }, { - "id": "0x55a303285d60-AcSpec", + "id": "0x564807c69ce0-AcSpec", "values": [ - "0x55a303293690-AcValue" + "0x564807c77580-AcValue" ] }, { - "id": "0x55a303293690-AcValue", + "id": "0x564807c77580-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x55a303294650-AcImpliedDo" + "AcImpliedDo": "0x564807c67800-AcImpliedDo" }, { - "id": "0x55a303294650-AcImpliedDo", + "id": "0x564807c67800-AcImpliedDo", "AcValue": [ - "0x55a303293290-AcValue" + "0x564807c77180-AcValue" ], - "AcImpliedDoControl": "0x55a303294650-AcImpliedDoControl" + "AcImpliedDoControl": "0x564807c67800-AcImpliedDoControl" }, { - "id": "0x55a303293290-AcValue", + "id": "0x564807c77180-AcValue", "variantKey": "Expr", - "Expr": "0x55a3032859c0-Expr" + "Expr": "0x564807c69940-Expr" }, { - "id": "0x55a3032859c0-Expr", + "id": "0x564807c69940-Expr", "variantKey": "Multiply", - "Multiply": "0x55a3032859e0-Multiply" + "Multiply": "0x564807c69960-Multiply" }, { - "id": "0x55a3032859e0-Multiply", - "left": "0x55a3032858e0-Expr", - "right": "0x55a303285660-Expr", + "id": "0x564807c69960-Multiply", + "left": "0x564807c69860-Expr", + "right": "0x564807c683d0-Expr", "op": "MULTIPLY" }, { - "id": "0x55a3032858e0-Expr", + "id": "0x564807c69860-Expr", "variantKey": "Designator", - "Designator": "0x55a303285880-Designator" + "Designator": "0x564807c69800-Designator" }, { - "id": "0x55a303285880-Designator", + "id": "0x564807c69800-Designator", "variantKey": "DataRef", - "DataRef": "0x55a303285890-DataRef" + "DataRef": "0x564807c69810-DataRef" }, { - "id": "0x55a303285890-DataRef", + "id": "0x564807c69810-DataRef", "variantKey": "Name", - "Name": "0x55a303285890-Name" + "Name": "0x564807c69810-Name" }, { - "id": "0x55a303285890-Name", + "id": "0x564807c69810-Name", "source": "i" }, { - "id": "0x55a303285660-Expr", + "id": "0x564807c683d0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303285680-LiteralConstant" + "LiteralConstant": "0x564807c683f0-LiteralConstant" }, { - "id": "0x55a303285680-LiteralConstant", + "id": "0x564807c683f0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303285680-IntLiteralConstant" + "IntLiteralConstant": "0x564807c683f0-IntLiteralConstant" }, { - "id": "0x55a303285680-IntLiteralConstant", + "id": "0x564807c683f0-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x55a303294650-AcImpliedDoControl", - "value": "0x55a303294650-LoopBounds" + "id": "0x564807c67800-AcImpliedDoControl", + "value": "0x564807c67800-LoopBounds" }, { - "id": "0x55a303294650-LoopBounds", - "var": "0x55a303294650-Name", - "lower": "0x55a303285740-Expr", - "upper": "0x55a303285b00-Expr" + "id": "0x564807c67800-LoopBounds", + "var": "0x564807c67800-Name", + "lower": "0x564807c696c0-Expr", + "upper": "0x564807c69a80-Expr" }, { - "id": "0x55a303294650-Name", + "id": "0x564807c67800-Name", "source": "i" }, { - "id": "0x55a303285740-Expr", + "id": "0x564807c696c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303285760-LiteralConstant" + "LiteralConstant": "0x564807c696e0-LiteralConstant" }, { - "id": "0x55a303285760-LiteralConstant", + "id": "0x564807c696e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303285760-IntLiteralConstant" + "IntLiteralConstant": "0x564807c696e0-IntLiteralConstant" }, { - "id": "0x55a303285760-IntLiteralConstant", + "id": "0x564807c696e0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55a303285b00-Expr", + "id": "0x564807c69a80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303285b20-LiteralConstant" + "LiteralConstant": "0x564807c69aa0-LiteralConstant" }, { - "id": "0x55a303285b20-LiteralConstant", + "id": "0x564807c69aa0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303285b20-IntLiteralConstant" + "IntLiteralConstant": "0x564807c69aa0-IntLiteralConstant" }, { - "id": "0x55a303285b20-IntLiteralConstant", + "id": "0x564807c69aa0-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x55a303286470-ExecutionPartConstruct", + "id": "0x564807c6a3f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55a303286470-ExecutableConstruct" + "ExecutableConstruct": "0x564807c6a3f0-ExecutableConstruct" }, { - "id": "0x55a303286470-ExecutableConstruct", + "id": "0x564807c6a3f0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55a303286470-Statement" + "Statement": "0x564807c6a3f0-Statement" }, { - "id": "0x55a303286470-Statement", - "statement": "0x55a303286480-ActionStmt", + "id": "0x564807c6a3f0-Statement", + "statement": "0x564807c6a400-ActionStmt", "source": "arr3 = [(i, i = 1, 9, 2)]" }, { - "id": "0x55a303286480-ActionStmt", + "id": "0x564807c6a400-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55a303286350-AssignmentStmt" + "AssignmentStmt": "0x564807c6a2d0-AssignmentStmt" }, { - "id": "0x55a303286350-AssignmentStmt", - "Variable": "0x55a303286430-Variable", - "Expr": "0x55a303286360-Expr" + "id": "0x564807c6a2d0-AssignmentStmt", + "Variable": "0x564807c6a3b0-Variable", + "Expr": "0x564807c6a2e0-Expr" }, { - "id": "0x55a303286430-Variable", + "id": "0x564807c6a3b0-Variable", "variantKey": "Designator", - "Designator": "0x55a303284a60-Designator" + "Designator": "0x564807c68a50-Designator" }, { - "id": "0x55a303284a60-Designator", + "id": "0x564807c68a50-Designator", "variantKey": "DataRef", - "DataRef": "0x55a303284a70-DataRef" + "DataRef": "0x564807c68a60-DataRef" }, { - "id": "0x55a303284a70-DataRef", + "id": "0x564807c68a60-DataRef", "variantKey": "Name", - "Name": "0x55a303284a70-Name" + "Name": "0x564807c68a60-Name" }, { - "id": "0x55a303284a70-Name", + "id": "0x564807c68a60-Name", "source": "arr3" }, { - "id": "0x55a303286360-Expr", + "id": "0x564807c6a2e0-Expr", "variantKey": "ArrayConstructor", - "ArrayConstructor": "0x55a303286380-ArrayConstructor" + "ArrayConstructor": "0x564807c6a300-ArrayConstructor" }, { - "id": "0x55a303286380-ArrayConstructor", - "AcSpec": "0x55a303286380-AcSpec" + "id": "0x564807c6a300-ArrayConstructor", + "AcSpec": "0x564807c6a300-AcSpec" }, { - "id": "0x55a303286380-AcSpec", + "id": "0x564807c6a300-AcSpec", "values": [ - "0x55a303293f20-AcValue" + "0x564807c77e10-AcValue" ] }, { - "id": "0x55a303293f20-AcValue", + "id": "0x564807c77e10-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x55a30329b7f0-AcImpliedDo" + "AcImpliedDo": "0x564807c68650-AcImpliedDo" }, { - "id": "0x55a30329b7f0-AcImpliedDo", + "id": "0x564807c68650-AcImpliedDo", "AcValue": [ - "0x55a303293ec0-AcValue" + "0x564807c77db0-AcValue" ], - "AcImpliedDoControl": "0x55a30329b7f0-AcImpliedDoControl" + "AcImpliedDoControl": "0x564807c68650-AcImpliedDoControl" }, { - "id": "0x55a303293ec0-AcValue", + "id": "0x564807c77db0-AcValue", "variantKey": "Expr", - "Expr": "0x55a303285f10-Expr" + "Expr": "0x564807c69e90-Expr" }, { - "id": "0x55a303285f10-Expr", + "id": "0x564807c69e90-Expr", "variantKey": "Designator", - "Designator": "0x55a303285140-Designator" + "Designator": "0x564807c69130-Designator" }, { - "id": "0x55a303285140-Designator", + "id": "0x564807c69130-Designator", "variantKey": "DataRef", - "DataRef": "0x55a303285150-DataRef" + "DataRef": "0x564807c69140-DataRef" }, { - "id": "0x55a303285150-DataRef", + "id": "0x564807c69140-DataRef", "variantKey": "Name", - "Name": "0x55a303285150-Name" + "Name": "0x564807c69140-Name" }, { - "id": "0x55a303285150-Name", + "id": "0x564807c69140-Name", "source": "i" }, { - "id": "0x55a30329b7f0-AcImpliedDoControl", - "value": "0x55a30329b7f0-LoopBounds" + "id": "0x564807c68650-AcImpliedDoControl", + "value": "0x564807c68650-LoopBounds" }, { - "id": "0x55a30329b7f0-LoopBounds", - "var": "0x55a30329b7f0-Name", - "lower": "0x55a303285ff0-Expr", - "upper": "0x55a303286130-Expr", - "step": "0x55a303286270-Expr" + "id": "0x564807c68650-LoopBounds", + "var": "0x564807c68650-Name", + "lower": "0x564807c69f70-Expr", + "upper": "0x564807c6a0b0-Expr", + "step": "0x564807c6a1f0-Expr" }, { - "id": "0x55a30329b7f0-Name", + "id": "0x564807c68650-Name", "source": "i" }, { - "id": "0x55a303285ff0-Expr", + "id": "0x564807c69f70-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303286010-LiteralConstant" + "LiteralConstant": "0x564807c69f90-LiteralConstant" }, { - "id": "0x55a303286010-LiteralConstant", + "id": "0x564807c69f90-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303286010-IntLiteralConstant" + "IntLiteralConstant": "0x564807c69f90-IntLiteralConstant" }, { - "id": "0x55a303286010-IntLiteralConstant", + "id": "0x564807c69f90-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55a303286130-Expr", + "id": "0x564807c6a0b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303286150-LiteralConstant" + "LiteralConstant": "0x564807c6a0d0-LiteralConstant" }, { - "id": "0x55a303286150-LiteralConstant", + "id": "0x564807c6a0d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303286150-IntLiteralConstant" + "IntLiteralConstant": "0x564807c6a0d0-IntLiteralConstant" }, { - "id": "0x55a303286150-IntLiteralConstant", + "id": "0x564807c6a0d0-IntLiteralConstant", "CharBlock": "9" }, { - "id": "0x55a303286270-Expr", + "id": "0x564807c6a1f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303286290-LiteralConstant" + "LiteralConstant": "0x564807c6a210-LiteralConstant" }, { - "id": "0x55a303286290-LiteralConstant", + "id": "0x564807c6a210-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303286290-IntLiteralConstant" + "IntLiteralConstant": "0x564807c6a210-IntLiteralConstant" }, { - "id": "0x55a303286290-IntLiteralConstant", + "id": "0x564807c6a210-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x55a303286d20-ExecutionPartConstruct", + "id": "0x564807c6aca0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55a303286d20-ExecutableConstruct" + "ExecutableConstruct": "0x564807c6aca0-ExecutableConstruct" }, { - "id": "0x55a303286d20-ExecutableConstruct", + "id": "0x564807c6aca0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55a303286d20-Statement" + "Statement": "0x564807c6aca0-Statement" }, { - "id": "0x55a303286d20-Statement", - "statement": "0x55a303286d30-ActionStmt", + "id": "0x564807c6aca0-Statement", + "statement": "0x564807c6acb0-ActionStmt", "source": "arr4 = [0,(i, i = 1, 8), 99]" }, { - "id": "0x55a303286d30-ActionStmt", + "id": "0x564807c6acb0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55a303286b90-AssignmentStmt" + "AssignmentStmt": "0x564807c6ab10-AssignmentStmt" }, { - "id": "0x55a303286b90-AssignmentStmt", - "Variable": "0x55a303286c70-Variable", - "Expr": "0x55a303286ba0-Expr" + "id": "0x564807c6ab10-AssignmentStmt", + "Variable": "0x564807c6abf0-Variable", + "Expr": "0x564807c6ab20-Expr" }, { - "id": "0x55a303286c70-Variable", + "id": "0x564807c6abf0-Variable", "variantKey": "Designator", - "Designator": "0x55a303285aa0-Designator" + "Designator": "0x564807c69a20-Designator" }, { - "id": "0x55a303285aa0-Designator", + "id": "0x564807c69a20-Designator", "variantKey": "DataRef", - "DataRef": "0x55a303285ab0-DataRef" + "DataRef": "0x564807c69a30-DataRef" }, { - "id": "0x55a303285ab0-DataRef", + "id": "0x564807c69a30-DataRef", "variantKey": "Name", - "Name": "0x55a303285ab0-Name" + "Name": "0x564807c69a30-Name" }, { - "id": "0x55a303285ab0-Name", + "id": "0x564807c69a30-Name", "source": "arr4" }, { - "id": "0x55a303286ba0-Expr", + "id": "0x564807c6ab20-Expr", "variantKey": "ArrayConstructor", - "ArrayConstructor": "0x55a303286bc0-ArrayConstructor" + "ArrayConstructor": "0x564807c6ab40-ArrayConstructor" }, { - "id": "0x55a303286bc0-ArrayConstructor", - "AcSpec": "0x55a303286bc0-AcSpec" + "id": "0x564807c6ab40-ArrayConstructor", + "AcSpec": "0x564807c6ab40-AcSpec" }, { - "id": "0x55a303286bc0-AcSpec", + "id": "0x564807c6ab40-AcSpec", "values": [ - "0x55a3032928f0-AcValue", - "0x55a303292a70-AcValue", - "0x55a303292840-AcValue" + "0x564807c767e0-AcValue", + "0x564807c76960-AcValue", + "0x564807c76730-AcValue" ] }, { - "id": "0x55a3032928f0-AcValue", + "id": "0x564807c767e0-AcValue", "variantKey": "Expr", - "Expr": "0x55a3032864c0-Expr" + "Expr": "0x564807c6a440-Expr" }, { - "id": "0x55a3032864c0-Expr", + "id": "0x564807c6a440-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a3032864e0-LiteralConstant" + "LiteralConstant": "0x564807c6a460-LiteralConstant" }, { - "id": "0x55a3032864e0-LiteralConstant", + "id": "0x564807c6a460-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a3032864e0-IntLiteralConstant" + "IntLiteralConstant": "0x564807c6a460-IntLiteralConstant" }, { - "id": "0x55a3032864e0-IntLiteralConstant", + "id": "0x564807c6a460-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55a303292a70-AcValue", + "id": "0x564807c76960-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x55a303283920-AcImpliedDo" + "AcImpliedDo": "0x564807c7f6f0-AcImpliedDo" }, { - "id": "0x55a303283920-AcImpliedDo", + "id": "0x564807c7f6f0-AcImpliedDo", "AcValue": [ - "0x55a303293f60-AcValue" + "0x564807c77e50-AcValue" ], - "AcImpliedDoControl": "0x55a303283920-AcImpliedDoControl" + "AcImpliedDoControl": "0x564807c7f6f0-AcImpliedDoControl" }, { - "id": "0x55a303293f60-AcValue", + "id": "0x564807c77e50-AcValue", "variantKey": "Expr", - "Expr": "0x55a303286600-Expr" + "Expr": "0x564807c6a580-Expr" }, { - "id": "0x55a303286600-Expr", + "id": "0x564807c6a580-Expr", "variantKey": "Designator", - "Designator": "0x55a3032865a0-Designator" + "Designator": "0x564807c6a520-Designator" }, { - "id": "0x55a3032865a0-Designator", + "id": "0x564807c6a520-Designator", "variantKey": "DataRef", - "DataRef": "0x55a3032865b0-DataRef" + "DataRef": "0x564807c6a530-DataRef" }, { - "id": "0x55a3032865b0-DataRef", + "id": "0x564807c6a530-DataRef", "variantKey": "Name", - "Name": "0x55a3032865b0-Name" + "Name": "0x564807c6a530-Name" }, { - "id": "0x55a3032865b0-Name", + "id": "0x564807c6a530-Name", "source": "i" }, { - "id": "0x55a303283920-AcImpliedDoControl", - "value": "0x55a303283920-LoopBounds" + "id": "0x564807c7f6f0-AcImpliedDoControl", + "value": "0x564807c7f6f0-LoopBounds" }, { - "id": "0x55a303283920-LoopBounds", - "var": "0x55a303283920-Name", - "lower": "0x55a3032866e0-Expr", - "upper": "0x55a303286820-Expr" + "id": "0x564807c7f6f0-LoopBounds", + "var": "0x564807c7f6f0-Name", + "lower": "0x564807c6a660-Expr", + "upper": "0x564807c6a7a0-Expr" }, { - "id": "0x55a303283920-Name", + "id": "0x564807c7f6f0-Name", "source": "i" }, { - "id": "0x55a3032866e0-Expr", + "id": "0x564807c6a660-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303286700-LiteralConstant" + "LiteralConstant": "0x564807c6a680-LiteralConstant" }, { - "id": "0x55a303286700-LiteralConstant", + "id": "0x564807c6a680-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303286700-IntLiteralConstant" + "IntLiteralConstant": "0x564807c6a680-IntLiteralConstant" }, { - "id": "0x55a303286700-IntLiteralConstant", + "id": "0x564807c6a680-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55a303286820-Expr", + "id": "0x564807c6a7a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303286840-LiteralConstant" + "LiteralConstant": "0x564807c6a7c0-LiteralConstant" }, { - "id": "0x55a303286840-LiteralConstant", + "id": "0x564807c6a7c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303286840-IntLiteralConstant" + "IntLiteralConstant": "0x564807c6a7c0-IntLiteralConstant" }, { - "id": "0x55a303286840-IntLiteralConstant", + "id": "0x564807c6a7c0-IntLiteralConstant", "CharBlock": "8" }, { - "id": "0x55a303292840-AcValue", + "id": "0x564807c76730-AcValue", "variantKey": "Expr", - "Expr": "0x55a303286960-Expr" + "Expr": "0x564807c6a8e0-Expr" }, { - "id": "0x55a303286960-Expr", + "id": "0x564807c6a8e0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303286980-LiteralConstant" + "LiteralConstant": "0x564807c6a900-LiteralConstant" }, { - "id": "0x55a303286980-LiteralConstant", + "id": "0x564807c6a900-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303286980-IntLiteralConstant" + "IntLiteralConstant": "0x564807c6a900-IntLiteralConstant" }, { - "id": "0x55a303286980-IntLiteralConstant", + "id": "0x564807c6a900-IntLiteralConstant", "CharBlock": "99" }, { - "id": "0x55a3032873b0-ExecutionPartConstruct", + "id": "0x564807c6b330-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55a3032873b0-ExecutableConstruct" + "ExecutableConstruct": "0x564807c6b330-ExecutableConstruct" }, { - "id": "0x55a3032873b0-ExecutableConstruct", + "id": "0x564807c6b330-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55a3032873b0-Statement" + "Statement": "0x564807c6b330-Statement" }, { - "id": "0x55a3032873b0-Statement", - "statement": "0x55a3032873c0-ActionStmt", + "id": "0x564807c6b330-Statement", + "statement": "0x564807c6b340-ActionStmt", "source": "arr5 = [integer ::(i * 2, i = 1, 10)]" }, { - "id": "0x55a3032873c0-ActionStmt", + "id": "0x564807c6b340-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55a303287290-AssignmentStmt" + "AssignmentStmt": "0x564807c6b210-AssignmentStmt" }, { - "id": "0x55a303287290-AssignmentStmt", - "Variable": "0x55a303287370-Variable", - "Expr": "0x55a3032872a0-Expr" + "id": "0x564807c6b210-AssignmentStmt", + "Variable": "0x564807c6b2f0-Variable", + "Expr": "0x564807c6b220-Expr" }, { - "id": "0x55a303287370-Variable", + "id": "0x564807c6b2f0-Variable", "variantKey": "Designator", - "Designator": "0x55a3032845f0-Designator" + "Designator": "0x564807c67ad0-Designator" }, { - "id": "0x55a3032845f0-Designator", + "id": "0x564807c67ad0-Designator", "variantKey": "DataRef", - "DataRef": "0x55a303284600-DataRef" + "DataRef": "0x564807c67ae0-DataRef" }, { - "id": "0x55a303284600-DataRef", + "id": "0x564807c67ae0-DataRef", "variantKey": "Name", - "Name": "0x55a303284600-Name" + "Name": "0x564807c67ae0-Name" }, { - "id": "0x55a303284600-Name", + "id": "0x564807c67ae0-Name", "source": "arr5" }, { - "id": "0x55a3032872a0-Expr", + "id": "0x564807c6b220-Expr", "variantKey": "ArrayConstructor", - "ArrayConstructor": "0x55a3032872c0-ArrayConstructor" + "ArrayConstructor": "0x564807c6b240-ArrayConstructor" }, { - "id": "0x55a3032872c0-ArrayConstructor", - "AcSpec": "0x55a3032872c0-AcSpec" + "id": "0x564807c6b240-ArrayConstructor", + "AcSpec": "0x564807c6b240-AcSpec" }, { - "id": "0x55a3032872c0-AcSpec", - "type": "0x55a3032872d8-TypeSpec", + "id": "0x564807c6b240-AcSpec", + "type": "0x564807c6b258-TypeSpec", "values": [ - "0x55a303292930-AcValue" + "0x564807c76820-AcValue" ] }, { - "id": "0x55a3032872d8-TypeSpec", + "id": "0x564807c6b258-TypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55a3032872e0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x564807c6b260-IntrinsicTypeSpec" }, { - "id": "0x55a3032872e0-IntrinsicTypeSpec", + "id": "0x564807c6b260-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55a3032872e0-IntegerTypeSpec" + "IntegerTypeSpec": "0x564807c6b260-IntegerTypeSpec" }, { - "id": "0x55a3032872e0-IntegerTypeSpec" + "id": "0x564807c6b260-IntegerTypeSpec" }, { - "id": "0x55a303292930-AcValue", + "id": "0x564807c76820-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x55a303270ae0-AcImpliedDo" + "AcImpliedDo": "0x564807c67780-AcImpliedDo" }, { - "id": "0x55a303270ae0-AcImpliedDo", + "id": "0x564807c67780-AcImpliedDo", "AcValue": [ - "0x55a3032928b0-AcValue" + "0x564807c767a0-AcValue" ], - "AcImpliedDoControl": "0x55a303270ae0-AcImpliedDoControl" + "AcImpliedDoControl": "0x564807c67780-AcImpliedDoControl" }, { - "id": "0x55a3032928b0-AcValue", + "id": "0x564807c767a0-AcValue", "variantKey": "Expr", - "Expr": "0x55a303287070-Expr" + "Expr": "0x564807c6aff0-Expr" }, { - "id": "0x55a303287070-Expr", + "id": "0x564807c6aff0-Expr", "variantKey": "Multiply", - "Multiply": "0x55a303287090-Multiply" + "Multiply": "0x564807c6b010-Multiply" }, { - "id": "0x55a303287090-Multiply", - "left": "0x55a303286f90-Expr", - "right": "0x55a303286d70-Expr", + "id": "0x564807c6b010-Multiply", + "left": "0x564807c6af10-Expr", + "right": "0x564807c6acf0-Expr", "op": "MULTIPLY" }, { - "id": "0x55a303286f90-Expr", + "id": "0x564807c6af10-Expr", "variantKey": "Designator", - "Designator": "0x55a303286f30-Designator" + "Designator": "0x564807c6aeb0-Designator" }, { - "id": "0x55a303286f30-Designator", + "id": "0x564807c6aeb0-Designator", "variantKey": "DataRef", - "DataRef": "0x55a303286f40-DataRef" + "DataRef": "0x564807c6aec0-DataRef" }, { - "id": "0x55a303286f40-DataRef", + "id": "0x564807c6aec0-DataRef", "variantKey": "Name", - "Name": "0x55a303286f40-Name" + "Name": "0x564807c6aec0-Name" }, { - "id": "0x55a303286f40-Name", + "id": "0x564807c6aec0-Name", "source": "i" }, { - "id": "0x55a303286d70-Expr", + "id": "0x564807c6acf0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303286d90-LiteralConstant" + "LiteralConstant": "0x564807c6ad10-LiteralConstant" }, { - "id": "0x55a303286d90-LiteralConstant", + "id": "0x564807c6ad10-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303286d90-IntLiteralConstant" + "IntLiteralConstant": "0x564807c6ad10-IntLiteralConstant" }, { - "id": "0x55a303286d90-IntLiteralConstant", + "id": "0x564807c6ad10-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x55a303270ae0-AcImpliedDoControl", - "value": "0x55a303270ae0-LoopBounds" + "id": "0x564807c67780-AcImpliedDoControl", + "value": "0x564807c67780-LoopBounds" }, { - "id": "0x55a303270ae0-LoopBounds", - "var": "0x55a303270ae0-Name", - "lower": "0x55a303286e50-Expr", - "upper": "0x55a3032871b0-Expr" + "id": "0x564807c67780-LoopBounds", + "var": "0x564807c67780-Name", + "lower": "0x564807c6add0-Expr", + "upper": "0x564807c6b130-Expr" }, { - "id": "0x55a303270ae0-Name", + "id": "0x564807c67780-Name", "source": "i" }, { - "id": "0x55a303286e50-Expr", + "id": "0x564807c6add0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303286e70-LiteralConstant" + "LiteralConstant": "0x564807c6adf0-LiteralConstant" }, { - "id": "0x55a303286e70-LiteralConstant", + "id": "0x564807c6adf0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303286e70-IntLiteralConstant" + "IntLiteralConstant": "0x564807c6adf0-IntLiteralConstant" }, { - "id": "0x55a303286e70-IntLiteralConstant", + "id": "0x564807c6adf0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55a3032871b0-Expr", + "id": "0x564807c6b130-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a3032871d0-LiteralConstant" + "LiteralConstant": "0x564807c6b150-LiteralConstant" }, { - "id": "0x55a3032871d0-LiteralConstant", + "id": "0x564807c6b150-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a3032871d0-IntLiteralConstant" + "IntLiteralConstant": "0x564807c6b150-IntLiteralConstant" }, { - "id": "0x55a3032871d0-IntLiteralConstant", + "id": "0x564807c6b150-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x55a303288b10-ExecutionPartConstruct", + "id": "0x564807c6ca10-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55a303288b10-ExecutableConstruct" + "ExecutableConstruct": "0x564807c6ca10-ExecutableConstruct" }, { - "id": "0x55a303288b10-ExecutableConstruct", + "id": "0x564807c6ca10-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55a303288b10-Statement" + "Statement": "0x564807c6ca10-Statement" }, { - "id": "0x55a303288b10-Statement", - "statement": "0x55a303288b20-ActionStmt", + "id": "0x564807c6ca10-Statement", + "statement": "0x564807c6ca20-ActionStmt", "source": "arr6 = [((i + j, i = 1, 3), j = 1, 3)]" }, { - "id": "0x55a303288b20-ActionStmt", + "id": "0x564807c6ca20-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55a303288980-AssignmentStmt" + "AssignmentStmt": "0x564807c6c880-AssignmentStmt" }, { - "id": "0x55a303288980-AssignmentStmt", - "Variable": "0x55a303288a60-Variable", - "Expr": "0x55a303288990-Expr" + "id": "0x564807c6c880-AssignmentStmt", + "Variable": "0x564807c6c960-Variable", + "Expr": "0x564807c6c890-Expr" }, { - "id": "0x55a303288a60-Variable", + "id": "0x564807c6c960-Variable", "variantKey": "Designator", - "Designator": "0x55a303294870-Designator" + "Designator": "0x564807c785f0-Designator" }, { - "id": "0x55a303294870-Designator", + "id": "0x564807c785f0-Designator", "variantKey": "DataRef", - "DataRef": "0x55a303294880-DataRef" + "DataRef": "0x564807c78600-DataRef" }, { - "id": "0x55a303294880-DataRef", + "id": "0x564807c78600-DataRef", "variantKey": "Name", - "Name": "0x55a303294880-Name" + "Name": "0x564807c78600-Name" }, { - "id": "0x55a303294880-Name", + "id": "0x564807c78600-Name", "source": "arr6" }, { - "id": "0x55a303288990-Expr", + "id": "0x564807c6c890-Expr", "variantKey": "ArrayConstructor", - "ArrayConstructor": "0x55a3032889b0-ArrayConstructor" + "ArrayConstructor": "0x564807c6c8b0-ArrayConstructor" }, { - "id": "0x55a3032889b0-ArrayConstructor", - "AcSpec": "0x55a3032889b0-AcSpec" + "id": "0x564807c6c8b0-ArrayConstructor", + "AcSpec": "0x564807c6c8b0-AcSpec" }, { - "id": "0x55a3032889b0-AcSpec", + "id": "0x564807c6c8b0-AcSpec", "values": [ - "0x55a303292a30-AcValue" + "0x564807c76920-AcValue" ] }, { - "id": "0x55a303292a30-AcValue", + "id": "0x564807c76920-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x55a3032945d0-AcImpliedDo" + "AcImpliedDo": "0x564807c67880-AcImpliedDo" }, { - "id": "0x55a3032945d0-AcImpliedDo", + "id": "0x564807c67880-AcImpliedDo", "AcValue": [ - "0x55a3032929d0-AcValue" + "0x564807c768c0-AcValue" ], - "AcImpliedDoControl": "0x55a3032945d0-AcImpliedDoControl" + "AcImpliedDoControl": "0x564807c67880-AcImpliedDoControl" }, { - "id": "0x55a3032929d0-AcValue", + "id": "0x564807c768c0-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x55a303283a20-AcImpliedDo" + "AcImpliedDo": "0x564807c62af0-AcImpliedDo" }, { - "id": "0x55a303283a20-AcImpliedDo", + "id": "0x564807c62af0-AcImpliedDo", "AcValue": [ - "0x55a303292990-AcValue" + "0x564807c76880-AcValue" ], - "AcImpliedDoControl": "0x55a303283a20-AcImpliedDoControl" + "AcImpliedDoControl": "0x564807c62af0-AcImpliedDoControl" }, { - "id": "0x55a303292990-AcValue", + "id": "0x564807c76880-AcValue", "variantKey": "Expr", - "Expr": "0x55a303287840-Expr" + "Expr": "0x564807c6b740-Expr" }, { - "id": "0x55a303287840-Expr", + "id": "0x564807c6b740-Expr", "variantKey": "Add", - "Add": "0x55a303287860-Add" + "Add": "0x564807c6b760-Add" }, { - "id": "0x55a303287860-Add", - "left": "0x55a303287760-Expr", - "right": "0x55a303287480-Expr", + "id": "0x564807c6b760-Add", + "left": "0x564807c6b660-Expr", + "right": "0x564807c6b380-Expr", "op": "ADD" }, { - "id": "0x55a303287760-Expr", + "id": "0x564807c6b660-Expr", "variantKey": "Designator", - "Designator": "0x55a3032867c0-Designator" + "Designator": "0x564807c6a740-Designator" }, { - "id": "0x55a3032867c0-Designator", + "id": "0x564807c6a740-Designator", "variantKey": "DataRef", - "DataRef": "0x55a3032867d0-DataRef" + "DataRef": "0x564807c6a750-DataRef" }, { - "id": "0x55a3032867d0-DataRef", + "id": "0x564807c6a750-DataRef", "variantKey": "Name", - "Name": "0x55a3032867d0-Name" + "Name": "0x564807c6a750-Name" }, { - "id": "0x55a3032867d0-Name", + "id": "0x564807c6a750-Name", "source": "i" }, { - "id": "0x55a303287480-Expr", + "id": "0x564807c6b380-Expr", "variantKey": "Designator", - "Designator": "0x55a303287700-Designator" + "Designator": "0x564807c6b600-Designator" }, { - "id": "0x55a303287700-Designator", + "id": "0x564807c6b600-Designator", "variantKey": "DataRef", - "DataRef": "0x55a303287710-DataRef" + "DataRef": "0x564807c6b610-DataRef" }, { - "id": "0x55a303287710-DataRef", + "id": "0x564807c6b610-DataRef", "variantKey": "Name", - "Name": "0x55a303287710-Name" + "Name": "0x564807c6b610-Name" }, { - "id": "0x55a303287710-Name", + "id": "0x564807c6b610-Name", "source": "j" }, { - "id": "0x55a303283a20-AcImpliedDoControl", - "value": "0x55a303283a20-LoopBounds" + "id": "0x564807c62af0-AcImpliedDoControl", + "value": "0x564807c62af0-LoopBounds" }, { - "id": "0x55a303283a20-LoopBounds", - "var": "0x55a303283a20-Name", - "lower": "0x55a303287560-Expr", - "upper": "0x55a303287c20-Expr" + "id": "0x564807c62af0-LoopBounds", + "var": "0x564807c62af0-Name", + "lower": "0x564807c6b460-Expr", + "upper": "0x564807c6bb20-Expr" }, { - "id": "0x55a303283a20-Name", + "id": "0x564807c62af0-Name", "source": "i" }, { - "id": "0x55a303287560-Expr", + "id": "0x564807c6b460-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303287580-LiteralConstant" + "LiteralConstant": "0x564807c6b480-LiteralConstant" }, { - "id": "0x55a303287580-LiteralConstant", + "id": "0x564807c6b480-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303287580-IntLiteralConstant" + "IntLiteralConstant": "0x564807c6b480-IntLiteralConstant" }, { - "id": "0x55a303287580-IntLiteralConstant", + "id": "0x564807c6b480-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55a303287c20-Expr", + "id": "0x564807c6bb20-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303287c40-LiteralConstant" + "LiteralConstant": "0x564807c6bb40-LiteralConstant" }, { - "id": "0x55a303287c40-LiteralConstant", + "id": "0x564807c6bb40-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303287c40-IntLiteralConstant" + "IntLiteralConstant": "0x564807c6bb40-IntLiteralConstant" }, { - "id": "0x55a303287c40-IntLiteralConstant", + "id": "0x564807c6bb40-IntLiteralConstant", "CharBlock": "3" }, { - "id": "0x55a3032945d0-AcImpliedDoControl", - "value": "0x55a3032945d0-LoopBounds" + "id": "0x564807c67880-AcImpliedDoControl", + "value": "0x564807c67880-LoopBounds" }, { - "id": "0x55a3032945d0-LoopBounds", - "var": "0x55a3032945d0-Name", - "lower": "0x55a303288290-Expr", - "upper": "0x55a303288750-Expr" + "id": "0x564807c67880-LoopBounds", + "var": "0x564807c67880-Name", + "lower": "0x564807c6c190-Expr", + "upper": "0x564807c6c650-Expr" }, { - "id": "0x55a3032945d0-Name", + "id": "0x564807c67880-Name", "source": "j" }, { - "id": "0x55a303288290-Expr", + "id": "0x564807c6c190-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a3032882b0-LiteralConstant" + "LiteralConstant": "0x564807c6c1b0-LiteralConstant" }, { - "id": "0x55a3032882b0-LiteralConstant", + "id": "0x564807c6c1b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a3032882b0-IntLiteralConstant" + "IntLiteralConstant": "0x564807c6c1b0-IntLiteralConstant" }, { - "id": "0x55a3032882b0-IntLiteralConstant", + "id": "0x564807c6c1b0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55a303288750-Expr", + "id": "0x564807c6c650-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303288770-LiteralConstant" + "LiteralConstant": "0x564807c6c670-LiteralConstant" }, { - "id": "0x55a303288770-LiteralConstant", + "id": "0x564807c6c670-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303288770-IntLiteralConstant" + "IntLiteralConstant": "0x564807c6c670-IntLiteralConstant" }, { - "id": "0x55a303288770-IntLiteralConstant", + "id": "0x564807c6c670-IntLiteralConstant", "CharBlock": "3" }, { - "id": "0x55a303289600-ExecutionPartConstruct", + "id": "0x564807c6d500-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55a303289600-ExecutableConstruct" + "ExecutableConstruct": "0x564807c6d500-ExecutableConstruct" }, { - "id": "0x55a303289600-ExecutableConstruct", + "id": "0x564807c6d500-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55a303289600-Statement" + "Statement": "0x564807c6d500-Statement" }, { - "id": "0x55a303289600-Statement", - "statement": "0x55a303289610-ActionStmt", + "id": "0x564807c6d500-Statement", + "statement": "0x564807c6d510-ActionStmt", "source": "arr7 = [(i, i * 10, i * 100, i = 1, 5)]" }, { - "id": "0x55a303289610-ActionStmt", + "id": "0x564807c6d510-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55a3032894e0-AssignmentStmt" + "AssignmentStmt": "0x564807c6d3e0-AssignmentStmt" }, { - "id": "0x55a3032894e0-AssignmentStmt", - "Variable": "0x55a3032895c0-Variable", - "Expr": "0x55a3032894f0-Expr" + "id": "0x564807c6d3e0-AssignmentStmt", + "Variable": "0x564807c6d4c0-Variable", + "Expr": "0x564807c6d3f0-Expr" }, { - "id": "0x55a3032895c0-Variable", + "id": "0x564807c6d4c0-Variable", "variantKey": "Designator", - "Designator": "0x55a303287a00-Designator" + "Designator": "0x564807c6b900-Designator" }, { - "id": "0x55a303287a00-Designator", + "id": "0x564807c6b900-Designator", "variantKey": "DataRef", - "DataRef": "0x55a303287a10-DataRef" + "DataRef": "0x564807c6b910-DataRef" }, { - "id": "0x55a303287a10-DataRef", + "id": "0x564807c6b910-DataRef", "variantKey": "Name", - "Name": "0x55a303287a10-Name" + "Name": "0x564807c6b910-Name" }, { - "id": "0x55a303287a10-Name", + "id": "0x564807c6b910-Name", "source": "arr7" }, { - "id": "0x55a3032894f0-Expr", + "id": "0x564807c6d3f0-Expr", "variantKey": "ArrayConstructor", - "ArrayConstructor": "0x55a303289510-ArrayConstructor" + "ArrayConstructor": "0x564807c6d410-ArrayConstructor" }, { - "id": "0x55a303289510-ArrayConstructor", - "AcSpec": "0x55a303289510-AcSpec" + "id": "0x564807c6d410-ArrayConstructor", + "AcSpec": "0x564807c6d410-AcSpec" }, { - "id": "0x55a303289510-AcSpec", + "id": "0x564807c6d410-AcSpec", "values": [ - "0x55a303292670-AcValue" + "0x564807c76560-AcValue" ] }, { - "id": "0x55a303292670-AcValue", + "id": "0x564807c76560-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x55a303287400-AcImpliedDo" + "AcImpliedDo": "0x564807c685d0-AcImpliedDo" }, { - "id": "0x55a303287400-AcImpliedDo", + "id": "0x564807c685d0-AcImpliedDo", "AcValue": [ - "0x55a303292610-AcValue", - "0x55a303292800-AcValue", - "0x55a3032925d0-AcValue" + "0x564807c76500-AcValue", + "0x564807c766f0-AcValue", + "0x564807c764c0-AcValue" ], - "AcImpliedDoControl": "0x55a303287400-AcImpliedDoControl" + "AcImpliedDoControl": "0x564807c685d0-AcImpliedDoControl" }, { - "id": "0x55a303292610-AcValue", + "id": "0x564807c76500-AcValue", "variantKey": "Expr", - "Expr": "0x55a303288da0-Expr" + "Expr": "0x564807c6cca0-Expr" }, { - "id": "0x55a303288da0-Expr", + "id": "0x564807c6cca0-Expr", "variantKey": "Designator", - "Designator": "0x55a303287150-Designator" + "Designator": "0x564807c6b0d0-Designator" }, { - "id": "0x55a303287150-Designator", + "id": "0x564807c6b0d0-Designator", "variantKey": "DataRef", - "DataRef": "0x55a303287160-DataRef" + "DataRef": "0x564807c6b0e0-DataRef" }, { - "id": "0x55a303287160-DataRef", + "id": "0x564807c6b0e0-DataRef", "variantKey": "Name", - "Name": "0x55a303287160-Name" + "Name": "0x564807c6b0e0-Name" }, { - "id": "0x55a303287160-Name", + "id": "0x564807c6b0e0-Name", "source": "i" }, { - "id": "0x55a303292800-AcValue", + "id": "0x564807c766f0-AcValue", "variantKey": "Expr", - "Expr": "0x55a303288cc0-Expr" + "Expr": "0x564807c6cbc0-Expr" }, { - "id": "0x55a303288cc0-Expr", + "id": "0x564807c6cbc0-Expr", "variantKey": "Multiply", - "Multiply": "0x55a303288ce0-Multiply" + "Multiply": "0x564807c6cbe0-Multiply" }, { - "id": "0x55a303288ce0-Multiply", - "left": "0x55a303288be0-Expr", - "right": "0x55a303288e80-Expr", + "id": "0x564807c6cbe0-Multiply", + "left": "0x564807c6cae0-Expr", + "right": "0x564807c6cd80-Expr", "op": "MULTIPLY" }, { - "id": "0x55a303288be0-Expr", + "id": "0x564807c6cae0-Expr", "variantKey": "Designator", - "Designator": "0x55a303283ce0-Designator" + "Designator": "0x564807c68150-Designator" }, { - "id": "0x55a303283ce0-Designator", + "id": "0x564807c68150-Designator", "variantKey": "DataRef", - "DataRef": "0x55a303283cf0-DataRef" + "DataRef": "0x564807c68160-DataRef" }, { - "id": "0x55a303283cf0-DataRef", + "id": "0x564807c68160-DataRef", "variantKey": "Name", - "Name": "0x55a303283cf0-Name" + "Name": "0x564807c68160-Name" }, { - "id": "0x55a303283cf0-Name", + "id": "0x564807c68160-Name", "source": "i" }, { - "id": "0x55a303288e80-Expr", + "id": "0x564807c6cd80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303288ea0-LiteralConstant" + "LiteralConstant": "0x564807c6cda0-LiteralConstant" }, { - "id": "0x55a303288ea0-LiteralConstant", + "id": "0x564807c6cda0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303288ea0-IntLiteralConstant" + "IntLiteralConstant": "0x564807c6cda0-IntLiteralConstant" }, { - "id": "0x55a303288ea0-IntLiteralConstant", + "id": "0x564807c6cda0-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x55a3032925d0-AcValue", + "id": "0x564807c764c0-AcValue", "variantKey": "Expr", - "Expr": "0x55a303289040-Expr" + "Expr": "0x564807c6cf40-Expr" }, { - "id": "0x55a303289040-Expr", + "id": "0x564807c6cf40-Expr", "variantKey": "Multiply", - "Multiply": "0x55a303289060-Multiply" + "Multiply": "0x564807c6cf60-Multiply" }, { - "id": "0x55a303289060-Multiply", - "left": "0x55a303288f60-Expr", - "right": "0x55a303289120-Expr", + "id": "0x564807c6cf60-Multiply", + "left": "0x564807c6ce60-Expr", + "right": "0x564807c6d020-Expr", "op": "MULTIPLY" }, { - "id": "0x55a303288f60-Expr", + "id": "0x564807c6ce60-Expr", "variantKey": "Designator", - "Designator": "0x55a303284250-Designator" + "Designator": "0x564807c67df0-Designator" }, { - "id": "0x55a303284250-Designator", + "id": "0x564807c67df0-Designator", "variantKey": "DataRef", - "DataRef": "0x55a303284260-DataRef" + "DataRef": "0x564807c67e00-DataRef" }, { - "id": "0x55a303284260-DataRef", + "id": "0x564807c67e00-DataRef", "variantKey": "Name", - "Name": "0x55a303284260-Name" + "Name": "0x564807c67e00-Name" }, { - "id": "0x55a303284260-Name", + "id": "0x564807c67e00-Name", "source": "i" }, { - "id": "0x55a303289120-Expr", + "id": "0x564807c6d020-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303289140-LiteralConstant" + "LiteralConstant": "0x564807c6d040-LiteralConstant" }, { - "id": "0x55a303289140-LiteralConstant", + "id": "0x564807c6d040-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303289140-IntLiteralConstant" + "IntLiteralConstant": "0x564807c6d040-IntLiteralConstant" }, { - "id": "0x55a303289140-IntLiteralConstant", + "id": "0x564807c6d040-IntLiteralConstant", "CharBlock": "100" }, { - "id": "0x55a303287400-AcImpliedDoControl", - "value": "0x55a303287400-LoopBounds" + "id": "0x564807c685d0-AcImpliedDoControl", + "value": "0x564807c685d0-LoopBounds" }, { - "id": "0x55a303287400-LoopBounds", - "var": "0x55a303287400-Name", - "lower": "0x55a3032892c0-Expr", - "upper": "0x55a303289400-Expr" + "id": "0x564807c685d0-LoopBounds", + "var": "0x564807c685d0-Name", + "lower": "0x564807c6d1c0-Expr", + "upper": "0x564807c6d300-Expr" }, { - "id": "0x55a303287400-Name", + "id": "0x564807c685d0-Name", "source": "i" }, { - "id": "0x55a3032892c0-Expr", + "id": "0x564807c6d1c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a3032892e0-LiteralConstant" + "LiteralConstant": "0x564807c6d1e0-LiteralConstant" }, { - "id": "0x55a3032892e0-LiteralConstant", + "id": "0x564807c6d1e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a3032892e0-IntLiteralConstant" + "IntLiteralConstant": "0x564807c6d1e0-IntLiteralConstant" }, { - "id": "0x55a3032892e0-IntLiteralConstant", + "id": "0x564807c6d1e0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55a303289400-Expr", + "id": "0x564807c6d300-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303289420-LiteralConstant" + "LiteralConstant": "0x564807c6d320-LiteralConstant" }, { - "id": "0x55a303289420-LiteralConstant", + "id": "0x564807c6d320-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303289420-IntLiteralConstant" + "IntLiteralConstant": "0x564807c6d320-IntLiteralConstant" }, { - "id": "0x55a303289420-IntLiteralConstant", + "id": "0x564807c6d320-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x55a30328c870-Statement", - "statement": "0x55a30328c880-EndProgramStmt", + "id": "0x564807c70800-Statement", + "statement": "0x564807c70810-EndProgramStmt", "source": "end program TEST_IMPLIED_DO" }, { - "id": "0x55a30328c880-EndProgramStmt", - "Name": "0x55a30328c880-Name" + "id": "0x564807c70810-EndProgramStmt", + "Name": "0x564807c70810-Name" }, { - "id": "0x55a30328c880-Name", + "id": "0x564807c70810-Name", "source": "TEST_IMPLIED_DO" } ], + "comments": [ + { + "text": "! Basic implied-do", + "stmtId": "0x564807c69670-Statement" + }, + { + "text": "! With expression", + "stmtId": "0x564807c69e40-Statement" + }, + { + "text": "! With step", + "stmtId": "0x564807c6a3f0-Statement" + }, + { + "text": "! Mixed values and implied-do", + "stmtId": "0x564807c6aca0-Statement" + }, + { + "text": "! With type-spec", + "stmtId": "0x564807c6b330-Statement" + }, + { + "text": "! Nested implied-do", + "stmtId": "0x564807c6ca10-Statement" + }, + { + "text": "! Multiple values per iteration", + "stmtId": "0x564807c6d500-Statement" + } + ], "enums": { "Fortran::common::CUDADataAttr": [ "Constant", diff --git a/FortranParser/resources-test/fortran/parser/polybench/3mm.expected.f90 b/FortranParser/resources-test/fortran/parser/polybench/3mm.expected.f90 index 880efe12..95349641 100644 --- a/FortranParser/resources-test/fortran/parser/polybench/3mm.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/polybench/3mm.expected.f90 @@ -1,3 +1,14 @@ +!****************************************************************************** +! +! 3mm.F90: This file is part of the PolyBench/Fortran 1.0 test suite. +! +! Contact: Louis-Noel Pouchet +! Web address: http://polybench.sourceforge.net +! +!****************************************************************************** +! Include polybench common header. +! Include benchmark-specific header. +! Default data type is double, default size is 4000. PROGRAM THREE_MM DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: a DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: b @@ -7,6 +18,7 @@ PROGRAM THREE_MM DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: f DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: g INTEGER :: i +! Allocation of Arrays allocate(a(32 + 0, 32 + 0), STAT=i) CALL check_err(i) allocate(b(32 + 0, 32 + 0), STAT=i) @@ -21,12 +33,17 @@ PROGRAM THREE_MM CALL check_err(i) allocate(g(32 + 0, 32 + 0), STAT=i) CALL check_err(i) +! Initialization CALL init_array(32, 32, 32, 32, 32, a, b, c, d) +! Kernel Execution CALL polybench_timer_start() CALL kernel_3mm(32, 32, 32, 32, 32, e, a, b, f, c, d, g) CALL polybench_timer_stop() CALL polybench_timer_print() +! Prevent dead-code elimination. All live-out data must be printed +! by the function call in argument. CALL print_array(32, 32, g) +! Deallocation of Arrays deallocate(a) deallocate(b) deallocate(c) @@ -87,6 +104,8 @@ SUBROUTINE kernel_3mm(ni, nj, nk, nl, nm, e, a, b, f, c, d, g) DOUBLE PRECISION, DIMENSION(nl, ni) :: g INTEGER :: ni, nj, nk, nl, nm INTEGER :: i, j, k +!$pragma scop +! E := A*B DO i = 1, ni DO j = 1, nj e(j, i) = 0.0 @@ -95,6 +114,7 @@ SUBROUTINE kernel_3mm(ni, nj, nk, nl, nm, e, a, b, f, c, d, g) END DO END DO END DO +! F := C*D DO i = 1, nj DO j = 1, nl f(j, i) = 0.0 @@ -103,6 +123,7 @@ SUBROUTINE kernel_3mm(ni, nj, nk, nl, nm, e, a, b, f, c, d, g) END DO END DO END DO +! G := E*F DO i = 1, ni DO j = 1, nl g(j, i) = 0.0 @@ -111,5 +132,6 @@ SUBROUTINE kernel_3mm(ni, nj, nk, nl, nm, e, a, b, f, c, d, g) END DO END DO END DO +!$pragma endscop END SUBROUTINE kernel_3mm END PROGRAM THREE_MM \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/polybench/3mm.json b/FortranParser/resources-test/fortran/parser/polybench/3mm.json index 7faf6b5d..17a3139f 100644 --- a/FortranParser/resources-test/fortran/parser/polybench/3mm.json +++ b/FortranParser/resources-test/fortran/parser/polybench/3mm.json @@ -1,10325 +1,10887 @@ -{"nodes": [ - { - "id": "0x5753ca170640-Program", - "ProgramUnit": [ - "0x5753ca1b9630-ProgramUnit"] - }, - { - "id": "0x5753ca1b9630-ProgramUnit", - "variantKey": "MainProgram", - "MainProgram": "0x5753ca1aebe0-MainProgram" - }, - { - "id": "0x5753ca1aebe0-MainProgram", - "Statement": "0x5753ca1aed28-Statement", - "SpecificationPart": "0x5753ca1aec80-SpecificationPart", - "ExecutionPart": "0x5753ca1aec68-ExecutionPart", - "InternalSubprogramPart": "0x5753ca1aec20-InternalSubprogramPart", - "Statement": "0x5753ca1aebe0-Statement" - }, - { - "id": "0x5753ca1aed28-Statement", - "statement": "0x5753ca1aed38-ProgramStmt", - "source": "program THREE_MM" - }, - { - "id": "0x5753ca1aed38-ProgramStmt", - "Name": "0x5753ca1aed38-Name" - }, - { - "id": "0x5753ca1aed38-Name", - "source": "THREE_MM" - }, - { - "id": "0x5753ca1aec80-SpecificationPart", - "ImplicitPart": "0x5753ca1aec98-ImplicitPart", - "DeclarationConstruct": [ - "0x5753ca17d850-DeclarationConstruct", - "0x5753ca17d4e0-DeclarationConstruct", - "0x5753ca19d880-DeclarationConstruct", - "0x5753ca19daa0-DeclarationConstruct", - "0x5753ca19dd10-DeclarationConstruct", - "0x5753ca19df80-DeclarationConstruct", - "0x5753ca19e1f0-DeclarationConstruct", - "0x5753ca17d8b0-DeclarationConstruct"] - }, - { - "id": "0x5753ca1aec98-ImplicitPart" - }, - { - "id": "0x5753ca17d850-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5753ca17d850-SpecificationConstruct" - }, - { - "id": "0x5753ca17d850-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca17d850-Statement" - }, - { - "id": "0x5753ca17d850-Statement", - "statement": "0x5753ca19d020-TypeDeclarationStmt", - "source": "double precision, dimension(:,:), allocatable :: a" - }, - { - "id": "0x5753ca19d020-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5753ca19d050-DeclarationTypeSpec", - "AttrSpec": [ - "0x5753ca1b5a40-AttrSpec", - "0x5753ca1a6ac0-AttrSpec"], - "EntityDecl": [ - "0x5753ca19d3d0-EntityDecl"] - }, - { - "id": "0x5753ca19d050-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5753ca19d050-IntrinsicTypeSpec" - }, - { - "id": "0x5753ca19d050-IntrinsicTypeSpec", - "variantKey": "DoublePrecision", - "DoublePrecision": "0x5753ca19d050-DoublePrecision" - }, - { - "id": "0x5753ca19d050-DoublePrecision" - }, - { - "id": "0x5753ca1b5a40-AttrSpec", - "variantKey": "ArraySpec", - "ArraySpec": "0x5753ca1b5a40-ArraySpec" - }, - { - "id": "0x5753ca1b5a40-ArraySpec", - "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x5753ca1b5a40-DeferredShapeSpecList" - }, - { - "id": "0x5753ca1b5a40-DeferredShapeSpecList", - "int": "2" - }, - { - "id": "0x5753ca1a6ac0-AttrSpec", - "variantKey": "Allocatable", - "Allocatable": "0x5753ca1a6ac0-Allocatable" - }, - { - "id": "0x5753ca1a6ac0-Allocatable", - "keyword": "Allocatable" - }, - { - "id": "0x5753ca19d3d0-EntityDecl", - "Name": "0x5753ca19d488-Name" - }, - { - "id": "0x5753ca19d488-Name", - "source": "a" - }, - { - "id": "0x5753ca17d4e0-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5753ca17d4e0-SpecificationConstruct" - }, - { - "id": "0x5753ca17d4e0-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca17d4e0-Statement" - }, - { - "id": "0x5753ca17d4e0-Statement", - "statement": "0x5753ca19d0a0-TypeDeclarationStmt", - "source": "double precision, dimension(:,:), allocatable :: b" - }, - { - "id": "0x5753ca19d0a0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5753ca19d0d0-DeclarationTypeSpec", - "AttrSpec": [ - "0x5753ca1a7530-AttrSpec", - "0x5753ca1ae9d0-AttrSpec"], - "EntityDecl": [ - "0x5753ca19d620-EntityDecl"] - }, - { - "id": "0x5753ca19d0d0-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5753ca19d0d0-IntrinsicTypeSpec" - }, - { - "id": "0x5753ca19d0d0-IntrinsicTypeSpec", - "variantKey": "DoublePrecision", - "DoublePrecision": "0x5753ca19d0d0-DoublePrecision" - }, - { - "id": "0x5753ca19d0d0-DoublePrecision" - }, - { - "id": "0x5753ca1a7530-AttrSpec", - "variantKey": "ArraySpec", - "ArraySpec": "0x5753ca1a7530-ArraySpec" - }, - { - "id": "0x5753ca1a7530-ArraySpec", - "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x5753ca1a7530-DeferredShapeSpecList" - }, - { - "id": "0x5753ca1a7530-DeferredShapeSpecList", - "int": "2" - }, - { - "id": "0x5753ca1ae9d0-AttrSpec", - "variantKey": "Allocatable", - "Allocatable": "0x5753ca1ae9d0-Allocatable" - }, - { - "id": "0x5753ca1ae9d0-Allocatable", - "keyword": "Allocatable" - }, - { - "id": "0x5753ca19d620-EntityDecl", - "Name": "0x5753ca19d6d8-Name" - }, - { - "id": "0x5753ca19d6d8-Name", - "source": "b" - }, - { - "id": "0x5753ca19d880-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5753ca19d880-SpecificationConstruct" - }, - { - "id": "0x5753ca19d880-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca19d880-Statement" - }, - { - "id": "0x5753ca19d880-Statement", - "statement": "0x5753ca19d590-TypeDeclarationStmt", - "source": "double precision, dimension(:,:), allocatable :: c" - }, - { - "id": "0x5753ca19d590-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5753ca19d5c0-DeclarationTypeSpec", - "AttrSpec": [ - "0x5753ca1a7860-AttrSpec", - "0x5753ca1a7710-AttrSpec"], - "EntityDecl": [ - "0x5753ca19d790-EntityDecl"] - }, - { - "id": "0x5753ca19d5c0-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5753ca19d5c0-IntrinsicTypeSpec" - }, - { - "id": "0x5753ca19d5c0-IntrinsicTypeSpec", - "variantKey": "DoublePrecision", - "DoublePrecision": "0x5753ca19d5c0-DoublePrecision" - }, - { - "id": "0x5753ca19d5c0-DoublePrecision" - }, - { - "id": "0x5753ca1a7860-AttrSpec", - "variantKey": "ArraySpec", - "ArraySpec": "0x5753ca1a7860-ArraySpec" - }, - { - "id": "0x5753ca1a7860-ArraySpec", - "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x5753ca1a7860-DeferredShapeSpecList" - }, - { - "id": "0x5753ca1a7860-DeferredShapeSpecList", - "int": "2" - }, - { - "id": "0x5753ca1a7710-AttrSpec", - "variantKey": "Allocatable", - "Allocatable": "0x5753ca1a7710-Allocatable" - }, - { - "id": "0x5753ca1a7710-Allocatable", - "keyword": "Allocatable" - }, - { - "id": "0x5753ca19d790-EntityDecl", - "Name": "0x5753ca19d848-Name" - }, - { - "id": "0x5753ca19d848-Name", - "source": "c" - }, - { - "id": "0x5753ca19daa0-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5753ca19daa0-SpecificationConstruct" - }, - { - "id": "0x5753ca19daa0-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca19daa0-Statement" - }, - { - "id": "0x5753ca19daa0-Statement", - "statement": "0x5753ca19d700-TypeDeclarationStmt", - "source": "double precision, dimension(:,:), allocatable :: d" - }, - { - "id": "0x5753ca19d700-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5753ca19d730-DeclarationTypeSpec", - "AttrSpec": [ - "0x5753ca19d960-AttrSpec", - "0x5753ca1a8d70-AttrSpec"], - "EntityDecl": [ - "0x5753ca19d9b0-EntityDecl"] - }, - { - "id": "0x5753ca19d730-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5753ca19d730-IntrinsicTypeSpec" - }, - { - "id": "0x5753ca19d730-IntrinsicTypeSpec", - "variantKey": "DoublePrecision", - "DoublePrecision": "0x5753ca19d730-DoublePrecision" - }, - { - "id": "0x5753ca19d730-DoublePrecision" - }, - { - "id": "0x5753ca19d960-AttrSpec", - "variantKey": "ArraySpec", - "ArraySpec": "0x5753ca19d960-ArraySpec" - }, - { - "id": "0x5753ca19d960-ArraySpec", - "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x5753ca19d960-DeferredShapeSpecList" - }, - { - "id": "0x5753ca19d960-DeferredShapeSpecList", - "int": "2" - }, - { - "id": "0x5753ca1a8d70-AttrSpec", - "variantKey": "Allocatable", - "Allocatable": "0x5753ca1a8d70-Allocatable" - }, - { - "id": "0x5753ca1a8d70-Allocatable", - "keyword": "Allocatable" - }, - { - "id": "0x5753ca19d9b0-EntityDecl", - "Name": "0x5753ca19da68-Name" - }, - { - "id": "0x5753ca19da68-Name", - "source": "d" - }, - { - "id": "0x5753ca19dd10-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5753ca19dd10-SpecificationConstruct" - }, - { - "id": "0x5753ca19dd10-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca19dd10-Statement" - }, - { - "id": "0x5753ca19dd10-Statement", - "statement": "0x5753ca19d8d0-TypeDeclarationStmt", - "source": "double precision, dimension(:,:), allocatable :: e" - }, - { - "id": "0x5753ca19d8d0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5753ca19d900-DeclarationTypeSpec", - "AttrSpec": [ - "0x5753ca19dbd0-AttrSpec", - "0x5753ca19db80-AttrSpec"], - "EntityDecl": [ - "0x5753ca19dc20-EntityDecl"] - }, - { - "id": "0x5753ca19d900-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5753ca19d900-IntrinsicTypeSpec" - }, - { - "id": "0x5753ca19d900-IntrinsicTypeSpec", - "variantKey": "DoublePrecision", - "DoublePrecision": "0x5753ca19d900-DoublePrecision" - }, - { - "id": "0x5753ca19d900-DoublePrecision" - }, - { - "id": "0x5753ca19dbd0-AttrSpec", - "variantKey": "ArraySpec", - "ArraySpec": "0x5753ca19dbd0-ArraySpec" - }, - { - "id": "0x5753ca19dbd0-ArraySpec", - "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x5753ca19dbd0-DeferredShapeSpecList" - }, - { - "id": "0x5753ca19dbd0-DeferredShapeSpecList", - "int": "2" - }, - { - "id": "0x5753ca19db80-AttrSpec", - "variantKey": "Allocatable", - "Allocatable": "0x5753ca19db80-Allocatable" - }, - { - "id": "0x5753ca19db80-Allocatable", - "keyword": "Allocatable" - }, - { - "id": "0x5753ca19dc20-EntityDecl", - "Name": "0x5753ca19dcd8-Name" - }, - { - "id": "0x5753ca19dcd8-Name", - "source": "e" - }, - { - "id": "0x5753ca19df80-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5753ca19df80-SpecificationConstruct" - }, - { - "id": "0x5753ca19df80-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca19df80-Statement" - }, - { - "id": "0x5753ca19df80-Statement", - "statement": "0x5753ca19daf0-TypeDeclarationStmt", - "source": "double precision, dimension(:,:), allocatable :: f" - }, - { - "id": "0x5753ca19daf0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5753ca19db20-DeclarationTypeSpec", - "AttrSpec": [ - "0x5753ca19de40-AttrSpec", - "0x5753ca19ddf0-AttrSpec"], - "EntityDecl": [ - "0x5753ca19de90-EntityDecl"] - }, - { - "id": "0x5753ca19db20-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5753ca19db20-IntrinsicTypeSpec" - }, - { - "id": "0x5753ca19db20-IntrinsicTypeSpec", - "variantKey": "DoublePrecision", - "DoublePrecision": "0x5753ca19db20-DoublePrecision" - }, - { - "id": "0x5753ca19db20-DoublePrecision" - }, - { - "id": "0x5753ca19de40-AttrSpec", - "variantKey": "ArraySpec", - "ArraySpec": "0x5753ca19de40-ArraySpec" - }, - { - "id": "0x5753ca19de40-ArraySpec", - "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x5753ca19de40-DeferredShapeSpecList" - }, - { - "id": "0x5753ca19de40-DeferredShapeSpecList", - "int": "2" - }, - { - "id": "0x5753ca19ddf0-AttrSpec", - "variantKey": "Allocatable", - "Allocatable": "0x5753ca19ddf0-Allocatable" - }, - { - "id": "0x5753ca19ddf0-Allocatable", - "keyword": "Allocatable" - }, - { - "id": "0x5753ca19de90-EntityDecl", - "Name": "0x5753ca19df48-Name" - }, - { - "id": "0x5753ca19df48-Name", - "source": "f" - }, - { - "id": "0x5753ca19e1f0-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5753ca19e1f0-SpecificationConstruct" - }, - { - "id": "0x5753ca19e1f0-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca19e1f0-Statement" - }, - { - "id": "0x5753ca19e1f0-Statement", - "statement": "0x5753ca19dd60-TypeDeclarationStmt", - "source": "double precision, dimension(:,:), allocatable :: g" - }, - { - "id": "0x5753ca19dd60-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5753ca19dd90-DeclarationTypeSpec", - "AttrSpec": [ - "0x5753ca19e0b0-AttrSpec", - "0x5753ca19e060-AttrSpec"], - "EntityDecl": [ - "0x5753ca19e100-EntityDecl"] - }, - { - "id": "0x5753ca19dd90-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5753ca19dd90-IntrinsicTypeSpec" - }, - { - "id": "0x5753ca19dd90-IntrinsicTypeSpec", - "variantKey": "DoublePrecision", - "DoublePrecision": "0x5753ca19dd90-DoublePrecision" - }, - { - "id": "0x5753ca19dd90-DoublePrecision" - }, - { - "id": "0x5753ca19e0b0-AttrSpec", - "variantKey": "ArraySpec", - "ArraySpec": "0x5753ca19e0b0-ArraySpec" - }, - { - "id": "0x5753ca19e0b0-ArraySpec", - "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x5753ca19e0b0-DeferredShapeSpecList" - }, - { - "id": "0x5753ca19e0b0-DeferredShapeSpecList", - "int": "2" - }, - { - "id": "0x5753ca19e060-AttrSpec", - "variantKey": "Allocatable", - "Allocatable": "0x5753ca19e060-Allocatable" - }, - { - "id": "0x5753ca19e060-Allocatable", - "keyword": "Allocatable" - }, - { - "id": "0x5753ca19e100-EntityDecl", - "Name": "0x5753ca19e1b8-Name" - }, - { - "id": "0x5753ca19e1b8-Name", - "source": "g" - }, - { - "id": "0x5753ca17d8b0-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5753ca17d8b0-SpecificationConstruct" - }, - { - "id": "0x5753ca17d8b0-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca17d8b0-Statement" - }, - { - "id": "0x5753ca17d8b0-Statement", - "statement": "0x5753ca19dfd0-TypeDeclarationStmt", - "source": "integer :: i" - }, - { - "id": "0x5753ca19dfd0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5753ca19e000-DeclarationTypeSpec", - "EntityDecl": [ - "0x5753ca19e2d0-EntityDecl"] - }, - { - "id": "0x5753ca19e000-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5753ca19e000-IntrinsicTypeSpec" - }, - { - "id": "0x5753ca19e000-IntrinsicTypeSpec", - "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x5753ca19e000-IntegerTypeSpec" - }, - { - "id": "0x5753ca19e000-IntegerTypeSpec" - }, - { - "id": "0x5753ca19e2d0-EntityDecl", - "Name": "0x5753ca19e388-Name" - }, - { - "id": "0x5753ca19e388-Name", - "source": "i" - }, - { - "id": "0x5753ca1aec68-ExecutionPart", - "ExecutionPartConstruct": [ - "0x5753ca1a0450-ExecutionPartConstruct", - "0x5753ca1a0310-ExecutionPartConstruct", - "0x5753ca1a0c40-ExecutionPartConstruct", - "0x5753ca1a0be0-ExecutionPartConstruct", - "0x5753ca1a16b0-ExecutionPartConstruct", - "0x5753ca1a1650-ExecutionPartConstruct", - "0x5753ca1a2120-ExecutionPartConstruct", - "0x5753ca1a20c0-ExecutionPartConstruct", - "0x5753ca1a2b90-ExecutionPartConstruct", - "0x5753ca1a2b30-ExecutionPartConstruct", - "0x5753ca1a3600-ExecutionPartConstruct", - "0x5753ca1a35a0-ExecutionPartConstruct", - "0x5753ca1a4070-ExecutionPartConstruct", - "0x5753ca1a4010-ExecutionPartConstruct", - "0x5753ca19eeb0-ExecutionPartConstruct", - "0x5753ca1a5cf0-ExecutionPartConstruct", - "0x5753ca1b7ba0-ExecutionPartConstruct", - "0x5753ca1b6720-ExecutionPartConstruct", - "0x5753ca1b6b90-ExecutionPartConstruct", - "0x5753ca1a56b0-ExecutionPartConstruct", - "0x5753ca1a6160-ExecutionPartConstruct", - "0x5753ca1a5ad0-ExecutionPartConstruct", - "0x5753ca1b6940-ExecutionPartConstruct", - "0x5753ca1a2a70-ExecutionPartConstruct", - "0x5753ca19f6b0-ExecutionPartConstruct", - "0x5753ca1b5f10-ExecutionPartConstruct", - "0x5753ca19ffc0-ExecutionPartConstruct"] - }, - { - "id": "0x5753ca1aec68-ExecutionPartConstruct" - }, - { - "id": "0x5753ca1a0450-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1a0450-ExecutableConstruct" - }, - { - "id": "0x5753ca1a0450-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1a0450-Statement" - }, - { - "id": "0x5753ca1a0450-Statement", - "statement": "0x5753ca1a0460-ActionStmt", - "source": "allocate(a(32+0, 32+0), stat=i)" - }, - { - "id": "0x5753ca1a0460-ActionStmt", - "variantKey": "AllocateStmt", - "AllocateStmt": "0x5753ca19f200-AllocateStmt" - }, - { - "id": "0x5753ca19f200-AllocateStmt", - "Allocation": [ - "0x5753ca188f20-Allocation"], - "AllocOpt": [ - "0x5753ca19fbd0-AllocOpt"] - }, - { - "id": "0x5753ca188f20-Allocation", - "AllocateObject": "0x5753ca188f68-AllocateObject", - "AllocateShapeSpec": [ - "0x5753ca1b1360-AllocateShapeSpec", - "0x5753ca1b1330-AllocateShapeSpec"] - }, - { - "id": "0x5753ca188f68-AllocateObject", - "variantKey": "Name", - "Name": "0x5753ca188f78-Name" - }, - { - "id": "0x5753ca188f78-Name", - "source": "a" - }, - { - "id": "0x5753ca1b1360-AllocateShapeSpec", - "upper_bound": "0x5753ca19fae0-Expr" - }, - { - "id": "0x5753ca19fae0-Expr", - "variantKey": "Add", - "Add": "0x5753ca19fb00-Add" - }, - { - "id": "0x5753ca19fb00-Add", - "left": "0x5753ca19fa00-Expr", - "right": "0x5753ca19f920-Expr", - "op": "ADD" - }, - { - "id": "0x5753ca19fa00-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca19fa20-LiteralConstant" - }, - { - "id": "0x5753ca19fa20-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca19fa20-IntLiteralConstant" - }, - { - "id": "0x5753ca19fa20-IntLiteralConstant", - "CharBlock": "32" - }, - { - "id": "0x5753ca19f920-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca19f940-LiteralConstant" - }, - { - "id": "0x5753ca19f940-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca19f940-IntLiteralConstant" - }, - { - "id": "0x5753ca19f940-IntLiteralConstant", - "CharBlock": "0" - }, - { - "id": "0x5753ca1b1330-AllocateShapeSpec", - "upper_bound": "0x5753ca19f5c0-Expr" - }, - { - "id": "0x5753ca19f5c0-Expr", - "variantKey": "Add", - "Add": "0x5753ca19f5e0-Add" - }, - { - "id": "0x5753ca19f5e0-Add", - "left": "0x5753ca19f4e0-Expr", - "right": "0x5753ca111790-Expr", - "op": "ADD" - }, - { - "id": "0x5753ca19f4e0-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca19f500-LiteralConstant" - }, - { - "id": "0x5753ca19f500-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca19f500-IntLiteralConstant" - }, - { - "id": "0x5753ca19f500-IntLiteralConstant", - "CharBlock": "32" - }, - { - "id": "0x5753ca111790-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1117b0-LiteralConstant" - }, - { - "id": "0x5753ca1117b0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1117b0-IntLiteralConstant" - }, - { - "id": "0x5753ca1117b0-IntLiteralConstant", - "CharBlock": "0" - }, - { - "id": "0x5753ca19fbd0-AllocOpt", - "variantKey": "StatOrErrmsg", - "StatOrErrmsg": "0x5753ca19fbd0-StatOrErrmsg" - }, - { - "id": "0x5753ca19fbd0-StatOrErrmsg", - "variantKey": "StatVariable", - "StatVariable": "0x5753ca19fbd0-StatVariable" - }, - { - "id": "0x5753ca19fbd0-StatVariable", - "Expr": "0x5753ca19fbd0-Variable" - }, - { - "id": "0x5753ca19fbd0-Variable", - "variantKey": "Designator", - "Designator": "0x5753ca16ec10-Designator" - }, - { - "id": "0x5753ca16ec10-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca16ec20-DataRef" - }, - { - "id": "0x5753ca16ec20-DataRef", - "variantKey": "Name", - "Name": "0x5753ca16ec20-Name" - }, - { - "id": "0x5753ca16ec20-Name", - "source": "i" - }, - { - "id": "0x5753ca1a0310-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1a0310-ExecutableConstruct" - }, - { - "id": "0x5753ca1a0310-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1a0310-Statement" - }, - { - "id": "0x5753ca1a0310-Statement", - "statement": "0x5753ca1a0320-ActionStmt", - "source": "call check_err(i)" - }, - { - "id": "0x5753ca1a0320-ActionStmt", - "variantKey": "CallStmt", - "CallStmt": "0x5753ca1a7750-CallStmt" - }, - { - "id": "0x5753ca1a7750-CallStmt", - "call": "0x5753ca1a7750-Call" - }, - { - "id": "0x5753ca1a7750-Call", - "ProcedureDesignator": "0x5753ca1a7768-ProcedureDesignator", - "ActualArgSpec": [ - "0x5753ca17e440-ActualArgSpec"] - }, - { - "id": "0x5753ca1a7768-ProcedureDesignator", - "variantKey": "Name", - "Name": "0x5753ca1a7768-Name" - }, - { - "id": "0x5753ca1a7768-Name", - "source": "check_err" - }, - { - "id": "0x5753ca17e440-ActualArgSpec", - "ActualArg": "0x5753ca17e440-ActualArg" - }, - { - "id": "0x5753ca17e440-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1a04a0-Expr" - }, - { - "id": "0x5753ca1a04a0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca19f480-Designator" - }, - { - "id": "0x5753ca19f480-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca19f490-DataRef" - }, - { - "id": "0x5753ca19f490-DataRef", - "variantKey": "Name", - "Name": "0x5753ca19f490-Name" - }, - { - "id": "0x5753ca19f490-Name", - "source": "i" - }, - { - "id": "0x5753ca1a0c40-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1a0c40-ExecutableConstruct" - }, - { - "id": "0x5753ca1a0c40-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1a0c40-Statement" - }, - { - "id": "0x5753ca1a0c40-Statement", - "statement": "0x5753ca1a0c50-ActionStmt", - "source": "allocate(b(32+0, 32+0), stat=i)" - }, - { - "id": "0x5753ca1a0c50-ActionStmt", - "variantKey": "AllocateStmt", - "AllocateStmt": "0x5753ca19ee10-AllocateStmt" - }, - { - "id": "0x5753ca19ee10-AllocateStmt", - "Allocation": [ - "0x5753ca1272e0-Allocation"], - "AllocOpt": [ - "0x5753ca19fc20-AllocOpt"] - }, - { - "id": "0x5753ca1272e0-Allocation", - "AllocateObject": "0x5753ca127328-AllocateObject", - "AllocateShapeSpec": [ - "0x5753ca1b13e0-AllocateShapeSpec", - "0x5753ca1b1390-AllocateShapeSpec"] - }, - { - "id": "0x5753ca127328-AllocateObject", - "variantKey": "Name", - "Name": "0x5753ca127338-Name" - }, - { - "id": "0x5753ca127338-Name", - "source": "b" - }, - { - "id": "0x5753ca1b13e0-AllocateShapeSpec", - "upper_bound": "0x5753ca1a0660-Expr" - }, - { - "id": "0x5753ca1a0660-Expr", - "variantKey": "Add", - "Add": "0x5753ca1a0680-Add" - }, - { - "id": "0x5753ca1a0680-Add", - "left": "0x5753ca1a0580-Expr", - "right": "0x5753ca1a0740-Expr", - "op": "ADD" - }, - { - "id": "0x5753ca1a0580-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a05a0-LiteralConstant" - }, - { - "id": "0x5753ca1a05a0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a05a0-IntLiteralConstant" - }, - { - "id": "0x5753ca1a05a0-IntLiteralConstant", - "CharBlock": "32" - }, - { - "id": "0x5753ca1a0740-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a0760-LiteralConstant" - }, - { - "id": "0x5753ca1a0760-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a0760-IntLiteralConstant" - }, - { - "id": "0x5753ca1a0760-IntLiteralConstant", - "CharBlock": "0" - }, - { - "id": "0x5753ca1b1390-AllocateShapeSpec", - "upper_bound": "0x5753ca1a0900-Expr" - }, - { - "id": "0x5753ca1a0900-Expr", - "variantKey": "Add", - "Add": "0x5753ca1a0920-Add" - }, - { - "id": "0x5753ca1a0920-Add", - "left": "0x5753ca1a0820-Expr", - "right": "0x5753ca1a09e0-Expr", - "op": "ADD" - }, - { - "id": "0x5753ca1a0820-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a0840-LiteralConstant" - }, - { - "id": "0x5753ca1a0840-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a0840-IntLiteralConstant" - }, - { - "id": "0x5753ca1a0840-IntLiteralConstant", - "CharBlock": "32" - }, - { - "id": "0x5753ca1a09e0-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a0a00-LiteralConstant" - }, - { - "id": "0x5753ca1a0a00-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a0a00-IntLiteralConstant" - }, - { - "id": "0x5753ca1a0a00-IntLiteralConstant", - "CharBlock": "0" - }, - { - "id": "0x5753ca19fc20-AllocOpt", - "variantKey": "StatOrErrmsg", - "StatOrErrmsg": "0x5753ca19fc20-StatOrErrmsg" - }, - { - "id": "0x5753ca19fc20-StatOrErrmsg", - "variantKey": "StatVariable", - "StatVariable": "0x5753ca19fc20-StatVariable" - }, - { - "id": "0x5753ca19fc20-StatVariable", - "Expr": "0x5753ca19fc20-Variable" - }, - { - "id": "0x5753ca19fc20-Variable", - "variantKey": "Designator", - "Designator": "0x5753ca1a0b70-Designator" - }, - { - "id": "0x5753ca1a0b70-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1a0b80-DataRef" - }, - { - "id": "0x5753ca1a0b80-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1a0b80-Name" - }, - { - "id": "0x5753ca1a0b80-Name", - "source": "i" - }, - { - "id": "0x5753ca1a0be0-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1a0be0-ExecutableConstruct" - }, - { - "id": "0x5753ca1a0be0-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1a0be0-Statement" - }, - { - "id": "0x5753ca1a0be0-Statement", - "statement": "0x5753ca1a0bf0-ActionStmt", - "source": "call check_err(i)" - }, - { - "id": "0x5753ca1a0bf0-ActionStmt", - "variantKey": "CallStmt", - "CallStmt": "0x5753ca1a0e80-CallStmt" - }, - { - "id": "0x5753ca1a0e80-CallStmt", - "call": "0x5753ca1a0e80-Call" - }, - { - "id": "0x5753ca1a0e80-Call", - "ProcedureDesignator": "0x5753ca1a0e98-ProcedureDesignator", - "ActualArgSpec": [ - "0x5753ca1a0d80-ActualArgSpec"] - }, - { - "id": "0x5753ca1a0e98-ProcedureDesignator", - "variantKey": "Name", - "Name": "0x5753ca1a0e98-Name" - }, - { - "id": "0x5753ca1a0e98-Name", - "source": "check_err" - }, - { - "id": "0x5753ca1a0d80-ActualArgSpec", - "ActualArg": "0x5753ca1a0d80-ActualArg" - }, - { - "id": "0x5753ca1a0d80-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1a0c90-Expr" - }, - { - "id": "0x5753ca1a0c90-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca19fe10-Designator" - }, - { - "id": "0x5753ca19fe10-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca19fe20-DataRef" - }, - { - "id": "0x5753ca19fe20-DataRef", - "variantKey": "Name", - "Name": "0x5753ca19fe20-Name" - }, - { - "id": "0x5753ca19fe20-Name", - "source": "i" - }, - { - "id": "0x5753ca1a16b0-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1a16b0-ExecutableConstruct" - }, - { - "id": "0x5753ca1a16b0-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1a16b0-Statement" - }, - { - "id": "0x5753ca1a16b0-Statement", - "statement": "0x5753ca1a16c0-ActionStmt", - "source": "allocate(c(32+0, 32+0), stat=i)" - }, - { - "id": "0x5753ca1a16c0-ActionStmt", - "variantKey": "AllocateStmt", - "AllocateStmt": "0x5753ca19f290-AllocateStmt" - }, - { - "id": "0x5753ca19f290-AllocateStmt", - "Allocation": [ - "0x5753ca1a14e0-Allocation"], - "AllocOpt": [ - "0x5753ca1a0ad0-AllocOpt"] - }, - { - "id": "0x5753ca1a14e0-Allocation", - "AllocateObject": "0x5753ca1a1528-AllocateObject", - "AllocateShapeSpec": [ - "0x5753ca1b1520-AllocateShapeSpec", - "0x5753ca1b14f0-AllocateShapeSpec"] - }, - { - "id": "0x5753ca1a1528-AllocateObject", - "variantKey": "Name", - "Name": "0x5753ca1a1538-Name" - }, - { - "id": "0x5753ca1a1538-Name", - "source": "c" - }, - { - "id": "0x5753ca1b1520-AllocateShapeSpec", - "upper_bound": "0x5753ca1a1020-Expr" - }, - { - "id": "0x5753ca1a1020-Expr", - "variantKey": "Add", - "Add": "0x5753ca1a1040-Add" - }, - { - "id": "0x5753ca1a1040-Add", - "left": "0x5753ca1a0f40-Expr", - "right": "0x5753ca1a1100-Expr", - "op": "ADD" - }, - { - "id": "0x5753ca1a0f40-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a0f60-LiteralConstant" - }, - { - "id": "0x5753ca1a0f60-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a0f60-IntLiteralConstant" - }, - { - "id": "0x5753ca1a0f60-IntLiteralConstant", - "CharBlock": "32" - }, - { - "id": "0x5753ca1a1100-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a1120-LiteralConstant" - }, - { - "id": "0x5753ca1a1120-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a1120-IntLiteralConstant" - }, - { - "id": "0x5753ca1a1120-IntLiteralConstant", - "CharBlock": "0" - }, - { - "id": "0x5753ca1b14f0-AllocateShapeSpec", - "upper_bound": "0x5753ca1a12c0-Expr" - }, - { - "id": "0x5753ca1a12c0-Expr", - "variantKey": "Add", - "Add": "0x5753ca1a12e0-Add" - }, - { - "id": "0x5753ca1a12e0-Add", - "left": "0x5753ca1a11e0-Expr", - "right": "0x5753ca1a13a0-Expr", - "op": "ADD" - }, - { - "id": "0x5753ca1a11e0-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a1200-LiteralConstant" - }, - { - "id": "0x5753ca1a1200-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a1200-IntLiteralConstant" - }, - { - "id": "0x5753ca1a1200-IntLiteralConstant", - "CharBlock": "32" - }, - { - "id": "0x5753ca1a13a0-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a13c0-LiteralConstant" - }, - { - "id": "0x5753ca1a13c0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a13c0-IntLiteralConstant" - }, - { - "id": "0x5753ca1a13c0-IntLiteralConstant", - "CharBlock": "0" - }, - { - "id": "0x5753ca1a0ad0-AllocOpt", - "variantKey": "StatOrErrmsg", - "StatOrErrmsg": "0x5753ca1a0ad0-StatOrErrmsg" - }, - { - "id": "0x5753ca1a0ad0-StatOrErrmsg", - "variantKey": "StatVariable", - "StatVariable": "0x5753ca1a0ad0-StatVariable" - }, - { - "id": "0x5753ca1a0ad0-StatVariable", - "Expr": "0x5753ca1a0ad0-Variable" - }, - { - "id": "0x5753ca1a0ad0-Variable", - "variantKey": "Designator", - "Designator": "0x5753ca1a15e0-Designator" - }, - { - "id": "0x5753ca1a15e0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1a15f0-DataRef" - }, - { - "id": "0x5753ca1a15f0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1a15f0-Name" - }, - { - "id": "0x5753ca1a15f0-Name", - "source": "i" - }, - { - "id": "0x5753ca1a1650-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1a1650-ExecutableConstruct" - }, - { - "id": "0x5753ca1a1650-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1a1650-Statement" - }, - { - "id": "0x5753ca1a1650-Statement", - "statement": "0x5753ca1a1660-ActionStmt", - "source": "call check_err(i)" - }, - { - "id": "0x5753ca1a1660-ActionStmt", - "variantKey": "CallStmt", - "CallStmt": "0x5753ca1a18f0-CallStmt" - }, - { - "id": "0x5753ca1a18f0-CallStmt", - "call": "0x5753ca1a18f0-Call" - }, - { - "id": "0x5753ca1a18f0-Call", - "ProcedureDesignator": "0x5753ca1a1908-ProcedureDesignator", - "ActualArgSpec": [ - "0x5753ca1a17f0-ActualArgSpec"] - }, - { - "id": "0x5753ca1a1908-ProcedureDesignator", - "variantKey": "Name", - "Name": "0x5753ca1a1908-Name" - }, - { - "id": "0x5753ca1a1908-Name", - "source": "check_err" - }, - { - "id": "0x5753ca1a17f0-ActualArgSpec", - "ActualArg": "0x5753ca1a17f0-ActualArg" - }, - { - "id": "0x5753ca1a17f0-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1a1700-Expr" - }, - { - "id": "0x5753ca1a1700-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca19fcd0-Designator" - }, - { - "id": "0x5753ca19fcd0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca19fce0-DataRef" - }, - { - "id": "0x5753ca19fce0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca19fce0-Name" - }, - { - "id": "0x5753ca19fce0-Name", - "source": "i" - }, - { - "id": "0x5753ca1a2120-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1a2120-ExecutableConstruct" - }, - { - "id": "0x5753ca1a2120-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1a2120-Statement" - }, - { - "id": "0x5753ca1a2120-Statement", - "statement": "0x5753ca1a2130-ActionStmt", - "source": "allocate(d(32+0, 32+0), stat=i)" - }, - { - "id": "0x5753ca1a2130-ActionStmt", - "variantKey": "AllocateStmt", - "AllocateStmt": "0x5753ca1ae560-AllocateStmt" - }, - { - "id": "0x5753ca1ae560-AllocateStmt", - "Allocation": [ - "0x5753ca1a1f50-Allocation"], - "AllocOpt": [ - "0x5753ca1a1490-AllocOpt"] - }, - { - "id": "0x5753ca1a1f50-Allocation", - "AllocateObject": "0x5753ca1a1f98-AllocateObject", - "AllocateShapeSpec": [ - "0x5753ca1afdd0-AllocateShapeSpec", - "0x5753ca1b1570-AllocateShapeSpec"] - }, - { - "id": "0x5753ca1a1f98-AllocateObject", - "variantKey": "Name", - "Name": "0x5753ca1a1fa8-Name" - }, - { - "id": "0x5753ca1a1fa8-Name", - "source": "d" - }, - { - "id": "0x5753ca1afdd0-AllocateShapeSpec", - "upper_bound": "0x5753ca1a1a90-Expr" - }, - { - "id": "0x5753ca1a1a90-Expr", - "variantKey": "Add", - "Add": "0x5753ca1a1ab0-Add" - }, - { - "id": "0x5753ca1a1ab0-Add", - "left": "0x5753ca1a19b0-Expr", - "right": "0x5753ca1a1b70-Expr", - "op": "ADD" - }, - { - "id": "0x5753ca1a19b0-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a19d0-LiteralConstant" - }, - { - "id": "0x5753ca1a19d0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a19d0-IntLiteralConstant" - }, - { - "id": "0x5753ca1a19d0-IntLiteralConstant", - "CharBlock": "32" - }, - { - "id": "0x5753ca1a1b70-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a1b90-LiteralConstant" - }, - { - "id": "0x5753ca1a1b90-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a1b90-IntLiteralConstant" - }, - { - "id": "0x5753ca1a1b90-IntLiteralConstant", - "CharBlock": "0" - }, - { - "id": "0x5753ca1b1570-AllocateShapeSpec", - "upper_bound": "0x5753ca1a1d30-Expr" - }, - { - "id": "0x5753ca1a1d30-Expr", - "variantKey": "Add", - "Add": "0x5753ca1a1d50-Add" - }, - { - "id": "0x5753ca1a1d50-Add", - "left": "0x5753ca1a1c50-Expr", - "right": "0x5753ca1a1e10-Expr", - "op": "ADD" - }, - { - "id": "0x5753ca1a1c50-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a1c70-LiteralConstant" - }, - { - "id": "0x5753ca1a1c70-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a1c70-IntLiteralConstant" - }, - { - "id": "0x5753ca1a1c70-IntLiteralConstant", - "CharBlock": "32" - }, - { - "id": "0x5753ca1a1e10-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a1e30-LiteralConstant" - }, - { - "id": "0x5753ca1a1e30-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a1e30-IntLiteralConstant" - }, - { - "id": "0x5753ca1a1e30-IntLiteralConstant", - "CharBlock": "0" - }, - { - "id": "0x5753ca1a1490-AllocOpt", - "variantKey": "StatOrErrmsg", - "StatOrErrmsg": "0x5753ca1a1490-StatOrErrmsg" - }, - { - "id": "0x5753ca1a1490-StatOrErrmsg", - "variantKey": "StatVariable", - "StatVariable": "0x5753ca1a1490-StatVariable" - }, - { - "id": "0x5753ca1a1490-StatVariable", - "Expr": "0x5753ca1a1490-Variable" - }, - { - "id": "0x5753ca1a1490-Variable", - "variantKey": "Designator", - "Designator": "0x5753ca1a2050-Designator" - }, - { - "id": "0x5753ca1a2050-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1a2060-DataRef" - }, - { - "id": "0x5753ca1a2060-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1a2060-Name" - }, - { - "id": "0x5753ca1a2060-Name", - "source": "i" - }, - { - "id": "0x5753ca1a20c0-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1a20c0-ExecutableConstruct" - }, - { - "id": "0x5753ca1a20c0-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1a20c0-Statement" - }, - { - "id": "0x5753ca1a20c0-Statement", - "statement": "0x5753ca1a20d0-ActionStmt", - "source": "call check_err(i)" - }, - { - "id": "0x5753ca1a20d0-ActionStmt", - "variantKey": "CallStmt", - "CallStmt": "0x5753ca1a2360-CallStmt" - }, - { - "id": "0x5753ca1a2360-CallStmt", - "call": "0x5753ca1a2360-Call" - }, - { - "id": "0x5753ca1a2360-Call", - "ProcedureDesignator": "0x5753ca1a2378-ProcedureDesignator", - "ActualArgSpec": [ - "0x5753ca1a2260-ActualArgSpec"] - }, - { - "id": "0x5753ca1a2378-ProcedureDesignator", - "variantKey": "Name", - "Name": "0x5753ca1a2378-Name" - }, - { - "id": "0x5753ca1a2378-Name", - "source": "check_err" - }, - { - "id": "0x5753ca1a2260-ActualArgSpec", - "ActualArg": "0x5753ca1a2260-ActualArg" - }, - { - "id": "0x5753ca1a2260-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1a2170-Expr" - }, - { - "id": "0x5753ca1a2170-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1a0230-Designator" - }, - { - "id": "0x5753ca1a0230-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1a0240-DataRef" - }, - { - "id": "0x5753ca1a0240-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1a0240-Name" - }, - { - "id": "0x5753ca1a0240-Name", - "source": "i" - }, - { - "id": "0x5753ca1a2b90-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1a2b90-ExecutableConstruct" - }, - { - "id": "0x5753ca1a2b90-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1a2b90-Statement" - }, - { - "id": "0x5753ca1a2b90-Statement", - "statement": "0x5753ca1a2ba0-ActionStmt", - "source": "allocate(e(32+0, 32+0), stat=i)" - }, - { - "id": "0x5753ca1a2ba0-ActionStmt", - "variantKey": "AllocateStmt", - "AllocateStmt": "0x5753ca19f170-AllocateStmt" - }, - { - "id": "0x5753ca19f170-AllocateStmt", - "Allocation": [ - "0x5753ca1a29c0-Allocation"], - "AllocOpt": [ - "0x5753ca1a1f00-AllocOpt"] - }, - { - "id": "0x5753ca1a29c0-Allocation", - "AllocateObject": "0x5753ca1a2a08-AllocateObject", - "AllocateShapeSpec": [ - "0x5753ca1ae070-AllocateShapeSpec", - "0x5753ca1ade80-AllocateShapeSpec"] - }, - { - "id": "0x5753ca1a2a08-AllocateObject", - "variantKey": "Name", - "Name": "0x5753ca1a2a18-Name" - }, - { - "id": "0x5753ca1a2a18-Name", - "source": "e" - }, - { - "id": "0x5753ca1ae070-AllocateShapeSpec", - "upper_bound": "0x5753ca1a2500-Expr" - }, - { - "id": "0x5753ca1a2500-Expr", - "variantKey": "Add", - "Add": "0x5753ca1a2520-Add" - }, - { - "id": "0x5753ca1a2520-Add", - "left": "0x5753ca1a2420-Expr", - "right": "0x5753ca1a25e0-Expr", - "op": "ADD" - }, - { - "id": "0x5753ca1a2420-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a2440-LiteralConstant" - }, - { - "id": "0x5753ca1a2440-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a2440-IntLiteralConstant" - }, - { - "id": "0x5753ca1a2440-IntLiteralConstant", - "CharBlock": "32" - }, - { - "id": "0x5753ca1a25e0-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a2600-LiteralConstant" - }, - { - "id": "0x5753ca1a2600-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a2600-IntLiteralConstant" - }, - { - "id": "0x5753ca1a2600-IntLiteralConstant", - "CharBlock": "0" - }, - { - "id": "0x5753ca1ade80-AllocateShapeSpec", - "upper_bound": "0x5753ca1a27a0-Expr" - }, - { - "id": "0x5753ca1a27a0-Expr", - "variantKey": "Add", - "Add": "0x5753ca1a27c0-Add" - }, - { - "id": "0x5753ca1a27c0-Add", - "left": "0x5753ca1a26c0-Expr", - "right": "0x5753ca1a2880-Expr", - "op": "ADD" - }, - { - "id": "0x5753ca1a26c0-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a26e0-LiteralConstant" - }, - { - "id": "0x5753ca1a26e0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a26e0-IntLiteralConstant" - }, - { - "id": "0x5753ca1a26e0-IntLiteralConstant", - "CharBlock": "32" - }, - { - "id": "0x5753ca1a2880-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a28a0-LiteralConstant" - }, - { - "id": "0x5753ca1a28a0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a28a0-IntLiteralConstant" - }, - { - "id": "0x5753ca1a28a0-IntLiteralConstant", - "CharBlock": "0" - }, - { - "id": "0x5753ca1a1f00-AllocOpt", - "variantKey": "StatOrErrmsg", - "StatOrErrmsg": "0x5753ca1a1f00-StatOrErrmsg" - }, - { - "id": "0x5753ca1a1f00-StatOrErrmsg", - "variantKey": "StatVariable", - "StatVariable": "0x5753ca1a1f00-StatVariable" - }, - { - "id": "0x5753ca1a1f00-StatVariable", - "Expr": "0x5753ca1a1f00-Variable" - }, - { - "id": "0x5753ca1a1f00-Variable", - "variantKey": "Designator", - "Designator": "0x5753ca1a2ac0-Designator" - }, - { - "id": "0x5753ca1a2ac0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1a2ad0-DataRef" - }, - { - "id": "0x5753ca1a2ad0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1a2ad0-Name" - }, - { - "id": "0x5753ca1a2ad0-Name", - "source": "i" - }, - { - "id": "0x5753ca1a2b30-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1a2b30-ExecutableConstruct" - }, - { - "id": "0x5753ca1a2b30-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1a2b30-Statement" - }, - { - "id": "0x5753ca1a2b30-Statement", - "statement": "0x5753ca1a2b40-ActionStmt", - "source": "call check_err(i)" - }, - { - "id": "0x5753ca1a2b40-ActionStmt", - "variantKey": "CallStmt", - "CallStmt": "0x5753ca1a2dd0-CallStmt" - }, - { - "id": "0x5753ca1a2dd0-CallStmt", - "call": "0x5753ca1a2dd0-Call" - }, - { - "id": "0x5753ca1a2dd0-Call", - "ProcedureDesignator": "0x5753ca1a2de8-ProcedureDesignator", - "ActualArgSpec": [ - "0x5753ca1a2cd0-ActualArgSpec"] - }, - { - "id": "0x5753ca1a2de8-ProcedureDesignator", - "variantKey": "Name", - "Name": "0x5753ca1a2de8-Name" - }, - { - "id": "0x5753ca1a2de8-Name", - "source": "check_err" - }, - { - "id": "0x5753ca1a2cd0-ActualArgSpec", - "ActualArg": "0x5753ca1a2cd0-ActualArg" - }, - { - "id": "0x5753ca1a2cd0-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1a2be0-Expr" - }, - { - "id": "0x5753ca1a2be0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca19fee0-Designator" - }, - { - "id": "0x5753ca19fee0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca19fef0-DataRef" - }, - { - "id": "0x5753ca19fef0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca19fef0-Name" - }, - { - "id": "0x5753ca19fef0-Name", - "source": "i" - }, - { - "id": "0x5753ca1a3600-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1a3600-ExecutableConstruct" - }, - { - "id": "0x5753ca1a3600-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1a3600-Statement" - }, - { - "id": "0x5753ca1a3600-Statement", - "statement": "0x5753ca1a3610-ActionStmt", - "source": "allocate(f(32+0, 32+0), stat=i)" - }, - { - "id": "0x5753ca1a3610-ActionStmt", - "variantKey": "AllocateStmt", - "AllocateStmt": "0x5753ca1270b0-AllocateStmt" - }, - { - "id": "0x5753ca1270b0-AllocateStmt", - "Allocation": [ - "0x5753ca1a3430-Allocation"], - "AllocOpt": [ - "0x5753ca1a2970-AllocOpt"] - }, - { - "id": "0x5753ca1a3430-Allocation", - "AllocateObject": "0x5753ca1a3478-AllocateObject", - "AllocateShapeSpec": [ - "0x5753ca1ae230-AllocateShapeSpec", - "0x5753ca1ae120-AllocateShapeSpec"] - }, - { - "id": "0x5753ca1a3478-AllocateObject", - "variantKey": "Name", - "Name": "0x5753ca1a3488-Name" - }, - { - "id": "0x5753ca1a3488-Name", - "source": "f" - }, - { - "id": "0x5753ca1ae230-AllocateShapeSpec", - "upper_bound": "0x5753ca1a2f70-Expr" - }, - { - "id": "0x5753ca1a2f70-Expr", - "variantKey": "Add", - "Add": "0x5753ca1a2f90-Add" - }, - { - "id": "0x5753ca1a2f90-Add", - "left": "0x5753ca1a2e90-Expr", - "right": "0x5753ca1a3050-Expr", - "op": "ADD" - }, - { - "id": "0x5753ca1a2e90-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a2eb0-LiteralConstant" - }, - { - "id": "0x5753ca1a2eb0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a2eb0-IntLiteralConstant" - }, - { - "id": "0x5753ca1a2eb0-IntLiteralConstant", - "CharBlock": "32" - }, - { - "id": "0x5753ca1a3050-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a3070-LiteralConstant" - }, - { - "id": "0x5753ca1a3070-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a3070-IntLiteralConstant" - }, - { - "id": "0x5753ca1a3070-IntLiteralConstant", - "CharBlock": "0" - }, - { - "id": "0x5753ca1ae120-AllocateShapeSpec", - "upper_bound": "0x5753ca1a3210-Expr" - }, - { - "id": "0x5753ca1a3210-Expr", - "variantKey": "Add", - "Add": "0x5753ca1a3230-Add" - }, - { - "id": "0x5753ca1a3230-Add", - "left": "0x5753ca1a3130-Expr", - "right": "0x5753ca1a32f0-Expr", - "op": "ADD" - }, - { - "id": "0x5753ca1a3130-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a3150-LiteralConstant" - }, - { - "id": "0x5753ca1a3150-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a3150-IntLiteralConstant" - }, - { - "id": "0x5753ca1a3150-IntLiteralConstant", - "CharBlock": "32" - }, - { - "id": "0x5753ca1a32f0-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a3310-LiteralConstant" - }, - { - "id": "0x5753ca1a3310-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a3310-IntLiteralConstant" - }, - { - "id": "0x5753ca1a3310-IntLiteralConstant", - "CharBlock": "0" - }, - { - "id": "0x5753ca1a2970-AllocOpt", - "variantKey": "StatOrErrmsg", - "StatOrErrmsg": "0x5753ca1a2970-StatOrErrmsg" - }, - { - "id": "0x5753ca1a2970-StatOrErrmsg", - "variantKey": "StatVariable", - "StatVariable": "0x5753ca1a2970-StatVariable" - }, - { - "id": "0x5753ca1a2970-StatVariable", - "Expr": "0x5753ca1a2970-Variable" - }, - { - "id": "0x5753ca1a2970-Variable", - "variantKey": "Designator", - "Designator": "0x5753ca1a3530-Designator" - }, - { - "id": "0x5753ca1a3530-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1a3540-DataRef" - }, - { - "id": "0x5753ca1a3540-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1a3540-Name" - }, - { - "id": "0x5753ca1a3540-Name", - "source": "i" - }, - { - "id": "0x5753ca1a35a0-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1a35a0-ExecutableConstruct" - }, - { - "id": "0x5753ca1a35a0-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1a35a0-Statement" - }, - { - "id": "0x5753ca1a35a0-Statement", - "statement": "0x5753ca1a35b0-ActionStmt", - "source": "call check_err(i)" - }, - { - "id": "0x5753ca1a35b0-ActionStmt", - "variantKey": "CallStmt", - "CallStmt": "0x5753ca1a3840-CallStmt" - }, - { - "id": "0x5753ca1a3840-CallStmt", - "call": "0x5753ca1a3840-Call" - }, - { - "id": "0x5753ca1a3840-Call", - "ProcedureDesignator": "0x5753ca1a3858-ProcedureDesignator", - "ActualArgSpec": [ - "0x5753ca1a3740-ActualArgSpec"] - }, - { - "id": "0x5753ca1a3858-ProcedureDesignator", - "variantKey": "Name", - "Name": "0x5753ca1a3858-Name" - }, - { - "id": "0x5753ca1a3858-Name", - "source": "check_err" - }, - { - "id": "0x5753ca1a3740-ActualArgSpec", - "ActualArg": "0x5753ca1a3740-ActualArg" - }, - { - "id": "0x5753ca1a3740-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1a3650-Expr" - }, - { - "id": "0x5753ca1a3650-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca19f420-Designator" - }, - { - "id": "0x5753ca19f420-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca19f430-DataRef" - }, - { - "id": "0x5753ca19f430-DataRef", - "variantKey": "Name", - "Name": "0x5753ca19f430-Name" - }, - { - "id": "0x5753ca19f430-Name", - "source": "i" - }, - { - "id": "0x5753ca1a4070-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1a4070-ExecutableConstruct" - }, - { - "id": "0x5753ca1a4070-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1a4070-Statement" - }, - { - "id": "0x5753ca1a4070-Statement", - "statement": "0x5753ca1a4080-ActionStmt", - "source": "allocate(g(32+0, 32+0), stat=i)" - }, - { - "id": "0x5753ca1a4080-ActionStmt", - "variantKey": "AllocateStmt", - "AllocateStmt": "0x5753ca1271d0-AllocateStmt" - }, - { - "id": "0x5753ca1271d0-AllocateStmt", - "Allocation": [ - "0x5753ca1a3ea0-Allocation"], - "AllocOpt": [ - "0x5753ca1a33e0-AllocOpt"] - }, - { - "id": "0x5753ca1a3ea0-Allocation", - "AllocateObject": "0x5753ca1a3ee8-AllocateObject", - "AllocateShapeSpec": [ - "0x5753ca1af9d0-AllocateShapeSpec", - "0x5753ca1af960-AllocateShapeSpec"] - }, - { - "id": "0x5753ca1a3ee8-AllocateObject", - "variantKey": "Name", - "Name": "0x5753ca1a3ef8-Name" - }, - { - "id": "0x5753ca1a3ef8-Name", - "source": "g" - }, - { - "id": "0x5753ca1af9d0-AllocateShapeSpec", - "upper_bound": "0x5753ca1a39e0-Expr" - }, - { - "id": "0x5753ca1a39e0-Expr", - "variantKey": "Add", - "Add": "0x5753ca1a3a00-Add" - }, - { - "id": "0x5753ca1a3a00-Add", - "left": "0x5753ca1a3900-Expr", - "right": "0x5753ca1a3ac0-Expr", - "op": "ADD" - }, - { - "id": "0x5753ca1a3900-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a3920-LiteralConstant" - }, - { - "id": "0x5753ca1a3920-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a3920-IntLiteralConstant" - }, - { - "id": "0x5753ca1a3920-IntLiteralConstant", - "CharBlock": "32" - }, - { - "id": "0x5753ca1a3ac0-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a3ae0-LiteralConstant" - }, - { - "id": "0x5753ca1a3ae0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a3ae0-IntLiteralConstant" - }, - { - "id": "0x5753ca1a3ae0-IntLiteralConstant", - "CharBlock": "0" - }, - { - "id": "0x5753ca1af960-AllocateShapeSpec", - "upper_bound": "0x5753ca1a3c80-Expr" - }, - { - "id": "0x5753ca1a3c80-Expr", - "variantKey": "Add", - "Add": "0x5753ca1a3ca0-Add" - }, - { - "id": "0x5753ca1a3ca0-Add", - "left": "0x5753ca1a3ba0-Expr", - "right": "0x5753ca1a3d60-Expr", - "op": "ADD" - }, - { - "id": "0x5753ca1a3ba0-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a3bc0-LiteralConstant" - }, - { - "id": "0x5753ca1a3bc0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a3bc0-IntLiteralConstant" - }, - { - "id": "0x5753ca1a3bc0-IntLiteralConstant", - "CharBlock": "32" - }, - { - "id": "0x5753ca1a3d60-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a3d80-LiteralConstant" - }, - { - "id": "0x5753ca1a3d80-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a3d80-IntLiteralConstant" - }, - { - "id": "0x5753ca1a3d80-IntLiteralConstant", - "CharBlock": "0" - }, - { - "id": "0x5753ca1a33e0-AllocOpt", - "variantKey": "StatOrErrmsg", - "StatOrErrmsg": "0x5753ca1a33e0-StatOrErrmsg" - }, - { - "id": "0x5753ca1a33e0-StatOrErrmsg", - "variantKey": "StatVariable", - "StatVariable": "0x5753ca1a33e0-StatVariable" - }, - { - "id": "0x5753ca1a33e0-StatVariable", - "Expr": "0x5753ca1a33e0-Variable" - }, - { - "id": "0x5753ca1a33e0-Variable", - "variantKey": "Designator", - "Designator": "0x5753ca1a3fa0-Designator" - }, - { - "id": "0x5753ca1a3fa0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1a3fb0-DataRef" - }, - { - "id": "0x5753ca1a3fb0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1a3fb0-Name" - }, - { - "id": "0x5753ca1a3fb0-Name", - "source": "i" - }, - { - "id": "0x5753ca1a4010-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1a4010-ExecutableConstruct" - }, - { - "id": "0x5753ca1a4010-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1a4010-Statement" - }, - { - "id": "0x5753ca1a4010-Statement", - "statement": "0x5753ca1a4020-ActionStmt", - "source": "call check_err(i)" - }, - { - "id": "0x5753ca1a4020-ActionStmt", - "variantKey": "CallStmt", - "CallStmt": "0x5753ca1a42b0-CallStmt" - }, - { - "id": "0x5753ca1a42b0-CallStmt", - "call": "0x5753ca1a42b0-Call" - }, - { - "id": "0x5753ca1a42b0-Call", - "ProcedureDesignator": "0x5753ca1a42c8-ProcedureDesignator", - "ActualArgSpec": [ - "0x5753ca1a41b0-ActualArgSpec"] - }, - { - "id": "0x5753ca1a42c8-ProcedureDesignator", - "variantKey": "Name", - "Name": "0x5753ca1a42c8-Name" - }, - { - "id": "0x5753ca1a42c8-Name", - "source": "check_err" - }, - { - "id": "0x5753ca1a41b0-ActualArgSpec", - "ActualArg": "0x5753ca1a41b0-ActualArg" - }, - { - "id": "0x5753ca1a41b0-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1a40c0-Expr" - }, - { - "id": "0x5753ca1a40c0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1a0b10-Designator" - }, - { - "id": "0x5753ca1a0b10-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1a0b20-DataRef" - }, - { - "id": "0x5753ca1a0b20-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1a0b20-Name" - }, - { - "id": "0x5753ca1a0b20-Name", - "source": "i" - }, - { - "id": "0x5753ca19eeb0-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca19eeb0-ExecutableConstruct" - }, - { - "id": "0x5753ca19eeb0-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca19eeb0-Statement" - }, - { - "id": "0x5753ca19eeb0-Statement", - "statement": "0x5753ca19eec0-ActionStmt", - "source": "call init_array(32, 32, 32, 32, 32, a, b, c, d)" - }, - { - "id": "0x5753ca19eec0-ActionStmt", - "variantKey": "CallStmt", - "CallStmt": "0x5753ca1ae800-CallStmt" - }, - { - "id": "0x5753ca1ae800-CallStmt", - "call": "0x5753ca1ae800-Call" - }, - { - "id": "0x5753ca1ae800-Call", - "ProcedureDesignator": "0x5753ca1ae818-ProcedureDesignator", - "ActualArgSpec": [ - "0x5753ca1ae690-ActualArgSpec", - "0x5753ca1a62a0-ActualArgSpec", - "0x5753ca1a63b0-ActualArgSpec", - "0x5753ca1a64c0-ActualArgSpec", - "0x5753ca1a65d0-ActualArgSpec", - "0x5753ca1a66e0-ActualArgSpec", - "0x5753ca1a67f0-ActualArgSpec", - "0x5753ca1a6900-ActualArgSpec", - "0x5753ca19cda0-ActualArgSpec"] - }, - { - "id": "0x5753ca1ae818-ProcedureDesignator", - "variantKey": "Name", - "Name": "0x5753ca1ae818-Name" - }, - { - "id": "0x5753ca1ae818-Name", - "source": "init_array" - }, - { - "id": "0x5753ca1ae690-ActualArgSpec", - "ActualArg": "0x5753ca1ae690-ActualArg" - }, - { - "id": "0x5753ca1ae690-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1a5350-Expr" - }, - { - "id": "0x5753ca1a5350-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a5370-LiteralConstant" - }, - { - "id": "0x5753ca1a5370-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a5370-IntLiteralConstant" - }, - { - "id": "0x5753ca1a5370-IntLiteralConstant", - "CharBlock": "32" - }, - { - "id": "0x5753ca1a62a0-ActualArgSpec", - "ActualArg": "0x5753ca1a62a0-ActualArg" - }, - { - "id": "0x5753ca1a62a0-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1a4d10-Expr" - }, - { - "id": "0x5753ca1a4d10-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a4d30-LiteralConstant" - }, - { - "id": "0x5753ca1a4d30-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a4d30-IntLiteralConstant" - }, - { - "id": "0x5753ca1a4d30-IntLiteralConstant", - "CharBlock": "32" - }, - { - "id": "0x5753ca1a63b0-ActualArgSpec", - "ActualArg": "0x5753ca1a63b0-ActualArg" - }, - { - "id": "0x5753ca1a63b0-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1a4790-Expr" - }, - { - "id": "0x5753ca1a4790-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a47b0-LiteralConstant" - }, - { - "id": "0x5753ca1a47b0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a47b0-IntLiteralConstant" - }, - { - "id": "0x5753ca1a47b0-IntLiteralConstant", - "CharBlock": "32" - }, - { - "id": "0x5753ca1a64c0-ActualArgSpec", - "ActualArg": "0x5753ca1a64c0-ActualArg" - }, - { - "id": "0x5753ca1a64c0-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1a4660-Expr" - }, - { - "id": "0x5753ca1a4660-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a4680-LiteralConstant" - }, - { - "id": "0x5753ca1a4680-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a4680-IntLiteralConstant" - }, - { - "id": "0x5753ca1a4680-IntLiteralConstant", - "CharBlock": "32" - }, - { - "id": "0x5753ca1a65d0-ActualArgSpec", - "ActualArg": "0x5753ca1a65d0-ActualArg" - }, - { - "id": "0x5753ca1a65d0-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1a4530-Expr" - }, - { - "id": "0x5753ca1a4530-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a4550-LiteralConstant" - }, - { - "id": "0x5753ca1a4550-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a4550-IntLiteralConstant" - }, - { - "id": "0x5753ca1a4550-IntLiteralConstant", - "CharBlock": "32" - }, - { - "id": "0x5753ca1a66e0-ActualArgSpec", - "ActualArg": "0x5753ca1a66e0-ActualArg" - }, - { - "id": "0x5753ca1a66e0-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1a4450-Expr" - }, - { - "id": "0x5753ca1a4450-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1a58c0-Designator" - }, - { - "id": "0x5753ca1a58c0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1a58d0-DataRef" - }, - { - "id": "0x5753ca1a58d0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1a58d0-Name" - }, - { - "id": "0x5753ca1a58d0-Name", - "source": "a" - }, - { - "id": "0x5753ca1a67f0-ActualArgSpec", - "ActualArg": "0x5753ca1a67f0-ActualArg" - }, - { - "id": "0x5753ca1a67f0-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1a4370-Expr" - }, - { - "id": "0x5753ca1a4370-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1a5280-Designator" - }, - { - "id": "0x5753ca1a5280-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1a5290-DataRef" - }, - { - "id": "0x5753ca1a5290-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1a5290-Name" - }, - { - "id": "0x5753ca1a5290-Name", - "source": "b" - }, - { - "id": "0x5753ca1a6900-ActualArgSpec", - "ActualArg": "0x5753ca1a6900-ActualArg" - }, - { - "id": "0x5753ca1a6900-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1a5990-Expr" - }, - { - "id": "0x5753ca1a5990-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1a4c40-Designator" - }, - { - "id": "0x5753ca1a4c40-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1a4c50-DataRef" - }, - { - "id": "0x5753ca1a4c50-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1a4c50-Name" - }, - { - "id": "0x5753ca1a4c50-Name", - "source": "c" - }, - { - "id": "0x5753ca19cda0-ActualArgSpec", - "ActualArg": "0x5753ca19cda0-ActualArg" - }, - { - "id": "0x5753ca19cda0-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1a5fd0-Expr" - }, - { - "id": "0x5753ca1a5fd0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1a6a00-Designator" - }, - { - "id": "0x5753ca1a6a00-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1a6a10-DataRef" - }, - { - "id": "0x5753ca1a6a10-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1a6a10-Name" - }, - { - "id": "0x5753ca1a6a10-Name", - "source": "d" - }, - { - "id": "0x5753ca1a5cf0-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1a5cf0-ExecutableConstruct" - }, - { - "id": "0x5753ca1a5cf0-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1a5cf0-Statement" - }, - { - "id": "0x5753ca1a5cf0-Statement", - "statement": "0x5753ca1a5d00-ActionStmt", - "source": "call polybench_timer_start()" - }, - { - "id": "0x5753ca1a5d00-ActionStmt", - "variantKey": "CallStmt", - "CallStmt": "0x5753ca19ef00-CallStmt" - }, - { - "id": "0x5753ca19ef00-CallStmt", - "call": "0x5753ca19ef00-Call" - }, - { - "id": "0x5753ca19ef00-Call", - "ProcedureDesignator": "0x5753ca19ef18-ProcedureDesignator" - }, - { - "id": "0x5753ca19ef18-ProcedureDesignator", - "variantKey": "Name", - "Name": "0x5753ca19ef18-Name" - }, - { - "id": "0x5753ca19ef18-Name", - "source": "polybench_timer_start" - }, - { - "id": "0x5753ca1b7ba0-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1b7ba0-ExecutableConstruct" - }, - { - "id": "0x5753ca1b7ba0-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1b7ba0-Statement" - }, - { - "id": "0x5753ca1b7ba0-Statement", - "statement": "0x5753ca1b7bb0-ActionStmt", - "source": "call kernel_3mm(32, 32, 32, 32, 32, e, a, b, f, c, d, g)" - }, - { - "id": "0x5753ca1b7bb0-ActionStmt", - "variantKey": "CallStmt", - "CallStmt": "0x5753ca1b7a60-CallStmt" - }, - { - "id": "0x5753ca1b7a60-CallStmt", - "call": "0x5753ca1b7a60-Call" - }, - { - "id": "0x5753ca1b7a60-Call", - "ProcedureDesignator": "0x5753ca1b7a78-ProcedureDesignator", - "ActualArgSpec": [ - "0x5753ca1b78f0-ActualArgSpec", - "0x5753ca1b6c60-ActualArgSpec", - "0x5753ca1b6d70-ActualArgSpec", - "0x5753ca1b6e80-ActualArgSpec", - "0x5753ca1b6f90-ActualArgSpec", - "0x5753ca1b70a0-ActualArgSpec", - "0x5753ca1b71b0-ActualArgSpec", - "0x5753ca1b72c0-ActualArgSpec", - "0x5753ca1b73d0-ActualArgSpec", - "0x5753ca1b74e0-ActualArgSpec", - "0x5753ca1b75f0-ActualArgSpec", - "0x5753ca1b77e0-ActualArgSpec"] - }, - { - "id": "0x5753ca1b7a78-ProcedureDesignator", - "variantKey": "Name", - "Name": "0x5753ca1b7a78-Name" - }, - { - "id": "0x5753ca1b7a78-Name", - "source": "kernel_3mm" - }, - { - "id": "0x5753ca1b78f0-ActualArgSpec", - "ActualArg": "0x5753ca1b78f0-ActualArg" - }, - { - "id": "0x5753ca1b78f0-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca19eb00-Expr" - }, - { - "id": "0x5753ca19eb00-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca19eb20-LiteralConstant" - }, - { - "id": "0x5753ca19eb20-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca19eb20-IntLiteralConstant" - }, - { - "id": "0x5753ca19eb20-IntLiteralConstant", - "CharBlock": "32" - }, - { - "id": "0x5753ca1b6c60-ActualArgSpec", - "ActualArg": "0x5753ca1b6c60-ActualArg" - }, - { - "id": "0x5753ca1b6c60-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca19ea20-Expr" - }, - { - "id": "0x5753ca19ea20-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca19ea40-LiteralConstant" - }, - { - "id": "0x5753ca19ea40-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca19ea40-IntLiteralConstant" - }, - { - "id": "0x5753ca19ea40-IntLiteralConstant", - "CharBlock": "32" - }, - { - "id": "0x5753ca1b6d70-ActualArgSpec", - "ActualArg": "0x5753ca1b6d70-ActualArg" - }, - { - "id": "0x5753ca1b6d70-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca19e850-Expr" - }, - { - "id": "0x5753ca19e850-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca19e870-LiteralConstant" - }, - { - "id": "0x5753ca19e870-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca19e870-IntLiteralConstant" - }, - { - "id": "0x5753ca19e870-IntLiteralConstant", - "CharBlock": "32" - }, - { - "id": "0x5753ca1b6e80-ActualArgSpec", - "ActualArg": "0x5753ca1b6e80-ActualArg" - }, - { - "id": "0x5753ca1b6e80-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca19e770-Expr" - }, - { - "id": "0x5753ca19e770-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca19e790-LiteralConstant" - }, - { - "id": "0x5753ca19e790-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca19e790-IntLiteralConstant" - }, - { - "id": "0x5753ca19e790-IntLiteralConstant", - "CharBlock": "32" - }, - { - "id": "0x5753ca1b6f90-ActualArgSpec", - "ActualArg": "0x5753ca1b6f90-ActualArg" - }, - { - "id": "0x5753ca1b6f90-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca19e690-Expr" - }, - { - "id": "0x5753ca19e690-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca19e6b0-LiteralConstant" - }, - { - "id": "0x5753ca19e6b0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca19e6b0-IntLiteralConstant" - }, - { - "id": "0x5753ca19e6b0-IntLiteralConstant", - "CharBlock": "32" - }, - { - "id": "0x5753ca1b70a0-ActualArgSpec", - "ActualArg": "0x5753ca1b70a0-ActualArg" - }, - { - "id": "0x5753ca1b70a0-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca19e5b0-Expr" - }, - { - "id": "0x5753ca19e5b0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1b6340-Designator" - }, - { - "id": "0x5753ca1b6340-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1b6350-DataRef" - }, - { - "id": "0x5753ca1b6350-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1b6350-Name" - }, - { - "id": "0x5753ca1b6350-Name", - "source": "e" - }, - { - "id": "0x5753ca1b71b0-ActualArgSpec", - "ActualArg": "0x5753ca1b71b0-ActualArg" - }, - { - "id": "0x5753ca1b71b0-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca19efc0-Expr" - }, - { - "id": "0x5753ca19efc0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1b5d50-Designator" - }, - { - "id": "0x5753ca1b5d50-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1b5d60-DataRef" - }, - { - "id": "0x5753ca1b5d60-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1b5d60-Name" - }, - { - "id": "0x5753ca1b5d60-Name", - "source": "a" - }, - { - "id": "0x5753ca1b72c0-ActualArgSpec", - "ActualArg": "0x5753ca1b72c0-ActualArg" - }, - { - "id": "0x5753ca1b72c0-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1b5b20-Expr" - }, - { - "id": "0x5753ca1b5b20-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca19ed80-Designator" - }, - { - "id": "0x5753ca19ed80-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca19ed90-DataRef" - }, - { - "id": "0x5753ca19ed90-DataRef", - "variantKey": "Name", - "Name": "0x5753ca19ed90-Name" - }, - { - "id": "0x5753ca19ed90-Name", - "source": "b" - }, - { - "id": "0x5753ca1b73d0-ActualArgSpec", - "ActualArg": "0x5753ca1b73d0-ActualArg" - }, - { - "id": "0x5753ca1b73d0-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1b6a00-Expr" - }, - { - "id": "0x5753ca1b6a00-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1a1580-Designator" - }, - { - "id": "0x5753ca1a1580-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1a1590-DataRef" - }, - { - "id": "0x5753ca1a1590-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1a1590-Name" - }, - { - "id": "0x5753ca1a1590-Name", - "source": "f" - }, - { - "id": "0x5753ca1b74e0-ActualArgSpec", - "ActualArg": "0x5753ca1b74e0-ActualArg" - }, - { - "id": "0x5753ca1b74e0-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1b6410-Expr" - }, - { - "id": "0x5753ca1b6410-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1a5f00-Designator" - }, - { - "id": "0x5753ca1a5f00-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1a5f10-DataRef" - }, - { - "id": "0x5753ca1a5f10-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1a5f10-Name" - }, - { - "id": "0x5753ca1a5f10-Name", - "source": "c" - }, - { - "id": "0x5753ca1b75f0-ActualArgSpec", - "ActualArg": "0x5753ca1b75f0-ActualArg" - }, - { - "id": "0x5753ca1b75f0-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1b5e20-Expr" - }, - { - "id": "0x5753ca1b5e20-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1a1ff0-Designator" - }, - { - "id": "0x5753ca1a1ff0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1a2000-DataRef" - }, - { - "id": "0x5753ca1a2000-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1a2000-Name" - }, - { - "id": "0x5753ca1a2000-Name", - "source": "d" - }, - { - "id": "0x5753ca1b77e0-ActualArgSpec", - "ActualArg": "0x5753ca1b77e0-ActualArg" - }, - { - "id": "0x5753ca1b77e0-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1b76f0-Expr" - }, - { - "id": "0x5753ca1b76f0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca19ec50-Designator" - }, - { - "id": "0x5753ca19ec50-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca19ec60-DataRef" - }, - { - "id": "0x5753ca19ec60-DataRef", - "variantKey": "Name", - "Name": "0x5753ca19ec60-Name" - }, - { - "id": "0x5753ca19ec60-Name", - "source": "g" - }, - { - "id": "0x5753ca1b6720-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1b6720-ExecutableConstruct" - }, - { - "id": "0x5753ca1b6720-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1b6720-Statement" - }, - { - "id": "0x5753ca1b6720-Statement", - "statement": "0x5753ca1b6730-ActionStmt", - "source": "call polybench_timer_stop()" - }, - { - "id": "0x5753ca1b6730-ActionStmt", - "variantKey": "CallStmt", - "CallStmt": "0x5753ca1b7bf0-CallStmt" - }, - { - "id": "0x5753ca1b7bf0-CallStmt", - "call": "0x5753ca1b7bf0-Call" - }, - { - "id": "0x5753ca1b7bf0-Call", - "ProcedureDesignator": "0x5753ca1b7c08-ProcedureDesignator" - }, - { - "id": "0x5753ca1b7c08-ProcedureDesignator", - "variantKey": "Name", - "Name": "0x5753ca1b7c08-Name" - }, - { - "id": "0x5753ca1b7c08-Name", - "source": "polybench_timer_stop" - }, - { - "id": "0x5753ca1b6b90-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1b6b90-ExecutableConstruct" - }, - { - "id": "0x5753ca1b6b90-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1b6b90-Statement" - }, - { - "id": "0x5753ca1b6b90-Statement", - "statement": "0x5753ca1b6ba0-ActionStmt", - "source": "call polybench_timer_print()" - }, - { - "id": "0x5753ca1b6ba0-ActionStmt", - "variantKey": "CallStmt", - "CallStmt": "0x5753ca1b7cb0-CallStmt" - }, - { - "id": "0x5753ca1b7cb0-CallStmt", - "call": "0x5753ca1b7cb0-Call" - }, - { - "id": "0x5753ca1b7cb0-Call", - "ProcedureDesignator": "0x5753ca1b7cc8-ProcedureDesignator" - }, - { - "id": "0x5753ca1b7cc8-ProcedureDesignator", - "variantKey": "Name", - "Name": "0x5753ca1b7cc8-Name" - }, - { - "id": "0x5753ca1b7cc8-Name", - "source": "polybench_timer_print" - }, - { - "id": "0x5753ca1a56b0-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1a56b0-ExecutableConstruct" - }, - { - "id": "0x5753ca1a56b0-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1a56b0-Statement" - }, - { - "id": "0x5753ca1a56b0-Statement", - "statement": "0x5753ca1a56c0-ActionStmt", - "source": "call print_array(32, 32, g)" - }, - { - "id": "0x5753ca1a56c0-ActionStmt", - "variantKey": "CallStmt", - "CallStmt": "0x5753ca1b8340-CallStmt" - }, - { - "id": "0x5753ca1b8340-CallStmt", - "call": "0x5753ca1b8340-Call" - }, - { - "id": "0x5753ca1b8340-Call", - "ProcedureDesignator": "0x5753ca1b8358-ProcedureDesignator", - "ActualArgSpec": [ - "0x5753ca1b8240-ActualArgSpec", - "0x5753ca1b8020-ActualArgSpec", - "0x5753ca1b8130-ActualArgSpec"] - }, - { - "id": "0x5753ca1b8358-ProcedureDesignator", - "variantKey": "Name", - "Name": "0x5753ca1b8358-Name" - }, - { - "id": "0x5753ca1b8358-Name", - "source": "print_array" - }, - { - "id": "0x5753ca1b8240-ActualArgSpec", - "ActualArg": "0x5753ca1b8240-ActualArg" - }, - { - "id": "0x5753ca1b8240-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1b7f30-Expr" - }, - { - "id": "0x5753ca1b7f30-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1b7f50-LiteralConstant" - }, - { - "id": "0x5753ca1b7f50-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1b7f50-IntLiteralConstant" - }, - { - "id": "0x5753ca1b7f50-IntLiteralConstant", - "CharBlock": "32" - }, - { - "id": "0x5753ca1b8020-ActualArgSpec", - "ActualArg": "0x5753ca1b8020-ActualArg" - }, - { - "id": "0x5753ca1b8020-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1b7e50-Expr" - }, - { - "id": "0x5753ca1b7e50-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1b7e70-LiteralConstant" - }, - { - "id": "0x5753ca1b7e70-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1b7e70-IntLiteralConstant" - }, - { - "id": "0x5753ca1b7e70-IntLiteralConstant", - "CharBlock": "32" - }, - { - "id": "0x5753ca1b8130-ActualArgSpec", - "ActualArg": "0x5753ca1b8130-ActualArg" - }, - { - "id": "0x5753ca1b8130-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1b7d70-Expr" - }, - { - "id": "0x5753ca1b7d70-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1a5480-Designator" - }, - { - "id": "0x5753ca1a5480-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1a5490-DataRef" - }, - { - "id": "0x5753ca1a5490-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1a5490-Name" - }, - { - "id": "0x5753ca1a5490-Name", - "source": "g" - }, - { - "id": "0x5753ca1a6160-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1a6160-ExecutableConstruct" - }, - { - "id": "0x5753ca1a6160-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1a6160-Statement" - }, - { - "id": "0x5753ca1a6160-Statement", - "statement": "0x5753ca1a6170-ActionStmt", - "source": "deallocate(a)" - }, - { - "id": "0x5753ca1a6170-ActionStmt", - "variantKey": "DeallocateStmt", - "DeallocateStmt": "0x5753ca1b0030-DeallocateStmt" - }, - { - "id": "0x5753ca1b0030-DeallocateStmt", - "AllocateObject": [ - "0x5753ca1ae7a0-AllocateObject"] - }, - { - "id": "0x5753ca1ae7a0-AllocateObject", - "variantKey": "Name", - "Name": "0x5753ca1ae7b0-Name" - }, - { - "id": "0x5753ca1ae7b0-Name", - "source": "a" - }, - { - "id": "0x5753ca1a5ad0-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1a5ad0-ExecutableConstruct" - }, - { - "id": "0x5753ca1a5ad0-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1a5ad0-Statement" - }, - { - "id": "0x5753ca1a5ad0-Statement", - "statement": "0x5753ca1a5ae0-ActionStmt", - "source": "deallocate(b)" - }, - { - "id": "0x5753ca1a5ae0-ActionStmt", - "variantKey": "DeallocateStmt", - "DeallocateStmt": "0x5753ca1b0710-DeallocateStmt" - }, - { - "id": "0x5753ca1b0710-DeallocateStmt", - "AllocateObject": [ - "0x5753ca19f850-AllocateObject"] - }, - { - "id": "0x5753ca19f850-AllocateObject", - "variantKey": "Name", - "Name": "0x5753ca19f860-Name" - }, - { - "id": "0x5753ca19f860-Name", - "source": "b" - }, - { - "id": "0x5753ca1b6940-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1b6940-ExecutableConstruct" - }, - { - "id": "0x5753ca1b6940-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1b6940-Statement" - }, - { - "id": "0x5753ca1b6940-Statement", - "statement": "0x5753ca1b6950-ActionStmt", - "source": "deallocate(c)" - }, - { - "id": "0x5753ca1b6950-ActionStmt", - "variantKey": "DeallocateStmt", - "DeallocateStmt": "0x5753ca1b07d0-DeallocateStmt" - }, - { - "id": "0x5753ca1b07d0-DeallocateStmt", - "AllocateObject": [ - "0x5753ca19ceb0-AllocateObject"] - }, - { - "id": "0x5753ca19ceb0-AllocateObject", - "variantKey": "Name", - "Name": "0x5753ca19cec0-Name" - }, - { - "id": "0x5753ca19cec0-Name", - "source": "c" - }, - { - "id": "0x5753ca1a2a70-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1a2a70-ExecutableConstruct" - }, - { - "id": "0x5753ca1a2a70-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1a2a70-Statement" - }, - { - "id": "0x5753ca1a2a70-Statement", - "statement": "0x5753ca1a2a80-ActionStmt", - "source": "deallocate(d)" - }, - { - "id": "0x5753ca1a2a80-ActionStmt", - "variantKey": "DeallocateStmt", - "DeallocateStmt": "0x5753ca1b0bd0-DeallocateStmt" - }, - { - "id": "0x5753ca1b0bd0-DeallocateStmt", - "AllocateObject": [ - "0x5753ca19cfc0-AllocateObject"] - }, - { - "id": "0x5753ca19cfc0-AllocateObject", - "variantKey": "Name", - "Name": "0x5753ca19cfd0-Name" - }, - { - "id": "0x5753ca19cfd0-Name", - "source": "d" - }, - { - "id": "0x5753ca19f6b0-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca19f6b0-ExecutableConstruct" - }, - { - "id": "0x5753ca19f6b0-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca19f6b0-Statement" - }, - { - "id": "0x5753ca19f6b0-Statement", - "statement": "0x5753ca19f6c0-ActionStmt", - "source": "deallocate(e)" - }, - { - "id": "0x5753ca19f6c0-ActionStmt", - "variantKey": "DeallocateStmt", - "DeallocateStmt": "0x5753ca1b1400-DeallocateStmt" - }, - { - "id": "0x5753ca1b1400-DeallocateStmt", - "AllocateObject": [ - "0x5753ca1a5c80-AllocateObject"] - }, - { - "id": "0x5753ca1a5c80-AllocateObject", - "variantKey": "Name", - "Name": "0x5753ca1a5c90-Name" - }, - { - "id": "0x5753ca1a5c90-Name", - "source": "e" - }, - { - "id": "0x5753ca1b5f10-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1b5f10-ExecutableConstruct" - }, - { - "id": "0x5753ca1b5f10-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1b5f10-Statement" - }, - { - "id": "0x5753ca1b5f10-Statement", - "statement": "0x5753ca1b5f20-ActionStmt", - "source": "deallocate(f)" - }, - { - "id": "0x5753ca1b5f20-ActionStmt", - "variantKey": "DeallocateStmt", - "DeallocateStmt": "0x5753ca1b1460-DeallocateStmt" - }, - { - "id": "0x5753ca1b1460-DeallocateStmt", - "AllocateObject": [ - "0x5753ca1a5d50-AllocateObject"] - }, - { - "id": "0x5753ca1a5d50-AllocateObject", - "variantKey": "Name", - "Name": "0x5753ca1a5d60-Name" - }, - { - "id": "0x5753ca1a5d60-Name", - "source": "f" - }, - { - "id": "0x5753ca19ffc0-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca19ffc0-ExecutableConstruct" - }, - { - "id": "0x5753ca19ffc0-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca19ffc0-Statement" - }, - { - "id": "0x5753ca19ffc0-Statement", - "statement": "0x5753ca19ffd0-ActionStmt", - "source": "deallocate(g)" - }, - { - "id": "0x5753ca19ffd0-ActionStmt", - "variantKey": "DeallocateStmt", - "DeallocateStmt": "0x5753ca1b14a0-DeallocateStmt" - }, - { - "id": "0x5753ca1b14a0-DeallocateStmt", - "AllocateObject": [ - "0x5753ca1b66b0-AllocateObject"] - }, - { - "id": "0x5753ca1b66b0-AllocateObject", - "variantKey": "Name", - "Name": "0x5753ca1b66c0-Name" - }, - { - "id": "0x5753ca1b66c0-Name", - "source": "g" - }, - { - "id": "0x5753ca1aec20-InternalSubprogramPart", - "Statement": "0x5753ca1aec38-Statement", - "InternalSubprogram": [ - "0x5753ca1ada60-InternalSubprogram", - "0x5753ca1a4c20-InternalSubprogram", - "0x5753ca1c46d0-InternalSubprogram"] - }, - { - "id": "0x5753ca1aec38-Statement", - "statement": "0x5753ca1aec48-ContainsStmt", - "source": "contains" - }, - { - "id": "0x5753ca1aec48-ContainsStmt" - }, - { - "id": "0x5753ca1ada60-InternalSubprogram", - "variantKey": "SubroutineSubprogram", - "SubroutineSubprogram": "0x5753ca1be040-SubroutineSubprogram" - }, - { - "id": "0x5753ca1be040-SubroutineSubprogram", - "Statement": "0x5753ca1be188-Statement", - "SpecificationPart": "0x5753ca1be0e0-SpecificationPart", - "ExecutionPart": "0x5753ca1be0c8-ExecutionPart", - "Statement": "0x5753ca1be040-Statement" - }, - { - "id": "0x5753ca1be188-Statement", - "statement": "0x5753ca1be198-SubroutineStmt", - "source": "subroutine init_array(ni, nj, nk, nl, nm, a, b, c , d)" - }, - { - "id": "0x5753ca1be198-SubroutineStmt", - "Name": "0x5753ca1be1d0-Name", - "DummyArg": [ - "0x5753ca1afd50-DummyArg", - "0x5753ca1affc0-DummyArg", - "0x5753ca1afd90-DummyArg", - "0x5753ca1afe40-DummyArg", - "0x5753ca1afe00-DummyArg", - "0x5753ca1afe80-DummyArg", - "0x5753ca1afee0-DummyArg", - "0x5753ca1aff20-DummyArg", - "0x5753ca1aff80-DummyArg"] - }, - { - "id": "0x5753ca1be1d0-Name", - "source": "init_array" - }, - { - "id": "0x5753ca1afd50-DummyArg", - "variantKey": "Name", - "Name": "0x5753ca1afd50-Name" - }, - { - "id": "0x5753ca1afd50-Name", - "source": "ni" - }, - { - "id": "0x5753ca1affc0-DummyArg", - "variantKey": "Name", - "Name": "0x5753ca1affc0-Name" - }, - { - "id": "0x5753ca1affc0-Name", - "source": "nj" - }, - { - "id": "0x5753ca1afd90-DummyArg", - "variantKey": "Name", - "Name": "0x5753ca1afd90-Name" - }, - { - "id": "0x5753ca1afd90-Name", - "source": "nk" - }, - { - "id": "0x5753ca1afe40-DummyArg", - "variantKey": "Name", - "Name": "0x5753ca1afe40-Name" - }, - { - "id": "0x5753ca1afe40-Name", - "source": "nl" - }, - { - "id": "0x5753ca1afe00-DummyArg", - "variantKey": "Name", - "Name": "0x5753ca1afe00-Name" - }, - { - "id": "0x5753ca1afe00-Name", - "source": "nm" - }, - { - "id": "0x5753ca1afe80-DummyArg", - "variantKey": "Name", - "Name": "0x5753ca1afe80-Name" - }, - { - "id": "0x5753ca1afe80-Name", - "source": "a" - }, - { - "id": "0x5753ca1afee0-DummyArg", - "variantKey": "Name", - "Name": "0x5753ca1afee0-Name" - }, - { - "id": "0x5753ca1afee0-Name", - "source": "b" - }, - { - "id": "0x5753ca1aff20-DummyArg", - "variantKey": "Name", - "Name": "0x5753ca1aff20-Name" - }, - { - "id": "0x5753ca1aff20-Name", - "source": "c" - }, - { - "id": "0x5753ca1aff80-DummyArg", - "variantKey": "Name", - "Name": "0x5753ca1aff80-Name" - }, - { - "id": "0x5753ca1aff80-Name", - "source": "d" - }, - { - "id": "0x5753ca1be0e0-SpecificationPart", - "ImplicitPart": "0x5753ca1be0f8-ImplicitPart", - "DeclarationConstruct": [ - "0x5753ca1a0090-DeclarationConstruct", - "0x5753ca19ed30-DeclarationConstruct", - "0x5753ca1ba710-DeclarationConstruct", - "0x5753ca1b8970-DeclarationConstruct", - "0x5753ca19f710-DeclarationConstruct", - "0x5753ca1b6130-DeclarationConstruct"] - }, - { - "id": "0x5753ca1be0f8-ImplicitPart" - }, - { - "id": "0x5753ca1a0090-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5753ca1a0090-SpecificationConstruct" - }, - { - "id": "0x5753ca1a0090-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1a0090-Statement" - }, - { - "id": "0x5753ca1a0090-Statement", - "statement": "0x5753ca1b8c20-TypeDeclarationStmt", - "source": "double precision, dimension(nk, ni) :: a" - }, - { - "id": "0x5753ca1b8c20-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5753ca1b8c50-DeclarationTypeSpec", - "AttrSpec": [ - "0x5753ca1a4620-AttrSpec"], - "EntityDecl": [ - "0x5753ca1b8dc0-EntityDecl"] - }, - { - "id": "0x5753ca1b8c50-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5753ca1b8c50-IntrinsicTypeSpec" - }, - { - "id": "0x5753ca1b8c50-IntrinsicTypeSpec", - "variantKey": "DoublePrecision", - "DoublePrecision": "0x5753ca1b8c50-DoublePrecision" - }, - { - "id": "0x5753ca1b8c50-DoublePrecision" - }, - { - "id": "0x5753ca1a4620-AttrSpec", - "variantKey": "ArraySpec", - "ArraySpec": "0x5753ca1a4620-ArraySpec" - }, - { - "id": "0x5753ca1a4620-ArraySpec", - "variantKey": "ExplicitShapeSpec", - "ExplicitShapeSpec": [ - "0x5753ca1addd0-ExplicitShapeSpec", - "0x5753ca1afc40-ExplicitShapeSpec"] - }, - { - "id": "0x5753ca1addd0-ExplicitShapeSpec", - "upper_bound": "0x5753ca1addd0-SpecificationExpr" - }, - { - "id": "0x5753ca1addd0-SpecificationExpr", - "Expr": "0x5753ca1b8400-Expr" - }, - { - "id": "0x5753ca1b8400-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca19f0a0-Designator" - }, - { - "id": "0x5753ca19f0a0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca19f0b0-DataRef" - }, - { - "id": "0x5753ca19f0b0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca19f0b0-Name" - }, - { - "id": "0x5753ca19f0b0-Name", - "source": "nk" - }, - { - "id": "0x5753ca1afc40-ExplicitShapeSpec", - "upper_bound": "0x5753ca1afc40-SpecificationExpr" - }, - { - "id": "0x5753ca1afc40-SpecificationExpr", - "Expr": "0x5753ca1ba900-Expr" - }, - { - "id": "0x5753ca1ba900-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1a34d0-Designator" - }, - { - "id": "0x5753ca1a34d0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1a34e0-DataRef" - }, - { - "id": "0x5753ca1a34e0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1a34e0-Name" - }, - { - "id": "0x5753ca1a34e0-Name", - "source": "ni" - }, - { - "id": "0x5753ca1b8dc0-EntityDecl", - "Name": "0x5753ca1b8e78-Name" - }, - { - "id": "0x5753ca1b8e78-Name", - "source": "a" - }, - { - "id": "0x5753ca19ed30-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5753ca19ed30-SpecificationConstruct" - }, - { - "id": "0x5753ca19ed30-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca19ed30-Statement" - }, - { - "id": "0x5753ca19ed30-Statement", - "statement": "0x5753ca1aea50-TypeDeclarationStmt", - "source": "double precision, dimension(nj, nk) :: b" - }, - { - "id": "0x5753ca1aea50-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5753ca1aea80-DeclarationTypeSpec", - "AttrSpec": [ - "0x5753ca1a3e50-AttrSpec"], - "EntityDecl": [ - "0x5753ca1bb350-EntityDecl"] - }, - { - "id": "0x5753ca1aea80-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5753ca1aea80-IntrinsicTypeSpec" - }, - { - "id": "0x5753ca1aea80-IntrinsicTypeSpec", - "variantKey": "DoublePrecision", - "DoublePrecision": "0x5753ca1aea80-DoublePrecision" - }, - { - "id": "0x5753ca1aea80-DoublePrecision" - }, - { - "id": "0x5753ca1a3e50-AttrSpec", - "variantKey": "ArraySpec", - "ArraySpec": "0x5753ca1a3e50-ArraySpec" - }, - { - "id": "0x5753ca1a3e50-ArraySpec", - "variantKey": "ExplicitShapeSpec", - "ExplicitShapeSpec": [ - "0x5753ca1ad330-ExplicitShapeSpec", - "0x5753ca1ad1a0-ExplicitShapeSpec"] - }, - { - "id": "0x5753ca1ad330-ExplicitShapeSpec", - "upper_bound": "0x5753ca1ad330-SpecificationExpr" - }, - { - "id": "0x5753ca1ad330-SpecificationExpr", - "Expr": "0x5753ca1bb180-Expr" - }, - { - "id": "0x5753ca1bb180-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca19ecc0-Designator" - }, - { - "id": "0x5753ca19ecc0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca19ecd0-DataRef" - }, - { - "id": "0x5753ca19ecd0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca19ecd0-Name" - }, - { - "id": "0x5753ca19ecd0-Name", - "source": "nj" - }, - { - "id": "0x5753ca1ad1a0-ExplicitShapeSpec", - "upper_bound": "0x5753ca1ad1a0-SpecificationExpr" - }, - { - "id": "0x5753ca1ad1a0-SpecificationExpr", - "Expr": "0x5753ca1bb260-Expr" - }, - { - "id": "0x5753ca1bb260-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1b64f0-Designator" - }, - { - "id": "0x5753ca1b64f0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1b6500-DataRef" - }, - { - "id": "0x5753ca1b6500-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1b6500-Name" - }, - { - "id": "0x5753ca1b6500-Name", - "source": "nk" - }, - { - "id": "0x5753ca1bb350-EntityDecl", - "Name": "0x5753ca1bb408-Name" - }, - { - "id": "0x5753ca1bb408-Name", - "source": "b" - }, - { - "id": "0x5753ca1ba710-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5753ca1ba710-SpecificationConstruct" - }, - { - "id": "0x5753ca1ba710-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1ba710-Statement" - }, - { - "id": "0x5753ca1ba710-Statement", - "statement": "0x5753ca19e530-TypeDeclarationStmt", - "source": "double precision, dimension(nm, nj) :: c" - }, - { - "id": "0x5753ca19e530-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5753ca19e560-DeclarationTypeSpec", - "AttrSpec": [ - "0x5753ca1a4750-AttrSpec"], - "EntityDecl": [ - "0x5753ca1ba620-EntityDecl"] - }, - { - "id": "0x5753ca19e560-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5753ca19e560-IntrinsicTypeSpec" - }, - { - "id": "0x5753ca19e560-IntrinsicTypeSpec", - "variantKey": "DoublePrecision", - "DoublePrecision": "0x5753ca19e560-DoublePrecision" - }, - { - "id": "0x5753ca19e560-DoublePrecision" - }, - { - "id": "0x5753ca1a4750-AttrSpec", - "variantKey": "ArraySpec", - "ArraySpec": "0x5753ca1a4750-ArraySpec" - }, - { - "id": "0x5753ca1a4750-ArraySpec", - "variantKey": "ExplicitShapeSpec", - "ExplicitShapeSpec": [ - "0x5753ca1ad670-ExplicitShapeSpec", - "0x5753ca1ad580-ExplicitShapeSpec"] - }, - { - "id": "0x5753ca1ad670-ExplicitShapeSpec", - "upper_bound": "0x5753ca1ad670-SpecificationExpr" - }, - { - "id": "0x5753ca1ad670-SpecificationExpr", - "Expr": "0x5753ca1ba390-Expr" - }, - { - "id": "0x5753ca1ba390-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1a5060-Designator" - }, - { - "id": "0x5753ca1a5060-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1a5070-DataRef" - }, - { - "id": "0x5753ca1a5070-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1a5070-Name" - }, - { - "id": "0x5753ca1a5070-Name", - "source": "nm" - }, - { - "id": "0x5753ca1ad580-ExplicitShapeSpec", - "upper_bound": "0x5753ca1ad580-SpecificationExpr" - }, - { - "id": "0x5753ca1ad580-SpecificationExpr", - "Expr": "0x5753ca1ba530-Expr" - }, - { - "id": "0x5753ca1ba530-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1ba4d0-Designator" - }, - { - "id": "0x5753ca1ba4d0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1ba4e0-DataRef" - }, - { - "id": "0x5753ca1ba4e0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1ba4e0-Name" - }, - { - "id": "0x5753ca1ba4e0-Name", - "source": "nj" - }, - { - "id": "0x5753ca1ba620-EntityDecl", - "Name": "0x5753ca1ba6d8-Name" - }, - { - "id": "0x5753ca1ba6d8-Name", - "source": "c" - }, - { - "id": "0x5753ca1b8970-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5753ca1b8970-SpecificationConstruct" - }, - { - "id": "0x5753ca1b8970-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1b8970-Statement" - }, - { - "id": "0x5753ca1b8970-Statement", - "statement": "0x5753ca1baa20-TypeDeclarationStmt", - "source": "double precision, dimension(nl, nm) :: d" - }, - { - "id": "0x5753ca1baa20-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5753ca1baa50-DeclarationTypeSpec", - "AttrSpec": [ - "0x5753ca1a4880-AttrSpec"], - "EntityDecl": [ - "0x5753ca1b8880-EntityDecl"] - }, - { - "id": "0x5753ca1baa50-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5753ca1baa50-IntrinsicTypeSpec" - }, - { - "id": "0x5753ca1baa50-IntrinsicTypeSpec", - "variantKey": "DoublePrecision", - "DoublePrecision": "0x5753ca1baa50-DoublePrecision" - }, - { - "id": "0x5753ca1baa50-DoublePrecision" - }, - { - "id": "0x5753ca1a4880-AttrSpec", - "variantKey": "ArraySpec", - "ArraySpec": "0x5753ca1a4880-ArraySpec" - }, - { - "id": "0x5753ca1a4880-ArraySpec", - "variantKey": "ExplicitShapeSpec", - "ExplicitShapeSpec": [ - "0x5753ca1ad850-ExplicitShapeSpec", - "0x5753ca1ad6e0-ExplicitShapeSpec"] - }, - { - "id": "0x5753ca1ad850-ExplicitShapeSpec", - "upper_bound": "0x5753ca1ad850-SpecificationExpr" - }, - { - "id": "0x5753ca1ad850-SpecificationExpr", - "Expr": "0x5753ca1b85f0-Expr" - }, - { - "id": "0x5753ca1b85f0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1a4e40-Designator" - }, - { - "id": "0x5753ca1a4e40-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1a4e50-DataRef" - }, - { - "id": "0x5753ca1a4e50-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1a4e50-Name" - }, - { - "id": "0x5753ca1a4e50-Name", - "source": "nl" - }, - { - "id": "0x5753ca1ad6e0-ExplicitShapeSpec", - "upper_bound": "0x5753ca1ad6e0-SpecificationExpr" - }, - { - "id": "0x5753ca1ad6e0-SpecificationExpr", - "Expr": "0x5753ca1b8790-Expr" - }, - { - "id": "0x5753ca1b8790-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1b8730-Designator" - }, - { - "id": "0x5753ca1b8730-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1b8740-DataRef" - }, - { - "id": "0x5753ca1b8740-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1b8740-Name" - }, - { - "id": "0x5753ca1b8740-Name", - "source": "nm" - }, - { - "id": "0x5753ca1b8880-EntityDecl", - "Name": "0x5753ca1b8938-Name" - }, - { - "id": "0x5753ca1b8938-Name", - "source": "d" - }, - { - "id": "0x5753ca19f710-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5753ca19f710-SpecificationConstruct" - }, - { - "id": "0x5753ca19f710-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca19f710-Statement" - }, - { - "id": "0x5753ca19f710-Statement", - "statement": "0x5753ca1b9a90-TypeDeclarationStmt", - "source": "integer :: ni, nj, nk, nl, nm" - }, - { - "id": "0x5753ca1b9a90-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5753ca1b9ac0-DeclarationTypeSpec", - "EntityDecl": [ - "0x5753ca1bbc00-EntityDecl", - "0x5753ca1b89d0-EntityDecl", - "0x5753ca1b8ac0-EntityDecl", - "0x5753ca1bba20-EntityDecl", - "0x5753ca1bbb10-EntityDecl"] - }, - { - "id": "0x5753ca1b9ac0-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5753ca1b9ac0-IntrinsicTypeSpec" - }, - { - "id": "0x5753ca1b9ac0-IntrinsicTypeSpec", - "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x5753ca1b9ac0-IntegerTypeSpec" - }, - { - "id": "0x5753ca1b9ac0-IntegerTypeSpec" - }, - { - "id": "0x5753ca1bbc00-EntityDecl", - "Name": "0x5753ca1bbcb8-Name" - }, - { - "id": "0x5753ca1bbcb8-Name", - "source": "ni" - }, - { - "id": "0x5753ca1b89d0-EntityDecl", - "Name": "0x5753ca1b8a88-Name" - }, - { - "id": "0x5753ca1b8a88-Name", - "source": "nj" - }, - { - "id": "0x5753ca1b8ac0-EntityDecl", - "Name": "0x5753ca1b8b78-Name" - }, - { - "id": "0x5753ca1b8b78-Name", - "source": "nk" - }, - { - "id": "0x5753ca1bba20-EntityDecl", - "Name": "0x5753ca1bbad8-Name" - }, - { - "id": "0x5753ca1bbad8-Name", - "source": "nl" - }, - { - "id": "0x5753ca1bbb10-EntityDecl", - "Name": "0x5753ca1bbbc8-Name" - }, - { - "id": "0x5753ca1bbbc8-Name", - "source": "nm" - }, - { - "id": "0x5753ca1b6130-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5753ca1b6130-SpecificationConstruct" - }, - { - "id": "0x5753ca1b6130-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1b6130-Statement" - }, - { - "id": "0x5753ca1b6130-Statement", - "statement": "0x5753ca1ba880-TypeDeclarationStmt", - "source": "integer :: i, j" - }, - { - "id": "0x5753ca1ba880-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5753ca1ba8b0-DeclarationTypeSpec", - "EntityDecl": [ - "0x5753ca1bbde0-EntityDecl", - "0x5753ca1bbcf0-EntityDecl"] - }, - { - "id": "0x5753ca1ba8b0-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5753ca1ba8b0-IntrinsicTypeSpec" - }, - { - "id": "0x5753ca1ba8b0-IntrinsicTypeSpec", - "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x5753ca1ba8b0-IntegerTypeSpec" - }, - { - "id": "0x5753ca1ba8b0-IntegerTypeSpec" - }, - { - "id": "0x5753ca1bbde0-EntityDecl", - "Name": "0x5753ca1bbe98-Name" - }, - { - "id": "0x5753ca1bbe98-Name", - "source": "i" - }, - { - "id": "0x5753ca1bbcf0-EntityDecl", - "Name": "0x5753ca1bbda8-Name" - }, - { - "id": "0x5753ca1bbda8-Name", - "source": "j" - }, - { - "id": "0x5753ca1be0c8-ExecutionPart", - "ExecutionPartConstruct": [ - "0x5753ca1a5210-ExecutionPartConstruct", - "0x5753ca1af8c0-ExecutionPartConstruct", - "0x5753ca1a6da0-ExecutionPartConstruct", - "0x5753ca1ad070-ExecutionPartConstruct"] - }, - { - "id": "0x5753ca1be0c8-ExecutionPartConstruct" - }, - { - "id": "0x5753ca1a5210-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1a5210-ExecutableConstruct" - }, - { - "id": "0x5753ca1a5210-ExecutableConstruct", - "variantKey": "DoConstruct", - "DoConstruct": "0x5753ca1a4a10-DoConstruct" - }, - { - "id": "0x5753ca1a4a10-DoConstruct", - "Statement": "0x5753ca1a4a68-Statement", - "ExecutionPartConstruct": [ - "0x5753ca1bae90-ExecutionPartConstruct"], - "Statement": "0x5753ca1a4a10-Statement" - }, - { - "id": "0x5753ca1a4a68-Statement", - "statement": "0x5753ca1a4a78-NonLabelDoStmt", - "source": "do i = 1, ni" - }, - { - "id": "0x5753ca1a4a78-NonLabelDoStmt", - "LoopControl": "0x5753ca1a4a78-LoopControl" - }, - { - "id": "0x5753ca1a4a78-LoopControl", - "variantKey": "LoopBounds", - "LoopBounds": "0x5753ca1a4a78-LoopBounds" - }, - { - "id": "0x5753ca1a4a78-LoopBounds", - "var": "0x5753ca1a4a78-Name", - "lower": "0x5753ca1ae140-Expr", - "upper": "0x5753ca1a48c0-Expr" - }, - { - "id": "0x5753ca1a4a78-Name", - "source": "i" - }, - { - "id": "0x5753ca1ae140-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1ae160-LiteralConstant" - }, - { - "id": "0x5753ca1ae160-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1ae160-IntLiteralConstant" - }, - { - "id": "0x5753ca1ae160-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x5753ca1a48c0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1adea0-Designator" - }, - { - "id": "0x5753ca1adea0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1adeb0-DataRef" - }, - { - "id": "0x5753ca1adeb0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1adeb0-Name" - }, - { - "id": "0x5753ca1adeb0-Name", - "source": "ni" - }, - { - "id": "0x5753ca1a4a50-ExecutionPartConstruct" - }, - { - "id": "0x5753ca1bae90-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1bae90-ExecutableConstruct" - }, - { - "id": "0x5753ca1bae90-ExecutableConstruct", - "variantKey": "DoConstruct", - "DoConstruct": "0x5753ca147780-DoConstruct" - }, - { - "id": "0x5753ca147780-DoConstruct", - "Statement": "0x5753ca1477d8-Statement", - "ExecutionPartConstruct": [ - "0x5753ca1ad520-ExecutionPartConstruct"], - "Statement": "0x5753ca147780-Statement" - }, - { - "id": "0x5753ca1477d8-Statement", - "statement": "0x5753ca1477e8-NonLabelDoStmt", - "source": "do j = 1, nk" - }, - { - "id": "0x5753ca1477e8-NonLabelDoStmt", - "LoopControl": "0x5753ca1477e8-LoopControl" - }, - { - "id": "0x5753ca1477e8-LoopControl", - "variantKey": "LoopBounds", - "LoopBounds": "0x5753ca1477e8-LoopBounds" - }, - { - "id": "0x5753ca1477e8-LoopBounds", - "var": "0x5753ca1477e8-Name", - "lower": "0x5753ca19f760-Expr", - "upper": "0x5753ca1a0150-Expr" - }, - { - "id": "0x5753ca1477e8-Name", - "source": "j" - }, - { - "id": "0x5753ca19f760-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca19f780-LiteralConstant" - }, - { - "id": "0x5753ca19f780-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca19f780-IntLiteralConstant" - }, - { - "id": "0x5753ca19f780-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x5753ca1a0150-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1ba470-Designator" - }, - { - "id": "0x5753ca1ba470-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1ba480-DataRef" - }, - { - "id": "0x5753ca1ba480-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1ba480-Name" - }, - { - "id": "0x5753ca1ba480-Name", - "source": "nk" - }, - { - "id": "0x5753ca1477c0-ExecutionPartConstruct" - }, - { - "id": "0x5753ca1ad520-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1ad520-ExecutableConstruct" - }, - { - "id": "0x5753ca1ad520-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1ad520-Statement" - }, - { - "id": "0x5753ca1ad520-Statement", - "statement": "0x5753ca1ad530-ActionStmt", - "source": "a(j,i) = dble(i-1) * dble(j-1) / ni" - }, - { - "id": "0x5753ca1ad530-ActionStmt", - "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5753ca1b8ca0-AssignmentStmt" - }, - { - "id": "0x5753ca1b8ca0-AssignmentStmt", - "Variable": "0x5753ca1b8d80-Variable", - "Expr": "0x5753ca1b8cb0-Expr" - }, - { - "id": "0x5753ca1b8d80-Variable", - "variantKey": "Designator", - "Designator": "0x5753ca1d9150-Designator" - }, - { - "id": "0x5753ca1d9150-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1d9160-DataRef" - }, - { - "id": "0x5753ca1d9160-DataRef", - "variantKey": "ArrayElement", - "ArrayElement": "0x5753ca1d1be0-ArrayElement" - }, - { - "id": "0x5753ca1d1be0-ArrayElement", - "base": "0x5753ca1d1be0-DataRef", - "subscripts": [ - "0x5753ca1b55b0-SectionSubscript", - "0x5753ca1e6e70-SectionSubscript"] - }, - { - "id": "0x5753ca1d1be0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1d1be0-Name" - }, - { - "id": "0x5753ca1d1be0-Name", - "source": "a" - }, - { - "id": "0x5753ca1b55b0-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1f4100-Expr" - }, - { - "id": "0x5753ca1f4100-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1ad600-Designator" - }, - { - "id": "0x5753ca1ad600-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1ad610-DataRef" - }, - { - "id": "0x5753ca1ad610-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1ad610-Name" - }, - { - "id": "0x5753ca1ad610-Name", - "source": "j" - }, - { - "id": "0x5753ca1e6e70-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1d3ed0-Expr" - }, - { - "id": "0x5753ca1d3ed0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1a7570-Designator" - }, - { - "id": "0x5753ca1a7570-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1a7580-DataRef" - }, - { - "id": "0x5753ca1a7580-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1a7580-Name" - }, - { - "id": "0x5753ca1a7580-Name", - "source": "i" - }, - { - "id": "0x5753ca1b8cb0-Expr", - "variantKey": "Divide", - "Divide": "0x5753ca1b8cd0-Divide" - }, - { - "id": "0x5753ca1b8cd0-Divide", - "left": "0x5753ca1ad350-Expr", - "right": "0x5753ca1adbc0-Expr", - "op": "DIVIDE" - }, - { - "id": "0x5753ca1ad350-Expr", - "variantKey": "Multiply", - "Multiply": "0x5753ca1ad370-Multiply" - }, - { - "id": "0x5753ca1ad370-Multiply", - "left": "0x5753ca1b6850-Expr", - "right": "0x5753ca1b6770-Expr", - "op": "MULTIPLY" - }, - { - "id": "0x5753ca1b6850-Expr", - "variantKey": "FunctionReference", - "FunctionReference": "0x5753ca1aa300-FunctionReference" - }, - { - "id": "0x5753ca1aa300-FunctionReference", - "Call": "0x5753ca1aa300-Call" - }, - { - "id": "0x5753ca1aa300-Call", - "ProcedureDesignator": "0x5753ca1aa318-ProcedureDesignator", - "ActualArgSpec": [ - "0x5753ca1b9660-ActualArgSpec"] - }, - { - "id": "0x5753ca1aa318-ProcedureDesignator", - "variantKey": "Name", - "Name": "0x5753ca1aa318-Name" - }, - { - "id": "0x5753ca1aa318-Name", - "source": "dble" - }, - { - "id": "0x5753ca1b9660-ActualArgSpec", - "ActualArg": "0x5753ca1b9660-ActualArg" - }, - { - "id": "0x5753ca1b9660-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1b5c00-Expr" - }, - { - "id": "0x5753ca1b5c00-Expr", - "variantKey": "Subtract", - "Subtract": "0x5753ca1b5c20-Subtract" - }, - { - "id": "0x5753ca1b5c20-Subtract", - "left": "0x5753ca1aed70-Expr", - "right": "0x5753ca1ad1c0-Expr", - "op": "SUBTRACT" - }, - { - "id": "0x5753ca1aed70-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1afa60-Designator" - }, - { - "id": "0x5753ca1afa60-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1afa70-DataRef" - }, - { - "id": "0x5753ca1afa70-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1afa70-Name" - }, - { - "id": "0x5753ca1afa70-Name", - "source": "i" - }, - { - "id": "0x5753ca1ad1c0-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1ad1e0-LiteralConstant" - }, - { - "id": "0x5753ca1ad1e0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1ad1e0-IntLiteralConstant" - }, - { - "id": "0x5753ca1ad1e0-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x5753ca1b6770-Expr", - "variantKey": "FunctionReference", - "FunctionReference": "0x5753ca1b6260-FunctionReference" - }, - { - "id": "0x5753ca1b6260-FunctionReference", - "Call": "0x5753ca1b6260-Call" - }, - { - "id": "0x5753ca1b6260-Call", - "ProcedureDesignator": "0x5753ca1b6278-ProcedureDesignator", - "ActualArgSpec": [ - "0x5753ca1b9990-ActualArgSpec"] - }, - { - "id": "0x5753ca1b6278-ProcedureDesignator", - "variantKey": "Name", - "Name": "0x5753ca1b6278-Name" - }, - { - "id": "0x5753ca1b6278-Name", - "source": "dble" - }, - { - "id": "0x5753ca1b9990-ActualArgSpec", - "ActualArg": "0x5753ca1b9990-ActualArg" - }, - { - "id": "0x5753ca1b9990-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1a5700-Expr" - }, - { - "id": "0x5753ca1a5700-Expr", - "variantKey": "Subtract", - "Subtract": "0x5753ca1a5720-Subtract" - }, - { - "id": "0x5753ca1a5720-Subtract", - "left": "0x5753ca1b5f60-Expr", - "right": "0x5753ca1a57e0-Expr", - "op": "SUBTRACT" - }, - { - "id": "0x5753ca1b5f60-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1a5130-Designator" - }, - { - "id": "0x5753ca1a5130-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1a5140-DataRef" - }, - { - "id": "0x5753ca1a5140-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1a5140-Name" - }, - { - "id": "0x5753ca1a5140-Name", - "source": "j" - }, - { - "id": "0x5753ca1a57e0-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a5800-LiteralConstant" - }, - { - "id": "0x5753ca1a5800-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a5800-IntLiteralConstant" - }, - { - "id": "0x5753ca1a5800-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x5753ca1adbc0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1adaf0-Designator" - }, - { - "id": "0x5753ca1adaf0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1adb00-DataRef" - }, - { - "id": "0x5753ca1adb00-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1adb00-Name" - }, - { - "id": "0x5753ca1adb00-Name", - "source": "ni" - }, - { - "id": "0x5753ca147780-Statement", - "statement": "0x5753ca147790-EndDoStmt", - "source": "end do" - }, - { - "id": "0x5753ca147790-EndDoStmt" - }, - { - "id": "0x5753ca1a4a10-Statement", - "statement": "0x5753ca1a4a20-EndDoStmt", - "source": "end do" - }, - { - "id": "0x5753ca1a4a20-EndDoStmt" - }, - { - "id": "0x5753ca1af8c0-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1af8c0-ExecutableConstruct" - }, - { - "id": "0x5753ca1af8c0-ExecutableConstruct", - "variantKey": "DoConstruct", - "DoConstruct": "0x5753ca1b0d30-DoConstruct" - }, - { - "id": "0x5753ca1b0d30-DoConstruct", - "Statement": "0x5753ca1b0d88-Statement", - "ExecutionPartConstruct": [ - "0x5753ca1af860-ExecutionPartConstruct"], - "Statement": "0x5753ca1b0d30-Statement" - }, - { - "id": "0x5753ca1b0d88-Statement", - "statement": "0x5753ca1b0d98-NonLabelDoStmt", - "source": "do i = 1, nk" - }, - { - "id": "0x5753ca1b0d98-NonLabelDoStmt", - "LoopControl": "0x5753ca1b0d98-LoopControl" - }, - { - "id": "0x5753ca1b0d98-LoopControl", - "variantKey": "LoopBounds", - "LoopBounds": "0x5753ca1b0d98-LoopBounds" - }, - { - "id": "0x5753ca1b0d98-LoopBounds", - "var": "0x5753ca1b0d98-Name", - "lower": "0x5753ca1a4b30-Expr", - "upper": "0x5753ca19d120-Expr" - }, - { - "id": "0x5753ca1b0d98-Name", - "source": "i" - }, - { - "id": "0x5753ca1a4b30-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a4b50-LiteralConstant" - }, - { - "id": "0x5753ca1a4b50-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a4b50-IntLiteralConstant" - }, - { - "id": "0x5753ca1a4b50-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x5753ca19d120-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1ad870-Designator" - }, - { - "id": "0x5753ca1ad870-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1ad880-DataRef" - }, - { - "id": "0x5753ca1ad880-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1ad880-Name" - }, - { - "id": "0x5753ca1ad880-Name", - "source": "nk" - }, - { - "id": "0x5753ca1b0d70-ExecutionPartConstruct" - }, - { - "id": "0x5753ca1af860-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1af860-ExecutableConstruct" - }, - { - "id": "0x5753ca1af860-ExecutableConstruct", - "variantKey": "DoConstruct", - "DoConstruct": "0x5753ca1b0c10-DoConstruct" - }, - { - "id": "0x5753ca1b0c10-DoConstruct", - "Statement": "0x5753ca1b0c68-Statement", - "ExecutionPartConstruct": [ - "0x5753ca1b9f40-ExecutionPartConstruct"], - "Statement": "0x5753ca1b0c10-Statement" - }, - { - "id": "0x5753ca1b0c68-Statement", - "statement": "0x5753ca1b0c78-NonLabelDoStmt", - "source": "do j = 1, nj" - }, - { - "id": "0x5753ca1b0c78-NonLabelDoStmt", - "LoopControl": "0x5753ca1b0c78-LoopControl" - }, - { - "id": "0x5753ca1b0c78-LoopControl", - "variantKey": "LoopBounds", - "LoopBounds": "0x5753ca1b0c78-LoopBounds" - }, - { - "id": "0x5753ca1b0c78-LoopBounds", - "var": "0x5753ca1b0c78-Name", - "lower": "0x5753ca19d200-Expr", - "upper": "0x5753ca19d2e0-Expr" - }, - { - "id": "0x5753ca1b0c78-Name", - "source": "j" - }, - { - "id": "0x5753ca19d200-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca19d220-LiteralConstant" - }, - { - "id": "0x5753ca19d220-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca19d220-IntLiteralConstant" - }, - { - "id": "0x5753ca19d220-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x5753ca19d2e0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1ad5a0-Designator" - }, - { - "id": "0x5753ca1ad5a0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1ad5b0-DataRef" - }, - { - "id": "0x5753ca1ad5b0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1ad5b0-Name" - }, - { - "id": "0x5753ca1ad5b0-Name", - "source": "nj" - }, - { - "id": "0x5753ca1b0c50-ExecutionPartConstruct" - }, - { - "id": "0x5753ca1b9f40-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1b9f40-ExecutableConstruct" - }, - { - "id": "0x5753ca1b9f40-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1b9f40-Statement" - }, - { - "id": "0x5753ca1b9f40-Statement", - "statement": "0x5753ca1b9f50-ActionStmt", - "source": "b(j,i) =(dble(i-1) * dble(j))/ nj" - }, - { - "id": "0x5753ca1b9f50-ActionStmt", - "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5753ca1b9db0-AssignmentStmt" - }, - { - "id": "0x5753ca1b9db0-AssignmentStmt", - "Variable": "0x5753ca1b9e90-Variable", - "Expr": "0x5753ca1b9dc0-Expr" - }, - { - "id": "0x5753ca1b9e90-Variable", - "variantKey": "Designator", - "Designator": "0x5753ca1df410-Designator" - }, - { - "id": "0x5753ca1df410-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1df420-DataRef" - }, - { - "id": "0x5753ca1df420-DataRef", - "variantKey": "ArrayElement", - "ArrayElement": "0x5753ca1d1170-ArrayElement" - }, - { - "id": "0x5753ca1d1170-ArrayElement", - "base": "0x5753ca1d1170-DataRef", - "subscripts": [ - "0x5753ca2777d0-SectionSubscript", - "0x5753ca277820-SectionSubscript"] - }, - { - "id": "0x5753ca1d1170-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1d1170-Name" - }, - { - "id": "0x5753ca1d1170-Name", - "source": "b" - }, - { - "id": "0x5753ca2777d0-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca19fd30-Expr" - }, - { - "id": "0x5753ca19fd30-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca19cf10-Designator" - }, - { - "id": "0x5753ca19cf10-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca19cf20-DataRef" - }, - { - "id": "0x5753ca19cf20-DataRef", - "variantKey": "Name", - "Name": "0x5753ca19cf20-Name" - }, - { - "id": "0x5753ca19cf20-Name", - "source": "j" - }, - { - "id": "0x5753ca277820-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1a61b0-Expr" - }, - { - "id": "0x5753ca1a61b0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1b59d0-Designator" - }, - { - "id": "0x5753ca1b59d0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1b59e0-DataRef" - }, - { - "id": "0x5753ca1b59e0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1b59e0-Name" - }, - { - "id": "0x5753ca1b59e0-Name", - "source": "i" - }, - { - "id": "0x5753ca1b9dc0-Expr", - "variantKey": "Divide", - "Divide": "0x5753ca1b9de0-Divide" - }, - { - "id": "0x5753ca1b9de0-Divide", - "left": "0x5753ca1b9c60-Expr", - "right": "0x5753ca1b9b80-Expr", - "op": "DIVIDE" - }, - { - "id": "0x5753ca1b9c60-Expr", - "variantKey": "Parentheses", - "Parentheses": "0x5753ca1b9c80-Parentheses" - }, - { - "id": "0x5753ca1b9c80-Parentheses", - "Expr": "0x5753ca1b9260-Expr" - }, - { - "id": "0x5753ca1b9260-Expr", - "variantKey": "Multiply", - "Multiply": "0x5753ca1b9280-Multiply" - }, - { - "id": "0x5753ca1b9280-Multiply", - "left": "0x5753ca1b9180-Expr", - "right": "0x5753ca1b0ac0-Expr", - "op": "MULTIPLY" - }, - { - "id": "0x5753ca1b9180-Expr", - "variantKey": "FunctionReference", - "FunctionReference": "0x5753ca1b6180-FunctionReference" - }, - { - "id": "0x5753ca1b6180-FunctionReference", - "Call": "0x5753ca1b6180-Call" - }, - { - "id": "0x5753ca1b6180-Call", - "ProcedureDesignator": "0x5753ca1b6198-ProcedureDesignator", - "ActualArgSpec": [ - "0x5753ca1af6f0-ActualArgSpec"] - }, - { - "id": "0x5753ca1b6198-ProcedureDesignator", - "variantKey": "Name", - "Name": "0x5753ca1b6198-Name" - }, - { - "id": "0x5753ca1b6198-Name", - "source": "dble" - }, - { - "id": "0x5753ca1af6f0-ActualArgSpec", - "ActualArg": "0x5753ca1af6f0-ActualArg" - }, - { - "id": "0x5753ca1af6f0-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1bb710-Expr" - }, - { - "id": "0x5753ca1bb710-Expr", - "variantKey": "Subtract", - "Subtract": "0x5753ca1bb730-Subtract" - }, - { - "id": "0x5753ca1bb730-Subtract", - "left": "0x5753ca1af5a0-Expr", - "right": "0x5753ca1af460-Expr", - "op": "SUBTRACT" - }, - { - "id": "0x5753ca1af5a0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1ba160-Designator" - }, - { - "id": "0x5753ca1ba160-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1ba170-DataRef" - }, - { - "id": "0x5753ca1ba170-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1ba170-Name" - }, - { - "id": "0x5753ca1ba170-Name", - "source": "i" - }, - { - "id": "0x5753ca1af460-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1af480-LiteralConstant" - }, - { - "id": "0x5753ca1af480-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1af480-IntLiteralConstant" - }, - { - "id": "0x5753ca1af480-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x5753ca1b0ac0-Expr", - "variantKey": "FunctionReference", - "FunctionReference": "0x5753ca1a54e0-FunctionReference" - }, - { - "id": "0x5753ca1a54e0-FunctionReference", - "Call": "0x5753ca1a54e0-Call" - }, - { - "id": "0x5753ca1a54e0-Call", - "ProcedureDesignator": "0x5753ca1a54f8-ProcedureDesignator", - "ActualArgSpec": [ - "0x5753ca1b09c0-ActualArgSpec"] - }, - { - "id": "0x5753ca1a54f8-ProcedureDesignator", - "variantKey": "Name", - "Name": "0x5753ca1a54f8-Name" - }, - { - "id": "0x5753ca1a54f8-Name", - "source": "dble" - }, - { - "id": "0x5753ca1b09c0-ActualArgSpec", - "ActualArg": "0x5753ca1b09c0-ActualArg" - }, - { - "id": "0x5753ca1b09c0-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1b0870-Expr" - }, - { - "id": "0x5753ca1b0870-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1b0810-Designator" - }, - { - "id": "0x5753ca1b0810-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1b0820-DataRef" - }, - { - "id": "0x5753ca1b0820-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1b0820-Name" - }, - { - "id": "0x5753ca1b0820-Name", - "source": "j" - }, - { - "id": "0x5753ca1b9b80-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1b9550-Designator" - }, - { - "id": "0x5753ca1b9550-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1b9560-DataRef" - }, - { - "id": "0x5753ca1b9560-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1b9560-Name" - }, - { - "id": "0x5753ca1b9560-Name", - "source": "nj" - }, - { - "id": "0x5753ca1b0c10-Statement", - "statement": "0x5753ca1b0c20-EndDoStmt", - "source": "end do" - }, - { - "id": "0x5753ca1b0c20-EndDoStmt" - }, - { - "id": "0x5753ca1b0d30-Statement", - "statement": "0x5753ca1b0d40-EndDoStmt", - "source": "end do" - }, - { - "id": "0x5753ca1b0d40-EndDoStmt" - }, - { - "id": "0x5753ca1a6da0-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1a6da0-ExecutableConstruct" - }, - { - "id": "0x5753ca1a6da0-ExecutableConstruct", - "variantKey": "DoConstruct", - "DoConstruct": "0x5753ca1ac370-DoConstruct" - }, - { - "id": "0x5753ca1ac370-DoConstruct", - "Statement": "0x5753ca1ac3c8-Statement", - "ExecutionPartConstruct": [ - "0x5753ca1a6ce0-ExecutionPartConstruct"], - "Statement": "0x5753ca1ac370-Statement" - }, - { - "id": "0x5753ca1ac3c8-Statement", - "statement": "0x5753ca1ac3d8-NonLabelDoStmt", - "source": "do i = 1, nj" - }, - { - "id": "0x5753ca1ac3d8-NonLabelDoStmt", - "LoopControl": "0x5753ca1ac3d8-LoopControl" - }, - { - "id": "0x5753ca1ac3d8-LoopControl", - "variantKey": "LoopBounds", - "LoopBounds": "0x5753ca1ac3d8-LoopBounds" - }, - { - "id": "0x5753ca1ac3d8-LoopBounds", - "var": "0x5753ca1ac3d8-Name", - "lower": "0x5753ca1b0e50-Expr", - "upper": "0x5753ca1b0f30-Expr" - }, - { - "id": "0x5753ca1ac3d8-Name", - "source": "i" - }, - { - "id": "0x5753ca1b0e50-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1b0e70-LiteralConstant" - }, - { - "id": "0x5753ca1b0e70-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1b0e70-IntLiteralConstant" - }, - { - "id": "0x5753ca1b0e70-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x5753ca1b0f30-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1b9340-Designator" - }, - { - "id": "0x5753ca1b9340-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1b9350-DataRef" - }, - { - "id": "0x5753ca1b9350-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1b9350-Name" - }, - { - "id": "0x5753ca1b9350-Name", - "source": "nj" - }, - { - "id": "0x5753ca1ac3b0-ExecutionPartConstruct" - }, - { - "id": "0x5753ca1a6ce0-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1a6ce0-ExecutableConstruct" - }, - { - "id": "0x5753ca1a6ce0-ExecutableConstruct", - "variantKey": "DoConstruct", - "DoConstruct": "0x5753ca1ac250-DoConstruct" - }, - { - "id": "0x5753ca1ac250-DoConstruct", - "Statement": "0x5753ca1ac2a8-Statement", - "ExecutionPartConstruct": [ - "0x5753ca1ac200-ExecutionPartConstruct"], - "Statement": "0x5753ca1ac250-Statement" - }, - { - "id": "0x5753ca1ac2a8-Statement", - "statement": "0x5753ca1ac2b8-NonLabelDoStmt", - "source": "do j = 1, nm" - }, - { - "id": "0x5753ca1ac2b8-NonLabelDoStmt", - "LoopControl": "0x5753ca1ac2b8-LoopControl" - }, - { - "id": "0x5753ca1ac2b8-LoopControl", - "variantKey": "LoopBounds", - "LoopBounds": "0x5753ca1ac2b8-LoopBounds" - }, - { - "id": "0x5753ca1ac2b8-LoopBounds", - "var": "0x5753ca1ac2b8-Name", - "lower": "0x5753ca1b1010-Expr", - "upper": "0x5753ca1b10f0-Expr" - }, - { - "id": "0x5753ca1ac2b8-Name", - "source": "j" - }, - { - "id": "0x5753ca1b1010-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1b1030-LiteralConstant" - }, - { - "id": "0x5753ca1b1030-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1b1030-IntLiteralConstant" - }, - { - "id": "0x5753ca1b1030-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x5753ca1b10f0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1b86d0-Designator" - }, - { - "id": "0x5753ca1b86d0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1b86e0-DataRef" - }, - { - "id": "0x5753ca1b86e0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1b86e0-Name" - }, - { - "id": "0x5753ca1b86e0-Name", - "source": "nm" - }, - { - "id": "0x5753ca1ac290-ExecutionPartConstruct" - }, - { - "id": "0x5753ca1ac200-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1ac200-ExecutableConstruct" - }, - { - "id": "0x5753ca1ac200-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1ac200-Statement" - }, - { - "id": "0x5753ca1ac200-Statement", - "statement": "0x5753ca1ac210-ActionStmt", - "source": "c(j,i) =(dble(i-1) * dble(j+2))/ nl" - }, - { - "id": "0x5753ca1ac210-ActionStmt", - "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5753ca1ac070-AssignmentStmt" - }, - { - "id": "0x5753ca1ac070-AssignmentStmt", - "Variable": "0x5753ca1ac150-Variable", - "Expr": "0x5753ca1ac080-Expr" - }, - { - "id": "0x5753ca1ac150-Variable", - "variantKey": "Designator", - "Designator": "0x5753ca1cd660-Designator" - }, - { - "id": "0x5753ca1cd660-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1cd670-DataRef" - }, - { - "id": "0x5753ca1cd670-DataRef", - "variantKey": "ArrayElement", - "ArrayElement": "0x5753ca1cd6c0-ArrayElement" - }, - { - "id": "0x5753ca1cd6c0-ArrayElement", - "base": "0x5753ca1cd6c0-DataRef", - "subscripts": [ - "0x5753ca277870-SectionSubscript", - "0x5753ca2778c0-SectionSubscript"] - }, - { - "id": "0x5753ca1cd6c0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1cd6c0-Name" - }, - { - "id": "0x5753ca1cd6c0-Name", - "source": "c" - }, - { - "id": "0x5753ca277870-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1bb550-Expr" - }, - { - "id": "0x5753ca1bb550-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1af400-Designator" - }, - { - "id": "0x5753ca1af400-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1af410-DataRef" - }, - { - "id": "0x5753ca1af410-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1af410-Name" - }, - { - "id": "0x5753ca1af410-Name", - "source": "j" - }, - { - "id": "0x5753ca2778c0-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1bb630-Expr" - }, - { - "id": "0x5753ca1bb630-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1adfc0-Designator" - }, - { - "id": "0x5753ca1adfc0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1adfd0-DataRef" - }, - { - "id": "0x5753ca1adfd0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1adfd0-Name" - }, - { - "id": "0x5753ca1adfd0-Name", - "source": "i" - }, - { - "id": "0x5753ca1ac080-Expr", - "variantKey": "Divide", - "Divide": "0x5753ca1ac0a0-Divide" - }, - { - "id": "0x5753ca1ac0a0-Divide", - "left": "0x5753ca1abf20-Expr", - "right": "0x5753ca1abe40-Expr", - "op": "DIVIDE" - }, - { - "id": "0x5753ca1abf20-Expr", - "variantKey": "Parentheses", - "Parentheses": "0x5753ca1abf40-Parentheses" - }, - { - "id": "0x5753ca1abf40-Parentheses", - "Expr": "0x5753ca1a73c0-Expr" - }, - { - "id": "0x5753ca1a73c0-Expr", - "variantKey": "Multiply", - "Multiply": "0x5753ca1a73e0-Multiply" - }, - { - "id": "0x5753ca1a73e0-Multiply", - "left": "0x5753ca1a72e0-Expr", - "right": "0x5753ca1a7200-Expr", - "op": "MULTIPLY" - }, - { - "id": "0x5753ca1a72e0-Expr", - "variantKey": "FunctionReference", - "FunctionReference": "0x5753ca1a5e20-FunctionReference" - }, - { - "id": "0x5753ca1a5e20-FunctionReference", - "Call": "0x5753ca1a5e20-Call" - }, - { - "id": "0x5753ca1a5e20-Call", - "ProcedureDesignator": "0x5753ca1a5e38-ProcedureDesignator", - "ActualArgSpec": [ - "0x5753ca1a6b10-ActualArgSpec"] - }, - { - "id": "0x5753ca1a5e38-ProcedureDesignator", - "variantKey": "Name", - "Name": "0x5753ca1a5e38-Name" - }, - { - "id": "0x5753ca1a5e38-Name", - "source": "dble" - }, - { - "id": "0x5753ca1a6b10-ActualArgSpec", - "ActualArg": "0x5753ca1a6b10-ActualArg" - }, - { - "id": "0x5753ca1a6b10-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1b0450-Expr" - }, - { - "id": "0x5753ca1b0450-Expr", - "variantKey": "Subtract", - "Subtract": "0x5753ca1b0470-Subtract" - }, - { - "id": "0x5753ca1b0470-Subtract", - "left": "0x5753ca1b0610-Expr", - "right": "0x5753ca1b0530-Expr", - "op": "SUBTRACT" - }, - { - "id": "0x5753ca1b0610-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1b93a0-Designator" - }, - { - "id": "0x5753ca1b93a0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1b93b0-DataRef" - }, - { - "id": "0x5753ca1b93b0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1b93b0-Name" - }, - { - "id": "0x5753ca1b93b0-Name", - "source": "i" - }, - { - "id": "0x5753ca1b0530-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1b0550-LiteralConstant" - }, - { - "id": "0x5753ca1b0550-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1b0550-IntLiteralConstant" - }, - { - "id": "0x5753ca1b0550-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x5753ca1a7200-Expr", - "variantKey": "FunctionReference", - "FunctionReference": "0x5753ca1a55c0-FunctionReference" - }, - { - "id": "0x5753ca1a55c0-FunctionReference", - "Call": "0x5753ca1a55c0-Call" - }, - { - "id": "0x5753ca1a55c0-Call", - "ProcedureDesignator": "0x5753ca1a55d8-ProcedureDesignator", - "ActualArgSpec": [ - "0x5753ca1a7100-ActualArgSpec"] - }, - { - "id": "0x5753ca1a55d8-ProcedureDesignator", - "variantKey": "Name", - "Name": "0x5753ca1a55d8-Name" - }, - { - "id": "0x5753ca1a55d8-Name", - "source": "dble" - }, - { - "id": "0x5753ca1a7100-ActualArgSpec", - "ActualArg": "0x5753ca1a7100-ActualArg" - }, - { - "id": "0x5753ca1a7100-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1a6df0-Expr" - }, - { - "id": "0x5753ca1a6df0-Expr", - "variantKey": "Add", - "Add": "0x5753ca1a6e10-Add" - }, - { - "id": "0x5753ca1a6e10-Add", - "left": "0x5753ca1a6fb0-Expr", - "right": "0x5753ca1a6ed0-Expr", - "op": "ADD" - }, - { - "id": "0x5753ca1a6fb0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1a6d30-Designator" - }, - { - "id": "0x5753ca1a6d30-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1a6d40-DataRef" - }, - { - "id": "0x5753ca1a6d40-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1a6d40-Name" - }, - { - "id": "0x5753ca1a6d40-Name", - "source": "j" - }, - { - "id": "0x5753ca1a6ed0-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1a6ef0-LiteralConstant" - }, - { - "id": "0x5753ca1a6ef0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1a6ef0-IntLiteralConstant" - }, - { - "id": "0x5753ca1a6ef0-IntLiteralConstant", - "CharBlock": "2" - }, - { - "id": "0x5753ca1abe40-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1abd70-Designator" - }, - { - "id": "0x5753ca1abd70-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1abd80-DataRef" - }, - { - "id": "0x5753ca1abd80-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1abd80-Name" - }, - { - "id": "0x5753ca1abd80-Name", - "source": "nl" - }, - { - "id": "0x5753ca1ac250-Statement", - "statement": "0x5753ca1ac260-EndDoStmt", - "source": "end do" - }, - { - "id": "0x5753ca1ac260-EndDoStmt" - }, - { - "id": "0x5753ca1ac370-Statement", - "statement": "0x5753ca1ac380-EndDoStmt", - "source": "end do" - }, - { - "id": "0x5753ca1ac380-EndDoStmt" - }, - { - "id": "0x5753ca1ad070-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1ad070-ExecutableConstruct" - }, - { - "id": "0x5753ca1ad070-ExecutableConstruct", - "variantKey": "DoConstruct", - "DoConstruct": "0x5753ca1bcc30-DoConstruct" - }, - { - "id": "0x5753ca1bcc30-DoConstruct", - "Statement": "0x5753ca1bcc88-Statement", - "ExecutionPartConstruct": [ - "0x5753ca1ad010-ExecutionPartConstruct"], - "Statement": "0x5753ca1bcc30-Statement" - }, - { - "id": "0x5753ca1bcc88-Statement", - "statement": "0x5753ca1bcc98-NonLabelDoStmt", - "source": "do i = 1, nm" - }, - { - "id": "0x5753ca1bcc98-NonLabelDoStmt", - "LoopControl": "0x5753ca1bcc98-LoopControl" - }, - { - "id": "0x5753ca1bcc98-LoopControl", - "variantKey": "LoopBounds", - "LoopBounds": "0x5753ca1bcc98-LoopBounds" - }, - { - "id": "0x5753ca1bcc98-LoopBounds", - "var": "0x5753ca1bcc98-Name", - "lower": "0x5753ca1ac490-Expr", - "upper": "0x5753ca1ac570-Expr" - }, - { - "id": "0x5753ca1bcc98-Name", - "source": "i" - }, - { - "id": "0x5753ca1ac490-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1ac4b0-LiteralConstant" - }, - { - "id": "0x5753ca1ac4b0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1ac4b0-IntLiteralConstant" - }, - { - "id": "0x5753ca1ac4b0-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x5753ca1ac570-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1a74a0-Designator" - }, - { - "id": "0x5753ca1a74a0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1a74b0-DataRef" - }, - { - "id": "0x5753ca1a74b0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1a74b0-Name" - }, - { - "id": "0x5753ca1a74b0-Name", - "source": "nm" - }, - { - "id": "0x5753ca1bcc70-ExecutionPartConstruct" - }, - { - "id": "0x5753ca1ad010-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1ad010-ExecutableConstruct" - }, - { - "id": "0x5753ca1ad010-ExecutableConstruct", - "variantKey": "DoConstruct", - "DoConstruct": "0x5753ca1bcb10-DoConstruct" - }, - { - "id": "0x5753ca1bcb10-DoConstruct", - "Statement": "0x5753ca1bcb68-Statement", - "ExecutionPartConstruct": [ - "0x5753ca1bcac0-ExecutionPartConstruct"], - "Statement": "0x5753ca1bcb10-Statement" - }, - { - "id": "0x5753ca1bcb68-Statement", - "statement": "0x5753ca1bcb78-NonLabelDoStmt", - "source": "do j = 1, nl" - }, - { - "id": "0x5753ca1bcb78-NonLabelDoStmt", - "LoopControl": "0x5753ca1bcb78-LoopControl" - }, - { - "id": "0x5753ca1bcb78-LoopControl", - "variantKey": "LoopBounds", - "LoopBounds": "0x5753ca1bcb78-LoopBounds" - }, - { - "id": "0x5753ca1bcb78-LoopBounds", - "var": "0x5753ca1bcb78-Name", - "lower": "0x5753ca1ac650-Expr", - "upper": "0x5753ca1ac730-Expr" - }, - { - "id": "0x5753ca1bcb78-Name", - "source": "j" - }, - { - "id": "0x5753ca1ac650-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1ac670-LiteralConstant" - }, - { - "id": "0x5753ca1ac670-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1ac670-IntLiteralConstant" - }, - { - "id": "0x5753ca1ac670-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x5753ca1ac730-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1a3f40-Designator" - }, - { - "id": "0x5753ca1a3f40-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1a3f50-DataRef" - }, - { - "id": "0x5753ca1a3f50-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1a3f50-Name" - }, - { - "id": "0x5753ca1a3f50-Name", - "source": "nl" - }, - { - "id": "0x5753ca1bcb50-ExecutionPartConstruct" - }, - { - "id": "0x5753ca1bcac0-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1bcac0-ExecutableConstruct" - }, - { - "id": "0x5753ca1bcac0-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1bcac0-Statement" - }, - { - "id": "0x5753ca1bcac0-Statement", - "statement": "0x5753ca1bcad0-ActionStmt", - "source": "d(j,i) =(dble(i-1) * dble(j+1))/ nk" - }, - { - "id": "0x5753ca1bcad0-ActionStmt", - "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5753ca1bc930-AssignmentStmt" - }, - { - "id": "0x5753ca1bc930-AssignmentStmt", - "Variable": "0x5753ca1bca10-Variable", - "Expr": "0x5753ca1bc940-Expr" - }, - { - "id": "0x5753ca1bca10-Variable", - "variantKey": "Designator", - "Designator": "0x5753ca1dddc0-Designator" - }, - { - "id": "0x5753ca1dddc0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1dddd0-DataRef" - }, - { - "id": "0x5753ca1dddd0-DataRef", - "variantKey": "ArrayElement", - "ArrayElement": "0x5753ca1cf300-ArrayElement" - }, - { - "id": "0x5753ca1cf300-ArrayElement", - "base": "0x5753ca1cf300-DataRef", - "subscripts": [ - "0x5753ca277910-SectionSubscript", - "0x5753ca1e7460-SectionSubscript"] - }, - { - "id": "0x5753ca1cf300-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1cf300-Name" - }, - { - "id": "0x5753ca1cf300-Name", - "source": "d" - }, - { - "id": "0x5753ca277910-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1b0070-Expr" - }, - { - "id": "0x5753ca1b0070-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1a60b0-Designator" - }, - { - "id": "0x5753ca1a60b0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1a60c0-DataRef" - }, - { - "id": "0x5753ca1a60c0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1a60c0-Name" - }, - { - "id": "0x5753ca1a60c0-Name", - "source": "j" - }, - { - "id": "0x5753ca1e7460-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1b0150-Expr" - }, - { - "id": "0x5753ca1b0150-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1bae20-Designator" - }, - { - "id": "0x5753ca1bae20-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1bae30-DataRef" - }, - { - "id": "0x5753ca1bae30-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1bae30-Name" - }, - { - "id": "0x5753ca1bae30-Name", - "source": "i" - }, - { - "id": "0x5753ca1bc940-Expr", - "variantKey": "Divide", - "Divide": "0x5753ca1bc960-Divide" - }, - { - "id": "0x5753ca1bc960-Divide", - "left": "0x5753ca1bc7e0-Expr", - "right": "0x5753ca1bc700-Expr", - "op": "DIVIDE" - }, - { - "id": "0x5753ca1bc7e0-Expr", - "variantKey": "Parentheses", - "Parentheses": "0x5753ca1bc800-Parentheses" - }, - { - "id": "0x5753ca1bc800-Parentheses", - "Expr": "0x5753ca1bc490-Expr" - }, - { - "id": "0x5753ca1bc490-Expr", - "variantKey": "Multiply", - "Multiply": "0x5753ca1bc4b0-Multiply" - }, - { - "id": "0x5753ca1bc4b0-Multiply", - "left": "0x5753ca1bc3b0-Expr", - "right": "0x5753ca1bc2d0-Expr", - "op": "MULTIPLY" - }, - { - "id": "0x5753ca1bc3b0-Expr", - "variantKey": "FunctionReference", - "FunctionReference": "0x5753ca1ad7d0-FunctionReference" - }, - { - "id": "0x5753ca1ad7d0-FunctionReference", - "Call": "0x5753ca1ad7d0-Call" - }, - { - "id": "0x5753ca1ad7d0-Call", - "ProcedureDesignator": "0x5753ca1ad7e8-ProcedureDesignator", - "ActualArgSpec": [ - "0x5753ca1acea0-ActualArgSpec"] - }, - { - "id": "0x5753ca1ad7e8-ProcedureDesignator", - "variantKey": "Name", - "Name": "0x5753ca1ad7e8-Name" - }, - { - "id": "0x5753ca1ad7e8-Name", - "source": "dble" - }, - { - "id": "0x5753ca1acea0-ActualArgSpec", - "ActualArg": "0x5753ca1acea0-ActualArg" - }, - { - "id": "0x5753ca1acea0-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1acbf0-Expr" - }, - { - "id": "0x5753ca1acbf0-Expr", - "variantKey": "Subtract", - "Subtract": "0x5753ca1acc10-Subtract" - }, - { - "id": "0x5753ca1acc10-Subtract", - "left": "0x5753ca1acdb0-Expr", - "right": "0x5753ca1accd0-Expr", - "op": "SUBTRACT" - }, - { - "id": "0x5753ca1acdb0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1b9f90-Designator" - }, - { - "id": "0x5753ca1b9f90-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1b9fa0-DataRef" - }, - { - "id": "0x5753ca1b9fa0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1b9fa0-Name" - }, - { - "id": "0x5753ca1b9fa0-Name", - "source": "i" - }, - { - "id": "0x5753ca1accd0-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1accf0-LiteralConstant" - }, - { - "id": "0x5753ca1accf0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1accf0-IntLiteralConstant" - }, - { - "id": "0x5753ca1accf0-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x5753ca1bc2d0-Expr", - "variantKey": "FunctionReference", - "FunctionReference": "0x5753ca1a5b90-FunctionReference" - }, - { - "id": "0x5753ca1a5b90-FunctionReference", - "Call": "0x5753ca1a5b90-Call" - }, - { - "id": "0x5753ca1a5b90-Call", - "ProcedureDesignator": "0x5753ca1a5ba8-ProcedureDesignator", - "ActualArgSpec": [ - "0x5753ca1bc1d0-ActualArgSpec"] - }, - { - "id": "0x5753ca1a5ba8-ProcedureDesignator", - "variantKey": "Name", - "Name": "0x5753ca1a5ba8-Name" - }, - { - "id": "0x5753ca1a5ba8-Name", - "source": "dble" - }, - { - "id": "0x5753ca1bc1d0-ActualArgSpec", - "ActualArg": "0x5753ca1bc1d0-ActualArg" - }, - { - "id": "0x5753ca1bc1d0-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1bbec0-Expr" - }, - { - "id": "0x5753ca1bbec0-Expr", - "variantKey": "Add", - "Add": "0x5753ca1bbee0-Add" - }, - { - "id": "0x5753ca1bbee0-Add", - "left": "0x5753ca1bc080-Expr", - "right": "0x5753ca1bbfa0-Expr", - "op": "ADD" - }, - { - "id": "0x5753ca1bc080-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1ad0c0-Designator" - }, - { - "id": "0x5753ca1ad0c0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1ad0d0-DataRef" - }, - { - "id": "0x5753ca1ad0d0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1ad0d0-Name" - }, - { - "id": "0x5753ca1ad0d0-Name", - "source": "j" - }, - { - "id": "0x5753ca1bbfa0-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1bbfc0-LiteralConstant" - }, - { - "id": "0x5753ca1bbfc0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1bbfc0-IntLiteralConstant" - }, - { - "id": "0x5753ca1bbfc0-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x5753ca1bc700-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1bc630-Designator" - }, - { - "id": "0x5753ca1bc630-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1bc640-DataRef" - }, - { - "id": "0x5753ca1bc640-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1bc640-Name" - }, - { - "id": "0x5753ca1bc640-Name", - "source": "nk" - }, - { - "id": "0x5753ca1bcb10-Statement", - "statement": "0x5753ca1bcb20-EndDoStmt", - "source": "end do" - }, - { - "id": "0x5753ca1bcb20-EndDoStmt" - }, - { - "id": "0x5753ca1bcc30-Statement", - "statement": "0x5753ca1bcc40-EndDoStmt", - "source": "end do" - }, - { - "id": "0x5753ca1bcc40-EndDoStmt" - }, - { - "id": "0x5753ca1be040-Statement", - "statement": "0x5753ca1be050-EndSubroutineStmt", - "source": "end subroutine" - }, - { - "id": "0x5753ca1be050-EndSubroutineStmt" - }, - { - "id": "0x5753ca1a4c20-InternalSubprogram", - "variantKey": "SubroutineSubprogram", - "SubroutineSubprogram": "0x5753ca1c4280-SubroutineSubprogram" - }, - { - "id": "0x5753ca1c4280-SubroutineSubprogram", - "Statement": "0x5753ca1c43c8-Statement", - "SpecificationPart": "0x5753ca1c4320-SpecificationPart", - "ExecutionPart": "0x5753ca1c4308-ExecutionPart", - "Statement": "0x5753ca1c4280-Statement" - }, - { - "id": "0x5753ca1c43c8-Statement", - "statement": "0x5753ca1c43d8-SubroutineStmt", - "source": "subroutine print_array(ni, nl, g)" - }, - { - "id": "0x5753ca1c43d8-SubroutineStmt", - "Name": "0x5753ca1c4410-Name", - "DummyArg": [ - "0x5753ca1afbc0-DummyArg", - "0x5753ca1afb20-DummyArg", - "0x5753ca1afb60-DummyArg"] - }, - { - "id": "0x5753ca1c4410-Name", - "source": "print_array" - }, - { - "id": "0x5753ca1afbc0-DummyArg", - "variantKey": "Name", - "Name": "0x5753ca1afbc0-Name" - }, - { - "id": "0x5753ca1afbc0-Name", - "source": "ni" - }, - { - "id": "0x5753ca1afb20-DummyArg", - "variantKey": "Name", - "Name": "0x5753ca1afb20-Name" - }, - { - "id": "0x5753ca1afb20-Name", - "source": "nl" - }, - { - "id": "0x5753ca1afb60-DummyArg", - "variantKey": "Name", - "Name": "0x5753ca1afb60-Name" - }, - { - "id": "0x5753ca1afb60-Name", - "source": "g" - }, - { - "id": "0x5753ca1c4320-SpecificationPart", - "ImplicitPart": "0x5753ca1c4338-ImplicitPart", - "DeclarationConstruct": [ - "0x5753ca1af800-DeclarationConstruct", - "0x5753ca1b6050-DeclarationConstruct", - "0x5753ca1af690-DeclarationConstruct"] - }, - { - "id": "0x5753ca1c4338-ImplicitPart" - }, - { - "id": "0x5753ca1af800-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5753ca1af800-SpecificationConstruct" - }, - { - "id": "0x5753ca1af800-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1af800-Statement" - }, - { - "id": "0x5753ca1af800-Statement", - "statement": "0x5753ca19f320-TypeDeclarationStmt", - "source": "double precision, dimension(nl, ni) :: g" - }, - { - "id": "0x5753ca19f320-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5753ca19f350-DeclarationTypeSpec", - "AttrSpec": [ - "0x5753ca1a4e00-AttrSpec"], - "EntityDecl": [ - "0x5753ca1bece0-EntityDecl"] - }, - { - "id": "0x5753ca19f350-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5753ca19f350-IntrinsicTypeSpec" - }, - { - "id": "0x5753ca19f350-IntrinsicTypeSpec", - "variantKey": "DoublePrecision", - "DoublePrecision": "0x5753ca19f350-DoublePrecision" - }, - { - "id": "0x5753ca19f350-DoublePrecision" - }, - { - "id": "0x5753ca1a4e00-AttrSpec", - "variantKey": "ArraySpec", - "ArraySpec": "0x5753ca1a4e00-ArraySpec" - }, - { - "id": "0x5753ca1a4e00-ArraySpec", - "variantKey": "ExplicitShapeSpec", - "ExplicitShapeSpec": [ - "0x5753ca1b0bb0-ExplicitShapeSpec", - "0x5753ca19edf0-ExplicitShapeSpec"] - }, - { - "id": "0x5753ca1b0bb0-ExplicitShapeSpec", - "upper_bound": "0x5753ca1b0bb0-SpecificationExpr" - }, - { - "id": "0x5753ca1b0bb0-SpecificationExpr", - "Expr": "0x5753ca1bde90-Expr" - }, - { - "id": "0x5753ca1bde90-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1bc570-Designator" - }, - { - "id": "0x5753ca1bc570-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1bc580-DataRef" - }, - { - "id": "0x5753ca1bc580-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1bc580-Name" - }, - { - "id": "0x5753ca1bc580-Name", - "source": "nl" - }, - { - "id": "0x5753ca19edf0-ExplicitShapeSpec", - "upper_bound": "0x5753ca19edf0-SpecificationExpr" - }, - { - "id": "0x5753ca19edf0-SpecificationExpr", - "Expr": "0x5753ca1bebf0-Expr" - }, - { - "id": "0x5753ca1bebf0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1a7090-Designator" - }, - { - "id": "0x5753ca1a7090-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1a70a0-DataRef" - }, - { - "id": "0x5753ca1a70a0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1a70a0-Name" - }, - { - "id": "0x5753ca1a70a0-Name", - "source": "ni" - }, - { - "id": "0x5753ca1bece0-EntityDecl", - "Name": "0x5753ca1bed98-Name" - }, - { - "id": "0x5753ca1bed98-Name", - "source": "g" - }, - { - "id": "0x5753ca1b6050-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5753ca1b6050-SpecificationConstruct" - }, - { - "id": "0x5753ca1b6050-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1b6050-Statement" - }, - { - "id": "0x5753ca1b6050-Statement", - "statement": "0x5753ca1ba780-TypeDeclarationStmt", - "source": "integer :: ni, nl" - }, - { - "id": "0x5753ca1ba780-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5753ca1ba7b0-DeclarationTypeSpec", - "EntityDecl": [ - "0x5753ca1bcd60-EntityDecl", - "0x5753ca1bedd0-EntityDecl"] - }, - { - "id": "0x5753ca1ba7b0-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5753ca1ba7b0-IntrinsicTypeSpec" - }, - { - "id": "0x5753ca1ba7b0-IntrinsicTypeSpec", - "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x5753ca1ba7b0-IntegerTypeSpec" - }, - { - "id": "0x5753ca1ba7b0-IntegerTypeSpec" - }, - { - "id": "0x5753ca1bcd60-EntityDecl", - "Name": "0x5753ca1bce18-Name" - }, - { - "id": "0x5753ca1bce18-Name", - "source": "ni" - }, - { - "id": "0x5753ca1bedd0-EntityDecl", - "Name": "0x5753ca1bee88-Name" - }, - { - "id": "0x5753ca1bee88-Name", - "source": "nl" - }, - { - "id": "0x5753ca1af690-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5753ca1af690-SpecificationConstruct" - }, - { - "id": "0x5753ca1af690-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1af690-Statement" - }, - { - "id": "0x5753ca1af690-Statement", - "statement": "0x5753ca19e240-TypeDeclarationStmt", - "source": "integer :: i, j" - }, - { - "id": "0x5753ca19e240-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5753ca19e270-DeclarationTypeSpec", - "EntityDecl": [ - "0x5753ca1bcf40-EntityDecl", - "0x5753ca1bce50-EntityDecl"] - }, - { - "id": "0x5753ca19e270-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5753ca19e270-IntrinsicTypeSpec" - }, - { - "id": "0x5753ca19e270-IntrinsicTypeSpec", - "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x5753ca19e270-IntegerTypeSpec" - }, - { - "id": "0x5753ca19e270-IntegerTypeSpec" - }, - { - "id": "0x5753ca1bcf40-EntityDecl", - "Name": "0x5753ca1bcff8-Name" - }, - { - "id": "0x5753ca1bcff8-Name", - "source": "i" - }, - { - "id": "0x5753ca1bce50-EntityDecl", - "Name": "0x5753ca1bcf08-Name" - }, - { - "id": "0x5753ca1bcf08-Name", - "source": "j" - }, - { - "id": "0x5753ca1c4308-ExecutionPart", - "ExecutionPartConstruct": [ - "0x5753ca1bdf80-ExecutionPartConstruct", - "0x5753ca1b11e0-ExecutionPartConstruct"] - }, - { - "id": "0x5753ca1c4308-ExecutionPartConstruct" - }, - { - "id": "0x5753ca1bdf80-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1bdf80-ExecutableConstruct" - }, - { - "id": "0x5753ca1bdf80-ExecutableConstruct", - "variantKey": "DoConstruct", - "DoConstruct": "0x5753ca1c2700-DoConstruct" - }, - { - "id": "0x5753ca1c2700-DoConstruct", - "Statement": "0x5753ca1c2758-Statement", - "ExecutionPartConstruct": [ - "0x5753ca1ae260-ExecutionPartConstruct"], - "Statement": "0x5753ca1c2700-Statement" - }, - { - "id": "0x5753ca1c2758-Statement", - "statement": "0x5753ca1c2768-NonLabelDoStmt", - "source": "do i = 1, ni" - }, - { - "id": "0x5753ca1c2768-NonLabelDoStmt", - "LoopControl": "0x5753ca1c2768-LoopControl" - }, - { - "id": "0x5753ca1c2768-LoopControl", - "variantKey": "LoopBounds", - "LoopBounds": "0x5753ca1c2768-LoopBounds" - }, - { - "id": "0x5753ca1c2768-LoopBounds", - "var": "0x5753ca1c2768-Name", - "lower": "0x5753ca1bd020-Expr", - "upper": "0x5753ca1bd100-Expr" - }, - { - "id": "0x5753ca1c2768-Name", - "source": "i" - }, - { - "id": "0x5753ca1bd020-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1bd040-LiteralConstant" - }, - { - "id": "0x5753ca1bd040-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1bd040-IntLiteralConstant" - }, - { - "id": "0x5753ca1bd040-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x5753ca1bd100-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1b0950-Designator" - }, - { - "id": "0x5753ca1b0950-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1b0960-DataRef" - }, - { - "id": "0x5753ca1b0960-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1b0960-Name" - }, - { - "id": "0x5753ca1b0960-Name", - "source": "ni" - }, - { - "id": "0x5753ca1c2740-ExecutionPartConstruct" - }, - { - "id": "0x5753ca1ae260-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1ae260-ExecutableConstruct" - }, - { - "id": "0x5753ca1ae260-ExecutableConstruct", - "variantKey": "DoConstruct", - "DoConstruct": "0x5753ca1c25e0-DoConstruct" - }, - { - "id": "0x5753ca1c25e0-DoConstruct", - "Statement": "0x5753ca1c2638-Statement", - "ExecutionPartConstruct": [ - "0x5753ca1b8eb0-ExecutionPartConstruct", - "0x5753ca1c0230-ExecutionPartConstruct"], - "Statement": "0x5753ca1c25e0-Statement" - }, - { - "id": "0x5753ca1c2638-Statement", - "statement": "0x5753ca1c2648-NonLabelDoStmt", - "source": "do j = 1, nl" - }, - { - "id": "0x5753ca1c2648-NonLabelDoStmt", - "LoopControl": "0x5753ca1c2648-LoopControl" - }, - { - "id": "0x5753ca1c2648-LoopControl", - "variantKey": "LoopBounds", - "LoopBounds": "0x5753ca1c2648-LoopBounds" - }, - { - "id": "0x5753ca1c2648-LoopBounds", - "var": "0x5753ca1c2648-Name", - "lower": "0x5753ca1bd1e0-Expr", - "upper": "0x5753ca1bd2c0-Expr" - }, - { - "id": "0x5753ca1c2648-Name", - "source": "j" - }, - { - "id": "0x5753ca1bd1e0-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1bd200-LiteralConstant" - }, - { - "id": "0x5753ca1bd200-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1bd200-IntLiteralConstant" - }, - { - "id": "0x5753ca1bd200-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x5753ca1bd2c0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1a6c10-Designator" - }, - { - "id": "0x5753ca1a6c10-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1a6c20-DataRef" - }, - { - "id": "0x5753ca1a6c20-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1a6c20-Name" - }, - { - "id": "0x5753ca1a6c20-Name", - "source": "nl" - }, - { - "id": "0x5753ca1c2620-ExecutionPartConstruct" - }, - { - "id": "0x5753ca1b8eb0-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1b8eb0-ExecutableConstruct" - }, - { - "id": "0x5753ca1b8eb0-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1b8eb0-Statement" - }, - { - "id": "0x5753ca1b8eb0-Statement", - "statement": "0x5753ca1b8ec0-ActionStmt", - "source": "write(0, \"(f0.2,1x)\", advance='no') g(j,i)" - }, - { - "id": "0x5753ca1b8ec0-ActionStmt", - "variantKey": "WriteStmt", - "WriteStmt": "0x5753ca1bf650-WriteStmt" - }, - { - "id": "0x5753ca1bf650-WriteStmt", - "iounit": "0x5753ca1bf650-IoUnit", - "format": "0x5753ca1bf680-Format", - "controls": [ - "0x5753ca1bd980-IoControlSpec"], - "items": [ - "0x5753ca1bf570-OutputItem"] - }, - { - "id": "0x5753ca1bf650-IoUnit", - "variantKey": "Expr", - "Expr": "0x5753ca1bd3a0-Expr" - }, - { - "id": "0x5753ca1bd3a0-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1bd3c0-LiteralConstant" - }, - { - "id": "0x5753ca1bd3c0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1bd3c0-IntLiteralConstant" - }, - { - "id": "0x5753ca1bd3c0-IntLiteralConstant", - "CharBlock": "0" - }, - { - "id": "0x5753ca1bf680-Format", - "variantKey": "Expr", - "Expr": "0x5753ca1bf680-Expr" - }, - { - "id": "0x5753ca1bf680-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1bf6a0-LiteralConstant" - }, - { - "id": "0x5753ca1bf6a0-LiteralConstant", - "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x5753ca1bf6a0-CharLiteralConstant" - }, - { - "id": "0x5753ca1bf6a0-CharLiteralConstant", - "string": "(f0.2,1x)" - }, - { - "id": "0x5753ca1bd980-IoControlSpec", - "variantKey": "CharExpr", - "CharExpr": "0x5753ca1bd980-CharExpr" - }, - { - "id": "0x5753ca1bd980-CharExpr", - "Kind = Advance": "0x5753ca1bd988-Kind = Advance", - "Expr": "0x5753ca1bd480-Expr", - "kind": "Advance" - }, - { - "id": "0x5753ca1bd988-Kind = Advance", - "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", - "value": "Advance" - }, - { - "id": "0x5753ca1bd480-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1bd4a0-LiteralConstant" - }, - { - "id": "0x5753ca1bd4a0-LiteralConstant", - "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x5753ca1bd4a0-CharLiteralConstant" - }, - { - "id": "0x5753ca1bd4a0-CharLiteralConstant", - "string": "no" - }, - { - "id": "0x5753ca1bf570-OutputItem", - "variantKey": "Expr", - "Expr": "0x5753ca1bf570-Expr" - }, - { - "id": "0x5753ca1bf570-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1d6550-Designator" - }, - { - "id": "0x5753ca1d6550-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1d6560-DataRef" - }, - { - "id": "0x5753ca1d6560-DataRef", - "variantKey": "ArrayElement", - "ArrayElement": "0x5753ca1d05a0-ArrayElement" - }, - { - "id": "0x5753ca1d05a0-ArrayElement", - "base": "0x5753ca1d05a0-DataRef", - "subscripts": [ - "0x5753ca1eb2e0-SectionSubscript", - "0x5753ca27e590-SectionSubscript"] - }, - { - "id": "0x5753ca1d05a0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1d05a0-Name" - }, - { - "id": "0x5753ca1d05a0-Name", - "source": "g" - }, - { - "id": "0x5753ca1eb2e0-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1ac810-Expr" - }, - { - "id": "0x5753ca1ac810-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1bdb90-Designator" - }, - { - "id": "0x5753ca1bdb90-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1bdba0-DataRef" - }, - { - "id": "0x5753ca1bdba0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1bdba0-Name" - }, - { - "id": "0x5753ca1bdba0-Name", - "source": "j" - }, - { - "id": "0x5753ca27e590-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1ac8f0-Expr" - }, - { - "id": "0x5753ca1ac8f0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1bda70-Designator" - }, - { - "id": "0x5753ca1bda70-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1bda80-DataRef" - }, - { - "id": "0x5753ca1bda80-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1bda80-Name" - }, - { - "id": "0x5753ca1bda80-Name", - "source": "i" - }, - { - "id": "0x5753ca1c0230-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1c0230-ExecutableConstruct" - }, - { - "id": "0x5753ca1c0230-ExecutableConstruct", - "variantKey": "IfConstruct", - "IfConstruct": "0x5753ca1c24c0-IfConstruct" - }, - { - "id": "0x5753ca1c24c0-IfConstruct", - "Statement": "0x5753ca1c2590-Statement", - "ExecutionPartConstruct": [ - "0x5753ca1acfb0-ExecutionPartConstruct"], - "Statement": "0x5753ca1c24c0-Statement" - }, - { - "id": "0x5753ca1c2590-Statement", - "statement": "0x5753ca1c25a0-IfThenStmt", - "source": "if(mod(((i - 1) * ni) + j - 1, 20) == 0) then" - }, - { - "id": "0x5753ca1c25a0-IfThenStmt", - "Expr": "0x5753ca1c21b0-Expr" - }, - { - "id": "0x5753ca1c21b0-Expr", - "variantKey": "EQ", - "EQ": "0x5753ca1c21d0-EQ" - }, - { - "id": "0x5753ca1c21d0-EQ", - "left": "0x5753ca1c20d0-Expr", - "right": "0x5753ca1c1ff0-Expr", - "op": "EQ" - }, - { - "id": "0x5753ca1c20d0-Expr", - "variantKey": "FunctionReference", - "FunctionReference": "0x5753ca1adb50-FunctionReference" - }, - { - "id": "0x5753ca1adb50-FunctionReference", - "Call": "0x5753ca1adb50-Call" - }, - { - "id": "0x5753ca1adb50-Call", - "ProcedureDesignator": "0x5753ca1adb68-ProcedureDesignator", - "ActualArgSpec": [ - "0x5753ca1bd870-ActualArgSpec", - "0x5753ca1c0700-ActualArgSpec"] - }, - { - "id": "0x5753ca1adb68-ProcedureDesignator", - "variantKey": "Name", - "Name": "0x5753ca1adb68-Name" - }, - { - "id": "0x5753ca1adb68-Name", - "source": "mod" - }, - { - "id": "0x5753ca1bd870-ActualArgSpec", - "ActualArg": "0x5753ca1bd870-ActualArg" - }, - { - "id": "0x5753ca1bd870-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1c1e30-Expr" - }, - { - "id": "0x5753ca1c1e30-Expr", - "variantKey": "Subtract", - "Subtract": "0x5753ca1c1e50-Subtract" - }, - { - "id": "0x5753ca1c1e50-Subtract", - "left": "0x5753ca1c1c70-Expr", - "right": "0x5753ca1c1b90-Expr", - "op": "SUBTRACT" - }, - { - "id": "0x5753ca1c1c70-Expr", - "variantKey": "Add", - "Add": "0x5753ca1c1c90-Add" - }, - { - "id": "0x5753ca1c1c90-Add", - "left": "0x5753ca1c05b0-Expr", - "right": "0x5753ca1bf7a0-Expr", - "op": "ADD" - }, - { - "id": "0x5753ca1c05b0-Expr", - "variantKey": "Parentheses", - "Parentheses": "0x5753ca1c05d0-Parentheses" - }, - { - "id": "0x5753ca1c05d0-Parentheses", - "Expr": "0x5753ca1c1ab0-Expr" - }, - { - "id": "0x5753ca1c1ab0-Expr", - "variantKey": "Multiply", - "Multiply": "0x5753ca1c1ad0-Multiply" - }, - { - "id": "0x5753ca1c1ad0-Multiply", - "left": "0x5753ca1bf960-Expr", - "right": "0x5753ca1bfb20-Expr", - "op": "MULTIPLY" - }, - { - "id": "0x5753ca1bf960-Expr", - "variantKey": "Parentheses", - "Parentheses": "0x5753ca1bf980-Parentheses" - }, - { - "id": "0x5753ca1bf980-Parentheses", - "Expr": "0x5753ca1bfa40-Expr" - }, - { - "id": "0x5753ca1bfa40-Expr", - "variantKey": "Subtract", - "Subtract": "0x5753ca1bfa60-Subtract" - }, - { - "id": "0x5753ca1bfa60-Subtract", - "left": "0x5753ca1c1960-Expr", - "right": "0x5753ca1bf880-Expr", - "op": "SUBTRACT" - }, - { - "id": "0x5753ca1c1960-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1be9d0-Designator" - }, - { - "id": "0x5753ca1be9d0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1be9e0-DataRef" - }, - { - "id": "0x5753ca1be9e0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1be9e0-Name" - }, - { - "id": "0x5753ca1be9e0-Name", - "source": "i" - }, - { - "id": "0x5753ca1bf880-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1bf8a0-LiteralConstant" - }, - { - "id": "0x5753ca1bf8a0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1bf8a0-IntLiteralConstant" - }, - { - "id": "0x5753ca1bf8a0-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x5753ca1bfb20-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1bc160-Designator" - }, - { - "id": "0x5753ca1bc160-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1bc170-DataRef" - }, - { - "id": "0x5753ca1bc170-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1bc170-Name" - }, - { - "id": "0x5753ca1bc170-Name", - "source": "ni" - }, - { - "id": "0x5753ca1bf7a0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1be220-Designator" - }, - { - "id": "0x5753ca1be220-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1be230-DataRef" - }, - { - "id": "0x5753ca1be230-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1be230-Name" - }, - { - "id": "0x5753ca1be230-Name", - "source": "j" - }, - { - "id": "0x5753ca1c1b90-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1c1bb0-LiteralConstant" - }, - { - "id": "0x5753ca1c1bb0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1c1bb0-IntLiteralConstant" - }, - { - "id": "0x5753ca1c1bb0-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x5753ca1c0700-ActualArgSpec", - "ActualArg": "0x5753ca1c0700-ActualArg" - }, - { - "id": "0x5753ca1c0700-ActualArg", - "variantKey": "Expr", - "Expr": "0x5753ca1c1f10-Expr" - }, - { - "id": "0x5753ca1c1f10-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1c1f30-LiteralConstant" - }, - { - "id": "0x5753ca1c1f30-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1c1f30-IntLiteralConstant" - }, - { - "id": "0x5753ca1c1f30-IntLiteralConstant", - "CharBlock": "20" - }, - { - "id": "0x5753ca1c1ff0-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1c2010-LiteralConstant" - }, - { - "id": "0x5753ca1c2010-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1c2010-IntLiteralConstant" - }, - { - "id": "0x5753ca1c2010-IntLiteralConstant", - "CharBlock": "0" - }, - { - "id": "0x5753ca1c2578-ExecutionPartConstruct" - }, - { - "id": "0x5753ca1acfb0-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1acfb0-ExecutableConstruct" - }, - { - "id": "0x5753ca1acfb0-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1acfb0-Statement" - }, - { - "id": "0x5753ca1acfb0-Statement", - "statement": "0x5753ca1acfc0-ActionStmt", - "source": "write(0, *)" - }, - { - "id": "0x5753ca1acfc0-ActionStmt", - "variantKey": "WriteStmt", - "WriteStmt": "0x5753ca1c2370-WriteStmt" - }, - { - "id": "0x5753ca1c2370-WriteStmt", - "iounit": "0x5753ca1c2370-IoUnit", - "format": "0x5753ca1c23a0-Format", - "controls": [ +{ + "nodes": [ + { + "id": "0x559712283f00-Program", + "ProgramUnit": [ + "0x5597122d0f80-ProgramUnit" + ] + }, + { + "id": "0x5597122d0f80-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x5597122c20a0-MainProgram" + }, + { + "id": "0x5597122c20a0-MainProgram", + "Statement": "0x5597122c21e8-Statement", + "SpecificationPart": "0x5597122c2140-SpecificationPart", + "ExecutionPart": "0x5597122c2128-ExecutionPart", + "InternalSubprogramPart": "0x5597122c20e0-InternalSubprogramPart", + "Statement": "0x5597122c20a0-Statement" + }, + { + "id": "0x5597122c21e8-Statement", + "statement": "0x5597122c21f8-ProgramStmt", + "source": "program THREE_MM" + }, + { + "id": "0x5597122c21f8-ProgramStmt", + "Name": "0x5597122c21f8-Name" + }, + { + "id": "0x5597122c21f8-Name", + "source": "THREE_MM" + }, + { + "id": "0x5597122c2140-SpecificationPart", + "ImplicitPart": "0x5597122c2158-ImplicitPart", + "DeclarationConstruct": [ + "0x559712291110-DeclarationConstruct", + "0x559712290da0-DeclarationConstruct", + "0x5597122c67b0-DeclarationConstruct", + "0x5597122392e0-DeclarationConstruct", + "0x5597122ae9c0-DeclarationConstruct", + "0x5597122aec30-DeclarationConstruct", + "0x5597122aeea0-DeclarationConstruct", + "0x559712291170-DeclarationConstruct" + ] + }, + { + "id": "0x5597122c2158-ImplicitPart" + }, + { + "id": "0x559712291110-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x559712291110-SpecificationConstruct" + }, + { + "id": "0x559712291110-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x559712291110-Statement" + }, + { + "id": "0x559712291110-Statement", + "statement": "0x5597122c5f50-TypeDeclarationStmt", + "source": "double precision, dimension(:, :), allocatable :: a" + }, + { + "id": "0x5597122c5f50-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5597122c5f80-DeclarationTypeSpec", + "AttrSpec": [ + "0x5597122c8ff0-AttrSpec", + "0x5597122b8460-AttrSpec" + ], + "EntityDecl": [ + "0x5597122c6300-EntityDecl" + ] + }, + { + "id": "0x5597122c5f80-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5597122c5f80-IntrinsicTypeSpec" + }, + { + "id": "0x5597122c5f80-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x5597122c5f80-DoublePrecision" + }, + { + "id": "0x5597122c5f80-DoublePrecision" + }, + { + "id": "0x5597122c8ff0-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x5597122c8ff0-ArraySpec" + }, + { + "id": "0x5597122c8ff0-ArraySpec", + "variantKey": "DeferredShapeSpecList", + "DeferredShapeSpecList": "0x5597122c8ff0-DeferredShapeSpecList" + }, + { + "id": "0x5597122c8ff0-DeferredShapeSpecList", + "int": "2" + }, + { + "id": "0x5597122b8460-AttrSpec", + "variantKey": "Allocatable", + "Allocatable": "0x5597122b8460-Allocatable" + }, + { + "id": "0x5597122b8460-Allocatable", + "keyword": "Allocatable" + }, + { + "id": "0x5597122c6300-EntityDecl", + "Name": "0x5597122c63b8-Name" + }, + { + "id": "0x5597122c63b8-Name", + "source": "a" + }, + { + "id": "0x559712290da0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x559712290da0-SpecificationConstruct" + }, + { + "id": "0x559712290da0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x559712290da0-Statement" + }, + { + "id": "0x559712290da0-Statement", + "statement": "0x5597122c5fd0-TypeDeclarationStmt", + "source": "double precision, dimension(:, :), allocatable :: b" + }, + { + "id": "0x5597122c5fd0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5597122c6000-DeclarationTypeSpec", + "AttrSpec": [ + "0x5597122ba210-AttrSpec", + "0x5597122c1e90-AttrSpec" + ], + "EntityDecl": [ + "0x5597122c6550-EntityDecl" + ] + }, + { + "id": "0x5597122c6000-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5597122c6000-IntrinsicTypeSpec" + }, + { + "id": "0x5597122c6000-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x5597122c6000-DoublePrecision" + }, + { + "id": "0x5597122c6000-DoublePrecision" + }, + { + "id": "0x5597122ba210-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x5597122ba210-ArraySpec" + }, + { + "id": "0x5597122ba210-ArraySpec", + "variantKey": "DeferredShapeSpecList", + "DeferredShapeSpecList": "0x5597122ba210-DeferredShapeSpecList" + }, + { + "id": "0x5597122ba210-DeferredShapeSpecList", + "int": "2" + }, + { + "id": "0x5597122c1e90-AttrSpec", + "variantKey": "Allocatable", + "Allocatable": "0x5597122c1e90-Allocatable" + }, + { + "id": "0x5597122c1e90-Allocatable", + "keyword": "Allocatable" + }, + { + "id": "0x5597122c6550-EntityDecl", + "Name": "0x5597122c6608-Name" + }, + { + "id": "0x5597122c6608-Name", + "source": "b" + }, + { + "id": "0x5597122c67b0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5597122c67b0-SpecificationConstruct" + }, + { + "id": "0x5597122c67b0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5597122c67b0-Statement" + }, + { + "id": "0x5597122c67b0-Statement", + "statement": "0x5597122c64c0-TypeDeclarationStmt", + "source": "double precision, dimension(:, :), allocatable :: c" + }, + { + "id": "0x5597122c64c0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5597122c64f0-DeclarationTypeSpec", + "AttrSpec": [ + "0x5597122bc330-AttrSpec", + "0x5597122c85f0-AttrSpec" + ], + "EntityDecl": [ + "0x5597122c66c0-EntityDecl" + ] + }, + { + "id": "0x5597122c64f0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5597122c64f0-IntrinsicTypeSpec" + }, + { + "id": "0x5597122c64f0-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x5597122c64f0-DoublePrecision" + }, + { + "id": "0x5597122c64f0-DoublePrecision" + }, + { + "id": "0x5597122bc330-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x5597122bc330-ArraySpec" + }, + { + "id": "0x5597122bc330-ArraySpec", + "variantKey": "DeferredShapeSpecList", + "DeferredShapeSpecList": "0x5597122bc330-DeferredShapeSpecList" + }, + { + "id": "0x5597122bc330-DeferredShapeSpecList", + "int": "2" + }, + { + "id": "0x5597122c85f0-AttrSpec", + "variantKey": "Allocatable", + "Allocatable": "0x5597122c85f0-Allocatable" + }, + { + "id": "0x5597122c85f0-Allocatable", + "keyword": "Allocatable" + }, + { + "id": "0x5597122c66c0-EntityDecl", + "Name": "0x5597122c6778-Name" + }, + { + "id": "0x5597122c6778-Name", + "source": "c" + }, + { + "id": "0x5597122392e0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5597122392e0-SpecificationConstruct" + }, + { + "id": "0x5597122392e0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5597122392e0-Statement" + }, + { + "id": "0x5597122392e0-Statement", + "statement": "0x5597122c6630-TypeDeclarationStmt", + "source": "double precision, dimension(:, :), allocatable :: d" + }, + { + "id": "0x5597122c6630-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5597122c6660-DeclarationTypeSpec", + "AttrSpec": [ + "0x5597122c5cd0-AttrSpec", + "0x5597122c2380-AttrSpec" + ], + "EntityDecl": [ + "0x5597122c1c70-EntityDecl" + ] + }, + { + "id": "0x5597122c6660-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5597122c6660-IntrinsicTypeSpec" + }, + { + "id": "0x5597122c6660-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x5597122c6660-DoublePrecision" + }, + { + "id": "0x5597122c6660-DoublePrecision" + }, + { + "id": "0x5597122c5cd0-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x5597122c5cd0-ArraySpec" + }, + { + "id": "0x5597122c5cd0-ArraySpec", + "variantKey": "DeferredShapeSpecList", + "DeferredShapeSpecList": "0x5597122c5cd0-DeferredShapeSpecList" + }, + { + "id": "0x5597122c5cd0-DeferredShapeSpecList", + "int": "2" + }, + { + "id": "0x5597122c2380-AttrSpec", + "variantKey": "Allocatable", + "Allocatable": "0x5597122c2380-Allocatable" + }, + { + "id": "0x5597122c2380-Allocatable", + "keyword": "Allocatable" + }, + { + "id": "0x5597122c1c70-EntityDecl", + "Name": "0x5597122c1d28-Name" + }, + { + "id": "0x5597122c1d28-Name", + "source": "d" + }, + { + "id": "0x5597122ae9c0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5597122ae9c0-SpecificationConstruct" + }, + { + "id": "0x5597122ae9c0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5597122ae9c0-Statement" + }, + { + "id": "0x5597122ae9c0-Statement", + "statement": "0x5597122ae770-TypeDeclarationStmt", + "source": "double precision, dimension(:, :), allocatable :: e" + }, + { + "id": "0x5597122ae770-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5597122ae7a0-DeclarationTypeSpec", + "AttrSpec": [ + "0x5597122ae880-AttrSpec", + "0x559712239340-AttrSpec" + ], + "EntityDecl": [ + "0x5597122ae8d0-EntityDecl" + ] + }, + { + "id": "0x5597122ae7a0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5597122ae7a0-IntrinsicTypeSpec" + }, + { + "id": "0x5597122ae7a0-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x5597122ae7a0-DoublePrecision" + }, + { + "id": "0x5597122ae7a0-DoublePrecision" + }, + { + "id": "0x5597122ae880-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x5597122ae880-ArraySpec" + }, + { + "id": "0x5597122ae880-ArraySpec", + "variantKey": "DeferredShapeSpecList", + "DeferredShapeSpecList": "0x5597122ae880-DeferredShapeSpecList" + }, + { + "id": "0x5597122ae880-DeferredShapeSpecList", + "int": "2" + }, + { + "id": "0x559712239340-AttrSpec", + "variantKey": "Allocatable", + "Allocatable": "0x559712239340-Allocatable" + }, + { + "id": "0x559712239340-Allocatable", + "keyword": "Allocatable" + }, + { + "id": "0x5597122ae8d0-EntityDecl", + "Name": "0x5597122ae988-Name" + }, + { + "id": "0x5597122ae988-Name", + "source": "e" + }, + { + "id": "0x5597122aec30-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5597122aec30-SpecificationConstruct" + }, + { + "id": "0x5597122aec30-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5597122aec30-Statement" + }, + { + "id": "0x5597122aec30-Statement", + "statement": "0x5597122ae7f0-TypeDeclarationStmt", + "source": "double precision, dimension(:, :), allocatable :: f" + }, + { + "id": "0x5597122ae7f0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5597122ae820-DeclarationTypeSpec", + "AttrSpec": [ + "0x5597122aeaf0-AttrSpec", + "0x5597122aeaa0-AttrSpec" + ], + "EntityDecl": [ + "0x5597122aeb40-EntityDecl" + ] + }, + { + "id": "0x5597122ae820-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5597122ae820-IntrinsicTypeSpec" + }, + { + "id": "0x5597122ae820-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x5597122ae820-DoublePrecision" + }, + { + "id": "0x5597122ae820-DoublePrecision" + }, + { + "id": "0x5597122aeaf0-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x5597122aeaf0-ArraySpec" + }, + { + "id": "0x5597122aeaf0-ArraySpec", + "variantKey": "DeferredShapeSpecList", + "DeferredShapeSpecList": "0x5597122aeaf0-DeferredShapeSpecList" + }, + { + "id": "0x5597122aeaf0-DeferredShapeSpecList", + "int": "2" + }, + { + "id": "0x5597122aeaa0-AttrSpec", + "variantKey": "Allocatable", + "Allocatable": "0x5597122aeaa0-Allocatable" + }, + { + "id": "0x5597122aeaa0-Allocatable", + "keyword": "Allocatable" + }, + { + "id": "0x5597122aeb40-EntityDecl", + "Name": "0x5597122aebf8-Name" + }, + { + "id": "0x5597122aebf8-Name", + "source": "f" + }, + { + "id": "0x5597122aeea0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5597122aeea0-SpecificationConstruct" + }, + { + "id": "0x5597122aeea0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5597122aeea0-Statement" + }, + { + "id": "0x5597122aeea0-Statement", + "statement": "0x5597122aea10-TypeDeclarationStmt", + "source": "double precision, dimension(:, :), allocatable :: g" + }, + { + "id": "0x5597122aea10-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5597122aea40-DeclarationTypeSpec", + "AttrSpec": [ + "0x5597122aed60-AttrSpec", + "0x5597122aed10-AttrSpec" + ], + "EntityDecl": [ + "0x5597122aedb0-EntityDecl" + ] + }, + { + "id": "0x5597122aea40-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5597122aea40-IntrinsicTypeSpec" + }, + { + "id": "0x5597122aea40-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x5597122aea40-DoublePrecision" + }, + { + "id": "0x5597122aea40-DoublePrecision" + }, + { + "id": "0x5597122aed60-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x5597122aed60-ArraySpec" + }, + { + "id": "0x5597122aed60-ArraySpec", + "variantKey": "DeferredShapeSpecList", + "DeferredShapeSpecList": "0x5597122aed60-DeferredShapeSpecList" + }, + { + "id": "0x5597122aed60-DeferredShapeSpecList", + "int": "2" + }, + { + "id": "0x5597122aed10-AttrSpec", + "variantKey": "Allocatable", + "Allocatable": "0x5597122aed10-Allocatable" + }, + { + "id": "0x5597122aed10-Allocatable", + "keyword": "Allocatable" + }, + { + "id": "0x5597122aedb0-EntityDecl", + "Name": "0x5597122aee68-Name" + }, + { + "id": "0x5597122aee68-Name", + "source": "g" + }, + { + "id": "0x559712291170-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x559712291170-SpecificationConstruct" + }, + { + "id": "0x559712291170-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x559712291170-Statement" + }, + { + "id": "0x559712291170-Statement", + "statement": "0x5597122aec80-TypeDeclarationStmt", + "source": "integer :: i" + }, + { + "id": "0x5597122aec80-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5597122aecb0-DeclarationTypeSpec", + "EntityDecl": [ + "0x5597122aef80-EntityDecl" + ] + }, + { + "id": "0x5597122aecb0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5597122aecb0-IntrinsicTypeSpec" + }, + { + "id": "0x5597122aecb0-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x5597122aecb0-IntegerTypeSpec" + }, + { + "id": "0x5597122aecb0-IntegerTypeSpec" + }, + { + "id": "0x5597122aef80-EntityDecl", + "Name": "0x5597122af038-Name" + }, + { + "id": "0x5597122af038-Name", + "source": "i" + }, + { + "id": "0x5597122c2128-ExecutionPart", + "ExecutionPartConstruct": [ + "0x5597122b0510-ExecutionPartConstruct", + "0x5597122b03d0-ExecutionPartConstruct", + "0x5597122b0db0-ExecutionPartConstruct", + "0x5597122b0d50-ExecutionPartConstruct", + "0x5597122b1820-ExecutionPartConstruct", + "0x5597122b17c0-ExecutionPartConstruct", + "0x5597122b2290-ExecutionPartConstruct", + "0x5597122b2230-ExecutionPartConstruct", + "0x5597122b2d00-ExecutionPartConstruct", + "0x5597122b2ca0-ExecutionPartConstruct", + "0x5597122b3770-ExecutionPartConstruct", + "0x5597122b3710-ExecutionPartConstruct", + "0x5597122b41e0-ExecutionPartConstruct", + "0x5597122b4180-ExecutionPartConstruct", + "0x5597122b6fa0-ExecutionPartConstruct", + "0x5597122b5e60-ExecutionPartConstruct", + "0x5597122ca720-ExecutionPartConstruct", + "0x5597122c92a0-ExecutionPartConstruct", + "0x5597122c9710-ExecutionPartConstruct", + "0x5597122b5820-ExecutionPartConstruct", + "0x5597122c94c0-ExecutionPartConstruct", + "0x5597122b4fc0-ExecutionPartConstruct", + "0x5597122b5c40-ExecutionPartConstruct", + "0x5597122b2be0-ExecutionPartConstruct", + "0x5597122af9e0-ExecutionPartConstruct", + "0x5597122b7df0-ExecutionPartConstruct", + "0x5597122b0080-ExecutionPartConstruct" + ] + }, + { + "id": "0x5597122c2128-ExecutionPartConstruct" + }, + { + "id": "0x5597122b0510-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122b0510-ExecutableConstruct" + }, + { + "id": "0x5597122b0510-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122b0510-Statement" + }, + { + "id": "0x5597122b0510-Statement", + "statement": "0x5597122b0520-ActionStmt", + "source": "allocate(a(32 + 0, 32 + 0), stat = i)" + }, + { + "id": "0x5597122b0520-ActionStmt", + "variantKey": "AllocateStmt", + "AllocateStmt": "0x5597122c5d10-AllocateStmt" + }, + { + "id": "0x5597122c5d10-AllocateStmt", + "Allocation": [ + "0x559712220b10-Allocation" + ], + "AllocOpt": [ + "0x5597122afb10-AllocOpt" + ] + }, + { + "id": "0x559712220b10-Allocation", + "AllocateObject": "0x559712220b58-AllocateObject", + "AllocateShapeSpec": [ + "0x5597122ba0c0-AllocateShapeSpec", + "0x5597122ba090-AllocateShapeSpec" + ] + }, + { + "id": "0x559712220b58-AllocateObject", + "variantKey": "Name", + "Name": "0x559712220b68-Name" + }, + { + "id": "0x559712220b68-Name", + "source": "a" + }, + { + "id": "0x5597122ba0c0-AllocateShapeSpec", + "upper_bound": "0x5597122af500-Expr" + }, + { + "id": "0x5597122af500-Expr", + "variantKey": "Add", + "Add": "0x5597122af520-Add" + }, + { + "id": "0x5597122af520-Add", + "left": "0x5597122af420-Expr", + "right": "0x5597122af340-Expr", + "op": "ADD" + }, + { + "id": "0x5597122af420-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122af440-LiteralConstant" + }, + { + "id": "0x5597122af440-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122af440-IntLiteralConstant" + }, + { + "id": "0x5597122af440-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x5597122af340-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122af360-LiteralConstant" + }, + { + "id": "0x5597122af360-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122af360-IntLiteralConstant" + }, + { + "id": "0x5597122af360-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x5597122ba090-AllocateShapeSpec", + "upper_bound": "0x5597122af8f0-Expr" + }, + { + "id": "0x5597122af8f0-Expr", + "variantKey": "Add", + "Add": "0x5597122af910-Add" + }, + { + "id": "0x5597122af910-Add", + "left": "0x5597122c1b40-Expr", + "right": "0x559712223790-Expr", + "op": "ADD" + }, + { + "id": "0x5597122c1b40-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122c1b60-LiteralConstant" + }, + { + "id": "0x5597122c1b60-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122c1b60-IntLiteralConstant" + }, + { + "id": "0x5597122c1b60-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x559712223790-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122237b0-LiteralConstant" + }, + { + "id": "0x5597122237b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122237b0-IntLiteralConstant" + }, + { + "id": "0x5597122237b0-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x5597122afb10-AllocOpt", + "variantKey": "StatOrErrmsg", + "StatOrErrmsg": "0x5597122afb10-StatOrErrmsg" + }, + { + "id": "0x5597122afb10-StatOrErrmsg", + "variantKey": "StatVariable", + "StatVariable": "0x5597122afb10-StatVariable" + }, + { + "id": "0x5597122afb10-StatVariable", + "Expr": "0x5597122afb10-Variable" + }, + { + "id": "0x5597122afb10-Variable", + "variantKey": "Designator", + "Designator": "0x5597122824d0-Designator" + }, + { + "id": "0x5597122824d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122824e0-DataRef" + }, + { + "id": "0x5597122824e0-DataRef", + "variantKey": "Name", + "Name": "0x5597122824e0-Name" + }, + { + "id": "0x5597122824e0-Name", + "source": "i" + }, + { + "id": "0x5597122b03d0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122b03d0-ExecutableConstruct" + }, + { + "id": "0x5597122b03d0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122b03d0-Statement" + }, + { + "id": "0x5597122b03d0-Statement", + "statement": "0x5597122b03e0-ActionStmt", + "source": "call check_err(i)" + }, + { + "id": "0x5597122b03e0-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x5597122bae90-CallStmt" + }, + { + "id": "0x5597122bae90-CallStmt", + "call": "0x5597122bae90-Call" + }, + { + "id": "0x5597122bae90-Call", + "ProcedureDesignator": "0x5597122baea8-ProcedureDesignator", + "ActualArgSpec": [ + "0x559712291cf0-ActualArgSpec" + ] + }, + { + "id": "0x5597122baea8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x5597122baea8-Name" + }, + { + "id": "0x5597122baea8-Name", + "source": "check_err" + }, + { + "id": "0x559712291cf0-ActualArgSpec", + "ActualArg": "0x559712291cf0-ActualArg" + }, + { + "id": "0x559712291cf0-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122b0560-Expr" + }, + { + "id": "0x5597122b0560-Expr", + "variantKey": "Designator", + "Designator": "0x5597122c5da0-Designator" + }, + { + "id": "0x5597122c5da0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122c5db0-DataRef" + }, + { + "id": "0x5597122c5db0-DataRef", + "variantKey": "Name", + "Name": "0x5597122c5db0-Name" + }, + { + "id": "0x5597122c5db0-Name", + "source": "i" + }, + { + "id": "0x5597122b0db0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122b0db0-ExecutableConstruct" + }, + { + "id": "0x5597122b0db0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122b0db0-Statement" + }, + { + "id": "0x5597122b0db0-Statement", + "statement": "0x5597122b0dc0-ActionStmt", + "source": "allocate(b(32 + 0, 32 + 0), stat = i)" + }, + { + "id": "0x5597122b0dc0-ActionStmt", + "variantKey": "AllocateStmt", + "AllocateStmt": "0x5597122afd00-AllocateStmt" + }, + { + "id": "0x5597122afd00-AllocateStmt", + "Allocation": [ + "0x5597122b0be0-Allocation" + ], + "AllocOpt": [ + "0x5597122af5f0-AllocOpt" + ] + }, + { + "id": "0x5597122b0be0-Allocation", + "AllocateObject": "0x5597122b0c28-AllocateObject", + "AllocateShapeSpec": [ + "0x5597122ba140-AllocateShapeSpec", + "0x5597122ba0f0-AllocateShapeSpec" + ] + }, + { + "id": "0x5597122b0c28-AllocateObject", + "variantKey": "Name", + "Name": "0x5597122b0c38-Name" + }, + { + "id": "0x5597122b0c38-Name", + "source": "b" + }, + { + "id": "0x5597122ba140-AllocateShapeSpec", + "upper_bound": "0x5597122b0720-Expr" + }, + { + "id": "0x5597122b0720-Expr", + "variantKey": "Add", + "Add": "0x5597122b0740-Add" + }, + { + "id": "0x5597122b0740-Add", + "left": "0x5597122b0640-Expr", + "right": "0x5597122b0800-Expr", + "op": "ADD" + }, + { + "id": "0x5597122b0640-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b0660-LiteralConstant" + }, + { + "id": "0x5597122b0660-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b0660-IntLiteralConstant" + }, + { + "id": "0x5597122b0660-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x5597122b0800-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b0820-LiteralConstant" + }, + { + "id": "0x5597122b0820-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b0820-IntLiteralConstant" + }, + { + "id": "0x5597122b0820-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x5597122ba0f0-AllocateShapeSpec", + "upper_bound": "0x5597122b09c0-Expr" + }, + { + "id": "0x5597122b09c0-Expr", + "variantKey": "Add", + "Add": "0x5597122b09e0-Add" + }, + { + "id": "0x5597122b09e0-Add", + "left": "0x5597122b08e0-Expr", + "right": "0x5597122b0aa0-Expr", + "op": "ADD" + }, + { + "id": "0x5597122b08e0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b0900-LiteralConstant" + }, + { + "id": "0x5597122b0900-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b0900-IntLiteralConstant" + }, + { + "id": "0x5597122b0900-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x5597122b0aa0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b0ac0-LiteralConstant" + }, + { + "id": "0x5597122b0ac0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b0ac0-IntLiteralConstant" + }, + { + "id": "0x5597122b0ac0-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x5597122af5f0-AllocOpt", + "variantKey": "StatOrErrmsg", + "StatOrErrmsg": "0x5597122af5f0-StatOrErrmsg" + }, + { + "id": "0x5597122af5f0-StatOrErrmsg", + "variantKey": "StatVariable", + "StatVariable": "0x5597122af5f0-StatVariable" + }, + { + "id": "0x5597122af5f0-StatVariable", + "Expr": "0x5597122af5f0-Variable" + }, + { + "id": "0x5597122af5f0-Variable", + "variantKey": "Designator", + "Designator": "0x5597122b0ce0-Designator" + }, + { + "id": "0x5597122b0ce0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122b0cf0-DataRef" + }, + { + "id": "0x5597122b0cf0-DataRef", + "variantKey": "Name", + "Name": "0x5597122b0cf0-Name" + }, + { + "id": "0x5597122b0cf0-Name", + "source": "i" + }, + { + "id": "0x5597122b0d50-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122b0d50-ExecutableConstruct" + }, + { + "id": "0x5597122b0d50-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122b0d50-Statement" + }, + { + "id": "0x5597122b0d50-Statement", + "statement": "0x5597122b0d60-ActionStmt", + "source": "call check_err(i)" + }, + { + "id": "0x5597122b0d60-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x5597122b0ff0-CallStmt" + }, + { + "id": "0x5597122b0ff0-CallStmt", + "call": "0x5597122b0ff0-Call" + }, + { + "id": "0x5597122b0ff0-Call", + "ProcedureDesignator": "0x5597122b1008-ProcedureDesignator", + "ActualArgSpec": [ + "0x5597122b0ef0-ActualArgSpec" + ] + }, + { + "id": "0x5597122b1008-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x5597122b1008-Name" + }, + { + "id": "0x5597122b1008-Name", + "source": "check_err" + }, + { + "id": "0x5597122b0ef0-ActualArgSpec", + "ActualArg": "0x5597122b0ef0-ActualArg" + }, + { + "id": "0x5597122b0ef0-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122b0e00-Expr" + }, + { + "id": "0x5597122b0e00-Expr", + "variantKey": "Designator", + "Designator": "0x5597122afed0-Designator" + }, + { + "id": "0x5597122afed0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122afee0-DataRef" + }, + { + "id": "0x5597122afee0-DataRef", + "variantKey": "Name", + "Name": "0x5597122afee0-Name" + }, + { + "id": "0x5597122afee0-Name", + "source": "i" + }, + { + "id": "0x5597122b1820-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122b1820-ExecutableConstruct" + }, + { + "id": "0x5597122b1820-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122b1820-Statement" + }, + { + "id": "0x5597122b1820-Statement", + "statement": "0x5597122b1830-ActionStmt", + "source": "allocate(c(32 + 0, 32 + 0), stat = i)" + }, + { + "id": "0x5597122b1830-ActionStmt", + "variantKey": "AllocateStmt", + "AllocateStmt": "0x5597122afb50-AllocateStmt" + }, + { + "id": "0x5597122afb50-AllocateStmt", + "Allocation": [ + "0x5597122b1650-Allocation" + ], + "AllocOpt": [ + "0x5597122b0b90-AllocOpt" + ] + }, + { + "id": "0x5597122b1650-Allocation", + "AllocateObject": "0x5597122b1698-AllocateObject", + "AllocateShapeSpec": [ + "0x5597122be440-AllocateShapeSpec", + "0x5597122be410-AllocateShapeSpec" + ] + }, + { + "id": "0x5597122b1698-AllocateObject", + "variantKey": "Name", + "Name": "0x5597122b16a8-Name" + }, + { + "id": "0x5597122b16a8-Name", + "source": "c" + }, + { + "id": "0x5597122be440-AllocateShapeSpec", + "upper_bound": "0x5597122b1190-Expr" + }, + { + "id": "0x5597122b1190-Expr", + "variantKey": "Add", + "Add": "0x5597122b11b0-Add" + }, + { + "id": "0x5597122b11b0-Add", + "left": "0x5597122b10b0-Expr", + "right": "0x5597122b1270-Expr", + "op": "ADD" + }, + { + "id": "0x5597122b10b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b10d0-LiteralConstant" + }, + { + "id": "0x5597122b10d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b10d0-IntLiteralConstant" + }, + { + "id": "0x5597122b10d0-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x5597122b1270-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b1290-LiteralConstant" + }, + { + "id": "0x5597122b1290-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b1290-IntLiteralConstant" + }, + { + "id": "0x5597122b1290-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x5597122be410-AllocateShapeSpec", + "upper_bound": "0x5597122b1430-Expr" + }, + { + "id": "0x5597122b1430-Expr", + "variantKey": "Add", + "Add": "0x5597122b1450-Add" + }, + { + "id": "0x5597122b1450-Add", + "left": "0x5597122b1350-Expr", + "right": "0x5597122b1510-Expr", + "op": "ADD" + }, + { + "id": "0x5597122b1350-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b1370-LiteralConstant" + }, + { + "id": "0x5597122b1370-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b1370-IntLiteralConstant" + }, + { + "id": "0x5597122b1370-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x5597122b1510-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b1530-LiteralConstant" + }, + { + "id": "0x5597122b1530-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b1530-IntLiteralConstant" + }, + { + "id": "0x5597122b1530-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x5597122b0b90-AllocOpt", + "variantKey": "StatOrErrmsg", + "StatOrErrmsg": "0x5597122b0b90-StatOrErrmsg" + }, + { + "id": "0x5597122b0b90-StatOrErrmsg", + "variantKey": "StatVariable", + "StatVariable": "0x5597122b0b90-StatVariable" + }, + { + "id": "0x5597122b0b90-StatVariable", + "Expr": "0x5597122b0b90-Variable" + }, + { + "id": "0x5597122b0b90-Variable", + "variantKey": "Designator", + "Designator": "0x5597122b1750-Designator" + }, + { + "id": "0x5597122b1750-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122b1760-DataRef" + }, + { + "id": "0x5597122b1760-DataRef", + "variantKey": "Name", + "Name": "0x5597122b1760-Name" + }, + { + "id": "0x5597122b1760-Name", + "source": "i" + }, + { + "id": "0x5597122b17c0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122b17c0-ExecutableConstruct" + }, + { + "id": "0x5597122b17c0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122b17c0-Statement" + }, + { + "id": "0x5597122b17c0-Statement", + "statement": "0x5597122b17d0-ActionStmt", + "source": "call check_err(i)" + }, + { + "id": "0x5597122b17d0-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x5597122b1a60-CallStmt" + }, + { + "id": "0x5597122b1a60-CallStmt", + "call": "0x5597122b1a60-Call" + }, + { + "id": "0x5597122b1a60-Call", + "ProcedureDesignator": "0x5597122b1a78-ProcedureDesignator", + "ActualArgSpec": [ + "0x5597122b1960-ActualArgSpec" + ] + }, + { + "id": "0x5597122b1a78-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x5597122b1a78-Name" + }, + { + "id": "0x5597122b1a78-Name", + "source": "check_err" + }, + { + "id": "0x5597122b1960-ActualArgSpec", + "ActualArg": "0x5597122b1960-ActualArg" + }, + { + "id": "0x5597122b1960-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122b1870-Expr" + }, + { + "id": "0x5597122b1870-Expr", + "variantKey": "Designator", + "Designator": "0x5597122afd90-Designator" + }, + { + "id": "0x5597122afd90-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122afda0-DataRef" + }, + { + "id": "0x5597122afda0-DataRef", + "variantKey": "Name", + "Name": "0x5597122afda0-Name" + }, + { + "id": "0x5597122afda0-Name", + "source": "i" + }, + { + "id": "0x5597122b2290-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122b2290-ExecutableConstruct" + }, + { + "id": "0x5597122b2290-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122b2290-Statement" + }, + { + "id": "0x5597122b2290-Statement", + "statement": "0x5597122b22a0-ActionStmt", + "source": "allocate(d(32 + 0, 32 + 0), stat = i)" + }, + { + "id": "0x5597122b22a0-ActionStmt", + "variantKey": "AllocateStmt", + "AllocateStmt": "0x5597122af760-AllocateStmt" + }, + { + "id": "0x5597122af760-AllocateStmt", + "Allocation": [ + "0x5597122b20c0-Allocation" + ], + "AllocOpt": [ + "0x5597122b1600-AllocOpt" + ] + }, + { + "id": "0x5597122b20c0-Allocation", + "AllocateObject": "0x5597122b2108-AllocateObject", + "AllocateShapeSpec": [ + "0x5597122b8b30-AllocateShapeSpec", + "0x5597122be490-AllocateShapeSpec" + ] + }, + { + "id": "0x5597122b2108-AllocateObject", + "variantKey": "Name", + "Name": "0x5597122b2118-Name" + }, + { + "id": "0x5597122b2118-Name", + "source": "d" + }, + { + "id": "0x5597122b8b30-AllocateShapeSpec", + "upper_bound": "0x5597122b1c00-Expr" + }, + { + "id": "0x5597122b1c00-Expr", + "variantKey": "Add", + "Add": "0x5597122b1c20-Add" + }, + { + "id": "0x5597122b1c20-Add", + "left": "0x5597122b1b20-Expr", + "right": "0x5597122b1ce0-Expr", + "op": "ADD" + }, + { + "id": "0x5597122b1b20-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b1b40-LiteralConstant" + }, + { + "id": "0x5597122b1b40-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b1b40-IntLiteralConstant" + }, + { + "id": "0x5597122b1b40-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x5597122b1ce0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b1d00-LiteralConstant" + }, + { + "id": "0x5597122b1d00-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b1d00-IntLiteralConstant" + }, + { + "id": "0x5597122b1d00-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x5597122be490-AllocateShapeSpec", + "upper_bound": "0x5597122b1ea0-Expr" + }, + { + "id": "0x5597122b1ea0-Expr", + "variantKey": "Add", + "Add": "0x5597122b1ec0-Add" + }, + { + "id": "0x5597122b1ec0-Add", + "left": "0x5597122b1dc0-Expr", + "right": "0x5597122b1f80-Expr", + "op": "ADD" + }, + { + "id": "0x5597122b1dc0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b1de0-LiteralConstant" + }, + { + "id": "0x5597122b1de0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b1de0-IntLiteralConstant" + }, + { + "id": "0x5597122b1de0-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x5597122b1f80-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b1fa0-LiteralConstant" + }, + { + "id": "0x5597122b1fa0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b1fa0-IntLiteralConstant" + }, + { + "id": "0x5597122b1fa0-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x5597122b1600-AllocOpt", + "variantKey": "StatOrErrmsg", + "StatOrErrmsg": "0x5597122b1600-StatOrErrmsg" + }, + { + "id": "0x5597122b1600-StatOrErrmsg", + "variantKey": "StatVariable", + "StatVariable": "0x5597122b1600-StatVariable" + }, + { + "id": "0x5597122b1600-StatVariable", + "Expr": "0x5597122b1600-Variable" + }, + { + "id": "0x5597122b1600-Variable", + "variantKey": "Designator", + "Designator": "0x5597122b21c0-Designator" + }, + { + "id": "0x5597122b21c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122b21d0-DataRef" + }, + { + "id": "0x5597122b21d0-DataRef", + "variantKey": "Name", + "Name": "0x5597122b21d0-Name" + }, + { + "id": "0x5597122b21d0-Name", + "source": "i" + }, + { + "id": "0x5597122b2230-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122b2230-ExecutableConstruct" + }, + { + "id": "0x5597122b2230-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122b2230-Statement" + }, + { + "id": "0x5597122b2230-Statement", + "statement": "0x5597122b2240-ActionStmt", + "source": "call check_err(i)" + }, + { + "id": "0x5597122b2240-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x5597122b24d0-CallStmt" + }, + { + "id": "0x5597122b24d0-CallStmt", + "call": "0x5597122b24d0-Call" + }, + { + "id": "0x5597122b24d0-Call", + "ProcedureDesignator": "0x5597122b24e8-ProcedureDesignator", + "ActualArgSpec": [ + "0x5597122b23d0-ActualArgSpec" + ] + }, + { + "id": "0x5597122b24e8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x5597122b24e8-Name" + }, + { + "id": "0x5597122b24e8-Name", + "source": "check_err" + }, + { + "id": "0x5597122b23d0-ActualArgSpec", + "ActualArg": "0x5597122b23d0-ActualArg" + }, + { + "id": "0x5597122b23d0-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122b22e0-Expr" + }, + { + "id": "0x5597122b22e0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122b02f0-Designator" + }, + { + "id": "0x5597122b02f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122b0300-DataRef" + }, + { + "id": "0x5597122b0300-DataRef", + "variantKey": "Name", + "Name": "0x5597122b0300-Name" + }, + { + "id": "0x5597122b0300-Name", + "source": "i" + }, + { + "id": "0x5597122b2d00-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122b2d00-ExecutableConstruct" + }, + { + "id": "0x5597122b2d00-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122b2d00-Statement" + }, + { + "id": "0x5597122b2d00-Statement", + "statement": "0x5597122b2d10-ActionStmt", + "source": "allocate(e(32 + 0, 32 + 0), stat = i)" + }, + { + "id": "0x5597122b2d10-ActionStmt", + "variantKey": "AllocateStmt", + "AllocateStmt": "0x5597122c1a20-AllocateStmt" + }, + { + "id": "0x5597122c1a20-AllocateStmt", + "Allocation": [ + "0x5597122b2b30-Allocation" + ], + "AllocOpt": [ + "0x5597122b2070-AllocOpt" + ] + }, + { + "id": "0x5597122b2b30-Allocation", + "AllocateObject": "0x5597122b2b78-AllocateObject", + "AllocateShapeSpec": [ + "0x5597122c8550-AllocateShapeSpec", + "0x5597122c84a0-AllocateShapeSpec" + ] + }, + { + "id": "0x5597122b2b78-AllocateObject", + "variantKey": "Name", + "Name": "0x5597122b2b88-Name" + }, + { + "id": "0x5597122b2b88-Name", + "source": "e" + }, + { + "id": "0x5597122c8550-AllocateShapeSpec", + "upper_bound": "0x5597122b2670-Expr" + }, + { + "id": "0x5597122b2670-Expr", + "variantKey": "Add", + "Add": "0x5597122b2690-Add" + }, + { + "id": "0x5597122b2690-Add", + "left": "0x5597122b2590-Expr", + "right": "0x5597122b2750-Expr", + "op": "ADD" + }, + { + "id": "0x5597122b2590-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b25b0-LiteralConstant" + }, + { + "id": "0x5597122b25b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b25b0-IntLiteralConstant" + }, + { + "id": "0x5597122b25b0-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x5597122b2750-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b2770-LiteralConstant" + }, + { + "id": "0x5597122b2770-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b2770-IntLiteralConstant" + }, + { + "id": "0x5597122b2770-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x5597122c84a0-AllocateShapeSpec", + "upper_bound": "0x5597122b2910-Expr" + }, + { + "id": "0x5597122b2910-Expr", + "variantKey": "Add", + "Add": "0x5597122b2930-Add" + }, + { + "id": "0x5597122b2930-Add", + "left": "0x5597122b2830-Expr", + "right": "0x5597122b29f0-Expr", + "op": "ADD" + }, + { + "id": "0x5597122b2830-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b2850-LiteralConstant" + }, + { + "id": "0x5597122b2850-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b2850-IntLiteralConstant" + }, + { + "id": "0x5597122b2850-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x5597122b29f0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b2a10-LiteralConstant" + }, + { + "id": "0x5597122b2a10-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b2a10-IntLiteralConstant" + }, + { + "id": "0x5597122b2a10-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x5597122b2070-AllocOpt", + "variantKey": "StatOrErrmsg", + "StatOrErrmsg": "0x5597122b2070-StatOrErrmsg" + }, + { + "id": "0x5597122b2070-StatOrErrmsg", + "variantKey": "StatVariable", + "StatVariable": "0x5597122b2070-StatVariable" + }, + { + "id": "0x5597122b2070-StatVariable", + "Expr": "0x5597122b2070-Variable" + }, + { + "id": "0x5597122b2070-Variable", + "variantKey": "Designator", + "Designator": "0x5597122b2c30-Designator" + }, + { + "id": "0x5597122b2c30-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122b2c40-DataRef" + }, + { + "id": "0x5597122b2c40-DataRef", + "variantKey": "Name", + "Name": "0x5597122b2c40-Name" + }, + { + "id": "0x5597122b2c40-Name", + "source": "i" + }, + { + "id": "0x5597122b2ca0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122b2ca0-ExecutableConstruct" + }, + { + "id": "0x5597122b2ca0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122b2ca0-Statement" + }, + { + "id": "0x5597122b2ca0-Statement", + "statement": "0x5597122b2cb0-ActionStmt", + "source": "call check_err(i)" + }, + { + "id": "0x5597122b2cb0-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x5597122b2f40-CallStmt" + }, + { + "id": "0x5597122b2f40-CallStmt", + "call": "0x5597122b2f40-Call" + }, + { + "id": "0x5597122b2f40-Call", + "ProcedureDesignator": "0x5597122b2f58-ProcedureDesignator", + "ActualArgSpec": [ + "0x5597122b2e40-ActualArgSpec" + ] + }, + { + "id": "0x5597122b2f58-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x5597122b2f58-Name" + }, + { + "id": "0x5597122b2f58-Name", + "source": "check_err" + }, + { + "id": "0x5597122b2e40-ActualArgSpec", + "ActualArg": "0x5597122b2e40-ActualArg" + }, + { + "id": "0x5597122b2e40-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122b2d50-Expr" + }, + { + "id": "0x5597122b2d50-Expr", + "variantKey": "Designator", + "Designator": "0x5597122affa0-Designator" + }, + { + "id": "0x5597122affa0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122affb0-DataRef" + }, + { + "id": "0x5597122affb0-DataRef", + "variantKey": "Name", + "Name": "0x5597122affb0-Name" + }, + { + "id": "0x5597122affb0-Name", + "source": "i" + }, + { + "id": "0x5597122b3770-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122b3770-ExecutableConstruct" + }, + { + "id": "0x5597122b3770-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122b3770-Statement" + }, + { + "id": "0x5597122b3770-Statement", + "statement": "0x5597122b3780-ActionStmt", + "source": "allocate(f(32 + 0, 32 + 0), stat = i)" + }, + { + "id": "0x5597122b3780-ActionStmt", + "variantKey": "AllocateStmt", + "AllocateStmt": "0x5597122391d0-AllocateStmt" + }, + { + "id": "0x5597122391d0-AllocateStmt", + "Allocation": [ + "0x5597122b35a0-Allocation" + ], + "AllocOpt": [ + "0x5597122b2ae0-AllocOpt" + ] + }, + { + "id": "0x5597122b35a0-Allocation", + "AllocateObject": "0x5597122b35e8-AllocateObject", + "AllocateShapeSpec": [ + "0x5597122b8530-AllocateShapeSpec", + "0x5597122c85c0-AllocateShapeSpec" + ] + }, + { + "id": "0x5597122b35e8-AllocateObject", + "variantKey": "Name", + "Name": "0x5597122b35f8-Name" + }, + { + "id": "0x5597122b35f8-Name", + "source": "f" + }, + { + "id": "0x5597122b8530-AllocateShapeSpec", + "upper_bound": "0x5597122b30e0-Expr" + }, + { + "id": "0x5597122b30e0-Expr", + "variantKey": "Add", + "Add": "0x5597122b3100-Add" + }, + { + "id": "0x5597122b3100-Add", + "left": "0x5597122b3000-Expr", + "right": "0x5597122b31c0-Expr", + "op": "ADD" + }, + { + "id": "0x5597122b3000-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b3020-LiteralConstant" + }, + { + "id": "0x5597122b3020-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b3020-IntLiteralConstant" + }, + { + "id": "0x5597122b3020-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x5597122b31c0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b31e0-LiteralConstant" + }, + { + "id": "0x5597122b31e0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b31e0-IntLiteralConstant" + }, + { + "id": "0x5597122b31e0-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x5597122c85c0-AllocateShapeSpec", + "upper_bound": "0x5597122b3380-Expr" + }, + { + "id": "0x5597122b3380-Expr", + "variantKey": "Add", + "Add": "0x5597122b33a0-Add" + }, + { + "id": "0x5597122b33a0-Add", + "left": "0x5597122b32a0-Expr", + "right": "0x5597122b3460-Expr", + "op": "ADD" + }, + { + "id": "0x5597122b32a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b32c0-LiteralConstant" + }, + { + "id": "0x5597122b32c0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b32c0-IntLiteralConstant" + }, + { + "id": "0x5597122b32c0-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x5597122b3460-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b3480-LiteralConstant" + }, + { + "id": "0x5597122b3480-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b3480-IntLiteralConstant" + }, + { + "id": "0x5597122b3480-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x5597122b2ae0-AllocOpt", + "variantKey": "StatOrErrmsg", + "StatOrErrmsg": "0x5597122b2ae0-StatOrErrmsg" + }, + { + "id": "0x5597122b2ae0-StatOrErrmsg", + "variantKey": "StatVariable", + "StatVariable": "0x5597122b2ae0-StatVariable" + }, + { + "id": "0x5597122b2ae0-StatVariable", + "Expr": "0x5597122b2ae0-Variable" + }, + { + "id": "0x5597122b2ae0-Variable", + "variantKey": "Designator", + "Designator": "0x5597122b36a0-Designator" + }, + { + "id": "0x5597122b36a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122b36b0-DataRef" + }, + { + "id": "0x5597122b36b0-DataRef", + "variantKey": "Name", + "Name": "0x5597122b36b0-Name" + }, + { + "id": "0x5597122b36b0-Name", + "source": "i" + }, + { + "id": "0x5597122b3710-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122b3710-ExecutableConstruct" + }, + { + "id": "0x5597122b3710-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122b3710-Statement" + }, + { + "id": "0x5597122b3710-Statement", + "statement": "0x5597122b3720-ActionStmt", + "source": "call check_err(i)" + }, + { + "id": "0x5597122b3720-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x5597122b39b0-CallStmt" + }, + { + "id": "0x5597122b39b0-CallStmt", + "call": "0x5597122b39b0-Call" + }, + { + "id": "0x5597122b39b0-Call", + "ProcedureDesignator": "0x5597122b39c8-ProcedureDesignator", + "ActualArgSpec": [ + "0x5597122b38b0-ActualArgSpec" + ] + }, + { + "id": "0x5597122b39c8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x5597122b39c8-Name" + }, + { + "id": "0x5597122b39c8-Name", + "source": "check_err" + }, + { + "id": "0x5597122b38b0-ActualArgSpec", + "ActualArg": "0x5597122b38b0-ActualArg" + }, + { + "id": "0x5597122b38b0-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122b37c0-Expr" + }, + { + "id": "0x5597122b37c0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122afc70-Designator" + }, + { + "id": "0x5597122afc70-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122afc80-DataRef" + }, + { + "id": "0x5597122afc80-DataRef", + "variantKey": "Name", + "Name": "0x5597122afc80-Name" + }, + { + "id": "0x5597122afc80-Name", + "source": "i" + }, + { + "id": "0x5597122b41e0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122b41e0-ExecutableConstruct" + }, + { + "id": "0x5597122b41e0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122b41e0-Statement" + }, + { + "id": "0x5597122b41e0-Statement", + "statement": "0x5597122b41f0-ActionStmt", + "source": "allocate(g(32 + 0, 32 + 0), stat = i)" + }, + { + "id": "0x5597122b41f0-ActionStmt", + "variantKey": "AllocateStmt", + "AllocateStmt": "0x5597122390b0-AllocateStmt" + }, + { + "id": "0x5597122390b0-AllocateStmt", + "Allocation": [ + "0x5597122b4010-Allocation" + ], + "AllocOpt": [ + "0x5597122b3550-AllocOpt" + ] + }, + { + "id": "0x5597122b4010-Allocation", + "AllocateObject": "0x5597122b4058-AllocateObject", + "AllocateShapeSpec": [ + "0x5597122b8730-AllocateShapeSpec", + "0x5597122b86c0-AllocateShapeSpec" + ] + }, + { + "id": "0x5597122b4058-AllocateObject", + "variantKey": "Name", + "Name": "0x5597122b4068-Name" + }, + { + "id": "0x5597122b4068-Name", + "source": "g" + }, + { + "id": "0x5597122b8730-AllocateShapeSpec", + "upper_bound": "0x5597122b3b50-Expr" + }, + { + "id": "0x5597122b3b50-Expr", + "variantKey": "Add", + "Add": "0x5597122b3b70-Add" + }, + { + "id": "0x5597122b3b70-Add", + "left": "0x5597122b3a70-Expr", + "right": "0x5597122b3c30-Expr", + "op": "ADD" + }, + { + "id": "0x5597122b3a70-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b3a90-LiteralConstant" + }, + { + "id": "0x5597122b3a90-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b3a90-IntLiteralConstant" + }, + { + "id": "0x5597122b3a90-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x5597122b3c30-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b3c50-LiteralConstant" + }, + { + "id": "0x5597122b3c50-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b3c50-IntLiteralConstant" + }, + { + "id": "0x5597122b3c50-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x5597122b86c0-AllocateShapeSpec", + "upper_bound": "0x5597122b3df0-Expr" + }, + { + "id": "0x5597122b3df0-Expr", + "variantKey": "Add", + "Add": "0x5597122b3e10-Add" + }, + { + "id": "0x5597122b3e10-Add", + "left": "0x5597122b3d10-Expr", + "right": "0x5597122b3ed0-Expr", + "op": "ADD" + }, + { + "id": "0x5597122b3d10-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b3d30-LiteralConstant" + }, + { + "id": "0x5597122b3d30-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b3d30-IntLiteralConstant" + }, + { + "id": "0x5597122b3d30-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x5597122b3ed0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b3ef0-LiteralConstant" + }, + { + "id": "0x5597122b3ef0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b3ef0-IntLiteralConstant" + }, + { + "id": "0x5597122b3ef0-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x5597122b3550-AllocOpt", + "variantKey": "StatOrErrmsg", + "StatOrErrmsg": "0x5597122b3550-StatOrErrmsg" + }, + { + "id": "0x5597122b3550-StatOrErrmsg", + "variantKey": "StatVariable", + "StatVariable": "0x5597122b3550-StatVariable" + }, + { + "id": "0x5597122b3550-StatVariable", + "Expr": "0x5597122b3550-Variable" + }, + { + "id": "0x5597122b3550-Variable", + "variantKey": "Designator", + "Designator": "0x5597122b4110-Designator" + }, + { + "id": "0x5597122b4110-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122b4120-DataRef" + }, + { + "id": "0x5597122b4120-DataRef", + "variantKey": "Name", + "Name": "0x5597122b4120-Name" + }, + { + "id": "0x5597122b4120-Name", + "source": "i" + }, + { + "id": "0x5597122b4180-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122b4180-ExecutableConstruct" + }, + { + "id": "0x5597122b4180-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122b4180-Statement" + }, + { + "id": "0x5597122b4180-Statement", + "statement": "0x5597122b4190-ActionStmt", + "source": "call check_err(i)" + }, + { + "id": "0x5597122b4190-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x5597122b4420-CallStmt" + }, + { + "id": "0x5597122b4420-CallStmt", + "call": "0x5597122b4420-Call" + }, + { + "id": "0x5597122b4420-Call", + "ProcedureDesignator": "0x5597122b4438-ProcedureDesignator", + "ActualArgSpec": [ + "0x5597122b4320-ActualArgSpec" + ] + }, + { + "id": "0x5597122b4438-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x5597122b4438-Name" + }, + { + "id": "0x5597122b4438-Name", + "source": "check_err" + }, + { + "id": "0x5597122b4320-ActualArgSpec", + "ActualArg": "0x5597122b4320-ActualArg" + }, + { + "id": "0x5597122b4320-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122b4230-Expr" + }, + { + "id": "0x5597122b4230-Expr", + "variantKey": "Designator", + "Designator": "0x5597122b0c80-Designator" + }, + { + "id": "0x5597122b0c80-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122b0c90-DataRef" + }, + { + "id": "0x5597122b0c90-DataRef", + "variantKey": "Name", + "Name": "0x5597122b0c90-Name" + }, + { + "id": "0x5597122b0c90-Name", + "source": "i" + }, + { + "id": "0x5597122b6fa0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122b6fa0-ExecutableConstruct" + }, + { + "id": "0x5597122b6fa0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122b6fa0-Statement" + }, + { + "id": "0x5597122b6fa0-Statement", + "statement": "0x5597122b6fb0-ActionStmt", + "source": "call init_array(32, 32, 32, 32, 32, a, b, c, d)" + }, + { + "id": "0x5597122b6fb0-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x5597122b6e60-CallStmt" + }, + { + "id": "0x5597122b6e60-CallStmt", + "call": "0x5597122b6e60-Call" + }, + { + "id": "0x5597122b6e60-Call", + "ProcedureDesignator": "0x5597122b6e78-ProcedureDesignator", + "ActualArgSpec": [ + "0x5597122b6cf0-ActualArgSpec", + "0x5597122b6410-ActualArgSpec", + "0x5597122b6520-ActualArgSpec", + "0x5597122b6630-ActualArgSpec", + "0x5597122b6740-ActualArgSpec", + "0x5597122b6850-ActualArgSpec", + "0x5597122b6960-ActualArgSpec", + "0x5597122b6a70-ActualArgSpec", + "0x5597122b6be0-ActualArgSpec" + ] + }, + { + "id": "0x5597122b6e78-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x5597122b6e78-Name" + }, + { + "id": "0x5597122b6e78-Name", + "source": "init_array" + }, + { + "id": "0x5597122b6cf0-ActualArgSpec", + "ActualArg": "0x5597122b6cf0-ActualArg" + }, + { + "id": "0x5597122b6cf0-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122b54c0-Expr" + }, + { + "id": "0x5597122b54c0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b54e0-LiteralConstant" + }, + { + "id": "0x5597122b54e0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b54e0-IntLiteralConstant" + }, + { + "id": "0x5597122b54e0-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x5597122b6410-ActualArgSpec", + "ActualArg": "0x5597122b6410-ActualArg" + }, + { + "id": "0x5597122b6410-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122b4e80-Expr" + }, + { + "id": "0x5597122b4e80-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b4ea0-LiteralConstant" + }, + { + "id": "0x5597122b4ea0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b4ea0-IntLiteralConstant" + }, + { + "id": "0x5597122b4ea0-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x5597122b6520-ActualArgSpec", + "ActualArg": "0x5597122b6520-ActualArg" + }, + { + "id": "0x5597122b6520-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122b4900-Expr" + }, + { + "id": "0x5597122b4900-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b4920-LiteralConstant" + }, + { + "id": "0x5597122b4920-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b4920-IntLiteralConstant" + }, + { + "id": "0x5597122b4920-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x5597122b6630-ActualArgSpec", + "ActualArg": "0x5597122b6630-ActualArg" + }, + { + "id": "0x5597122b6630-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122b47d0-Expr" + }, + { + "id": "0x5597122b47d0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b47f0-LiteralConstant" + }, + { + "id": "0x5597122b47f0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b47f0-IntLiteralConstant" + }, + { + "id": "0x5597122b47f0-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x5597122b6740-ActualArgSpec", + "ActualArg": "0x5597122b6740-ActualArg" + }, + { + "id": "0x5597122b6740-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122b46a0-Expr" + }, + { + "id": "0x5597122b46a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b46c0-LiteralConstant" + }, + { + "id": "0x5597122b46c0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b46c0-IntLiteralConstant" + }, + { + "id": "0x5597122b46c0-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x5597122b6850-ActualArgSpec", + "ActualArg": "0x5597122b6850-ActualArg" + }, + { + "id": "0x5597122b6850-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122b45c0-Expr" + }, + { + "id": "0x5597122b45c0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122b5a30-Designator" + }, + { + "id": "0x5597122b5a30-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122b5a40-DataRef" + }, + { + "id": "0x5597122b5a40-DataRef", + "variantKey": "Name", + "Name": "0x5597122b5a40-Name" + }, + { + "id": "0x5597122b5a40-Name", + "source": "a" + }, + { + "id": "0x5597122b6960-ActualArgSpec", + "ActualArg": "0x5597122b6960-ActualArg" + }, + { + "id": "0x5597122b6960-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122b44e0-Expr" + }, + { + "id": "0x5597122b44e0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122b53f0-Designator" + }, + { + "id": "0x5597122b53f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122b5400-DataRef" + }, + { + "id": "0x5597122b5400-DataRef", + "variantKey": "Name", + "Name": "0x5597122b5400-Name" + }, + { + "id": "0x5597122b5400-Name", + "source": "b" + }, + { + "id": "0x5597122b6a70-ActualArgSpec", + "ActualArg": "0x5597122b6a70-ActualArg" + }, + { + "id": "0x5597122b6a70-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122b5b00-Expr" + }, + { + "id": "0x5597122b5b00-Expr", + "variantKey": "Designator", + "Designator": "0x5597122b4db0-Designator" + }, + { + "id": "0x5597122b4db0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122b4dc0-DataRef" + }, + { + "id": "0x5597122b4dc0-DataRef", + "variantKey": "Name", + "Name": "0x5597122b4dc0-Name" + }, + { + "id": "0x5597122b4dc0-Name", + "source": "c" + }, + { + "id": "0x5597122b6be0-ActualArgSpec", + "ActualArg": "0x5597122b6be0-ActualArg" + }, + { + "id": "0x5597122b6be0-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122b6140-Expr" + }, + { + "id": "0x5597122b6140-Expr", + "variantKey": "Designator", + "Designator": "0x5597122b6b70-Designator" + }, + { + "id": "0x5597122b6b70-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122b6b80-DataRef" + }, + { + "id": "0x5597122b6b80-DataRef", + "variantKey": "Name", + "Name": "0x5597122b6b80-Name" + }, + { + "id": "0x5597122b6b80-Name", + "source": "d" + }, + { + "id": "0x5597122b5e60-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122b5e60-ExecutableConstruct" + }, + { + "id": "0x5597122b5e60-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122b5e60-Statement" + }, + { + "id": "0x5597122b5e60-Statement", + "statement": "0x5597122b5e70-ActionStmt", + "source": "call polybench_timer_start()" + }, + { + "id": "0x5597122b5e70-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x5597122b6ff0-CallStmt" + }, + { + "id": "0x5597122b6ff0-CallStmt", + "call": "0x5597122b6ff0-Call" + }, + { + "id": "0x5597122b6ff0-Call", + "ProcedureDesignator": "0x5597122b7008-ProcedureDesignator" + }, + { + "id": "0x5597122b7008-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x5597122b7008-Name" + }, + { + "id": "0x5597122b7008-Name", + "source": "polybench_timer_start" + }, + { + "id": "0x5597122ca720-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122ca720-ExecutableConstruct" + }, + { + "id": "0x5597122ca720-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122ca720-Statement" + }, + { + "id": "0x5597122ca720-Statement", + "statement": "0x5597122ca730-ActionStmt", + "source": "call kernel_3mm(32, 32, 32, 32, 32, e, a, b, f, c, d, g)" + }, + { + "id": "0x5597122ca730-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x5597122ca5e0-CallStmt" + }, + { + "id": "0x5597122ca5e0-CallStmt", + "call": "0x5597122ca5e0-Call" + }, + { + "id": "0x5597122ca5e0-Call", + "ProcedureDesignator": "0x5597122ca5f8-ProcedureDesignator", + "ActualArgSpec": [ + "0x5597122ca470-ActualArgSpec", + "0x5597122c97e0-ActualArgSpec", + "0x5597122c98f0-ActualArgSpec", + "0x5597122c9a00-ActualArgSpec", + "0x5597122c9b10-ActualArgSpec", + "0x5597122c9c20-ActualArgSpec", + "0x5597122c9d30-ActualArgSpec", + "0x5597122c9e40-ActualArgSpec", + "0x5597122c9f50-ActualArgSpec", + "0x5597122ca060-ActualArgSpec", + "0x5597122ca170-ActualArgSpec", + "0x5597122ca360-ActualArgSpec" + ] + }, + { + "id": "0x5597122ca5f8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x5597122ca5f8-Name" + }, + { + "id": "0x5597122ca5f8-Name", + "source": "kernel_3mm" + }, + { + "id": "0x5597122ca470-ActualArgSpec", + "ActualArg": "0x5597122ca470-ActualArg" + }, + { + "id": "0x5597122ca470-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122b75f0-Expr" + }, + { + "id": "0x5597122b75f0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b7610-LiteralConstant" + }, + { + "id": "0x5597122b7610-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b7610-IntLiteralConstant" + }, + { + "id": "0x5597122b7610-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x5597122c97e0-ActualArgSpec", + "ActualArg": "0x5597122c97e0-ActualArg" + }, + { + "id": "0x5597122c97e0-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122b7510-Expr" + }, + { + "id": "0x5597122b7510-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b7530-LiteralConstant" + }, + { + "id": "0x5597122b7530-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b7530-IntLiteralConstant" + }, + { + "id": "0x5597122b7530-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x5597122c98f0-ActualArgSpec", + "ActualArg": "0x5597122c98f0-ActualArg" + }, + { + "id": "0x5597122c98f0-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122b7430-Expr" + }, + { + "id": "0x5597122b7430-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b7450-LiteralConstant" + }, + { + "id": "0x5597122b7450-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b7450-IntLiteralConstant" + }, + { + "id": "0x5597122b7450-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x5597122c9a00-ActualArgSpec", + "ActualArg": "0x5597122c9a00-ActualArg" + }, + { + "id": "0x5597122c9a00-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122b7350-Expr" + }, + { + "id": "0x5597122b7350-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b7370-LiteralConstant" + }, + { + "id": "0x5597122b7370-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b7370-IntLiteralConstant" + }, + { + "id": "0x5597122b7370-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x5597122c9b10-ActualArgSpec", + "ActualArg": "0x5597122c9b10-ActualArg" + }, + { + "id": "0x5597122c9b10-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122b7270-Expr" + }, + { + "id": "0x5597122b7270-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b7290-LiteralConstant" + }, + { + "id": "0x5597122b7290-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b7290-IntLiteralConstant" + }, + { + "id": "0x5597122b7290-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x5597122c9c20-ActualArgSpec", + "ActualArg": "0x5597122c9c20-ActualArg" + }, + { + "id": "0x5597122c9c20-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122b7190-Expr" + }, + { + "id": "0x5597122b7190-Expr", + "variantKey": "Designator", + "Designator": "0x5597122b8220-Designator" + }, + { + "id": "0x5597122b8220-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122b8230-DataRef" + }, + { + "id": "0x5597122b8230-DataRef", + "variantKey": "Name", + "Name": "0x5597122b8230-Name" + }, + { + "id": "0x5597122b8230-Name", + "source": "e" + }, + { + "id": "0x5597122c9d30-ActualArgSpec", + "ActualArg": "0x5597122c9d30-ActualArg" + }, + { + "id": "0x5597122c9d30-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122b70b0-Expr" + }, + { + "id": "0x5597122b70b0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122b7c30-Designator" + }, + { + "id": "0x5597122b7c30-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122b7c40-DataRef" + }, + { + "id": "0x5597122b7c40-DataRef", + "variantKey": "Name", + "Name": "0x5597122b7c40-Name" + }, + { + "id": "0x5597122b7c40-Name", + "source": "a" + }, + { + "id": "0x5597122c9e40-ActualArgSpec", + "ActualArg": "0x5597122c9e40-ActualArg" + }, + { + "id": "0x5597122c9e40-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122b78d0-Expr" + }, + { + "id": "0x5597122b78d0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122b7870-Designator" + }, + { + "id": "0x5597122b7870-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122b7880-DataRef" + }, + { + "id": "0x5597122b7880-DataRef", + "variantKey": "Name", + "Name": "0x5597122b7880-Name" + }, + { + "id": "0x5597122b7880-Name", + "source": "b" + }, + { + "id": "0x5597122c9f50-ActualArgSpec", + "ActualArg": "0x5597122c9f50-ActualArg" + }, + { + "id": "0x5597122c9f50-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122c9580-Expr" + }, + { + "id": "0x5597122c9580-Expr", + "variantKey": "Designator", + "Designator": "0x5597122b16f0-Designator" + }, + { + "id": "0x5597122b16f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122b1700-DataRef" + }, + { + "id": "0x5597122b1700-DataRef", + "variantKey": "Name", + "Name": "0x5597122b1700-Name" + }, + { + "id": "0x5597122b1700-Name", + "source": "f" + }, + { + "id": "0x5597122ca060-ActualArgSpec", + "ActualArg": "0x5597122ca060-ActualArg" + }, + { + "id": "0x5597122ca060-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122b82f0-Expr" + }, + { + "id": "0x5597122b82f0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122b6070-Designator" + }, + { + "id": "0x5597122b6070-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122b6080-DataRef" + }, + { + "id": "0x5597122b6080-DataRef", + "variantKey": "Name", + "Name": "0x5597122b6080-Name" + }, + { + "id": "0x5597122b6080-Name", + "source": "c" + }, + { + "id": "0x5597122ca170-ActualArgSpec", + "ActualArg": "0x5597122ca170-ActualArg" + }, + { + "id": "0x5597122ca170-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122b7d00-Expr" + }, + { + "id": "0x5597122b7d00-Expr", + "variantKey": "Designator", + "Designator": "0x5597122b2160-Designator" + }, + { + "id": "0x5597122b2160-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122b2170-DataRef" + }, + { + "id": "0x5597122b2170-DataRef", + "variantKey": "Name", + "Name": "0x5597122b2170-Name" + }, + { + "id": "0x5597122b2170-Name", + "source": "d" + }, + { + "id": "0x5597122ca360-ActualArgSpec", + "ActualArg": "0x5597122ca360-ActualArg" + }, + { + "id": "0x5597122ca360-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122ca270-Expr" + }, + { + "id": "0x5597122ca270-Expr", + "variantKey": "Designator", + "Designator": "0x5597122b7740-Designator" + }, + { + "id": "0x5597122b7740-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122b7750-DataRef" + }, + { + "id": "0x5597122b7750-DataRef", + "variantKey": "Name", + "Name": "0x5597122b7750-Name" + }, + { + "id": "0x5597122b7750-Name", + "source": "g" + }, + { + "id": "0x5597122c92a0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122c92a0-ExecutableConstruct" + }, + { + "id": "0x5597122c92a0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122c92a0-Statement" + }, + { + "id": "0x5597122c92a0-Statement", + "statement": "0x5597122c92b0-ActionStmt", + "source": "call polybench_timer_stop()" + }, + { + "id": "0x5597122c92b0-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x5597122ca770-CallStmt" + }, + { + "id": "0x5597122ca770-CallStmt", + "call": "0x5597122ca770-Call" + }, + { + "id": "0x5597122ca770-Call", + "ProcedureDesignator": "0x5597122ca788-ProcedureDesignator" + }, + { + "id": "0x5597122ca788-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x5597122ca788-Name" + }, + { + "id": "0x5597122ca788-Name", + "source": "polybench_timer_stop" + }, + { + "id": "0x5597122c9710-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122c9710-ExecutableConstruct" + }, + { + "id": "0x5597122c9710-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122c9710-Statement" + }, + { + "id": "0x5597122c9710-Statement", + "statement": "0x5597122c9720-ActionStmt", + "source": "call polybench_timer_print()" + }, + { + "id": "0x5597122c9720-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x5597122ca830-CallStmt" + }, + { + "id": "0x5597122ca830-CallStmt", + "call": "0x5597122ca830-Call" + }, + { + "id": "0x5597122ca830-Call", + "ProcedureDesignator": "0x5597122ca848-ProcedureDesignator" + }, + { + "id": "0x5597122ca848-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x5597122ca848-Name" + }, + { + "id": "0x5597122ca848-Name", + "source": "polybench_timer_print" + }, + { + "id": "0x5597122b5820-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122b5820-ExecutableConstruct" + }, + { + "id": "0x5597122b5820-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122b5820-Statement" + }, + { + "id": "0x5597122b5820-Statement", + "statement": "0x5597122b5830-ActionStmt", + "source": "call print_array(32, 32, g)" + }, + { + "id": "0x5597122b5830-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x5597122caec0-CallStmt" + }, + { + "id": "0x5597122caec0-CallStmt", + "call": "0x5597122caec0-Call" + }, + { + "id": "0x5597122caec0-Call", + "ProcedureDesignator": "0x5597122caed8-ProcedureDesignator", + "ActualArgSpec": [ + "0x5597122cadc0-ActualArgSpec", + "0x5597122caba0-ActualArgSpec", + "0x5597122cacb0-ActualArgSpec" + ] + }, + { + "id": "0x5597122caed8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x5597122caed8-Name" + }, + { + "id": "0x5597122caed8-Name", + "source": "print_array" + }, + { + "id": "0x5597122cadc0-ActualArgSpec", + "ActualArg": "0x5597122cadc0-ActualArg" + }, + { + "id": "0x5597122cadc0-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122caab0-Expr" + }, + { + "id": "0x5597122caab0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122caad0-LiteralConstant" + }, + { + "id": "0x5597122caad0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122caad0-IntLiteralConstant" + }, + { + "id": "0x5597122caad0-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x5597122caba0-ActualArgSpec", + "ActualArg": "0x5597122caba0-ActualArg" + }, + { + "id": "0x5597122caba0-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122ca9d0-Expr" + }, + { + "id": "0x5597122ca9d0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122ca9f0-LiteralConstant" + }, + { + "id": "0x5597122ca9f0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122ca9f0-IntLiteralConstant" + }, + { + "id": "0x5597122ca9f0-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x5597122cacb0-ActualArgSpec", + "ActualArg": "0x5597122cacb0-ActualArg" + }, + { + "id": "0x5597122cacb0-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122ca8f0-Expr" + }, + { + "id": "0x5597122ca8f0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122b55f0-Designator" + }, + { + "id": "0x5597122b55f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122b5600-DataRef" + }, + { + "id": "0x5597122b5600-DataRef", + "variantKey": "Name", + "Name": "0x5597122b5600-Name" + }, + { + "id": "0x5597122b5600-Name", + "source": "g" + }, + { + "id": "0x5597122c94c0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122c94c0-ExecutableConstruct" + }, + { + "id": "0x5597122c94c0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122c94c0-Statement" + }, + { + "id": "0x5597122c94c0-Statement", + "statement": "0x5597122c94d0-ActionStmt", + "source": "deallocate(a)" + }, + { + "id": "0x5597122c94d0-ActionStmt", + "variantKey": "DeallocateStmt", + "DeallocateStmt": "0x5597122b8d90-DeallocateStmt" + }, + { + "id": "0x5597122b8d90-DeallocateStmt", + "AllocateObject": [ + "0x5597122b6e00-AllocateObject" + ] + }, + { + "id": "0x5597122b6e00-AllocateObject", + "variantKey": "Name", + "Name": "0x5597122b6e10-Name" + }, + { + "id": "0x5597122b6e10-Name", + "source": "a" + }, + { + "id": "0x5597122b4fc0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122b4fc0-ExecutableConstruct" + }, + { + "id": "0x5597122b4fc0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122b4fc0-Statement" + }, + { + "id": "0x5597122b4fc0-Statement", + "statement": "0x5597122b4fd0-ActionStmt", + "source": "deallocate(b)" + }, + { + "id": "0x5597122b4fd0-ActionStmt", + "variantKey": "DeallocateStmt", + "DeallocateStmt": "0x5597122b9470-DeallocateStmt" + }, + { + "id": "0x5597122b9470-DeallocateStmt", + "AllocateObject": [ + "0x5597122af270-AllocateObject" + ] + }, + { + "id": "0x5597122af270-AllocateObject", + "variantKey": "Name", + "Name": "0x5597122af280-Name" + }, + { + "id": "0x5597122af280-Name", + "source": "b" + }, + { + "id": "0x5597122b5c40-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122b5c40-ExecutableConstruct" + }, + { + "id": "0x5597122b5c40-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122b5c40-Statement" + }, + { + "id": "0x5597122b5c40-Statement", + "statement": "0x5597122b5c50-ActionStmt", + "source": "deallocate(c)" + }, + { + "id": "0x5597122b5c50-ActionStmt", + "variantKey": "DeallocateStmt", + "DeallocateStmt": "0x5597122b9530-DeallocateStmt" + }, + { + "id": "0x5597122b9530-DeallocateStmt", + "AllocateObject": [ + "0x5597122b6f30-AllocateObject" + ] + }, + { + "id": "0x5597122b6f30-AllocateObject", + "variantKey": "Name", + "Name": "0x5597122b6f40-Name" + }, + { + "id": "0x5597122b6f40-Name", + "source": "c" + }, + { + "id": "0x5597122b2be0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122b2be0-ExecutableConstruct" + }, + { + "id": "0x5597122b2be0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122b2be0-Statement" + }, + { + "id": "0x5597122b2be0-Statement", + "statement": "0x5597122b2bf0-ActionStmt", + "source": "deallocate(d)" + }, + { + "id": "0x5597122b2bf0-ActionStmt", + "variantKey": "DeallocateStmt", + "DeallocateStmt": "0x5597122b9930-DeallocateStmt" + }, + { + "id": "0x5597122b9930-DeallocateStmt", + "AllocateObject": [ + "0x5597122c5ef0-AllocateObject" + ] + }, + { + "id": "0x5597122c5ef0-AllocateObject", + "variantKey": "Name", + "Name": "0x5597122c5f00-Name" + }, + { + "id": "0x5597122c5f00-Name", + "source": "d" + }, + { + "id": "0x5597122af9e0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122af9e0-ExecutableConstruct" + }, + { + "id": "0x5597122af9e0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122af9e0-Statement" + }, + { + "id": "0x5597122af9e0-Statement", + "statement": "0x5597122af9f0-ActionStmt", + "source": "deallocate(e)" + }, + { + "id": "0x5597122af9f0-ActionStmt", + "variantKey": "DeallocateStmt", + "DeallocateStmt": "0x5597122ba160-DeallocateStmt" + }, + { + "id": "0x5597122ba160-DeallocateStmt", + "AllocateObject": [ + "0x5597122b5df0-AllocateObject" + ] + }, + { + "id": "0x5597122b5df0-AllocateObject", + "variantKey": "Name", + "Name": "0x5597122b5e00-Name" + }, + { + "id": "0x5597122b5e00-Name", + "source": "e" + }, + { + "id": "0x5597122b7df0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122b7df0-ExecutableConstruct" + }, + { + "id": "0x5597122b7df0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122b7df0-Statement" + }, + { + "id": "0x5597122b7df0-Statement", + "statement": "0x5597122b7e00-ActionStmt", + "source": "deallocate(f)" + }, + { + "id": "0x5597122b7e00-ActionStmt", + "variantKey": "DeallocateStmt", + "DeallocateStmt": "0x5597122ba1c0-DeallocateStmt" + }, + { + "id": "0x5597122ba1c0-DeallocateStmt", + "AllocateObject": [ + "0x5597122b5ec0-AllocateObject" + ] + }, + { + "id": "0x5597122b5ec0-AllocateObject", + "variantKey": "Name", + "Name": "0x5597122b5ed0-Name" + }, + { + "id": "0x5597122b5ed0-Name", + "source": "f" + }, + { + "id": "0x5597122b0080-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122b0080-ExecutableConstruct" + }, + { + "id": "0x5597122b0080-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122b0080-Statement" + }, + { + "id": "0x5597122b0080-Statement", + "statement": "0x5597122b0090-ActionStmt", + "source": "deallocate(g)" + }, + { + "id": "0x5597122b0090-ActionStmt", + "variantKey": "DeallocateStmt", + "DeallocateStmt": "0x5597122be3c0-DeallocateStmt" + }, + { + "id": "0x5597122be3c0-DeallocateStmt", + "AllocateObject": [ + "0x5597122c9230-AllocateObject" + ] + }, + { + "id": "0x5597122c9230-AllocateObject", + "variantKey": "Name", + "Name": "0x5597122c9240-Name" + }, + { + "id": "0x5597122c9240-Name", + "source": "g" + }, + { + "id": "0x5597122c20e0-InternalSubprogramPart", + "Statement": "0x5597122c20f8-Statement", + "InternalSubprogram": [ + "0x5597122c8200-InternalSubprogram", + "0x5597122bc300-InternalSubprogram", + "0x5597122d12b0-InternalSubprogram" + ] + }, + { + "id": "0x5597122c20f8-Statement", + "statement": "0x5597122c2108-ContainsStmt", + "source": "contains" + }, + { + "id": "0x5597122c2108-ContainsStmt" + }, + { + "id": "0x5597122c8200-InternalSubprogram", + "variantKey": "SubroutineSubprogram", + "SubroutineSubprogram": "0x5597122d0b50-SubroutineSubprogram" + }, + { + "id": "0x5597122d0b50-SubroutineSubprogram", + "Statement": "0x5597122d0c98-Statement", + "SpecificationPart": "0x5597122d0bf0-SpecificationPart", + "ExecutionPart": "0x5597122d0bd8-ExecutionPart", + "Statement": "0x5597122d0b50-Statement" + }, + { + "id": "0x5597122d0c98-Statement", + "statement": "0x5597122d0ca8-SubroutineStmt", + "source": "subroutine init_array(ni, nj, nk, nl, nm, a, b, c, d)" + }, + { + "id": "0x5597122d0ca8-SubroutineStmt", + "Name": "0x5597122d0ce0-Name", + "DummyArg": [ + "0x5597122b8ab0-DummyArg", + "0x5597122b8d20-DummyArg", + "0x5597122b8af0-DummyArg", + "0x5597122b8ba0-DummyArg", + "0x5597122b8b60-DummyArg", + "0x5597122b8be0-DummyArg", + "0x5597122b8c40-DummyArg", + "0x5597122b8c80-DummyArg", + "0x5597122b8ce0-DummyArg" + ] + }, + { + "id": "0x5597122d0ce0-Name", + "source": "init_array" + }, + { + "id": "0x5597122b8ab0-DummyArg", + "variantKey": "Name", + "Name": "0x5597122b8ab0-Name" + }, + { + "id": "0x5597122b8ab0-Name", + "source": "ni" + }, + { + "id": "0x5597122b8d20-DummyArg", + "variantKey": "Name", + "Name": "0x5597122b8d20-Name" + }, + { + "id": "0x5597122b8d20-Name", + "source": "nj" + }, + { + "id": "0x5597122b8af0-DummyArg", + "variantKey": "Name", + "Name": "0x5597122b8af0-Name" + }, + { + "id": "0x5597122b8af0-Name", + "source": "nk" + }, + { + "id": "0x5597122b8ba0-DummyArg", + "variantKey": "Name", + "Name": "0x5597122b8ba0-Name" + }, + { + "id": "0x5597122b8ba0-Name", + "source": "nl" + }, + { + "id": "0x5597122b8b60-DummyArg", + "variantKey": "Name", + "Name": "0x5597122b8b60-Name" + }, + { + "id": "0x5597122b8b60-Name", + "source": "nm" + }, + { + "id": "0x5597122b8be0-DummyArg", + "variantKey": "Name", + "Name": "0x5597122b8be0-Name" + }, + { + "id": "0x5597122b8be0-Name", + "source": "a" + }, + { + "id": "0x5597122b8c40-DummyArg", + "variantKey": "Name", + "Name": "0x5597122b8c40-Name" + }, + { + "id": "0x5597122b8c40-Name", + "source": "b" + }, + { + "id": "0x5597122b8c80-DummyArg", + "variantKey": "Name", + "Name": "0x5597122b8c80-Name" + }, + { + "id": "0x5597122b8c80-Name", + "source": "c" + }, + { + "id": "0x5597122b8ce0-DummyArg", + "variantKey": "Name", + "Name": "0x5597122b8ce0-Name" + }, + { + "id": "0x5597122b8ce0-Name", + "source": "d" + }, + { + "id": "0x5597122d0bf0-SpecificationPart", + "ImplicitPart": "0x5597122d0c08-ImplicitPart", + "DeclarationConstruct": [ + "0x5597122b3650-DeclarationConstruct", + "0x5597122b79c0-DeclarationConstruct", + "0x5597122cd230-DeclarationConstruct", + "0x5597122cb4f0-DeclarationConstruct", + "0x5597122b62d0-DeclarationConstruct", + "0x5597122b7820-DeclarationConstruct" + ] + }, + { + "id": "0x5597122d0c08-ImplicitPart" + }, + { + "id": "0x5597122b3650-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5597122b3650-SpecificationConstruct" + }, + { + "id": "0x5597122b3650-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5597122b3650-Statement" + }, + { + "id": "0x5597122b3650-Statement", + "statement": "0x5597122cb7a0-TypeDeclarationStmt", + "source": "double precision, dimension(nk, ni) :: a" + }, + { + "id": "0x5597122cb7a0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5597122cb7d0-DeclarationTypeSpec", + "AttrSpec": [ + "0x5597122b4790-AttrSpec" + ], + "EntityDecl": [ + "0x5597122cb940-EntityDecl" + ] + }, + { + "id": "0x5597122cb7d0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5597122cb7d0-IntrinsicTypeSpec" + }, + { + "id": "0x5597122cb7d0-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x5597122cb7d0-DoublePrecision" + }, + { + "id": "0x5597122cb7d0-DoublePrecision" + }, + { + "id": "0x5597122b4790-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x5597122b4790-ArraySpec" + }, + { + "id": "0x5597122b4790-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x5597122c82b0-ExplicitShapeSpec", + "0x5597122b89a0-ExplicitShapeSpec" + ] + }, + { + "id": "0x5597122c82b0-ExplicitShapeSpec", + "upper_bound": "0x5597122c82b0-SpecificationExpr" + }, + { + "id": "0x5597122c82b0-SpecificationExpr", + "Expr": "0x5597122caf80-Expr" + }, + { + "id": "0x5597122caf80-Expr", + "variantKey": "Designator", + "Designator": "0x5597122b7a10-Designator" + }, + { + "id": "0x5597122b7a10-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122b7a20-DataRef" + }, + { + "id": "0x5597122b7a20-DataRef", + "variantKey": "Name", + "Name": "0x5597122b7a20-Name" + }, + { + "id": "0x5597122b7a20-Name", + "source": "nk" + }, + { + "id": "0x5597122b89a0-ExplicitShapeSpec", + "upper_bound": "0x5597122b89a0-SpecificationExpr" + }, + { + "id": "0x5597122b89a0-SpecificationExpr", + "Expr": "0x5597122cd480-Expr" + }, + { + "id": "0x5597122cd480-Expr", + "variantKey": "Designator", + "Designator": "0x5597122b77b0-Designator" + }, + { + "id": "0x5597122b77b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122b77c0-DataRef" + }, + { + "id": "0x5597122b77c0-DataRef", + "variantKey": "Name", + "Name": "0x5597122b77c0-Name" + }, + { + "id": "0x5597122b77c0-Name", + "source": "ni" + }, + { + "id": "0x5597122cb940-EntityDecl", + "Name": "0x5597122cb9f8-Name" + }, + { + "id": "0x5597122cb9f8-Name", + "source": "a" + }, + { + "id": "0x5597122b79c0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5597122b79c0-SpecificationConstruct" + }, + { + "id": "0x5597122b79c0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5597122b79c0-Statement" + }, + { + "id": "0x5597122b79c0-Statement", + "statement": "0x5597122c1f10-TypeDeclarationStmt", + "source": "double precision, dimension(nj, nk) :: b" + }, + { + "id": "0x5597122c1f10-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5597122c1f40-DeclarationTypeSpec", + "AttrSpec": [ + "0x5597122b3fc0-AttrSpec" + ], + "EntityDecl": [ + "0x5597122cded0-EntityDecl" + ] + }, + { + "id": "0x5597122c1f40-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5597122c1f40-IntrinsicTypeSpec" + }, + { + "id": "0x5597122c1f40-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x5597122c1f40-DoublePrecision" + }, + { + "id": "0x5597122c1f40-DoublePrecision" + }, + { + "id": "0x5597122b3fc0-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x5597122b3fc0-ArraySpec" + }, + { + "id": "0x5597122b3fc0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x5597122c79b0-ExplicitShapeSpec", + "0x5597122c7760-ExplicitShapeSpec" + ] + }, + { + "id": "0x5597122c79b0-ExplicitShapeSpec", + "upper_bound": "0x5597122c79b0-SpecificationExpr" + }, + { + "id": "0x5597122c79b0-SpecificationExpr", + "Expr": "0x5597122cdd00-Expr" + }, + { + "id": "0x5597122cdd00-Expr", + "variantKey": "Designator", + "Designator": "0x5597122b0140-Designator" + }, + { + "id": "0x5597122b0140-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122b0150-DataRef" + }, + { + "id": "0x5597122b0150-DataRef", + "variantKey": "Name", + "Name": "0x5597122b0150-Name" + }, + { + "id": "0x5597122b0150-Name", + "source": "nj" + }, + { + "id": "0x5597122c7760-ExplicitShapeSpec", + "upper_bound": "0x5597122c7760-SpecificationExpr" + }, + { + "id": "0x5597122c7760-SpecificationExpr", + "Expr": "0x5597122cdde0-Expr" + }, + { + "id": "0x5597122cdde0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122afbe0-Designator" + }, + { + "id": "0x5597122afbe0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122afbf0-DataRef" + }, + { + "id": "0x5597122afbf0-DataRef", + "variantKey": "Name", + "Name": "0x5597122afbf0-Name" + }, + { + "id": "0x5597122afbf0-Name", + "source": "nk" + }, + { + "id": "0x5597122cded0-EntityDecl", + "Name": "0x5597122cdf88-Name" + }, + { + "id": "0x5597122cdf88-Name", + "source": "b" + }, + { + "id": "0x5597122cd230-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5597122cd230-SpecificationConstruct" + }, + { + "id": "0x5597122cd230-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5597122cd230-Statement" + }, + { + "id": "0x5597122cd230-Statement", + "statement": "0x5597122af1e0-TypeDeclarationStmt", + "source": "double precision, dimension(nm, nj) :: c" + }, + { + "id": "0x5597122af1e0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5597122af210-DeclarationTypeSpec", + "AttrSpec": [ + "0x5597122b48c0-AttrSpec" + ], + "EntityDecl": [ + "0x5597122cd140-EntityDecl" + ] + }, + { + "id": "0x5597122af210-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5597122af210-IntrinsicTypeSpec" + }, + { + "id": "0x5597122af210-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x5597122af210-DoublePrecision" + }, + { + "id": "0x5597122af210-DoublePrecision" + }, + { + "id": "0x5597122b48c0-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x5597122b48c0-ArraySpec" + }, + { + "id": "0x5597122b48c0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x5597122c7b10-ExplicitShapeSpec", + "0x5597122c7aa0-ExplicitShapeSpec" + ] + }, + { + "id": "0x5597122c7b10-ExplicitShapeSpec", + "upper_bound": "0x5597122c7b10-SpecificationExpr" + }, + { + "id": "0x5597122c7b10-SpecificationExpr", + "Expr": "0x5597122ccf10-Expr" + }, + { + "id": "0x5597122ccf10-Expr", + "variantKey": "Designator", + "Designator": "0x5597122b51d0-Designator" + }, + { + "id": "0x5597122b51d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122b51e0-DataRef" + }, + { + "id": "0x5597122b51e0-DataRef", + "variantKey": "Name", + "Name": "0x5597122b51e0-Name" + }, + { + "id": "0x5597122b51e0-Name", + "source": "nm" + }, + { + "id": "0x5597122c7aa0-ExplicitShapeSpec", + "upper_bound": "0x5597122c7aa0-SpecificationExpr" + }, + { + "id": "0x5597122c7aa0-SpecificationExpr", + "Expr": "0x5597122cd050-Expr" + }, + { + "id": "0x5597122cd050-Expr", + "variantKey": "Designator", + "Designator": "0x5597122ccff0-Designator" + }, + { + "id": "0x5597122ccff0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122cd000-DataRef" + }, + { + "id": "0x5597122cd000-DataRef", + "variantKey": "Name", + "Name": "0x5597122cd000-Name" + }, + { + "id": "0x5597122cd000-Name", + "source": "nj" + }, + { + "id": "0x5597122cd140-EntityDecl", + "Name": "0x5597122cd1f8-Name" + }, + { + "id": "0x5597122cd1f8-Name", + "source": "c" + }, + { + "id": "0x5597122cb4f0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5597122cb4f0-SpecificationConstruct" + }, + { + "id": "0x5597122cb4f0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5597122cb4f0-Statement" + }, + { + "id": "0x5597122cb4f0-Statement", + "statement": "0x5597122cd5a0-TypeDeclarationStmt", + "source": "double precision, dimension(nl, nm) :: d" + }, + { + "id": "0x5597122cd5a0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5597122cd5d0-DeclarationTypeSpec", + "AttrSpec": [ + "0x5597122b49f0-AttrSpec" + ], + "EntityDecl": [ + "0x5597122cb400-EntityDecl" + ] + }, + { + "id": "0x5597122cd5d0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5597122cd5d0-IntrinsicTypeSpec" + }, + { + "id": "0x5597122cd5d0-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x5597122cd5d0-DoublePrecision" + }, + { + "id": "0x5597122cd5d0-DoublePrecision" + }, + { + "id": "0x5597122b49f0-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x5597122b49f0-ArraySpec" + }, + { + "id": "0x5597122b49f0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x5597122c7e90-ExplicitShapeSpec", + "0x5597122c7c80-ExplicitShapeSpec" + ] + }, + { + "id": "0x5597122c7e90-ExplicitShapeSpec", + "upper_bound": "0x5597122c7e90-SpecificationExpr" + }, + { + "id": "0x5597122c7e90-SpecificationExpr", + "Expr": "0x5597122cb170-Expr" + }, + { + "id": "0x5597122cb170-Expr", + "variantKey": "Designator", + "Designator": "0x5597122b8000-Designator" + }, + { + "id": "0x5597122b8000-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122b8010-DataRef" + }, + { + "id": "0x5597122b8010-DataRef", + "variantKey": "Name", + "Name": "0x5597122b8010-Name" + }, + { + "id": "0x5597122b8010-Name", + "source": "nl" + }, + { + "id": "0x5597122c7c80-ExplicitShapeSpec", + "upper_bound": "0x5597122c7c80-SpecificationExpr" + }, + { + "id": "0x5597122c7c80-SpecificationExpr", + "Expr": "0x5597122cb310-Expr" + }, + { + "id": "0x5597122cb310-Expr", + "variantKey": "Designator", + "Designator": "0x5597122cb2b0-Designator" + }, + { + "id": "0x5597122cb2b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122cb2c0-DataRef" + }, + { + "id": "0x5597122cb2c0-DataRef", + "variantKey": "Name", + "Name": "0x5597122cb2c0-Name" + }, + { + "id": "0x5597122cb2c0-Name", + "source": "nm" + }, + { + "id": "0x5597122cb400-EntityDecl", + "Name": "0x5597122cb4b8-Name" + }, + { + "id": "0x5597122cb4b8-Name", + "source": "d" + }, + { + "id": "0x5597122b62d0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5597122b62d0-SpecificationConstruct" + }, + { + "id": "0x5597122b62d0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5597122b62d0-Statement" + }, + { + "id": "0x5597122b62d0-Statement", + "statement": "0x5597122cc610-TypeDeclarationStmt", + "source": "integer :: ni, nj, nk, nl, nm" + }, + { + "id": "0x5597122cc610-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5597122cc640-DeclarationTypeSpec", + "EntityDecl": [ + "0x5597122ce780-EntityDecl", + "0x5597122cb550-EntityDecl", + "0x5597122cb640-EntityDecl", + "0x5597122ce5a0-EntityDecl", + "0x5597122ce690-EntityDecl" + ] + }, + { + "id": "0x5597122cc640-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5597122cc640-IntrinsicTypeSpec" + }, + { + "id": "0x5597122cc640-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x5597122cc640-IntegerTypeSpec" + }, + { + "id": "0x5597122cc640-IntegerTypeSpec" + }, + { + "id": "0x5597122ce780-EntityDecl", + "Name": "0x5597122ce838-Name" + }, + { + "id": "0x5597122ce838-Name", + "source": "ni" + }, + { + "id": "0x5597122cb550-EntityDecl", + "Name": "0x5597122cb608-Name" + }, + { + "id": "0x5597122cb608-Name", + "source": "nj" + }, + { + "id": "0x5597122cb640-EntityDecl", + "Name": "0x5597122cb6f8-Name" + }, + { + "id": "0x5597122cb6f8-Name", + "source": "nk" + }, + { + "id": "0x5597122ce5a0-EntityDecl", + "Name": "0x5597122ce658-Name" + }, + { + "id": "0x5597122ce658-Name", + "source": "nl" + }, + { + "id": "0x5597122ce690-EntityDecl", + "Name": "0x5597122ce748-Name" + }, + { + "id": "0x5597122ce748-Name", + "source": "nm" + }, + { + "id": "0x5597122b7820-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5597122b7820-SpecificationConstruct" + }, + { + "id": "0x5597122b7820-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5597122b7820-Statement" + }, + { + "id": "0x5597122b7820-Statement", + "statement": "0x5597122cd400-TypeDeclarationStmt", + "source": "integer :: i, j" + }, + { + "id": "0x5597122cd400-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5597122cd430-DeclarationTypeSpec", + "EntityDecl": [ + "0x5597122ce960-EntityDecl", + "0x5597122ce870-EntityDecl" + ] + }, + { + "id": "0x5597122cd430-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5597122cd430-IntrinsicTypeSpec" + }, + { + "id": "0x5597122cd430-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x5597122cd430-IntegerTypeSpec" + }, + { + "id": "0x5597122cd430-IntegerTypeSpec" + }, + { + "id": "0x5597122ce960-EntityDecl", + "Name": "0x5597122cea18-Name" + }, + { + "id": "0x5597122cea18-Name", + "source": "i" + }, + { + "id": "0x5597122ce870-EntityDecl", + "Name": "0x5597122ce928-Name" + }, + { + "id": "0x5597122ce928-Name", + "source": "j" + }, + { + "id": "0x5597122d0bd8-ExecutionPart", + "ExecutionPartConstruct": [ + "0x5597122b56d0-ExecutionPartConstruct", + "0x5597122cc870-ExecutionPartConstruct", + "0x5597122c8bd0-ExecutionPartConstruct", + "0x5597122babf0-ExecutionPartConstruct" + ] + }, + { + "id": "0x5597122d0bd8-ExecutionPartConstruct" + }, + { + "id": "0x5597122b56d0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122b56d0-ExecutableConstruct" + }, + { + "id": "0x5597122b56d0-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x5597122c6050-DoConstruct" + }, + { + "id": "0x5597122c6050-DoConstruct", + "Statement": "0x5597122c60a8-Statement", + "ExecutionPartConstruct": [ + "0x5597122b5240-ExecutionPartConstruct" + ], + "Statement": "0x5597122c6050-Statement" + }, + { + "id": "0x5597122c60a8-Statement", + "statement": "0x5597122c60b8-NonLabelDoStmt", + "source": "do i = 1, ni" + }, + { + "id": "0x5597122c60b8-NonLabelDoStmt", + "LoopControl": "0x5597122c60b8-LoopControl" + }, + { + "id": "0x5597122c60b8-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x5597122c60b8-LoopBounds" + }, + { + "id": "0x5597122c60b8-LoopBounds", + "var": "0x5597122c60b8-Name", + "lower": "0x5597122b6320-Expr", + "upper": "0x5597122b4a30-Expr" + }, + { + "id": "0x5597122c60b8-Name", + "source": "i" + }, + { + "id": "0x5597122b6320-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b6340-LiteralConstant" + }, + { + "id": "0x5597122b6340-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b6340-IntLiteralConstant" + }, + { + "id": "0x5597122b6340-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5597122b4a30-Expr", + "variantKey": "Designator", + "Designator": "0x5597122cd620-Designator" + }, + { + "id": "0x5597122cd620-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122cd630-DataRef" + }, + { + "id": "0x5597122cd630-DataRef", + "variantKey": "Name", + "Name": "0x5597122cd630-Name" + }, + { + "id": "0x5597122cd630-Name", + "source": "ni" + }, + { + "id": "0x5597122c6090-ExecutionPartConstruct" + }, + { + "id": "0x5597122b5240-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122b5240-ExecutableConstruct" + }, + { + "id": "0x5597122b5240-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x559712259780-DoConstruct" + }, + { + "id": "0x559712259780-DoConstruct", + "Statement": "0x5597122597d8-Statement", + "ExecutionPartConstruct": [ + "0x5597122c8160-ExecutionPartConstruct" + ], + "Statement": "0x559712259780-Statement" + }, + { + "id": "0x5597122597d8-Statement", + "statement": "0x5597122597e8-NonLabelDoStmt", + "source": "do j = 1, nk" + }, + { + "id": "0x5597122597e8-NonLabelDoStmt", + "LoopControl": "0x5597122597e8-LoopControl" + }, + { + "id": "0x5597122597e8-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x5597122597e8-LoopBounds" + }, + { + "id": "0x5597122597e8-LoopBounds", + "var": "0x5597122597e8-Name", + "lower": "0x5597122b0210-Expr", + "upper": "0x5597122afdf0-Expr" + }, + { + "id": "0x5597122597e8-Name", + "source": "j" + }, + { + "id": "0x5597122b0210-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b0230-LiteralConstant" + }, + { + "id": "0x5597122b0230-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b0230-IntLiteralConstant" + }, + { + "id": "0x5597122b0230-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5597122afdf0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122b40b0-Designator" + }, + { + "id": "0x5597122b40b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122b40c0-DataRef" + }, + { + "id": "0x5597122b40c0-DataRef", + "variantKey": "Name", + "Name": "0x5597122b40c0-Name" + }, + { + "id": "0x5597122b40c0-Name", + "source": "nk" + }, + { + "id": "0x5597122597c0-ExecutionPartConstruct" + }, + { + "id": "0x5597122c8160-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122c8160-ExecutableConstruct" + }, + { + "id": "0x5597122c8160-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122c8160-Statement" + }, + { + "id": "0x5597122c8160-Statement", + "statement": "0x5597122c8170-ActionStmt", + "source": "a(j, i) = dble(i - 1) * dble(j - 1) / ni" + }, + { + "id": "0x5597122c8170-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x5597122cb820-AssignmentStmt" + }, + { + "id": "0x5597122cb820-AssignmentStmt", + "Variable": "0x5597122cb900-Variable", + "Expr": "0x5597122cb830-Expr" + }, + { + "id": "0x5597122cb900-Variable", + "variantKey": "Designator", + "Designator": "0x5597122c1510-Designator" + }, + { + "id": "0x5597122c1510-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122c1520-DataRef" + }, + { + "id": "0x5597122c1520-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x5597122e45a0-ArrayElement" + }, + { + "id": "0x5597122e45a0-ArrayElement", + "base": "0x5597122e45a0-DataRef", + "subscripts": [ + "0x5597122c11d0-SectionSubscript", + "0x5597122f9830-SectionSubscript" + ] + }, + { + "id": "0x5597122e45a0-DataRef", + "variantKey": "Name", + "Name": "0x5597122e45a0-Name" + }, + { + "id": "0x5597122e45a0-Name", + "source": "a" + }, + { + "id": "0x5597122c11d0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x559712306ac0-Expr" + }, + { + "id": "0x559712306ac0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122c17f0-Designator" + }, + { + "id": "0x5597122c17f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122c1800-DataRef" + }, + { + "id": "0x5597122c1800-DataRef", + "variantKey": "Name", + "Name": "0x5597122c1800-Name" + }, + { + "id": "0x5597122c1800-Name", + "source": "j" + }, + { + "id": "0x5597122f9830-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122e2500-Expr" + }, + { + "id": "0x5597122e2500-Expr", + "variantKey": "Designator", + "Designator": "0x5597122af870-Designator" + }, + { + "id": "0x5597122af870-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122af880-DataRef" + }, + { + "id": "0x5597122af880-DataRef", + "variantKey": "Name", + "Name": "0x5597122af880-Name" + }, + { + "id": "0x5597122af880-Name", + "source": "i" + }, + { + "id": "0x5597122cb830-Expr", + "variantKey": "Divide", + "Divide": "0x5597122cb850-Divide" + }, + { + "id": "0x5597122cb850-Divide", + "left": "0x5597122c7f90-Expr", + "right": "0x5597122b4cc0-Expr", + "op": "DIVIDE" + }, + { + "id": "0x5597122c7f90-Expr", + "variantKey": "Multiply", + "Multiply": "0x5597122c7fb0-Multiply" + }, + { + "id": "0x5597122c7fb0-Multiply", + "left": "0x5597122ccc70-Expr", + "right": "0x5597122c7d10-Expr", + "op": "MULTIPLY" + }, + { + "id": "0x5597122ccc70-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x5597122cbb50-FunctionReference" + }, + { + "id": "0x5597122cbb50-FunctionReference", + "Call": "0x5597122cbb50-Call" + }, + { + "id": "0x5597122cbb50-Call", + "ProcedureDesignator": "0x5597122cbb68-ProcedureDesignator", + "ActualArgSpec": [ + "0x5597122cc1e0-ActualArgSpec" + ] + }, + { + "id": "0x5597122cbb68-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x5597122cbb68-Name" + }, + { + "id": "0x5597122cbb68-Name", + "source": "dble" + }, + { + "id": "0x5597122cc1e0-ActualArgSpec", + "ActualArg": "0x5597122cc1e0-ActualArg" + }, + { + "id": "0x5597122cc1e0-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122b8550-Expr" + }, + { + "id": "0x5597122b8550-Expr", + "variantKey": "Subtract", + "Subtract": "0x5597122b8570-Subtract" + }, + { + "id": "0x5597122b8570-Subtract", + "left": "0x5597122cd8c0-Expr", + "right": "0x5597122c8330-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x5597122cd8c0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122c7c10-Designator" + }, + { + "id": "0x5597122c7c10-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122c7c20-DataRef" + }, + { + "id": "0x5597122c7c20-DataRef", + "variantKey": "Name", + "Name": "0x5597122c7c20-Name" + }, + { + "id": "0x5597122c7c20-Name", + "source": "i" + }, + { + "id": "0x5597122c8330-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122c8350-LiteralConstant" + }, + { + "id": "0x5597122c8350-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122c8350-IntLiteralConstant" + }, + { + "id": "0x5597122c8350-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5597122c7d10-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x5597122c9440-FunctionReference" + }, + { + "id": "0x5597122c9440-FunctionReference", + "Call": "0x5597122c9440-Call" + }, + { + "id": "0x5597122c9440-Call", + "ProcedureDesignator": "0x5597122c9458-ProcedureDesignator", + "ActualArgSpec": [ + "0x5597122cc510-ActualArgSpec" + ] + }, + { + "id": "0x5597122c9458-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x5597122c9458-Name" + }, + { + "id": "0x5597122c9458-Name", + "source": "dble" + }, + { + "id": "0x5597122cc510-ActualArgSpec", + "ActualArg": "0x5597122cc510-ActualArg" + }, + { + "id": "0x5597122cc510-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122b7eb0-Expr" + }, + { + "id": "0x5597122b7eb0-Expr", + "variantKey": "Subtract", + "Subtract": "0x5597122b7ed0-Subtract" + }, + { + "id": "0x5597122b7ed0-Subtract", + "left": "0x5597122b8140-Expr", + "right": "0x5597122b8060-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x5597122b8140-Expr", + "variantKey": "Designator", + "Designator": "0x5597122b5950-Designator" + }, + { + "id": "0x5597122b5950-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122b5960-DataRef" + }, + { + "id": "0x5597122b5960-DataRef", + "variantKey": "Name", + "Name": "0x5597122b5960-Name" + }, + { + "id": "0x5597122b5960-Name", + "source": "j" + }, + { + "id": "0x5597122b8060-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b8080-LiteralConstant" + }, + { + "id": "0x5597122b8080-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b8080-IntLiteralConstant" + }, + { + "id": "0x5597122b8080-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5597122b4cc0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122b4bf0-Designator" + }, + { + "id": "0x5597122b4bf0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122b4c00-DataRef" + }, + { + "id": "0x5597122b4c00-DataRef", + "variantKey": "Name", + "Name": "0x5597122b4c00-Name" + }, + { + "id": "0x5597122b4c00-Name", + "source": "ni" + }, + { + "id": "0x559712259780-Statement", + "statement": "0x559712259790-EndDoStmt", + "source": "end do" + }, + { + "id": "0x559712259790-EndDoStmt" + }, + { + "id": "0x5597122c6050-Statement", + "statement": "0x5597122c6060-EndDoStmt", + "source": "end do" + }, + { + "id": "0x5597122c6060-EndDoStmt" + }, + { + "id": "0x5597122cc870-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122cc870-ExecutableConstruct" + }, + { + "id": "0x5597122cc870-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x5597122b9dc0-DoConstruct" + }, + { + "id": "0x5597122b9dc0-DoConstruct", + "Statement": "0x5597122b9e18-Statement", + "ExecutionPartConstruct": [ + "0x5597122cc810-ExecutionPartConstruct" + ], + "Statement": "0x5597122b9dc0-Statement" + }, + { + "id": "0x5597122b9e18-Statement", + "statement": "0x5597122b9e28-NonLabelDoStmt", + "source": "do i = 1, nk" + }, + { + "id": "0x5597122b9e28-NonLabelDoStmt", + "LoopControl": "0x5597122b9e28-LoopControl" + }, + { + "id": "0x5597122b9e28-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x5597122b9e28-LoopBounds" + }, + { + "id": "0x5597122b9e28-LoopBounds", + "var": "0x5597122b9e28-Name", + "lower": "0x5597122c6170-Expr", + "upper": "0x5597122ce0d0-Expr" + }, + { + "id": "0x5597122b9e28-Name", + "source": "i" + }, + { + "id": "0x5597122c6170-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122c6190-LiteralConstant" + }, + { + "id": "0x5597122c6190-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122c6190-IntLiteralConstant" + }, + { + "id": "0x5597122c6190-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5597122ce0d0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122ccd50-Designator" + }, + { + "id": "0x5597122ccd50-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122ccd60-DataRef" + }, + { + "id": "0x5597122ccd60-DataRef", + "variantKey": "Name", + "Name": "0x5597122ccd60-Name" + }, + { + "id": "0x5597122ccd60-Name", + "source": "nk" + }, + { + "id": "0x5597122b9e00-ExecutionPartConstruct" + }, + { + "id": "0x5597122cc810-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122cc810-ExecutableConstruct" + }, + { + "id": "0x5597122cc810-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x5597122b9ca0-DoConstruct" + }, + { + "id": "0x5597122b9ca0-DoConstruct", + "Statement": "0x5597122b9cf8-Statement", + "ExecutionPartConstruct": [ + "0x5597122b9c50-ExecutionPartConstruct" + ], + "Statement": "0x5597122b9ca0-Statement" + }, + { + "id": "0x5597122b9cf8-Statement", + "statement": "0x5597122b9d08-NonLabelDoStmt", + "source": "do j = 1, nj" + }, + { + "id": "0x5597122b9d08-NonLabelDoStmt", + "LoopControl": "0x5597122b9d08-LoopControl" + }, + { + "id": "0x5597122b9d08-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x5597122b9d08-LoopBounds" + }, + { + "id": "0x5597122b9d08-LoopBounds", + "var": "0x5597122b9d08-Name", + "lower": "0x5597122ce1b0-Expr", + "upper": "0x5597122ce290-Expr" + }, + { + "id": "0x5597122b9d08-Name", + "source": "j" + }, + { + "id": "0x5597122ce1b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122ce1d0-LiteralConstant" + }, + { + "id": "0x5597122ce1d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122ce1d0-IntLiteralConstant" + }, + { + "id": "0x5597122ce1d0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5597122ce290-Expr", + "variantKey": "Designator", + "Designator": "0x5597122af630-Designator" + }, + { + "id": "0x5597122af630-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122af640-DataRef" + }, + { + "id": "0x5597122af640-DataRef", + "variantKey": "Name", + "Name": "0x5597122af640-Name" + }, + { + "id": "0x5597122af640-Name", + "source": "nj" + }, + { + "id": "0x5597122b9ce0-ExecutionPartConstruct" + }, + { + "id": "0x5597122b9c50-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122b9c50-ExecutableConstruct" + }, + { + "id": "0x5597122b9c50-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122b9c50-Statement" + }, + { + "id": "0x5597122b9c50-Statement", + "statement": "0x5597122b9c60-ActionStmt", + "source": "b(j, i) =(dble(i - 1) * dble(j))/ nj" + }, + { + "id": "0x5597122b9c60-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x5597122b9ac0-AssignmentStmt" + }, + { + "id": "0x5597122b9ac0-AssignmentStmt", + "Variable": "0x5597122b9ba0-Variable", + "Expr": "0x5597122b9ad0-Expr" + }, + { + "id": "0x5597122b9ba0-Variable", + "variantKey": "Designator", + "Designator": "0x5597122ebb10-Designator" + }, + { + "id": "0x5597122ebb10-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122ebb20-DataRef" + }, + { + "id": "0x5597122ebb20-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x5597122e3b30-ArrayElement" + }, + { + "id": "0x5597122e3b30-ArrayElement", + "base": "0x5597122e3b30-DataRef", + "subscripts": [ + "0x55971238a220-SectionSubscript", + "0x55971238a270-SectionSubscript" + ] + }, + { + "id": "0x5597122e3b30-DataRef", + "variantKey": "Name", + "Name": "0x5597122e3b30-Name" + }, + { + "id": "0x5597122e3b30-Name", + "source": "b" + }, + { + "id": "0x55971238a220-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122c5e00-Expr" + }, + { + "id": "0x5597122c5e00-Expr", + "variantKey": "Designator", + "Designator": "0x5597122b6220-Designator" + }, + { + "id": "0x5597122b6220-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122b6230-DataRef" + }, + { + "id": "0x5597122b6230-DataRef", + "variantKey": "Name", + "Name": "0x5597122b6230-Name" + }, + { + "id": "0x5597122b6230-Name", + "source": "j" + }, + { + "id": "0x55971238a270-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122ab040-Expr" + }, + { + "id": "0x5597122ab040-Expr", + "variantKey": "Designator", + "Designator": "0x5597122c7f10-Designator" + }, + { + "id": "0x5597122c7f10-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122c7f20-DataRef" + }, + { + "id": "0x5597122c7f20-DataRef", + "variantKey": "Name", + "Name": "0x5597122c7f20-Name" + }, + { + "id": "0x5597122c7f20-Name", + "source": "i" + }, + { + "id": "0x5597122b9ad0-Expr", + "variantKey": "Divide", + "Divide": "0x5597122b9af0-Divide" + }, + { + "id": "0x5597122b9af0-Divide", + "left": "0x5597122b9970-Expr", + "right": "0x5597122c2c70-Expr", + "op": "DIVIDE" + }, + { + "id": "0x5597122b9970-Expr", + "variantKey": "Parentheses", + "Parentheses": "0x5597122b9990-Parentheses" + }, + { + "id": "0x5597122b9990-Parentheses", + "Expr": "0x5597122c27d0-Expr", + "op": "PARENTHESES" + }, + { + "id": "0x5597122c27d0-Expr", + "variantKey": "Multiply", + "Multiply": "0x5597122c27f0-Multiply" + }, + { + "id": "0x5597122c27f0-Multiply", + "left": "0x5597122c26f0-Expr", + "right": "0x5597122b9840-Expr", + "op": "MULTIPLY" + }, + { + "id": "0x5597122c26f0-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x5597122c7ca0-FunctionReference" + }, + { + "id": "0x5597122c7ca0-FunctionReference", + "Call": "0x5597122c7ca0-Call" + }, + { + "id": "0x5597122c7ca0-Call", + "ProcedureDesignator": "0x5597122c7cb8-ProcedureDesignator", + "ActualArgSpec": [ + "0x5597122cc6a0-ActualArgSpec" + ] + }, + { + "id": "0x5597122c7cb8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x5597122c7cb8-Name" + }, + { + "id": "0x5597122c7cb8-Name", + "source": "dble" + }, + { + "id": "0x5597122cc6a0-ActualArgSpec", + "ActualArg": "0x5597122cc6a0-ActualArg" + }, + { + "id": "0x5597122cc6a0-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122cbe70-Expr" + }, + { + "id": "0x5597122cbe70-Expr", + "variantKey": "Subtract", + "Subtract": "0x5597122cbe90-Subtract" + }, + { + "id": "0x5597122cbe90-Subtract", + "left": "0x5597122cc030-Expr", + "right": "0x5597122cbf50-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x5597122cc030-Expr", + "variantKey": "Designator", + "Designator": "0x5597122c77f0-Designator" + }, + { + "id": "0x5597122c77f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122c7800-DataRef" + }, + { + "id": "0x5597122c7800-DataRef", + "variantKey": "Name", + "Name": "0x5597122c7800-Name" + }, + { + "id": "0x5597122c7800-Name", + "source": "i" + }, + { + "id": "0x5597122cbf50-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122cbf70-LiteralConstant" + }, + { + "id": "0x5597122cbf70-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122cbf70-IntLiteralConstant" + }, + { + "id": "0x5597122cbf70-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5597122b9840-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x5597122c92f0-FunctionReference" + }, + { + "id": "0x5597122c92f0-FunctionReference", + "Call": "0x5597122c92f0-Call" + }, + { + "id": "0x5597122c92f0-Call", + "ProcedureDesignator": "0x5597122c9308-ProcedureDesignator", + "ActualArgSpec": [ + "0x5597122cca70-ActualArgSpec" + ] + }, + { + "id": "0x5597122c9308-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x5597122c9308-Name" + }, + { + "id": "0x5597122c9308-Name", + "source": "dble" + }, + { + "id": "0x5597122cca70-ActualArgSpec", + "ActualArg": "0x5597122cca70-ActualArg" + }, + { + "id": "0x5597122cca70-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122cc920-Expr" + }, + { + "id": "0x5597122cc920-Expr", + "variantKey": "Designator", + "Designator": "0x5597122cc8c0-Designator" + }, + { + "id": "0x5597122cc8c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122cc8d0-DataRef" + }, + { + "id": "0x5597122cc8d0-DataRef", + "variantKey": "Name", + "Name": "0x5597122cc8d0-Name" + }, + { + "id": "0x5597122cc8d0-Name", + "source": "j" + }, + { + "id": "0x5597122c2c70-Expr", + "variantKey": "Designator", + "Designator": "0x5597122c2ba0-Designator" + }, + { + "id": "0x5597122c2ba0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122c2bb0-DataRef" + }, + { + "id": "0x5597122c2bb0-DataRef", + "variantKey": "Name", + "Name": "0x5597122c2bb0-Name" + }, + { + "id": "0x5597122c2bb0-Name", + "source": "nj" + }, + { + "id": "0x5597122b9ca0-Statement", + "statement": "0x5597122b9cb0-EndDoStmt", + "source": "end do" + }, + { + "id": "0x5597122b9cb0-EndDoStmt" + }, + { + "id": "0x5597122b9dc0-Statement", + "statement": "0x5597122b9dd0-EndDoStmt", + "source": "end do" + }, + { + "id": "0x5597122b9dd0-EndDoStmt" + }, + { + "id": "0x5597122c8bd0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122c8bd0-ExecutableConstruct" + }, + { + "id": "0x5597122c8bd0-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x5597122c6b80-DoConstruct" + }, + { + "id": "0x5597122c6b80-DoConstruct", + "Statement": "0x5597122c6bd8-Statement", + "ExecutionPartConstruct": [ + "0x5597122c8b10-ExecutionPartConstruct" + ], + "Statement": "0x5597122c6b80-Statement" + }, + { + "id": "0x5597122c6bd8-Statement", + "statement": "0x5597122c6be8-NonLabelDoStmt", + "source": "do i = 1, nj" + }, + { + "id": "0x5597122c6be8-NonLabelDoStmt", + "LoopControl": "0x5597122c6be8-LoopControl" + }, + { + "id": "0x5597122c6be8-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x5597122c6be8-LoopBounds" + }, + { + "id": "0x5597122c6be8-LoopBounds", + "var": "0x5597122c6be8-Name", + "lower": "0x5597122b9ee0-Expr", + "upper": "0x5597122b8dd0-Expr" + }, + { + "id": "0x5597122c6be8-Name", + "source": "i" + }, + { + "id": "0x5597122b9ee0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b9f00-LiteralConstant" + }, + { + "id": "0x5597122b9f00-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b9f00-IntLiteralConstant" + }, + { + "id": "0x5597122b9f00-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5597122b8dd0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122c28b0-Designator" + }, + { + "id": "0x5597122c28b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122c28c0-DataRef" + }, + { + "id": "0x5597122c28c0-DataRef", + "variantKey": "Name", + "Name": "0x5597122c28c0-Name" + }, + { + "id": "0x5597122c28c0-Name", + "source": "nj" + }, + { + "id": "0x5597122c6bc0-ExecutionPartConstruct" + }, + { + "id": "0x5597122c8b10-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122c8b10-ExecutableConstruct" + }, + { + "id": "0x5597122c8b10-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x5597122c6a60-DoConstruct" + }, + { + "id": "0x5597122c6a60-DoConstruct", + "Statement": "0x5597122c6ab8-Statement", + "ExecutionPartConstruct": [ + "0x5597122c6a10-ExecutionPartConstruct" + ], + "Statement": "0x5597122c6a60-Statement" + }, + { + "id": "0x5597122c6ab8-Statement", + "statement": "0x5597122c6ac8-NonLabelDoStmt", + "source": "do j = 1, nm" + }, + { + "id": "0x5597122c6ac8-NonLabelDoStmt", + "LoopControl": "0x5597122c6ac8-LoopControl" + }, + { + "id": "0x5597122c6ac8-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x5597122c6ac8-LoopBounds" + }, + { + "id": "0x5597122c6ac8-LoopBounds", + "var": "0x5597122c6ac8-Name", + "lower": "0x5597122b8eb0-Expr", + "upper": "0x5597122b8f90-Expr" + }, + { + "id": "0x5597122c6ac8-Name", + "source": "j" + }, + { + "id": "0x5597122b8eb0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122b8ed0-LiteralConstant" + }, + { + "id": "0x5597122b8ed0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122b8ed0-IntLiteralConstant" + }, + { + "id": "0x5597122b8ed0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5597122b8f90-Expr", + "variantKey": "Designator", + "Designator": "0x5597122cb250-Designator" + }, + { + "id": "0x5597122cb250-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122cb260-DataRef" + }, + { + "id": "0x5597122cb260-DataRef", + "variantKey": "Name", + "Name": "0x5597122cb260-Name" + }, + { + "id": "0x5597122cb260-Name", + "source": "nm" + }, + { + "id": "0x5597122c6aa0-ExecutionPartConstruct" + }, + { + "id": "0x5597122c6a10-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122c6a10-ExecutableConstruct" + }, + { + "id": "0x5597122c6a10-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122c6a10-Statement" + }, + { + "id": "0x5597122c6a10-Statement", + "statement": "0x5597122c6a20-ActionStmt", + "source": "c(j, i) =(dble(i - 1) * dble(j + 2))/ nl" + }, + { + "id": "0x5597122c6a20-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x5597122c6880-AssignmentStmt" + }, + { + "id": "0x5597122c6880-AssignmentStmt", + "Variable": "0x5597122c6960-Variable", + "Expr": "0x5597122c6890-Expr" + }, + { + "id": "0x5597122c6960-Variable", + "variantKey": "Designator", + "Designator": "0x5597122f1dd0-Designator" + }, + { + "id": "0x5597122f1dd0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122f1de0-DataRef" + }, + { + "id": "0x5597122f1de0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x5597122c1680-ArrayElement" + }, + { + "id": "0x5597122c1680-ArrayElement", + "base": "0x5597122c1680-DataRef", + "subscripts": [ + "0x55971238a2c0-SectionSubscript", + "0x55971238a310-SectionSubscript" + ] + }, + { + "id": "0x5597122c1680-DataRef", + "variantKey": "Name", + "Name": "0x5597122c1680-Name" + }, + { + "id": "0x5597122c1680-Name", + "source": "c" + }, + { + "id": "0x55971238a2c0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122b9570-Expr" + }, + { + "id": "0x5597122b9570-Expr", + "variantKey": "Designator", + "Designator": "0x5597122cbe10-Designator" + }, + { + "id": "0x5597122cbe10-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122cbe20-DataRef" + }, + { + "id": "0x5597122cbe20-DataRef", + "variantKey": "Name", + "Name": "0x5597122cbe20-Name" + }, + { + "id": "0x5597122cbe20-Name", + "source": "j" + }, + { + "id": "0x55971238a310-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122b9650-Expr" + }, + { + "id": "0x5597122b9650-Expr", + "variantKey": "Designator", + "Designator": "0x5597122c7a30-Designator" + }, + { + "id": "0x5597122c7a30-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122c7a40-DataRef" + }, + { + "id": "0x5597122c7a40-DataRef", + "variantKey": "Name", + "Name": "0x5597122c7a40-Name" + }, + { + "id": "0x5597122c7a40-Name", + "source": "i" + }, + { + "id": "0x5597122c6890-Expr", + "variantKey": "Divide", + "Divide": "0x5597122c68b0-Divide" + }, + { + "id": "0x5597122c68b0-Divide", + "left": "0x5597122baa30-Expr", + "right": "0x5597122ba950-Expr", + "op": "DIVIDE" + }, + { + "id": "0x5597122baa30-Expr", + "variantKey": "Parentheses", + "Parentheses": "0x5597122baa50-Parentheses" + }, + { + "id": "0x5597122baa50-Parentheses", + "Expr": "0x5597122ba520-Expr", + "op": "PARENTHESES" + }, + { + "id": "0x5597122ba520-Expr", + "variantKey": "Multiply", + "Multiply": "0x5597122ba540-Multiply" + }, + { + "id": "0x5597122ba540-Multiply", + "left": "0x5597122ba440-Expr", + "right": "0x5597122ba360-Expr", + "op": "MULTIPLY" + }, + { + "id": "0x5597122ba440-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x5597122c9510-FunctionReference" + }, + { + "id": "0x5597122c9510-FunctionReference", + "Call": "0x5597122c9510-Call" + }, + { + "id": "0x5597122c9510-Call", + "ProcedureDesignator": "0x5597122c9528-ProcedureDesignator", + "ActualArgSpec": [ + "0x5597122c8940-ActualArgSpec" + ] + }, + { + "id": "0x5597122c9528-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x5597122c9528-Name" + }, + { + "id": "0x5597122c9528-Name", + "source": "dble" + }, + { + "id": "0x5597122c8940-ActualArgSpec", + "ActualArg": "0x5597122c8940-ActualArg" + }, + { + "id": "0x5597122c8940-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122c8630-Expr" + }, + { + "id": "0x5597122c8630-Expr", + "variantKey": "Subtract", + "Subtract": "0x5597122c8650-Subtract" + }, + { + "id": "0x5597122c8650-Subtract", + "left": "0x5597122c87f0-Expr", + "right": "0x5597122c8710-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x5597122c87f0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122c2980-Designator" + }, + { + "id": "0x5597122c2980-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122c2990-DataRef" + }, + { + "id": "0x5597122c2990-DataRef", + "variantKey": "Name", + "Name": "0x5597122c2990-Name" + }, + { + "id": "0x5597122c2990-Name", + "source": "i" + }, + { + "id": "0x5597122c8710-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122c8730-LiteralConstant" + }, + { + "id": "0x5597122c8730-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122c8730-IntLiteralConstant" + }, + { + "id": "0x5597122c8730-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5597122ba360-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x5597122ccdb0-FunctionReference" + }, + { + "id": "0x5597122ccdb0-FunctionReference", + "Call": "0x5597122ccdb0-Call" + }, + { + "id": "0x5597122ccdb0-Call", + "ProcedureDesignator": "0x5597122ccdc8-ProcedureDesignator", + "ActualArgSpec": [ + "0x5597122ba260-ActualArgSpec" + ] + }, + { + "id": "0x5597122ccdc8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x5597122ccdc8-Name" + }, + { + "id": "0x5597122ccdc8-Name", + "source": "dble" + }, + { + "id": "0x5597122ba260-ActualArgSpec", + "ActualArg": "0x5597122ba260-ActualArg" + }, + { + "id": "0x5597122ba260-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122c8c20-Expr" + }, + { + "id": "0x5597122c8c20-Expr", + "variantKey": "Add", + "Add": "0x5597122c8c40-Add" + }, + { + "id": "0x5597122c8c40-Add", + "left": "0x5597122c8de0-Expr", + "right": "0x5597122c8d00-Expr", + "op": "ADD" + }, + { + "id": "0x5597122c8de0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122c8b60-Designator" + }, + { + "id": "0x5597122c8b60-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122c8b70-DataRef" + }, + { + "id": "0x5597122c8b70-DataRef", + "variantKey": "Name", + "Name": "0x5597122c8b70-Name" + }, + { + "id": "0x5597122c8b70-Name", + "source": "j" + }, + { + "id": "0x5597122c8d00-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122c8d20-LiteralConstant" + }, + { + "id": "0x5597122c8d20-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122c8d20-IntLiteralConstant" + }, + { + "id": "0x5597122c8d20-IntLiteralConstant", + "CharBlock": "2" + }, + { + "id": "0x5597122ba950-Expr", + "variantKey": "Designator", + "Designator": "0x5597122ba880-Designator" + }, + { + "id": "0x5597122ba880-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122ba890-DataRef" + }, + { + "id": "0x5597122ba890-DataRef", + "variantKey": "Name", + "Name": "0x5597122ba890-Name" + }, + { + "id": "0x5597122ba890-Name", + "source": "nl" + }, + { + "id": "0x5597122c6a60-Statement", + "statement": "0x5597122c6a70-EndDoStmt", + "source": "end do" + }, + { + "id": "0x5597122c6a70-EndDoStmt" + }, + { + "id": "0x5597122c6b80-Statement", + "statement": "0x5597122c6b90-EndDoStmt", + "source": "end do" + }, + { + "id": "0x5597122c6b90-EndDoStmt" + }, + { + "id": "0x5597122babf0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122babf0-ExecutableConstruct" + }, + { + "id": "0x5597122babf0-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x5597122cf8c0-DoConstruct" + }, + { + "id": "0x5597122cf8c0-DoConstruct", + "Statement": "0x5597122cf918-Statement", + "ExecutionPartConstruct": [ + "0x5597122c8f90-ExecutionPartConstruct" + ], + "Statement": "0x5597122cf8c0-Statement" + }, + { + "id": "0x5597122cf918-Statement", + "statement": "0x5597122cf928-NonLabelDoStmt", + "source": "do i = 1, nm" + }, + { + "id": "0x5597122cf928-NonLabelDoStmt", + "LoopControl": "0x5597122cf928-LoopControl" + }, + { + "id": "0x5597122cf928-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x5597122cf928-LoopBounds" + }, + { + "id": "0x5597122cf928-LoopBounds", + "var": "0x5597122cf928-Name", + "lower": "0x5597122c6ca0-Expr", + "upper": "0x5597122c6d80-Expr" + }, + { + "id": "0x5597122cf928-Name", + "source": "i" + }, + { + "id": "0x5597122c6ca0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122c6cc0-LiteralConstant" + }, + { + "id": "0x5597122c6cc0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122c6cc0-IntLiteralConstant" + }, + { + "id": "0x5597122c6cc0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5597122c6d80-Expr", + "variantKey": "Designator", + "Designator": "0x5597122ba600-Designator" + }, + { + "id": "0x5597122ba600-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122ba610-DataRef" + }, + { + "id": "0x5597122ba610-DataRef", + "variantKey": "Name", + "Name": "0x5597122ba610-Name" + }, + { + "id": "0x5597122ba610-Name", + "source": "nm" + }, + { + "id": "0x5597122cf900-ExecutionPartConstruct" + }, + { + "id": "0x5597122c8f90-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122c8f90-ExecutableConstruct" + }, + { + "id": "0x5597122c8f90-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x5597122cf7a0-DoConstruct" + }, + { + "id": "0x5597122cf7a0-DoConstruct", + "Statement": "0x5597122cf7f8-Statement", + "ExecutionPartConstruct": [ + "0x5597122cf750-ExecutionPartConstruct" + ], + "Statement": "0x5597122cf7a0-Statement" + }, + { + "id": "0x5597122cf7f8-Statement", + "statement": "0x5597122cf808-NonLabelDoStmt", + "source": "do j = 1, nl" + }, + { + "id": "0x5597122cf808-NonLabelDoStmt", + "LoopControl": "0x5597122cf808-LoopControl" + }, + { + "id": "0x5597122cf808-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x5597122cf808-LoopBounds" + }, + { + "id": "0x5597122cf808-LoopBounds", + "var": "0x5597122cf808-Name", + "lower": "0x5597122c6e60-Expr", + "upper": "0x5597122c6f40-Expr" + }, + { + "id": "0x5597122cf808-Name", + "source": "j" + }, + { + "id": "0x5597122c6e60-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122c6e80-LiteralConstant" + }, + { + "id": "0x5597122c6e80-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122c6e80-IntLiteralConstant" + }, + { + "id": "0x5597122c6e80-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5597122c6f40-Expr", + "variantKey": "Designator", + "Designator": "0x5597122afa30-Designator" + }, + { + "id": "0x5597122afa30-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122afa40-DataRef" + }, + { + "id": "0x5597122afa40-DataRef", + "variantKey": "Name", + "Name": "0x5597122afa40-Name" + }, + { + "id": "0x5597122afa40-Name", + "source": "nl" + }, + { + "id": "0x5597122cf7e0-ExecutionPartConstruct" + }, + { + "id": "0x5597122cf750-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122cf750-ExecutableConstruct" + }, + { + "id": "0x5597122cf750-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122cf750-Statement" + }, + { + "id": "0x5597122cf750-Statement", + "statement": "0x5597122cf760-ActionStmt", + "source": "d(j, i) =(dble(i - 1) * dble(j + 1))/ nk" + }, + { + "id": "0x5597122cf760-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x5597122cf5c0-AssignmentStmt" + }, + { + "id": "0x5597122cf5c0-AssignmentStmt", + "Variable": "0x5597122cf6a0-Variable", + "Expr": "0x5597122cf5d0-Expr" + }, + { + "id": "0x5597122cf6a0-Variable", + "variantKey": "Designator", + "Designator": "0x5597122c1620-Designator" + }, + { + "id": "0x5597122c1620-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122c1630-DataRef" + }, + { + "id": "0x5597122c1630-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x5597122e0280-ArrayElement" + }, + { + "id": "0x5597122e0280-ArrayElement", + "base": "0x5597122e0280-DataRef", + "subscripts": [ + "0x55971238a360-SectionSubscript", + "0x5597122f9e20-SectionSubscript" + ] + }, + { + "id": "0x5597122e0280-DataRef", + "variantKey": "Name", + "Name": "0x5597122e0280-Name" + }, + { + "id": "0x5597122e0280-Name", + "source": "d" + }, + { + "id": "0x55971238a360-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122b9070-Expr" + }, + { + "id": "0x5597122b9070-Expr", + "variantKey": "Designator", + "Designator": "0x5597122bacc0-Designator" + }, + { + "id": "0x5597122bacc0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122bacd0-DataRef" + }, + { + "id": "0x5597122bacd0-DataRef", + "variantKey": "Name", + "Name": "0x5597122bacd0-Name" + }, + { + "id": "0x5597122bacd0-Name", + "source": "j" + }, + { + "id": "0x5597122f9e20-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122b9150-Expr" + }, + { + "id": "0x5597122b9150-Expr", + "variantKey": "Designator", + "Designator": "0x5597122cda00-Designator" + }, + { + "id": "0x5597122cda00-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122cda10-DataRef" + }, + { + "id": "0x5597122cda10-DataRef", + "variantKey": "Name", + "Name": "0x5597122cda10-Name" + }, + { + "id": "0x5597122cda10-Name", + "source": "i" + }, + { + "id": "0x5597122cf5d0-Expr", + "variantKey": "Divide", + "Divide": "0x5597122cf5f0-Divide" + }, + { + "id": "0x5597122cf5f0-Divide", + "left": "0x5597122cf470-Expr", + "right": "0x5597122cf390-Expr", + "op": "DIVIDE" + }, + { + "id": "0x5597122cf470-Expr", + "variantKey": "Parentheses", + "Parentheses": "0x5597122cf490-Parentheses" + }, + { + "id": "0x5597122cf490-Parentheses", + "Expr": "0x5597122cf120-Expr", + "op": "PARENTHESES" + }, + { + "id": "0x5597122cf120-Expr", + "variantKey": "Multiply", + "Multiply": "0x5597122cf140-Multiply" + }, + { + "id": "0x5597122cf140-Multiply", + "left": "0x5597122cf040-Expr", + "right": "0x5597122cef60-Expr", + "op": "MULTIPLY" + }, + { + "id": "0x5597122cf040-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x5597122c2300-FunctionReference" + }, + { + "id": "0x5597122c2300-FunctionReference", + "Call": "0x5597122c2300-Call" + }, + { + "id": "0x5597122c2300-Call", + "ProcedureDesignator": "0x5597122c2318-ProcedureDesignator", + "ActualArgSpec": [ + "0x5597122cea50-ActualArgSpec" + ] + }, + { + "id": "0x5597122c2318-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x5597122c2318-Name" + }, + { + "id": "0x5597122c2318-Name", + "source": "dble" + }, + { + "id": "0x5597122cea50-ActualArgSpec", + "ActualArg": "0x5597122cea50-ActualArg" + }, + { + "id": "0x5597122cea50-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122c7400-Expr" + }, + { + "id": "0x5597122c7400-Expr", + "variantKey": "Subtract", + "Subtract": "0x5597122c7420-Subtract" + }, + { + "id": "0x5597122c7420-Subtract", + "left": "0x5597122c75c0-Expr", + "right": "0x5597122c74e0-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x5597122c75c0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122ba660-Designator" + }, + { + "id": "0x5597122ba660-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122ba670-DataRef" + }, + { + "id": "0x5597122ba670-DataRef", + "variantKey": "Name", + "Name": "0x5597122ba670-Name" + }, + { + "id": "0x5597122ba670-Name", + "source": "i" + }, + { + "id": "0x5597122c74e0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122c7500-LiteralConstant" + }, + { + "id": "0x5597122c7500-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122c7500-IntLiteralConstant" + }, + { + "id": "0x5597122c7500-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5597122cef60-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x5597122b5d00-FunctionReference" + }, + { + "id": "0x5597122b5d00-FunctionReference", + "Call": "0x5597122b5d00-Call" + }, + { + "id": "0x5597122b5d00-Call", + "ProcedureDesignator": "0x5597122b5d18-ProcedureDesignator", + "ActualArgSpec": [ + "0x5597122cee60-ActualArgSpec" + ] + }, + { + "id": "0x5597122b5d18-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x5597122b5d18-Name" + }, + { + "id": "0x5597122b5d18-Name", + "source": "dble" + }, + { + "id": "0x5597122cee60-ActualArgSpec", + "ActualArg": "0x5597122cee60-ActualArg" + }, + { + "id": "0x5597122cee60-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122ceb50-Expr" + }, + { + "id": "0x5597122ceb50-Expr", + "variantKey": "Add", + "Add": "0x5597122ceb70-Add" + }, + { + "id": "0x5597122ceb70-Add", + "left": "0x5597122ced10-Expr", + "right": "0x5597122cec30-Expr", + "op": "ADD" + }, + { + "id": "0x5597122ced10-Expr", + "variantKey": "Designator", + "Designator": "0x5597122bab80-Designator" + }, + { + "id": "0x5597122bab80-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122bab90-DataRef" + }, + { + "id": "0x5597122bab90-DataRef", + "variantKey": "Name", + "Name": "0x5597122bab90-Name" + }, + { + "id": "0x5597122bab90-Name", + "source": "j" + }, + { + "id": "0x5597122cec30-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122cec50-LiteralConstant" + }, + { + "id": "0x5597122cec50-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122cec50-IntLiteralConstant" + }, + { + "id": "0x5597122cec50-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5597122cf390-Expr", + "variantKey": "Designator", + "Designator": "0x5597122cf2c0-Designator" + }, + { + "id": "0x5597122cf2c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122cf2d0-DataRef" + }, + { + "id": "0x5597122cf2d0-DataRef", + "variantKey": "Name", + "Name": "0x5597122cf2d0-Name" + }, + { + "id": "0x5597122cf2d0-Name", + "source": "nk" + }, + { + "id": "0x5597122cf7a0-Statement", + "statement": "0x5597122cf7b0-EndDoStmt", + "source": "end do" + }, + { + "id": "0x5597122cf7b0-EndDoStmt" + }, + { + "id": "0x5597122cf8c0-Statement", + "statement": "0x5597122cf8d0-EndDoStmt", + "source": "end do" + }, + { + "id": "0x5597122cf8d0-EndDoStmt" + }, + { + "id": "0x5597122d0b50-Statement", + "statement": "0x5597122d0b60-EndSubroutineStmt", + "source": "end subroutine" + }, + { + "id": "0x5597122d0b60-EndSubroutineStmt" + }, + { + "id": "0x5597122bc300-InternalSubprogram", + "variantKey": "SubroutineSubprogram", + "SubroutineSubprogram": "0x5597122d6660-SubroutineSubprogram" + }, + { + "id": "0x5597122d6660-SubroutineSubprogram", + "Statement": "0x5597122d67a8-Statement", + "SpecificationPart": "0x5597122d6700-SpecificationPart", + "ExecutionPart": "0x5597122d66e8-ExecutionPart", + "Statement": "0x5597122d6660-Statement" + }, + { + "id": "0x5597122d67a8-Statement", + "statement": "0x5597122d67b8-SubroutineStmt", + "source": "subroutine print_array(ni, nl, g)" + }, + { + "id": "0x5597122d67b8-SubroutineStmt", + "Name": "0x5597122d67f0-Name", + "DummyArg": [ + "0x5597122b8920-DummyArg", + "0x5597122b8880-DummyArg", + "0x5597122b88c0-DummyArg" + ] + }, + { + "id": "0x5597122d67f0-Name", + "source": "print_array" + }, + { + "id": "0x5597122b8920-DummyArg", + "variantKey": "Name", + "Name": "0x5597122b8920-Name" + }, + { + "id": "0x5597122b8920-Name", + "source": "ni" + }, + { + "id": "0x5597122b8880-DummyArg", + "variantKey": "Name", + "Name": "0x5597122b8880-Name" + }, + { + "id": "0x5597122b8880-Name", + "source": "nl" + }, + { + "id": "0x5597122b88c0-DummyArg", + "variantKey": "Name", + "Name": "0x5597122b88c0-Name" + }, + { + "id": "0x5597122b88c0-Name", + "source": "g" + }, + { + "id": "0x5597122d6700-SpecificationPart", + "ImplicitPart": "0x5597122d6718-ImplicitPart", + "DeclarationConstruct": [ + "0x5597122cc7b0-DeclarationConstruct", + "0x5597122b7a80-DeclarationConstruct", + "0x5597122c6260-DeclarationConstruct" + ] + }, + { + "id": "0x5597122d6718-ImplicitPart" + }, + { + "id": "0x5597122cc7b0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5597122cc7b0-SpecificationConstruct" + }, + { + "id": "0x5597122cc7b0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5597122cc7b0-Statement" + }, + { + "id": "0x5597122cc7b0-Statement", + "statement": "0x5597122af7f0-TypeDeclarationStmt", + "source": "double precision, dimension(nl, ni) :: g" + }, + { + "id": "0x5597122af7f0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5597122af820-DeclarationTypeSpec", + "AttrSpec": [ + "0x5597122b4f70-AttrSpec" + ], + "EntityDecl": [ + "0x5597122d1850-EntityDecl" + ] + }, + { + "id": "0x5597122af820-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5597122af820-IntrinsicTypeSpec" + }, + { + "id": "0x5597122af820-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x5597122af820-DoublePrecision" + }, + { + "id": "0x5597122af820-DoublePrecision" + }, + { + "id": "0x5597122b4f70-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x5597122b4f70-ArraySpec" + }, + { + "id": "0x5597122b4f70-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x5597122bac50-ExplicitShapeSpec", + "0x5597122c6810-ExplicitShapeSpec" + ] + }, + { + "id": "0x5597122bac50-ExplicitShapeSpec", + "upper_bound": "0x5597122bac50-SpecificationExpr" + }, + { + "id": "0x5597122bac50-SpecificationExpr", + "Expr": "0x5597122d1680-Expr" + }, + { + "id": "0x5597122d1680-Expr", + "variantKey": "Designator", + "Designator": "0x5597122cf200-Designator" + }, + { + "id": "0x5597122cf200-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122cf210-DataRef" + }, + { + "id": "0x5597122cf210-DataRef", + "variantKey": "Name", + "Name": "0x5597122cf210-Name" + }, + { + "id": "0x5597122cf210-Name", + "source": "nl" + }, + { + "id": "0x5597122c6810-ExplicitShapeSpec", + "upper_bound": "0x5597122c6810-SpecificationExpr" + }, + { + "id": "0x5597122c6810-SpecificationExpr", + "Expr": "0x5597122d1760-Expr" + }, + { + "id": "0x5597122d1760-Expr", + "variantKey": "Designator", + "Designator": "0x5597122c8ec0-Designator" + }, + { + "id": "0x5597122c8ec0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122c8ed0-DataRef" + }, + { + "id": "0x5597122c8ed0-DataRef", + "variantKey": "Name", + "Name": "0x5597122c8ed0-Name" + }, + { + "id": "0x5597122c8ed0-Name", + "source": "ni" + }, + { + "id": "0x5597122d1850-EntityDecl", + "Name": "0x5597122d1908-Name" + }, + { + "id": "0x5597122d1908-Name", + "source": "g" + }, + { + "id": "0x5597122b7a80-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5597122b7a80-SpecificationConstruct" + }, + { + "id": "0x5597122b7a80-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5597122b7a80-Statement" + }, + { + "id": "0x5597122b7a80-Statement", + "statement": "0x5597122cd300-TypeDeclarationStmt", + "source": "integer :: ni, nl" + }, + { + "id": "0x5597122cd300-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5597122cd330-DeclarationTypeSpec", + "EntityDecl": [ + "0x5597122cfae0-EntityDecl", + "0x5597122cf9f0-EntityDecl" + ] + }, + { + "id": "0x5597122cd330-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5597122cd330-IntrinsicTypeSpec" + }, + { + "id": "0x5597122cd330-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x5597122cd330-IntegerTypeSpec" + }, + { + "id": "0x5597122cd330-IntegerTypeSpec" + }, + { + "id": "0x5597122cfae0-EntityDecl", + "Name": "0x5597122cfb98-Name" + }, + { + "id": "0x5597122cfb98-Name", + "source": "ni" + }, + { + "id": "0x5597122cf9f0-EntityDecl", + "Name": "0x5597122cfaa8-Name" + }, + { + "id": "0x5597122cfaa8-Name", + "source": "nl" + }, + { + "id": "0x5597122c6260-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5597122c6260-SpecificationConstruct" + }, + { + "id": "0x5597122c6260-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5597122c6260-Statement" + }, + { + "id": "0x5597122c6260-Statement", + "statement": "0x5597122c1e00-TypeDeclarationStmt", + "source": "integer :: i, j" + }, + { + "id": "0x5597122c1e00-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5597122c1e30-DeclarationTypeSpec", + "EntityDecl": [ + "0x5597122cfcc0-EntityDecl", + "0x5597122cfbd0-EntityDecl" + ] + }, + { + "id": "0x5597122c1e30-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5597122c1e30-IntrinsicTypeSpec" + }, + { + "id": "0x5597122c1e30-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x5597122c1e30-IntegerTypeSpec" + }, + { + "id": "0x5597122c1e30-IntegerTypeSpec" + }, + { + "id": "0x5597122cfcc0-EntityDecl", + "Name": "0x5597122cfd78-Name" + }, + { + "id": "0x5597122cfd78-Name", + "source": "i" + }, + { + "id": "0x5597122cfbd0-EntityDecl", + "Name": "0x5597122cfc88-Name" + }, + { + "id": "0x5597122cfc88-Name", + "source": "j" + }, + { + "id": "0x5597122d66e8-ExecutionPart", + "ExecutionPartConstruct": [ + "0x5597122cba90-ExecutionPartConstruct", + "0x5597122c76b0-ExecutionPartConstruct" + ] + }, + { + "id": "0x5597122d66e8-ExecutionPartConstruct" + }, + { + "id": "0x5597122cba90-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122cba90-ExecutableConstruct" + }, + { + "id": "0x5597122cba90-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x5597122d51a0-DoConstruct" + }, + { + "id": "0x5597122d51a0-DoConstruct", + "Statement": "0x5597122d51f8-Statement", + "ExecutionPartConstruct": [ + "0x5597122c88e0-ExecutionPartConstruct" + ], + "Statement": "0x5597122d51a0-Statement" + }, + { + "id": "0x5597122d51f8-Statement", + "statement": "0x5597122d5208-NonLabelDoStmt", + "source": "do i = 1, ni" + }, + { + "id": "0x5597122d5208-NonLabelDoStmt", + "LoopControl": "0x5597122d5208-LoopControl" + }, + { + "id": "0x5597122d5208-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x5597122d5208-LoopBounds" + }, + { + "id": "0x5597122d5208-LoopBounds", + "var": "0x5597122d5208-Name", + "lower": "0x5597122cfda0-Expr", + "upper": "0x5597122cfe80-Expr" + }, + { + "id": "0x5597122d5208-Name", + "source": "i" + }, + { + "id": "0x5597122cfda0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122cfdc0-LiteralConstant" + }, + { + "id": "0x5597122cfdc0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122cfdc0-IntLiteralConstant" + }, + { + "id": "0x5597122cfdc0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5597122cfe80-Expr", + "variantKey": "Designator", + "Designator": "0x5597122cca00-Designator" + }, + { + "id": "0x5597122cca00-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122cca10-DataRef" + }, + { + "id": "0x5597122cca10-DataRef", + "variantKey": "Name", + "Name": "0x5597122cca10-Name" + }, + { + "id": "0x5597122cca10-Name", + "source": "ni" + }, + { + "id": "0x5597122d51e0-ExecutionPartConstruct" + }, + { + "id": "0x5597122c88e0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122c88e0-ExecutableConstruct" + }, + { + "id": "0x5597122c88e0-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x5597122d5080-DoConstruct" + }, + { + "id": "0x5597122d5080-DoConstruct", + "Statement": "0x5597122d50d8-Statement", + "ExecutionPartConstruct": [ + "0x5597122d1e10-ExecutionPartConstruct", + "0x5597122cc120-ExecutionPartConstruct" + ], + "Statement": "0x5597122d5080-Statement" + }, + { + "id": "0x5597122d50d8-Statement", + "statement": "0x5597122d50e8-NonLabelDoStmt", + "source": "do j = 1, nl" + }, + { + "id": "0x5597122d50e8-NonLabelDoStmt", + "LoopControl": "0x5597122d50e8-LoopControl" + }, + { + "id": "0x5597122d50e8-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x5597122d50e8-LoopBounds" + }, + { + "id": "0x5597122d50e8-LoopBounds", + "var": "0x5597122d50e8-Name", + "lower": "0x5597122cff60-Expr", + "upper": "0x5597122d0040-Expr" + }, + { + "id": "0x5597122d50e8-Name", + "source": "j" + }, + { + "id": "0x5597122cff60-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122cff80-LiteralConstant" + }, + { + "id": "0x5597122cff80-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122cff80-IntLiteralConstant" + }, + { + "id": "0x5597122cff80-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5597122d0040-Expr", + "variantKey": "Designator", + "Designator": "0x5597122c8a40-Designator" + }, + { + "id": "0x5597122c8a40-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122c8a50-DataRef" + }, + { + "id": "0x5597122c8a50-DataRef", + "variantKey": "Name", + "Name": "0x5597122c8a50-Name" + }, + { + "id": "0x5597122c8a50-Name", + "source": "nl" + }, + { + "id": "0x5597122d50c0-ExecutionPartConstruct" + }, + { + "id": "0x5597122d1e10-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122d1e10-ExecutableConstruct" + }, + { + "id": "0x5597122d1e10-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122d1e10-Statement" + }, + { + "id": "0x5597122d1e10-Statement", + "statement": "0x5597122d1e20-ActionStmt", + "source": "write(0, \"(f0.2,1x)\", advance = 'no') g(j, i)" + }, + { + "id": "0x5597122d1e20-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x5597122d20e0-WriteStmt" + }, + { + "id": "0x5597122d20e0-WriteStmt", + "iounit": "0x5597122d20e0-IoUnit", + "format": "0x5597122d2110-Format", + "controls": [ + "0x5597122d0700-IoControlSpec" + ], + "items": [ + "0x5597122d2000-OutputItem" + ] + }, + { + "id": "0x5597122d20e0-IoUnit", + "variantKey": "Expr", + "Expr": "0x5597122d0120-Expr" + }, + { + "id": "0x5597122d0120-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122d0140-LiteralConstant" + }, + { + "id": "0x5597122d0140-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122d0140-IntLiteralConstant" + }, + { + "id": "0x5597122d0140-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x5597122d2110-Format", + "variantKey": "Expr", + "Expr": "0x5597122d2110-Expr" + }, + { + "id": "0x5597122d2110-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122d2130-LiteralConstant" + }, + { + "id": "0x5597122d2130-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x5597122d2130-CharLiteralConstant" + }, + { + "id": "0x5597122d2130-CharLiteralConstant", + "string": "(f0.2,1x)" + }, + { + "id": "0x5597122d0700-IoControlSpec", + "variantKey": "CharExpr", + "CharExpr": "0x5597122d0700-CharExpr" + }, + { + "id": "0x5597122d0700-CharExpr", + "Kind = Advance": "0x5597122d0708-Kind = Advance", + "Expr": "0x5597122d0200-Expr", + "kind": "Advance" + }, + { + "id": "0x5597122d0708-Kind = Advance", + "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", + "value": "Advance" + }, + { + "id": "0x5597122d0200-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122d0220-LiteralConstant" + }, + { + "id": "0x5597122d0220-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x5597122d0220-CharLiteralConstant" + }, + { + "id": "0x5597122d0220-CharLiteralConstant", + "string": "no" + }, + { + "id": "0x5597122d2000-OutputItem", + "variantKey": "Expr", + "Expr": "0x5597122d2000-Expr" + }, + { + "id": "0x5597122d2000-Expr", + "variantKey": "Designator", + "Designator": "0x5597122f0780-Designator" + }, + { + "id": "0x5597122f0780-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122f0790-DataRef" + }, + { + "id": "0x5597122f0790-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x5597122c1410-ArrayElement" + }, + { + "id": "0x5597122c1410-ArrayElement", + "base": "0x5597122c1410-DataRef", + "subscripts": [ + "0x5597122fdca0-SectionSubscript", + "0x559712391140-SectionSubscript" + ] + }, + { + "id": "0x5597122c1410-DataRef", + "variantKey": "Name", + "Name": "0x5597122c1410-Name" + }, + { + "id": "0x5597122c1410-Name", + "source": "g" + }, + { + "id": "0x5597122fdca0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122c7020-Expr" + }, + { + "id": "0x5597122c7020-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d0a70-Designator" + }, + { + "id": "0x5597122d0a70-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d0a80-DataRef" + }, + { + "id": "0x5597122d0a80-DataRef", + "variantKey": "Name", + "Name": "0x5597122d0a80-Name" + }, + { + "id": "0x5597122d0a80-Name", + "source": "j" + }, + { + "id": "0x559712391140-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122c7100-Expr" + }, + { + "id": "0x5597122c7100-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d0d30-Designator" + }, + { + "id": "0x5597122d0d30-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d0d40-DataRef" + }, + { + "id": "0x5597122d0d40-DataRef", + "variantKey": "Name", + "Name": "0x5597122d0d40-Name" + }, + { + "id": "0x5597122d0d40-Name", + "source": "i" + }, + { + "id": "0x5597122cc120-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122cc120-ExecutableConstruct" + }, + { + "id": "0x5597122cc120-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x5597122d4f60-IfConstruct" + }, + { + "id": "0x5597122d4f60-IfConstruct", + "Statement": "0x5597122d5030-Statement", + "ExecutionPartConstruct": [ + "0x5597122c8f30-ExecutionPartConstruct" + ], + "Statement": "0x5597122d4f60-Statement" + }, + { + "id": "0x5597122d5030-Statement", + "statement": "0x5597122d5040-IfThenStmt", + "source": "if(mod(((i - 1) * ni) + j - 1, 20) == 0) then" + }, + { + "id": "0x5597122d5040-IfThenStmt", + "Expr": "0x5597122d4c50-Expr" + }, + { + "id": "0x5597122d4c50-Expr", + "variantKey": "EQ", + "EQ": "0x5597122d4c70-EQ" + }, + { + "id": "0x5597122d4c70-EQ", + "left": "0x5597122d4b70-Expr", + "right": "0x5597122d4a90-Expr", + "op": "EQ" + }, + { + "id": "0x5597122d4b70-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x5597122b4c50-FunctionReference" + }, + { + "id": "0x5597122b4c50-FunctionReference", + "Call": "0x5597122b4c50-Call" + }, + { + "id": "0x5597122b4c50-Call", + "ProcedureDesignator": "0x5597122b4c68-ProcedureDesignator", + "ActualArgSpec": [ + "0x5597122d05f0-ActualArgSpec", + "0x5597122d3130-ActualArgSpec" + ] + }, + { + "id": "0x5597122b4c68-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x5597122b4c68-Name" + }, + { + "id": "0x5597122b4c68-Name", + "source": "mod" + }, + { + "id": "0x5597122d05f0-ActualArgSpec", + "ActualArg": "0x5597122d05f0-ActualArg" + }, + { + "id": "0x5597122d05f0-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122d48d0-Expr" + }, + { + "id": "0x5597122d48d0-Expr", + "variantKey": "Subtract", + "Subtract": "0x5597122d48f0-Subtract" + }, + { + "id": "0x5597122d48f0-Subtract", + "left": "0x5597122d4710-Expr", + "right": "0x5597122d4630-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x5597122d4710-Expr", + "variantKey": "Add", + "Add": "0x5597122d4730-Add" + }, + { + "id": "0x5597122d4730-Add", + "left": "0x5597122d2fe0-Expr", + "right": "0x5597122d2230-Expr", + "op": "ADD" + }, + { + "id": "0x5597122d2fe0-Expr", + "variantKey": "Parentheses", + "Parentheses": "0x5597122d3000-Parentheses" + }, + { + "id": "0x5597122d3000-Parentheses", + "Expr": "0x5597122d4550-Expr", + "op": "PARENTHESES" + }, + { + "id": "0x5597122d4550-Expr", + "variantKey": "Multiply", + "Multiply": "0x5597122d4570-Multiply" + }, + { + "id": "0x5597122d4570-Multiply", + "left": "0x5597122d23f0-Expr", + "right": "0x5597122d25b0-Expr", + "op": "MULTIPLY" + }, + { + "id": "0x5597122d23f0-Expr", + "variantKey": "Parentheses", + "Parentheses": "0x5597122d2410-Parentheses" + }, + { + "id": "0x5597122d2410-Parentheses", + "Expr": "0x5597122d24d0-Expr", + "op": "PARENTHESES" + }, + { + "id": "0x5597122d24d0-Expr", + "variantKey": "Subtract", + "Subtract": "0x5597122d24f0-Subtract" + }, + { + "id": "0x5597122d24f0-Subtract", + "left": "0x5597122d4400-Expr", + "right": "0x5597122d2310-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x5597122d4400-Expr", + "variantKey": "Designator", + "Designator": "0x5597122cedf0-Designator" + }, + { + "id": "0x5597122cedf0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122cee00-DataRef" + }, + { + "id": "0x5597122cee00-DataRef", + "variantKey": "Name", + "Name": "0x5597122cee00-Name" + }, + { + "id": "0x5597122cee00-Name", + "source": "i" + }, + { + "id": "0x5597122d2310-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122d2330-LiteralConstant" + }, + { + "id": "0x5597122d2330-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122d2330-IntLiteralConstant" + }, + { + "id": "0x5597122d2330-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5597122d25b0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122c22a0-Designator" + }, + { + "id": "0x5597122c22a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122c22b0-DataRef" + }, + { + "id": "0x5597122c22b0-DataRef", + "variantKey": "Name", + "Name": "0x5597122c22b0-Name" + }, + { + "id": "0x5597122c22b0-Name", + "source": "ni" + }, + { + "id": "0x5597122d2230-Expr", + "variantKey": "Designator", + "Designator": "0x5597122cc170-Designator" + }, + { + "id": "0x5597122cc170-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122cc180-DataRef" + }, + { + "id": "0x5597122cc180-DataRef", + "variantKey": "Name", + "Name": "0x5597122cc180-Name" + }, + { + "id": "0x5597122cc180-Name", + "source": "j" + }, + { + "id": "0x5597122d4630-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122d4650-LiteralConstant" + }, + { + "id": "0x5597122d4650-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122d4650-IntLiteralConstant" + }, + { + "id": "0x5597122d4650-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5597122d3130-ActualArgSpec", + "ActualArg": "0x5597122d3130-ActualArg" + }, + { + "id": "0x5597122d3130-ActualArg", + "variantKey": "Expr", + "Expr": "0x5597122d49b0-Expr" + }, + { + "id": "0x5597122d49b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122d49d0-LiteralConstant" + }, + { + "id": "0x5597122d49d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122d49d0-IntLiteralConstant" + }, + { + "id": "0x5597122d49d0-IntLiteralConstant", + "CharBlock": "20" + }, + { + "id": "0x5597122d4a90-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122d4ab0-LiteralConstant" + }, + { + "id": "0x5597122d4ab0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122d4ab0-IntLiteralConstant" + }, + { + "id": "0x5597122d4ab0-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x5597122d5018-ExecutionPartConstruct" + }, + { + "id": "0x5597122c8f30-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122c8f30-ExecutableConstruct" + }, + { + "id": "0x5597122c8f30-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122c8f30-Statement" + }, + { + "id": "0x5597122c8f30-Statement", + "statement": "0x5597122c8f40-ActionStmt", + "source": "write(0, *)" + }, + { + "id": "0x5597122c8f40-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x5597122d4e10-WriteStmt" + }, + { + "id": "0x5597122d4e10-WriteStmt", + "iounit": "0x5597122d4e10-IoUnit", + "format": "0x5597122d4e40-Format", + "controls": [], + "items": [] + }, + { + "id": "0x5597122d4e10-IoUnit", + "variantKey": "Expr", + "Expr": "0x5597122d4d30-Expr" + }, + { + "id": "0x5597122d4d30-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122d4d50-LiteralConstant" + }, + { + "id": "0x5597122d4d50-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122d4d50-IntLiteralConstant" + }, + { + "id": "0x5597122d4d50-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x5597122d4e40-Format", + "variantKey": "Star", + "Star": "0x5597122d4e40-Star" + }, + { + "id": "0x5597122d4e40-Star" + }, + { + "id": "0x5597122d4f60-Statement", + "statement": "0x5597122d4f70-EndIfStmt", + "source": "end if" + }, + { + "id": "0x5597122d4f70-EndIfStmt" + }, + { + "id": "0x5597122d5080-Statement", + "statement": "0x5597122d5090-EndDoStmt", + "source": "end do" + }, + { + "id": "0x5597122d5090-EndDoStmt" + }, + { + "id": "0x5597122d51a0-Statement", + "statement": "0x5597122d51b0-EndDoStmt", + "source": "end do" + }, + { + "id": "0x5597122d51b0-EndDoStmt" + }, + { + "id": "0x5597122c76b0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122c76b0-ExecutableConstruct" + }, + { + "id": "0x5597122c76b0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122c76b0-Statement" + }, + { + "id": "0x5597122c76b0-Statement", + "statement": "0x5597122c76c0-ActionStmt", + "source": "write(0, *)" + }, + { + "id": "0x5597122c76c0-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x5597122d53a0-WriteStmt" + }, + { + "id": "0x5597122d53a0-WriteStmt", + "iounit": "0x5597122d53a0-IoUnit", + "format": "0x5597122d53d0-Format", + "controls": [], + "items": [] + }, + { + "id": "0x5597122d53a0-IoUnit", + "variantKey": "Expr", + "Expr": "0x5597122d52c0-Expr" + }, + { + "id": "0x5597122d52c0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122d52e0-LiteralConstant" + }, + { + "id": "0x5597122d52e0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122d52e0-IntLiteralConstant" + }, + { + "id": "0x5597122d52e0-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x5597122d53d0-Format", + "variantKey": "Star", + "Star": "0x5597122d53d0-Star" + }, + { + "id": "0x5597122d53d0-Star" + }, + { + "id": "0x5597122d6660-Statement", + "statement": "0x5597122d6670-EndSubroutineStmt", + "source": "end subroutine" + }, + { + "id": "0x5597122d6670-EndSubroutineStmt" + }, + { + "id": "0x5597122d12b0-InternalSubprogram", + "variantKey": "SubroutineSubprogram", + "SubroutineSubprogram": "0x5597122df350-SubroutineSubprogram" + }, + { + "id": "0x5597122df350-SubroutineSubprogram", + "Statement": "0x5597122df498-Statement", + "SpecificationPart": "0x5597122df3f0-SpecificationPart", + "ExecutionPart": "0x5597122df3d8-ExecutionPart", + "Statement": "0x5597122df350-Statement" + }, + { + "id": "0x5597122df498-Statement", + "statement": "0x5597122df4a8-SubroutineStmt", + "source": "subroutine kernel_3mm(ni, nj, nk, nl, nm, e, a, b, f, c, d, g)" + }, + { + "id": "0x5597122df4a8-SubroutineStmt", + "Name": "0x5597122df4e0-Name", + "DummyArg": [ + "0x5597122cd570-DummyArg", + "0x5597122b8960-DummyArg", + "0x5597122b89d0-DummyArg", + "0x5597122b8a10-DummyArg", + "0x5597122b8a50-DummyArg", + "0x5597122c1c30-DummyArg", + "0x5597122bafe0-DummyArg", + "0x5597122c7ad0-DummyArg", + "0x5597122c82e0-DummyArg", + "0x5597122c8580-DummyArg", + "0x5597122b86f0-DummyArg", + "0x5597122b8d60-DummyArg" + ] + }, + { + "id": "0x5597122df4e0-Name", + "source": "kernel_3mm" + }, + { + "id": "0x5597122cd570-DummyArg", + "variantKey": "Name", + "Name": "0x5597122cd570-Name" + }, + { + "id": "0x5597122cd570-Name", + "source": "ni" + }, + { + "id": "0x5597122b8960-DummyArg", + "variantKey": "Name", + "Name": "0x5597122b8960-Name" + }, + { + "id": "0x5597122b8960-Name", + "source": "nj" + }, + { + "id": "0x5597122b89d0-DummyArg", + "variantKey": "Name", + "Name": "0x5597122b89d0-Name" + }, + { + "id": "0x5597122b89d0-Name", + "source": "nk" + }, + { + "id": "0x5597122b8a10-DummyArg", + "variantKey": "Name", + "Name": "0x5597122b8a10-Name" + }, + { + "id": "0x5597122b8a10-Name", + "source": "nl" + }, + { + "id": "0x5597122b8a50-DummyArg", + "variantKey": "Name", + "Name": "0x5597122b8a50-Name" + }, + { + "id": "0x5597122b8a50-Name", + "source": "nm" + }, + { + "id": "0x5597122c1c30-DummyArg", + "variantKey": "Name", + "Name": "0x5597122c1c30-Name" + }, + { + "id": "0x5597122c1c30-Name", + "source": "e" + }, + { + "id": "0x5597122bafe0-DummyArg", + "variantKey": "Name", + "Name": "0x5597122bafe0-Name" + }, + { + "id": "0x5597122bafe0-Name", + "source": "a" + }, + { + "id": "0x5597122c7ad0-DummyArg", + "variantKey": "Name", + "Name": "0x5597122c7ad0-Name" + }, + { + "id": "0x5597122c7ad0-Name", + "source": "b" + }, + { + "id": "0x5597122c82e0-DummyArg", + "variantKey": "Name", + "Name": "0x5597122c82e0-Name" + }, + { + "id": "0x5597122c82e0-Name", + "source": "f" + }, + { + "id": "0x5597122c8580-DummyArg", + "variantKey": "Name", + "Name": "0x5597122c8580-Name" + }, + { + "id": "0x5597122c8580-Name", + "source": "c" + }, + { + "id": "0x5597122b86f0-DummyArg", + "variantKey": "Name", + "Name": "0x5597122b86f0-Name" + }, + { + "id": "0x5597122b86f0-Name", + "source": "d" + }, + { + "id": "0x5597122b8d60-DummyArg", + "variantKey": "Name", + "Name": "0x5597122b8d60-Name" + }, + { + "id": "0x5597122b8d60-Name", + "source": "g" + }, + { + "id": "0x5597122df3f0-SpecificationPart", + "ImplicitPart": "0x5597122df408-ImplicitPart", + "DeclarationConstruct": [ + "0x5597122cf270-DeclarationConstruct", + "0x5597122c8ab0-DeclarationConstruct", + "0x5597122d5680-DeclarationConstruct", + "0x5597122d5ab0-DeclarationConstruct", + "0x5597122d5ee0-DeclarationConstruct", + "0x5597122d6310-DeclarationConstruct", + "0x5597122d4800-DeclarationConstruct", + "0x5597122d3240-DeclarationConstruct", + "0x5597122cc370-DeclarationConstruct" + ] + }, + { + "id": "0x5597122df408-ImplicitPart" + }, + { + "id": "0x5597122cf270-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5597122cf270-SpecificationConstruct" + }, + { + "id": "0x5597122cf270-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5597122cf270-Statement" + }, + { + "id": "0x5597122cf270-Statement", + "statement": "0x5597122d10b0-TypeDeclarationStmt", + "source": "double precision, dimension(nk, ni) :: a" + }, + { + "id": "0x5597122d10b0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5597122d10e0-DeclarationTypeSpec", + "AttrSpec": [ + "0x5597122b55b0-AttrSpec" + ], + "EntityDecl": [ + "0x5597122d6f80-EntityDecl" + ] + }, + { + "id": "0x5597122d10e0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5597122d10e0-IntrinsicTypeSpec" + }, + { + "id": "0x5597122d10e0-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x5597122d10e0-DoublePrecision" + }, + { + "id": "0x5597122d10e0-DoublePrecision" + }, + { + "id": "0x5597122b55b0-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x5597122b55b0-ArraySpec" + }, + { + "id": "0x5597122b55b0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x5597122afce0-ExplicitShapeSpec", + "0x5597122afc50-ExplicitShapeSpec" + ] + }, + { + "id": "0x5597122afce0-ExplicitShapeSpec", + "upper_bound": "0x5597122afce0-SpecificationExpr" + }, + { + "id": "0x5597122afce0-SpecificationExpr", + "Expr": "0x5597122d6db0-Expr" + }, + { + "id": "0x5597122d6db0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122cd9a0-Designator" + }, + { + "id": "0x5597122cd9a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122cd9b0-DataRef" + }, + { + "id": "0x5597122cd9b0-DataRef", + "variantKey": "Name", + "Name": "0x5597122cd9b0-Name" + }, + { + "id": "0x5597122cd9b0-Name", + "source": "nk" + }, + { + "id": "0x5597122afc50-ExplicitShapeSpec", + "upper_bound": "0x5597122afc50-SpecificationExpr" + }, + { + "id": "0x5597122afc50-SpecificationExpr", + "Expr": "0x5597122d6e90-Expr" + }, + { + "id": "0x5597122d6e90-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d30c0-Designator" + }, + { + "id": "0x5597122d30c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d30d0-DataRef" + }, + { + "id": "0x5597122d30d0-DataRef", + "variantKey": "Name", + "Name": "0x5597122d30d0-Name" + }, + { + "id": "0x5597122d30d0-Name", + "source": "ni" + }, + { + "id": "0x5597122d6f80-EntityDecl", + "Name": "0x5597122d7038-Name" + }, + { + "id": "0x5597122d7038-Name", + "source": "a" + }, + { + "id": "0x5597122c8ab0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5597122c8ab0-SpecificationConstruct" + }, + { + "id": "0x5597122c8ab0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5597122c8ab0-Statement" + }, + { + "id": "0x5597122c8ab0-Statement", + "statement": "0x5597122c1d80-TypeDeclarationStmt", + "source": "double precision, dimension(nj, nk) :: b" + }, + { + "id": "0x5597122c1d80-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5597122c1db0-DeclarationTypeSpec", + "AttrSpec": [ + "0x5597122c9670-AttrSpec" + ], + "EntityDecl": [ + "0x5597122d6a10-EntityDecl" + ] + }, + { + "id": "0x5597122c1db0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5597122c1db0-IntrinsicTypeSpec" + }, + { + "id": "0x5597122c1db0-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x5597122c1db0-DoublePrecision" + }, + { + "id": "0x5597122c1db0-DoublePrecision" + }, + { + "id": "0x5597122c9670-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x5597122c9670-ArraySpec" + }, + { + "id": "0x5597122c9670-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x5597122cc3d0-ExplicitShapeSpec", + "0x5597122c1d60-ExplicitShapeSpec" + ] + }, + { + "id": "0x5597122cc3d0-ExplicitShapeSpec", + "upper_bound": "0x5597122cc3d0-SpecificationExpr" + }, + { + "id": "0x5597122cc3d0-SpecificationExpr", + "Expr": "0x5597122d6840-Expr" + }, + { + "id": "0x5597122d6840-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d07f0-Designator" + }, + { + "id": "0x5597122d07f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d0800-DataRef" + }, + { + "id": "0x5597122d0800-DataRef", + "variantKey": "Name", + "Name": "0x5597122d0800-Name" + }, + { + "id": "0x5597122d0800-Name", + "source": "nj" + }, + { + "id": "0x5597122c1d60-ExplicitShapeSpec", + "upper_bound": "0x5597122c1d60-SpecificationExpr" + }, + { + "id": "0x5597122c1d60-SpecificationExpr", + "Expr": "0x5597122d6920-Expr" + }, + { + "id": "0x5597122d6920-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d2dc0-Designator" + }, + { + "id": "0x5597122d2dc0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d2dd0-DataRef" + }, + { + "id": "0x5597122d2dd0-DataRef", + "variantKey": "Name", + "Name": "0x5597122d2dd0-Name" + }, + { + "id": "0x5597122d2dd0-Name", + "source": "nk" + }, + { + "id": "0x5597122d6a10-EntityDecl", + "Name": "0x5597122d6ac8-Name" + }, + { + "id": "0x5597122d6ac8-Name", + "source": "b" + }, + { + "id": "0x5597122d5680-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5597122d5680-SpecificationConstruct" + }, + { + "id": "0x5597122d5680-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5597122d5680-Statement" + }, + { + "id": "0x5597122d5680-Statement", + "statement": "0x5597122cc2e0-TypeDeclarationStmt", + "source": "double precision, dimension(nm, nj) :: c" + }, + { + "id": "0x5597122cc2e0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5597122cc310-DeclarationTypeSpec", + "AttrSpec": [ + "0x5597122c7710-AttrSpec" + ], + "EntityDecl": [ + "0x5597122d5590-EntityDecl" + ] + }, + { + "id": "0x5597122cc310-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5597122cc310-IntrinsicTypeSpec" + }, + { + "id": "0x5597122cc310-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x5597122cc310-DoublePrecision" + }, + { + "id": "0x5597122cc310-DoublePrecision" + }, + { + "id": "0x5597122c7710-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x5597122c7710-ArraySpec" + }, + { + "id": "0x5597122c7710-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x5597122d6cc0-ExplicitShapeSpec", + "0x5597122d1e70-ExplicitShapeSpec" + ] + }, + { + "id": "0x5597122d6cc0-ExplicitShapeSpec", + "upper_bound": "0x5597122d6cc0-SpecificationExpr" + }, + { + "id": "0x5597122d6cc0-SpecificationExpr", + "Expr": "0x5597122d6af0-Expr" + }, + { + "id": "0x5597122d6af0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d0850-Designator" + }, + { + "id": "0x5597122d0850-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d0860-DataRef" + }, + { + "id": "0x5597122d0860-DataRef", + "variantKey": "Name", + "Name": "0x5597122d0860-Name" + }, + { + "id": "0x5597122d0860-Name", + "source": "nm" + }, + { + "id": "0x5597122d1e70-ExplicitShapeSpec", + "upper_bound": "0x5597122d1e70-SpecificationExpr" + }, + { + "id": "0x5597122d1e70-SpecificationExpr", + "Expr": "0x5597122d6bd0-Expr" + }, + { + "id": "0x5597122d6bd0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122c79d0-Designator" + }, + { + "id": "0x5597122c79d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122c79e0-DataRef" + }, + { + "id": "0x5597122c79e0-DataRef", + "variantKey": "Name", + "Name": "0x5597122c79e0-Name" + }, + { + "id": "0x5597122c79e0-Name", + "source": "nj" + }, + { + "id": "0x5597122d5590-EntityDecl", + "Name": "0x5597122d5648-Name" + }, + { + "id": "0x5597122d5648-Name", + "source": "c" + }, + { + "id": "0x5597122d5ab0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5597122d5ab0-SpecificationConstruct" + }, + { + "id": "0x5597122d5ab0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5597122d5ab0-Statement" + }, + { + "id": "0x5597122d5ab0-Statement", + "statement": "0x5597122b5370-TypeDeclarationStmt", + "source": "double precision, dimension(nl, nm) :: d" + }, + { + "id": "0x5597122b5370-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5597122b53a0-DeclarationTypeSpec", + "AttrSpec": [ + "0x5597122cbc40-AttrSpec" + ], + "EntityDecl": [ + "0x5597122d59c0-EntityDecl" + ] + }, + { + "id": "0x5597122b53a0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5597122b53a0-IntrinsicTypeSpec" + }, + { + "id": "0x5597122b53a0-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x5597122b53a0-DoublePrecision" + }, + { + "id": "0x5597122b53a0-DoublePrecision" + }, + { + "id": "0x5597122cbc40-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x5597122cbc40-ArraySpec" + }, + { + "id": "0x5597122cbc40-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x5597122d5990-ExplicitShapeSpec", + "0x5597122d5960-ExplicitShapeSpec" + ] + }, + { + "id": "0x5597122d5990-ExplicitShapeSpec", + "upper_bound": "0x5597122d5990-SpecificationExpr" + }, + { + "id": "0x5597122d5990-SpecificationExpr", + "Expr": "0x5597122d56d0-Expr" + }, + { + "id": "0x5597122d56d0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122c7eb0-Designator" + }, + { + "id": "0x5597122c7eb0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122c7ec0-DataRef" + }, + { + "id": "0x5597122c7ec0-DataRef", + "variantKey": "Name", + "Name": "0x5597122c7ec0-Name" + }, + { + "id": "0x5597122c7ec0-Name", + "source": "nl" + }, + { + "id": "0x5597122d5960-ExplicitShapeSpec", + "upper_bound": "0x5597122d5960-SpecificationExpr" + }, + { + "id": "0x5597122d5960-SpecificationExpr", + "Expr": "0x5597122d5870-Expr" + }, + { + "id": "0x5597122d5870-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d5810-Designator" + }, + { + "id": "0x5597122d5810-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d5820-DataRef" + }, + { + "id": "0x5597122d5820-DataRef", + "variantKey": "Name", + "Name": "0x5597122d5820-Name" + }, + { + "id": "0x5597122d5820-Name", + "source": "nm" + }, + { + "id": "0x5597122d59c0-EntityDecl", + "Name": "0x5597122d5a78-Name" + }, + { + "id": "0x5597122d5a78-Name", + "source": "d" + }, + { + "id": "0x5597122d5ee0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5597122d5ee0-SpecificationConstruct" + }, + { + "id": "0x5597122d5ee0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5597122d5ee0-Statement" + }, + { + "id": "0x5597122d5ee0-Statement", + "statement": "0x5597122b83d0-TypeDeclarationStmt", + "source": "double precision, dimension(nj, ni) :: e" + }, + { + "id": "0x5597122b83d0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5597122b8400-DeclarationTypeSpec", + "AttrSpec": [ + "0x5597122c1860-AttrSpec" + ], + "EntityDecl": [ + "0x5597122d5df0-EntityDecl" + ] + }, + { + "id": "0x5597122b8400-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5597122b8400-IntrinsicTypeSpec" + }, + { + "id": "0x5597122b8400-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x5597122b8400-DoublePrecision" + }, + { + "id": "0x5597122b8400-DoublePrecision" + }, + { + "id": "0x5597122c1860-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x5597122c1860-ArraySpec" + }, + { + "id": "0x5597122c1860-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x5597122d5dc0-ExplicitShapeSpec", + "0x5597122d5d90-ExplicitShapeSpec" + ] + }, + { + "id": "0x5597122d5dc0-ExplicitShapeSpec", + "upper_bound": "0x5597122d5dc0-SpecificationExpr" + }, + { + "id": "0x5597122d5dc0-SpecificationExpr", + "Expr": "0x5597122d5b00-Expr" + }, + { + "id": "0x5597122d5b00-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d3290-Designator" + }, + { + "id": "0x5597122d3290-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d32a0-DataRef" + }, + { + "id": "0x5597122d32a0-DataRef", + "variantKey": "Name", + "Name": "0x5597122d32a0-Name" + }, + { + "id": "0x5597122d32a0-Name", + "source": "nj" + }, + { + "id": "0x5597122d5d90-ExplicitShapeSpec", + "upper_bound": "0x5597122d5d90-SpecificationExpr" + }, + { + "id": "0x5597122d5d90-SpecificationExpr", + "Expr": "0x5597122d5ca0-Expr" + }, + { + "id": "0x5597122d5ca0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d5c40-Designator" + }, + { + "id": "0x5597122d5c40-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d5c50-DataRef" + }, + { + "id": "0x5597122d5c50-DataRef", + "variantKey": "Name", + "Name": "0x5597122d5c50-Name" + }, + { + "id": "0x5597122d5c50-Name", + "source": "ni" + }, + { + "id": "0x5597122d5df0-EntityDecl", + "Name": "0x5597122d5ea8-Name" + }, + { + "id": "0x5597122d5ea8-Name", + "source": "e" + }, + { + "id": "0x5597122d6310-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5597122d6310-SpecificationConstruct" + }, + { + "id": "0x5597122d6310-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5597122d6310-Statement" + }, + { + "id": "0x5597122d6310-Statement", + "statement": "0x5597122d1d80-TypeDeclarationStmt", + "source": "double precision, dimension(nl, nj) :: f" + }, + { + "id": "0x5597122d1d80-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5597122d1db0-DeclarationTypeSpec", + "AttrSpec": [ + "0x5597122af6a0-AttrSpec" + ], + "EntityDecl": [ + "0x5597122d6220-EntityDecl" + ] + }, + { + "id": "0x5597122d1db0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5597122d1db0-IntrinsicTypeSpec" + }, + { + "id": "0x5597122d1db0-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x5597122d1db0-DoublePrecision" + }, + { + "id": "0x5597122d1db0-DoublePrecision" + }, + { + "id": "0x5597122af6a0-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x5597122af6a0-ArraySpec" + }, + { + "id": "0x5597122af6a0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x5597122d61f0-ExplicitShapeSpec", + "0x5597122d61c0-ExplicitShapeSpec" + ] + }, + { + "id": "0x5597122d61f0-ExplicitShapeSpec", + "upper_bound": "0x5597122d61f0-SpecificationExpr" + }, + { + "id": "0x5597122d61f0-SpecificationExpr", + "Expr": "0x5597122d5f30-Expr" + }, + { + "id": "0x5597122d5f30-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d57b0-Designator" + }, + { + "id": "0x5597122d57b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d57c0-DataRef" + }, + { + "id": "0x5597122d57c0-DataRef", + "variantKey": "Name", + "Name": "0x5597122d57c0-Name" + }, + { + "id": "0x5597122d57c0-Name", + "source": "nl" + }, + { + "id": "0x5597122d61c0-ExplicitShapeSpec", + "upper_bound": "0x5597122d61c0-SpecificationExpr" + }, + { + "id": "0x5597122d61c0-SpecificationExpr", + "Expr": "0x5597122d60d0-Expr" + }, + { + "id": "0x5597122d60d0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d6070-Designator" + }, + { + "id": "0x5597122d6070-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d6080-DataRef" + }, + { + "id": "0x5597122d6080-DataRef", + "variantKey": "Name", + "Name": "0x5597122d6080-Name" + }, + { + "id": "0x5597122d6080-Name", + "source": "nj" + }, + { + "id": "0x5597122d6220-EntityDecl", + "Name": "0x5597122d62d8-Name" + }, + { + "id": "0x5597122d62d8-Name", + "source": "f" + }, + { + "id": "0x5597122d4800-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5597122d4800-SpecificationConstruct" + }, + { + "id": "0x5597122d4800-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5597122d4800-Statement" + }, + { + "id": "0x5597122d4800-Statement", + "statement": "0x5597122d1e90-TypeDeclarationStmt", + "source": "double precision, dimension(nl, ni) :: g" + }, + { + "id": "0x5597122d1e90-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5597122d1ec0-DeclarationTypeSpec", + "AttrSpec": [ + "0x5597122b5bf0-AttrSpec" + ], + "EntityDecl": [ + "0x5597122d72b0-EntityDecl" + ] + }, + { + "id": "0x5597122d1ec0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5597122d1ec0-IntrinsicTypeSpec" + }, + { + "id": "0x5597122d1ec0-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x5597122d1ec0-DoublePrecision" + }, + { + "id": "0x5597122d1ec0-DoublePrecision" + }, + { + "id": "0x5597122b5bf0-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x5597122b5bf0-ArraySpec" + }, + { + "id": "0x5597122b5bf0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x5597122c1fa0-ExplicitShapeSpec", + "0x5597122d65f0-ExplicitShapeSpec" + ] + }, + { + "id": "0x5597122c1fa0-ExplicitShapeSpec", + "upper_bound": "0x5597122c1fa0-SpecificationExpr" + }, + { + "id": "0x5597122c1fa0-SpecificationExpr", + "Expr": "0x5597122d6360-Expr" + }, + { + "id": "0x5597122d6360-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d5be0-Designator" + }, + { + "id": "0x5597122d5be0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d5bf0-DataRef" + }, + { + "id": "0x5597122d5bf0-DataRef", + "variantKey": "Name", + "Name": "0x5597122d5bf0-Name" + }, + { + "id": "0x5597122d5bf0-Name", + "source": "nl" + }, + { + "id": "0x5597122d65f0-ExplicitShapeSpec", + "upper_bound": "0x5597122d65f0-SpecificationExpr" + }, + { + "id": "0x5597122d65f0-SpecificationExpr", + "Expr": "0x5597122d6500-Expr" + }, + { + "id": "0x5597122d6500-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d64a0-Designator" + }, + { + "id": "0x5597122d64a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d64b0-DataRef" + }, + { + "id": "0x5597122d64b0-DataRef", + "variantKey": "Name", + "Name": "0x5597122d64b0-Name" + }, + { + "id": "0x5597122d64b0-Name", + "source": "ni" + }, + { + "id": "0x5597122d72b0-EntityDecl", + "Name": "0x5597122d7368-Name" + }, + { + "id": "0x5597122d7368-Name", + "source": "g" + }, + { + "id": "0x5597122d3240-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5597122d3240-SpecificationConstruct" + }, + { + "id": "0x5597122d3240-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5597122d3240-Statement" + }, + { + "id": "0x5597122d3240-Statement", + "statement": "0x5597122cdfd0-TypeDeclarationStmt", + "source": "integer :: ni, nj, nk, nl, nm" + }, + { + "id": "0x5597122cdfd0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5597122ce000-DeclarationTypeSpec", + "EntityDecl": [ + "0x5597122d7760-EntityDecl", + "0x5597122d73a0-EntityDecl", + "0x5597122d7490-EntityDecl", + "0x5597122d7580-EntityDecl", + "0x5597122d7670-EntityDecl" + ] + }, + { + "id": "0x5597122ce000-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5597122ce000-IntrinsicTypeSpec" + }, + { + "id": "0x5597122ce000-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x5597122ce000-IntegerTypeSpec" + }, + { + "id": "0x5597122ce000-IntegerTypeSpec" + }, + { + "id": "0x5597122d7760-EntityDecl", + "Name": "0x5597122d7818-Name" + }, + { + "id": "0x5597122d7818-Name", + "source": "ni" + }, + { + "id": "0x5597122d73a0-EntityDecl", + "Name": "0x5597122d7458-Name" + }, + { + "id": "0x5597122d7458-Name", + "source": "nj" + }, + { + "id": "0x5597122d7490-EntityDecl", + "Name": "0x5597122d7548-Name" + }, + { + "id": "0x5597122d7548-Name", + "source": "nk" + }, + { + "id": "0x5597122d7580-EntityDecl", + "Name": "0x5597122d7638-Name" + }, + { + "id": "0x5597122d7638-Name", + "source": "nl" + }, + { + "id": "0x5597122d7670-EntityDecl", + "Name": "0x5597122d7728-Name" + }, + { + "id": "0x5597122d7728-Name", + "source": "nm" + }, + { + "id": "0x5597122cc370-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5597122cc370-SpecificationConstruct" + }, + { + "id": "0x5597122cc370-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5597122cc370-Statement" + }, + { + "id": "0x5597122cc370-Statement", + "statement": "0x5597122cda60-TypeDeclarationStmt", + "source": "integer :: i, j, k" + }, + { + "id": "0x5597122cda60-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5597122cda90-DeclarationTypeSpec", + "EntityDecl": [ + "0x5597122d7a30-EntityDecl", + "0x5597122d7850-EntityDecl", + "0x5597122d7940-EntityDecl" + ] + }, + { + "id": "0x5597122cda90-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5597122cda90-IntrinsicTypeSpec" + }, + { + "id": "0x5597122cda90-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x5597122cda90-IntegerTypeSpec" + }, + { + "id": "0x5597122cda90-IntegerTypeSpec" + }, + { + "id": "0x5597122d7a30-EntityDecl", + "Name": "0x5597122d7ae8-Name" + }, + { + "id": "0x5597122d7ae8-Name", + "source": "i" + }, + { + "id": "0x5597122d7850-EntityDecl", + "Name": "0x5597122d7908-Name" + }, + { + "id": "0x5597122d7908-Name", + "source": "j" + }, + { + "id": "0x5597122d7940-EntityDecl", + "Name": "0x5597122d79f8-Name" + }, + { + "id": "0x5597122d79f8-Name", + "source": "k" + }, + { + "id": "0x5597122df3d8-ExecutionPart", + "ExecutionPartConstruct": [ + "0x5597122d9ae0-ExecutionPartConstruct", + "0x5597122dc340-ExecutionPartConstruct", + "0x5597122deba0-ExecutionPartConstruct" + ] + }, + { + "id": "0x5597122df3d8-ExecutionPartConstruct" + }, + { + "id": "0x5597122d9ae0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122d9ae0-ExecutableConstruct" + }, + { + "id": "0x5597122d9ae0-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x5597122da680-DoConstruct" + }, + { + "id": "0x5597122da680-DoConstruct", + "Statement": "0x5597122da6d8-Statement", + "ExecutionPartConstruct": [ + "0x5597122d9940-ExecutionPartConstruct" + ], + "Statement": "0x5597122da680-Statement" + }, + { + "id": "0x5597122da6d8-Statement", + "statement": "0x5597122da6e8-NonLabelDoStmt", + "source": "do i = 1, ni" + }, + { + "id": "0x5597122da6e8-NonLabelDoStmt", + "LoopControl": "0x5597122da6e8-LoopControl" + }, + { + "id": "0x5597122da6e8-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x5597122da6e8-LoopBounds" + }, + { + "id": "0x5597122da6e8-LoopBounds", + "var": "0x5597122da6e8-Name", + "lower": "0x5597122d7b10-Expr", + "upper": "0x5597122d7bf0-Expr" + }, + { + "id": "0x5597122da6e8-Name", + "source": "i" + }, + { + "id": "0x5597122d7b10-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122d7b30-LiteralConstant" + }, + { + "id": "0x5597122d7b30-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122d7b30-IntLiteralConstant" + }, + { + "id": "0x5597122d7b30-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5597122d7bf0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d1240-Designator" + }, + { + "id": "0x5597122d1240-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d1250-DataRef" + }, + { + "id": "0x5597122d1250-DataRef", + "variantKey": "Name", + "Name": "0x5597122d1250-Name" + }, + { + "id": "0x5597122d1250-Name", + "source": "ni" + }, + { + "id": "0x5597122da6c0-ExecutionPartConstruct" + }, + { + "id": "0x5597122d9940-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122d9940-ExecutableConstruct" + }, + { + "id": "0x5597122d9940-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x5597122da560-DoConstruct" + }, + { + "id": "0x5597122da560-DoConstruct", + "Statement": "0x5597122da5b8-Statement", + "ExecutionPartConstruct": [ + "0x5597122d8400-ExecutionPartConstruct", + "0x5597122d98e0-ExecutionPartConstruct" + ], + "Statement": "0x5597122da560-Statement" + }, + { + "id": "0x5597122da5b8-Statement", + "statement": "0x5597122da5c8-NonLabelDoStmt", + "source": "do j = 1, nj" + }, + { + "id": "0x5597122da5c8-NonLabelDoStmt", + "LoopControl": "0x5597122da5c8-LoopControl" + }, + { + "id": "0x5597122da5c8-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x5597122da5c8-LoopBounds" + }, + { + "id": "0x5597122da5c8-LoopBounds", + "var": "0x5597122da5c8-Name", + "lower": "0x5597122d7cd0-Expr", + "upper": "0x5597122d7db0-Expr" + }, + { + "id": "0x5597122da5c8-Name", + "source": "j" + }, + { + "id": "0x5597122d7cd0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122d7cf0-LiteralConstant" + }, + { + "id": "0x5597122d7cf0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122d7cf0-IntLiteralConstant" + }, + { + "id": "0x5597122d7cf0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5597122d7db0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d6010-Designator" + }, + { + "id": "0x5597122d6010-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d6020-DataRef" + }, + { + "id": "0x5597122d6020-DataRef", + "variantKey": "Name", + "Name": "0x5597122d6020-Name" + }, + { + "id": "0x5597122d6020-Name", + "source": "nj" + }, + { + "id": "0x5597122da5a0-ExecutionPartConstruct" + }, + { + "id": "0x5597122d8400-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122d8400-ExecutableConstruct" + }, + { + "id": "0x5597122d8400-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122d8400-Statement" + }, + { + "id": "0x5597122d8400-Statement", + "statement": "0x5597122d8410-ActionStmt", + "source": "e(j, i) = 0.0" + }, + { + "id": "0x5597122d8410-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x5597122d82e0-AssignmentStmt" + }, + { + "id": "0x5597122d82e0-AssignmentStmt", + "Variable": "0x5597122d83c0-Variable", + "Expr": "0x5597122d82f0-Expr" + }, + { + "id": "0x5597122d83c0-Variable", + "variantKey": "Designator", + "Designator": "0x5597122ff240-Designator" + }, + { + "id": "0x5597122ff240-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122ff250-DataRef" + }, + { + "id": "0x5597122ff250-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x5597122e2f20-ArrayElement" + }, + { + "id": "0x5597122e2f20-ArrayElement", + "base": "0x5597122e2f20-DataRef", + "subscripts": [ + "0x5597123950e0-SectionSubscript", + "0x559712395130-SectionSubscript" + ] + }, + { + "id": "0x5597122e2f20-DataRef", + "variantKey": "Name", + "Name": "0x5597122e2f20-Name" + }, + { + "id": "0x5597122e2f20-Name", + "source": "e" + }, + { + "id": "0x5597123950e0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122d02e0-Expr" + }, + { + "id": "0x5597122d02e0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d7fd0-Designator" + }, + { + "id": "0x5597122d7fd0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d7fe0-DataRef" + }, + { + "id": "0x5597122d7fe0-DataRef", + "variantKey": "Name", + "Name": "0x5597122d7fe0-Name" + }, + { + "id": "0x5597122d7fe0-Name", + "source": "j" + }, + { + "id": "0x559712395130-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122d1f10-Expr" + }, + { + "id": "0x5597122d1f10-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d0f10-Designator" + }, + { + "id": "0x5597122d0f10-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d0f20-DataRef" + }, + { + "id": "0x5597122d0f20-DataRef", + "variantKey": "Name", + "Name": "0x5597122d0f20-Name" + }, + { + "id": "0x5597122d0f20-Name", + "source": "i" + }, + { + "id": "0x5597122d82f0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122d8310-LiteralConstant" + }, + { + "id": "0x5597122d8310-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x5597122d8310-RealLiteralConstant" + }, + { + "id": "0x5597122d8310-RealLiteralConstant", + "real": "0x5597122d8310-Real" + }, + { + "id": "0x5597122d8310-Real", + "source": "0.0" + }, + { + "id": "0x5597122d98e0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122d98e0-ExecutableConstruct" + }, + { + "id": "0x5597122d98e0-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x5597122da440-DoConstruct" + }, + { + "id": "0x5597122da440-DoConstruct", + "Statement": "0x5597122da498-Statement", + "ExecutionPartConstruct": [ + "0x5597122da3f0-ExecutionPartConstruct" + ], + "Statement": "0x5597122da440-Statement" + }, + { + "id": "0x5597122da498-Statement", + "statement": "0x5597122da4a8-NonLabelDoStmt", + "source": "do k = 1, nk" + }, + { + "id": "0x5597122da4a8-NonLabelDoStmt", + "LoopControl": "0x5597122da4a8-LoopControl" + }, + { + "id": "0x5597122da4a8-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x5597122da4a8-LoopBounds" + }, + { + "id": "0x5597122da4a8-LoopBounds", + "var": "0x5597122da4a8-Name", + "lower": "0x5597122d8450-Expr", + "upper": "0x5597122d8530-Expr" + }, + { + "id": "0x5597122da4a8-Name", + "source": "k" + }, + { + "id": "0x5597122d8450-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122d8470-LiteralConstant" + }, + { + "id": "0x5597122d8470-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122d8470-IntLiteralConstant" + }, + { + "id": "0x5597122d8470-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5597122d8530-Expr", + "variantKey": "Designator", + "Designator": "0x5597122cba20-Designator" + }, + { + "id": "0x5597122cba20-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122cba30-DataRef" + }, + { + "id": "0x5597122cba30-DataRef", + "variantKey": "Name", + "Name": "0x5597122cba30-Name" + }, + { + "id": "0x5597122cba30-Name", + "source": "nk" + }, + { + "id": "0x5597122da480-ExecutionPartConstruct" + }, + { + "id": "0x5597122da3f0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122da3f0-ExecutableConstruct" + }, + { + "id": "0x5597122da3f0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122da3f0-Statement" + }, + { + "id": "0x5597122da3f0-Statement", + "statement": "0x5597122da400-ActionStmt", + "source": "e(j, i) = e(j, i) + a(k, i) * b(j, k)" + }, + { + "id": "0x5597122da400-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x5597122da2d0-AssignmentStmt" + }, + { + "id": "0x5597122da2d0-AssignmentStmt", + "Variable": "0x5597122da3b0-Variable", + "Expr": "0x5597122da2e0-Expr" + }, + { + "id": "0x5597122da3b0-Variable", + "variantKey": "Designator", + "Designator": "0x5597122cdca0-Designator" + }, + { + "id": "0x5597122cdca0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122cdcb0-DataRef" + }, + { + "id": "0x5597122cdcb0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x5597122e40f0-ArrayElement" + }, + { + "id": "0x5597122e40f0-ArrayElement", + "base": "0x5597122e40f0-DataRef", + "subscripts": [ + "0x5597122d2d70-SectionSubscript", + "0x559712395890-SectionSubscript" + ] + }, + { + "id": "0x5597122e40f0-DataRef", + "variantKey": "Name", + "Name": "0x5597122e40f0-Name" + }, + { + "id": "0x5597122e40f0-Name", + "source": "e" + }, + { + "id": "0x5597122d2d70-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122d7e90-Expr" + }, + { + "id": "0x5597122d7e90-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d86f0-Designator" + }, + { + "id": "0x5597122d86f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d8700-DataRef" + }, + { + "id": "0x5597122d8700-DataRef", + "variantKey": "Name", + "Name": "0x5597122d8700-Name" + }, + { + "id": "0x5597122d8700-Name", + "source": "j" + }, + { + "id": "0x559712395890-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122d8030-Expr" + }, + { + "id": "0x5597122d8030-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d6440-Designator" + }, + { + "id": "0x5597122d6440-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d6450-DataRef" + }, + { + "id": "0x5597122d6450-DataRef", + "variantKey": "Name", + "Name": "0x5597122d6450-Name" + }, + { + "id": "0x5597122d6450-Name", + "source": "i" + }, + { + "id": "0x5597122da2e0-Expr", + "variantKey": "Add", + "Add": "0x5597122da300-Add" + }, + { + "id": "0x5597122da300-Add", + "left": "0x5597122da1f0-Expr", + "right": "0x5597122da110-Expr", + "op": "ADD" + }, + { + "id": "0x5597122da1f0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122cb110-Designator" + }, + { + "id": "0x5597122cb110-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122cb120-DataRef" + }, + { + "id": "0x5597122cb120-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x5597122c5af0-ArrayElement" + }, + { + "id": "0x5597122c5af0-ArrayElement", + "base": "0x5597122c5af0-DataRef", + "subscripts": [ + "0x559712395ab0-SectionSubscript", + "0x559712395b00-SectionSubscript" + ] + }, + { + "id": "0x5597122c5af0-DataRef", + "variantKey": "Name", + "Name": "0x5597122c5af0-Name" + }, + { + "id": "0x5597122c5af0-Name", + "source": "e" + }, + { + "id": "0x559712395ab0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122d8610-Expr" + }, + { + "id": "0x5597122d8610-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d8dd0-Designator" + }, + { + "id": "0x5597122d8dd0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d8de0-DataRef" + }, + { + "id": "0x5597122d8de0-DataRef", + "variantKey": "Name", + "Name": "0x5597122d8de0-Name" + }, + { + "id": "0x5597122d8de0-Name", + "source": "j" + }, + { + "id": "0x559712395b00-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122d8750-Expr" + }, + { + "id": "0x5597122d8750-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d8bd0-Designator" + }, + { + "id": "0x5597122d8bd0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d8be0-DataRef" + }, + { + "id": "0x5597122d8be0-DataRef", + "variantKey": "Name", + "Name": "0x5597122d8be0-Name" + }, + { + "id": "0x5597122d8be0-Name", + "source": "i" + }, + { + "id": "0x5597122da110-Expr", + "variantKey": "Multiply", + "Multiply": "0x5597122da130-Multiply" + }, + { + "id": "0x5597122da130-Multiply", + "left": "0x5597122da030-Expr", + "right": "0x5597122d9f50-Expr", + "op": "MULTIPLY" + }, + { + "id": "0x5597122da030-Expr", + "variantKey": "Designator", + "Designator": "0x559712395e40-Designator" + }, + { + "id": "0x559712395e40-Designator", + "variantKey": "DataRef", + "DataRef": "0x559712395e50-DataRef" + }, + { + "id": "0x559712395e50-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x5597122d8240-ArrayElement" + }, + { + "id": "0x5597122d8240-ArrayElement", + "base": "0x5597122d8240-DataRef", + "subscripts": [ + "0x559712395db0-SectionSubscript", + "0x559712395e00-SectionSubscript" + ] + }, + { + "id": "0x5597122d8240-DataRef", + "variantKey": "Name", + "Name": "0x5597122d8240-Name" + }, + { + "id": "0x5597122d8240-Name", + "source": "a" + }, + { + "id": "0x559712395db0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122d8c30-Expr" + }, + { + "id": "0x5597122d8c30-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d94b0-Designator" + }, + { + "id": "0x5597122d94b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d94c0-DataRef" + }, + { + "id": "0x5597122d94c0-DataRef", + "variantKey": "Name", + "Name": "0x5597122d94c0-Name" + }, + { + "id": "0x5597122d94c0-Name", + "source": "k" + }, + { + "id": "0x559712395e00-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122d8e30-Expr" + }, + { + "id": "0x5597122d8e30-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d92b0-Designator" + }, + { + "id": "0x5597122d92b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d92c0-DataRef" + }, + { + "id": "0x5597122d92c0-DataRef", + "variantKey": "Name", + "Name": "0x5597122d92c0-Name" + }, + { + "id": "0x5597122d92c0-Name", + "source": "i" + }, + { + "id": "0x5597122d9f50-Expr", + "variantKey": "Designator", + "Designator": "0x559712396230-Designator" + }, + { + "id": "0x559712396230-Designator", + "variantKey": "DataRef", + "DataRef": "0x559712396240-DataRef" + }, + { + "id": "0x559712396240-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x5597122d9700-ArrayElement" + }, + { + "id": "0x5597122d9700-ArrayElement", + "base": "0x5597122d9700-DataRef", + "subscripts": [ + "0x5597123961a0-SectionSubscript", + "0x5597123961f0-SectionSubscript" + ] + }, + { + "id": "0x5597122d9700-DataRef", + "variantKey": "Name", + "Name": "0x5597122d9700-Name" + }, + { + "id": "0x5597122d9700-Name", + "source": "b" + }, + { + "id": "0x5597123961a0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122d9310-Expr" + }, + { + "id": "0x5597122d9310-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d9b90-Designator" + }, + { + "id": "0x5597122d9b90-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d9ba0-DataRef" + }, + { + "id": "0x5597122d9ba0-DataRef", + "variantKey": "Name", + "Name": "0x5597122d9ba0-Name" + }, + { + "id": "0x5597122d9ba0-Name", + "source": "j" + }, + { + "id": "0x5597123961f0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122d9510-Expr" + }, + { + "id": "0x5597122d9510-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d9990-Designator" + }, + { + "id": "0x5597122d9990-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d99a0-DataRef" + }, + { + "id": "0x5597122d99a0-DataRef", + "variantKey": "Name", + "Name": "0x5597122d99a0-Name" + }, + { + "id": "0x5597122d99a0-Name", + "source": "k" + }, + { + "id": "0x5597122da440-Statement", + "statement": "0x5597122da450-EndDoStmt", + "source": "end do" + }, + { + "id": "0x5597122da450-EndDoStmt" + }, + { + "id": "0x5597122da560-Statement", + "statement": "0x5597122da570-EndDoStmt", + "source": "end do" + }, + { + "id": "0x5597122da570-EndDoStmt" + }, + { + "id": "0x5597122da680-Statement", + "statement": "0x5597122da690-EndDoStmt", + "source": "end do" + }, + { + "id": "0x5597122da690-EndDoStmt" + }, + { + "id": "0x5597122dc340-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122dc340-ExecutableConstruct" + }, + { + "id": "0x5597122dc340-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x5597122dcee0-DoConstruct" + }, + { + "id": "0x5597122dcee0-DoConstruct", + "Statement": "0x5597122dcf38-Statement", + "ExecutionPartConstruct": [ + "0x5597122dc1a0-ExecutionPartConstruct" + ], + "Statement": "0x5597122dcee0-Statement" + }, + { + "id": "0x5597122dcf38-Statement", + "statement": "0x5597122dcf48-NonLabelDoStmt", + "source": "do i = 1, nj" + }, + { + "id": "0x5597122dcf48-NonLabelDoStmt", + "LoopControl": "0x5597122dcf48-LoopControl" + }, + { + "id": "0x5597122dcf48-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x5597122dcf48-LoopBounds" + }, + { + "id": "0x5597122dcf48-LoopBounds", + "var": "0x5597122dcf48-Name", + "lower": "0x5597122da7a0-Expr", + "upper": "0x5597122da880-Expr" + }, + { + "id": "0x5597122dcf48-Name", + "source": "i" + }, + { + "id": "0x5597122da7a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122da7c0-LiteralConstant" + }, + { + "id": "0x5597122da7c0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122da7c0-IntLiteralConstant" + }, + { + "id": "0x5597122da7c0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5597122da880-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d9cd0-Designator" + }, + { + "id": "0x5597122d9cd0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d9ce0-DataRef" + }, + { + "id": "0x5597122d9ce0-DataRef", + "variantKey": "Name", + "Name": "0x5597122d9ce0-Name" + }, + { + "id": "0x5597122d9ce0-Name", + "source": "nj" + }, + { + "id": "0x5597122dcf20-ExecutionPartConstruct" + }, + { + "id": "0x5597122dc1a0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122dc1a0-ExecutableConstruct" + }, + { + "id": "0x5597122dc1a0-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x5597122dcdc0-DoConstruct" + }, + { + "id": "0x5597122dcdc0-DoConstruct", + "Statement": "0x5597122dce18-Statement", + "ExecutionPartConstruct": [ + "0x5597122d8b80-ExecutionPartConstruct", + "0x5597122dc140-ExecutionPartConstruct" + ], + "Statement": "0x5597122dcdc0-Statement" + }, + { + "id": "0x5597122dce18-Statement", + "statement": "0x5597122dce28-NonLabelDoStmt", + "source": "do j = 1, nl" + }, + { + "id": "0x5597122dce28-NonLabelDoStmt", + "LoopControl": "0x5597122dce28-LoopControl" + }, + { + "id": "0x5597122dce28-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x5597122dce28-LoopBounds" + }, + { + "id": "0x5597122dce28-LoopBounds", + "var": "0x5597122dce28-Name", + "lower": "0x5597122da960-Expr", + "upper": "0x5597122daa40-Expr" + }, + { + "id": "0x5597122dce28-Name", + "source": "j" + }, + { + "id": "0x5597122da960-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122da980-LiteralConstant" + }, + { + "id": "0x5597122da980-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122da980-IntLiteralConstant" + }, + { + "id": "0x5597122da980-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5597122daa40-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d8280-Designator" + }, + { + "id": "0x5597122d8280-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d8290-DataRef" + }, + { + "id": "0x5597122d8290-DataRef", + "variantKey": "Name", + "Name": "0x5597122d8290-Name" + }, + { + "id": "0x5597122d8290-Name", + "source": "nl" + }, + { + "id": "0x5597122dce00-ExecutionPartConstruct" + }, + { + "id": "0x5597122d8b80-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122d8b80-ExecutableConstruct" + }, + { + "id": "0x5597122d8b80-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122d8b80-Statement" + }, + { + "id": "0x5597122d8b80-Statement", + "statement": "0x5597122d8b90-ActionStmt", + "source": "f(j, i) = 0.0" + }, + { + "id": "0x5597122d8b90-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x5597122daf00-AssignmentStmt" + }, + { + "id": "0x5597122daf00-AssignmentStmt", + "Variable": "0x5597122dafe0-Variable", + "Expr": "0x5597122daf10-Expr" + }, + { + "id": "0x5597122dafe0-Variable", + "variantKey": "Designator", + "Designator": "0x5597122cbdb0-Designator" + }, + { + "id": "0x5597122cbdb0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122cbdc0-DataRef" + }, + { + "id": "0x5597122cbdc0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x5597122d9de0-ArrayElement" + }, + { + "id": "0x5597122d9de0-ArrayElement", + "base": "0x5597122d9de0-DataRef", + "subscripts": [ + "0x5597122d8a70-SectionSubscript", + "0x559712397540-SectionSubscript" + ] + }, + { + "id": "0x5597122d9de0-DataRef", + "variantKey": "Name", + "Name": "0x5597122d9de0-Name" + }, + { + "id": "0x5597122d9de0-Name", + "source": "f" + }, + { + "id": "0x5597122d8a70-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122d99f0-Expr" + }, + { + "id": "0x5597122d99f0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d8f10-Designator" + }, + { + "id": "0x5597122d8f10-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d8f20-DataRef" + }, + { + "id": "0x5597122d8f20-DataRef", + "variantKey": "Name", + "Name": "0x5597122d8f20-Name" + }, + { + "id": "0x5597122d8f20-Name", + "source": "j" + }, + { + "id": "0x559712397540-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122d9bf0-Expr" + }, + { + "id": "0x5597122d9bf0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d8ab0-Designator" + }, + { + "id": "0x5597122d8ab0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d8ac0-DataRef" + }, + { + "id": "0x5597122d8ac0-DataRef", + "variantKey": "Name", + "Name": "0x5597122d8ac0-Name" + }, + { + "id": "0x5597122d8ac0-Name", + "source": "i" + }, + { + "id": "0x5597122daf10-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122daf30-LiteralConstant" + }, + { + "id": "0x5597122daf30-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x5597122daf30-RealLiteralConstant" + }, + { + "id": "0x5597122daf30-RealLiteralConstant", + "real": "0x5597122daf30-Real" + }, + { + "id": "0x5597122daf30-Real", + "source": "0.0" + }, + { + "id": "0x5597122dc140-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122dc140-ExecutableConstruct" + }, + { + "id": "0x5597122dc140-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x5597122dcca0-DoConstruct" + }, + { + "id": "0x5597122dcca0-DoConstruct", + "Statement": "0x5597122dccf8-Statement", + "ExecutionPartConstruct": [ + "0x5597122dcc50-ExecutionPartConstruct" + ], + "Statement": "0x5597122dcca0-Statement" + }, + { + "id": "0x5597122dccf8-Statement", + "statement": "0x5597122dcd08-NonLabelDoStmt", + "source": "do k = 1, nm" + }, + { + "id": "0x5597122dcd08-NonLabelDoStmt", + "LoopControl": "0x5597122dcd08-LoopControl" + }, + { + "id": "0x5597122dcd08-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x5597122dcd08-LoopBounds" + }, + { + "id": "0x5597122dcd08-LoopBounds", + "var": "0x5597122dcd08-Name", + "lower": "0x5597122db010-Expr", + "upper": "0x5597122db0f0-Expr" + }, + { + "id": "0x5597122dcd08-Name", + "source": "k" + }, + { + "id": "0x5597122db010-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122db030-LiteralConstant" + }, + { + "id": "0x5597122db030-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122db030-IntLiteralConstant" + }, + { + "id": "0x5597122db030-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5597122db0f0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d8d10-Designator" + }, + { + "id": "0x5597122d8d10-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d8d20-DataRef" + }, + { + "id": "0x5597122d8d20-DataRef", + "variantKey": "Name", + "Name": "0x5597122d8d20-Name" + }, + { + "id": "0x5597122d8d20-Name", + "source": "nm" + }, + { + "id": "0x5597122dcce0-ExecutionPartConstruct" + }, + { + "id": "0x5597122dcc50-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122dcc50-ExecutableConstruct" + }, + { + "id": "0x5597122dcc50-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122dcc50-Statement" + }, + { + "id": "0x5597122dcc50-Statement", + "statement": "0x5597122dcc60-ActionStmt", + "source": "f(j, i) = f(j, i) + c(k, i) * d(j, k)" + }, + { + "id": "0x5597122dcc60-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x5597122dcb30-AssignmentStmt" + }, + { + "id": "0x5597122dcb30-AssignmentStmt", + "Variable": "0x5597122dcc10-Variable", + "Expr": "0x5597122dcb40-Expr" + }, + { + "id": "0x5597122dcc10-Variable", + "variantKey": "Designator", + "Designator": "0x5597122d9ed0-Designator" + }, + { + "id": "0x5597122d9ed0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d9ee0-DataRef" + }, + { + "id": "0x5597122d9ee0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x559712396aa0-ArrayElement" + }, + { + "id": "0x559712396aa0-ArrayElement", + "base": "0x559712396aa0-DataRef", + "subscripts": [ + "0x559712398e90-SectionSubscript", + "0x559712398ee0-SectionSubscript" + ] + }, + { + "id": "0x559712396aa0-DataRef", + "variantKey": "Name", + "Name": "0x559712396aa0-Name" + }, + { + "id": "0x559712396aa0-Name", + "source": "f" + }, + { + "id": "0x559712398e90-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122dab20-Expr" + }, + { + "id": "0x5597122dab20-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d93f0-Designator" + }, + { + "id": "0x5597122d93f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d9400-DataRef" + }, + { + "id": "0x5597122d9400-DataRef", + "variantKey": "Name", + "Name": "0x5597122d9400-Name" + }, + { + "id": "0x5597122d9400-Name", + "source": "j" + }, + { + "id": "0x559712398ee0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122dac00-Expr" + }, + { + "id": "0x5597122dac00-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d7f70-Designator" + }, + { + "id": "0x5597122d7f70-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d7f80-DataRef" + }, + { + "id": "0x5597122d7f80-DataRef", + "variantKey": "Name", + "Name": "0x5597122d7f80-Name" + }, + { + "id": "0x5597122d7f80-Name", + "source": "i" + }, + { + "id": "0x5597122dcb40-Expr", + "variantKey": "Add", + "Add": "0x5597122dcb60-Add" + }, + { + "id": "0x5597122dcb60-Add", + "left": "0x5597122dca50-Expr", + "right": "0x5597122dc970-Expr", + "op": "ADD" + }, + { + "id": "0x5597122dca50-Expr", + "variantKey": "Designator", + "Designator": "0x5597123991b0-Designator" + }, + { + "id": "0x5597123991b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597123991c0-DataRef" + }, + { + "id": "0x5597123991c0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x5597122db390-ArrayElement" + }, + { + "id": "0x5597122db390-ArrayElement", + "base": "0x5597122db390-DataRef", + "subscripts": [ + "0x559712399120-SectionSubscript", + "0x559712399170-SectionSubscript" + ] + }, + { + "id": "0x5597122db390-DataRef", + "variantKey": "Name", + "Name": "0x5597122db390-Name" + }, + { + "id": "0x5597122db390-Name", + "source": "f" + }, + { + "id": "0x559712399120-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122db1d0-Expr" + }, + { + "id": "0x5597122db1d0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d9450-Designator" + }, + { + "id": "0x5597122d9450-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d9460-DataRef" + }, + { + "id": "0x5597122d9460-DataRef", + "variantKey": "Name", + "Name": "0x5597122d9460-Name" + }, + { + "id": "0x5597122d9460-Name", + "source": "j" + }, + { + "id": "0x559712399170-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122db2b0-Expr" + }, + { + "id": "0x5597122db2b0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d9b30-Designator" + }, + { + "id": "0x5597122d9b30-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d9b40-DataRef" + }, + { + "id": "0x5597122d9b40-DataRef", + "variantKey": "Name", + "Name": "0x5597122d9b40-Name" + }, + { + "id": "0x5597122d9b40-Name", + "source": "i" + }, + { + "id": "0x5597122dc970-Expr", + "variantKey": "Multiply", + "Multiply": "0x5597122dc990-Multiply" + }, + { + "id": "0x5597122dc990-Multiply", + "left": "0x5597122dc890-Expr", + "right": "0x5597122dc7b0-Expr", + "op": "MULTIPLY" + }, + { + "id": "0x5597122dc890-Expr", + "variantKey": "Designator", + "Designator": "0x559712399550-Designator" + }, + { + "id": "0x559712399550-Designator", + "variantKey": "DataRef", + "DataRef": "0x559712399560-DataRef" + }, + { + "id": "0x559712399560-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x5597122db880-ArrayElement" + }, + { + "id": "0x5597122db880-ArrayElement", + "base": "0x5597122db880-DataRef", + "subscripts": [ + "0x5597122db980-SectionSubscript", + "0x559712399510-SectionSubscript" + ] + }, + { + "id": "0x5597122db880-DataRef", + "variantKey": "Name", + "Name": "0x5597122db880-Name" + }, + { + "id": "0x5597122db880-Name", + "source": "c" + }, + { + "id": "0x5597122db980-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122db5b0-Expr" + }, + { + "id": "0x5597122db5b0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122dbd10-Designator" + }, + { + "id": "0x5597122dbd10-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122dbd20-DataRef" + }, + { + "id": "0x5597122dbd20-DataRef", + "variantKey": "Name", + "Name": "0x5597122dbd20-Name" + }, + { + "id": "0x5597122dbd20-Name", + "source": "k" + }, + { + "id": "0x559712399510-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122db690-Expr" + }, + { + "id": "0x5597122db690-Expr", + "variantKey": "Designator", + "Designator": "0x5597122dbb10-Designator" + }, + { + "id": "0x5597122dbb10-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122dbb20-DataRef" + }, + { + "id": "0x5597122dbb20-DataRef", + "variantKey": "Name", + "Name": "0x5597122dbb20-Name" + }, + { + "id": "0x5597122dbb20-Name", + "source": "i" + }, + { + "id": "0x5597122dc7b0-Expr", + "variantKey": "Designator", + "Designator": "0x5597123999c0-Designator" + }, + { + "id": "0x5597123999c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597123999d0-DataRef" + }, + { + "id": "0x5597123999d0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x5597122dbf60-ArrayElement" + }, + { + "id": "0x5597122dbf60-ArrayElement", + "base": "0x5597122dbf60-DataRef", + "subscripts": [ + "0x559712399930-SectionSubscript", + "0x559712399980-SectionSubscript" + ] + }, + { + "id": "0x5597122dbf60-DataRef", + "variantKey": "Name", + "Name": "0x5597122dbf60-Name" + }, + { + "id": "0x5597122dbf60-Name", + "source": "d" + }, + { + "id": "0x559712399930-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122dbb70-Expr" + }, + { + "id": "0x5597122dbb70-Expr", + "variantKey": "Designator", + "Designator": "0x5597122dc3f0-Designator" + }, + { + "id": "0x5597122dc3f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122dc400-DataRef" + }, + { + "id": "0x5597122dc400-DataRef", + "variantKey": "Name", + "Name": "0x5597122dc400-Name" + }, + { + "id": "0x5597122dc400-Name", + "source": "j" + }, + { + "id": "0x559712399980-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122dbd70-Expr" + }, + { + "id": "0x5597122dbd70-Expr", + "variantKey": "Designator", + "Designator": "0x5597122dc1f0-Designator" + }, + { + "id": "0x5597122dc1f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122dc200-DataRef" + }, + { + "id": "0x5597122dc200-DataRef", + "variantKey": "Name", + "Name": "0x5597122dc200-Name" + }, + { + "id": "0x5597122dc200-Name", + "source": "k" + }, + { + "id": "0x5597122dcca0-Statement", + "statement": "0x5597122dccb0-EndDoStmt", + "source": "end do" + }, + { + "id": "0x5597122dccb0-EndDoStmt" + }, + { + "id": "0x5597122dcdc0-Statement", + "statement": "0x5597122dcdd0-EndDoStmt", + "source": "end do" + }, + { + "id": "0x5597122dcdd0-EndDoStmt" + }, + { + "id": "0x5597122dcee0-Statement", + "statement": "0x5597122dcef0-EndDoStmt", + "source": "end do" + }, + { + "id": "0x5597122dcef0-EndDoStmt" + }, + { + "id": "0x5597122deba0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122deba0-ExecutableConstruct" + }, + { + "id": "0x5597122deba0-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x5597122d32f0-DoConstruct" + }, + { + "id": "0x5597122d32f0-DoConstruct", + "Statement": "0x5597122d3348-Statement", + "ExecutionPartConstruct": [ + "0x5597122dea00-ExecutionPartConstruct" + ], + "Statement": "0x5597122d32f0-Statement" + }, + { + "id": "0x5597122d3348-Statement", + "statement": "0x5597122d3358-NonLabelDoStmt", + "source": "do i = 1, ni" + }, + { + "id": "0x5597122d3358-NonLabelDoStmt", + "LoopControl": "0x5597122d3358-LoopControl" + }, + { + "id": "0x5597122d3358-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x5597122d3358-LoopBounds" + }, + { + "id": "0x5597122d3358-LoopBounds", + "var": "0x5597122d3358-Name", + "lower": "0x5597122dd000-Expr", + "upper": "0x5597122dd0e0-Expr" + }, + { + "id": "0x5597122d3358-Name", + "source": "i" + }, + { + "id": "0x5597122dd000-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122dd020-LiteralConstant" + }, + { + "id": "0x5597122dd020-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122dd020-IntLiteralConstant" + }, + { + "id": "0x5597122dd020-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5597122dd0e0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122dc530-Designator" + }, + { + "id": "0x5597122dc530-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122dc540-DataRef" + }, + { + "id": "0x5597122dc540-DataRef", + "variantKey": "Name", + "Name": "0x5597122dc540-Name" + }, + { + "id": "0x5597122dc540-Name", + "source": "ni" + }, + { + "id": "0x5597122d3330-ExecutionPartConstruct" + }, + { + "id": "0x5597122dea00-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122dea00-ExecutableConstruct" + }, + { + "id": "0x5597122dea00-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x5597122d3870-DoConstruct" + }, + { + "id": "0x5597122d3870-DoConstruct", + "Statement": "0x5597122d38c8-Statement", + "ExecutionPartConstruct": [ + "0x5597122d8b20-ExecutionPartConstruct", + "0x5597122de9a0-ExecutionPartConstruct" + ], + "Statement": "0x5597122d3870-Statement" + }, + { + "id": "0x5597122d38c8-Statement", + "statement": "0x5597122d38d8-NonLabelDoStmt", + "source": "do j = 1, nl" + }, + { + "id": "0x5597122d38d8-NonLabelDoStmt", + "LoopControl": "0x5597122d38d8-LoopControl" + }, + { + "id": "0x5597122d38d8-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x5597122d38d8-LoopBounds" + }, + { + "id": "0x5597122d38d8-LoopBounds", + "var": "0x5597122d38d8-Name", + "lower": "0x5597122dd1c0-Expr", + "upper": "0x5597122dd2a0-Expr" + }, + { + "id": "0x5597122d38d8-Name", + "source": "j" + }, + { + "id": "0x5597122dd1c0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122dd1e0-LiteralConstant" + }, + { + "id": "0x5597122dd1e0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122dd1e0-IntLiteralConstant" + }, + { + "id": "0x5597122dd1e0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5597122dd2a0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d8110-Designator" + }, + { + "id": "0x5597122d8110-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d8120-DataRef" + }, + { + "id": "0x5597122d8120-DataRef", + "variantKey": "Name", + "Name": "0x5597122d8120-Name" + }, + { + "id": "0x5597122d8120-Name", + "source": "nl" + }, + { + "id": "0x5597122d38b0-ExecutionPartConstruct" + }, + { + "id": "0x5597122d8b20-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122d8b20-ExecutableConstruct" + }, + { + "id": "0x5597122d8b20-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122d8b20-Statement" + }, + { + "id": "0x5597122d8b20-Statement", + "statement": "0x5597122d8b30-ActionStmt", + "source": "g(j, i) = 0.0" + }, + { + "id": "0x5597122d8b30-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x5597122dd760-AssignmentStmt" + }, + { + "id": "0x5597122dd760-AssignmentStmt", + "Variable": "0x5597122dd840-Variable", + "Expr": "0x5597122dd770-Expr" + }, + { + "id": "0x5597122dd840-Variable", + "variantKey": "Designator", + "Designator": "0x559712399060-Designator" + }, + { + "id": "0x559712399060-Designator", + "variantKey": "DataRef", + "DataRef": "0x559712399070-DataRef" + }, + { + "id": "0x559712399070-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x5597122dc640-ArrayElement" + }, + { + "id": "0x5597122dc640-ArrayElement", + "base": "0x5597122dc640-DataRef", + "subscripts": [ + "0x5597123990d0-SectionSubscript", + "0x55971239afb0-SectionSubscript" + ] + }, + { + "id": "0x5597122dc640-DataRef", + "variantKey": "Name", + "Name": "0x5597122dc640-Name" + }, + { + "id": "0x5597122dc640-Name", + "source": "g" + }, + { + "id": "0x5597123990d0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122dc250-Expr" + }, + { + "id": "0x5597122dc250-Expr", + "variantKey": "Designator", + "Designator": "0x5597122db770-Designator" + }, + { + "id": "0x5597122db770-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122db780-DataRef" + }, + { + "id": "0x5597122db780-DataRef", + "variantKey": "Name", + "Name": "0x5597122db780-Name" + }, + { + "id": "0x5597122db780-Name", + "source": "j" + }, + { + "id": "0x55971239afb0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122dc450-Expr" + }, + { + "id": "0x5597122dc450-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d91f0-Designator" + }, + { + "id": "0x5597122d91f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d9200-DataRef" + }, + { + "id": "0x5597122d9200-DataRef", + "variantKey": "Name", + "Name": "0x5597122d9200-Name" + }, + { + "id": "0x5597122d9200-Name", + "source": "i" + }, + { + "id": "0x5597122dd770-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122dd790-LiteralConstant" + }, + { + "id": "0x5597122dd790-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x5597122dd790-RealLiteralConstant" + }, + { + "id": "0x5597122dd790-RealLiteralConstant", + "real": "0x5597122dd790-Real" + }, + { + "id": "0x5597122dd790-Real", + "source": "0.0" + }, + { + "id": "0x5597122de9a0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122de9a0-ExecutableConstruct" + }, + { + "id": "0x5597122de9a0-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x5597122d3750-DoConstruct" + }, + { + "id": "0x5597122d3750-DoConstruct", + "Statement": "0x5597122d37a8-Statement", + "ExecutionPartConstruct": [ + "0x5597122d3df0-ExecutionPartConstruct" + ], + "Statement": "0x5597122d3750-Statement" + }, + { + "id": "0x5597122d37a8-Statement", + "statement": "0x5597122d37b8-NonLabelDoStmt", + "source": "do k = 1, nj" + }, + { + "id": "0x5597122d37b8-NonLabelDoStmt", + "LoopControl": "0x5597122d37b8-LoopControl" + }, + { + "id": "0x5597122d37b8-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x5597122d37b8-LoopBounds" + }, + { + "id": "0x5597122d37b8-LoopBounds", + "var": "0x5597122d37b8-Name", + "lower": "0x5597122dd870-Expr", + "upper": "0x5597122dd950-Expr" + }, + { + "id": "0x5597122d37b8-Name", + "source": "k" + }, + { + "id": "0x5597122dd870-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5597122dd890-LiteralConstant" + }, + { + "id": "0x5597122dd890-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5597122dd890-IntLiteralConstant" + }, + { + "id": "0x5597122dd890-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5597122dd950-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d7060-Designator" + }, + { + "id": "0x5597122d7060-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d7070-DataRef" + }, + { + "id": "0x5597122d7070-DataRef", + "variantKey": "Name", + "Name": "0x5597122d7070-Name" + }, + { + "id": "0x5597122d7070-Name", + "source": "nj" + }, + { + "id": "0x5597122d3790-ExecutionPartConstruct" + }, + { + "id": "0x5597122d3df0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5597122d3df0-ExecutableConstruct" + }, + { + "id": "0x5597122d3df0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5597122d3df0-Statement" + }, + { + "id": "0x5597122d3df0-Statement", + "statement": "0x5597122d3e00-ActionStmt", + "source": "g(j, i) = g(j, i) + e(k, i) * f(j, k)" + }, + { + "id": "0x5597122d3e00-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x5597122d40f0-AssignmentStmt" + }, + { + "id": "0x5597122d40f0-AssignmentStmt", + "Variable": "0x5597122d41d0-Variable", + "Expr": "0x5597122d4100-Expr" + }, + { + "id": "0x5597122d41d0-Variable", + "variantKey": "Designator", + "Designator": "0x559712399d20-Designator" + }, + { + "id": "0x559712399d20-Designator", + "variantKey": "DataRef", + "DataRef": "0x559712399d30-DataRef" + }, + { + "id": "0x559712399d30-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x5597122dd5f0-ArrayElement" + }, + { + "id": "0x5597122dd5f0-ArrayElement", + "base": "0x5597122dd5f0-DataRef", + "subscripts": [ + "0x55971239c9b0-SectionSubscript", + "0x55971239ca00-SectionSubscript" + ] + }, + { + "id": "0x5597122dd5f0-DataRef", + "variantKey": "Name", + "Name": "0x5597122dd5f0-Name" + }, + { + "id": "0x5597122dd5f0-Name", + "source": "g" + }, + { + "id": "0x55971239c9b0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122dd380-Expr" + }, + { + "id": "0x5597122dd380-Expr", + "variantKey": "Designator", + "Designator": "0x5597122dbc50-Designator" + }, + { + "id": "0x5597122dbc50-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122dbc60-DataRef" + }, + { + "id": "0x5597122dbc60-DataRef", + "variantKey": "Name", + "Name": "0x5597122dbc60-Name" + }, + { + "id": "0x5597122dbc60-Name", + "source": "j" + }, + { + "id": "0x55971239ca00-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122dd460-Expr" + }, + { + "id": "0x5597122dd460-Expr", + "variantKey": "Designator", + "Designator": "0x5597122d95f0-Designator" + }, + { + "id": "0x5597122d95f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122d9600-DataRef" + }, + { + "id": "0x5597122d9600-DataRef", + "variantKey": "Name", + "Name": "0x5597122d9600-Name" + }, + { + "id": "0x5597122d9600-Name", + "source": "i" + }, + { + "id": "0x5597122d4100-Expr", + "variantKey": "Add", + "Add": "0x5597122d4120-Add" + }, + { + "id": "0x5597122d4120-Add", + "left": "0x5597122d4010-Expr", + "right": "0x5597122af0e0-Expr", + "op": "ADD" + }, + { + "id": "0x5597122d4010-Expr", + "variantKey": "Designator", + "Designator": "0x55971239cb90-Designator" + }, + { + "id": "0x55971239cb90-Designator", + "variantKey": "DataRef", + "DataRef": "0x55971239cba0-DataRef" + }, + { + "id": "0x55971239cba0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x5597122dd720-ArrayElement" + }, + { + "id": "0x5597122dd720-ArrayElement", + "base": "0x5597122dd720-DataRef", + "subscripts": [ + "0x55971239cb00-SectionSubscript", + "0x55971239cb50-SectionSubscript" + ] + }, + { + "id": "0x5597122dd720-DataRef", + "variantKey": "Name", + "Name": "0x5597122dd720-Name" + }, + { + "id": "0x5597122dd720-Name", + "source": "g" + }, + { + "id": "0x55971239cb00-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122dda30-Expr" + }, + { + "id": "0x5597122dda30-Expr", + "variantKey": "Designator", + "Designator": "0x5597122dbcb0-Designator" + }, + { + "id": "0x5597122dbcb0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122dbcc0-DataRef" + }, + { + "id": "0x5597122dbcc0-DataRef", + "variantKey": "Name", + "Name": "0x5597122dbcc0-Name" + }, + { + "id": "0x5597122dbcc0-Name", + "source": "j" + }, + { + "id": "0x55971239cb50-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122ddb10-Expr" + }, + { + "id": "0x5597122ddb10-Expr", + "variantKey": "Designator", + "Designator": "0x5597122dc390-Designator" + }, + { + "id": "0x5597122dc390-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122dc3a0-DataRef" + }, + { + "id": "0x5597122dc3a0-DataRef", + "variantKey": "Name", + "Name": "0x5597122dc3a0-Name" + }, + { + "id": "0x5597122dc3a0-Name", + "source": "i" + }, + { + "id": "0x5597122af0e0-Expr", + "variantKey": "Multiply", + "Multiply": "0x5597122af100-Multiply" + }, + { + "id": "0x5597122af100-Multiply", + "left": "0x5597122d3ec0-Expr", + "right": "0x5597122d3c20-Expr", + "op": "MULTIPLY" + }, + { + "id": "0x5597122d3ec0-Expr", + "variantKey": "Designator", + "Designator": "0x55971239cf30-Designator" + }, + { + "id": "0x55971239cf30-Designator", + "variantKey": "DataRef", + "DataRef": "0x55971239cf40-DataRef" + }, + { + "id": "0x55971239cf40-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x5597122de0e0-ArrayElement" + }, + { + "id": "0x5597122de0e0-ArrayElement", + "base": "0x5597122de0e0-DataRef", + "subscripts": [ + "0x5597122de1e0-SectionSubscript", + "0x55971239cef0-SectionSubscript" + ] + }, + { + "id": "0x5597122de0e0-DataRef", + "variantKey": "Name", + "Name": "0x5597122de0e0-Name" + }, + { + "id": "0x5597122de0e0-Name", + "source": "e" + }, + { + "id": "0x5597122de1e0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122dde10-Expr" + }, + { + "id": "0x5597122dde10-Expr", + "variantKey": "Designator", + "Designator": "0x5597122de570-Designator" + }, + { + "id": "0x5597122de570-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122de580-DataRef" + }, + { + "id": "0x5597122de580-DataRef", + "variantKey": "Name", + "Name": "0x5597122de580-Name" + }, + { + "id": "0x5597122de580-Name", + "source": "k" + }, + { + "id": "0x55971239cef0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122ddef0-Expr" + }, + { + "id": "0x5597122ddef0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122de370-Designator" + }, + { + "id": "0x5597122de370-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122de380-DataRef" + }, + { + "id": "0x5597122de380-DataRef", + "variantKey": "Name", + "Name": "0x5597122de380-Name" + }, + { + "id": "0x5597122de380-Name", + "source": "i" + }, + { + "id": "0x5597122d3c20-Expr", + "variantKey": "Designator", + "Designator": "0x55971239d3a0-Designator" + }, + { + "id": "0x55971239d3a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55971239d3b0-DataRef" + }, + { + "id": "0x55971239d3b0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x5597122de7c0-ArrayElement" + }, + { + "id": "0x5597122de7c0-ArrayElement", + "base": "0x5597122de7c0-DataRef", + "subscripts": [ + "0x55971239d310-SectionSubscript", + "0x55971239d360-SectionSubscript" + ] + }, + { + "id": "0x5597122de7c0-DataRef", + "variantKey": "Name", + "Name": "0x5597122de7c0-Name" + }, + { + "id": "0x5597122de7c0-Name", + "source": "f" + }, + { + "id": "0x55971239d310-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122de3d0-Expr" + }, + { + "id": "0x5597122de3d0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122dec50-Designator" + }, + { + "id": "0x5597122dec50-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122dec60-DataRef" + }, + { + "id": "0x5597122dec60-DataRef", + "variantKey": "Name", + "Name": "0x5597122dec60-Name" + }, + { + "id": "0x5597122dec60-Name", + "source": "j" + }, + { + "id": "0x55971239d360-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x5597122de5d0-Expr" + }, + { + "id": "0x5597122de5d0-Expr", + "variantKey": "Designator", + "Designator": "0x5597122dea50-Designator" + }, + { + "id": "0x5597122dea50-Designator", + "variantKey": "DataRef", + "DataRef": "0x5597122dea60-DataRef" + }, + { + "id": "0x5597122dea60-DataRef", + "variantKey": "Name", + "Name": "0x5597122dea60-Name" + }, + { + "id": "0x5597122dea60-Name", + "source": "k" + }, + { + "id": "0x5597122d3750-Statement", + "statement": "0x5597122d3760-EndDoStmt", + "source": "end do" + }, + { + "id": "0x5597122d3760-EndDoStmt" + }, + { + "id": "0x5597122d3870-Statement", + "statement": "0x5597122d3880-EndDoStmt", + "source": "end do" + }, + { + "id": "0x5597122d3880-EndDoStmt" + }, + { + "id": "0x5597122d32f0-Statement", + "statement": "0x5597122d3300-EndDoStmt", + "source": "end do" + }, + { + "id": "0x5597122d3300-EndDoStmt" + }, + { + "id": "0x5597122df350-Statement", + "statement": "0x5597122df360-EndSubroutineStmt", + "source": "end subroutine" + }, + { + "id": "0x5597122df360-EndSubroutineStmt" + }, + { + "id": "0x5597122c20a0-Statement", + "statement": "0x5597122c20b0-EndProgramStmt", + "source": "end program" + }, + { + "id": "0x5597122c20b0-EndProgramStmt" + } + ], + "comments": [ + { + "text": "!******************************************************************************", + "stmtId": "0x5597122c21e8-Statement" + }, + { + "text": "!", + "stmtId": "0x5597122c21e8-Statement" + }, + { + "text": "! 3mm.F90: This file is part of the PolyBench/Fortran 1.0 test suite.", + "stmtId": "0x5597122c21e8-Statement" + }, + { + "text": "!", + "stmtId": "0x5597122c21e8-Statement" + }, + { + "text": "! Contact: Louis-Noel Pouchet ", + "stmtId": "0x5597122c21e8-Statement" + }, + { + "text": "! Web address: http://polybench.sourceforge.net", + "stmtId": "0x5597122c21e8-Statement" + }, + { + "text": "!", + "stmtId": "0x5597122c21e8-Statement" + }, + { + "text": "!******************************************************************************", + "stmtId": "0x5597122c21e8-Statement" + }, + { + "text": "! Include polybench common header.", + "stmtId": "0x5597122c21e8-Statement" + }, + { + "text": "! Include benchmark-specific header.", + "stmtId": "0x5597122c21e8-Statement" + }, + { + "text": "! Default data type is double, default size is 4000.", + "stmtId": "0x5597122c21e8-Statement" + }, + { + "text": "! Allocation of Arrays", + "stmtId": "0x5597122b0510-Statement" + }, + { + "text": "! Initialization", + "stmtId": "0x5597122b6fa0-Statement" + }, + { + "text": "! Kernel Execution", + "stmtId": "0x5597122b5e60-Statement" + }, + { + "text": "! Prevent dead-code elimination. All live-out data must be printed", + "stmtId": "0x5597122b5820-Statement" + }, + { + "text": "! by the function call in argument.", + "stmtId": "0x5597122b5820-Statement" + }, + { + "text": "! Deallocation of Arrays", + "stmtId": "0x5597122c94c0-Statement" + }, + { + "text": "!$pragma scop", + "stmtId": "0x5597122da6d8-Statement" + }, + { + "text": "! E := A*B", + "stmtId": "0x5597122da6d8-Statement" + }, + { + "text": "! F := C*D", + "stmtId": "0x5597122dcf38-Statement" + }, + { + "text": "! G := E*F", + "stmtId": "0x5597122d3348-Statement" + }, + { + "text": "!$pragma endscop", + "stmtId": "0x5597122df350-Statement" + } + ], + "enums": { + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" ], - "items": [ - ] - }, - { - "id": "0x5753ca1c2370-IoUnit", - "variantKey": "Expr", - "Expr": "0x5753ca1c2290-Expr" - }, - { - "id": "0x5753ca1c2290-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1c22b0-LiteralConstant" - }, - { - "id": "0x5753ca1c22b0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1c22b0-IntLiteralConstant" - }, - { - "id": "0x5753ca1c22b0-IntLiteralConstant", - "CharBlock": "0" - }, - { - "id": "0x5753ca1c23a0-Format", - "variantKey": "Star", - "Star": "0x5753ca1c23a0-Star" - }, - { - "id": "0x5753ca1c23a0-Star" - }, - { - "id": "0x5753ca1c24c0-Statement", - "statement": "0x5753ca1c24d0-EndIfStmt", - "source": "end if" - }, - { - "id": "0x5753ca1c24d0-EndIfStmt" - }, - { - "id": "0x5753ca1c25e0-Statement", - "statement": "0x5753ca1c25f0-EndDoStmt", - "source": "end do" - }, - { - "id": "0x5753ca1c25f0-EndDoStmt" - }, - { - "id": "0x5753ca1c2700-Statement", - "statement": "0x5753ca1c2710-EndDoStmt", - "source": "end do" - }, - { - "id": "0x5753ca1c2710-EndDoStmt" - }, - { - "id": "0x5753ca1b11e0-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1b11e0-ExecutableConstruct" - }, - { - "id": "0x5753ca1b11e0-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1b11e0-Statement" - }, - { - "id": "0x5753ca1b11e0-Statement", - "statement": "0x5753ca1b11f0-ActionStmt", - "source": "write(0, *)" - }, - { - "id": "0x5753ca1b11f0-ActionStmt", - "variantKey": "WriteStmt", - "WriteStmt": "0x5753ca1c2900-WriteStmt" - }, - { - "id": "0x5753ca1c2900-WriteStmt", - "iounit": "0x5753ca1c2900-IoUnit", - "format": "0x5753ca1c2930-Format", - "controls": [ + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "Fortran::common::ImportKind": [ + "Default", + "Only", + "None", + "All" + ], + "Fortran::common::OmpDependenceKind": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::common::OmpMemoryOrderType": [ + "Acq_Rel", + "Acquire", + "Relaxed", + "Release", + "Seq_Cst" + ], + "Fortran::common::OpenACCDeviceType": [ + "Star", + "Default", + "Nvidia", + "Radeon", + "Host", + "Multicore", + "None" + ], + "Fortran::parser::AccDataModifier::Modifier": [ + "ReadOnly", + "Zero" + ], + "Fortran::parser::AccessSpec::Kind": [ + "Public", + "Private" + ], + "Fortran::parser::BindEntity::Kind": [ + "Object", + "Common" + ], + "Fortran::parser::CompilerDirective::VectorLength::Kind": [ + "Auto", + "Fixed", + "Scalable" + ], + "Fortran::parser::ConnectSpec::CharExpr::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Encoding", + "Form", + "Pad", + "Position", + "Round", + "Sign", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::DefinedOperator::IntrinsicOperator": [ + "Power", + "Multiply", + "Divide", + "Add", + "Subtract", + "Concat", + "LT", + "LE", + "EQ", + "NE", + "GE", + "GT", + "NOT", + "AND", + "OR", + "EQV", + "NEQV" + ], + "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec": [ + "External", + "Type" + ], + "Fortran::parser::InquireSpec::CharVar::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Direct", + "Encoding", + "Form", + "Formatted", + "Iomsg", + "Name", + "Pad", + "Position", + "Read", + "Readwrite", + "Round", + "Sequential", + "Sign", + "Stream", + "Status", + "Unformatted", + "Write", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::InquireSpec::IntVar::Kind": [ + "Iostat", + "Nextrec", + "Number", + "Pos", + "Recl", + "Size" + ], + "Fortran::parser::InquireSpec::LogVar::Kind": [ + "Exist", + "Named", + "Opened", + "Pending" + ], + "Fortran::parser::IntentSpec::Intent": [ + "In", + "Out", + "InOut" + ], + "Fortran::parser::IoControlSpec::CharExpr::Kind": [ + "Advance", + "Blank", + "Decimal", + "Delim", + "Pad", + "Round", + "Sign" + ], + "Fortran::parser::ReductionOperator::Operator": [ + "Plus", + "Multiply", + "Max", + "Min", + "Iand", + "Ior", + "Ieor", + "And", + "Or", + "Eqv", + "Neqv" + ], + "Fortran::parser::OmpAccessGroup::Value": [ + "Cgroup" + ], + "Fortran::parser::OmpAdjustArgsClause::OmpAdjustOp::Value": [ + "Nothing", + "Need_Device_Ptr" + ], + "Fortran::parser::OmpAlwaysModifier::Value": [ + "Always" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpAttachModifier::Value": [ + "Always", + "Never", + "Auto" + ], + "Fortran::parser::OmpAutomapModifier::Value": [ + "Automap" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpCloseModifier::Value": [ + "Close" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default", + "Present" + ], + "Fortran::parser::OmpDeleteModifier::Value": [ + "Delete" ], - "items": [ + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpDirectiveSpecification::Flag": [ + "DeprecatedSyntax", + "CrossesLabelDo" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpInteropType::Value": [ + "Target", + "Targetsync" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "Storage", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpObject::Invalid::Kind": [ + "BlankCommonBlock" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpPresentModifier::Value": [ + "Present" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpRefModifier::Value": [ + "Ref_Ptee", + "Ref_Ptr", + "Ref_Ptr_Ptee" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpSelfModifier::Value": [ + "Self" + ], + "Fortran::parser::OmpSeverityClause::SevLevel": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpThreadsetClause::ThreadsetPolicy": [ + "Omp_Pool", + "Omp_Team" + ], + "Fortran::parser::OmpTraitSelectorName::Value": [ + "Arch", + "Atomic_Default_Mem_Order", + "Condition", + "Device_Num", + "Extension", + "Isa", + "Kind", + "Requires", + "Simd", + "Uid", + "Vendor" + ], + "Fortran::parser::OmpTraitSetSelectorName::Value": [ + "Construct", + "Device", + "Implementation", + "Target_Device", + "User" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpxHoldModifier::Value": [ + "Ompx_Hold" + ], + "Fortran::parser::ProcedureStmt::Kind": [ + "ModuleProcedure", + "Procedure" + ], + "Fortran::parser::SavedEntity::Kind": [ + "Entity", + "Common" + ], + "Fortran::parser::StopStmt::Kind": [ + "Stop", + "ErrorStop" + ], + "Fortran::parser::UseStmt::ModuleNature": [ + "Intrinsic", + "Non_Intrinsic" ] - }, - { - "id": "0x5753ca1c2900-IoUnit", - "variantKey": "Expr", - "Expr": "0x5753ca1c2820-Expr" - }, - { - "id": "0x5753ca1c2820-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1c2840-LiteralConstant" - }, - { - "id": "0x5753ca1c2840-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1c2840-IntLiteralConstant" - }, - { - "id": "0x5753ca1c2840-IntLiteralConstant", - "CharBlock": "0" - }, - { - "id": "0x5753ca1c2930-Format", - "variantKey": "Star", - "Star": "0x5753ca1c2930-Star" - }, - { - "id": "0x5753ca1c2930-Star" - }, - { - "id": "0x5753ca1c4280-Statement", - "statement": "0x5753ca1c4290-EndSubroutineStmt", - "source": "end subroutine" - }, - { - "id": "0x5753ca1c4290-EndSubroutineStmt" - }, - { - "id": "0x5753ca1c46d0-InternalSubprogram", - "variantKey": "SubroutineSubprogram", - "SubroutineSubprogram": "0x5753ca1c1140-SubroutineSubprogram" - }, - { - "id": "0x5753ca1c1140-SubroutineSubprogram", - "Statement": "0x5753ca1c1288-Statement", - "SpecificationPart": "0x5753ca1c11e0-SpecificationPart", - "ExecutionPart": "0x5753ca1c11c8-ExecutionPart", - "Statement": "0x5753ca1c1140-Statement" - }, - { - "id": "0x5753ca1c1288-Statement", - "statement": "0x5753ca1c1298-SubroutineStmt", - "source": "subroutine kernel_3mm(ni, nj, nk, nl, nm, e, a, b, f, c, d, g)" - }, - { - "id": "0x5753ca1c1298-SubroutineStmt", - "Name": "0x5753ca1c12d0-Name", - "DummyArg": [ - "0x5753ca1b0000-DummyArg", - "0x5753ca1afc00-DummyArg", - "0x5753ca1afc70-DummyArg", - "0x5753ca1afcb0-DummyArg", - "0x5753ca1afcf0-DummyArg", - "0x5753ca1ba9f0-DummyArg", - "0x5753ca1aea20-DummyArg", - "0x5753ca1aeae0-DummyArg", - "0x5753ca1a9610-DummyArg", - "0x5753ca189160-DummyArg", - "0x5753ca1ad6a0-DummyArg", - "0x5753ca1af990-DummyArg"] - }, - { - "id": "0x5753ca1c12d0-Name", - "source": "kernel_3mm" - }, - { - "id": "0x5753ca1b0000-DummyArg", - "variantKey": "Name", - "Name": "0x5753ca1b0000-Name" - }, - { - "id": "0x5753ca1b0000-Name", - "source": "ni" - }, - { - "id": "0x5753ca1afc00-DummyArg", - "variantKey": "Name", - "Name": "0x5753ca1afc00-Name" - }, - { - "id": "0x5753ca1afc00-Name", - "source": "nj" - }, - { - "id": "0x5753ca1afc70-DummyArg", - "variantKey": "Name", - "Name": "0x5753ca1afc70-Name" - }, - { - "id": "0x5753ca1afc70-Name", - "source": "nk" - }, - { - "id": "0x5753ca1afcb0-DummyArg", - "variantKey": "Name", - "Name": "0x5753ca1afcb0-Name" - }, - { - "id": "0x5753ca1afcb0-Name", - "source": "nl" - }, - { - "id": "0x5753ca1afcf0-DummyArg", - "variantKey": "Name", - "Name": "0x5753ca1afcf0-Name" - }, - { - "id": "0x5753ca1afcf0-Name", - "source": "nm" - }, - { - "id": "0x5753ca1ba9f0-DummyArg", - "variantKey": "Name", - "Name": "0x5753ca1ba9f0-Name" - }, - { - "id": "0x5753ca1ba9f0-Name", - "source": "e" - }, - { - "id": "0x5753ca1aea20-DummyArg", - "variantKey": "Name", - "Name": "0x5753ca1aea20-Name" - }, - { - "id": "0x5753ca1aea20-Name", - "source": "a" - }, - { - "id": "0x5753ca1aeae0-DummyArg", - "variantKey": "Name", - "Name": "0x5753ca1aeae0-Name" - }, - { - "id": "0x5753ca1aeae0-Name", - "source": "b" - }, - { - "id": "0x5753ca1a9610-DummyArg", - "variantKey": "Name", - "Name": "0x5753ca1a9610-Name" - }, - { - "id": "0x5753ca1a9610-Name", - "source": "f" - }, - { - "id": "0x5753ca189160-DummyArg", - "variantKey": "Name", - "Name": "0x5753ca189160-Name" - }, - { - "id": "0x5753ca189160-Name", - "source": "c" - }, - { - "id": "0x5753ca1ad6a0-DummyArg", - "variantKey": "Name", - "Name": "0x5753ca1ad6a0-Name" - }, - { - "id": "0x5753ca1ad6a0-Name", - "source": "d" - }, - { - "id": "0x5753ca1af990-DummyArg", - "variantKey": "Name", - "Name": "0x5753ca1af990-Name" - }, - { - "id": "0x5753ca1af990-Name", - "source": "g" - }, - { - "id": "0x5753ca1c11e0-SpecificationPart", - "ImplicitPart": "0x5753ca1c11f8-ImplicitPart", - "DeclarationConstruct": [ - "0x5753ca1ad780-DeclarationConstruct", - "0x5753ca1a6c80-DeclarationConstruct", - "0x5753ca1c32e0-DeclarationConstruct", - "0x5753ca1c3710-DeclarationConstruct", - "0x5753ca1c3b40-DeclarationConstruct", - "0x5753ca1c3f70-DeclarationConstruct", - "0x5753ca1c4670-DeclarationConstruct", - "0x5753ca1b8f10-DeclarationConstruct", - "0x5753ca1c0810-DeclarationConstruct"] - }, - { - "id": "0x5753ca1c11f8-ImplicitPart" - }, - { - "id": "0x5753ca1ad780-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5753ca1ad780-SpecificationConstruct" - }, - { - "id": "0x5753ca1ad780-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1ad780-Statement" - }, - { - "id": "0x5753ca1ad780-Statement", - "statement": "0x5753ca1be730-TypeDeclarationStmt", - "source": "double precision, dimension(nk, ni) :: a" - }, - { - "id": "0x5753ca1be730-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5753ca1be760-DeclarationTypeSpec", - "AttrSpec": [ - "0x5753ca1b6af0-AttrSpec"], - "EntityDecl": [ - "0x5753ca1c2bd0-EntityDecl"] - }, - { - "id": "0x5753ca1be760-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5753ca1be760-IntrinsicTypeSpec" - }, - { - "id": "0x5753ca1be760-IntrinsicTypeSpec", - "variantKey": "DoublePrecision", - "DoublePrecision": "0x5753ca1be760-DoublePrecision" - }, - { - "id": "0x5753ca1be760-DoublePrecision" - }, - { - "id": "0x5753ca1b6af0-AttrSpec", - "variantKey": "ArraySpec", - "ArraySpec": "0x5753ca1b6af0-ArraySpec" - }, - { - "id": "0x5753ca1b6af0-ArraySpec", - "variantKey": "ExplicitShapeSpec", - "ExplicitShapeSpec": [ - "0x5753ca1aa3f0-ExplicitShapeSpec", - "0x5753ca1ada30-ExplicitShapeSpec"] - }, - { - "id": "0x5753ca1aa3f0-ExplicitShapeSpec", - "upper_bound": "0x5753ca1aa3f0-SpecificationExpr" - }, - { - "id": "0x5753ca1aa3f0-SpecificationExpr", - "Expr": "0x5753ca1c4460-Expr" - }, - { - "id": "0x5753ca1c4460-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1b5970-Designator" - }, - { - "id": "0x5753ca1b5970-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1b5980-DataRef" - }, - { - "id": "0x5753ca1b5980-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1b5980-Name" - }, - { - "id": "0x5753ca1b5980-Name", - "source": "nk" - }, - { - "id": "0x5753ca1ada30-ExplicitShapeSpec", - "upper_bound": "0x5753ca1ada30-SpecificationExpr" - }, - { - "id": "0x5753ca1ada30-SpecificationExpr", - "Expr": "0x5753ca1c2ae0-Expr" - }, - { - "id": "0x5753ca1c2ae0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c0690-Designator" - }, - { - "id": "0x5753ca1c0690-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c06a0-DataRef" - }, - { - "id": "0x5753ca1c06a0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c06a0-Name" - }, - { - "id": "0x5753ca1c06a0-Name", - "source": "ni" - }, - { - "id": "0x5753ca1c2bd0-EntityDecl", - "Name": "0x5753ca1c2c88-Name" - }, - { - "id": "0x5753ca1c2c88-Name", - "source": "a" - }, - { - "id": "0x5753ca1a6c80-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5753ca1a6c80-SpecificationConstruct" - }, - { - "id": "0x5753ca1a6c80-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1a6c80-Statement" - }, - { - "id": "0x5753ca1a6c80-Statement", - "statement": "0x5753ca1bef40-TypeDeclarationStmt", - "source": "double precision, dimension(nj, nk) :: b" - }, - { - "id": "0x5753ca1bef40-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5753ca1bef70-DeclarationTypeSpec", - "AttrSpec": [ - "0x5753ca1b1240-AttrSpec"], - "EntityDecl": [ - "0x5753ca1c2e80-EntityDecl"] - }, - { - "id": "0x5753ca1bef70-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5753ca1bef70-IntrinsicTypeSpec" - }, - { - "id": "0x5753ca1bef70-IntrinsicTypeSpec", - "variantKey": "DoublePrecision", - "DoublePrecision": "0x5753ca1bef70-DoublePrecision" - }, - { - "id": "0x5753ca1bef70-DoublePrecision" - }, - { - "id": "0x5753ca1b1240-AttrSpec", - "variantKey": "ArraySpec", - "ArraySpec": "0x5753ca1b1240-ArraySpec" - }, - { - "id": "0x5753ca1b1240-ArraySpec", - "variantKey": "ExplicitShapeSpec", - "ExplicitShapeSpec": [ - "0x5753ca1bea40-ExplicitShapeSpec", - "0x5753ca1a8d40-ExplicitShapeSpec"] - }, - { - "id": "0x5753ca1bea40-ExplicitShapeSpec", - "upper_bound": "0x5753ca1bea40-SpecificationExpr" - }, - { - "id": "0x5753ca1bea40-SpecificationExpr", - "Expr": "0x5753ca1c2cb0-Expr" - }, - { - "id": "0x5753ca1c2cb0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1bdad0-Designator" - }, - { - "id": "0x5753ca1bdad0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1bdae0-DataRef" - }, - { - "id": "0x5753ca1bdae0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1bdae0-Name" - }, - { - "id": "0x5753ca1bdae0-Name", - "source": "nj" - }, - { - "id": "0x5753ca1a8d40-ExplicitShapeSpec", - "upper_bound": "0x5753ca1a8d40-SpecificationExpr" - }, - { - "id": "0x5753ca1a8d40-SpecificationExpr", - "Expr": "0x5753ca1c2d90-Expr" - }, - { - "id": "0x5753ca1c2d90-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c0390-Designator" - }, - { - "id": "0x5753ca1c0390-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c03a0-DataRef" - }, - { - "id": "0x5753ca1c03a0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c03a0-Name" - }, - { - "id": "0x5753ca1c03a0-Name", - "source": "nk" - }, - { - "id": "0x5753ca1c2e80-EntityDecl", - "Name": "0x5753ca1c2f38-Name" - }, - { - "id": "0x5753ca1c2f38-Name", - "source": "b" - }, - { - "id": "0x5753ca1c32e0-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5753ca1c32e0-SpecificationConstruct" - }, - { - "id": "0x5753ca1c32e0-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1c32e0-Statement" - }, - { - "id": "0x5753ca1c32e0-Statement", - "statement": "0x5753ca1b9760-TypeDeclarationStmt", - "source": "double precision, dimension(nm, nj) :: c" - }, - { - "id": "0x5753ca1b9760-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5753ca1b9790-DeclarationTypeSpec", - "AttrSpec": [ - "0x5753ca1b90c0-AttrSpec"], - "EntityDecl": [ - "0x5753ca1c31f0-EntityDecl"] - }, - { - "id": "0x5753ca1b9790-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5753ca1b9790-IntrinsicTypeSpec" - }, - { - "id": "0x5753ca1b9790-IntrinsicTypeSpec", - "variantKey": "DoublePrecision", - "DoublePrecision": "0x5753ca1b9790-DoublePrecision" - }, - { - "id": "0x5753ca1b9790-DoublePrecision" - }, - { - "id": "0x5753ca1b90c0-AttrSpec", - "variantKey": "ArraySpec", - "ArraySpec": "0x5753ca1b90c0-ArraySpec" - }, - { - "id": "0x5753ca1b90c0-ArraySpec", - "variantKey": "ExplicitShapeSpec", - "ExplicitShapeSpec": [ - "0x5753ca1c31c0-ExplicitShapeSpec", - "0x5753ca1c3190-ExplicitShapeSpec"] - }, - { - "id": "0x5753ca1c31c0-ExplicitShapeSpec", - "upper_bound": "0x5753ca1c31c0-SpecificationExpr" - }, - { - "id": "0x5753ca1c31c0-SpecificationExpr", - "Expr": "0x5753ca1c2f60-Expr" - }, - { - "id": "0x5753ca1c2f60-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1bdb30-Designator" - }, - { - "id": "0x5753ca1bdb30-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1bdb40-DataRef" - }, - { - "id": "0x5753ca1bdb40-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1bdb40-Name" - }, - { - "id": "0x5753ca1bdb40-Name", - "source": "nm" - }, - { - "id": "0x5753ca1c3190-ExplicitShapeSpec", - "upper_bound": "0x5753ca1c3190-SpecificationExpr" - }, - { - "id": "0x5753ca1c3190-SpecificationExpr", - "Expr": "0x5753ca1c30a0-Expr" - }, - { - "id": "0x5753ca1c30a0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c3040-Designator" - }, - { - "id": "0x5753ca1c3040-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c3050-DataRef" - }, - { - "id": "0x5753ca1c3050-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c3050-Name" - }, - { - "id": "0x5753ca1c3050-Name", - "source": "nj" - }, - { - "id": "0x5753ca1c31f0-EntityDecl", - "Name": "0x5753ca1c32a8-Name" - }, - { - "id": "0x5753ca1c32a8-Name", - "source": "c" - }, - { - "id": "0x5753ca1c3710-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5753ca1c3710-SpecificationConstruct" - }, - { - "id": "0x5753ca1c3710-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1c3710-Statement" - }, - { - "id": "0x5753ca1c3710-Statement", - "statement": "0x5753ca1bf0d0-TypeDeclarationStmt", - "source": "double precision, dimension(nl, nm) :: d" - }, - { - "id": "0x5753ca1bf0d0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5753ca1bf100-DeclarationTypeSpec", - "AttrSpec": [ - "0x5753ca1ae3a0-AttrSpec"], - "EntityDecl": [ - "0x5753ca1c3620-EntityDecl"] - }, - { - "id": "0x5753ca1bf100-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5753ca1bf100-IntrinsicTypeSpec" - }, - { - "id": "0x5753ca1bf100-IntrinsicTypeSpec", - "variantKey": "DoublePrecision", - "DoublePrecision": "0x5753ca1bf100-DoublePrecision" - }, - { - "id": "0x5753ca1bf100-DoublePrecision" - }, - { - "id": "0x5753ca1ae3a0-AttrSpec", - "variantKey": "ArraySpec", - "ArraySpec": "0x5753ca1ae3a0-ArraySpec" - }, - { - "id": "0x5753ca1ae3a0-ArraySpec", - "variantKey": "ExplicitShapeSpec", - "ExplicitShapeSpec": [ - "0x5753ca1c35f0-ExplicitShapeSpec", - "0x5753ca1c35c0-ExplicitShapeSpec"] - }, - { - "id": "0x5753ca1c35f0-ExplicitShapeSpec", - "upper_bound": "0x5753ca1c35f0-SpecificationExpr" - }, - { - "id": "0x5753ca1c35f0-SpecificationExpr", - "Expr": "0x5753ca1c3330-Expr" - }, - { - "id": "0x5753ca1c3330-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1bc5d0-Designator" - }, - { - "id": "0x5753ca1bc5d0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1bc5e0-DataRef" - }, - { - "id": "0x5753ca1bc5e0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1bc5e0-Name" - }, - { - "id": "0x5753ca1bc5e0-Name", - "source": "nl" - }, - { - "id": "0x5753ca1c35c0-ExplicitShapeSpec", - "upper_bound": "0x5753ca1c35c0-SpecificationExpr" - }, - { - "id": "0x5753ca1c35c0-SpecificationExpr", - "Expr": "0x5753ca1c34d0-Expr" - }, - { - "id": "0x5753ca1c34d0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c3470-Designator" - }, - { - "id": "0x5753ca1c3470-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c3480-DataRef" - }, - { - "id": "0x5753ca1c3480-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c3480-Name" - }, - { - "id": "0x5753ca1c3480-Name", - "source": "nm" - }, - { - "id": "0x5753ca1c3620-EntityDecl", - "Name": "0x5753ca1c36d8-Name" - }, - { - "id": "0x5753ca1c36d8-Name", - "source": "d" - }, - { - "id": "0x5753ca1c3b40-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5753ca1c3b40-SpecificationConstruct" - }, - { - "id": "0x5753ca1c3b40-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1c3b40-Statement" - }, - { - "id": "0x5753ca1c3b40-Statement", - "statement": "0x5753ca1ba800-TypeDeclarationStmt", - "source": "double precision, dimension(nj, ni) :: e" - }, - { - "id": "0x5753ca1ba800-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5753ca1ba830-DeclarationTypeSpec", - "AttrSpec": [ - "0x5753ca1afad0-AttrSpec"], - "EntityDecl": [ - "0x5753ca1c3a50-EntityDecl"] - }, - { - "id": "0x5753ca1ba830-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5753ca1ba830-IntrinsicTypeSpec" - }, - { - "id": "0x5753ca1ba830-IntrinsicTypeSpec", - "variantKey": "DoublePrecision", - "DoublePrecision": "0x5753ca1ba830-DoublePrecision" - }, - { - "id": "0x5753ca1ba830-DoublePrecision" - }, - { - "id": "0x5753ca1afad0-AttrSpec", - "variantKey": "ArraySpec", - "ArraySpec": "0x5753ca1afad0-ArraySpec" - }, - { - "id": "0x5753ca1afad0-ArraySpec", - "variantKey": "ExplicitShapeSpec", - "ExplicitShapeSpec": [ - "0x5753ca1c3a20-ExplicitShapeSpec", - "0x5753ca1c39f0-ExplicitShapeSpec"] - }, - { - "id": "0x5753ca1c3a20-ExplicitShapeSpec", - "upper_bound": "0x5753ca1c3a20-SpecificationExpr" - }, - { - "id": "0x5753ca1c3a20-SpecificationExpr", - "Expr": "0x5753ca1c3760-Expr" - }, - { - "id": "0x5753ca1c3760-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1adf60-Designator" - }, - { - "id": "0x5753ca1adf60-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1adf70-DataRef" - }, - { - "id": "0x5753ca1adf70-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1adf70-Name" - }, - { - "id": "0x5753ca1adf70-Name", - "source": "nj" - }, - { - "id": "0x5753ca1c39f0-ExplicitShapeSpec", - "upper_bound": "0x5753ca1c39f0-SpecificationExpr" - }, - { - "id": "0x5753ca1c39f0-SpecificationExpr", - "Expr": "0x5753ca1c3900-Expr" - }, - { - "id": "0x5753ca1c3900-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c38a0-Designator" - }, - { - "id": "0x5753ca1c38a0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c38b0-DataRef" - }, - { - "id": "0x5753ca1c38b0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c38b0-Name" - }, - { - "id": "0x5753ca1c38b0-Name", - "source": "ni" - }, - { - "id": "0x5753ca1c3a50-EntityDecl", - "Name": "0x5753ca1c3b08-Name" - }, - { - "id": "0x5753ca1c3b08-Name", - "source": "e" - }, - { - "id": "0x5753ca1c3f70-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5753ca1c3f70-SpecificationConstruct" - }, - { - "id": "0x5753ca1c3f70-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1c3f70-Statement" - }, - { - "id": "0x5753ca1c3f70-Statement", - "statement": "0x5753ca1bf2f0-TypeDeclarationStmt", - "source": "double precision, dimension(nl, nj) :: f" - }, - { - "id": "0x5753ca1bf2f0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5753ca1bf320-DeclarationTypeSpec", - "AttrSpec": [ - "0x5753ca1a5a80-AttrSpec"], - "EntityDecl": [ - "0x5753ca1c3e80-EntityDecl"] - }, - { - "id": "0x5753ca1bf320-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5753ca1bf320-IntrinsicTypeSpec" - }, - { - "id": "0x5753ca1bf320-IntrinsicTypeSpec", - "variantKey": "DoublePrecision", - "DoublePrecision": "0x5753ca1bf320-DoublePrecision" - }, - { - "id": "0x5753ca1bf320-DoublePrecision" - }, - { - "id": "0x5753ca1a5a80-AttrSpec", - "variantKey": "ArraySpec", - "ArraySpec": "0x5753ca1a5a80-ArraySpec" - }, - { - "id": "0x5753ca1a5a80-ArraySpec", - "variantKey": "ExplicitShapeSpec", - "ExplicitShapeSpec": [ - "0x5753ca1c3e50-ExplicitShapeSpec", - "0x5753ca1c3e20-ExplicitShapeSpec"] - }, - { - "id": "0x5753ca1c3e50-ExplicitShapeSpec", - "upper_bound": "0x5753ca1c3e50-SpecificationExpr" - }, - { - "id": "0x5753ca1c3e50-SpecificationExpr", - "Expr": "0x5753ca1c3b90-Expr" - }, - { - "id": "0x5753ca1c3b90-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c3410-Designator" - }, - { - "id": "0x5753ca1c3410-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c3420-DataRef" - }, - { - "id": "0x5753ca1c3420-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c3420-Name" - }, - { - "id": "0x5753ca1c3420-Name", - "source": "nl" - }, - { - "id": "0x5753ca1c3e20-ExplicitShapeSpec", - "upper_bound": "0x5753ca1c3e20-SpecificationExpr" - }, - { - "id": "0x5753ca1c3e20-SpecificationExpr", - "Expr": "0x5753ca1c3d30-Expr" - }, - { - "id": "0x5753ca1c3d30-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c3cd0-Designator" - }, - { - "id": "0x5753ca1c3cd0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c3ce0-DataRef" - }, - { - "id": "0x5753ca1c3ce0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c3ce0-Name" - }, - { - "id": "0x5753ca1c3ce0-Name", - "source": "nj" - }, - { - "id": "0x5753ca1c3e80-EntityDecl", - "Name": "0x5753ca1c3f38-Name" - }, - { - "id": "0x5753ca1c3f38-Name", - "source": "f" - }, - { - "id": "0x5753ca1c4670-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5753ca1c4670-SpecificationConstruct" - }, - { - "id": "0x5753ca1c4670-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1c4670-Statement" - }, - { - "id": "0x5753ca1c4670-Statement", - "statement": "0x5753ca1bf400-TypeDeclarationStmt", - "source": "double precision, dimension(nl, ni) :: g" - }, - { - "id": "0x5753ca1bf400-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5753ca1bf430-DeclarationTypeSpec", - "AttrSpec": [ - "0x5753ca1a6a70-AttrSpec"], - "EntityDecl": [ - "0x5753ca1c4970-EntityDecl"] - }, - { - "id": "0x5753ca1bf430-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5753ca1bf430-IntrinsicTypeSpec" - }, - { - "id": "0x5753ca1bf430-IntrinsicTypeSpec", - "variantKey": "DoublePrecision", - "DoublePrecision": "0x5753ca1bf430-DoublePrecision" - }, - { - "id": "0x5753ca1bf430-DoublePrecision" - }, - { - "id": "0x5753ca1a6a70-AttrSpec", - "variantKey": "ArraySpec", - "ArraySpec": "0x5753ca1a6a70-ArraySpec" - }, - { - "id": "0x5753ca1a6a70-ArraySpec", - "variantKey": "ExplicitShapeSpec", - "ExplicitShapeSpec": [ - "0x5753ca1c4260-ExplicitShapeSpec", - "0x5753ca1c40b0-ExplicitShapeSpec"] - }, - { - "id": "0x5753ca1c4260-ExplicitShapeSpec", - "upper_bound": "0x5753ca1c4260-SpecificationExpr" - }, - { - "id": "0x5753ca1c4260-SpecificationExpr", - "Expr": "0x5753ca1c3fc0-Expr" - }, - { - "id": "0x5753ca1c3fc0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c3840-Designator" - }, - { - "id": "0x5753ca1c3840-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c3850-DataRef" - }, - { - "id": "0x5753ca1c3850-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c3850-Name" - }, - { - "id": "0x5753ca1c3850-Name", - "source": "nl" - }, - { - "id": "0x5753ca1c40b0-ExplicitShapeSpec", - "upper_bound": "0x5753ca1c40b0-SpecificationExpr" - }, - { - "id": "0x5753ca1c40b0-SpecificationExpr", - "Expr": "0x5753ca1c4880-Expr" - }, - { - "id": "0x5753ca1c4880-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c41f0-Designator" - }, - { - "id": "0x5753ca1c41f0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c4200-DataRef" - }, - { - "id": "0x5753ca1c4200-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c4200-Name" - }, - { - "id": "0x5753ca1c4200-Name", - "source": "ni" - }, - { - "id": "0x5753ca1c4970-EntityDecl", - "Name": "0x5753ca1c4a28-Name" - }, - { - "id": "0x5753ca1c4a28-Name", - "source": "g" - }, - { - "id": "0x5753ca1b8f10-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5753ca1b8f10-SpecificationConstruct" - }, - { - "id": "0x5753ca1b8f10-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1b8f10-Statement" - }, - { - "id": "0x5753ca1b8f10-Statement", - "statement": "0x5753ca1b60a0-TypeDeclarationStmt", - "source": "integer :: ni, nj, nk, nl, nm" - }, - { - "id": "0x5753ca1b60a0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5753ca1b60d0-DeclarationTypeSpec", - "EntityDecl": [ - "0x5753ca1c4e20-EntityDecl", - "0x5753ca1c4a60-EntityDecl", - "0x5753ca1c4b50-EntityDecl", - "0x5753ca1c4c40-EntityDecl", - "0x5753ca1c4d30-EntityDecl"] - }, - { - "id": "0x5753ca1b60d0-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5753ca1b60d0-IntrinsicTypeSpec" - }, - { - "id": "0x5753ca1b60d0-IntrinsicTypeSpec", - "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x5753ca1b60d0-IntegerTypeSpec" - }, - { - "id": "0x5753ca1b60d0-IntegerTypeSpec" - }, - { - "id": "0x5753ca1c4e20-EntityDecl", - "Name": "0x5753ca1c4ed8-Name" - }, - { - "id": "0x5753ca1c4ed8-Name", - "source": "ni" - }, - { - "id": "0x5753ca1c4a60-EntityDecl", - "Name": "0x5753ca1c4b18-Name" - }, - { - "id": "0x5753ca1c4b18-Name", - "source": "nj" - }, - { - "id": "0x5753ca1c4b50-EntityDecl", - "Name": "0x5753ca1c4c08-Name" - }, - { - "id": "0x5753ca1c4c08-Name", - "source": "nk" - }, - { - "id": "0x5753ca1c4c40-EntityDecl", - "Name": "0x5753ca1c4cf8-Name" - }, - { - "id": "0x5753ca1c4cf8-Name", - "source": "nl" - }, - { - "id": "0x5753ca1c4d30-EntityDecl", - "Name": "0x5753ca1c4de8-Name" - }, - { - "id": "0x5753ca1c4de8-Name", - "source": "nm" - }, - { - "id": "0x5753ca1c0810-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5753ca1c0810-SpecificationConstruct" - }, - { - "id": "0x5753ca1c0810-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1c0810-Statement" - }, - { - "id": "0x5753ca1c0810-Statement", - "statement": "0x5753ca1bdd00-TypeDeclarationStmt", - "source": "integer :: i, j, k" - }, - { - "id": "0x5753ca1bdd00-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5753ca1bdd30-DeclarationTypeSpec", - "EntityDecl": [ - "0x5753ca1c50f0-EntityDecl", - "0x5753ca1c4f10-EntityDecl", - "0x5753ca1c5000-EntityDecl"] - }, - { - "id": "0x5753ca1bdd30-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5753ca1bdd30-IntrinsicTypeSpec" - }, - { - "id": "0x5753ca1bdd30-IntrinsicTypeSpec", - "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x5753ca1bdd30-IntegerTypeSpec" - }, - { - "id": "0x5753ca1bdd30-IntegerTypeSpec" - }, - { - "id": "0x5753ca1c50f0-EntityDecl", - "Name": "0x5753ca1c51a8-Name" - }, - { - "id": "0x5753ca1c51a8-Name", - "source": "i" - }, - { - "id": "0x5753ca1c4f10-EntityDecl", - "Name": "0x5753ca1c4fc8-Name" - }, - { - "id": "0x5753ca1c4fc8-Name", - "source": "j" - }, - { - "id": "0x5753ca1c5000-EntityDecl", - "Name": "0x5753ca1c50b8-Name" - }, - { - "id": "0x5753ca1c50b8-Name", - "source": "k" - }, - { - "id": "0x5753ca1c11c8-ExecutionPart", - "ExecutionPartConstruct": [ - "0x5753ca1c7200-ExecutionPartConstruct", - "0x5753ca1c9a60-ExecutionPartConstruct", - "0x5753ca1cc2c0-ExecutionPartConstruct"] - }, - { - "id": "0x5753ca1c11c8-ExecutionPartConstruct" - }, - { - "id": "0x5753ca1c7200-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1c7200-ExecutableConstruct" - }, - { - "id": "0x5753ca1c7200-ExecutableConstruct", - "variantKey": "DoConstruct", - "DoConstruct": "0x5753ca1c7da0-DoConstruct" - }, - { - "id": "0x5753ca1c7da0-DoConstruct", - "Statement": "0x5753ca1c7df8-Statement", - "ExecutionPartConstruct": [ - "0x5753ca1c7060-ExecutionPartConstruct"], - "Statement": "0x5753ca1c7da0-Statement" - }, - { - "id": "0x5753ca1c7df8-Statement", - "statement": "0x5753ca1c7e08-NonLabelDoStmt", - "source": "do i = 1, ni" - }, - { - "id": "0x5753ca1c7e08-NonLabelDoStmt", - "LoopControl": "0x5753ca1c7e08-LoopControl" - }, - { - "id": "0x5753ca1c7e08-LoopControl", - "variantKey": "LoopBounds", - "LoopBounds": "0x5753ca1c7e08-LoopBounds" - }, - { - "id": "0x5753ca1c7e08-LoopBounds", - "var": "0x5753ca1c7e08-Name", - "lower": "0x5753ca1c51d0-Expr", - "upper": "0x5753ca1c52b0-Expr" - }, - { - "id": "0x5753ca1c7e08-Name", - "source": "i" - }, - { - "id": "0x5753ca1c51d0-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1c51f0-LiteralConstant" - }, - { - "id": "0x5753ca1c51f0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1c51f0-IntLiteralConstant" - }, - { - "id": "0x5753ca1c51f0-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x5753ca1c52b0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1be480-Designator" - }, - { - "id": "0x5753ca1be480-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1be490-DataRef" - }, - { - "id": "0x5753ca1be490-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1be490-Name" - }, - { - "id": "0x5753ca1be490-Name", - "source": "ni" - }, - { - "id": "0x5753ca1c7de0-ExecutionPartConstruct" - }, - { - "id": "0x5753ca1c7060-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1c7060-ExecutableConstruct" - }, - { - "id": "0x5753ca1c7060-ExecutableConstruct", - "variantKey": "DoConstruct", - "DoConstruct": "0x5753ca1c7c80-DoConstruct" - }, - { - "id": "0x5753ca1c7c80-DoConstruct", - "Statement": "0x5753ca1c7cd8-Statement", - "ExecutionPartConstruct": [ - "0x5753ca1c5b20-ExecutionPartConstruct", - "0x5753ca1c7000-ExecutionPartConstruct"], - "Statement": "0x5753ca1c7c80-Statement" - }, - { - "id": "0x5753ca1c7cd8-Statement", - "statement": "0x5753ca1c7ce8-NonLabelDoStmt", - "source": "do j = 1, nj" - }, - { - "id": "0x5753ca1c7ce8-NonLabelDoStmt", - "LoopControl": "0x5753ca1c7ce8-LoopControl" - }, - { - "id": "0x5753ca1c7ce8-LoopControl", - "variantKey": "LoopBounds", - "LoopBounds": "0x5753ca1c7ce8-LoopBounds" - }, - { - "id": "0x5753ca1c7ce8-LoopBounds", - "var": "0x5753ca1c7ce8-Name", - "lower": "0x5753ca1c5390-Expr", - "upper": "0x5753ca1c5470-Expr" - }, - { - "id": "0x5753ca1c7ce8-Name", - "source": "j" - }, - { - "id": "0x5753ca1c5390-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1c53b0-LiteralConstant" - }, - { - "id": "0x5753ca1c53b0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1c53b0-IntLiteralConstant" - }, - { - "id": "0x5753ca1c53b0-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x5753ca1c5470-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c3c70-Designator" - }, - { - "id": "0x5753ca1c3c70-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c3c80-DataRef" - }, - { - "id": "0x5753ca1c3c80-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c3c80-Name" - }, - { - "id": "0x5753ca1c3c80-Name", - "source": "nj" - }, - { - "id": "0x5753ca1c7cc0-ExecutionPartConstruct" - }, - { - "id": "0x5753ca1c5b20-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1c5b20-ExecutableConstruct" - }, - { - "id": "0x5753ca1c5b20-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1c5b20-Statement" - }, - { - "id": "0x5753ca1c5b20-Statement", - "statement": "0x5753ca1c5b30-ActionStmt", - "source": "e(j,i) = 0.0" - }, - { - "id": "0x5753ca1c5b30-ActionStmt", - "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5753ca1c5a00-AssignmentStmt" - }, - { - "id": "0x5753ca1c5a00-AssignmentStmt", - "Variable": "0x5753ca1c5ae0-Variable", - "Expr": "0x5753ca1c5a10-Expr" - }, - { - "id": "0x5753ca1c5ae0-Variable", - "variantKey": "Designator", - "Designator": "0x5753ca1ec880-Designator" - }, - { - "id": "0x5753ca1ec880-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1ec890-DataRef" - }, - { - "id": "0x5753ca1ec890-DataRef", - "variantKey": "ArrayElement", - "ArrayElement": "0x5753ca1ce1c0-ArrayElement" - }, - { - "id": "0x5753ca1ce1c0-ArrayElement", - "base": "0x5753ca1ce1c0-DataRef", - "subscripts": [ - "0x5753ca282530-SectionSubscript", - "0x5753ca282580-SectionSubscript"] - }, - { - "id": "0x5753ca1ce1c0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1ce1c0-Name" - }, - { - "id": "0x5753ca1ce1c0-Name", - "source": "e" - }, - { - "id": "0x5753ca282530-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1bd560-Expr" - }, - { - "id": "0x5753ca1bd560-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c56f0-Designator" - }, - { - "id": "0x5753ca1c56f0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c5700-DataRef" - }, - { - "id": "0x5753ca1c5700-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c5700-Name" - }, - { - "id": "0x5753ca1c5700-Name", - "source": "j" - }, - { - "id": "0x5753ca282580-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1bf480-Expr" - }, - { - "id": "0x5753ca1bf480-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1be590-Designator" - }, - { - "id": "0x5753ca1be590-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1be5a0-DataRef" - }, - { - "id": "0x5753ca1be5a0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1be5a0-Name" - }, - { - "id": "0x5753ca1be5a0-Name", - "source": "i" - }, - { - "id": "0x5753ca1c5a10-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1c5a30-LiteralConstant" - }, - { - "id": "0x5753ca1c5a30-LiteralConstant", - "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x5753ca1c5a30-RealLiteralConstant" - }, - { - "id": "0x5753ca1c5a30-RealLiteralConstant", - "real": "0x5753ca1c5a30-Real" - }, - { - "id": "0x5753ca1c5a30-Real", - "source": "0.0" - }, - { - "id": "0x5753ca1c7000-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1c7000-ExecutableConstruct" - }, - { - "id": "0x5753ca1c7000-ExecutableConstruct", - "variantKey": "DoConstruct", - "DoConstruct": "0x5753ca1c7b60-DoConstruct" - }, - { - "id": "0x5753ca1c7b60-DoConstruct", - "Statement": "0x5753ca1c7bb8-Statement", - "ExecutionPartConstruct": [ - "0x5753ca1c7b10-ExecutionPartConstruct"], - "Statement": "0x5753ca1c7b60-Statement" - }, - { - "id": "0x5753ca1c7bb8-Statement", - "statement": "0x5753ca1c7bc8-NonLabelDoStmt", - "source": "do k = 1, nk" - }, - { - "id": "0x5753ca1c7bc8-NonLabelDoStmt", - "LoopControl": "0x5753ca1c7bc8-LoopControl" - }, - { - "id": "0x5753ca1c7bc8-LoopControl", - "variantKey": "LoopBounds", - "LoopBounds": "0x5753ca1c7bc8-LoopBounds" - }, - { - "id": "0x5753ca1c7bc8-LoopBounds", - "var": "0x5753ca1c7bc8-Name", - "lower": "0x5753ca1c5b70-Expr", - "upper": "0x5753ca1c5c50-Expr" - }, - { - "id": "0x5753ca1c7bc8-Name", - "source": "k" - }, - { - "id": "0x5753ca1c5b70-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1c5b90-LiteralConstant" - }, - { - "id": "0x5753ca1c5b90-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1c5b90-IntLiteralConstant" - }, - { - "id": "0x5753ca1c5b90-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x5753ca1c5c50-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c0860-Designator" - }, - { - "id": "0x5753ca1c0860-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c0870-DataRef" - }, - { - "id": "0x5753ca1c0870-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c0870-Name" - }, - { - "id": "0x5753ca1c0870-Name", - "source": "nk" - }, - { - "id": "0x5753ca1c7ba0-ExecutionPartConstruct" - }, - { - "id": "0x5753ca1c7b10-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1c7b10-ExecutableConstruct" - }, - { - "id": "0x5753ca1c7b10-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1c7b10-Statement" - }, - { - "id": "0x5753ca1c7b10-Statement", - "statement": "0x5753ca1c7b20-ActionStmt", - "source": "e(j,i) = e(j,i) + a(k,i) * b(j,k)" - }, - { - "id": "0x5753ca1c7b20-ActionStmt", - "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5753ca1c79f0-AssignmentStmt" - }, - { - "id": "0x5753ca1c79f0-AssignmentStmt", - "Variable": "0x5753ca1c7ad0-Variable", - "Expr": "0x5753ca1c7a00-Expr" - }, - { - "id": "0x5753ca1c7ad0-Variable", - "variantKey": "Designator", - "Designator": "0x5753ca1b8590-Designator" - }, - { - "id": "0x5753ca1b8590-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1b85a0-DataRef" - }, - { - "id": "0x5753ca1b85a0-DataRef", - "variantKey": "ArrayElement", - "ArrayElement": "0x5753ca1d1730-ArrayElement" - }, - { - "id": "0x5753ca1d1730-ArrayElement", - "base": "0x5753ca1d1730-DataRef", - "subscripts": [ - "0x5753ca1c0340-SectionSubscript", - "0x5753ca282ce0-SectionSubscript"] - }, - { - "id": "0x5753ca1d1730-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1d1730-Name" - }, - { - "id": "0x5753ca1d1730-Name", - "source": "e" - }, - { - "id": "0x5753ca1c0340-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1c55b0-Expr" - }, - { - "id": "0x5753ca1c55b0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c5e10-Designator" - }, - { - "id": "0x5753ca1c5e10-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c5e20-DataRef" - }, - { - "id": "0x5753ca1c5e20-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c5e20-Name" - }, - { - "id": "0x5753ca1c5e20-Name", - "source": "j" - }, - { - "id": "0x5753ca282ce0-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1c5750-Expr" - }, - { - "id": "0x5753ca1c5750-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1beae0-Designator" - }, - { - "id": "0x5753ca1beae0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1beaf0-DataRef" - }, - { - "id": "0x5753ca1beaf0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1beaf0-Name" - }, - { - "id": "0x5753ca1beaf0-Name", - "source": "i" - }, - { - "id": "0x5753ca1c7a00-Expr", - "variantKey": "Add", - "Add": "0x5753ca1c7a20-Add" - }, - { - "id": "0x5753ca1c7a20-Add", - "left": "0x5753ca1c7910-Expr", - "right": "0x5753ca1c7830-Expr", - "op": "ADD" - }, - { - "id": "0x5753ca1c7910-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca282f90-Designator" - }, - { - "id": "0x5753ca282f90-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca282fa0-DataRef" - }, - { - "id": "0x5753ca282fa0-DataRef", - "variantKey": "ArrayElement", - "ArrayElement": "0x5753ca1be990-ArrayElement" - }, - { - "id": "0x5753ca1be990-ArrayElement", - "base": "0x5753ca1be990-DataRef", - "subscripts": [ - "0x5753ca282f00-SectionSubscript", - "0x5753ca282f50-SectionSubscript"] - }, - { - "id": "0x5753ca1be990-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1be990-Name" - }, - { - "id": "0x5753ca1be990-Name", - "source": "e" - }, - { - "id": "0x5753ca282f00-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1c5d30-Expr" - }, - { - "id": "0x5753ca1c5d30-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c64f0-Designator" - }, - { - "id": "0x5753ca1c64f0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c6500-DataRef" - }, - { - "id": "0x5753ca1c6500-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c6500-Name" - }, - { - "id": "0x5753ca1c6500-Name", - "source": "j" - }, - { - "id": "0x5753ca282f50-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1c5e70-Expr" - }, - { - "id": "0x5753ca1c5e70-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c62f0-Designator" - }, - { - "id": "0x5753ca1c62f0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c6300-DataRef" - }, - { - "id": "0x5753ca1c6300-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c6300-Name" - }, - { - "id": "0x5753ca1c6300-Name", - "source": "i" - }, - { - "id": "0x5753ca1c7830-Expr", - "variantKey": "Multiply", - "Multiply": "0x5753ca1c7850-Multiply" - }, - { - "id": "0x5753ca1c7850-Multiply", - "left": "0x5753ca1c7750-Expr", - "right": "0x5753ca1c7670-Expr", - "op": "MULTIPLY" - }, - { - "id": "0x5753ca1c7750-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca2832f0-Designator" - }, - { - "id": "0x5753ca2832f0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca283300-DataRef" - }, - { - "id": "0x5753ca283300-DataRef", - "variantKey": "ArrayElement", - "ArrayElement": "0x5753ca127190-ArrayElement" - }, - { - "id": "0x5753ca127190-ArrayElement", - "base": "0x5753ca127190-DataRef", - "subscripts": [ - "0x5753ca283260-SectionSubscript", - "0x5753ca2832b0-SectionSubscript"] - }, - { - "id": "0x5753ca127190-DataRef", - "variantKey": "Name", - "Name": "0x5753ca127190-Name" - }, - { - "id": "0x5753ca127190-Name", - "source": "a" - }, - { - "id": "0x5753ca283260-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1c6350-Expr" - }, - { - "id": "0x5753ca1c6350-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c6bd0-Designator" - }, - { - "id": "0x5753ca1c6bd0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c6be0-DataRef" - }, - { - "id": "0x5753ca1c6be0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c6be0-Name" - }, - { - "id": "0x5753ca1c6be0-Name", - "source": "k" - }, - { - "id": "0x5753ca2832b0-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1c6550-Expr" - }, - { - "id": "0x5753ca1c6550-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c69d0-Designator" - }, - { - "id": "0x5753ca1c69d0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c69e0-DataRef" - }, - { - "id": "0x5753ca1c69e0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c69e0-Name" - }, - { - "id": "0x5753ca1c69e0-Name", - "source": "i" - }, - { - "id": "0x5753ca1c7670-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca2836c0-Designator" - }, - { - "id": "0x5753ca2836c0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca2836d0-DataRef" - }, - { - "id": "0x5753ca2836d0-DataRef", - "variantKey": "ArrayElement", - "ArrayElement": "0x5753ca19cbc0-ArrayElement" - }, - { - "id": "0x5753ca19cbc0-ArrayElement", - "base": "0x5753ca19cbc0-DataRef", - "subscripts": [ - "0x5753ca283630-SectionSubscript", - "0x5753ca283680-SectionSubscript"] - }, - { - "id": "0x5753ca19cbc0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca19cbc0-Name" - }, - { - "id": "0x5753ca19cbc0-Name", - "source": "b" - }, - { - "id": "0x5753ca283630-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1c6a30-Expr" - }, - { - "id": "0x5753ca1c6a30-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c72b0-Designator" - }, - { - "id": "0x5753ca1c72b0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c72c0-DataRef" - }, - { - "id": "0x5753ca1c72c0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c72c0-Name" - }, - { - "id": "0x5753ca1c72c0-Name", - "source": "j" - }, - { - "id": "0x5753ca283680-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1c6c30-Expr" - }, - { - "id": "0x5753ca1c6c30-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c70b0-Designator" - }, - { - "id": "0x5753ca1c70b0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c70c0-DataRef" - }, - { - "id": "0x5753ca1c70c0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c70c0-Name" - }, - { - "id": "0x5753ca1c70c0-Name", - "source": "k" - }, - { - "id": "0x5753ca1c7b60-Statement", - "statement": "0x5753ca1c7b70-EndDoStmt", - "source": "end do" - }, - { - "id": "0x5753ca1c7b70-EndDoStmt" - }, - { - "id": "0x5753ca1c7c80-Statement", - "statement": "0x5753ca1c7c90-EndDoStmt", - "source": "end do" - }, - { - "id": "0x5753ca1c7c90-EndDoStmt" - }, - { - "id": "0x5753ca1c7da0-Statement", - "statement": "0x5753ca1c7db0-EndDoStmt", - "source": "end do" - }, - { - "id": "0x5753ca1c7db0-EndDoStmt" - }, - { - "id": "0x5753ca1c9a60-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1c9a60-ExecutableConstruct" - }, - { - "id": "0x5753ca1c9a60-ExecutableConstruct", - "variantKey": "DoConstruct", - "DoConstruct": "0x5753ca1ca600-DoConstruct" - }, - { - "id": "0x5753ca1ca600-DoConstruct", - "Statement": "0x5753ca1ca658-Statement", - "ExecutionPartConstruct": [ - "0x5753ca1c98c0-ExecutionPartConstruct"], - "Statement": "0x5753ca1ca600-Statement" - }, - { - "id": "0x5753ca1ca658-Statement", - "statement": "0x5753ca1ca668-NonLabelDoStmt", - "source": "do i = 1, nj" - }, - { - "id": "0x5753ca1ca668-NonLabelDoStmt", - "LoopControl": "0x5753ca1ca668-LoopControl" - }, - { - "id": "0x5753ca1ca668-LoopControl", - "variantKey": "LoopBounds", - "LoopBounds": "0x5753ca1ca668-LoopBounds" - }, - { - "id": "0x5753ca1ca668-LoopBounds", - "var": "0x5753ca1ca668-Name", - "lower": "0x5753ca1c7ec0-Expr", - "upper": "0x5753ca1c7fa0-Expr" - }, - { - "id": "0x5753ca1ca668-Name", - "source": "i" - }, - { - "id": "0x5753ca1c7ec0-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1c7ee0-LiteralConstant" - }, - { - "id": "0x5753ca1c7ee0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1c7ee0-IntLiteralConstant" - }, - { - "id": "0x5753ca1c7ee0-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x5753ca1c7fa0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c73f0-Designator" - }, - { - "id": "0x5753ca1c73f0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c7400-DataRef" - }, - { - "id": "0x5753ca1c7400-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c7400-Name" - }, - { - "id": "0x5753ca1c7400-Name", - "source": "nj" - }, - { - "id": "0x5753ca1ca640-ExecutionPartConstruct" - }, - { - "id": "0x5753ca1c98c0-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1c98c0-ExecutableConstruct" - }, - { - "id": "0x5753ca1c98c0-ExecutableConstruct", - "variantKey": "DoConstruct", - "DoConstruct": "0x5753ca1ca4e0-DoConstruct" - }, - { - "id": "0x5753ca1ca4e0-DoConstruct", - "Statement": "0x5753ca1ca538-Statement", - "ExecutionPartConstruct": [ - "0x5753ca1c62a0-ExecutionPartConstruct", - "0x5753ca1c9860-ExecutionPartConstruct"], - "Statement": "0x5753ca1ca4e0-Statement" - }, - { - "id": "0x5753ca1ca538-Statement", - "statement": "0x5753ca1ca548-NonLabelDoStmt", - "source": "do j = 1, nl" - }, - { - "id": "0x5753ca1ca548-NonLabelDoStmt", - "LoopControl": "0x5753ca1ca548-LoopControl" - }, - { - "id": "0x5753ca1ca548-LoopControl", - "variantKey": "LoopBounds", - "LoopBounds": "0x5753ca1ca548-LoopBounds" - }, - { - "id": "0x5753ca1ca548-LoopBounds", - "var": "0x5753ca1ca548-Name", - "lower": "0x5753ca1c8080-Expr", - "upper": "0x5753ca1c8160-Expr" - }, - { - "id": "0x5753ca1ca548-Name", - "source": "j" - }, - { - "id": "0x5753ca1c8080-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1c80a0-LiteralConstant" - }, - { - "id": "0x5753ca1c80a0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1c80a0-IntLiteralConstant" - }, - { - "id": "0x5753ca1c80a0-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x5753ca1c8160-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c59a0-Designator" - }, - { - "id": "0x5753ca1c59a0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c59b0-DataRef" - }, - { - "id": "0x5753ca1c59b0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c59b0-Name" - }, - { - "id": "0x5753ca1c59b0-Name", - "source": "nl" - }, - { - "id": "0x5753ca1ca520-ExecutionPartConstruct" - }, - { - "id": "0x5753ca1c62a0-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1c62a0-ExecutableConstruct" - }, - { - "id": "0x5753ca1c62a0-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1c62a0-Statement" - }, - { - "id": "0x5753ca1c62a0-Statement", - "statement": "0x5753ca1c62b0-ActionStmt", - "source": "f(j,i) = 0.0" - }, - { - "id": "0x5753ca1c62b0-ActionStmt", - "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5753ca1c8620-AssignmentStmt" - }, - { - "id": "0x5753ca1c8620-AssignmentStmt", - "Variable": "0x5753ca1c8700-Variable", - "Expr": "0x5753ca1c8630-Expr" - }, - { - "id": "0x5753ca1c8700-Variable", - "variantKey": "Designator", - "Designator": "0x5753ca1d8340-Designator" - }, - { - "id": "0x5753ca1d8340-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1d8350-DataRef" - }, - { - "id": "0x5753ca1d8350-DataRef", - "variantKey": "ArrayElement", - "ArrayElement": "0x5753ca1cd900-ArrayElement" - }, - { - "id": "0x5753ca1cd900-ArrayElement", - "base": "0x5753ca1cd900-DataRef", - "subscripts": [ - "0x5753ca1c6190-SectionSubscript", - "0x5753ca284960-SectionSubscript"] - }, - { - "id": "0x5753ca1cd900-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1cd900-Name" - }, - { - "id": "0x5753ca1cd900-Name", - "source": "f" - }, - { - "id": "0x5753ca1c6190-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1c7110-Expr" - }, - { - "id": "0x5753ca1c7110-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c6630-Designator" - }, - { - "id": "0x5753ca1c6630-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c6640-DataRef" - }, - { - "id": "0x5753ca1c6640-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c6640-Name" - }, - { - "id": "0x5753ca1c6640-Name", - "source": "j" - }, - { - "id": "0x5753ca284960-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1c7310-Expr" - }, - { - "id": "0x5753ca1c7310-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c61d0-Designator" - }, - { - "id": "0x5753ca1c61d0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c61e0-DataRef" - }, - { - "id": "0x5753ca1c61e0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c61e0-Name" - }, - { - "id": "0x5753ca1c61e0-Name", - "source": "i" - }, - { - "id": "0x5753ca1c8630-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1c8650-LiteralConstant" - }, - { - "id": "0x5753ca1c8650-LiteralConstant", - "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x5753ca1c8650-RealLiteralConstant" - }, - { - "id": "0x5753ca1c8650-RealLiteralConstant", - "real": "0x5753ca1c8650-Real" - }, - { - "id": "0x5753ca1c8650-Real", - "source": "0.0" - }, - { - "id": "0x5753ca1c9860-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1c9860-ExecutableConstruct" - }, - { - "id": "0x5753ca1c9860-ExecutableConstruct", - "variantKey": "DoConstruct", - "DoConstruct": "0x5753ca1ca3c0-DoConstruct" - }, - { - "id": "0x5753ca1ca3c0-DoConstruct", - "Statement": "0x5753ca1ca418-Statement", - "ExecutionPartConstruct": [ - "0x5753ca1ca370-ExecutionPartConstruct"], - "Statement": "0x5753ca1ca3c0-Statement" - }, - { - "id": "0x5753ca1ca418-Statement", - "statement": "0x5753ca1ca428-NonLabelDoStmt", - "source": "do k = 1, nm" - }, - { - "id": "0x5753ca1ca428-NonLabelDoStmt", - "LoopControl": "0x5753ca1ca428-LoopControl" - }, - { - "id": "0x5753ca1ca428-LoopControl", - "variantKey": "LoopBounds", - "LoopBounds": "0x5753ca1ca428-LoopBounds" - }, - { - "id": "0x5753ca1ca428-LoopBounds", - "var": "0x5753ca1ca428-Name", - "lower": "0x5753ca1c8730-Expr", - "upper": "0x5753ca1c8810-Expr" - }, - { - "id": "0x5753ca1ca428-Name", - "source": "k" - }, - { - "id": "0x5753ca1c8730-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1c8750-LiteralConstant" - }, - { - "id": "0x5753ca1c8750-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1c8750-IntLiteralConstant" - }, - { - "id": "0x5753ca1c8750-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x5753ca1c8810-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c6430-Designator" - }, - { - "id": "0x5753ca1c6430-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c6440-DataRef" - }, - { - "id": "0x5753ca1c6440-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c6440-Name" - }, - { - "id": "0x5753ca1c6440-Name", - "source": "nm" - }, - { - "id": "0x5753ca1ca400-ExecutionPartConstruct" - }, - { - "id": "0x5753ca1ca370-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1ca370-ExecutableConstruct" - }, - { - "id": "0x5753ca1ca370-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1ca370-Statement" - }, - { - "id": "0x5753ca1ca370-Statement", - "statement": "0x5753ca1ca380-ActionStmt", - "source": "f(j,i) = f(j,i) + c(k,i) * d(j,k)" - }, - { - "id": "0x5753ca1ca380-ActionStmt", - "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5753ca1ca250-AssignmentStmt" - }, - { - "id": "0x5753ca1ca250-AssignmentStmt", - "Variable": "0x5753ca1ca330-Variable", - "Expr": "0x5753ca1ca260-Expr" - }, - { - "id": "0x5753ca1ca330-Variable", - "variantKey": "Designator", - "Designator": "0x5753ca2838f0-Designator" - }, - { - "id": "0x5753ca2838f0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca283900-DataRef" - }, - { - "id": "0x5753ca283900-DataRef", - "variantKey": "ArrayElement", - "ArrayElement": "0x5753ca2849a0-ArrayElement" - }, - { - "id": "0x5753ca2849a0-ArrayElement", - "base": "0x5753ca2849a0-DataRef", - "subscripts": [ - "0x5753ca286310-SectionSubscript", - "0x5753ca286360-SectionSubscript"] - }, - { - "id": "0x5753ca2849a0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca2849a0-Name" - }, - { - "id": "0x5753ca2849a0-Name", - "source": "f" - }, - { - "id": "0x5753ca286310-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1c8240-Expr" - }, - { - "id": "0x5753ca1c8240-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c6b10-Designator" - }, - { - "id": "0x5753ca1c6b10-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c6b20-DataRef" - }, - { - "id": "0x5753ca1c6b20-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c6b20-Name" - }, - { - "id": "0x5753ca1c6b20-Name", - "source": "j" - }, - { - "id": "0x5753ca286360-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1c8320-Expr" - }, - { - "id": "0x5753ca1c8320-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c5690-Designator" - }, - { - "id": "0x5753ca1c5690-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c56a0-DataRef" - }, - { - "id": "0x5753ca1c56a0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c56a0-Name" - }, - { - "id": "0x5753ca1c56a0-Name", - "source": "i" - }, - { - "id": "0x5753ca1ca260-Expr", - "variantKey": "Add", - "Add": "0x5753ca1ca280-Add" - }, - { - "id": "0x5753ca1ca280-Add", - "left": "0x5753ca1ca170-Expr", - "right": "0x5753ca1ca090-Expr", - "op": "ADD" - }, - { - "id": "0x5753ca1ca170-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca2865a0-Designator" - }, - { - "id": "0x5753ca2865a0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca2865b0-DataRef" - }, - { - "id": "0x5753ca2865b0-DataRef", - "variantKey": "ArrayElement", - "ArrayElement": "0x5753ca1c8ab0-ArrayElement" - }, - { - "id": "0x5753ca1c8ab0-ArrayElement", - "base": "0x5753ca1c8ab0-DataRef", - "subscripts": [ - "0x5753ca286510-SectionSubscript", - "0x5753ca286560-SectionSubscript"] - }, - { - "id": "0x5753ca1c8ab0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c8ab0-Name" - }, - { - "id": "0x5753ca1c8ab0-Name", - "source": "f" - }, - { - "id": "0x5753ca286510-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1c88f0-Expr" - }, - { - "id": "0x5753ca1c88f0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c6b70-Designator" - }, - { - "id": "0x5753ca1c6b70-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c6b80-DataRef" - }, - { - "id": "0x5753ca1c6b80-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c6b80-Name" - }, - { - "id": "0x5753ca1c6b80-Name", - "source": "j" - }, - { - "id": "0x5753ca286560-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1c89d0-Expr" - }, - { - "id": "0x5753ca1c89d0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c7250-Designator" - }, - { - "id": "0x5753ca1c7250-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c7260-DataRef" - }, - { - "id": "0x5753ca1c7260-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c7260-Name" - }, - { - "id": "0x5753ca1c7260-Name", - "source": "i" - }, - { - "id": "0x5753ca1ca090-Expr", - "variantKey": "Multiply", - "Multiply": "0x5753ca1ca0b0-Multiply" - }, - { - "id": "0x5753ca1ca0b0-Multiply", - "left": "0x5753ca1c9fb0-Expr", - "right": "0x5753ca1c9ed0-Expr", - "op": "MULTIPLY" - }, - { - "id": "0x5753ca1c9fb0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca286940-Designator" - }, - { - "id": "0x5753ca286940-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca286950-DataRef" - }, - { - "id": "0x5753ca286950-DataRef", - "variantKey": "ArrayElement", - "ArrayElement": "0x5753ca1c8fa0-ArrayElement" - }, - { - "id": "0x5753ca1c8fa0-ArrayElement", - "base": "0x5753ca1c8fa0-DataRef", - "subscripts": [ - "0x5753ca1c90a0-SectionSubscript", - "0x5753ca286900-SectionSubscript"] - }, - { - "id": "0x5753ca1c8fa0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c8fa0-Name" - }, - { - "id": "0x5753ca1c8fa0-Name", - "source": "c" - }, - { - "id": "0x5753ca1c90a0-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1c8cd0-Expr" - }, - { - "id": "0x5753ca1c8cd0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c9430-Designator" - }, - { - "id": "0x5753ca1c9430-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c9440-DataRef" - }, - { - "id": "0x5753ca1c9440-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c9440-Name" - }, - { - "id": "0x5753ca1c9440-Name", - "source": "k" - }, - { - "id": "0x5753ca286900-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1c8db0-Expr" - }, - { - "id": "0x5753ca1c8db0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c9230-Designator" - }, - { - "id": "0x5753ca1c9230-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c9240-DataRef" - }, - { - "id": "0x5753ca1c9240-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c9240-Name" - }, - { - "id": "0x5753ca1c9240-Name", - "source": "i" - }, - { - "id": "0x5753ca1c9ed0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca286db0-Designator" - }, - { - "id": "0x5753ca286db0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca286dc0-DataRef" - }, - { - "id": "0x5753ca286dc0-DataRef", - "variantKey": "ArrayElement", - "ArrayElement": "0x5753ca1c9680-ArrayElement" - }, - { - "id": "0x5753ca1c9680-ArrayElement", - "base": "0x5753ca1c9680-DataRef", - "subscripts": [ - "0x5753ca286d20-SectionSubscript", - "0x5753ca286d70-SectionSubscript"] - }, - { - "id": "0x5753ca1c9680-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c9680-Name" - }, - { - "id": "0x5753ca1c9680-Name", - "source": "d" - }, - { - "id": "0x5753ca286d20-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1c9290-Expr" - }, - { - "id": "0x5753ca1c9290-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c9b10-Designator" - }, - { - "id": "0x5753ca1c9b10-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c9b20-DataRef" - }, - { - "id": "0x5753ca1c9b20-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c9b20-Name" - }, - { - "id": "0x5753ca1c9b20-Name", - "source": "j" - }, - { - "id": "0x5753ca286d70-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1c9490-Expr" - }, - { - "id": "0x5753ca1c9490-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c9910-Designator" - }, - { - "id": "0x5753ca1c9910-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c9920-DataRef" - }, - { - "id": "0x5753ca1c9920-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c9920-Name" - }, - { - "id": "0x5753ca1c9920-Name", - "source": "k" - }, - { - "id": "0x5753ca1ca3c0-Statement", - "statement": "0x5753ca1ca3d0-EndDoStmt", - "source": "end do" - }, - { - "id": "0x5753ca1ca3d0-EndDoStmt" - }, - { - "id": "0x5753ca1ca4e0-Statement", - "statement": "0x5753ca1ca4f0-EndDoStmt", - "source": "end do" - }, - { - "id": "0x5753ca1ca4f0-EndDoStmt" - }, - { - "id": "0x5753ca1ca600-Statement", - "statement": "0x5753ca1ca610-EndDoStmt", - "source": "end do" - }, - { - "id": "0x5753ca1ca610-EndDoStmt" - }, - { - "id": "0x5753ca1cc2c0-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1cc2c0-ExecutableConstruct" - }, - { - "id": "0x5753ca1cc2c0-ExecutableConstruct", - "variantKey": "DoConstruct", - "DoConstruct": "0x5753ca1cce60-DoConstruct" - }, - { - "id": "0x5753ca1cce60-DoConstruct", - "Statement": "0x5753ca1cceb8-Statement", - "ExecutionPartConstruct": [ - "0x5753ca1cc120-ExecutionPartConstruct"], - "Statement": "0x5753ca1cce60-Statement" - }, - { - "id": "0x5753ca1cceb8-Statement", - "statement": "0x5753ca1ccec8-NonLabelDoStmt", - "source": "do i = 1, ni" - }, - { - "id": "0x5753ca1ccec8-NonLabelDoStmt", - "LoopControl": "0x5753ca1ccec8-LoopControl" - }, - { - "id": "0x5753ca1ccec8-LoopControl", - "variantKey": "LoopBounds", - "LoopBounds": "0x5753ca1ccec8-LoopBounds" - }, - { - "id": "0x5753ca1ccec8-LoopBounds", - "var": "0x5753ca1ccec8-Name", - "lower": "0x5753ca1ca720-Expr", - "upper": "0x5753ca1ca800-Expr" - }, - { - "id": "0x5753ca1ccec8-Name", - "source": "i" - }, - { - "id": "0x5753ca1ca720-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1ca740-LiteralConstant" - }, - { - "id": "0x5753ca1ca740-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1ca740-IntLiteralConstant" - }, - { - "id": "0x5753ca1ca740-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x5753ca1ca800-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c9c50-Designator" - }, - { - "id": "0x5753ca1c9c50-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c9c60-DataRef" - }, - { - "id": "0x5753ca1c9c60-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c9c60-Name" - }, - { - "id": "0x5753ca1c9c60-Name", - "source": "ni" - }, - { - "id": "0x5753ca1ccea0-ExecutionPartConstruct" - }, - { - "id": "0x5753ca1cc120-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1cc120-ExecutableConstruct" - }, - { - "id": "0x5753ca1cc120-ExecutableConstruct", - "variantKey": "DoConstruct", - "DoConstruct": "0x5753ca1ccd40-DoConstruct" - }, - { - "id": "0x5753ca1ccd40-DoConstruct", - "Statement": "0x5753ca1ccd98-Statement", - "ExecutionPartConstruct": [ - "0x5753ca1c6240-ExecutionPartConstruct", - "0x5753ca1cc0c0-ExecutionPartConstruct"], - "Statement": "0x5753ca1ccd40-Statement" - }, - { - "id": "0x5753ca1ccd98-Statement", - "statement": "0x5753ca1ccda8-NonLabelDoStmt", - "source": "do j = 1, nl" - }, - { - "id": "0x5753ca1ccda8-NonLabelDoStmt", - "LoopControl": "0x5753ca1ccda8-LoopControl" - }, - { - "id": "0x5753ca1ccda8-LoopControl", - "variantKey": "LoopBounds", - "LoopBounds": "0x5753ca1ccda8-LoopBounds" - }, - { - "id": "0x5753ca1ccda8-LoopBounds", - "var": "0x5753ca1ccda8-Name", - "lower": "0x5753ca1ca8e0-Expr", - "upper": "0x5753ca1ca9c0-Expr" - }, - { - "id": "0x5753ca1ccda8-Name", - "source": "j" - }, - { - "id": "0x5753ca1ca8e0-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1ca900-LiteralConstant" - }, - { - "id": "0x5753ca1ca900-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1ca900-IntLiteralConstant" - }, - { - "id": "0x5753ca1ca900-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x5753ca1ca9c0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c5830-Designator" - }, - { - "id": "0x5753ca1c5830-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c5840-DataRef" - }, - { - "id": "0x5753ca1c5840-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c5840-Name" - }, - { - "id": "0x5753ca1c5840-Name", - "source": "nl" - }, - { - "id": "0x5753ca1ccd80-ExecutionPartConstruct" - }, - { - "id": "0x5753ca1c6240-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1c6240-ExecutableConstruct" - }, - { - "id": "0x5753ca1c6240-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1c6240-Statement" - }, - { - "id": "0x5753ca1c6240-Statement", - "statement": "0x5753ca1c6250-ActionStmt", - "source": "g(j,i) = 0.0" - }, - { - "id": "0x5753ca1c6250-ActionStmt", - "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5753ca1cae80-AssignmentStmt" - }, - { - "id": "0x5753ca1cae80-AssignmentStmt", - "Variable": "0x5753ca1caf60-Variable", - "Expr": "0x5753ca1cae90-Expr" - }, - { - "id": "0x5753ca1caf60-Variable", - "variantKey": "Designator", - "Designator": "0x5753ca286450-Designator" - }, - { - "id": "0x5753ca286450-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca286460-DataRef" - }, - { - "id": "0x5753ca286460-DataRef", - "variantKey": "ArrayElement", - "ArrayElement": "0x5753ca1c9d60-ArrayElement" - }, - { - "id": "0x5753ca1c9d60-ArrayElement", - "base": "0x5753ca1c9d60-DataRef", - "subscripts": [ - "0x5753ca2864c0-SectionSubscript", - "0x5753ca2883a0-SectionSubscript"] - }, - { - "id": "0x5753ca1c9d60-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c9d60-Name" - }, - { - "id": "0x5753ca1c9d60-Name", - "source": "g" - }, - { - "id": "0x5753ca2864c0-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1c9970-Expr" - }, - { - "id": "0x5753ca1c9970-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c8e90-Designator" - }, - { - "id": "0x5753ca1c8e90-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c8ea0-DataRef" - }, - { - "id": "0x5753ca1c8ea0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c8ea0-Name" - }, - { - "id": "0x5753ca1c8ea0-Name", - "source": "j" - }, - { - "id": "0x5753ca2883a0-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1c9b70-Expr" - }, - { - "id": "0x5753ca1c9b70-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c6910-Designator" - }, - { - "id": "0x5753ca1c6910-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c6920-DataRef" - }, - { - "id": "0x5753ca1c6920-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c6920-Name" - }, - { - "id": "0x5753ca1c6920-Name", - "source": "i" - }, - { - "id": "0x5753ca1cae90-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1caeb0-LiteralConstant" - }, - { - "id": "0x5753ca1caeb0-LiteralConstant", - "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x5753ca1caeb0-RealLiteralConstant" - }, - { - "id": "0x5753ca1caeb0-RealLiteralConstant", - "real": "0x5753ca1caeb0-Real" - }, - { - "id": "0x5753ca1caeb0-Real", - "source": "0.0" - }, - { - "id": "0x5753ca1cc0c0-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1cc0c0-ExecutableConstruct" - }, - { - "id": "0x5753ca1cc0c0-ExecutableConstruct", - "variantKey": "DoConstruct", - "DoConstruct": "0x5753ca1ccc20-DoConstruct" - }, - { - "id": "0x5753ca1ccc20-DoConstruct", - "Statement": "0x5753ca1ccc78-Statement", - "ExecutionPartConstruct": [ - "0x5753ca1ccbd0-ExecutionPartConstruct"], - "Statement": "0x5753ca1ccc20-Statement" - }, - { - "id": "0x5753ca1ccc78-Statement", - "statement": "0x5753ca1ccc88-NonLabelDoStmt", - "source": "do k = 1, nj" - }, - { - "id": "0x5753ca1ccc88-NonLabelDoStmt", - "LoopControl": "0x5753ca1ccc88-LoopControl" - }, - { - "id": "0x5753ca1ccc88-LoopControl", - "variantKey": "LoopBounds", - "LoopBounds": "0x5753ca1ccc88-LoopBounds" - }, - { - "id": "0x5753ca1ccc88-LoopBounds", - "var": "0x5753ca1ccc88-Name", - "lower": "0x5753ca1caf90-Expr", - "upper": "0x5753ca1cb070-Expr" - }, - { - "id": "0x5753ca1ccc88-Name", - "source": "k" - }, - { - "id": "0x5753ca1caf90-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x5753ca1cafb0-LiteralConstant" - }, - { - "id": "0x5753ca1cafb0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5753ca1cafb0-IntLiteralConstant" - }, - { - "id": "0x5753ca1cafb0-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x5753ca1cb070-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1b95c0-Designator" - }, - { - "id": "0x5753ca1b95c0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1b95d0-DataRef" - }, - { - "id": "0x5753ca1b95d0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1b95d0-Name" - }, - { - "id": "0x5753ca1b95d0-Name", - "source": "nj" - }, - { - "id": "0x5753ca1ccc60-ExecutionPartConstruct" - }, - { - "id": "0x5753ca1ccbd0-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5753ca1ccbd0-ExecutableConstruct" - }, - { - "id": "0x5753ca1ccbd0-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5753ca1ccbd0-Statement" - }, - { - "id": "0x5753ca1ccbd0-Statement", - "statement": "0x5753ca1ccbe0-ActionStmt", - "source": "g(j,i) = g(j,i) + e(k,i) * f(j,k)" - }, - { - "id": "0x5753ca1ccbe0-ActionStmt", - "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5753ca1ccab0-AssignmentStmt" - }, - { - "id": "0x5753ca1ccab0-AssignmentStmt", - "Variable": "0x5753ca1ccb90-Variable", - "Expr": "0x5753ca1ccac0-Expr" - }, - { - "id": "0x5753ca1ccb90-Variable", - "variantKey": "Designator", - "Designator": "0x5753ca287110-Designator" - }, - { - "id": "0x5753ca287110-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca287120-DataRef" - }, - { - "id": "0x5753ca287120-DataRef", - "variantKey": "ArrayElement", - "ArrayElement": "0x5753ca1cad10-ArrayElement" - }, - { - "id": "0x5753ca1cad10-ArrayElement", - "base": "0x5753ca1cad10-DataRef", - "subscripts": [ - "0x5753ca289da0-SectionSubscript", - "0x5753ca289df0-SectionSubscript"] - }, - { - "id": "0x5753ca1cad10-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1cad10-Name" - }, - { - "id": "0x5753ca1cad10-Name", - "source": "g" - }, - { - "id": "0x5753ca289da0-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1caaa0-Expr" - }, - { - "id": "0x5753ca1caaa0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c9370-Designator" - }, - { - "id": "0x5753ca1c9370-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c9380-DataRef" - }, - { - "id": "0x5753ca1c9380-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c9380-Name" - }, - { - "id": "0x5753ca1c9380-Name", - "source": "j" - }, - { - "id": "0x5753ca289df0-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1cab80-Expr" - }, - { - "id": "0x5753ca1cab80-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c6d10-Designator" - }, - { - "id": "0x5753ca1c6d10-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c6d20-DataRef" - }, - { - "id": "0x5753ca1c6d20-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c6d20-Name" - }, - { - "id": "0x5753ca1c6d20-Name", - "source": "i" - }, - { - "id": "0x5753ca1ccac0-Expr", - "variantKey": "Add", - "Add": "0x5753ca1ccae0-Add" - }, - { - "id": "0x5753ca1ccae0-Add", - "left": "0x5753ca1cc9d0-Expr", - "right": "0x5753ca1cc8f0-Expr", - "op": "ADD" - }, - { - "id": "0x5753ca1cc9d0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca289f80-Designator" - }, - { - "id": "0x5753ca289f80-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca289f90-DataRef" - }, - { - "id": "0x5753ca289f90-DataRef", - "variantKey": "ArrayElement", - "ArrayElement": "0x5753ca1cae40-ArrayElement" - }, - { - "id": "0x5753ca1cae40-ArrayElement", - "base": "0x5753ca1cae40-DataRef", - "subscripts": [ - "0x5753ca289ef0-SectionSubscript", - "0x5753ca289f40-SectionSubscript"] - }, - { - "id": "0x5753ca1cae40-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1cae40-Name" - }, - { - "id": "0x5753ca1cae40-Name", - "source": "g" - }, - { - "id": "0x5753ca289ef0-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1cb150-Expr" - }, - { - "id": "0x5753ca1cb150-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c93d0-Designator" - }, - { - "id": "0x5753ca1c93d0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c93e0-DataRef" - }, - { - "id": "0x5753ca1c93e0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c93e0-Name" - }, - { - "id": "0x5753ca1c93e0-Name", - "source": "j" - }, - { - "id": "0x5753ca289f40-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1cb230-Expr" - }, - { - "id": "0x5753ca1cb230-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1c9ab0-Designator" - }, - { - "id": "0x5753ca1c9ab0-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1c9ac0-DataRef" - }, - { - "id": "0x5753ca1c9ac0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1c9ac0-Name" - }, - { - "id": "0x5753ca1c9ac0-Name", - "source": "i" - }, - { - "id": "0x5753ca1cc8f0-Expr", - "variantKey": "Multiply", - "Multiply": "0x5753ca1cc910-Multiply" - }, - { - "id": "0x5753ca1cc910-Multiply", - "left": "0x5753ca1cc810-Expr", - "right": "0x5753ca1cc730-Expr", - "op": "MULTIPLY" - }, - { - "id": "0x5753ca1cc810-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca28a320-Designator" - }, - { - "id": "0x5753ca28a320-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca28a330-DataRef" - }, - { - "id": "0x5753ca28a330-DataRef", - "variantKey": "ArrayElement", - "ArrayElement": "0x5753ca1cb800-ArrayElement" - }, - { - "id": "0x5753ca1cb800-ArrayElement", - "base": "0x5753ca1cb800-DataRef", - "subscripts": [ - "0x5753ca1cb900-SectionSubscript", - "0x5753ca28a2e0-SectionSubscript"] - }, - { - "id": "0x5753ca1cb800-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1cb800-Name" - }, - { - "id": "0x5753ca1cb800-Name", - "source": "e" - }, - { - "id": "0x5753ca1cb900-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1cb530-Expr" - }, - { - "id": "0x5753ca1cb530-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1cbc90-Designator" - }, - { - "id": "0x5753ca1cbc90-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1cbca0-DataRef" - }, - { - "id": "0x5753ca1cbca0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1cbca0-Name" - }, - { - "id": "0x5753ca1cbca0-Name", - "source": "k" - }, - { - "id": "0x5753ca28a2e0-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1cb610-Expr" - }, - { - "id": "0x5753ca1cb610-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1cba90-Designator" - }, - { - "id": "0x5753ca1cba90-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1cbaa0-DataRef" - }, - { - "id": "0x5753ca1cbaa0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1cbaa0-Name" - }, - { - "id": "0x5753ca1cbaa0-Name", - "source": "i" - }, - { - "id": "0x5753ca1cc730-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca28a790-Designator" - }, - { - "id": "0x5753ca28a790-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca28a7a0-DataRef" - }, - { - "id": "0x5753ca28a7a0-DataRef", - "variantKey": "ArrayElement", - "ArrayElement": "0x5753ca1cbee0-ArrayElement" - }, - { - "id": "0x5753ca1cbee0-ArrayElement", - "base": "0x5753ca1cbee0-DataRef", - "subscripts": [ - "0x5753ca28a700-SectionSubscript", - "0x5753ca28a750-SectionSubscript"] - }, - { - "id": "0x5753ca1cbee0-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1cbee0-Name" - }, - { - "id": "0x5753ca1cbee0-Name", - "source": "f" - }, - { - "id": "0x5753ca28a700-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1cbaf0-Expr" - }, - { - "id": "0x5753ca1cbaf0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1cc370-Designator" - }, - { - "id": "0x5753ca1cc370-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1cc380-DataRef" - }, - { - "id": "0x5753ca1cc380-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1cc380-Name" - }, - { - "id": "0x5753ca1cc380-Name", - "source": "j" - }, - { - "id": "0x5753ca28a750-SectionSubscript", - "variantKey": "Expr", - "Expr": "0x5753ca1cbcf0-Expr" - }, - { - "id": "0x5753ca1cbcf0-Expr", - "variantKey": "Designator", - "Designator": "0x5753ca1cc170-Designator" - }, - { - "id": "0x5753ca1cc170-Designator", - "variantKey": "DataRef", - "DataRef": "0x5753ca1cc180-DataRef" - }, - { - "id": "0x5753ca1cc180-DataRef", - "variantKey": "Name", - "Name": "0x5753ca1cc180-Name" - }, - { - "id": "0x5753ca1cc180-Name", - "source": "k" - }, - { - "id": "0x5753ca1ccc20-Statement", - "statement": "0x5753ca1ccc30-EndDoStmt", - "source": "end do" - }, - { - "id": "0x5753ca1ccc30-EndDoStmt" - }, - { - "id": "0x5753ca1ccd40-Statement", - "statement": "0x5753ca1ccd50-EndDoStmt", - "source": "end do" - }, - { - "id": "0x5753ca1ccd50-EndDoStmt" - }, - { - "id": "0x5753ca1cce60-Statement", - "statement": "0x5753ca1cce70-EndDoStmt", - "source": "end do" - }, - { - "id": "0x5753ca1cce70-EndDoStmt" - }, - { - "id": "0x5753ca1c1140-Statement", - "statement": "0x5753ca1c1150-EndSubroutineStmt", - "source": "end subroutine" - }, - { - "id": "0x5753ca1c1150-EndSubroutineStmt" - }, - { - "id": "0x5753ca1aebe0-Statement", - "statement": "0x5753ca1aebf0-EndProgramStmt", - "source": "end program" - }, - { - "id": "0x5753ca1aebf0-EndProgramStmt" - }], - "enums": { - "Fortran::common::CUDADataAttr": ["Constant", "Device", "Managed", "Pinned", "Shared", "Texture", "Unified"], - "Fortran::common::CUDASubprogramAttrs": ["Host", "Device", "HostDevice", "Global", "Grid_Global"], - "Fortran::common::ImportKind": ["Default", "Only", "None", "All"], - "Fortran::common::OmpDependenceKind": ["In", "Out", "Inout", "Inoutset", "Mutexinoutset", "Depobj"], - "Fortran::common::OmpMemoryOrderType": ["Acq_Rel", "Acquire", "Relaxed", "Release", "Seq_Cst"], - "Fortran::common::OpenACCDeviceType": ["Star", "Default", "Nvidia", "Radeon", "Host", "Multicore", "None"], - "Fortran::parser::AccDataModifier::Modifier": ["ReadOnly", "Zero"], - "Fortran::parser::AccessSpec::Kind": ["Public", "Private"], - "Fortran::parser::BindEntity::Kind": ["Object", "Common"], - "Fortran::parser::CompilerDirective::VectorLength::Kind": ["Auto", "Fixed", "Scalable"], - "Fortran::parser::ConnectSpec::CharExpr::Kind": ["Access", "Action", "Asynchronous", "Blank", "Decimal", "Delim", "Encoding", "Form", "Pad", "Position", "Round", "Sign", "Carriagecontrol", "Convert", "Dispose"], - "Fortran::parser::DefinedOperator::IntrinsicOperator": ["Power", "Multiply", "Divide", "Add", "Subtract", "Concat", "LT", "LE", "EQ", "NE", "GE", "GT", "NOT", "AND", "OR", "EQV", "NEQV"], - "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec": ["External", "Type"], - "Fortran::parser::InquireSpec::CharVar::Kind": ["Access", "Action", "Asynchronous", "Blank", "Decimal", "Delim", "Direct", "Encoding", "Form", "Formatted", "Iomsg", "Name", "Pad", "Position", "Read", "Readwrite", "Round", "Sequential", "Sign", "Stream", "Status", "Unformatted", "Write", "Carriagecontrol", "Convert", "Dispose"], - "Fortran::parser::InquireSpec::IntVar::Kind": ["Iostat", "Nextrec", "Number", "Pos", "Recl", "Size"], - "Fortran::parser::InquireSpec::LogVar::Kind": ["Exist", "Named", "Opened", "Pending"], - "Fortran::parser::IntentSpec::Intent": ["In", "Out", "InOut"], - "Fortran::parser::IoControlSpec::CharExpr::Kind": ["Advance", "Blank", "Decimal", "Delim", "Pad", "Round", "Sign"], - "Fortran::parser::ReductionOperator::Operator": ["Plus", "Multiply", "Max", "Min", "Iand", "Ior", "Ieor", "And", "Or", "Eqv", "Neqv"], - "Fortran::parser::OmpAccessGroup::Value": ["Cgroup"], - "Fortran::parser::OmpAdjustArgsClause::OmpAdjustOp::Value": ["Nothing", "Need_Device_Ptr"], - "Fortran::parser::OmpAlwaysModifier::Value": ["Always"], - "Fortran::parser::OmpAtClause::ActionTime": ["Compilation", "Execution"], - "Fortran::parser::OmpAttachModifier::Value": ["Always", "Never", "Auto"], - "Fortran::parser::OmpAutomapModifier::Value": ["Automap"], - "Fortran::parser::OmpBindClause::Binding": ["Parallel", "Teams", "Thread"], - "Fortran::parser::OmpChunkModifier::Value": ["Simd"], - "Fortran::parser::OmpCloseModifier::Value": ["Close"], - "Fortran::parser::OmpDefaultClause::DataSharingAttribute": ["Private", "Firstprivate", "Shared", "None"], - "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": ["Alloc", "To", "From", "Tofrom", "Firstprivate", "None", "Default", "Present"], - "Fortran::parser::OmpDeleteModifier::Value": ["Delete"], - "Fortran::parser::OmpDependenceType::Value": ["Sink", "Source"], - "Fortran::parser::OmpDeviceModifier::Value": ["Ancestor", "Device_Num"], - "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": ["Any", "Host", "Nohost"], - "Fortran::parser::OmpDirectiveSpecification::Flag": ["DeprecatedSyntax", "CrossesLabelDo"], - "Fortran::parser::OmpExpectation::Value": ["Present"], - "Fortran::parser::OmpInteropType::Value": ["Target", "Targetsync"], - "Fortran::parser::OmpLastprivateModifier::Value": ["Conditional"], - "Fortran::parser::OmpLinearModifier::Value": ["Ref", "Uval", "Val"], - "Fortran::parser::OmpMapType::Value": ["Alloc", "Delete", "From", "Release", "Storage", "To", "Tofrom"], - "Fortran::parser::OmpMapTypeModifier::Value": ["Always", "Close", "Present", "Ompx_Hold"], - "Fortran::parser::OmpObject::Invalid::Kind": ["BlankCommonBlock"], - "Fortran::parser::OmpOrderClause::Ordering": ["Concurrent"], - "Fortran::parser::OmpOrderingModifier::Value": ["Monotonic", "Nonmonotonic", "Simd"], - "Fortran::parser::OmpOrderModifier::Value": ["Reproducible", "Unconstrained"], - "Fortran::parser::OmpPrescriptiveness::Value": ["Strict"], - "Fortran::parser::OmpPresentModifier::Value": ["Present"], - "Fortran::parser::OmpProcBindClause::AffinityPolicy": ["Close", "Master", "Spread", "Primary"], - "Fortran::parser::OmpReductionModifier::Value": ["Default", "Inscan", "Task"], - "Fortran::parser::OmpRefModifier::Value": ["Ref_Ptee", "Ref_Ptr", "Ref_Ptr_Ptee"], - "Fortran::parser::OmpScheduleClause::Kind": ["Static", "Dynamic", "Guided", "Auto", "Runtime"], - "Fortran::parser::OmpSelfModifier::Value": ["Self"], - "Fortran::parser::OmpSeverityClause::SevLevel": ["Fatal", "Warning"], - "Fortran::parser::OmpThreadsetClause::ThreadsetPolicy": ["Omp_Pool", "Omp_Team"], - "Fortran::parser::OmpTraitSelectorName::Value": ["Arch", "Atomic_Default_Mem_Order", "Condition", "Device_Num", "Extension", "Isa", "Kind", "Requires", "Simd", "Uid", "Vendor"], - "Fortran::parser::OmpTraitSetSelectorName::Value": ["Construct", "Device", "Implementation", "Target_Device", "User"], - "Fortran::parser::OmpVariableCategory::Value": ["Aggregate", "All", "Allocatable", "Pointer", "Scalar"], - "Fortran::parser::OmpxHoldModifier::Value": ["Ompx_Hold"], - "Fortran::parser::ProcedureStmt::Kind": ["ModuleProcedure", "Procedure"], - "Fortran::parser::SavedEntity::Kind": ["Entity", "Common"], - "Fortran::parser::StopStmt::Kind": ["Stop", "ErrorStop"], - "Fortran::parser::UseStmt::ModuleNature": ["Intrinsic", "Non_Intrinsic"] } } From 7f04ea4a36a7d5e4b7c47498685e926be2fa3519 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 7 Jul 2026 14:25:20 +0100 Subject: [PATCH 009/260] Refactor main program node --- .../specs/fortran/ast/FortranNodeFactory.java | 2 +- .../ast/nodes/program/EndProgramStmt.java | 22 ++++ .../ast/nodes/program/MainProgram.java | 31 +++-- .../ast/nodes/program/ProgramStmt.java | 22 ++++ .../fortran/parser/declaration.expected.f90 | 5 + .../fortran/parser/declaration.json | 122 ++++++++++-------- .../fujitsu/0000/0000_0001.expected.f90 | 2 +- .../fujitsu/0000/0000_0002.expected.f90 | 2 +- .../fujitsu/0000/0000_0003.expected.f90 | 2 +- .../fujitsu/0000/0000_0004.expected.f90 | 2 +- .../fujitsu/0000/0000_0007.expected.f90 | 2 +- .../fujitsu/0000/0000_0019.expected.f90 | 2 +- .../fujitsu/0000/0000_0024.expected.f90 | 2 +- .../fujitsu/0000/0000_0029.expected.f90 | 2 +- .../fujitsu/0000/0000_0030.expected.f90 | 2 +- .../fujitsu/0000/0000_0033.expected.f90 | 2 +- .../program/no_program_stmt.expected.f90 | 2 +- .../fe/specs/fortran/parser/FlangToClass.java | 2 + .../parser/processors/NodeProcessor.java | 8 ++ .../fortran/parser/processors/Nodes.java | 2 + .../parser/processors/ProgramProcessors.java | 8 +- .../parser/processors/StmtProcessors.java | 10 ++ 22 files changed, 174 insertions(+), 82 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/EndProgramStmt.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/ProgramStmt.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java index 4b0e0a93..c7f6ca66 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java @@ -126,7 +126,7 @@ public FortranFile fortranFile(List units) { public MainProgram mainProgram(String programName, List execution) { DataStore data = newDataStore(MainProgram.class); - data.set(MainProgram.PROGRAM_NAME, Optional.ofNullable(programName)); + data.set(MainProgram.NAME, Optional.ofNullable(programName)); var executionBlock = execution(execution); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/EndProgramStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/EndProgramStmt.java new file mode 100644 index 00000000..f6f6bd66 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/EndProgramStmt.java @@ -0,0 +1,22 @@ +package pt.up.fe.specs.fortran.ast.nodes.program; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; + +import java.util.Collection; + +public class EndProgramStmt extends Stmt { + public EndProgramStmt(DataStore data, Collection children) { + super(data, children); + } + + @Override + public String getStmtCode() { + var nameOpt = getAncestor(MainProgram.class).getName(); + var nameSuffix = nameOpt.map(name -> " " + name).orElse(""); + + return keyword(FortranKeyword.END) + " " + keyword(FortranKeyword.PROGRAM) + nameSuffix; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/MainProgram.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/MainProgram.java index 70667015..c3b4a1d5 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/MainProgram.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/MainProgram.java @@ -22,7 +22,7 @@ public class MainProgram extends ProgramUnit { // DATAKEYS BEGIN - public final static DataKey> PROGRAM_NAME = KeyFactory.optional("programName"); + public final static DataKey> NAME = KeyFactory.optional("programName"); // DATAKEYS END @@ -30,27 +30,30 @@ public MainProgram(DataStore data, Collection children) { super(data, children); } + public Optional getName() { + return get(NAME); + } + + public Optional getProgramStmt() { + return getChildOf(ProgramStmt.class); + } + + public EndProgramStmt getEndProgramStmt() { + return getChild(EndProgramStmt.class); + } + @Override public String getCode() { + var programStmtOpt = getProgramStmt(); + var endProgramStmt = getEndProgramStmt(); var code = new StringBuilder(); - var programName = get(PROGRAM_NAME).orElse(null); - - // Only write header if name is present - if (programName != null) { - code.append(keyword(PROGRAM)) - .append(" " + programName).append(ln()); - } + programStmtOpt.ifPresent(stmt -> code.append(stmt.getCode()).append(ln())); code.append(getBodyCode()).append(ln()); - // Write closing - code.append(keyword(END)); - if (programName != null) { - code.append(" " + keyword(PROGRAM) + " ").append(programName); - } - code.append(ln()); + code.append(endProgramStmt.getCode()).append(ln()); return code.toString(); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/ProgramStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/ProgramStmt.java new file mode 100644 index 00000000..723def1c --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/ProgramStmt.java @@ -0,0 +1,22 @@ +package pt.up.fe.specs.fortran.ast.nodes.program; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; + +import java.util.Collection; + +public class ProgramStmt extends Stmt { + public ProgramStmt(DataStore data, Collection children) { + super(data, children); + } + + @Override + public String getStmtCode() { + var nameOpt = getAncestor(MainProgram.class).getName(); + var nameSuffix = nameOpt.map(name -> " " + name).orElse(""); + + return keyword(FortranKeyword.PROGRAM) + nameSuffix; + } +} diff --git a/FortranParser/resources-test/fortran/parser/declaration.expected.f90 b/FortranParser/resources-test/fortran/parser/declaration.expected.f90 index 1432193f..8215c220 100644 --- a/FortranParser/resources-test/fortran/parser/declaration.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/declaration.expected.f90 @@ -2,4 +2,9 @@ PROGRAM DECLARATION INTEGER :: a, b = 1 + !integer i; + ! i = 1 + + ! a = 5 + END PROGRAM DECLARATION \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/declaration.json b/FortranParser/resources-test/fortran/parser/declaration.json index c29d9e44..fc9308b7 100644 --- a/FortranParser/resources-test/fortran/parser/declaration.json +++ b/FortranParser/resources-test/fortran/parser/declaration.json @@ -1,138 +1,152 @@ { "nodes": [ { - "id": "0x55d2981c8f00-Program", + "id": "0x55892196cf00-Program", "ProgramUnit": [ - "0x55d2981fee90-ProgramUnit" + "0x5589219a2e20-ProgramUnit" ] }, { - "id": "0x55d2981fee90-ProgramUnit", + "id": "0x5589219a2e20-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x55d298203b40-MainProgram" + "MainProgram": "0x5589219a7890-MainProgram" }, { - "id": "0x55d298203b40-MainProgram", - "Statement": "0x55d298203c88-Statement", - "SpecificationPart": "0x55d298203be0-SpecificationPart", - "ExecutionPart": "0x55d298203bc8-ExecutionPart", - "Statement": "0x55d298203b40-Statement" + "id": "0x5589219a7890-MainProgram", + "Statement": "0x5589219a79d8-Statement", + "SpecificationPart": "0x5589219a7930-SpecificationPart", + "ExecutionPart": "0x5589219a7918-ExecutionPart", + "Statement": "0x5589219a7890-Statement" }, { - "id": "0x55d298203c88-Statement", - "statement": "0x55d298203c98-ProgramStmt", + "id": "0x5589219a79d8-Statement", + "statement": "0x5589219a79e8-ProgramStmt", "source": "program DECLARATION" }, { - "id": "0x55d298203c98-ProgramStmt", - "Name": "0x55d298203c98-Name" + "id": "0x5589219a79e8-ProgramStmt", + "Name": "0x5589219a79e8-Name" }, { - "id": "0x55d298203c98-Name", + "id": "0x5589219a79e8-Name", "source": "DECLARATION" }, { - "id": "0x55d298203be0-SpecificationPart", - "ImplicitPart": "0x55d298203bf8-ImplicitPart", + "id": "0x5589219a7930-SpecificationPart", + "ImplicitPart": "0x5589219a7948-ImplicitPart", "DeclarationConstruct": [ - "0x55d2981d5da0-DeclarationConstruct" + "0x55892197a110-DeclarationConstruct" ] }, { - "id": "0x55d298203bf8-ImplicitPart" + "id": "0x5589219a7948-ImplicitPart" }, { - "id": "0x55d2981d5da0-DeclarationConstruct", + "id": "0x55892197a110-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55d2981d5da0-SpecificationConstruct" + "SpecificationConstruct": "0x55892197a110-SpecificationConstruct" }, { - "id": "0x55d2981d5da0-SpecificationConstruct", + "id": "0x55892197a110-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55d2981d5da0-Statement" + "Statement": "0x55892197a110-Statement" }, { - "id": "0x55d2981d5da0-Statement", - "statement": "0x55d2981fc420-TypeDeclarationStmt", + "id": "0x55892197a110-Statement", + "statement": "0x5589219a0320-TypeDeclarationStmt", "source": "integer :: a, b = 1" }, { - "id": "0x55d2981fc420-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55d2981fc450-DeclarationTypeSpec", + "id": "0x5589219a0320-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5589219a0350-DeclarationTypeSpec", "EntityDecl": [ - "0x55d2981fc690-EntityDecl", - "0x55d2981fc5a0-EntityDecl" + "0x5589219a0590-EntityDecl", + "0x5589219a04a0-EntityDecl" ] }, { - "id": "0x55d2981fc450-DeclarationTypeSpec", + "id": "0x5589219a0350-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55d2981fc450-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5589219a0350-IntrinsicTypeSpec" }, { - "id": "0x55d2981fc450-IntrinsicTypeSpec", + "id": "0x5589219a0350-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55d2981fc450-IntegerTypeSpec" + "IntegerTypeSpec": "0x5589219a0350-IntegerTypeSpec" }, { - "id": "0x55d2981fc450-IntegerTypeSpec" + "id": "0x5589219a0350-IntegerTypeSpec" }, { - "id": "0x55d2981fc690-EntityDecl", - "Name": "0x55d2981fc748-Name" + "id": "0x5589219a0590-EntityDecl", + "Name": "0x5589219a0648-Name" }, { - "id": "0x55d2981fc748-Name", + "id": "0x5589219a0648-Name", "source": "a" }, { - "id": "0x55d2981fc5a0-EntityDecl", - "Name": "0x55d2981fc658-Name", - "Initialization": "0x55d2981fc5a0-Initialization" + "id": "0x5589219a04a0-EntityDecl", + "Name": "0x5589219a0558-Name", + "Initialization": "0x5589219a04a0-Initialization" }, { - "id": "0x55d2981fc658-Name", + "id": "0x5589219a0558-Name", "source": "b" }, { - "id": "0x55d2981fc5a0-Initialization", + "id": "0x5589219a04a0-Initialization", "variantKey": "Expr", - "Expr": "0x55d298168790-Expr" + "Expr": "0x55892190c790-Expr" }, { - "id": "0x55d298168790-Expr", + "id": "0x55892190c790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d2981687b0-LiteralConstant" + "LiteralConstant": "0x55892190c7b0-LiteralConstant" }, { - "id": "0x55d2981687b0-LiteralConstant", + "id": "0x55892190c7b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55d2981687b0-IntLiteralConstant" + "IntLiteralConstant": "0x55892190c7b0-IntLiteralConstant" }, { - "id": "0x55d2981687b0-IntLiteralConstant", + "id": "0x55892190c7b0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55d298203bc8-ExecutionPart" + "id": "0x5589219a7918-ExecutionPart" }, { - "id": "0x55d298203bc8-list" + "id": "0x5589219a7918-list" }, { - "id": "0x55d298203b40-Statement", - "statement": "0x55d298203b50-EndProgramStmt", + "id": "0x5589219a7890-Statement", + "statement": "0x5589219a78a0-EndProgramStmt", "source": "end program DECLARATION" }, { - "id": "0x55d298203b50-EndProgramStmt", - "Name": "0x55d298203b50-Name" + "id": "0x5589219a78a0-EndProgramStmt", + "Name": "0x5589219a78a0-Name" }, { - "id": "0x55d298203b50-Name", + "id": "0x5589219a78a0-Name", "source": "DECLARATION" } ], + "comments": [ + { + "text": "!integer i;", + "stmtId": "0x5589219a7890-Statement" + }, + { + "text": "! i = 1", + "stmtId": "0x5589219a7890-Statement" + }, + { + "text": "! a = 5", + "stmtId": "0x5589219a7890-Statement" + } + ], "enums": { "Fortran::common::CUDADataAttr": [ "Constant", diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0001.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0001.expected.f90 index 01d8bed5..666a3d51 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0001.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0001.expected.f90 @@ -28,4 +28,4 @@ PRINT *, "OK" END IF -END \ No newline at end of file +END PROGRAM \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.expected.f90 index 7a5f2939..3b6aa0c8 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.expected.f90 @@ -28,4 +28,4 @@ PRINT *, "OK" END IF -END \ No newline at end of file +END PROGRAM \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0003.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0003.expected.f90 index 74c533a4..b921f889 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0003.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0003.expected.f90 @@ -27,4 +27,4 @@ IF (ok) THEN PRINT *, "OK" END IF -END \ No newline at end of file +END PROGRAM \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0004.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0004.expected.f90 index bd1a4792..8b0ff590 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0004.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0004.expected.f90 @@ -27,4 +27,4 @@ IF (ok) THEN PRINT *, "OK" END IF -END \ No newline at end of file +END PROGRAM \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0007.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0007.expected.f90 index 4e0399a5..ae02dc2d 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0007.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0007.expected.f90 @@ -28,4 +28,4 @@ PRINT *, "OK" END IF -END \ No newline at end of file +END PROGRAM \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0019.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0019.expected.f90 index ee28c46d..aaabaefc 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0019.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0019.expected.f90 @@ -28,4 +28,4 @@ PRINT *, "OK" END IF -END \ No newline at end of file +END PROGRAM \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0024.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0024.expected.f90 index 8c2216ef..c7019a3c 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0024.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0024.expected.f90 @@ -9,4 +9,4 @@ PRINT *, "NG", a END IF -END \ No newline at end of file +END PROGRAM \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0029.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0029.expected.f90 index 3ea1d001..e34d6ac3 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0029.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0029.expected.f90 @@ -11,4 +11,4 @@ PRINT *, "NG", sum(a) END IF -END \ No newline at end of file +END PROGRAM \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0030.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0030.expected.f90 index f6fd4b67..35e0d10e 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0030.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0030.expected.f90 @@ -10,4 +10,4 @@ PRINT *, "NG", sum(a) END IF -END \ No newline at end of file +END PROGRAM \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.expected.f90 index cbe4d341..97d19048 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.expected.f90 @@ -11,7 +11,7 @@ END IF STOP -END +END PROGRAM SUBROUTINE test1() COMMON /com/ ok diff --git a/FortranParser/resources-test/fortran/parser/program/no_program_stmt.expected.f90 b/FortranParser/resources-test/fortran/parser/program/no_program_stmt.expected.f90 index e38fd48c..5320c955 100644 --- a/FortranParser/resources-test/fortran/parser/program/no_program_stmt.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/program/no_program_stmt.expected.f90 @@ -1,2 +1,2 @@ PRINT *, "Hello World!" -END \ No newline at end of file +END PROGRAM \ No newline at end of file diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index f2f71c8d..c4f3b2ab 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -47,6 +47,8 @@ public class FlangToClass { static { NAME_TO_CLASS.put(FlangName.PROGRAM, FortranFile.class); NAME_TO_CLASS.put(FlangName.MAIN_PROGRAM, MainProgram.class); + NAME_TO_CLASS.put(FlangName.PROGRAM_STMT, ProgramStmt.class); + NAME_TO_CLASS.put(FlangName.END_PROGRAM_STMT, EndProgramStmt.class); NAME_TO_CLASS.put(FlangName.SPECIFICATION_PART, Specification.class); NAME_TO_CLASS.put(FlangName.EXECUTION_PART, Execution.class); NAME_TO_CLASS.put(FlangName.INTERNAL_SUBPROGRAM_PART, InternalSubprogram.class); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/NodeProcessor.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/NodeProcessor.java index 02173d65..8c78fb68 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/NodeProcessor.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/NodeProcessor.java @@ -74,10 +74,18 @@ default FortranNode getStmtChild(FortranNode node, FlangName name) { return getChild(node, name.getStmtAttr()); } + default Optional getStmtChildOptional(FortranNode node, FlangName name) { + return getChildOptional(node, name.getStmtAttr()); + } + default FortranNode getUnlabeledStmtChild(FortranNode node, FlangName name) { return getChild(node, name.getUnlabeledStmtAttr()); } + default Optional getUnlabeledStmtChildOptional(FortranNode node, FlangName name) { + return getChildOptional(node, name.getUnlabeledStmtAttr()); + } + default String getVariantChildId(FortranNode node) { return attributes().getVariantChildId(node); } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 769813b5..8a5b9c42 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -108,6 +108,8 @@ public Nodes(FortranJsonResult data) { processors.put(DataStmt.class, s::dataStmt); processors.put(DataStmtSet.class, s::dataStmtSet); + processors.put(ProgramStmt.class, s::programStmt); + processors.put(EndProgramStmt.class, s::endProgramStmt); var e = new ExprProcessors(data); processors.put(StringLiteral.class, e::stringLiteral); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java index ccfaf142..b43bf2e6 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java @@ -2,7 +2,6 @@ import pt.up.fe.specs.fortran.ast.FortranContext; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.alloc.Allocation; import pt.up.fe.specs.fortran.ast.nodes.program.*; import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; @@ -31,6 +30,8 @@ public void program(FortranFile fortranFile) { } public void mainProgram(MainProgram mainProgram) { + var programStmt = getStmtChildOptional(mainProgram, FlangName.PROGRAM_STMT); + programStmt.ifPresent(mainProgram::addChild); var name = attributes().getOptionalString(mainProgram, "source", FlangName.PROGRAM_STMT, FlangName.NAME); // [specification-part] @@ -42,7 +43,10 @@ public void mainProgram(MainProgram mainProgram) { mainProgram.addChild(getChild(mainProgram, FlangName.INTERNAL_SUBPROGRAM_PART)); } - mainProgram.set(MainProgram.PROGRAM_NAME, name); + var endProgramStmt = getStmtChild(mainProgram, FlangName.END_PROGRAM_STMT); + mainProgram.addChild(endProgramStmt); + + mainProgram.set(MainProgram.NAME, name); } public void specification(Specification specification) { diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 72640349..66e4a9be 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -3,7 +3,9 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; import pt.up.fe.specs.fortran.ast.nodes.loops.WhileLoopControl; +import pt.up.fe.specs.fortran.ast.nodes.program.EndProgramStmt; import pt.up.fe.specs.fortran.ast.nodes.program.Execution; +import pt.up.fe.specs.fortran.ast.nodes.program.ProgramStmt; import pt.up.fe.specs.fortran.ast.nodes.program.StmtBlock; import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; import pt.up.fe.specs.fortran.ast.nodes.specification.NamedConstantDef; @@ -532,4 +534,12 @@ public void commonBlockObject(CommonBlockObject object) { var arraySpecOpt = getChildOptional(object, FlangName.ARRAY_SPEC); arraySpecOpt.ifPresent(object::addChild); } + + public void programStmt(ProgramStmt programStmt) { + stmt(programStmt); + } + + public void endProgramStmt(EndProgramStmt endProgramStmt) { + stmt(endProgramStmt); + } } From 6059b4e807e75c0e358b8727b021b420ab0eb6ea Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 7 Jul 2026 14:25:26 +0100 Subject: [PATCH 010/260] Fix weaver --- .../specs/fortran/weaver/FortranWeaver.json | 3950 ++++++++++++++--- .../fortran/weaver/joinpoints/FExecution.java | 2 +- 2 files changed, 3337 insertions(+), 615 deletions(-) diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json index 86c57729..1940bdb1 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json @@ -981,6 +981,232 @@ }] }] }, + { + "type": "joinpoint", + "name": "attributeSpecifier", + "extends": "joinpoint" , + "children": [ + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, { "type": "joinpoint", "name": "binaryOperator", @@ -2394,6 +2620,24 @@ "name": "scopeNodes" }] }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, { "type": "action", "tooltip": "Removes node associated to the joinpoint from the AST", @@ -2405,25 +2649,95 @@ }, { "type": "action", - "tooltip": "Replaces this node with the given node", + "tooltip": "Inserts the given join point after this join point", "children": [ { "type": "joinpoint", - "name": "replaceWith" + "name": "insertAfter" }, { "type": "joinpoint", "name": "node", "defaultValue": "" }] - }] - }, - { - "type": "joinpoint", - "name": "elseIfBlock", - "extends": "joinpoint" , - "tooltip": "Represents the optional 'else if' blocks of an if construct", - "children": [ + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "elseIfBlock", + "extends": "joinpoint" , + "tooltip": "Represents the optional 'else if' blocks of an if construct", + "children": [ { "type": "attribute", "children": [ @@ -2551,170 +2865,111 @@ }, { "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", "children": [ { "type": "joinpoint", - "name": "detach" + "name": "copy" }] }, { "type": "action", - "tooltip": "Replaces this node with the given node", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", "children": [ { "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - }] - }] - }, - { - "type": "joinpoint", - "name": "elseIfStatement", - "extends": "joinpoint" , - "tooltip": "Represents the header of an 'else if' block", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "expr", - "name": "condition" - }] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" + "name": "deepCopy" }] }, { - "type": "attribute", - "tooltip": "String with the code represented by this node", + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", "children": [ { - "type": "String", - "name": "code" + "type": "joinpoint", + "name": "detach" }] }, { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", + "type": "action", + "tooltip": "Inserts the given join point after this join point", "children": [ { - "type": "Boolean", - "name": "contains" + "type": "joinpoint", + "name": "insertAfter" }, { "type": "joinpoint", - "name": "jp", + "name": "node", "defaultValue": "" }] }, { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - }] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "type": "action", + "tooltip": "Overload which accepts a string", "children": [ { "type": "joinpoint", - "name": "getAncestor" + "name": "insertAfter" }, { "type": "String", - "name": "type", + "name": "code", "defaultValue": "" }] }, { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - }] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", + "type": "action", + "tooltip": "Inserts the given join point before this join point", "children": [ { "type": "joinpoint", - "name": "leftJp" - }] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ + "name": "insertBefore" + }, { "type": "joinpoint", - "name": "parent" + "name": "node", + "defaultValue": "" }] }, { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "type": "action", + "tooltip": "Overload which accepts a string", "children": [ { "type": "joinpoint", - "name": "rightJp" - }] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - }] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ + "name": "insertBefore" + }, { - "type": "joinpoint[]", - "name": "scopeNodes" + "type": "String", + "name": "node", + "defaultValue": "" }] }, { "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", + "tooltip": "Replaces this node with the given node", "children": [ { "type": "joinpoint", - "name": "detach" + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" }] }, { "type": "action", - "tooltip": "Replaces this node with the given node", + "tooltip": "Overload which accepts a list of join points", "children": [ { "type": "joinpoint", "name": "replaceWith" }, { - "type": "joinpoint", + "type": "joinpoint[]", "name": "node", "defaultValue": "" }] @@ -2722,24 +2977,16 @@ }, { "type": "joinpoint", - "name": "executableStatement", - "extends": "statement" , - "tooltip": "Represents an executable statement", + "name": "elseIfStatement", + "extends": "joinpoint" , + "tooltip": "Represents the header of an 'else if' block", "children": [ { "type": "attribute", "children": [ { - "type": "Boolean", - "name": "isFirst" - }] - }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isLast" + "type": "expr", + "name": "condition" }] }, { @@ -2965,23 +3212,15 @@ }, { "type": "joinpoint", - "name": "execution", - "extends": "statementBlock" , + "name": "entityDecl", + "extends": "fortranDecl" , "children": [ { "type": "attribute", "children": [ { - "type": "executableStatement[]", - "name": "executableStmts" - }] - }, - { - "type": "attribute", - "children": [ - { - "type": "statement[]", - "name": "stmts" + "type": "String", + "name": "name" }] }, { @@ -3095,37 +3334,11 @@ }, { "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", "children": [ { - "type": "void", - "name": "insertBegin" - }, - { - "type": "executableStatement", - "name": "stmt", - "defaultValue": "" - }] - }, - { - "type": "action", - "children": [ - { - "type": "void", - "name": "insertEnd" - }, - { - "type": "executableStatement", - "name": "stmt", - "defaultValue": "" - }] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" + "type": "joinpoint", + "name": "copy" }] }, { @@ -3233,10 +3446,26 @@ }, { "type": "joinpoint", - "name": "expr", - "extends": "joinpoint" , - "tooltip": "Represents an expression", + "name": "executableStatement", + "extends": "statement" , + "tooltip": "Represents an executable statement", "children": [ + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isFirst" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isLast" + }] + }, { "type": "attribute", "tooltip": "Returns an array with the children of the node", @@ -3460,27 +3689,23 @@ }, { "type": "joinpoint", - "name": "file", - "defaultAttr": "name", - "extends": "joinpoint" , - "tooltip": "Represents a source file (e.g., .f90)", + "name": "execution", + "extends": "statementBlock" , "children": [ { "type": "attribute", - "tooltip": "the name of the folder", "children": [ { - "type": "String", - "name": "foldername" + "type": "executableStatement[]", + "name": "executableStmts" }] }, { "type": "attribute", - "tooltip": "the name of the file", "children": [ { - "type": "String", - "name": "name" + "type": "statement[]", + "name": "stmts" }] }, { @@ -3592,6 +3817,32 @@ "name": "scopeNodes" }] }, + { + "type": "action", + "children": [ + { + "type": "void", + "name": "insertBegin" + }, + { + "type": "executableStatement", + "name": "stmt", + "defaultValue": "" + }] + }, + { + "type": "action", + "children": [ + { + "type": "void", + "name": "insertEnd" + }, + { + "type": "executableStatement", + "name": "stmt", + "defaultValue": "" + }] + }, { "type": "action", "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", @@ -3706,50 +3957,10 @@ }, { "type": "joinpoint", - "name": "ifConstruct", - "extends": "executableStatement" , - "tooltip": "Represents the root of an if construct", + "name": "expr", + "extends": "joinpoint" , + "tooltip": "Represents an expression", "children": [ - { - "type": "attribute", - "children": [ - { - "type": "elseBlock", - "name": "elseBlock" - }] - }, - { - "type": "attribute", - "children": [ - { - "type": "elseIfBlock[]", - "name": "elseIfBlocks" - }] - }, - { - "type": "attribute", - "children": [ - { - "type": "ifThenBlock", - "name": "ifThenBlock" - }] - }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isFirst" - }] - }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isLast" - }] - }, { "type": "attribute", "tooltip": "Returns an array with the children of the node", @@ -3859,6 +4070,24 @@ "name": "scopeNodes" }] }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, { "type": "action", "tooltip": "Removes node associated to the joinpoint from the AST", @@ -3870,54 +4099,100 @@ }, { "type": "action", - "tooltip": "Replaces this node with the given node", + "tooltip": "Inserts the given join point after this join point", "children": [ { "type": "joinpoint", - "name": "replaceWith" + "name": "insertAfter" }, { "type": "joinpoint", "name": "node", "defaultValue": "" }] - }] - }, - { - "type": "joinpoint", - "name": "ifStatement", - "extends": "actionStatement" , - "children": [ + }, { - "type": "attribute", + "type": "action", + "tooltip": "Overload which accepts a string", "children": [ { - "type": "expr", - "name": "condition" + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" }] }, { - "type": "attribute", + "type": "action", + "tooltip": "Inserts the given join point before this join point", "children": [ { - "type": "actionStatement", - "name": "statement" + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" }] }, { - "type": "attribute", + "type": "action", + "tooltip": "Overload which accepts a string", "children": [ { - "type": "Boolean", - "name": "isFirst" + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" }] }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "exprInitialization", + "extends": "initialization" , + "children": [ { "type": "attribute", "children": [ { - "type": "Boolean", - "name": "isLast" + "type": "expr", + "name": "expr" }] }, { @@ -4029,6 +4304,24 @@ "name": "scopeNodes" }] }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, { "type": "action", "tooltip": "Removes node associated to the joinpoint from the AST", @@ -4040,39 +4333,112 @@ }, { "type": "action", - "tooltip": "Replaces this node with the given node", + "tooltip": "Inserts the given join point after this join point", "children": [ { "type": "joinpoint", - "name": "replaceWith" + "name": "insertAfter" }, { "type": "joinpoint", "name": "node", "defaultValue": "" }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] }] }, { "type": "joinpoint", - "name": "ifThenBlock", + "name": "file", + "defaultAttr": "name", "extends": "joinpoint" , - "tooltip": "Represents the first block of an if construct", + "tooltip": "Represents a source file (e.g., .f90)", "children": [ { "type": "attribute", + "tooltip": "the name of the folder", "children": [ { - "type": "statementBlock", - "name": "body" + "type": "String", + "name": "foldername" }] }, { "type": "attribute", + "tooltip": "the name of the file", "children": [ { - "type": "ifThenStatement", - "name": "header" + "type": "String", + "name": "name" }] }, { @@ -4184,6 +4550,24 @@ "name": "scopeNodes" }] }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, { "type": "action", "tooltip": "Removes node associated to the joinpoint from the AST", @@ -4193,6 +4577,62 @@ "name": "detach" }] }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, { "type": "action", "tooltip": "Replaces this node with the given node", @@ -4206,22 +4646,27 @@ "name": "node", "defaultValue": "" }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] }] }, { "type": "joinpoint", - "name": "ifThenStatement", + "name": "fortranDecl", "extends": "joinpoint" , - "tooltip": "Represents the header of an 'if then' block", "children": [ - { - "type": "attribute", - "children": [ - { - "type": "expr", - "name": "condition" - }] - }, { "type": "attribute", "tooltip": "Returns an array with the children of the node", @@ -4292,64 +4737,2303 @@ "children": [ { "type": "joinpoint", - "name": "leftJp" + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "ifConstruct", + "extends": "executableStatement" , + "tooltip": "Represents the root of an if construct", + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "elseBlock", + "name": "elseBlock" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "elseIfBlock[]", + "name": "elseIfBlocks" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "ifThenBlock", + "name": "ifThenBlock" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isFirst" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isLast" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "ifStatement", + "extends": "actionStatement" , + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "expr", + "name": "condition" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "actionStatement", + "name": "statement" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isFirst" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isLast" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "ifThenBlock", + "extends": "joinpoint" , + "tooltip": "Represents the first block of an if construct", + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "statementBlock", + "name": "body" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "ifThenStatement", + "name": "header" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "ifThenStatement", + "extends": "joinpoint" , + "tooltip": "Represents the header of an 'if then' block", + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "expr", + "name": "condition" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "initialization", + "extends": "joinpoint" , + "children": [ + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "intLiteral", + "extends": "literal" , + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "String", + "name": "literal" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "keywordAttributeSpecifier", + "extends": "attributeSpecifier" , + "children": [ + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "literal", + "extends": "expr" , + "tooltip": "Represents a literal", + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "String", + "name": "literal" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "loopControl", + "extends": "joinpoint" , + "tooltip": "Represents the loop control structure, with specialized subclasses for different loop kinds", + "children": [ + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" }] }, { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "type": "action", + "tooltip": "Inserts the given join point after this join point", "children": [ { "type": "joinpoint", - "name": "parent" + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" }] }, { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "type": "action", + "tooltip": "Overload which accepts a string", "children": [ { "type": "joinpoint", - "name": "rightJp" + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" }] }, { - "type": "attribute", - "tooltip": "Returns the 'program' join point", + "type": "action", + "tooltip": "Inserts the given join point before this join point", "children": [ { - "type": "program", - "name": "root" + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" }] }, { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "type": "action", + "tooltip": "Overload which accepts a string", "children": [ { - "type": "joinpoint[]", - "name": "scopeNodes" + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" }] }, { "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", + "tooltip": "Replaces this node with the given node", "children": [ { "type": "joinpoint", - "name": "detach" + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" }] }, { "type": "action", - "tooltip": "Replaces this node with the given node", + "tooltip": "Overload which accepts a list of join points", "children": [ { "type": "joinpoint", "name": "replaceWith" }, { - "type": "joinpoint", + "type": "joinpoint[]", "name": "node", "defaultValue": "" }] @@ -4357,15 +7041,16 @@ }, { "type": "joinpoint", - "name": "intLiteral", - "extends": "literal" , + "name": "mainProgram", + "extends": "programUnit" , "children": [ { "type": "attribute", + "tooltip": "Returns the unit's specification part", "children": [ { - "type": "String", - "name": "literal" + "type": "specification", + "name": "specification" }] }, { @@ -4591,16 +7276,16 @@ }, { "type": "joinpoint", - "name": "literal", - "extends": "expr" , - "tooltip": "Represents a literal", + "name": "nameValue", + "extends": "joinpoint" , + "tooltip": "Represents a name/value pair in a compiler directive", "children": [ { "type": "attribute", "children": [ { "type": "String", - "name": "literal" + "name": "name" }] }, { @@ -4826,10 +7511,34 @@ }, { "type": "joinpoint", - "name": "loopControl", - "extends": "joinpoint" , - "tooltip": "Represents the loop control structure, with specialized subclasses for different loop kinds", + "name": "ompBlockConstruct", + "extends": "ompConstruct" , + "tooltip": "Represents an OpenMP block construct (such as parallel or task)", "children": [ + { + "type": "attribute", + "children": [ + { + "type": "ompClause[]", + "name": "clauses" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isFirst" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isLast" + }] + }, { "type": "attribute", "tooltip": "Returns an array with the children of the node", @@ -4939,6 +7648,46 @@ "name": "scopeNodes" }] }, + { + "type": "action", + "children": [ + { + "type": "void", + "name": "setBody" + }, + { + "type": "execution", + "name": "body", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Sets the construct's clauses", + "children": [ + { + "type": "void", + "name": "setClauses" + }, + { + "type": "ompClause[]", + "name": "clauses", + "defaultValue": "" + }] + }, + { + "type": "action", + "children": [ + { + "type": "void", + "name": "setDirective" + }, + { + "type": "String", + "name": "directive", + "defaultValue": "" + }] + }, { "type": "action", "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", @@ -5053,18 +7802,10 @@ }, { "type": "joinpoint", - "name": "mainProgram", - "extends": "programUnit" , + "name": "ompClause", + "extends": "joinpoint" , + "tooltip": "Represents an OpenMP clause", "children": [ - { - "type": "attribute", - "tooltip": "Returns the unit's specification part", - "children": [ - { - "type": "specification", - "name": "specification" - }] - }, { "type": "attribute", "tooltip": "Returns an array with the children of the node", @@ -5288,16 +8029,32 @@ }, { "type": "joinpoint", - "name": "nameValue", - "extends": "joinpoint" , - "tooltip": "Represents a name/value pair in a compiler directive", + "name": "ompConstruct", + "extends": "executableStatement" , + "tooltip": "Represents a generic OpenMP construct", "children": [ { "type": "attribute", "children": [ { - "type": "String", - "name": "name" + "type": "ompClause[]", + "name": "clauses" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isFirst" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isLast" }] }, { @@ -5409,6 +8166,33 @@ "name": "scopeNodes" }] }, + { + "type": "action", + "tooltip": "Sets the construct's clauses", + "children": [ + { + "type": "void", + "name": "setClauses" + }, + { + "type": "ompClause[]", + "name": "clauses", + "defaultValue": "" + }] + }, + { + "type": "action", + "children": [ + { + "type": "void", + "name": "setDirective" + }, + { + "type": "String", + "name": "directive", + "defaultValue": "" + }] + }, { "type": "action", "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", @@ -5502,55 +8286,31 @@ }, { "type": "joinpoint", - "name": "node", - "defaultValue": "" - }] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - }] - }] - }, - { - "type": "joinpoint", - "name": "ompBlockConstruct", - "extends": "ompConstruct" , - "tooltip": "Represents an OpenMP block construct (such as parallel or task)", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "ompClause[]", - "name": "clauses" - }] - }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isFirst" + "name": "node", + "defaultValue": "" }] }, { - "type": "attribute", + "type": "action", + "tooltip": "Overload which accepts a list of join points", "children": [ { - "type": "Boolean", - "name": "isLast" + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" }] - }, + }] + }, + { + "type": "joinpoint", + "name": "ompDataSharingClause", + "extends": "ompClause" , + "tooltip": "Represents an OpenMP datasharing clause (public, private, ...)", + "children": [ { "type": "attribute", "tooltip": "Returns an array with the children of the node", @@ -5660,46 +8420,6 @@ "name": "scopeNodes" }] }, - { - "type": "action", - "children": [ - { - "type": "void", - "name": "setBody" - }, - { - "type": "execution", - "name": "body", - "defaultValue": "" - }] - }, - { - "type": "action", - "tooltip": "Sets the construct's clauses", - "children": [ - { - "type": "void", - "name": "setClauses" - }, - { - "type": "ompClause[]", - "name": "clauses", - "defaultValue": "" - }] - }, - { - "type": "action", - "children": [ - { - "type": "void", - "name": "setDirective" - }, - { - "type": "String", - "name": "directive", - "defaultValue": "" - }] - }, { "type": "action", "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", @@ -5814,10 +8534,34 @@ }, { "type": "joinpoint", - "name": "ompClause", - "extends": "joinpoint" , - "tooltip": "Represents an OpenMP clause", + "name": "ompLoopConstruct", + "extends": "ompConstruct" , + "tooltip": "Represents an OpenMP loop construct (such as do or do parallel)", "children": [ + { + "type": "attribute", + "children": [ + { + "type": "ompClause[]", + "name": "clauses" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isFirst" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isLast" + }] + }, { "type": "attribute", "tooltip": "Returns an array with the children of the node", @@ -5927,6 +8671,46 @@ "name": "scopeNodes" }] }, + { + "type": "action", + "children": [ + { + "type": "void", + "name": "setLoop" + }, + { + "type": "doStatement", + "name": "loop", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Sets the construct's clauses", + "children": [ + { + "type": "void", + "name": "setClauses" + }, + { + "type": "ompClause[]", + "name": "clauses", + "defaultValue": "" + }] + }, + { + "type": "action", + "children": [ + { + "type": "void", + "name": "setDirective" + }, + { + "type": "String", + "name": "directive", + "defaultValue": "" + }] + }, { "type": "action", "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", @@ -6041,34 +8825,9 @@ }, { "type": "joinpoint", - "name": "ompConstruct", - "extends": "executableStatement" , - "tooltip": "Represents a generic OpenMP construct", + "name": "ompOrderedClause", + "extends": "ompClause" , "children": [ - { - "type": "attribute", - "children": [ - { - "type": "ompClause[]", - "name": "clauses" - }] - }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isFirst" - }] - }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isLast" - }] - }, { "type": "attribute", "tooltip": "Returns an array with the children of the node", @@ -6178,33 +8937,6 @@ "name": "scopeNodes" }] }, - { - "type": "action", - "tooltip": "Sets the construct's clauses", - "children": [ - { - "type": "void", - "name": "setClauses" - }, - { - "type": "ompClause[]", - "name": "clauses", - "defaultValue": "" - }] - }, - { - "type": "action", - "children": [ - { - "type": "void", - "name": "setDirective" - }, - { - "type": "String", - "name": "directive", - "defaultValue": "" - }] - }, { "type": "action", "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", @@ -6319,9 +9051,8 @@ }, { "type": "joinpoint", - "name": "ompDataSharingClause", + "name": "ompReductionClause", "extends": "ompClause" , - "tooltip": "Represents an OpenMP datasharing clause (public, private, ...)", "children": [ { "type": "attribute", @@ -6546,34 +9277,9 @@ }, { "type": "joinpoint", - "name": "ompLoopConstruct", - "extends": "ompConstruct" , - "tooltip": "Represents an OpenMP loop construct (such as do or do parallel)", + "name": "parameterKeyword", + "extends": "keywordAttributeSpecifier" , "children": [ - { - "type": "attribute", - "children": [ - { - "type": "ompClause[]", - "name": "clauses" - }] - }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isFirst" - }] - }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isLast" - }] - }, { "type": "attribute", "tooltip": "Returns an array with the children of the node", @@ -6671,56 +9377,16 @@ "children": [ { "type": "program", - "name": "root" - }] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - }] - }, - { - "type": "action", - "children": [ - { - "type": "void", - "name": "setLoop" - }, - { - "type": "doStatement", - "name": "loop", - "defaultValue": "" - }] - }, - { - "type": "action", - "tooltip": "Sets the construct's clauses", - "children": [ - { - "type": "void", - "name": "setClauses" - }, - { - "type": "ompClause[]", - "name": "clauses", - "defaultValue": "" + "name": "root" }] }, { - "type": "action", + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", "children": [ { - "type": "void", - "name": "setDirective" - }, - { - "type": "String", - "name": "directive", - "defaultValue": "" + "type": "joinpoint[]", + "name": "scopeNodes" }] }, { @@ -6837,8 +9503,9 @@ }, { "type": "joinpoint", - "name": "ompOrderedClause", - "extends": "ompClause" , + "name": "program", + "extends": "joinpoint" , + "tooltip": "Represents the complete program and is the top-most join point in the hierarchy", "children": [ { "type": "attribute", @@ -7063,9 +9730,18 @@ }, { "type": "joinpoint", - "name": "ompReductionClause", - "extends": "ompClause" , + "name": "programUnit", + "extends": "joinpoint" , "children": [ + { + "type": "attribute", + "tooltip": "Returns the unit's specification part", + "children": [ + { + "type": "specification", + "name": "specification" + }] + }, { "type": "attribute", "tooltip": "Returns an array with the children of the node", @@ -7289,10 +9965,41 @@ }, { "type": "joinpoint", - "name": "program", - "extends": "joinpoint" , - "tooltip": "Represents the complete program and is the top-most join point in the hierarchy", + "name": "rangeLoopControl", + "extends": "loopControl" , "children": [ + { + "type": "attribute", + "children": [ + { + "type": "expr", + "name": "lower" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "expr", + "name": "step" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "expr", + "name": "upper" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "dataRef", + "name": "var" + }] + }, { "type": "attribute", "tooltip": "Returns an array with the children of the node", @@ -7402,6 +10109,32 @@ "name": "scopeNodes" }] }, + { + "type": "action", + "children": [ + { + "type": "void", + "name": "setStep" + }, + { + "type": "expr", + "name": "step", + "defaultValue": "" + }] + }, + { + "type": "action", + "children": [ + { + "type": "void", + "name": "setUpper" + }, + { + "type": "expr", + "name": "upper", + "defaultValue": "" + }] + }, { "type": "action", "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", @@ -7516,16 +10249,15 @@ }, { "type": "joinpoint", - "name": "programUnit", - "extends": "joinpoint" , + "name": "realLiteral", + "extends": "literal" , "children": [ { "type": "attribute", - "tooltip": "Returns the unit's specification part", "children": [ { - "type": "specification", - "name": "specification" + "type": "String", + "name": "literal" }] }, { @@ -7751,39 +10483,23 @@ }, { "type": "joinpoint", - "name": "rangeLoopControl", - "extends": "loopControl" , + "name": "specification", + "extends": "statementBlock" , "children": [ { "type": "attribute", "children": [ { - "type": "expr", - "name": "lower" - }] - }, - { - "type": "attribute", - "children": [ - { - "type": "expr", - "name": "step" - }] - }, - { - "type": "attribute", - "children": [ - { - "type": "expr", - "name": "upper" + "type": "specificationStatement[]", + "name": "specificationStmts" }] }, { "type": "attribute", "children": [ { - "type": "dataRef", - "name": "var" + "type": "statement[]", + "name": "stmts" }] }, { @@ -7897,27 +10613,15 @@ }, { "type": "action", + "tooltip": "Adds a UseStmt to a specification part. The statement is inserted at the beginning.", "children": [ { "type": "void", - "name": "setStep" - }, - { - "type": "expr", - "name": "step", - "defaultValue": "" - }] - }, - { - "type": "action", - "children": [ - { - "type": "void", - "name": "setUpper" + "name": "addUseStmt" }, { - "type": "expr", - "name": "upper", + "type": "useStatement", + "name": "stmt", "defaultValue": "" }] }, @@ -8035,15 +10739,23 @@ }, { "type": "joinpoint", - "name": "realLiteral", - "extends": "literal" , + "name": "specificationStatement", + "extends": "statement" , "children": [ { "type": "attribute", "children": [ { - "type": "String", - "name": "literal" + "type": "Boolean", + "name": "isFirst" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isLast" }] }, { @@ -8269,15 +10981,24 @@ }, { "type": "joinpoint", - "name": "specification", - "extends": "statementBlock" , + "name": "statement", + "extends": "joinpoint" , + "tooltip": "Represents a Fortran statement", "children": [ { "type": "attribute", "children": [ { - "type": "statement[]", - "name": "stmts" + "type": "Boolean", + "name": "isFirst" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isLast" }] }, { @@ -8389,20 +11110,6 @@ "name": "scopeNodes" }] }, - { - "type": "action", - "tooltip": "Adds a UseStmt to a specification part. The statement is inserted at the beginning.", - "children": [ - { - "type": "void", - "name": "addUseStmt" - }, - { - "type": "useStatement", - "name": "stmt", - "defaultValue": "" - }] - }, { "type": "action", "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", @@ -8517,24 +11224,15 @@ }, { "type": "joinpoint", - "name": "statement", + "name": "statementBlock", "extends": "joinpoint" , - "tooltip": "Represents a Fortran statement", "children": [ { "type": "attribute", "children": [ { - "type": "Boolean", - "name": "isFirst" - }] - }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isLast" + "type": "statement[]", + "name": "stmts" }] }, { @@ -8760,15 +11458,15 @@ }, { "type": "joinpoint", - "name": "statementBlock", - "extends": "joinpoint" , + "name": "stringLiteral", + "extends": "literal" , "children": [ { "type": "attribute", "children": [ { - "type": "statement[]", - "name": "stmts" + "type": "String", + "name": "literal" }] }, { @@ -8994,15 +11692,24 @@ }, { "type": "joinpoint", - "name": "stringLiteral", - "extends": "literal" , + "name": "subroutine", + "extends": "programUnit" , "children": [ { "type": "attribute", "children": [ { "type": "String", - "name": "literal" + "name": "moduleName" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the unit's specification part", + "children": [ + { + "type": "specification", + "name": "specification" }] }, { @@ -9228,24 +11935,39 @@ }, { "type": "joinpoint", - "name": "subroutine", - "extends": "programUnit" , + "name": "typeDeclarationStatement", + "extends": "specificationStatement" , "children": [ { "type": "attribute", "children": [ { - "type": "String", - "name": "moduleName" + "type": "attributeSpecifier[]", + "name": "attrs" }] }, { "type": "attribute", - "tooltip": "Returns the unit's specification part", "children": [ { - "type": "specification", - "name": "specification" + "type": "entityDecl[]", + "name": "decls" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isFirst" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isLast" }] }, { diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecution.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecution.java index fc76f41e..73825203 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecution.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecution.java @@ -20,7 +20,7 @@ public FExecution(Execution execution) { @Override public AExecutableStatement[] getExecutableStmtsArrayImpl() { - return execution.getExecutableStatements() + return execution.getStatements() .stream() .map(FortranJoinpoints::create) .toList() From 7452400b0234ca66be30a256e7f66324166fe1a6 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 7 Jul 2026 14:37:42 +0100 Subject: [PATCH 011/260] Add null comment check and appropriate warning in Stmt node --- .../src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java index 6d0d2e0b..999e8a46 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java @@ -5,6 +5,7 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.decl.LabelDecl; +import pt.up.fe.specs.util.SpecsCheck; import pt.up.fe.specs.util.SpecsCollections; import pt.up.fe.specs.util.utilities.PrintOnce; @@ -39,7 +40,12 @@ public String getStmtCode() { public final String getCode() { var labelPrefix = getLabel().map(label -> label.getCode() + " ").orElse(""); - var commentsPrefix = getComments().stream() + var comments = getComments(); + SpecsCheck.checkArgument(comments != null, () -> "Comment array not initialized in node of class \"" + + getClass() + "\". Make sure you call the method StmtProcessors::stmt() on the processor for this " + + "node kind to initialize comments and labels."); + + var commentsPrefix = comments.stream() .map(comment -> comment + ln()) .collect(Collectors.joining()); From 1a3aaf6b3a3df1c07277b8b6d8e96505b16d525a Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 7 Jul 2026 19:39:02 +0100 Subject: [PATCH 012/260] Refactor do loop AST representation --- .../specs/fortran/ast/FortranNodeFactory.java | 11 +- .../ast/nodes/omp/OmpLoopConstruct.java | 12 +- .../{DoStmt.java => loop/DoConstruct.java} | 36 +- .../fortran/ast/nodes/stmt/loop/DoStmt.java | 47 ++ .../ast/nodes/stmt/loop/EndDoStmt.java | 22 + .../fortran/parser/do.expected.f90 | 3 + .../resources-test/fortran/parser/do.json | 552 ++++++++++-------- .../specs/fortran/parser/FlangAttributes.java | 4 + .../up/fe/specs/fortran/parser/FlangName.java | 1 + .../fe/specs/fortran/parser/FlangToClass.java | 7 +- .../fortran/parser/processors/Nodes.java | 5 + .../parser/processors/OmpProcessors.java | 4 +- .../parser/processors/StmtProcessors.java | 38 +- 13 files changed, 452 insertions(+), 290 deletions(-) rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/{DoStmt.java => loop/DoConstruct.java} (65%) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoStmt.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/EndDoStmt.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java index c7f6ca66..076f68f9 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java @@ -27,6 +27,7 @@ import pt.up.fe.specs.fortran.ast.nodes.omp.enums.OmpDirectiveKind; import pt.up.fe.specs.fortran.ast.nodes.program.*; import pt.up.fe.specs.fortran.ast.nodes.stmt.*; +import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; import pt.up.fe.specs.fortran.ast.nodes.utils.Format; import pt.up.fe.specs.fortran.ast.nodes.utils.LabelRef; import pt.up.fe.specs.fortran.ast.nodes.utils.Star; @@ -218,12 +219,12 @@ public LabelRef labelRef(LabelDecl labelDecl) { return new LabelRef(data, Collections.emptyList()); } - public OmpLoopConstruct ompLoopConstruct(DoStmt doStmt, List clauses) { + public OmpLoopConstruct ompLoopConstruct(DoConstruct doConstruct, List clauses) { DataStore data = newDataStore(OmpLoopConstruct.class); OmpLoopConstruct newNode = new OmpLoopConstruct(data, clauses); - newNode.addChild(doStmt); + newNode.addChild(doConstruct); return newNode; } @@ -305,10 +306,10 @@ public RangeLoopControl rangeLoopControl(DataRef var, Expr lower, Expr upper) { return new RangeLoopControl(data, Arrays.asList(var, lower, upper)); } - public DoStmt doStatement(LoopControl control) { - DataStore data = newDataStore(DoStmt.class); + public DoConstruct doStatement(LoopControl control) { + DataStore data = newDataStore(DoConstruct.class); Execution body = execution(Collections.emptyList()); - return new DoStmt(data, Arrays.asList(control, body)); + return new DoConstruct(data, Arrays.asList(control, body)); } public Argument argument(Expr expr) { diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpLoopConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpLoopConstruct.java index cdc5aa6f..53f5e94c 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpLoopConstruct.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpLoopConstruct.java @@ -7,7 +7,7 @@ import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpNowaitClause; import pt.up.fe.specs.fortran.ast.nodes.omp.enums.OmpClauseKind; import pt.up.fe.specs.fortran.ast.nodes.omp.enums.OmpDirectiveKind; -import pt.up.fe.specs.fortran.ast.nodes.stmt.DoStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; import java.util.Collection; import java.util.List; @@ -18,14 +18,14 @@ public OmpLoopConstruct(DataStore data, Collection childr super(data, children); } - public DoStmt getLoop() { - return getChild(DoStmt.class); + public DoConstruct getLoop() { + return getChild(DoConstruct.class); } - public DoStmt setLoop(DoStmt loop) { - removeChildren(DoStmt.class); + public DoConstruct setLoop(DoConstruct loop) { + removeChildren(DoConstruct.class); - return (DoStmt) addChild(loop); + return (DoConstruct) addChild(loop); } // For code generation purposes, since the nowait clause must be placed at the end diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DoStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java similarity index 65% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DoStmt.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java index ee947483..93e3ae18 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DoStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java @@ -1,4 +1,4 @@ -package pt.up.fe.specs.fortran.ast.nodes.stmt; +package pt.up.fe.specs.fortran.ast.nodes.stmt.loop; import org.suikasoft.jOptions.Datakey.DataKey; import org.suikasoft.jOptions.Datakey.KeyFactory; @@ -7,6 +7,7 @@ import pt.up.fe.specs.fortran.ast.nodes.loops.LoopControl; import pt.up.fe.specs.fortran.ast.nodes.loops.enums.DoKind; import pt.up.fe.specs.fortran.ast.nodes.program.Execution; +import pt.up.fe.specs.fortran.ast.nodes.stmt.ExecutableStmt; import java.util.Collection; import java.util.Optional; @@ -14,22 +15,30 @@ import static pt.up.fe.specs.fortran.ast.FortranKeyword.DO; import static pt.up.fe.specs.fortran.ast.FortranKeyword.END; -public class DoStmt extends ExecutableStmt { +public class DoConstruct extends ExecutableStmt { public static final DataKey> NAME = KeyFactory.optional("name"); - public DoStmt(DataStore data, Collection children) { + public DoConstruct(DataStore data, Collection children) { super(data, children); } - public Optional getControl() { - return getChildTry(LoopControl.class); + public DoStmt getDoStmt() { + return getChild(DoStmt.class); } public Execution getBody() { return getChild(Execution.class); } + public EndDoStmt getEndDoStmt() { + return getChild(EndDoStmt.class); + } + + public Optional getControl() { + return getDoStmt().getLoopControl(); + } + public Optional getName() { return get(NAME); } @@ -48,19 +57,10 @@ private String getControlCode() { @Override public String getStmtCode() { - var code = new StringBuilder(); - Optional name = getName(); - - name.ifPresent(str -> code.append(str).append(" : ")); - - code.append(keyword(DO)).append(" ").append(getControlCode()).append(ln()); - - code.append(getBody().getCode()).append(ln()); - - code.append(keyword(END)).append(" ").append(keyword(DO)); - - name.ifPresent(str -> code.append(" ").append(str)); + var doStmt = getDoStmt(); + var body = getBody(); + var endDoStmt = getEndDoStmt(); - return code.toString(); + return doStmt.getCode() + ln() + indent(body.getCode()) + ln() + endDoStmt.getCode(); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoStmt.java new file mode 100644 index 00000000..c05054c8 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoStmt.java @@ -0,0 +1,47 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.loop; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.loops.LoopControl; +import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; + +import java.util.Collection; +import java.util.Optional; + +public class DoStmt extends Stmt { + public static final DataKey> DO_LABEL = KeyFactory.optional("do_label"); + + public DoStmt(DataStore data, Collection children) { + super(data, children); + } + + public Optional getLoopControl() { + return getChildOf(LoopControl.class); + } + + public Optional getDoLabel() { + return get(DO_LABEL); + } + + @Override + public String getStmtCode() { + var doNameOpt = getAncestor(DoConstruct.class).getName(); + var doLabelOpt = getDoLabel(); + var loopControlOpt = getLoopControl(); + + var code = new StringBuilder(); + + doNameOpt.ifPresent(doName -> code.append(doName).append(" : ")); + + code.append(keyword(FortranKeyword.DO)); + + doLabelOpt.ifPresent(doLabel -> code.append(" ").append(doLabel)); + + loopControlOpt.ifPresent(loopControl -> code.append(" ").append(loopControl.getCode())); + + return code.toString(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/EndDoStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/EndDoStmt.java new file mode 100644 index 00000000..e4af4555 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/EndDoStmt.java @@ -0,0 +1,22 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.loop; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; + +import java.util.Collection; + +public class EndDoStmt extends Stmt { + public EndDoStmt(DataStore data, Collection children) { + super(data, children); + } + + @Override + public String getStmtCode() { + var doNameOpt = getAncestor(DoConstruct.class).getName(); + var doNameSuffix = doNameOpt.map(name -> " " + name).orElse(""); + + return keyword(FortranKeyword.END) + " " + keyword(FortranKeyword.DO) + doNameSuffix; + } +} diff --git a/FortranParser/resources-test/fortran/parser/do.expected.f90 b/FortranParser/resources-test/fortran/parser/do.expected.f90 index 0ae597b3..73949512 100644 --- a/FortranParser/resources-test/fortran/parser/do.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/do.expected.f90 @@ -1,10 +1,13 @@ PROGRAM SIMPLE_LOOP + !use omp_lib INTEGER :: i, dummy, a = 2 + !$OMP PARALLEL DO DO i = 1, 5, a dummy = 3 dummy = 4 END DO + !$OMP END PARALLEL DO DO WHILE (2 > 0) dummy = 2 diff --git a/FortranParser/resources-test/fortran/parser/do.json b/FortranParser/resources-test/fortran/parser/do.json index 65d71437..d3bf1d40 100644 --- a/FortranParser/resources-test/fortran/parser/do.json +++ b/FortranParser/resources-test/fortran/parser/do.json @@ -1,615 +1,673 @@ { "nodes": [ { - "id": "0x55bfd44f1f00-Program", + "id": "0x563e5e510f00-Program", "ProgramUnit": [ - "0x55bfd4528020-ProgramUnit" + "0x563e5e54ac70-ProgramUnit" ] }, { - "id": "0x55bfd4528020-ProgramUnit", + "id": "0x563e5e54ac70-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x55bfd451ff40-MainProgram" + "MainProgram": "0x563e5e53cb90-MainProgram" }, { - "id": "0x55bfd451ff40-MainProgram", - "Statement": "0x55bfd4520088-Statement", - "SpecificationPart": "0x55bfd451ffe0-SpecificationPart", - "ExecutionPart": "0x55bfd451ffc8-ExecutionPart", - "Statement": "0x55bfd451ff40-Statement" + "id": "0x563e5e53cb90-MainProgram", + "Statement": "0x563e5e53ccd8-Statement", + "SpecificationPart": "0x563e5e53cc30-SpecificationPart", + "ExecutionPart": "0x563e5e53cc18-ExecutionPart", + "Statement": "0x563e5e53cb90-Statement" }, { - "id": "0x55bfd4520088-Statement", - "statement": "0x55bfd4520098-ProgramStmt", + "id": "0x563e5e53ccd8-Statement", + "statement": "0x563e5e53cce8-ProgramStmt", "source": "program SIMPLE_LOOP" }, { - "id": "0x55bfd4520098-ProgramStmt", - "Name": "0x55bfd4520098-Name" + "id": "0x563e5e53cce8-ProgramStmt", + "Name": "0x563e5e53cce8-Name" }, { - "id": "0x55bfd4520098-Name", + "id": "0x563e5e53cce8-Name", "source": "SIMPLE_LOOP" }, { - "id": "0x55bfd451ffe0-SpecificationPart", - "ImplicitPart": "0x55bfd451fff8-ImplicitPart", + "id": "0x563e5e53cc30-SpecificationPart", + "ImplicitPart": "0x563e5e53cc48-ImplicitPart", "DeclarationConstruct": [ - "0x55bfd44feda0-DeclarationConstruct" + "0x563e5e51e110-DeclarationConstruct" ] }, { - "id": "0x55bfd451fff8-ImplicitPart" + "id": "0x563e5e53cc48-ImplicitPart" }, { - "id": "0x55bfd44feda0-DeclarationConstruct", + "id": "0x563e5e51e110-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55bfd44feda0-SpecificationConstruct" + "SpecificationConstruct": "0x563e5e51e110-SpecificationConstruct" }, { - "id": "0x55bfd44feda0-SpecificationConstruct", + "id": "0x563e5e51e110-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55bfd44feda0-Statement" + "Statement": "0x563e5e51e110-Statement" }, { - "id": "0x55bfd44feda0-Statement", - "statement": "0x55bfd452bf40-TypeDeclarationStmt", + "id": "0x563e5e51e110-Statement", + "statement": "0x563e5e54af10-TypeDeclarationStmt", "source": "integer :: i, dummy, a = 2" }, { - "id": "0x55bfd452bf40-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55bfd452bf70-DeclarationTypeSpec", + "id": "0x563e5e54af10-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x563e5e54af40-DeclarationTypeSpec", "EntityDecl": [ - "0x55bfd452c2a0-EntityDecl", - "0x55bfd452c050-EntityDecl", - "0x55bfd452c1b0-EntityDecl" + "0x563e5e54b270-EntityDecl", + "0x563e5e54b020-EntityDecl", + "0x563e5e54b180-EntityDecl" ] }, { - "id": "0x55bfd452bf70-DeclarationTypeSpec", + "id": "0x563e5e54af40-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55bfd452bf70-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x563e5e54af40-IntrinsicTypeSpec" }, { - "id": "0x55bfd452bf70-IntrinsicTypeSpec", + "id": "0x563e5e54af40-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55bfd452bf70-IntegerTypeSpec" + "IntegerTypeSpec": "0x563e5e54af40-IntegerTypeSpec" }, { - "id": "0x55bfd452bf70-IntegerTypeSpec" + "id": "0x563e5e54af40-IntegerTypeSpec" }, { - "id": "0x55bfd452c2a0-EntityDecl", - "Name": "0x55bfd452c358-Name" + "id": "0x563e5e54b270-EntityDecl", + "Name": "0x563e5e54b328-Name" }, { - "id": "0x55bfd452c358-Name", + "id": "0x563e5e54b328-Name", "source": "i" }, { - "id": "0x55bfd452c050-EntityDecl", - "Name": "0x55bfd452c108-Name" + "id": "0x563e5e54b020-EntityDecl", + "Name": "0x563e5e54b0d8-Name" }, { - "id": "0x55bfd452c108-Name", + "id": "0x563e5e54b0d8-Name", "source": "dummy" }, { - "id": "0x55bfd452c1b0-EntityDecl", - "Name": "0x55bfd452c268-Name", - "Initialization": "0x55bfd452c1b0-Initialization" + "id": "0x563e5e54b180-EntityDecl", + "Name": "0x563e5e54b238-Name", + "Initialization": "0x563e5e54b180-Initialization" }, { - "id": "0x55bfd452c268-Name", + "id": "0x563e5e54b238-Name", "source": "a" }, { - "id": "0x55bfd452c1b0-Initialization", + "id": "0x563e5e54b180-Initialization", "variantKey": "Expr", - "Expr": "0x55bfd4491790-Expr" + "Expr": "0x563e5e4b0790-Expr" }, { - "id": "0x55bfd4491790-Expr", + "id": "0x563e5e4b0790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55bfd44917b0-LiteralConstant" + "LiteralConstant": "0x563e5e4b07b0-LiteralConstant" }, { - "id": "0x55bfd44917b0-LiteralConstant", + "id": "0x563e5e4b07b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55bfd44917b0-IntLiteralConstant" + "IntLiteralConstant": "0x563e5e4b07b0-IntLiteralConstant" }, { - "id": "0x55bfd44917b0-IntLiteralConstant", + "id": "0x563e5e4b07b0-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x55bfd451ffc8-ExecutionPart", + "id": "0x563e5e53cc18-ExecutionPart", "ExecutionPartConstruct": [ - "0x55bfd452bd90-ExecutionPartConstruct", - "0x55bfd452cb30-ExecutionPartConstruct", - "0x55bfd451cc60-ExecutionPartConstruct" + "0x563e5e54bec0-ExecutionPartConstruct", + "0x563e5e54c5c0-ExecutionPartConstruct", + "0x563e5e54cc70-ExecutionPartConstruct" ] }, { - "id": "0x55bfd451ffc8-ExecutionPartConstruct" + "id": "0x563e5e53cc18-ExecutionPartConstruct" }, { - "id": "0x55bfd452bd90-ExecutionPartConstruct", + "id": "0x563e5e54bec0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55bfd452bd90-ExecutableConstruct" + "ExecutableConstruct": "0x563e5e54bec0-ExecutableConstruct" }, { - "id": "0x55bfd452bd90-ExecutableConstruct", + "id": "0x563e5e54bec0-ExecutableConstruct", + "variantKey": "OpenMPConstruct", + "OpenMPConstruct": "0x563e5e54c400-OpenMPConstruct" + }, + { + "id": "0x563e5e54c400-OpenMPConstruct", + "variantKey": "OpenMPLoopConstruct", + "OpenMPLoopConstruct": "0x563e5e54c400-OpenMPLoopConstruct" + }, + { + "id": "0x563e5e54c400-OpenMPLoopConstruct", + "OmpBeginLoopDirective": "0x563e5e54c4c0-OmpBeginLoopDirective", + "ExecutionPartConstruct": [ + "0x563e5e54d280-ExecutionPartConstruct" + ], + "OmpEndLoopDirective": "0x563e5e54c410-OmpEndLoopDirective" + }, + { + "id": "0x563e5e54c4c0-OmpBeginLoopDirective", + "OmpDirectiveName": "0x563e5e54c538-OmpDirectiveName", + "OmpClauseList": "0x563e5e54c4d8-OmpClauseList", + "Flags = {}": "0x563e5e54c4d0-Flags = {}" + }, + { + "id": "0x563e5e54c538-OmpDirectiveName", + "directive": "parallel do" + }, + { + "id": "0x563e5e54c4d8-OmpClauseList" + }, + { + "id": "0x563e5e54c4a8-ExecutionPartConstruct" + }, + { + "id": "0x563e5e54d280-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x563e5e54d280-ExecutableConstruct" + }, + { + "id": "0x563e5e54d280-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55bfd44c7780-DoConstruct" + "DoConstruct": "0x563e5e4e6780-DoConstruct" }, { - "id": "0x55bfd44c7780-DoConstruct", - "Statement": "0x55bfd44c77d8-Statement", + "id": "0x563e5e4e6780-DoConstruct", + "Statement": "0x563e5e4e67d8-Statement", "ExecutionPartConstruct": [ - "0x55bfd452d3c0-ExecutionPartConstruct", - "0x55bfd452cdb0-ExecutionPartConstruct" + "0x563e5e5457e0-ExecutionPartConstruct", + "0x563e5e54c060-ExecutionPartConstruct" ], - "Statement": "0x55bfd44c7780-Statement" + "Statement": "0x563e5e4e6780-Statement" }, { - "id": "0x55bfd44c77d8-Statement", - "statement": "0x55bfd44c77e8-NonLabelDoStmt", + "id": "0x563e5e4e67d8-Statement", + "statement": "0x563e5e4e67e8-NonLabelDoStmt", "source": "do i = 1, 5, a" }, { - "id": "0x55bfd44c77e8-NonLabelDoStmt", - "LoopControl": "0x55bfd44c77e8-LoopControl" + "id": "0x563e5e4e67e8-NonLabelDoStmt", + "LoopControl": "0x563e5e4e67e8-LoopControl" }, { - "id": "0x55bfd44c77e8-LoopControl", + "id": "0x563e5e4e67e8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55bfd44c77e8-LoopBounds" + "LoopBounds": "0x563e5e4e67e8-LoopBounds" }, { - "id": "0x55bfd44c77e8-LoopBounds", - "var": "0x55bfd44c77e8-Name", - "lower": "0x55bfd452c740-Expr", - "upper": "0x55bfd452c820-Expr", - "step": "0x55bfd452ca40-Expr" + "id": "0x563e5e4e67e8-LoopBounds", + "var": "0x563e5e4e67e8-Name", + "lower": "0x563e5e54b4b0-Expr", + "upper": "0x563e5e54bdd0-Expr", + "step": "0x563e5e54bf70-Expr" }, { - "id": "0x55bfd44c77e8-Name", + "id": "0x563e5e4e67e8-Name", "source": "i" }, { - "id": "0x55bfd452c740-Expr", + "id": "0x563e5e54b4b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55bfd452c760-LiteralConstant" + "LiteralConstant": "0x563e5e54b4d0-LiteralConstant" }, { - "id": "0x55bfd452c760-LiteralConstant", + "id": "0x563e5e54b4d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55bfd452c760-IntLiteralConstant" + "IntLiteralConstant": "0x563e5e54b4d0-IntLiteralConstant" }, { - "id": "0x55bfd452c760-IntLiteralConstant", + "id": "0x563e5e54b4d0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55bfd452c820-Expr", + "id": "0x563e5e54bdd0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55bfd452c840-LiteralConstant" + "LiteralConstant": "0x563e5e54bdf0-LiteralConstant" }, { - "id": "0x55bfd452c840-LiteralConstant", + "id": "0x563e5e54bdf0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55bfd452c840-IntLiteralConstant" + "IntLiteralConstant": "0x563e5e54bdf0-IntLiteralConstant" }, { - "id": "0x55bfd452c840-IntLiteralConstant", + "id": "0x563e5e54bdf0-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x55bfd452ca40-Expr", + "id": "0x563e5e54bf70-Expr", "variantKey": "Designator", - "Designator": "0x55bfd452c900-Designator" + "Designator": "0x563e5e54d410-Designator" }, { - "id": "0x55bfd452c900-Designator", + "id": "0x563e5e54d410-Designator", "variantKey": "DataRef", - "DataRef": "0x55bfd452c910-DataRef" + "DataRef": "0x563e5e54d420-DataRef" }, { - "id": "0x55bfd452c910-DataRef", + "id": "0x563e5e54d420-DataRef", "variantKey": "Name", - "Name": "0x55bfd452c910-Name" + "Name": "0x563e5e54d420-Name" }, { - "id": "0x55bfd452c910-Name", + "id": "0x563e5e54d420-Name", "source": "a" }, { - "id": "0x55bfd44c77c0-ExecutionPartConstruct" + "id": "0x563e5e4e67c0-ExecutionPartConstruct" }, { - "id": "0x55bfd452d3c0-ExecutionPartConstruct", + "id": "0x563e5e5457e0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55bfd452d3c0-ExecutableConstruct" + "ExecutableConstruct": "0x563e5e5457e0-ExecutableConstruct" }, { - "id": "0x55bfd452d3c0-ExecutableConstruct", + "id": "0x563e5e5457e0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55bfd452d3c0-Statement" + "Statement": "0x563e5e5457e0-Statement" }, { - "id": "0x55bfd452d3c0-Statement", - "statement": "0x55bfd452d3d0-ActionStmt", + "id": "0x563e5e5457e0-Statement", + "statement": "0x563e5e5457f0-ActionStmt", "source": "dummy = 3" }, { - "id": "0x55bfd452d3d0-ActionStmt", + "id": "0x563e5e5457f0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55bfd452cb80-AssignmentStmt" + "AssignmentStmt": "0x563e5e54c220-AssignmentStmt" }, { - "id": "0x55bfd452cb80-AssignmentStmt", - "Variable": "0x55bfd452cc60-Variable", - "Expr": "0x55bfd452cb90-Expr" + "id": "0x563e5e54c220-AssignmentStmt", + "Variable": "0x563e5e54c300-Variable", + "Expr": "0x563e5e54c230-Expr" }, { - "id": "0x55bfd452cc60-Variable", + "id": "0x563e5e54c300-Variable", "variantKey": "Designator", - "Designator": "0x55bfd44f04d0-Designator" + "Designator": "0x563e5e54c0b0-Designator" }, { - "id": "0x55bfd44f04d0-Designator", + "id": "0x563e5e54c0b0-Designator", "variantKey": "DataRef", - "DataRef": "0x55bfd44f04e0-DataRef" + "DataRef": "0x563e5e54c0c0-DataRef" }, { - "id": "0x55bfd44f04e0-DataRef", + "id": "0x563e5e54c0c0-DataRef", "variantKey": "Name", - "Name": "0x55bfd44f04e0-Name" + "Name": "0x563e5e54c0c0-Name" }, { - "id": "0x55bfd44f04e0-Name", + "id": "0x563e5e54c0c0-Name", "source": "dummy" }, { - "id": "0x55bfd452cb90-Expr", + "id": "0x563e5e54c230-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55bfd452cbb0-LiteralConstant" + "LiteralConstant": "0x563e5e54c250-LiteralConstant" }, { - "id": "0x55bfd452cbb0-LiteralConstant", + "id": "0x563e5e54c250-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55bfd452cbb0-IntLiteralConstant" + "IntLiteralConstant": "0x563e5e54c250-IntLiteralConstant" }, { - "id": "0x55bfd452cbb0-IntLiteralConstant", + "id": "0x563e5e54c250-IntLiteralConstant", "CharBlock": "3" }, { - "id": "0x55bfd452cdb0-ExecutionPartConstruct", + "id": "0x563e5e54c060-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55bfd452cdb0-ExecutableConstruct" + "ExecutableConstruct": "0x563e5e54c060-ExecutableConstruct" }, { - "id": "0x55bfd452cdb0-ExecutableConstruct", + "id": "0x563e5e54c060-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55bfd452cdb0-Statement" + "Statement": "0x563e5e54c060-Statement" }, { - "id": "0x55bfd452cdb0-Statement", - "statement": "0x55bfd452cdc0-ActionStmt", + "id": "0x563e5e54c060-Statement", + "statement": "0x563e5e54c070-ActionStmt", "source": "dummy = 4" }, { - "id": "0x55bfd452cdc0-ActionStmt", + "id": "0x563e5e54c070-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55bfd452cc90-AssignmentStmt" + "AssignmentStmt": "0x563e5e54c110-AssignmentStmt" }, { - "id": "0x55bfd452cc90-AssignmentStmt", - "Variable": "0x55bfd452cd70-Variable", - "Expr": "0x55bfd452cca0-Expr" + "id": "0x563e5e54c110-AssignmentStmt", + "Variable": "0x563e5e54c1f0-Variable", + "Expr": "0x563e5e54c120-Expr" }, { - "id": "0x55bfd452cd70-Variable", + "id": "0x563e5e54c1f0-Variable", "variantKey": "Designator", - "Designator": "0x55bfd44ff100-Designator" + "Designator": "0x563e5e54c330-Designator" }, { - "id": "0x55bfd44ff100-Designator", + "id": "0x563e5e54c330-Designator", "variantKey": "DataRef", - "DataRef": "0x55bfd44ff110-DataRef" + "DataRef": "0x563e5e54c340-DataRef" }, { - "id": "0x55bfd44ff110-DataRef", + "id": "0x563e5e54c340-DataRef", "variantKey": "Name", - "Name": "0x55bfd44ff110-Name" + "Name": "0x563e5e54c340-Name" }, { - "id": "0x55bfd44ff110-Name", + "id": "0x563e5e54c340-Name", "source": "dummy" }, { - "id": "0x55bfd452cca0-Expr", + "id": "0x563e5e54c120-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55bfd452ccc0-LiteralConstant" + "LiteralConstant": "0x563e5e54c140-LiteralConstant" }, { - "id": "0x55bfd452ccc0-LiteralConstant", + "id": "0x563e5e54c140-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55bfd452ccc0-IntLiteralConstant" + "IntLiteralConstant": "0x563e5e54c140-IntLiteralConstant" }, { - "id": "0x55bfd452ccc0-IntLiteralConstant", + "id": "0x563e5e54c140-IntLiteralConstant", "CharBlock": "4" }, { - "id": "0x55bfd44c7780-Statement", - "statement": "0x55bfd44c7790-EndDoStmt", + "id": "0x563e5e4e6780-Statement", + "statement": "0x563e5e4e6790-EndDoStmt", "source": "end do" }, { - "id": "0x55bfd44c7790-EndDoStmt" + "id": "0x563e5e4e6790-EndDoStmt" + }, + { + "id": "0x563e5e54c410-OmpEndLoopDirective", + "OmpDirectiveName": "0x563e5e54c488-OmpDirectiveName", + "OmpClauseList": "0x563e5e54c428-OmpClauseList", + "Flags = {}": "0x563e5e54c420-Flags = {}" }, { - "id": "0x55bfd452cb30-ExecutionPartConstruct", + "id": "0x563e5e54c488-OmpDirectiveName", + "directive": "parallel do" + }, + { + "id": "0x563e5e54c428-OmpClauseList" + }, + { + "id": "0x563e5e54c5c0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55bfd452cb30-ExecutableConstruct" + "ExecutableConstruct": "0x563e5e54c5c0-ExecutableConstruct" }, { - "id": "0x55bfd452cb30-ExecutableConstruct", + "id": "0x563e5e54c5c0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55bfd451cad0-DoConstruct" + "DoConstruct": "0x563e5e54cae0-DoConstruct" }, { - "id": "0x55bfd451cad0-DoConstruct", - "Statement": "0x55bfd451cb28-Statement", + "id": "0x563e5e54cae0-DoConstruct", + "Statement": "0x563e5e54cb38-Statement", "ExecutionPartConstruct": [ - "0x55bfd451ca80-ExecutionPartConstruct" + "0x563e5e54ca90-ExecutionPartConstruct" ], - "Statement": "0x55bfd451cad0-Statement" + "Statement": "0x563e5e54cae0-Statement" }, { - "id": "0x55bfd451cb28-Statement", - "statement": "0x55bfd451cb38-NonLabelDoStmt", + "id": "0x563e5e54cb38-Statement", + "statement": "0x563e5e54cb48-NonLabelDoStmt", "source": "do while(2 > 0)" }, { - "id": "0x55bfd451cb38-NonLabelDoStmt", - "LoopControl": "0x55bfd451cb38-LoopControl" + "id": "0x563e5e54cb48-NonLabelDoStmt", + "LoopControl": "0x563e5e54cb48-LoopControl" }, { - "id": "0x55bfd451cb38-LoopControl", + "id": "0x563e5e54cb48-LoopControl", "variantKey": "Expr", - "Expr": "0x55bfd451c7c0-Expr" + "Expr": "0x563e5e54c7d0-Expr" }, { - "id": "0x55bfd451c7c0-Expr", + "id": "0x563e5e54c7d0-Expr", "variantKey": "GT", - "GT": "0x55bfd451c7e0-GT" + "GT": "0x563e5e54c7f0-GT" }, { - "id": "0x55bfd451c7e0-GT", - "left": "0x55bfd451c6e0-Expr", - "right": "0x55bfd451c600-Expr", + "id": "0x563e5e54c7f0-GT", + "left": "0x563e5e54c6f0-Expr", + "right": "0x563e5e54c610-Expr", "op": "GT" }, { - "id": "0x55bfd451c6e0-Expr", + "id": "0x563e5e54c6f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55bfd451c700-LiteralConstant" + "LiteralConstant": "0x563e5e54c710-LiteralConstant" }, { - "id": "0x55bfd451c700-LiteralConstant", + "id": "0x563e5e54c710-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55bfd451c700-IntLiteralConstant" + "IntLiteralConstant": "0x563e5e54c710-IntLiteralConstant" }, { - "id": "0x55bfd451c700-IntLiteralConstant", + "id": "0x563e5e54c710-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x55bfd451c600-Expr", + "id": "0x563e5e54c610-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55bfd451c620-LiteralConstant" + "LiteralConstant": "0x563e5e54c630-LiteralConstant" }, { - "id": "0x55bfd451c620-LiteralConstant", + "id": "0x563e5e54c630-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55bfd451c620-IntLiteralConstant" + "IntLiteralConstant": "0x563e5e54c630-IntLiteralConstant" }, { - "id": "0x55bfd451c620-IntLiteralConstant", + "id": "0x563e5e54c630-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55bfd451cb10-ExecutionPartConstruct" + "id": "0x563e5e54cb20-ExecutionPartConstruct" }, { - "id": "0x55bfd451ca80-ExecutionPartConstruct", + "id": "0x563e5e54ca90-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55bfd451ca80-ExecutableConstruct" + "ExecutableConstruct": "0x563e5e54ca90-ExecutableConstruct" }, { - "id": "0x55bfd451ca80-ExecutableConstruct", + "id": "0x563e5e54ca90-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55bfd451ca80-Statement" + "Statement": "0x563e5e54ca90-Statement" }, { - "id": "0x55bfd451ca80-Statement", - "statement": "0x55bfd451ca90-ActionStmt", + "id": "0x563e5e54ca90-Statement", + "statement": "0x563e5e54caa0-ActionStmt", "source": "dummy = 2" }, { - "id": "0x55bfd451ca90-ActionStmt", + "id": "0x563e5e54caa0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55bfd451c960-AssignmentStmt" + "AssignmentStmt": "0x563e5e54c970-AssignmentStmt" }, { - "id": "0x55bfd451c960-AssignmentStmt", - "Variable": "0x55bfd451ca40-Variable", - "Expr": "0x55bfd451c970-Expr" + "id": "0x563e5e54c970-AssignmentStmt", + "Variable": "0x563e5e54ca50-Variable", + "Expr": "0x563e5e54c980-Expr" }, { - "id": "0x55bfd451ca40-Variable", + "id": "0x563e5e54ca50-Variable", "variantKey": "Designator", - "Designator": "0x55bfd452c960-Designator" + "Designator": "0x563e5e54bf10-Designator" }, { - "id": "0x55bfd452c960-Designator", + "id": "0x563e5e54bf10-Designator", "variantKey": "DataRef", - "DataRef": "0x55bfd452c970-DataRef" + "DataRef": "0x563e5e54bf20-DataRef" }, { - "id": "0x55bfd452c970-DataRef", + "id": "0x563e5e54bf20-DataRef", "variantKey": "Name", - "Name": "0x55bfd452c970-Name" + "Name": "0x563e5e54bf20-Name" }, { - "id": "0x55bfd452c970-Name", + "id": "0x563e5e54bf20-Name", "source": "dummy" }, { - "id": "0x55bfd451c970-Expr", + "id": "0x563e5e54c980-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55bfd451c990-LiteralConstant" + "LiteralConstant": "0x563e5e54c9a0-LiteralConstant" }, { - "id": "0x55bfd451c990-LiteralConstant", + "id": "0x563e5e54c9a0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55bfd451c990-IntLiteralConstant" + "IntLiteralConstant": "0x563e5e54c9a0-IntLiteralConstant" }, { - "id": "0x55bfd451c990-IntLiteralConstant", + "id": "0x563e5e54c9a0-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x55bfd451cad0-Statement", - "statement": "0x55bfd451cae0-EndDoStmt", + "id": "0x563e5e54cae0-Statement", + "statement": "0x563e5e54caf0-EndDoStmt", "source": "end do" }, { - "id": "0x55bfd451cae0-EndDoStmt" + "id": "0x563e5e54caf0-EndDoStmt" }, { - "id": "0x55bfd451cc60-ExecutionPartConstruct", + "id": "0x563e5e54cc70-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55bfd451cc60-ExecutableConstruct" + "ExecutableConstruct": "0x563e5e54cc70-ExecutableConstruct" }, { - "id": "0x55bfd451cc60-ExecutableConstruct", + "id": "0x563e5e54cc70-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55bfd451ce20-DoConstruct" + "DoConstruct": "0x563e5e551f30-DoConstruct" }, { - "id": "0x55bfd451ce20-DoConstruct", - "Statement": "0x55bfd451ce78-Statement", + "id": "0x563e5e551f30-DoConstruct", + "Statement": "0x563e5e551f88-Statement", "ExecutionPartConstruct": [ - "0x55bfd451cdd0-ExecutionPartConstruct" + "0x563e5e551ee0-ExecutionPartConstruct" ], - "Statement": "0x55bfd451ce20-Statement" + "Statement": "0x563e5e551f30-Statement" }, { - "id": "0x55bfd451ce78-Statement", - "statement": "0x55bfd451ce88-NonLabelDoStmt", + "id": "0x563e5e551f88-Statement", + "statement": "0x563e5e551f98-NonLabelDoStmt", "source": "name: do" }, { - "id": "0x55bfd451ce88-NonLabelDoStmt", - "Name": "0x55bfd451cf08-Name" + "id": "0x563e5e551f98-NonLabelDoStmt", + "Name": "0x563e5e552018-Name" }, { - "id": "0x55bfd451cf08-Name", + "id": "0x563e5e552018-Name", "source": "name" }, { - "id": "0x55bfd451ce60-ExecutionPartConstruct" + "id": "0x563e5e551f70-ExecutionPartConstruct" }, { - "id": "0x55bfd451cdd0-ExecutionPartConstruct", + "id": "0x563e5e551ee0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55bfd451cdd0-ExecutableConstruct" + "ExecutableConstruct": "0x563e5e551ee0-ExecutableConstruct" }, { - "id": "0x55bfd451cdd0-ExecutableConstruct", + "id": "0x563e5e551ee0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55bfd451cdd0-Statement" + "Statement": "0x563e5e551ee0-Statement" }, { - "id": "0x55bfd451cdd0-Statement", - "statement": "0x55bfd451cde0-ActionStmt", + "id": "0x563e5e551ee0-Statement", + "statement": "0x563e5e551ef0-ActionStmt", "source": "dummy = 4" }, { - "id": "0x55bfd451cde0-ActionStmt", + "id": "0x563e5e551ef0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55bfd451ccb0-AssignmentStmt" + "AssignmentStmt": "0x563e5e551dc0-AssignmentStmt" }, { - "id": "0x55bfd451ccb0-AssignmentStmt", - "Variable": "0x55bfd451cd90-Variable", - "Expr": "0x55bfd451ccc0-Expr" + "id": "0x563e5e551dc0-AssignmentStmt", + "Variable": "0x563e5e551ea0-Variable", + "Expr": "0x563e5e551dd0-Expr" }, { - "id": "0x55bfd451cd90-Variable", + "id": "0x563e5e551ea0-Variable", "variantKey": "Designator", - "Designator": "0x55bfd451cbf0-Designator" + "Designator": "0x563e5e54cc00-Designator" }, { - "id": "0x55bfd451cbf0-Designator", + "id": "0x563e5e54cc00-Designator", "variantKey": "DataRef", - "DataRef": "0x55bfd451cc00-DataRef" + "DataRef": "0x563e5e54cc10-DataRef" }, { - "id": "0x55bfd451cc00-DataRef", + "id": "0x563e5e54cc10-DataRef", "variantKey": "Name", - "Name": "0x55bfd451cc00-Name" + "Name": "0x563e5e54cc10-Name" }, { - "id": "0x55bfd451cc00-Name", + "id": "0x563e5e54cc10-Name", "source": "dummy" }, { - "id": "0x55bfd451ccc0-Expr", + "id": "0x563e5e551dd0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55bfd451cce0-LiteralConstant" + "LiteralConstant": "0x563e5e551df0-LiteralConstant" }, { - "id": "0x55bfd451cce0-LiteralConstant", + "id": "0x563e5e551df0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55bfd451cce0-IntLiteralConstant" + "IntLiteralConstant": "0x563e5e551df0-IntLiteralConstant" }, { - "id": "0x55bfd451cce0-IntLiteralConstant", + "id": "0x563e5e551df0-IntLiteralConstant", "CharBlock": "4" }, { - "id": "0x55bfd451ce20-Statement", - "statement": "0x55bfd451ce30-EndDoStmt", + "id": "0x563e5e551f30-Statement", + "statement": "0x563e5e551f40-EndDoStmt", "source": "end do name" }, { - "id": "0x55bfd451ce30-EndDoStmt", - "Name": "0x55bfd451ce30-Name" + "id": "0x563e5e551f40-EndDoStmt", + "Name": "0x563e5e551f40-Name" }, { - "id": "0x55bfd451ce30-Name", + "id": "0x563e5e551f40-Name", "source": "name" }, { - "id": "0x55bfd451ff40-Statement", - "statement": "0x55bfd451ff50-EndProgramStmt", + "id": "0x563e5e53cb90-Statement", + "statement": "0x563e5e53cba0-EndProgramStmt", "source": "end program SIMPLE_LOOP" }, { - "id": "0x55bfd451ff50-EndProgramStmt", - "Name": "0x55bfd451ff50-Name" + "id": "0x563e5e53cba0-EndProgramStmt", + "Name": "0x563e5e53cba0-Name" }, { - "id": "0x55bfd451ff50-Name", + "id": "0x563e5e53cba0-Name", "source": "SIMPLE_LOOP" } ], + "comments": [ + { + "text": "!use omp_lib", + "stmtId": "0x563e5e51e110-Statement" + } + ], "enums": { "Fortran::common::CUDADataAttr": [ "Constant", diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangAttributes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangAttributes.java index a63abbed..00b14ec4 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangAttributes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangAttributes.java @@ -43,6 +43,10 @@ public Optional getOptionalString(String key) { return Optional.of(value.toString()); } + public Optional getOptionalString(FlangName name) { + return getOptionalString(name.getString()); + } + public Optional getOptionalString(Pattern pattern) { // Go over all keys in attributes, check which ones match the pattern diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index d13db827..422bede2 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -46,6 +46,7 @@ public enum FlangName implements StringProvider { TYPE_DECLARATION_STMT, ASSIGNMENT_STMT, NON_LABEL_DO_STMT, + END_DO_STMT, DO_CONSTRUCT, CALL_STMT, COMPILER_DIRECTIVE, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index c4f3b2ab..8372d0c5 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -23,6 +23,9 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmtSet; import pt.up.fe.specs.fortran.ast.nodes.stmt.ifstmt.*; +import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; +import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.EndDoStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.CaseBlock; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.CaseConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.EndSelectStmt; @@ -65,7 +68,9 @@ public class FlangToClass { NAME_TO_CLASS.put(FlangName.FORMAT_STMT, FormatStmt.class); NAME_TO_CLASS.put(FlangName.TYPE_DECLARATION_STMT, TypeDeclarationStmt.class); NAME_TO_CLASS.put(FlangName.ASSIGNMENT_STMT, AssignmentStmt.class); - NAME_TO_CLASS.put(FlangName.DO_CONSTRUCT, DoStmt.class); + NAME_TO_CLASS.put(FlangName.DO_CONSTRUCT, DoConstruct.class); + NAME_TO_CLASS.put(FlangName.NON_LABEL_DO_STMT, DoStmt.class); + NAME_TO_CLASS.put(FlangName.END_DO_STMT, EndDoStmt.class); NAME_TO_CLASS.put(FlangName.COMPILER_DIRECTIVE, CompilerDirective.class); NAME_TO_CLASS.put(FlangName.GOTO_STMT, GotoStmt.class); NAME_TO_CLASS.put(FlangName.STOP_STMT, StopStmt.class); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 8a5b9c42..e0bafe05 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -23,6 +23,9 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmtSet; import pt.up.fe.specs.fortran.ast.nodes.stmt.ifstmt.*; +import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; +import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.EndDoStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.CaseBlock; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.CaseConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.EndSelectStmt; @@ -89,7 +92,9 @@ public Nodes(FortranJsonResult data) { processors.put(ElseStmt.class, s::elseStmt); processors.put(EndIfStmt.class, s::endIfStmt); processors.put(IfStmt.class, s::ifStmt); + processors.put(DoConstruct.class, s::doConstruct); processors.put(DoStmt.class, s::doStmt); + processors.put(EndDoStmt.class, s::endDoStmt); processors.put(CaseConstruct.class, s::caseConstruct); processors.put(SelectCaseStmt.class, s::selectCaseStmt); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/OmpProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/OmpProcessors.java index 84d8c462..7608c1ef 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/OmpProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/OmpProcessors.java @@ -9,7 +9,7 @@ import pt.up.fe.specs.fortran.ast.nodes.omp.enums.OmpClauseKind; import pt.up.fe.specs.fortran.ast.nodes.omp.enums.OmpDirectiveKind; import pt.up.fe.specs.fortran.ast.nodes.program.Execution; -import pt.up.fe.specs.fortran.ast.nodes.stmt.DoStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; @@ -52,7 +52,7 @@ public void ompLoopConstruct(OmpLoopConstruct ompLoopConstruct) { ompLoopConstruct.set(OmpBlockConstruct.KINDS, kinds); - DoStmt loop = (DoStmt) getChildren(ompLoopConstruct, FlangName.EXECUTION_PART_CONSTRUCT).get(0); + DoConstruct loop = (DoConstruct) getChildren(ompLoopConstruct, FlangName.EXECUTION_PART_CONSTRUCT).get(0); ompLoopConstruct.addChild(loop); if (attributes().get(clauseList).has(FlangName.OMP_CLAUSE)) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 66e4a9be..b73e5407 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -15,6 +15,9 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmtSet; import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmtVariable; import pt.up.fe.specs.fortran.ast.nodes.stmt.ifstmt.*; +import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; +import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.EndDoStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.*; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.DimensionSpec; import pt.up.fe.specs.fortran.parser.FlangAttributes; @@ -330,20 +333,32 @@ public void endSelectStmt(EndSelectStmt endSelectStmt) { stmt(endSelectStmt); } - public void doStmt(DoStmt doStmt) { - executableStmt(doStmt); + public void doConstruct(DoConstruct doConstruct) { + executableStmt(doConstruct); + + var name = attributes().getOptionalString(doConstruct, "source", FlangName.NON_LABEL_DO_STMT, FlangName.NAME); + name.ifPresent(str -> doConstruct.setOptional(DoConstruct.NAME, str)); - Optional control = attributes().getOptionalString(doStmt, "id", FlangName.NON_LABEL_DO_STMT, FlangName.LOOP_CONTROL); - Optional name = attributes().getOptionalString(doStmt, "source", FlangName.NON_LABEL_DO_STMT, FlangName.NAME); + var doStmt = getStmtChild(doConstruct, FlangName.NON_LABEL_DO_STMT); + doConstruct.addChild(doStmt); - name.ifPresent(str -> doStmt.setOptional(DoStmt.NAME, str)); + var body = factory().newNode(Execution.class, getChildren(doConstruct, FlangName.EXECUTION_PART_CONSTRUCT)); + doConstruct.addChild(body); + + var endDoStmt = getStmtChild(doConstruct, FlangName.END_DO_STMT); + doConstruct.addChild(endDoStmt); + } + public void doStmt(DoStmt doStmt) { + stmt(doStmt); + + var control = attributes(doStmt).getOptionalString(FlangName.LOOP_CONTROL); control.ifPresentOrElse( s -> { - FlangAttributes attrs = attributes().getAttrs(s); + var attrs = attributes().getAttrs(s); - FlangName childKey = FlangName.convertTry(attrs.getVariantKey()).orElseThrow(); - String value = attrs.getString(childKey); + var childKey = FlangName.convertTry(attrs.getVariantKey()).orElseThrow(); + var value = attrs.getString(childKey); switch (childKey) { case LOOP_BOUNDS, CONCURRENT -> { @@ -360,13 +375,14 @@ public void doStmt(DoStmt doStmt) { } }, () -> { - WhileLoopControl empty = factory().newNode(WhileLoopControl.class); + var empty = factory().newNode(WhileLoopControl.class); doStmt.addChild(empty); } ); + } - Execution body = factory().newNode(Execution.class, getChildren(doStmt, FlangName.EXECUTION_PART_CONSTRUCT)); - doStmt.addChild(body); + public void endDoStmt(EndDoStmt endDoStmt) { + stmt(endDoStmt); } public void compilerDirective(CompilerDirective compilerDirective) { From 8d7785bff6d9971217588bb64d600708fc864359 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 7 Jul 2026 20:28:06 +0100 Subject: [PATCH 013/260] Refactor subroutine AST representation --- .../ast/nodes/program/EndSubroutineStmt.java | 20 +++++++++++ .../fortran/ast/nodes/program/Subroutine.java | 34 +++++++------------ .../ast/nodes/program/SubroutineStmt.java | 33 ++++++++++++++++++ .../fe/specs/fortran/parser/FlangToClass.java | 2 ++ .../fortran/parser/processors/Nodes.java | 2 ++ .../parser/processors/ProgramProcessors.java | 22 ++++++------ .../parser/processors/StmtProcessors.java | 18 +++++++--- 7 files changed, 94 insertions(+), 37 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/EndSubroutineStmt.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/SubroutineStmt.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/EndSubroutineStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/EndSubroutineStmt.java new file mode 100644 index 00000000..bfddc24f --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/EndSubroutineStmt.java @@ -0,0 +1,20 @@ +package pt.up.fe.specs.fortran.ast.nodes.program; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; + +import java.util.Collection; + +public class EndSubroutineStmt extends Stmt { + public EndSubroutineStmt(DataStore data, Collection children) { + super(data, children); + } + + @Override + public String getStmtCode() { + var subroutineName = getAncestor(Subroutine.class).getName(); + return keyword(FortranKeyword.END) + " " + keyword(FortranKeyword.SUBROUTINE) + " " + subroutineName; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Subroutine.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Subroutine.java index 14280b44..440a3572 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Subroutine.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Subroutine.java @@ -14,39 +14,29 @@ public class Subroutine extends ProgramUnit { - public final static DataKey SUBROUTINE_NAME = KeyFactory.string("programName"); + public final static DataKey NAME = KeyFactory.string("name"); public Subroutine(DataStore data, Collection children) { super(data, children); } - public List getDummyArgs() { - return getChildrenOf(DummyArgumentDecl.class); + public String getName() { + return get(NAME); } - public String getName() { - return get(SUBROUTINE_NAME); + public SubroutineStmt getSubroutineStmt() { + return getChild(SubroutineStmt.class); + } + + public EndSubroutineStmt getEndSubroutineStmt() { + return getChild(EndSubroutineStmt.class); } @Override public String getCode() { + var subroutineStmt = getSubroutineStmt(); + var endSubroutineStmt = getEndSubroutineStmt(); - var code = new StringBuilder(); - - var argCode = getDummyArgs().stream() - .map(DummyArgumentDecl::getCode) - .collect(Collectors.joining(", ", "(", ")")); - - var subroutineName = get(SUBROUTINE_NAME); - - code.append(keyword(SUBROUTINE)).append(" ").append(subroutineName).append(argCode).append(ln()); - - code.append(getBodyCode()).append(ln()); - - code.append(keyword(END)); - code.append(" ").append(keyword(SUBROUTINE)).append(" ").append(subroutineName); - code.append(ln()); - - return code.toString(); + return subroutineStmt.getCode() + ln() + getBodyCode() + ln() + endSubroutineStmt.getCode(); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/SubroutineStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/SubroutineStmt.java new file mode 100644 index 00000000..32d994a1 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/SubroutineStmt.java @@ -0,0 +1,33 @@ +package pt.up.fe.specs.fortran.ast.nodes.program; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.decl.DummyArgumentDecl; +import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +import static pt.up.fe.specs.fortran.ast.FortranKeyword.SUBROUTINE; + +public class SubroutineStmt extends Stmt { + public SubroutineStmt(DataStore data, Collection children) { + super(data, children); + } + + public List getDummyArgs() { + return getChildrenOf(DummyArgumentDecl.class); + } + + @Override + public String getStmtCode() { + var subroutineName = getAncestor(Subroutine.class).getName(); + + var argCode = getDummyArgs().stream() + .map(DummyArgumentDecl::getCode) + .collect(Collectors.joining(", ", "(", ")")); + + return keyword(SUBROUTINE) + " " + subroutineName + argCode; + } +} diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 8372d0c5..e42b4679 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -56,6 +56,8 @@ public class FlangToClass { NAME_TO_CLASS.put(FlangName.EXECUTION_PART, Execution.class); NAME_TO_CLASS.put(FlangName.INTERNAL_SUBPROGRAM_PART, InternalSubprogram.class); NAME_TO_CLASS.put(FlangName.SUBROUTINE_SUBPROGRAM, Subroutine.class); + NAME_TO_CLASS.put(FlangName.SUBROUTINE_STMT, SubroutineStmt.class); + NAME_TO_CLASS.put(FlangName.END_SUBROUTINE_STMT, EndSubroutineStmt.class); NAME_TO_CLASS.put(FlangName.ALLOCATION, Allocation.class); /// DECLs diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index e0bafe05..4f107dfb 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -115,6 +115,8 @@ public Nodes(FortranJsonResult data) { processors.put(DataStmtSet.class, s::dataStmtSet); processors.put(ProgramStmt.class, s::programStmt); processors.put(EndProgramStmt.class, s::endProgramStmt); + processors.put(SubroutineStmt.class, s::subroutineStmt); + processors.put(EndSubroutineStmt.class, s::endSubroutineStmt); var e = new ExprProcessors(data); processors.put(StringLiteral.class, e::stringLiteral); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java index b43bf2e6..5e4bfd87 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java @@ -79,19 +79,19 @@ public void internalSubprogram(InternalSubprogram internalSubprogram) { } public void subroutine(Subroutine subroutine) { - var name = attributes().getString(subroutine, "source", FlangName.SUBROUTINE_STMT, FlangName.NAME); - // [specification-part] - subroutine.addChild(getChild(subroutine, FlangName.SPECIFICATION_PART)); - // [execution-part] - subroutine.addChild(getChild(subroutine, FlangName.EXECUTION_PART)); - // [internal-subprogram-part] + var subroutineStmt = getStmtChild(subroutine, FlangName.SUBROUTINE_STMT); + subroutine.addChild(subroutineStmt); - subroutine.set(Subroutine.SUBROUTINE_NAME, name); + var specification = getChild(subroutine, FlangName.SPECIFICATION_PART); + subroutine.addChild(specification); - String statementId = attributes().get(attributes(subroutine).getString(FlangName.SUBROUTINE_STMT.getStmtAttr())).getString("statement"); + var execution = getChild(subroutine, FlangName.EXECUTION_PART); + subroutine.addChild(execution); - if (attributes().has(statementId, FlangName.DUMMY_ARG)) { - subroutine.addChildren(getChildren(statementId, FlangName.DUMMY_ARG)); - } + var endSubroutineStmt = getStmtChild(subroutine, FlangName.END_SUBROUTINE_STMT); + subroutine.addChild(endSubroutineStmt); + + var name = attributes().getString(subroutine, "source", FlangName.SUBROUTINE_STMT, FlangName.NAME); + subroutine.set(Subroutine.NAME, name); } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index b73e5407..9c8bef01 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -3,10 +3,7 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; import pt.up.fe.specs.fortran.ast.nodes.loops.WhileLoopControl; -import pt.up.fe.specs.fortran.ast.nodes.program.EndProgramStmt; -import pt.up.fe.specs.fortran.ast.nodes.program.Execution; -import pt.up.fe.specs.fortran.ast.nodes.program.ProgramStmt; -import pt.up.fe.specs.fortran.ast.nodes.program.StmtBlock; +import pt.up.fe.specs.fortran.ast.nodes.program.*; import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; import pt.up.fe.specs.fortran.ast.nodes.specification.NamedConstantDef; import pt.up.fe.specs.fortran.ast.nodes.stmt.*; @@ -558,4 +555,17 @@ public void programStmt(ProgramStmt programStmt) { public void endProgramStmt(EndProgramStmt endProgramStmt) { stmt(endProgramStmt); } + + public void subroutineStmt(SubroutineStmt subroutineStmt) { + stmt(subroutineStmt); + + if (attributes(subroutineStmt).has(FlangName.DUMMY_ARG)) { + var dummyArgs = getChildren(subroutineStmt, FlangName.DUMMY_ARG); + subroutineStmt.addChildren(dummyArgs); + } + } + + public void endSubroutineStmt(EndSubroutineStmt endSubroutineStmt) { + stmt(endSubroutineStmt); + } } From c716ef9857be36e3e5b0a1fcf9dd6736888341e8 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 7 Jul 2026 20:41:14 +0100 Subject: [PATCH 014/260] Add tests for comments --- .../fortran/parser/comment.expected.f90 | 6 ++++++ .../resources-test/fortran/parser/comment.f90 | 6 ++++++ .../fe/specs/fortran/parser/FortranParserTest.java | 12 ++++++++++++ 3 files changed, 24 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/comment.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/comment.f90 diff --git a/FortranParser/resources-test/fortran/parser/comment.expected.f90 b/FortranParser/resources-test/fortran/parser/comment.expected.f90 new file mode 100644 index 00000000..e875edbf --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/comment.expected.f90 @@ -0,0 +1,6 @@ +! This is a \comment +PROGRAM hello + ! This is "another comment" + PRINT *, "Hello, World!" ! This is a trailing comment +END PROGRAM hello +! This is a final comment \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/comment.f90 b/FortranParser/resources-test/fortran/parser/comment.f90 new file mode 100644 index 00000000..ef02a68e --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/comment.f90 @@ -0,0 +1,6 @@ +! This is a \comment +PROGRAM HELLO + ! This is "another comment" + PRINT *, "Hello, World!" ! This is a trailing comment +END PROGRAM HELLO +! This is a final comment \ No newline at end of file diff --git a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java index 8e7af8e4..5eb4111c 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -520,6 +520,18 @@ void testCommonStmtNative() { } } + @Test + void testComment() { + testJson("comment.json"); + } + + @Test + void testCommentNative() { + if (SpecsPlatforms.isLinux()) { + testNative("comment.f90"); + } + } + @Test void testFujitsu0000_0000() { testJson("fujitsu/0000/0000_0000.json"); From 7e77fde3c90e64c0c41621ee907ba277a0c301a7 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 7 Jul 2026 22:32:48 +0100 Subject: [PATCH 015/260] Regenerate dump for comment test --- .../fortran/parser/comment.json | 514 ++++++++++++++++++ 1 file changed, 514 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/comment.json diff --git a/FortranParser/resources-test/fortran/parser/comment.json b/FortranParser/resources-test/fortran/parser/comment.json new file mode 100644 index 00000000..b39d9db9 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/comment.json @@ -0,0 +1,514 @@ +{ + "nodes": [ + { + "id": "0x556443ab7f00-Program", + "ProgramUnit": [ + "0x556443aecb50-ProgramUnit" + ] + }, + { + "id": "0x556443aecb50-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x556443aead30-MainProgram" + }, + { + "id": "0x556443aead30-MainProgram", + "Statement": "0x556443aeae78-Statement", + "SpecificationPart": "0x556443aeadd0-SpecificationPart", + "ExecutionPart": "0x556443aeadb8-ExecutionPart", + "Statement": "0x556443aead30-Statement" + }, + { + "id": "0x556443aeae78-Statement", + "statement": "0x556443aeae88-ProgramStmt", + "source": "program HELLO" + }, + { + "id": "0x556443aeae88-ProgramStmt", + "Name": "0x556443aeae88-Name" + }, + { + "id": "0x556443aeae88-Name", + "source": "HELLO" + }, + { + "id": "0x556443aeadd0-SpecificationPart", + "ImplicitPart": "0x556443aeade8-ImplicitPart" + }, + { + "id": "0x556443aeade8-ImplicitPart" + }, + { + "id": "0x556443aeadb8-ExecutionPart", + "ExecutionPartConstruct": [ + "0x556443af5120-ExecutionPartConstruct" + ] + }, + { + "id": "0x556443aeadb8-ExecutionPartConstruct" + }, + { + "id": "0x556443af5120-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x556443af5120-ExecutableConstruct" + }, + { + "id": "0x556443af5120-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x556443af5120-Statement" + }, + { + "id": "0x556443af5120-Statement", + "statement": "0x556443af5130-ActionStmt", + "source": "print *, \"Hello, World!\"" + }, + { + "id": "0x556443af5130-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x556443af8190-PrintStmt" + }, + { + "id": "0x556443af8190-PrintStmt", + "Format": "0x556443af81a8-Format", + "OutputItem": [ + "0x556443af8040-OutputItem" + ] + }, + { + "id": "0x556443af81a8-Format", + "variantKey": "Star", + "Star": "0x556443af81a8-Star" + }, + { + "id": "0x556443af81a8-Star" + }, + { + "id": "0x556443af8040-OutputItem", + "variantKey": "Expr", + "Expr": "0x556443af8040-Expr" + }, + { + "id": "0x556443af8040-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x556443af8060-LiteralConstant" + }, + { + "id": "0x556443af8060-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x556443af8060-CharLiteralConstant" + }, + { + "id": "0x556443af8060-CharLiteralConstant", + "string": "Hello, World!" + }, + { + "id": "0x556443aead30-Statement", + "statement": "0x556443aead40-EndProgramStmt", + "source": "end program HELLO" + }, + { + "id": "0x556443aead40-EndProgramStmt", + "Name": "0x556443aead40-Name" + }, + { + "id": "0x556443aead40-Name", + "source": "HELLO" + } + ], + "comments": [ + { + "text": "! This is a \\comment", + "stmtId": "0x556443aeae78-Statement", + "trailing": false + }, + { + "text": "! This is \"another comment\"", + "stmtId": "0x556443af5120-Statement", + "trailing": false + }, + { + "text": "! This is a trailing comment", + "stmtId": "0x556443af5120-Statement", + "trailing": true + }, + { + "text": "! This is a final comment", + "stmtId": "0x556443ab7f00-Program", + "trailing": false + } + ], + "enums": { + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "Fortran::common::ImportKind": [ + "Default", + "Only", + "None", + "All" + ], + "Fortran::common::OmpDependenceKind": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::common::OmpMemoryOrderType": [ + "Acq_Rel", + "Acquire", + "Relaxed", + "Release", + "Seq_Cst" + ], + "Fortran::common::OpenACCDeviceType": [ + "Star", + "Default", + "Nvidia", + "Radeon", + "Host", + "Multicore", + "None" + ], + "Fortran::parser::AccDataModifier::Modifier": [ + "ReadOnly", + "Zero" + ], + "Fortran::parser::AccessSpec::Kind": [ + "Public", + "Private" + ], + "Fortran::parser::BindEntity::Kind": [ + "Object", + "Common" + ], + "Fortran::parser::CompilerDirective::VectorLength::Kind": [ + "Auto", + "Fixed", + "Scalable" + ], + "Fortran::parser::ConnectSpec::CharExpr::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Encoding", + "Form", + "Pad", + "Position", + "Round", + "Sign", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::DefinedOperator::IntrinsicOperator": [ + "Power", + "Multiply", + "Divide", + "Add", + "Subtract", + "Concat", + "LT", + "LE", + "EQ", + "NE", + "GE", + "GT", + "NOT", + "AND", + "OR", + "EQV", + "NEQV" + ], + "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec": [ + "External", + "Type" + ], + "Fortran::parser::InquireSpec::CharVar::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Direct", + "Encoding", + "Form", + "Formatted", + "Iomsg", + "Name", + "Pad", + "Position", + "Read", + "Readwrite", + "Round", + "Sequential", + "Sign", + "Stream", + "Status", + "Unformatted", + "Write", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::InquireSpec::IntVar::Kind": [ + "Iostat", + "Nextrec", + "Number", + "Pos", + "Recl", + "Size" + ], + "Fortran::parser::InquireSpec::LogVar::Kind": [ + "Exist", + "Named", + "Opened", + "Pending" + ], + "Fortran::parser::IntentSpec::Intent": [ + "In", + "Out", + "InOut" + ], + "Fortran::parser::IoControlSpec::CharExpr::Kind": [ + "Advance", + "Blank", + "Decimal", + "Delim", + "Pad", + "Round", + "Sign" + ], + "Fortran::parser::ReductionOperator::Operator": [ + "Plus", + "Multiply", + "Max", + "Min", + "Iand", + "Ior", + "Ieor", + "And", + "Or", + "Eqv", + "Neqv" + ], + "Fortran::parser::OmpAccessGroup::Value": [ + "Cgroup" + ], + "Fortran::parser::OmpAdjustArgsClause::OmpAdjustOp::Value": [ + "Nothing", + "Need_Device_Ptr" + ], + "Fortran::parser::OmpAlwaysModifier::Value": [ + "Always" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpAttachModifier::Value": [ + "Always", + "Never", + "Auto" + ], + "Fortran::parser::OmpAutomapModifier::Value": [ + "Automap" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpCloseModifier::Value": [ + "Close" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default", + "Present" + ], + "Fortran::parser::OmpDeleteModifier::Value": [ + "Delete" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpDirectiveSpecification::Flag": [ + "DeprecatedSyntax", + "CrossesLabelDo" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpInteropType::Value": [ + "Target", + "Targetsync" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "Storage", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpObject::Invalid::Kind": [ + "BlankCommonBlock" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpPresentModifier::Value": [ + "Present" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpRefModifier::Value": [ + "Ref_Ptee", + "Ref_Ptr", + "Ref_Ptr_Ptee" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpSelfModifier::Value": [ + "Self" + ], + "Fortran::parser::OmpSeverityClause::SevLevel": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpThreadsetClause::ThreadsetPolicy": [ + "Omp_Pool", + "Omp_Team" + ], + "Fortran::parser::OmpTraitSelectorName::Value": [ + "Arch", + "Atomic_Default_Mem_Order", + "Condition", + "Device_Num", + "Extension", + "Isa", + "Kind", + "Requires", + "Simd", + "Uid", + "Vendor" + ], + "Fortran::parser::OmpTraitSetSelectorName::Value": [ + "Construct", + "Device", + "Implementation", + "Target_Device", + "User" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpxHoldModifier::Value": [ + "Ompx_Hold" + ], + "Fortran::parser::ProcedureStmt::Kind": [ + "ModuleProcedure", + "Procedure" + ], + "Fortran::parser::SavedEntity::Kind": [ + "Entity", + "Common" + ], + "Fortran::parser::StopStmt::Kind": [ + "Stop", + "ErrorStop" + ], + "Fortran::parser::UseStmt::ModuleNature": [ + "Intrinsic", + "Non_Intrinsic" + ] + } +} From 20296eb5bb7d612429919397667407e693d568bb Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 7 Jul 2026 22:47:08 +0100 Subject: [PATCH 016/260] Add support for leading comments --- .../fe/specs/fortran/ast/nodes/stmt/Stmt.java | 26 ++++++++++++------- .../fortran/parser/FortranJsonParser.java | 12 ++++++--- .../parser/processors/StmtProcessors.java | 11 +++++--- 3 files changed, 33 insertions(+), 16 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java index 999e8a46..060f0deb 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java @@ -15,7 +15,8 @@ import java.util.stream.Collectors; public abstract class Stmt extends FortranNode { - public static final DataKey> COMMENTS = KeyFactory.list("comments", String.class); + public static final DataKey> LEADING_COMMENTS = KeyFactory.list("leading_comments", String.class); + public static final DataKey> TRAILING_COMMENT = KeyFactory.optional("trailing_comment"); public Stmt(DataStore data, Collection children) { super(data, children); @@ -27,8 +28,12 @@ public Optional getLabel() { return SpecsCollections.toOptional(labelDecls); } - public List getComments() { - return get(COMMENTS); + public List getLeadingComments() { + return get(LEADING_COMMENTS); + } + + public Optional getTrailingComment() { + return get(TRAILING_COMMENT); } public String getStmtCode() { @@ -40,15 +45,18 @@ public String getStmtCode() { public final String getCode() { var labelPrefix = getLabel().map(label -> label.getCode() + " ").orElse(""); - var comments = getComments(); - SpecsCheck.checkArgument(comments != null, () -> "Comment array not initialized in node of class \"" - + getClass() + "\". Make sure you call the method StmtProcessors::stmt() on the processor for this " - + "node kind to initialize comments and labels."); + var leadingComments = getLeadingComments(); + SpecsCheck.checkArgument(leadingComments != null, () -> "Leading comment array not initialized in " + + "node of class \"" + getClass() + "\". Make sure you call the method StmtProcessors::stmt() on the " + + "processor for this node kind to initialize comments and labels."); + + var trailingComment = getTrailingComment(); - var commentsPrefix = comments.stream() + var commentPrefix = leadingComments.stream() .map(comment -> comment + ln()) .collect(Collectors.joining()); + var commentSuffix = trailingComment.map(comment -> " " + comment).orElse(""); - return commentsPrefix + labelPrefix + getStmtCode(); + return commentPrefix + labelPrefix + getStmtCode() + commentSuffix; } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java index 40fdd95e..78a28fb5 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java @@ -159,11 +159,17 @@ private void parseComments(JsonReader reader) { private void processCommentData(Map commentData) { var content = commentData.get("text").toString(); var stmtId = commentData.get("stmtId").toString(); + var trailing = commentData.get("trailing").toString(); var stmtAttrs = attributes.get(stmtId); - stmtAttrs.putIfAbsent("comments", new ArrayList<>()); - var stmtComments = (List) stmtAttrs.get("comments"); - stmtComments.add(content); + + if (trailing.equals("false")) { + stmtAttrs.putIfAbsent("leadingComments", new ArrayList<>()); + var stmtComments = (List) stmtAttrs.get("leadingComments"); + stmtComments.add(content); + } else { + stmtAttrs.put("trailingComment", content); + } } /** diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 9c8bef01..52f46bc6 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -34,13 +34,16 @@ public void stmt(Stmt stmt) { } public void stmtWithAttrs(Stmt stmt, FlangAttributes attrs) { - if (attrs.has("comments")) { - var comments = attrs.getStringList("comments"); - stmt.set(Stmt.COMMENTS, comments); + if (attrs.has("leadingComments")) { + var leadingComments = attrs.getStringList("leadingComments"); + stmt.set(Stmt.LEADING_COMMENTS, leadingComments); } else { - stmt.set(Stmt.COMMENTS, List.of()); + stmt.set(Stmt.LEADING_COMMENTS, List.of()); } + var trailingComment = attrs.getOptionalString("trailingComment"); + stmt.set(Stmt.TRAILING_COMMENT, trailingComment); + var labelOpt = attrs.getOptionalString("label"); labelOpt.ifPresent(label -> { var labelDecl = factory().labelDecl(Integer.parseInt(label)); From e0e4f304891b7324b80cc2a821a21bd56eaf0f9d Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 7 Jul 2026 22:57:16 +0100 Subject: [PATCH 017/260] Add support for program final comments --- .../fortran/ast/nodes/program/FortranFile.java | 16 ++++++++++++++-- .../specs/fortran/parser/processors/Nodes.java | 2 +- .../parser/processors/ProgramProcessors.java | 12 +++++++++++- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java index fe9728b9..7495ddb8 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java @@ -33,6 +33,9 @@ public class FortranFile extends FortranNode { */ public static final DataKey INPUT_SOURCE_PATH = KeyFactory.string("inputSourcePath"); + // Final comments of the program (which are, therefore, not associated with any statement) + public static final DataKey> FINAL_COMMENTS = KeyFactory.list("finalComments", String.class); + public FortranFile(DataStore data, Collection children) { super(data, children); } @@ -41,13 +44,22 @@ public List getProgramUnits() { return getChildren(ProgramUnit.class); } + public List getFinalComments() { + return get(FINAL_COMMENTS); + } + @Override public String getCode() { + var finalComments = getFinalComments(); + var commentSuffix = finalComments.stream() + .map(comment -> comment + ln()) + .collect(Collectors.joining()); - // Print each program unit - return getProgramUnits().stream() + var programUnitsCode = getProgramUnits().stream() .map(ProgramUnit::getCode) .collect(Collectors.joining("\n")); + return programUnitsCode + commentSuffix; + } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 4f107dfb..e362dc9c 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -52,7 +52,7 @@ public Nodes(FortranJsonResult data) { this.processors = new ConsumerClassMap<>(); var p = new ProgramProcessors(data); - processors.put(FortranFile.class, p::program); + processors.put(FortranFile.class, p::fortranFile); processors.put(MainProgram.class, p::mainProgram); processors.put(Specification.class, p::specification); processors.put(Execution.class, p::execution); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java index 5e4bfd87..eaa2f8f7 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java @@ -7,6 +7,8 @@ import pt.up.fe.specs.fortran.parser.FortranJsonResult; import pt.up.fe.specs.util.SpecsIo; +import java.util.List; + public class ProgramProcessors extends ANodeProcessor { @@ -14,7 +16,7 @@ public ProgramProcessors(FortranJsonResult data) { super(data); } - public void program(FortranFile fortranFile) { + public void fortranFile(FortranFile fortranFile) { fortranFile.setChildren(getChildren(fortranFile, FlangName.PROGRAM_UNIT)); var lastParsedFile = fortranFile.get(FortranNode.CONTEXT).get(FortranContext.LAST_PARSED_FILE).orElse(null); @@ -27,6 +29,14 @@ public void program(FortranFile fortranFile) { fortranFile.set(FortranFile.FILE_NAME, fileName); fortranFile.set(FortranFile.FOLDER_NAME, lastParsedFile.getParent()); } + + // The JSON parsing assumes this node is also a statement, which is the reason for the name of the key + if (attributes(fortranFile).has("leadingComments")) { + var finalComments = attributes(fortranFile).getStringList("leadingComments"); + fortranFile.set(FortranFile.FINAL_COMMENTS, finalComments); + } else { + fortranFile.set(FortranFile.FINAL_COMMENTS, List.of()); + } } public void mainProgram(MainProgram mainProgram) { From 24bd4dbc0eab5ff6a2022beefec581c8304e2fda Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 7 Jul 2026 23:05:41 +0100 Subject: [PATCH 018/260] Update comment test --- .../fortran/parser/comment.expected.f90 | 6 +- .../resources-test/fortran/parser/comment.f90 | 2 +- .../fortran/parser/comment.json | 104 +++++++++--------- 3 files changed, 56 insertions(+), 56 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/comment.expected.f90 b/FortranParser/resources-test/fortran/parser/comment.expected.f90 index e875edbf..66e66f46 100644 --- a/FortranParser/resources-test/fortran/parser/comment.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/comment.expected.f90 @@ -1,6 +1,6 @@ ! This is a \comment -PROGRAM hello +PROGRAM HELLO ! This is "another comment" - PRINT *, "Hello, World!" ! This is a trailing comment -END PROGRAM hello + PRINT *, "Hello, ""World!""" ! This is a trailing comment +END PROGRAM HELLO ! This is a final comment \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/comment.f90 b/FortranParser/resources-test/fortran/parser/comment.f90 index ef02a68e..66e66f46 100644 --- a/FortranParser/resources-test/fortran/parser/comment.f90 +++ b/FortranParser/resources-test/fortran/parser/comment.f90 @@ -1,6 +1,6 @@ ! This is a \comment PROGRAM HELLO ! This is "another comment" - PRINT *, "Hello, World!" ! This is a trailing comment + PRINT *, "Hello, ""World!""" ! This is a trailing comment END PROGRAM HELLO ! This is a final comment \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/comment.json b/FortranParser/resources-test/fortran/parser/comment.json index b39d9db9..7840b7e5 100644 --- a/FortranParser/resources-test/fortran/parser/comment.json +++ b/FortranParser/resources-test/fortran/parser/comment.json @@ -1,139 +1,139 @@ { "nodes": [ { - "id": "0x556443ab7f00-Program", + "id": "0x564f41da5f00-Program", "ProgramUnit": [ - "0x556443aecb50-ProgramUnit" + "0x564f41ddab50-ProgramUnit" ] }, { - "id": "0x556443aecb50-ProgramUnit", + "id": "0x564f41ddab50-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x556443aead30-MainProgram" + "MainProgram": "0x564f41dd8d30-MainProgram" }, { - "id": "0x556443aead30-MainProgram", - "Statement": "0x556443aeae78-Statement", - "SpecificationPart": "0x556443aeadd0-SpecificationPart", - "ExecutionPart": "0x556443aeadb8-ExecutionPart", - "Statement": "0x556443aead30-Statement" + "id": "0x564f41dd8d30-MainProgram", + "Statement": "0x564f41dd8e78-Statement", + "SpecificationPart": "0x564f41dd8dd0-SpecificationPart", + "ExecutionPart": "0x564f41dd8db8-ExecutionPart", + "Statement": "0x564f41dd8d30-Statement" }, { - "id": "0x556443aeae78-Statement", - "statement": "0x556443aeae88-ProgramStmt", + "id": "0x564f41dd8e78-Statement", + "statement": "0x564f41dd8e88-ProgramStmt", "source": "program HELLO" }, { - "id": "0x556443aeae88-ProgramStmt", - "Name": "0x556443aeae88-Name" + "id": "0x564f41dd8e88-ProgramStmt", + "Name": "0x564f41dd8e88-Name" }, { - "id": "0x556443aeae88-Name", + "id": "0x564f41dd8e88-Name", "source": "HELLO" }, { - "id": "0x556443aeadd0-SpecificationPart", - "ImplicitPart": "0x556443aeade8-ImplicitPart" + "id": "0x564f41dd8dd0-SpecificationPart", + "ImplicitPart": "0x564f41dd8de8-ImplicitPart" }, { - "id": "0x556443aeade8-ImplicitPart" + "id": "0x564f41dd8de8-ImplicitPart" }, { - "id": "0x556443aeadb8-ExecutionPart", + "id": "0x564f41dd8db8-ExecutionPart", "ExecutionPartConstruct": [ - "0x556443af5120-ExecutionPartConstruct" + "0x564f41de3120-ExecutionPartConstruct" ] }, { - "id": "0x556443aeadb8-ExecutionPartConstruct" + "id": "0x564f41dd8db8-ExecutionPartConstruct" }, { - "id": "0x556443af5120-ExecutionPartConstruct", + "id": "0x564f41de3120-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x556443af5120-ExecutableConstruct" + "ExecutableConstruct": "0x564f41de3120-ExecutableConstruct" }, { - "id": "0x556443af5120-ExecutableConstruct", + "id": "0x564f41de3120-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x556443af5120-Statement" + "Statement": "0x564f41de3120-Statement" }, { - "id": "0x556443af5120-Statement", - "statement": "0x556443af5130-ActionStmt", - "source": "print *, \"Hello, World!\"" + "id": "0x564f41de3120-Statement", + "statement": "0x564f41de3130-ActionStmt", + "source": "print *, \"Hello, \"\"World!\"\"\"" }, { - "id": "0x556443af5130-ActionStmt", + "id": "0x564f41de3130-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x556443af8190-PrintStmt" + "PrintStmt": "0x564f41de6190-PrintStmt" }, { - "id": "0x556443af8190-PrintStmt", - "Format": "0x556443af81a8-Format", + "id": "0x564f41de6190-PrintStmt", + "Format": "0x564f41de61a8-Format", "OutputItem": [ - "0x556443af8040-OutputItem" + "0x564f41de6040-OutputItem" ] }, { - "id": "0x556443af81a8-Format", + "id": "0x564f41de61a8-Format", "variantKey": "Star", - "Star": "0x556443af81a8-Star" + "Star": "0x564f41de61a8-Star" }, { - "id": "0x556443af81a8-Star" + "id": "0x564f41de61a8-Star" }, { - "id": "0x556443af8040-OutputItem", + "id": "0x564f41de6040-OutputItem", "variantKey": "Expr", - "Expr": "0x556443af8040-Expr" + "Expr": "0x564f41de6040-Expr" }, { - "id": "0x556443af8040-Expr", + "id": "0x564f41de6040-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x556443af8060-LiteralConstant" + "LiteralConstant": "0x564f41de6060-LiteralConstant" }, { - "id": "0x556443af8060-LiteralConstant", + "id": "0x564f41de6060-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x556443af8060-CharLiteralConstant" + "CharLiteralConstant": "0x564f41de6060-CharLiteralConstant" }, { - "id": "0x556443af8060-CharLiteralConstant", - "string": "Hello, World!" + "id": "0x564f41de6060-CharLiteralConstant", + "string": "Hello, \"World!\"" }, { - "id": "0x556443aead30-Statement", - "statement": "0x556443aead40-EndProgramStmt", + "id": "0x564f41dd8d30-Statement", + "statement": "0x564f41dd8d40-EndProgramStmt", "source": "end program HELLO" }, { - "id": "0x556443aead40-EndProgramStmt", - "Name": "0x556443aead40-Name" + "id": "0x564f41dd8d40-EndProgramStmt", + "Name": "0x564f41dd8d40-Name" }, { - "id": "0x556443aead40-Name", + "id": "0x564f41dd8d40-Name", "source": "HELLO" } ], "comments": [ { "text": "! This is a \\comment", - "stmtId": "0x556443aeae78-Statement", + "stmtId": "0x564f41dd8e78-Statement", "trailing": false }, { "text": "! This is \"another comment\"", - "stmtId": "0x556443af5120-Statement", + "stmtId": "0x564f41de3120-Statement", "trailing": false }, { "text": "! This is a trailing comment", - "stmtId": "0x556443af5120-Statement", + "stmtId": "0x564f41de3120-Statement", "trailing": true }, { "text": "! This is a final comment", - "stmtId": "0x556443ab7f00-Program", + "stmtId": "0x564f41da5f00-Program", "trailing": false } ], From dcd108082ed1a00ad90e9ecce6e8087c6a4d1902 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 7 Jul 2026 23:17:43 +0100 Subject: [PATCH 019/260] Regenerate dumps --- .../parser/arrays/array_implied_do.json | 1421 +-- .../fortran/parser/declaration.json | 117 +- .../resources-test/fortran/parser/do.json | 543 +- .../resources-test/fortran/parser/hello.json | 259 +- .../fortran/parser/polybench/3mm.json | 8460 +++++++++-------- 5 files changed, 5417 insertions(+), 5383 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/arrays/array_implied_do.json b/FortranParser/resources-test/fortran/parser/arrays/array_implied_do.json index f77c0863..8ffdf375 100644 --- a/FortranParser/resources-test/fortran/parser/arrays/array_implied_do.json +++ b/FortranParser/resources-test/fortran/parser/arrays/array_implied_do.json @@ -1,1768 +1,1775 @@ { "nodes": [ { - "id": "0x564807c3bf00-Program", + "id": "0x555653744f00-Program", "ProgramUnit": [ - "0x564807c77e90-ProgramUnit" + "0x555653780e90-ProgramUnit" ] }, { - "id": "0x564807c77e90-ProgramUnit", + "id": "0x555653780e90-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x564807c70800-MainProgram" + "MainProgram": "0x555653779800-MainProgram" }, { - "id": "0x564807c70800-MainProgram", - "Statement": "0x564807c70948-Statement", - "SpecificationPart": "0x564807c708a0-SpecificationPart", - "ExecutionPart": "0x564807c70888-ExecutionPart", - "Statement": "0x564807c70800-Statement" + "id": "0x555653779800-MainProgram", + "Statement": "0x555653779948-Statement", + "SpecificationPart": "0x5556537798a0-SpecificationPart", + "ExecutionPart": "0x555653779888-ExecutionPart", + "Statement": "0x555653779800-Statement" }, { - "id": "0x564807c70948-Statement", - "statement": "0x564807c70958-ProgramStmt", + "id": "0x555653779948-Statement", + "statement": "0x555653779958-ProgramStmt", "source": "program TEST_IMPLIED_DO" }, { - "id": "0x564807c70958-ProgramStmt", - "Name": "0x564807c70958-Name" + "id": "0x555653779958-ProgramStmt", + "Name": "0x555653779958-Name" }, { - "id": "0x564807c70958-Name", + "id": "0x555653779958-Name", "source": "TEST_IMPLIED_DO" }, { - "id": "0x564807c708a0-SpecificationPart", - "ImplicitPart": "0x564807c708b8-ImplicitPart", + "id": "0x5556537798a0-SpecificationPart", + "ImplicitPart": "0x5556537798b8-ImplicitPart", "DeclarationConstruct": [ - "0x564807c49170-DeclarationConstruct", - "0x564807c48da0-DeclarationConstruct", - "0x564807c671d0-DeclarationConstruct", - "0x564807c67480-DeclarationConstruct", - "0x564807c67730-DeclarationConstruct" + "0x555653752170-DeclarationConstruct", + "0x555653751da0-DeclarationConstruct", + "0x5556537701d0-DeclarationConstruct", + "0x555653770480-DeclarationConstruct", + "0x555653770730-DeclarationConstruct" ] }, { - "id": "0x564807c708b8-ImplicitPart" + "id": "0x5556537798b8-ImplicitPart" }, { - "id": "0x564807c49170-DeclarationConstruct", + "id": "0x555653752170-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x564807c49170-SpecificationConstruct" + "SpecificationConstruct": "0x555653752170-SpecificationConstruct" }, { - "id": "0x564807c49170-SpecificationConstruct", + "id": "0x555653752170-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x564807c49170-Statement" + "Statement": "0x555653752170-Statement" }, { - "id": "0x564807c49170-Statement", - "statement": "0x564807c78570-TypeDeclarationStmt", + "id": "0x555653752170-Statement", + "statement": "0x555653781570-TypeDeclarationStmt", "source": "integer :: i, j" }, { - "id": "0x564807c78570-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x564807c785a0-DeclarationTypeSpec", + "id": "0x555653781570-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5556537815a0-DeclarationTypeSpec", "EntityDecl": [ - "0x564807c66880-EntityDecl", - "0x564807c66790-EntityDecl" + "0x55565376f880-EntityDecl", + "0x55565376f790-EntityDecl" ] }, { - "id": "0x564807c785a0-DeclarationTypeSpec", + "id": "0x5556537815a0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x564807c785a0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5556537815a0-IntrinsicTypeSpec" }, { - "id": "0x564807c785a0-IntrinsicTypeSpec", + "id": "0x5556537815a0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x564807c785a0-IntegerTypeSpec" + "IntegerTypeSpec": "0x5556537815a0-IntegerTypeSpec" }, { - "id": "0x564807c785a0-IntegerTypeSpec" + "id": "0x5556537815a0-IntegerTypeSpec" }, { - "id": "0x564807c66880-EntityDecl", - "Name": "0x564807c66938-Name" + "id": "0x55565376f880-EntityDecl", + "Name": "0x55565376f938-Name" }, { - "id": "0x564807c66938-Name", + "id": "0x55565376f938-Name", "source": "i" }, { - "id": "0x564807c66790-EntityDecl", - "Name": "0x564807c66848-Name" + "id": "0x55565376f790-EntityDecl", + "Name": "0x55565376f848-Name" }, { - "id": "0x564807c66848-Name", + "id": "0x55565376f848-Name", "source": "j" }, { - "id": "0x564807c48da0-DeclarationConstruct", + "id": "0x555653751da0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x564807c48da0-SpecificationConstruct" + "SpecificationConstruct": "0x555653751da0-SpecificationConstruct" }, { - "id": "0x564807c48da0-SpecificationConstruct", + "id": "0x555653751da0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x564807c48da0-Statement" + "Statement": "0x555653751da0-Statement" }, { - "id": "0x564807c48da0-Statement", - "statement": "0x564807c66960-TypeDeclarationStmt", + "id": "0x555653751da0-Statement", + "statement": "0x55565376f960-TypeDeclarationStmt", "source": "integer, dimension(5) :: arr1, arr2, arr3" }, { - "id": "0x564807c66960-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x564807c66990-DeclarationTypeSpec", + "id": "0x55565376f960-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55565376f990-DeclarationTypeSpec", "AttrSpec": [ - "0x564807c7fa00-AttrSpec" + "0x555653788a00-AttrSpec" ], "EntityDecl": [ - "0x564807c66cc0-EntityDecl", - "0x564807c66ae0-EntityDecl", - "0x564807c66bd0-EntityDecl" + "0x55565376fcc0-EntityDecl", + "0x55565376fae0-EntityDecl", + "0x55565376fbd0-EntityDecl" ] }, { - "id": "0x564807c66990-DeclarationTypeSpec", + "id": "0x55565376f990-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x564807c66990-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55565376f990-IntrinsicTypeSpec" }, { - "id": "0x564807c66990-IntrinsicTypeSpec", + "id": "0x55565376f990-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x564807c66990-IntegerTypeSpec" + "IntegerTypeSpec": "0x55565376f990-IntegerTypeSpec" }, { - "id": "0x564807c66990-IntegerTypeSpec" + "id": "0x55565376f990-IntegerTypeSpec" }, { - "id": "0x564807c7fa00-AttrSpec", + "id": "0x555653788a00-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x564807c7fa00-ArraySpec" + "ArraySpec": "0x555653788a00-ArraySpec" }, { - "id": "0x564807c7fa00-ArraySpec", + "id": "0x555653788a00-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x564807c77cd0-ExplicitShapeSpec" + "0x555653780cd0-ExplicitShapeSpec" ] }, { - "id": "0x564807c77cd0-ExplicitShapeSpec", - "upper_bound": "0x564807c77cd0-SpecificationExpr" + "id": "0x555653780cd0-ExplicitShapeSpec", + "upper_bound": "0x555653780cd0-SpecificationExpr" }, { - "id": "0x564807c77cd0-SpecificationExpr", - "Expr": "0x564807bdb790-Expr" + "id": "0x555653780cd0-SpecificationExpr", + "Expr": "0x5556536e4790-Expr" }, { - "id": "0x564807bdb790-Expr", + "id": "0x5556536e4790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564807bdb7b0-LiteralConstant" + "LiteralConstant": "0x5556536e47b0-LiteralConstant" }, { - "id": "0x564807bdb7b0-LiteralConstant", + "id": "0x5556536e47b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564807bdb7b0-IntLiteralConstant" + "IntLiteralConstant": "0x5556536e47b0-IntLiteralConstant" }, { - "id": "0x564807bdb7b0-IntLiteralConstant", + "id": "0x5556536e47b0-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x564807c66cc0-EntityDecl", - "Name": "0x564807c66d78-Name" + "id": "0x55565376fcc0-EntityDecl", + "Name": "0x55565376fd78-Name" }, { - "id": "0x564807c66d78-Name", + "id": "0x55565376fd78-Name", "source": "arr1" }, { - "id": "0x564807c66ae0-EntityDecl", - "Name": "0x564807c66b98-Name" + "id": "0x55565376fae0-EntityDecl", + "Name": "0x55565376fb98-Name" }, { - "id": "0x564807c66b98-Name", + "id": "0x55565376fb98-Name", "source": "arr2" }, { - "id": "0x564807c66bd0-EntityDecl", - "Name": "0x564807c66c88-Name" + "id": "0x55565376fbd0-EntityDecl", + "Name": "0x55565376fc88-Name" }, { - "id": "0x564807c66c88-Name", + "id": "0x55565376fc88-Name", "source": "arr3" }, { - "id": "0x564807c671d0-DeclarationConstruct", + "id": "0x5556537701d0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x564807c671d0-SpecificationConstruct" + "SpecificationConstruct": "0x5556537701d0-SpecificationConstruct" }, { - "id": "0x564807c671d0-SpecificationConstruct", + "id": "0x5556537701d0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x564807c671d0-Statement" + "Statement": "0x5556537701d0-Statement" }, { - "id": "0x564807c671d0-Statement", - "statement": "0x564807c669e0-TypeDeclarationStmt", + "id": "0x5556537701d0-Statement", + "statement": "0x55565376f9e0-TypeDeclarationStmt", "source": "integer, dimension(10) :: arr4, arr5" }, { - "id": "0x564807c669e0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x564807c66a10-DeclarationTypeSpec", + "id": "0x55565376f9e0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55565376fa10-DeclarationTypeSpec", "AttrSpec": [ - "0x564807c78990-AttrSpec" + "0x555653781990-AttrSpec" ], "EntityDecl": [ - "0x564807c670e0-EntityDecl", - "0x564807c66ff0-EntityDecl" + "0x5556537700e0-EntityDecl", + "0x55565376fff0-EntityDecl" ] }, { - "id": "0x564807c66a10-DeclarationTypeSpec", + "id": "0x55565376fa10-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x564807c66a10-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55565376fa10-IntrinsicTypeSpec" }, { - "id": "0x564807c66a10-IntrinsicTypeSpec", + "id": "0x55565376fa10-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x564807c66a10-IntegerTypeSpec" + "IntegerTypeSpec": "0x55565376fa10-IntegerTypeSpec" }, { - "id": "0x564807c66a10-IntegerTypeSpec" + "id": "0x55565376fa10-IntegerTypeSpec" }, { - "id": "0x564807c78990-AttrSpec", + "id": "0x555653781990-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x564807c78990-ArraySpec" + "ArraySpec": "0x555653781990-ArraySpec" }, { - "id": "0x564807c78990-ArraySpec", + "id": "0x555653781990-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x564807c77d00-ExplicitShapeSpec" + "0x555653780d00-ExplicitShapeSpec" ] }, { - "id": "0x564807c77d00-ExplicitShapeSpec", - "upper_bound": "0x564807c77d00-SpecificationExpr" + "id": "0x555653780d00-ExplicitShapeSpec", + "upper_bound": "0x555653780d00-SpecificationExpr" }, { - "id": "0x564807c77d00-SpecificationExpr", - "Expr": "0x564807c66f00-Expr" + "id": "0x555653780d00-SpecificationExpr", + "Expr": "0x55565376ff00-Expr" }, { - "id": "0x564807c66f00-Expr", + "id": "0x55565376ff00-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564807c66f20-LiteralConstant" + "LiteralConstant": "0x55565376ff20-LiteralConstant" }, { - "id": "0x564807c66f20-LiteralConstant", + "id": "0x55565376ff20-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564807c66f20-IntLiteralConstant" + "IntLiteralConstant": "0x55565376ff20-IntLiteralConstant" }, { - "id": "0x564807c66f20-IntLiteralConstant", + "id": "0x55565376ff20-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x564807c670e0-EntityDecl", - "Name": "0x564807c67198-Name" + "id": "0x5556537700e0-EntityDecl", + "Name": "0x555653770198-Name" }, { - "id": "0x564807c67198-Name", + "id": "0x555653770198-Name", "source": "arr4" }, { - "id": "0x564807c66ff0-EntityDecl", - "Name": "0x564807c670a8-Name" + "id": "0x55565376fff0-EntityDecl", + "Name": "0x5556537700a8-Name" }, { - "id": "0x564807c670a8-Name", + "id": "0x5556537700a8-Name", "source": "arr5" }, { - "id": "0x564807c67480-DeclarationConstruct", + "id": "0x555653770480-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x564807c67480-SpecificationConstruct" + "SpecificationConstruct": "0x555653770480-SpecificationConstruct" }, { - "id": "0x564807c67480-SpecificationConstruct", + "id": "0x555653770480-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x564807c67480-Statement" + "Statement": "0x555653770480-Statement" }, { - "id": "0x564807c67480-Statement", - "statement": "0x564807c66e80-TypeDeclarationStmt", + "id": "0x555653770480-Statement", + "statement": "0x55565376fe80-TypeDeclarationStmt", "source": "integer, dimension(9) :: arr6" }, { - "id": "0x564807c66e80-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x564807c66eb0-DeclarationTypeSpec", + "id": "0x55565376fe80-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55565376feb0-DeclarationTypeSpec", "AttrSpec": [ - "0x564807c79500-AttrSpec" + "0x555653782500-AttrSpec" ], "EntityDecl": [ - "0x564807c67390-EntityDecl" + "0x555653770390-EntityDecl" ] }, { - "id": "0x564807c66eb0-DeclarationTypeSpec", + "id": "0x55565376feb0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x564807c66eb0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55565376feb0-IntrinsicTypeSpec" }, { - "id": "0x564807c66eb0-IntrinsicTypeSpec", + "id": "0x55565376feb0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x564807c66eb0-IntegerTypeSpec" + "IntegerTypeSpec": "0x55565376feb0-IntegerTypeSpec" }, { - "id": "0x564807c66eb0-IntegerTypeSpec" + "id": "0x55565376feb0-IntegerTypeSpec" }, { - "id": "0x564807c79500-AttrSpec", + "id": "0x555653782500-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x564807c79500-ArraySpec" + "ArraySpec": "0x555653782500-ArraySpec" }, { - "id": "0x564807c79500-ArraySpec", + "id": "0x555653782500-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x564807c77d30-ExplicitShapeSpec" + "0x555653780d30-ExplicitShapeSpec" ] }, { - "id": "0x564807c77d30-ExplicitShapeSpec", - "upper_bound": "0x564807c77d30-SpecificationExpr" + "id": "0x555653780d30-ExplicitShapeSpec", + "upper_bound": "0x555653780d30-SpecificationExpr" }, { - "id": "0x564807c77d30-SpecificationExpr", - "Expr": "0x564807c672a0-Expr" + "id": "0x555653780d30-SpecificationExpr", + "Expr": "0x5556537702a0-Expr" }, { - "id": "0x564807c672a0-Expr", + "id": "0x5556537702a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564807c672c0-LiteralConstant" + "LiteralConstant": "0x5556537702c0-LiteralConstant" }, { - "id": "0x564807c672c0-LiteralConstant", + "id": "0x5556537702c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564807c672c0-IntLiteralConstant" + "IntLiteralConstant": "0x5556537702c0-IntLiteralConstant" }, { - "id": "0x564807c672c0-IntLiteralConstant", + "id": "0x5556537702c0-IntLiteralConstant", "CharBlock": "9" }, { - "id": "0x564807c67390-EntityDecl", - "Name": "0x564807c67448-Name" + "id": "0x555653770390-EntityDecl", + "Name": "0x555653770448-Name" }, { - "id": "0x564807c67448-Name", + "id": "0x555653770448-Name", "source": "arr6" }, { - "id": "0x564807c67730-DeclarationConstruct", + "id": "0x555653770730-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x564807c67730-SpecificationConstruct" + "SpecificationConstruct": "0x555653770730-SpecificationConstruct" }, { - "id": "0x564807c67730-SpecificationConstruct", + "id": "0x555653770730-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x564807c67730-Statement" + "Statement": "0x555653770730-Statement" }, { - "id": "0x564807c67730-Statement", - "statement": "0x564807c67220-TypeDeclarationStmt", + "id": "0x555653770730-Statement", + "statement": "0x555653770220-TypeDeclarationStmt", "source": "integer, dimension(15) :: arr7" }, { - "id": "0x564807c67220-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x564807c67250-DeclarationTypeSpec", + "id": "0x555653770220-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x555653770250-DeclarationTypeSpec", "AttrSpec": [ - "0x564807c72cc0-AttrSpec" + "0x55565377bcc0-AttrSpec" ], "EntityDecl": [ - "0x564807c67640-EntityDecl" + "0x555653770640-EntityDecl" ] }, { - "id": "0x564807c67250-DeclarationTypeSpec", + "id": "0x555653770250-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x564807c67250-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x555653770250-IntrinsicTypeSpec" }, { - "id": "0x564807c67250-IntrinsicTypeSpec", + "id": "0x555653770250-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x564807c67250-IntegerTypeSpec" + "IntegerTypeSpec": "0x555653770250-IntegerTypeSpec" }, { - "id": "0x564807c67250-IntegerTypeSpec" + "id": "0x555653770250-IntegerTypeSpec" }, { - "id": "0x564807c72cc0-AttrSpec", + "id": "0x55565377bcc0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x564807c72cc0-ArraySpec" + "ArraySpec": "0x55565377bcc0-ArraySpec" }, { - "id": "0x564807c72cc0-ArraySpec", + "id": "0x55565377bcc0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x564807c77d80-ExplicitShapeSpec" + "0x555653780d80-ExplicitShapeSpec" ] }, { - "id": "0x564807c77d80-ExplicitShapeSpec", - "upper_bound": "0x564807c77d80-SpecificationExpr" + "id": "0x555653780d80-ExplicitShapeSpec", + "upper_bound": "0x555653780d80-SpecificationExpr" }, { - "id": "0x564807c77d80-SpecificationExpr", - "Expr": "0x564807c67550-Expr" + "id": "0x555653780d80-SpecificationExpr", + "Expr": "0x555653770550-Expr" }, { - "id": "0x564807c67550-Expr", + "id": "0x555653770550-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564807c67570-LiteralConstant" + "LiteralConstant": "0x555653770570-LiteralConstant" }, { - "id": "0x564807c67570-LiteralConstant", + "id": "0x555653770570-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564807c67570-IntLiteralConstant" + "IntLiteralConstant": "0x555653770570-IntLiteralConstant" }, { - "id": "0x564807c67570-IntLiteralConstant", + "id": "0x555653770570-IntLiteralConstant", "CharBlock": "15" }, { - "id": "0x564807c67640-EntityDecl", - "Name": "0x564807c676f8-Name" + "id": "0x555653770640-EntityDecl", + "Name": "0x5556537706f8-Name" }, { - "id": "0x564807c676f8-Name", + "id": "0x5556537706f8-Name", "source": "arr7" }, { - "id": "0x564807c70888-ExecutionPart", + "id": "0x555653779888-ExecutionPart", "ExecutionPartConstruct": [ - "0x564807c69670-ExecutionPartConstruct", - "0x564807c69e40-ExecutionPartConstruct", - "0x564807c6a3f0-ExecutionPartConstruct", - "0x564807c6aca0-ExecutionPartConstruct", - "0x564807c6b330-ExecutionPartConstruct", - "0x564807c6ca10-ExecutionPartConstruct", - "0x564807c6d500-ExecutionPartConstruct" + "0x555653772670-ExecutionPartConstruct", + "0x555653772e40-ExecutionPartConstruct", + "0x5556537733f0-ExecutionPartConstruct", + "0x555653773ca0-ExecutionPartConstruct", + "0x555653774330-ExecutionPartConstruct", + "0x555653775a10-ExecutionPartConstruct", + "0x555653776500-ExecutionPartConstruct" ] }, { - "id": "0x564807c70888-ExecutionPartConstruct" + "id": "0x555653779888-ExecutionPartConstruct" }, { - "id": "0x564807c69670-ExecutionPartConstruct", + "id": "0x555653772670-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564807c69670-ExecutableConstruct" + "ExecutableConstruct": "0x555653772670-ExecutableConstruct" }, { - "id": "0x564807c69670-ExecutableConstruct", + "id": "0x555653772670-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x564807c69670-Statement" + "Statement": "0x555653772670-Statement" }, { - "id": "0x564807c69670-Statement", - "statement": "0x564807c69680-ActionStmt", + "id": "0x555653772670-Statement", + "statement": "0x555653772680-ActionStmt", "source": "arr1 = [(i, i = 1, 5)]" }, { - "id": "0x564807c69680-ActionStmt", + "id": "0x555653772680-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x564807c78ad0-AssignmentStmt" + "AssignmentStmt": "0x555653781ad0-AssignmentStmt" }, { - "id": "0x564807c78ad0-AssignmentStmt", - "Variable": "0x564807c78bb0-Variable", - "Expr": "0x564807c78ae0-Expr" + "id": "0x555653781ad0-AssignmentStmt", + "Variable": "0x555653781bb0-Variable", + "Expr": "0x555653781ae0-Expr" }, { - "id": "0x564807c78bb0-Variable", + "id": "0x555653781bb0-Variable", "variantKey": "Designator", - "Designator": "0x564807c67ec0-Designator" + "Designator": "0x555653770ec0-Designator" }, { - "id": "0x564807c67ec0-Designator", + "id": "0x555653770ec0-Designator", "variantKey": "DataRef", - "DataRef": "0x564807c67ed0-DataRef" + "DataRef": "0x555653770ed0-DataRef" }, { - "id": "0x564807c67ed0-DataRef", + "id": "0x555653770ed0-DataRef", "variantKey": "Name", - "Name": "0x564807c67ed0-Name" + "Name": "0x555653770ed0-Name" }, { - "id": "0x564807c67ed0-Name", + "id": "0x555653770ed0-Name", "source": "arr1" }, { - "id": "0x564807c78ae0-Expr", + "id": "0x555653781ae0-Expr", "variantKey": "ArrayConstructor", - "ArrayConstructor": "0x564807c78b00-ArrayConstructor" + "ArrayConstructor": "0x555653781b00-ArrayConstructor" }, { - "id": "0x564807c78b00-ArrayConstructor", - "AcSpec": "0x564807c78b00-AcSpec" + "id": "0x555653781b00-ArrayConstructor", + "AcSpec": "0x555653781b00-AcSpec" }, { - "id": "0x564807c78b00-AcSpec", + "id": "0x555653781b00-AcSpec", "values": [ - "0x564807c769e0-AcValue" + "0x55565377f9e0-AcValue" ] }, { - "id": "0x564807c769e0-AcValue", + "id": "0x55565377f9e0-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x564807c674d0-AcImpliedDo" + "AcImpliedDo": "0x5556537704d0-AcImpliedDo" }, { - "id": "0x564807c674d0-AcImpliedDo", + "id": "0x5556537704d0-AcImpliedDo", "AcValue": [ - "0x564807c770c0-AcValue" + "0x5556537800c0-AcValue" ], - "AcImpliedDoControl": "0x564807c674d0-AcImpliedDoControl" + "AcImpliedDoControl": "0x5556537704d0-AcImpliedDoControl" }, { - "id": "0x564807c770c0-AcValue", + "id": "0x5556537800c0-AcValue", "variantKey": "Expr", - "Expr": "0x564807c68e20-Expr" + "Expr": "0x555653771e20-Expr" }, { - "id": "0x564807c68e20-Expr", + "id": "0x555653771e20-Expr", "variantKey": "Designator", - "Designator": "0x564807c49100-Designator" + "Designator": "0x555653752100-Designator" }, { - "id": "0x564807c49100-Designator", + "id": "0x555653752100-Designator", "variantKey": "DataRef", - "DataRef": "0x564807c49110-DataRef" + "DataRef": "0x555653752110-DataRef" }, { - "id": "0x564807c49110-DataRef", + "id": "0x555653752110-DataRef", "variantKey": "Name", - "Name": "0x564807c49110-Name" + "Name": "0x555653752110-Name" }, { - "id": "0x564807c49110-Name", + "id": "0x555653752110-Name", "source": "i" }, { - "id": "0x564807c674d0-AcImpliedDoControl", - "value": "0x564807c674d0-LoopBounds" + "id": "0x5556537704d0-AcImpliedDoControl", + "value": "0x5556537704d0-LoopBounds" }, { - "id": "0x564807c674d0-LoopBounds", - "var": "0x564807c674d0-Name", - "lower": "0x564807c69350-Expr", - "upper": "0x564807c68d40-Expr" + "id": "0x5556537704d0-LoopBounds", + "var": "0x5556537704d0-Name", + "lower": "0x555653772350-Expr", + "upper": "0x555653771d40-Expr" }, { - "id": "0x564807c674d0-Name", + "id": "0x5556537704d0-Name", "source": "i" }, { - "id": "0x564807c69350-Expr", + "id": "0x555653772350-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564807c69370-LiteralConstant" + "LiteralConstant": "0x555653772370-LiteralConstant" }, { - "id": "0x564807c69370-LiteralConstant", + "id": "0x555653772370-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564807c69370-IntLiteralConstant" + "IntLiteralConstant": "0x555653772370-IntLiteralConstant" }, { - "id": "0x564807c69370-IntLiteralConstant", + "id": "0x555653772370-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x564807c68d40-Expr", + "id": "0x555653771d40-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564807c68d60-LiteralConstant" + "LiteralConstant": "0x555653771d60-LiteralConstant" }, { - "id": "0x564807c68d60-LiteralConstant", + "id": "0x555653771d60-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564807c68d60-IntLiteralConstant" + "IntLiteralConstant": "0x555653771d60-IntLiteralConstant" }, { - "id": "0x564807c68d60-IntLiteralConstant", + "id": "0x555653771d60-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x564807c69e40-ExecutionPartConstruct", + "id": "0x555653772e40-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564807c69e40-ExecutableConstruct" + "ExecutableConstruct": "0x555653772e40-ExecutableConstruct" }, { - "id": "0x564807c69e40-ExecutableConstruct", + "id": "0x555653772e40-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x564807c69e40-Statement" + "Statement": "0x555653772e40-Statement" }, { - "id": "0x564807c69e40-Statement", - "statement": "0x564807c69e50-ActionStmt", + "id": "0x555653772e40-Statement", + "statement": "0x555653772e50-ActionStmt", "source": "arr2 = [(i * 10, i = 1, 5)]" }, { - "id": "0x564807c69e50-ActionStmt", + "id": "0x555653772e50-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x564807c69cb0-AssignmentStmt" + "AssignmentStmt": "0x555653772cb0-AssignmentStmt" }, { - "id": "0x564807c69cb0-AssignmentStmt", - "Variable": "0x564807c69d90-Variable", - "Expr": "0x564807c69cc0-Expr" + "id": "0x555653772cb0-AssignmentStmt", + "Variable": "0x555653772d90-Variable", + "Expr": "0x555653772cc0-Expr" }, { - "id": "0x564807c69d90-Variable", + "id": "0x555653772d90-Variable", "variantKey": "Designator", - "Designator": "0x564807c68c70-Designator" + "Designator": "0x555653771c70-Designator" }, { - "id": "0x564807c68c70-Designator", + "id": "0x555653771c70-Designator", "variantKey": "DataRef", - "DataRef": "0x564807c68c80-DataRef" + "DataRef": "0x555653771c80-DataRef" }, { - "id": "0x564807c68c80-DataRef", + "id": "0x555653771c80-DataRef", "variantKey": "Name", - "Name": "0x564807c68c80-Name" + "Name": "0x555653771c80-Name" }, { - "id": "0x564807c68c80-Name", + "id": "0x555653771c80-Name", "source": "arr2" }, { - "id": "0x564807c69cc0-Expr", + "id": "0x555653772cc0-Expr", "variantKey": "ArrayConstructor", - "ArrayConstructor": "0x564807c69ce0-ArrayConstructor" + "ArrayConstructor": "0x555653772ce0-ArrayConstructor" }, { - "id": "0x564807c69ce0-ArrayConstructor", - "AcSpec": "0x564807c69ce0-AcSpec" + "id": "0x555653772ce0-ArrayConstructor", + "AcSpec": "0x555653772ce0-AcSpec" }, { - "id": "0x564807c69ce0-AcSpec", + "id": "0x555653772ce0-AcSpec", "values": [ - "0x564807c77580-AcValue" + "0x555653780580-AcValue" ] }, { - "id": "0x564807c77580-AcValue", + "id": "0x555653780580-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x564807c67800-AcImpliedDo" + "AcImpliedDo": "0x555653770800-AcImpliedDo" }, { - "id": "0x564807c67800-AcImpliedDo", + "id": "0x555653770800-AcImpliedDo", "AcValue": [ - "0x564807c77180-AcValue" + "0x555653780180-AcValue" ], - "AcImpliedDoControl": "0x564807c67800-AcImpliedDoControl" + "AcImpliedDoControl": "0x555653770800-AcImpliedDoControl" }, { - "id": "0x564807c77180-AcValue", + "id": "0x555653780180-AcValue", "variantKey": "Expr", - "Expr": "0x564807c69940-Expr" + "Expr": "0x555653772940-Expr" }, { - "id": "0x564807c69940-Expr", + "id": "0x555653772940-Expr", "variantKey": "Multiply", - "Multiply": "0x564807c69960-Multiply" + "Multiply": "0x555653772960-Multiply" }, { - "id": "0x564807c69960-Multiply", - "left": "0x564807c69860-Expr", - "right": "0x564807c683d0-Expr", + "id": "0x555653772960-Multiply", + "left": "0x555653772860-Expr", + "right": "0x5556537713d0-Expr", "op": "MULTIPLY" }, { - "id": "0x564807c69860-Expr", + "id": "0x555653772860-Expr", "variantKey": "Designator", - "Designator": "0x564807c69800-Designator" + "Designator": "0x555653772800-Designator" }, { - "id": "0x564807c69800-Designator", + "id": "0x555653772800-Designator", "variantKey": "DataRef", - "DataRef": "0x564807c69810-DataRef" + "DataRef": "0x555653772810-DataRef" }, { - "id": "0x564807c69810-DataRef", + "id": "0x555653772810-DataRef", "variantKey": "Name", - "Name": "0x564807c69810-Name" + "Name": "0x555653772810-Name" }, { - "id": "0x564807c69810-Name", + "id": "0x555653772810-Name", "source": "i" }, { - "id": "0x564807c683d0-Expr", + "id": "0x5556537713d0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564807c683f0-LiteralConstant" + "LiteralConstant": "0x5556537713f0-LiteralConstant" }, { - "id": "0x564807c683f0-LiteralConstant", + "id": "0x5556537713f0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564807c683f0-IntLiteralConstant" + "IntLiteralConstant": "0x5556537713f0-IntLiteralConstant" }, { - "id": "0x564807c683f0-IntLiteralConstant", + "id": "0x5556537713f0-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x564807c67800-AcImpliedDoControl", - "value": "0x564807c67800-LoopBounds" + "id": "0x555653770800-AcImpliedDoControl", + "value": "0x555653770800-LoopBounds" }, { - "id": "0x564807c67800-LoopBounds", - "var": "0x564807c67800-Name", - "lower": "0x564807c696c0-Expr", - "upper": "0x564807c69a80-Expr" + "id": "0x555653770800-LoopBounds", + "var": "0x555653770800-Name", + "lower": "0x5556537726c0-Expr", + "upper": "0x555653772a80-Expr" }, { - "id": "0x564807c67800-Name", + "id": "0x555653770800-Name", "source": "i" }, { - "id": "0x564807c696c0-Expr", + "id": "0x5556537726c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564807c696e0-LiteralConstant" + "LiteralConstant": "0x5556537726e0-LiteralConstant" }, { - "id": "0x564807c696e0-LiteralConstant", + "id": "0x5556537726e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564807c696e0-IntLiteralConstant" + "IntLiteralConstant": "0x5556537726e0-IntLiteralConstant" }, { - "id": "0x564807c696e0-IntLiteralConstant", + "id": "0x5556537726e0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x564807c69a80-Expr", + "id": "0x555653772a80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564807c69aa0-LiteralConstant" + "LiteralConstant": "0x555653772aa0-LiteralConstant" }, { - "id": "0x564807c69aa0-LiteralConstant", + "id": "0x555653772aa0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564807c69aa0-IntLiteralConstant" + "IntLiteralConstant": "0x555653772aa0-IntLiteralConstant" }, { - "id": "0x564807c69aa0-IntLiteralConstant", + "id": "0x555653772aa0-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x564807c6a3f0-ExecutionPartConstruct", + "id": "0x5556537733f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564807c6a3f0-ExecutableConstruct" + "ExecutableConstruct": "0x5556537733f0-ExecutableConstruct" }, { - "id": "0x564807c6a3f0-ExecutableConstruct", + "id": "0x5556537733f0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x564807c6a3f0-Statement" + "Statement": "0x5556537733f0-Statement" }, { - "id": "0x564807c6a3f0-Statement", - "statement": "0x564807c6a400-ActionStmt", + "id": "0x5556537733f0-Statement", + "statement": "0x555653773400-ActionStmt", "source": "arr3 = [(i, i = 1, 9, 2)]" }, { - "id": "0x564807c6a400-ActionStmt", + "id": "0x555653773400-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x564807c6a2d0-AssignmentStmt" + "AssignmentStmt": "0x5556537732d0-AssignmentStmt" }, { - "id": "0x564807c6a2d0-AssignmentStmt", - "Variable": "0x564807c6a3b0-Variable", - "Expr": "0x564807c6a2e0-Expr" + "id": "0x5556537732d0-AssignmentStmt", + "Variable": "0x5556537733b0-Variable", + "Expr": "0x5556537732e0-Expr" }, { - "id": "0x564807c6a3b0-Variable", + "id": "0x5556537733b0-Variable", "variantKey": "Designator", - "Designator": "0x564807c68a50-Designator" + "Designator": "0x555653771a50-Designator" }, { - "id": "0x564807c68a50-Designator", + "id": "0x555653771a50-Designator", "variantKey": "DataRef", - "DataRef": "0x564807c68a60-DataRef" + "DataRef": "0x555653771a60-DataRef" }, { - "id": "0x564807c68a60-DataRef", + "id": "0x555653771a60-DataRef", "variantKey": "Name", - "Name": "0x564807c68a60-Name" + "Name": "0x555653771a60-Name" }, { - "id": "0x564807c68a60-Name", + "id": "0x555653771a60-Name", "source": "arr3" }, { - "id": "0x564807c6a2e0-Expr", + "id": "0x5556537732e0-Expr", "variantKey": "ArrayConstructor", - "ArrayConstructor": "0x564807c6a300-ArrayConstructor" + "ArrayConstructor": "0x555653773300-ArrayConstructor" }, { - "id": "0x564807c6a300-ArrayConstructor", - "AcSpec": "0x564807c6a300-AcSpec" + "id": "0x555653773300-ArrayConstructor", + "AcSpec": "0x555653773300-AcSpec" }, { - "id": "0x564807c6a300-AcSpec", + "id": "0x555653773300-AcSpec", "values": [ - "0x564807c77e10-AcValue" + "0x555653780e10-AcValue" ] }, { - "id": "0x564807c77e10-AcValue", + "id": "0x555653780e10-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x564807c68650-AcImpliedDo" + "AcImpliedDo": "0x555653771650-AcImpliedDo" }, { - "id": "0x564807c68650-AcImpliedDo", + "id": "0x555653771650-AcImpliedDo", "AcValue": [ - "0x564807c77db0-AcValue" + "0x555653780db0-AcValue" ], - "AcImpliedDoControl": "0x564807c68650-AcImpliedDoControl" + "AcImpliedDoControl": "0x555653771650-AcImpliedDoControl" }, { - "id": "0x564807c77db0-AcValue", + "id": "0x555653780db0-AcValue", "variantKey": "Expr", - "Expr": "0x564807c69e90-Expr" + "Expr": "0x555653772e90-Expr" }, { - "id": "0x564807c69e90-Expr", + "id": "0x555653772e90-Expr", "variantKey": "Designator", - "Designator": "0x564807c69130-Designator" + "Designator": "0x555653772130-Designator" }, { - "id": "0x564807c69130-Designator", + "id": "0x555653772130-Designator", "variantKey": "DataRef", - "DataRef": "0x564807c69140-DataRef" + "DataRef": "0x555653772140-DataRef" }, { - "id": "0x564807c69140-DataRef", + "id": "0x555653772140-DataRef", "variantKey": "Name", - "Name": "0x564807c69140-Name" + "Name": "0x555653772140-Name" }, { - "id": "0x564807c69140-Name", + "id": "0x555653772140-Name", "source": "i" }, { - "id": "0x564807c68650-AcImpliedDoControl", - "value": "0x564807c68650-LoopBounds" + "id": "0x555653771650-AcImpliedDoControl", + "value": "0x555653771650-LoopBounds" }, { - "id": "0x564807c68650-LoopBounds", - "var": "0x564807c68650-Name", - "lower": "0x564807c69f70-Expr", - "upper": "0x564807c6a0b0-Expr", - "step": "0x564807c6a1f0-Expr" + "id": "0x555653771650-LoopBounds", + "var": "0x555653771650-Name", + "lower": "0x555653772f70-Expr", + "upper": "0x5556537730b0-Expr", + "step": "0x5556537731f0-Expr" }, { - "id": "0x564807c68650-Name", + "id": "0x555653771650-Name", "source": "i" }, { - "id": "0x564807c69f70-Expr", + "id": "0x555653772f70-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564807c69f90-LiteralConstant" + "LiteralConstant": "0x555653772f90-LiteralConstant" }, { - "id": "0x564807c69f90-LiteralConstant", + "id": "0x555653772f90-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564807c69f90-IntLiteralConstant" + "IntLiteralConstant": "0x555653772f90-IntLiteralConstant" }, { - "id": "0x564807c69f90-IntLiteralConstant", + "id": "0x555653772f90-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x564807c6a0b0-Expr", + "id": "0x5556537730b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564807c6a0d0-LiteralConstant" + "LiteralConstant": "0x5556537730d0-LiteralConstant" }, { - "id": "0x564807c6a0d0-LiteralConstant", + "id": "0x5556537730d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564807c6a0d0-IntLiteralConstant" + "IntLiteralConstant": "0x5556537730d0-IntLiteralConstant" }, { - "id": "0x564807c6a0d0-IntLiteralConstant", + "id": "0x5556537730d0-IntLiteralConstant", "CharBlock": "9" }, { - "id": "0x564807c6a1f0-Expr", + "id": "0x5556537731f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564807c6a210-LiteralConstant" + "LiteralConstant": "0x555653773210-LiteralConstant" }, { - "id": "0x564807c6a210-LiteralConstant", + "id": "0x555653773210-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564807c6a210-IntLiteralConstant" + "IntLiteralConstant": "0x555653773210-IntLiteralConstant" }, { - "id": "0x564807c6a210-IntLiteralConstant", + "id": "0x555653773210-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x564807c6aca0-ExecutionPartConstruct", + "id": "0x555653773ca0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564807c6aca0-ExecutableConstruct" + "ExecutableConstruct": "0x555653773ca0-ExecutableConstruct" }, { - "id": "0x564807c6aca0-ExecutableConstruct", + "id": "0x555653773ca0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x564807c6aca0-Statement" + "Statement": "0x555653773ca0-Statement" }, { - "id": "0x564807c6aca0-Statement", - "statement": "0x564807c6acb0-ActionStmt", + "id": "0x555653773ca0-Statement", + "statement": "0x555653773cb0-ActionStmt", "source": "arr4 = [0,(i, i = 1, 8), 99]" }, { - "id": "0x564807c6acb0-ActionStmt", + "id": "0x555653773cb0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x564807c6ab10-AssignmentStmt" + "AssignmentStmt": "0x555653773b10-AssignmentStmt" }, { - "id": "0x564807c6ab10-AssignmentStmt", - "Variable": "0x564807c6abf0-Variable", - "Expr": "0x564807c6ab20-Expr" + "id": "0x555653773b10-AssignmentStmt", + "Variable": "0x555653773bf0-Variable", + "Expr": "0x555653773b20-Expr" }, { - "id": "0x564807c6abf0-Variable", + "id": "0x555653773bf0-Variable", "variantKey": "Designator", - "Designator": "0x564807c69a20-Designator" + "Designator": "0x555653772a20-Designator" }, { - "id": "0x564807c69a20-Designator", + "id": "0x555653772a20-Designator", "variantKey": "DataRef", - "DataRef": "0x564807c69a30-DataRef" + "DataRef": "0x555653772a30-DataRef" }, { - "id": "0x564807c69a30-DataRef", + "id": "0x555653772a30-DataRef", "variantKey": "Name", - "Name": "0x564807c69a30-Name" + "Name": "0x555653772a30-Name" }, { - "id": "0x564807c69a30-Name", + "id": "0x555653772a30-Name", "source": "arr4" }, { - "id": "0x564807c6ab20-Expr", + "id": "0x555653773b20-Expr", "variantKey": "ArrayConstructor", - "ArrayConstructor": "0x564807c6ab40-ArrayConstructor" + "ArrayConstructor": "0x555653773b40-ArrayConstructor" }, { - "id": "0x564807c6ab40-ArrayConstructor", - "AcSpec": "0x564807c6ab40-AcSpec" + "id": "0x555653773b40-ArrayConstructor", + "AcSpec": "0x555653773b40-AcSpec" }, { - "id": "0x564807c6ab40-AcSpec", + "id": "0x555653773b40-AcSpec", "values": [ - "0x564807c767e0-AcValue", - "0x564807c76960-AcValue", - "0x564807c76730-AcValue" + "0x55565377f7e0-AcValue", + "0x55565377f960-AcValue", + "0x55565377f730-AcValue" ] }, { - "id": "0x564807c767e0-AcValue", + "id": "0x55565377f7e0-AcValue", "variantKey": "Expr", - "Expr": "0x564807c6a440-Expr" + "Expr": "0x555653773440-Expr" }, { - "id": "0x564807c6a440-Expr", + "id": "0x555653773440-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564807c6a460-LiteralConstant" + "LiteralConstant": "0x555653773460-LiteralConstant" }, { - "id": "0x564807c6a460-LiteralConstant", + "id": "0x555653773460-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564807c6a460-IntLiteralConstant" + "IntLiteralConstant": "0x555653773460-IntLiteralConstant" }, { - "id": "0x564807c6a460-IntLiteralConstant", + "id": "0x555653773460-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x564807c76960-AcValue", + "id": "0x55565377f960-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x564807c7f6f0-AcImpliedDo" + "AcImpliedDo": "0x5556537886f0-AcImpliedDo" }, { - "id": "0x564807c7f6f0-AcImpliedDo", + "id": "0x5556537886f0-AcImpliedDo", "AcValue": [ - "0x564807c77e50-AcValue" + "0x555653780e50-AcValue" ], - "AcImpliedDoControl": "0x564807c7f6f0-AcImpliedDoControl" + "AcImpliedDoControl": "0x5556537886f0-AcImpliedDoControl" }, { - "id": "0x564807c77e50-AcValue", + "id": "0x555653780e50-AcValue", "variantKey": "Expr", - "Expr": "0x564807c6a580-Expr" + "Expr": "0x555653773580-Expr" }, { - "id": "0x564807c6a580-Expr", + "id": "0x555653773580-Expr", "variantKey": "Designator", - "Designator": "0x564807c6a520-Designator" + "Designator": "0x555653773520-Designator" }, { - "id": "0x564807c6a520-Designator", + "id": "0x555653773520-Designator", "variantKey": "DataRef", - "DataRef": "0x564807c6a530-DataRef" + "DataRef": "0x555653773530-DataRef" }, { - "id": "0x564807c6a530-DataRef", + "id": "0x555653773530-DataRef", "variantKey": "Name", - "Name": "0x564807c6a530-Name" + "Name": "0x555653773530-Name" }, { - "id": "0x564807c6a530-Name", + "id": "0x555653773530-Name", "source": "i" }, { - "id": "0x564807c7f6f0-AcImpliedDoControl", - "value": "0x564807c7f6f0-LoopBounds" + "id": "0x5556537886f0-AcImpliedDoControl", + "value": "0x5556537886f0-LoopBounds" }, { - "id": "0x564807c7f6f0-LoopBounds", - "var": "0x564807c7f6f0-Name", - "lower": "0x564807c6a660-Expr", - "upper": "0x564807c6a7a0-Expr" + "id": "0x5556537886f0-LoopBounds", + "var": "0x5556537886f0-Name", + "lower": "0x555653773660-Expr", + "upper": "0x5556537737a0-Expr" }, { - "id": "0x564807c7f6f0-Name", + "id": "0x5556537886f0-Name", "source": "i" }, { - "id": "0x564807c6a660-Expr", + "id": "0x555653773660-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564807c6a680-LiteralConstant" + "LiteralConstant": "0x555653773680-LiteralConstant" }, { - "id": "0x564807c6a680-LiteralConstant", + "id": "0x555653773680-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564807c6a680-IntLiteralConstant" + "IntLiteralConstant": "0x555653773680-IntLiteralConstant" }, { - "id": "0x564807c6a680-IntLiteralConstant", + "id": "0x555653773680-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x564807c6a7a0-Expr", + "id": "0x5556537737a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564807c6a7c0-LiteralConstant" + "LiteralConstant": "0x5556537737c0-LiteralConstant" }, { - "id": "0x564807c6a7c0-LiteralConstant", + "id": "0x5556537737c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564807c6a7c0-IntLiteralConstant" + "IntLiteralConstant": "0x5556537737c0-IntLiteralConstant" }, { - "id": "0x564807c6a7c0-IntLiteralConstant", + "id": "0x5556537737c0-IntLiteralConstant", "CharBlock": "8" }, { - "id": "0x564807c76730-AcValue", + "id": "0x55565377f730-AcValue", "variantKey": "Expr", - "Expr": "0x564807c6a8e0-Expr" + "Expr": "0x5556537738e0-Expr" }, { - "id": "0x564807c6a8e0-Expr", + "id": "0x5556537738e0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564807c6a900-LiteralConstant" + "LiteralConstant": "0x555653773900-LiteralConstant" }, { - "id": "0x564807c6a900-LiteralConstant", + "id": "0x555653773900-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564807c6a900-IntLiteralConstant" + "IntLiteralConstant": "0x555653773900-IntLiteralConstant" }, { - "id": "0x564807c6a900-IntLiteralConstant", + "id": "0x555653773900-IntLiteralConstant", "CharBlock": "99" }, { - "id": "0x564807c6b330-ExecutionPartConstruct", + "id": "0x555653774330-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564807c6b330-ExecutableConstruct" + "ExecutableConstruct": "0x555653774330-ExecutableConstruct" }, { - "id": "0x564807c6b330-ExecutableConstruct", + "id": "0x555653774330-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x564807c6b330-Statement" + "Statement": "0x555653774330-Statement" }, { - "id": "0x564807c6b330-Statement", - "statement": "0x564807c6b340-ActionStmt", + "id": "0x555653774330-Statement", + "statement": "0x555653774340-ActionStmt", "source": "arr5 = [integer ::(i * 2, i = 1, 10)]" }, { - "id": "0x564807c6b340-ActionStmt", + "id": "0x555653774340-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x564807c6b210-AssignmentStmt" + "AssignmentStmt": "0x555653774210-AssignmentStmt" }, { - "id": "0x564807c6b210-AssignmentStmt", - "Variable": "0x564807c6b2f0-Variable", - "Expr": "0x564807c6b220-Expr" + "id": "0x555653774210-AssignmentStmt", + "Variable": "0x5556537742f0-Variable", + "Expr": "0x555653774220-Expr" }, { - "id": "0x564807c6b2f0-Variable", + "id": "0x5556537742f0-Variable", "variantKey": "Designator", - "Designator": "0x564807c67ad0-Designator" + "Designator": "0x555653770ad0-Designator" }, { - "id": "0x564807c67ad0-Designator", + "id": "0x555653770ad0-Designator", "variantKey": "DataRef", - "DataRef": "0x564807c67ae0-DataRef" + "DataRef": "0x555653770ae0-DataRef" }, { - "id": "0x564807c67ae0-DataRef", + "id": "0x555653770ae0-DataRef", "variantKey": "Name", - "Name": "0x564807c67ae0-Name" + "Name": "0x555653770ae0-Name" }, { - "id": "0x564807c67ae0-Name", + "id": "0x555653770ae0-Name", "source": "arr5" }, { - "id": "0x564807c6b220-Expr", + "id": "0x555653774220-Expr", "variantKey": "ArrayConstructor", - "ArrayConstructor": "0x564807c6b240-ArrayConstructor" + "ArrayConstructor": "0x555653774240-ArrayConstructor" }, { - "id": "0x564807c6b240-ArrayConstructor", - "AcSpec": "0x564807c6b240-AcSpec" + "id": "0x555653774240-ArrayConstructor", + "AcSpec": "0x555653774240-AcSpec" }, { - "id": "0x564807c6b240-AcSpec", - "type": "0x564807c6b258-TypeSpec", + "id": "0x555653774240-AcSpec", + "type": "0x555653774258-TypeSpec", "values": [ - "0x564807c76820-AcValue" + "0x55565377f820-AcValue" ] }, { - "id": "0x564807c6b258-TypeSpec", + "id": "0x555653774258-TypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x564807c6b260-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x555653774260-IntrinsicTypeSpec" }, { - "id": "0x564807c6b260-IntrinsicTypeSpec", + "id": "0x555653774260-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x564807c6b260-IntegerTypeSpec" + "IntegerTypeSpec": "0x555653774260-IntegerTypeSpec" }, { - "id": "0x564807c6b260-IntegerTypeSpec" + "id": "0x555653774260-IntegerTypeSpec" }, { - "id": "0x564807c76820-AcValue", + "id": "0x55565377f820-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x564807c67780-AcImpliedDo" + "AcImpliedDo": "0x555653770780-AcImpliedDo" }, { - "id": "0x564807c67780-AcImpliedDo", + "id": "0x555653770780-AcImpliedDo", "AcValue": [ - "0x564807c767a0-AcValue" + "0x55565377f7a0-AcValue" ], - "AcImpliedDoControl": "0x564807c67780-AcImpliedDoControl" + "AcImpliedDoControl": "0x555653770780-AcImpliedDoControl" }, { - "id": "0x564807c767a0-AcValue", + "id": "0x55565377f7a0-AcValue", "variantKey": "Expr", - "Expr": "0x564807c6aff0-Expr" + "Expr": "0x555653773ff0-Expr" }, { - "id": "0x564807c6aff0-Expr", + "id": "0x555653773ff0-Expr", "variantKey": "Multiply", - "Multiply": "0x564807c6b010-Multiply" + "Multiply": "0x555653774010-Multiply" }, { - "id": "0x564807c6b010-Multiply", - "left": "0x564807c6af10-Expr", - "right": "0x564807c6acf0-Expr", + "id": "0x555653774010-Multiply", + "left": "0x555653773f10-Expr", + "right": "0x555653773cf0-Expr", "op": "MULTIPLY" }, { - "id": "0x564807c6af10-Expr", + "id": "0x555653773f10-Expr", "variantKey": "Designator", - "Designator": "0x564807c6aeb0-Designator" + "Designator": "0x555653773eb0-Designator" }, { - "id": "0x564807c6aeb0-Designator", + "id": "0x555653773eb0-Designator", "variantKey": "DataRef", - "DataRef": "0x564807c6aec0-DataRef" + "DataRef": "0x555653773ec0-DataRef" }, { - "id": "0x564807c6aec0-DataRef", + "id": "0x555653773ec0-DataRef", "variantKey": "Name", - "Name": "0x564807c6aec0-Name" + "Name": "0x555653773ec0-Name" }, { - "id": "0x564807c6aec0-Name", + "id": "0x555653773ec0-Name", "source": "i" }, { - "id": "0x564807c6acf0-Expr", + "id": "0x555653773cf0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564807c6ad10-LiteralConstant" + "LiteralConstant": "0x555653773d10-LiteralConstant" }, { - "id": "0x564807c6ad10-LiteralConstant", + "id": "0x555653773d10-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564807c6ad10-IntLiteralConstant" + "IntLiteralConstant": "0x555653773d10-IntLiteralConstant" }, { - "id": "0x564807c6ad10-IntLiteralConstant", + "id": "0x555653773d10-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x564807c67780-AcImpliedDoControl", - "value": "0x564807c67780-LoopBounds" + "id": "0x555653770780-AcImpliedDoControl", + "value": "0x555653770780-LoopBounds" }, { - "id": "0x564807c67780-LoopBounds", - "var": "0x564807c67780-Name", - "lower": "0x564807c6add0-Expr", - "upper": "0x564807c6b130-Expr" + "id": "0x555653770780-LoopBounds", + "var": "0x555653770780-Name", + "lower": "0x555653773dd0-Expr", + "upper": "0x555653774130-Expr" }, { - "id": "0x564807c67780-Name", + "id": "0x555653770780-Name", "source": "i" }, { - "id": "0x564807c6add0-Expr", + "id": "0x555653773dd0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564807c6adf0-LiteralConstant" + "LiteralConstant": "0x555653773df0-LiteralConstant" }, { - "id": "0x564807c6adf0-LiteralConstant", + "id": "0x555653773df0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564807c6adf0-IntLiteralConstant" + "IntLiteralConstant": "0x555653773df0-IntLiteralConstant" }, { - "id": "0x564807c6adf0-IntLiteralConstant", + "id": "0x555653773df0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x564807c6b130-Expr", + "id": "0x555653774130-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564807c6b150-LiteralConstant" + "LiteralConstant": "0x555653774150-LiteralConstant" }, { - "id": "0x564807c6b150-LiteralConstant", + "id": "0x555653774150-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564807c6b150-IntLiteralConstant" + "IntLiteralConstant": "0x555653774150-IntLiteralConstant" }, { - "id": "0x564807c6b150-IntLiteralConstant", + "id": "0x555653774150-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x564807c6ca10-ExecutionPartConstruct", + "id": "0x555653775a10-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564807c6ca10-ExecutableConstruct" + "ExecutableConstruct": "0x555653775a10-ExecutableConstruct" }, { - "id": "0x564807c6ca10-ExecutableConstruct", + "id": "0x555653775a10-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x564807c6ca10-Statement" + "Statement": "0x555653775a10-Statement" }, { - "id": "0x564807c6ca10-Statement", - "statement": "0x564807c6ca20-ActionStmt", + "id": "0x555653775a10-Statement", + "statement": "0x555653775a20-ActionStmt", "source": "arr6 = [((i + j, i = 1, 3), j = 1, 3)]" }, { - "id": "0x564807c6ca20-ActionStmt", + "id": "0x555653775a20-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x564807c6c880-AssignmentStmt" + "AssignmentStmt": "0x555653775880-AssignmentStmt" }, { - "id": "0x564807c6c880-AssignmentStmt", - "Variable": "0x564807c6c960-Variable", - "Expr": "0x564807c6c890-Expr" + "id": "0x555653775880-AssignmentStmt", + "Variable": "0x555653775960-Variable", + "Expr": "0x555653775890-Expr" }, { - "id": "0x564807c6c960-Variable", + "id": "0x555653775960-Variable", "variantKey": "Designator", - "Designator": "0x564807c785f0-Designator" + "Designator": "0x5556537815f0-Designator" }, { - "id": "0x564807c785f0-Designator", + "id": "0x5556537815f0-Designator", "variantKey": "DataRef", - "DataRef": "0x564807c78600-DataRef" + "DataRef": "0x555653781600-DataRef" }, { - "id": "0x564807c78600-DataRef", + "id": "0x555653781600-DataRef", "variantKey": "Name", - "Name": "0x564807c78600-Name" + "Name": "0x555653781600-Name" }, { - "id": "0x564807c78600-Name", + "id": "0x555653781600-Name", "source": "arr6" }, { - "id": "0x564807c6c890-Expr", + "id": "0x555653775890-Expr", "variantKey": "ArrayConstructor", - "ArrayConstructor": "0x564807c6c8b0-ArrayConstructor" + "ArrayConstructor": "0x5556537758b0-ArrayConstructor" }, { - "id": "0x564807c6c8b0-ArrayConstructor", - "AcSpec": "0x564807c6c8b0-AcSpec" + "id": "0x5556537758b0-ArrayConstructor", + "AcSpec": "0x5556537758b0-AcSpec" }, { - "id": "0x564807c6c8b0-AcSpec", + "id": "0x5556537758b0-AcSpec", "values": [ - "0x564807c76920-AcValue" + "0x55565377f920-AcValue" ] }, { - "id": "0x564807c76920-AcValue", + "id": "0x55565377f920-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x564807c67880-AcImpliedDo" + "AcImpliedDo": "0x555653770880-AcImpliedDo" }, { - "id": "0x564807c67880-AcImpliedDo", + "id": "0x555653770880-AcImpliedDo", "AcValue": [ - "0x564807c768c0-AcValue" + "0x55565377f8c0-AcValue" ], - "AcImpliedDoControl": "0x564807c67880-AcImpliedDoControl" + "AcImpliedDoControl": "0x555653770880-AcImpliedDoControl" }, { - "id": "0x564807c768c0-AcValue", + "id": "0x55565377f8c0-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x564807c62af0-AcImpliedDo" + "AcImpliedDo": "0x55565376baf0-AcImpliedDo" }, { - "id": "0x564807c62af0-AcImpliedDo", + "id": "0x55565376baf0-AcImpliedDo", "AcValue": [ - "0x564807c76880-AcValue" + "0x55565377f880-AcValue" ], - "AcImpliedDoControl": "0x564807c62af0-AcImpliedDoControl" + "AcImpliedDoControl": "0x55565376baf0-AcImpliedDoControl" }, { - "id": "0x564807c76880-AcValue", + "id": "0x55565377f880-AcValue", "variantKey": "Expr", - "Expr": "0x564807c6b740-Expr" + "Expr": "0x555653774740-Expr" }, { - "id": "0x564807c6b740-Expr", + "id": "0x555653774740-Expr", "variantKey": "Add", - "Add": "0x564807c6b760-Add" + "Add": "0x555653774760-Add" }, { - "id": "0x564807c6b760-Add", - "left": "0x564807c6b660-Expr", - "right": "0x564807c6b380-Expr", + "id": "0x555653774760-Add", + "left": "0x555653774660-Expr", + "right": "0x555653774380-Expr", "op": "ADD" }, { - "id": "0x564807c6b660-Expr", + "id": "0x555653774660-Expr", "variantKey": "Designator", - "Designator": "0x564807c6a740-Designator" + "Designator": "0x555653773740-Designator" }, { - "id": "0x564807c6a740-Designator", + "id": "0x555653773740-Designator", "variantKey": "DataRef", - "DataRef": "0x564807c6a750-DataRef" + "DataRef": "0x555653773750-DataRef" }, { - "id": "0x564807c6a750-DataRef", + "id": "0x555653773750-DataRef", "variantKey": "Name", - "Name": "0x564807c6a750-Name" + "Name": "0x555653773750-Name" }, { - "id": "0x564807c6a750-Name", + "id": "0x555653773750-Name", "source": "i" }, { - "id": "0x564807c6b380-Expr", + "id": "0x555653774380-Expr", "variantKey": "Designator", - "Designator": "0x564807c6b600-Designator" + "Designator": "0x555653774600-Designator" }, { - "id": "0x564807c6b600-Designator", + "id": "0x555653774600-Designator", "variantKey": "DataRef", - "DataRef": "0x564807c6b610-DataRef" + "DataRef": "0x555653774610-DataRef" }, { - "id": "0x564807c6b610-DataRef", + "id": "0x555653774610-DataRef", "variantKey": "Name", - "Name": "0x564807c6b610-Name" + "Name": "0x555653774610-Name" }, { - "id": "0x564807c6b610-Name", + "id": "0x555653774610-Name", "source": "j" }, { - "id": "0x564807c62af0-AcImpliedDoControl", - "value": "0x564807c62af0-LoopBounds" + "id": "0x55565376baf0-AcImpliedDoControl", + "value": "0x55565376baf0-LoopBounds" }, { - "id": "0x564807c62af0-LoopBounds", - "var": "0x564807c62af0-Name", - "lower": "0x564807c6b460-Expr", - "upper": "0x564807c6bb20-Expr" + "id": "0x55565376baf0-LoopBounds", + "var": "0x55565376baf0-Name", + "lower": "0x555653774460-Expr", + "upper": "0x555653774b20-Expr" }, { - "id": "0x564807c62af0-Name", + "id": "0x55565376baf0-Name", "source": "i" }, { - "id": "0x564807c6b460-Expr", + "id": "0x555653774460-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564807c6b480-LiteralConstant" + "LiteralConstant": "0x555653774480-LiteralConstant" }, { - "id": "0x564807c6b480-LiteralConstant", + "id": "0x555653774480-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564807c6b480-IntLiteralConstant" + "IntLiteralConstant": "0x555653774480-IntLiteralConstant" }, { - "id": "0x564807c6b480-IntLiteralConstant", + "id": "0x555653774480-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x564807c6bb20-Expr", + "id": "0x555653774b20-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564807c6bb40-LiteralConstant" + "LiteralConstant": "0x555653774b40-LiteralConstant" }, { - "id": "0x564807c6bb40-LiteralConstant", + "id": "0x555653774b40-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564807c6bb40-IntLiteralConstant" + "IntLiteralConstant": "0x555653774b40-IntLiteralConstant" }, { - "id": "0x564807c6bb40-IntLiteralConstant", + "id": "0x555653774b40-IntLiteralConstant", "CharBlock": "3" }, { - "id": "0x564807c67880-AcImpliedDoControl", - "value": "0x564807c67880-LoopBounds" + "id": "0x555653770880-AcImpliedDoControl", + "value": "0x555653770880-LoopBounds" }, { - "id": "0x564807c67880-LoopBounds", - "var": "0x564807c67880-Name", - "lower": "0x564807c6c190-Expr", - "upper": "0x564807c6c650-Expr" + "id": "0x555653770880-LoopBounds", + "var": "0x555653770880-Name", + "lower": "0x555653775190-Expr", + "upper": "0x555653775650-Expr" }, { - "id": "0x564807c67880-Name", + "id": "0x555653770880-Name", "source": "j" }, { - "id": "0x564807c6c190-Expr", + "id": "0x555653775190-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564807c6c1b0-LiteralConstant" + "LiteralConstant": "0x5556537751b0-LiteralConstant" }, { - "id": "0x564807c6c1b0-LiteralConstant", + "id": "0x5556537751b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564807c6c1b0-IntLiteralConstant" + "IntLiteralConstant": "0x5556537751b0-IntLiteralConstant" }, { - "id": "0x564807c6c1b0-IntLiteralConstant", + "id": "0x5556537751b0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x564807c6c650-Expr", + "id": "0x555653775650-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564807c6c670-LiteralConstant" + "LiteralConstant": "0x555653775670-LiteralConstant" }, { - "id": "0x564807c6c670-LiteralConstant", + "id": "0x555653775670-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564807c6c670-IntLiteralConstant" + "IntLiteralConstant": "0x555653775670-IntLiteralConstant" }, { - "id": "0x564807c6c670-IntLiteralConstant", + "id": "0x555653775670-IntLiteralConstant", "CharBlock": "3" }, { - "id": "0x564807c6d500-ExecutionPartConstruct", + "id": "0x555653776500-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564807c6d500-ExecutableConstruct" + "ExecutableConstruct": "0x555653776500-ExecutableConstruct" }, { - "id": "0x564807c6d500-ExecutableConstruct", + "id": "0x555653776500-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x564807c6d500-Statement" + "Statement": "0x555653776500-Statement" }, { - "id": "0x564807c6d500-Statement", - "statement": "0x564807c6d510-ActionStmt", + "id": "0x555653776500-Statement", + "statement": "0x555653776510-ActionStmt", "source": "arr7 = [(i, i * 10, i * 100, i = 1, 5)]" }, { - "id": "0x564807c6d510-ActionStmt", + "id": "0x555653776510-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x564807c6d3e0-AssignmentStmt" + "AssignmentStmt": "0x5556537763e0-AssignmentStmt" }, { - "id": "0x564807c6d3e0-AssignmentStmt", - "Variable": "0x564807c6d4c0-Variable", - "Expr": "0x564807c6d3f0-Expr" + "id": "0x5556537763e0-AssignmentStmt", + "Variable": "0x5556537764c0-Variable", + "Expr": "0x5556537763f0-Expr" }, { - "id": "0x564807c6d4c0-Variable", + "id": "0x5556537764c0-Variable", "variantKey": "Designator", - "Designator": "0x564807c6b900-Designator" + "Designator": "0x555653774900-Designator" }, { - "id": "0x564807c6b900-Designator", + "id": "0x555653774900-Designator", "variantKey": "DataRef", - "DataRef": "0x564807c6b910-DataRef" + "DataRef": "0x555653774910-DataRef" }, { - "id": "0x564807c6b910-DataRef", + "id": "0x555653774910-DataRef", "variantKey": "Name", - "Name": "0x564807c6b910-Name" + "Name": "0x555653774910-Name" }, { - "id": "0x564807c6b910-Name", + "id": "0x555653774910-Name", "source": "arr7" }, { - "id": "0x564807c6d3f0-Expr", + "id": "0x5556537763f0-Expr", "variantKey": "ArrayConstructor", - "ArrayConstructor": "0x564807c6d410-ArrayConstructor" + "ArrayConstructor": "0x555653776410-ArrayConstructor" }, { - "id": "0x564807c6d410-ArrayConstructor", - "AcSpec": "0x564807c6d410-AcSpec" + "id": "0x555653776410-ArrayConstructor", + "AcSpec": "0x555653776410-AcSpec" }, { - "id": "0x564807c6d410-AcSpec", + "id": "0x555653776410-AcSpec", "values": [ - "0x564807c76560-AcValue" + "0x55565377f560-AcValue" ] }, { - "id": "0x564807c76560-AcValue", + "id": "0x55565377f560-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x564807c685d0-AcImpliedDo" + "AcImpliedDo": "0x5556537715d0-AcImpliedDo" }, { - "id": "0x564807c685d0-AcImpliedDo", + "id": "0x5556537715d0-AcImpliedDo", "AcValue": [ - "0x564807c76500-AcValue", - "0x564807c766f0-AcValue", - "0x564807c764c0-AcValue" + "0x55565377f500-AcValue", + "0x55565377f6f0-AcValue", + "0x55565377f4c0-AcValue" ], - "AcImpliedDoControl": "0x564807c685d0-AcImpliedDoControl" + "AcImpliedDoControl": "0x5556537715d0-AcImpliedDoControl" }, { - "id": "0x564807c76500-AcValue", + "id": "0x55565377f500-AcValue", "variantKey": "Expr", - "Expr": "0x564807c6cca0-Expr" + "Expr": "0x555653775ca0-Expr" }, { - "id": "0x564807c6cca0-Expr", + "id": "0x555653775ca0-Expr", "variantKey": "Designator", - "Designator": "0x564807c6b0d0-Designator" + "Designator": "0x5556537740d0-Designator" }, { - "id": "0x564807c6b0d0-Designator", + "id": "0x5556537740d0-Designator", "variantKey": "DataRef", - "DataRef": "0x564807c6b0e0-DataRef" + "DataRef": "0x5556537740e0-DataRef" }, { - "id": "0x564807c6b0e0-DataRef", + "id": "0x5556537740e0-DataRef", "variantKey": "Name", - "Name": "0x564807c6b0e0-Name" + "Name": "0x5556537740e0-Name" }, { - "id": "0x564807c6b0e0-Name", + "id": "0x5556537740e0-Name", "source": "i" }, { - "id": "0x564807c766f0-AcValue", + "id": "0x55565377f6f0-AcValue", "variantKey": "Expr", - "Expr": "0x564807c6cbc0-Expr" + "Expr": "0x555653775bc0-Expr" }, { - "id": "0x564807c6cbc0-Expr", + "id": "0x555653775bc0-Expr", "variantKey": "Multiply", - "Multiply": "0x564807c6cbe0-Multiply" + "Multiply": "0x555653775be0-Multiply" }, { - "id": "0x564807c6cbe0-Multiply", - "left": "0x564807c6cae0-Expr", - "right": "0x564807c6cd80-Expr", + "id": "0x555653775be0-Multiply", + "left": "0x555653775ae0-Expr", + "right": "0x555653775d80-Expr", "op": "MULTIPLY" }, { - "id": "0x564807c6cae0-Expr", + "id": "0x555653775ae0-Expr", "variantKey": "Designator", - "Designator": "0x564807c68150-Designator" + "Designator": "0x555653771150-Designator" }, { - "id": "0x564807c68150-Designator", + "id": "0x555653771150-Designator", "variantKey": "DataRef", - "DataRef": "0x564807c68160-DataRef" + "DataRef": "0x555653771160-DataRef" }, { - "id": "0x564807c68160-DataRef", + "id": "0x555653771160-DataRef", "variantKey": "Name", - "Name": "0x564807c68160-Name" + "Name": "0x555653771160-Name" }, { - "id": "0x564807c68160-Name", + "id": "0x555653771160-Name", "source": "i" }, { - "id": "0x564807c6cd80-Expr", + "id": "0x555653775d80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564807c6cda0-LiteralConstant" + "LiteralConstant": "0x555653775da0-LiteralConstant" }, { - "id": "0x564807c6cda0-LiteralConstant", + "id": "0x555653775da0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564807c6cda0-IntLiteralConstant" + "IntLiteralConstant": "0x555653775da0-IntLiteralConstant" }, { - "id": "0x564807c6cda0-IntLiteralConstant", + "id": "0x555653775da0-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x564807c764c0-AcValue", + "id": "0x55565377f4c0-AcValue", "variantKey": "Expr", - "Expr": "0x564807c6cf40-Expr" + "Expr": "0x555653775f40-Expr" }, { - "id": "0x564807c6cf40-Expr", + "id": "0x555653775f40-Expr", "variantKey": "Multiply", - "Multiply": "0x564807c6cf60-Multiply" + "Multiply": "0x555653775f60-Multiply" }, { - "id": "0x564807c6cf60-Multiply", - "left": "0x564807c6ce60-Expr", - "right": "0x564807c6d020-Expr", + "id": "0x555653775f60-Multiply", + "left": "0x555653775e60-Expr", + "right": "0x555653776020-Expr", "op": "MULTIPLY" }, { - "id": "0x564807c6ce60-Expr", + "id": "0x555653775e60-Expr", "variantKey": "Designator", - "Designator": "0x564807c67df0-Designator" + "Designator": "0x555653770df0-Designator" }, { - "id": "0x564807c67df0-Designator", + "id": "0x555653770df0-Designator", "variantKey": "DataRef", - "DataRef": "0x564807c67e00-DataRef" + "DataRef": "0x555653770e00-DataRef" }, { - "id": "0x564807c67e00-DataRef", + "id": "0x555653770e00-DataRef", "variantKey": "Name", - "Name": "0x564807c67e00-Name" + "Name": "0x555653770e00-Name" }, { - "id": "0x564807c67e00-Name", + "id": "0x555653770e00-Name", "source": "i" }, { - "id": "0x564807c6d020-Expr", + "id": "0x555653776020-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564807c6d040-LiteralConstant" + "LiteralConstant": "0x555653776040-LiteralConstant" }, { - "id": "0x564807c6d040-LiteralConstant", + "id": "0x555653776040-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564807c6d040-IntLiteralConstant" + "IntLiteralConstant": "0x555653776040-IntLiteralConstant" }, { - "id": "0x564807c6d040-IntLiteralConstant", + "id": "0x555653776040-IntLiteralConstant", "CharBlock": "100" }, { - "id": "0x564807c685d0-AcImpliedDoControl", - "value": "0x564807c685d0-LoopBounds" + "id": "0x5556537715d0-AcImpliedDoControl", + "value": "0x5556537715d0-LoopBounds" }, { - "id": "0x564807c685d0-LoopBounds", - "var": "0x564807c685d0-Name", - "lower": "0x564807c6d1c0-Expr", - "upper": "0x564807c6d300-Expr" + "id": "0x5556537715d0-LoopBounds", + "var": "0x5556537715d0-Name", + "lower": "0x5556537761c0-Expr", + "upper": "0x555653776300-Expr" }, { - "id": "0x564807c685d0-Name", + "id": "0x5556537715d0-Name", "source": "i" }, { - "id": "0x564807c6d1c0-Expr", + "id": "0x5556537761c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564807c6d1e0-LiteralConstant" + "LiteralConstant": "0x5556537761e0-LiteralConstant" }, { - "id": "0x564807c6d1e0-LiteralConstant", + "id": "0x5556537761e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564807c6d1e0-IntLiteralConstant" + "IntLiteralConstant": "0x5556537761e0-IntLiteralConstant" }, { - "id": "0x564807c6d1e0-IntLiteralConstant", + "id": "0x5556537761e0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x564807c6d300-Expr", + "id": "0x555653776300-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564807c6d320-LiteralConstant" + "LiteralConstant": "0x555653776320-LiteralConstant" }, { - "id": "0x564807c6d320-LiteralConstant", + "id": "0x555653776320-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564807c6d320-IntLiteralConstant" + "IntLiteralConstant": "0x555653776320-IntLiteralConstant" }, { - "id": "0x564807c6d320-IntLiteralConstant", + "id": "0x555653776320-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x564807c70800-Statement", - "statement": "0x564807c70810-EndProgramStmt", + "id": "0x555653779800-Statement", + "statement": "0x555653779810-EndProgramStmt", "source": "end program TEST_IMPLIED_DO" }, { - "id": "0x564807c70810-EndProgramStmt", - "Name": "0x564807c70810-Name" + "id": "0x555653779810-EndProgramStmt", + "Name": "0x555653779810-Name" }, { - "id": "0x564807c70810-Name", + "id": "0x555653779810-Name", "source": "TEST_IMPLIED_DO" } ], "comments": [ { "text": "! Basic implied-do", - "stmtId": "0x564807c69670-Statement" + "stmtId": "0x555653772670-Statement", + "trailing": false }, { "text": "! With expression", - "stmtId": "0x564807c69e40-Statement" + "stmtId": "0x555653772e40-Statement", + "trailing": false }, { "text": "! With step", - "stmtId": "0x564807c6a3f0-Statement" + "stmtId": "0x5556537733f0-Statement", + "trailing": false }, { "text": "! Mixed values and implied-do", - "stmtId": "0x564807c6aca0-Statement" + "stmtId": "0x555653773ca0-Statement", + "trailing": false }, { "text": "! With type-spec", - "stmtId": "0x564807c6b330-Statement" + "stmtId": "0x555653774330-Statement", + "trailing": false }, { "text": "! Nested implied-do", - "stmtId": "0x564807c6ca10-Statement" + "stmtId": "0x555653775a10-Statement", + "trailing": false }, { "text": "! Multiple values per iteration", - "stmtId": "0x564807c6d500-Statement" + "stmtId": "0x555653776500-Statement", + "trailing": false } ], "enums": { diff --git a/FortranParser/resources-test/fortran/parser/declaration.json b/FortranParser/resources-test/fortran/parser/declaration.json index fc9308b7..a5bffe01 100644 --- a/FortranParser/resources-test/fortran/parser/declaration.json +++ b/FortranParser/resources-test/fortran/parser/declaration.json @@ -1,150 +1,153 @@ { "nodes": [ { - "id": "0x55892196cf00-Program", + "id": "0x55f217ee8f00-Program", "ProgramUnit": [ - "0x5589219a2e20-ProgramUnit" + "0x55f217f1ee20-ProgramUnit" ] }, { - "id": "0x5589219a2e20-ProgramUnit", + "id": "0x55f217f1ee20-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x5589219a7890-MainProgram" + "MainProgram": "0x55f217f23890-MainProgram" }, { - "id": "0x5589219a7890-MainProgram", - "Statement": "0x5589219a79d8-Statement", - "SpecificationPart": "0x5589219a7930-SpecificationPart", - "ExecutionPart": "0x5589219a7918-ExecutionPart", - "Statement": "0x5589219a7890-Statement" + "id": "0x55f217f23890-MainProgram", + "Statement": "0x55f217f239d8-Statement", + "SpecificationPart": "0x55f217f23930-SpecificationPart", + "ExecutionPart": "0x55f217f23918-ExecutionPart", + "Statement": "0x55f217f23890-Statement" }, { - "id": "0x5589219a79d8-Statement", - "statement": "0x5589219a79e8-ProgramStmt", + "id": "0x55f217f239d8-Statement", + "statement": "0x55f217f239e8-ProgramStmt", "source": "program DECLARATION" }, { - "id": "0x5589219a79e8-ProgramStmt", - "Name": "0x5589219a79e8-Name" + "id": "0x55f217f239e8-ProgramStmt", + "Name": "0x55f217f239e8-Name" }, { - "id": "0x5589219a79e8-Name", + "id": "0x55f217f239e8-Name", "source": "DECLARATION" }, { - "id": "0x5589219a7930-SpecificationPart", - "ImplicitPart": "0x5589219a7948-ImplicitPart", + "id": "0x55f217f23930-SpecificationPart", + "ImplicitPart": "0x55f217f23948-ImplicitPart", "DeclarationConstruct": [ - "0x55892197a110-DeclarationConstruct" + "0x55f217ef6110-DeclarationConstruct" ] }, { - "id": "0x5589219a7948-ImplicitPart" + "id": "0x55f217f23948-ImplicitPart" }, { - "id": "0x55892197a110-DeclarationConstruct", + "id": "0x55f217ef6110-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55892197a110-SpecificationConstruct" + "SpecificationConstruct": "0x55f217ef6110-SpecificationConstruct" }, { - "id": "0x55892197a110-SpecificationConstruct", + "id": "0x55f217ef6110-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55892197a110-Statement" + "Statement": "0x55f217ef6110-Statement" }, { - "id": "0x55892197a110-Statement", - "statement": "0x5589219a0320-TypeDeclarationStmt", + "id": "0x55f217ef6110-Statement", + "statement": "0x55f217f1c320-TypeDeclarationStmt", "source": "integer :: a, b = 1" }, { - "id": "0x5589219a0320-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5589219a0350-DeclarationTypeSpec", + "id": "0x55f217f1c320-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55f217f1c350-DeclarationTypeSpec", "EntityDecl": [ - "0x5589219a0590-EntityDecl", - "0x5589219a04a0-EntityDecl" + "0x55f217f1c590-EntityDecl", + "0x55f217f1c4a0-EntityDecl" ] }, { - "id": "0x5589219a0350-DeclarationTypeSpec", + "id": "0x55f217f1c350-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5589219a0350-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55f217f1c350-IntrinsicTypeSpec" }, { - "id": "0x5589219a0350-IntrinsicTypeSpec", + "id": "0x55f217f1c350-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x5589219a0350-IntegerTypeSpec" + "IntegerTypeSpec": "0x55f217f1c350-IntegerTypeSpec" }, { - "id": "0x5589219a0350-IntegerTypeSpec" + "id": "0x55f217f1c350-IntegerTypeSpec" }, { - "id": "0x5589219a0590-EntityDecl", - "Name": "0x5589219a0648-Name" + "id": "0x55f217f1c590-EntityDecl", + "Name": "0x55f217f1c648-Name" }, { - "id": "0x5589219a0648-Name", + "id": "0x55f217f1c648-Name", "source": "a" }, { - "id": "0x5589219a04a0-EntityDecl", - "Name": "0x5589219a0558-Name", - "Initialization": "0x5589219a04a0-Initialization" + "id": "0x55f217f1c4a0-EntityDecl", + "Name": "0x55f217f1c558-Name", + "Initialization": "0x55f217f1c4a0-Initialization" }, { - "id": "0x5589219a0558-Name", + "id": "0x55f217f1c558-Name", "source": "b" }, { - "id": "0x5589219a04a0-Initialization", + "id": "0x55f217f1c4a0-Initialization", "variantKey": "Expr", - "Expr": "0x55892190c790-Expr" + "Expr": "0x55f217e88790-Expr" }, { - "id": "0x55892190c790-Expr", + "id": "0x55f217e88790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55892190c7b0-LiteralConstant" + "LiteralConstant": "0x55f217e887b0-LiteralConstant" }, { - "id": "0x55892190c7b0-LiteralConstant", + "id": "0x55f217e887b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55892190c7b0-IntLiteralConstant" + "IntLiteralConstant": "0x55f217e887b0-IntLiteralConstant" }, { - "id": "0x55892190c7b0-IntLiteralConstant", + "id": "0x55f217e887b0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5589219a7918-ExecutionPart" + "id": "0x55f217f23918-ExecutionPart" }, { - "id": "0x5589219a7918-list" + "id": "0x55f217f23918-list" }, { - "id": "0x5589219a7890-Statement", - "statement": "0x5589219a78a0-EndProgramStmt", + "id": "0x55f217f23890-Statement", + "statement": "0x55f217f238a0-EndProgramStmt", "source": "end program DECLARATION" }, { - "id": "0x5589219a78a0-EndProgramStmt", - "Name": "0x5589219a78a0-Name" + "id": "0x55f217f238a0-EndProgramStmt", + "Name": "0x55f217f238a0-Name" }, { - "id": "0x5589219a78a0-Name", + "id": "0x55f217f238a0-Name", "source": "DECLARATION" } ], "comments": [ { "text": "!integer i;", - "stmtId": "0x5589219a7890-Statement" + "stmtId": "0x55f217f23890-Statement", + "trailing": false }, { "text": "! i = 1", - "stmtId": "0x5589219a7890-Statement" + "stmtId": "0x55f217f23890-Statement", + "trailing": false }, { "text": "! a = 5", - "stmtId": "0x5589219a7890-Statement" + "stmtId": "0x55f217f23890-Statement", + "trailing": false } ], "enums": { diff --git a/FortranParser/resources-test/fortran/parser/do.json b/FortranParser/resources-test/fortran/parser/do.json index d3bf1d40..5fe12f36 100644 --- a/FortranParser/resources-test/fortran/parser/do.json +++ b/FortranParser/resources-test/fortran/parser/do.json @@ -1,671 +1,672 @@ { "nodes": [ { - "id": "0x563e5e510f00-Program", + "id": "0x55fc72d1ef00-Program", "ProgramUnit": [ - "0x563e5e54ac70-ProgramUnit" + "0x55fc72d58c70-ProgramUnit" ] }, { - "id": "0x563e5e54ac70-ProgramUnit", + "id": "0x55fc72d58c70-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x563e5e53cb90-MainProgram" + "MainProgram": "0x55fc72d4ab90-MainProgram" }, { - "id": "0x563e5e53cb90-MainProgram", - "Statement": "0x563e5e53ccd8-Statement", - "SpecificationPart": "0x563e5e53cc30-SpecificationPart", - "ExecutionPart": "0x563e5e53cc18-ExecutionPart", - "Statement": "0x563e5e53cb90-Statement" + "id": "0x55fc72d4ab90-MainProgram", + "Statement": "0x55fc72d4acd8-Statement", + "SpecificationPart": "0x55fc72d4ac30-SpecificationPart", + "ExecutionPart": "0x55fc72d4ac18-ExecutionPart", + "Statement": "0x55fc72d4ab90-Statement" }, { - "id": "0x563e5e53ccd8-Statement", - "statement": "0x563e5e53cce8-ProgramStmt", + "id": "0x55fc72d4acd8-Statement", + "statement": "0x55fc72d4ace8-ProgramStmt", "source": "program SIMPLE_LOOP" }, { - "id": "0x563e5e53cce8-ProgramStmt", - "Name": "0x563e5e53cce8-Name" + "id": "0x55fc72d4ace8-ProgramStmt", + "Name": "0x55fc72d4ace8-Name" }, { - "id": "0x563e5e53cce8-Name", + "id": "0x55fc72d4ace8-Name", "source": "SIMPLE_LOOP" }, { - "id": "0x563e5e53cc30-SpecificationPart", - "ImplicitPart": "0x563e5e53cc48-ImplicitPart", + "id": "0x55fc72d4ac30-SpecificationPart", + "ImplicitPart": "0x55fc72d4ac48-ImplicitPart", "DeclarationConstruct": [ - "0x563e5e51e110-DeclarationConstruct" + "0x55fc72d2c110-DeclarationConstruct" ] }, { - "id": "0x563e5e53cc48-ImplicitPart" + "id": "0x55fc72d4ac48-ImplicitPart" }, { - "id": "0x563e5e51e110-DeclarationConstruct", + "id": "0x55fc72d2c110-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x563e5e51e110-SpecificationConstruct" + "SpecificationConstruct": "0x55fc72d2c110-SpecificationConstruct" }, { - "id": "0x563e5e51e110-SpecificationConstruct", + "id": "0x55fc72d2c110-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x563e5e51e110-Statement" + "Statement": "0x55fc72d2c110-Statement" }, { - "id": "0x563e5e51e110-Statement", - "statement": "0x563e5e54af10-TypeDeclarationStmt", + "id": "0x55fc72d2c110-Statement", + "statement": "0x55fc72d58f10-TypeDeclarationStmt", "source": "integer :: i, dummy, a = 2" }, { - "id": "0x563e5e54af10-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x563e5e54af40-DeclarationTypeSpec", + "id": "0x55fc72d58f10-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55fc72d58f40-DeclarationTypeSpec", "EntityDecl": [ - "0x563e5e54b270-EntityDecl", - "0x563e5e54b020-EntityDecl", - "0x563e5e54b180-EntityDecl" + "0x55fc72d59270-EntityDecl", + "0x55fc72d59020-EntityDecl", + "0x55fc72d59180-EntityDecl" ] }, { - "id": "0x563e5e54af40-DeclarationTypeSpec", + "id": "0x55fc72d58f40-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x563e5e54af40-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55fc72d58f40-IntrinsicTypeSpec" }, { - "id": "0x563e5e54af40-IntrinsicTypeSpec", + "id": "0x55fc72d58f40-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x563e5e54af40-IntegerTypeSpec" + "IntegerTypeSpec": "0x55fc72d58f40-IntegerTypeSpec" }, { - "id": "0x563e5e54af40-IntegerTypeSpec" + "id": "0x55fc72d58f40-IntegerTypeSpec" }, { - "id": "0x563e5e54b270-EntityDecl", - "Name": "0x563e5e54b328-Name" + "id": "0x55fc72d59270-EntityDecl", + "Name": "0x55fc72d59328-Name" }, { - "id": "0x563e5e54b328-Name", + "id": "0x55fc72d59328-Name", "source": "i" }, { - "id": "0x563e5e54b020-EntityDecl", - "Name": "0x563e5e54b0d8-Name" + "id": "0x55fc72d59020-EntityDecl", + "Name": "0x55fc72d590d8-Name" }, { - "id": "0x563e5e54b0d8-Name", + "id": "0x55fc72d590d8-Name", "source": "dummy" }, { - "id": "0x563e5e54b180-EntityDecl", - "Name": "0x563e5e54b238-Name", - "Initialization": "0x563e5e54b180-Initialization" + "id": "0x55fc72d59180-EntityDecl", + "Name": "0x55fc72d59238-Name", + "Initialization": "0x55fc72d59180-Initialization" }, { - "id": "0x563e5e54b238-Name", + "id": "0x55fc72d59238-Name", "source": "a" }, { - "id": "0x563e5e54b180-Initialization", + "id": "0x55fc72d59180-Initialization", "variantKey": "Expr", - "Expr": "0x563e5e4b0790-Expr" + "Expr": "0x55fc72cbe790-Expr" }, { - "id": "0x563e5e4b0790-Expr", + "id": "0x55fc72cbe790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x563e5e4b07b0-LiteralConstant" + "LiteralConstant": "0x55fc72cbe7b0-LiteralConstant" }, { - "id": "0x563e5e4b07b0-LiteralConstant", + "id": "0x55fc72cbe7b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x563e5e4b07b0-IntLiteralConstant" + "IntLiteralConstant": "0x55fc72cbe7b0-IntLiteralConstant" }, { - "id": "0x563e5e4b07b0-IntLiteralConstant", + "id": "0x55fc72cbe7b0-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x563e5e53cc18-ExecutionPart", + "id": "0x55fc72d4ac18-ExecutionPart", "ExecutionPartConstruct": [ - "0x563e5e54bec0-ExecutionPartConstruct", - "0x563e5e54c5c0-ExecutionPartConstruct", - "0x563e5e54cc70-ExecutionPartConstruct" + "0x55fc72d59ec0-ExecutionPartConstruct", + "0x55fc72d5a5c0-ExecutionPartConstruct", + "0x55fc72d5ac70-ExecutionPartConstruct" ] }, { - "id": "0x563e5e53cc18-ExecutionPartConstruct" + "id": "0x55fc72d4ac18-ExecutionPartConstruct" }, { - "id": "0x563e5e54bec0-ExecutionPartConstruct", + "id": "0x55fc72d59ec0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x563e5e54bec0-ExecutableConstruct" + "ExecutableConstruct": "0x55fc72d59ec0-ExecutableConstruct" }, { - "id": "0x563e5e54bec0-ExecutableConstruct", + "id": "0x55fc72d59ec0-ExecutableConstruct", "variantKey": "OpenMPConstruct", - "OpenMPConstruct": "0x563e5e54c400-OpenMPConstruct" + "OpenMPConstruct": "0x55fc72d5a400-OpenMPConstruct" }, { - "id": "0x563e5e54c400-OpenMPConstruct", + "id": "0x55fc72d5a400-OpenMPConstruct", "variantKey": "OpenMPLoopConstruct", - "OpenMPLoopConstruct": "0x563e5e54c400-OpenMPLoopConstruct" + "OpenMPLoopConstruct": "0x55fc72d5a400-OpenMPLoopConstruct" }, { - "id": "0x563e5e54c400-OpenMPLoopConstruct", - "OmpBeginLoopDirective": "0x563e5e54c4c0-OmpBeginLoopDirective", + "id": "0x55fc72d5a400-OpenMPLoopConstruct", + "OmpBeginLoopDirective": "0x55fc72d5a4c0-OmpBeginLoopDirective", "ExecutionPartConstruct": [ - "0x563e5e54d280-ExecutionPartConstruct" + "0x55fc72d5b280-ExecutionPartConstruct" ], - "OmpEndLoopDirective": "0x563e5e54c410-OmpEndLoopDirective" + "OmpEndLoopDirective": "0x55fc72d5a410-OmpEndLoopDirective" }, { - "id": "0x563e5e54c4c0-OmpBeginLoopDirective", - "OmpDirectiveName": "0x563e5e54c538-OmpDirectiveName", - "OmpClauseList": "0x563e5e54c4d8-OmpClauseList", - "Flags = {}": "0x563e5e54c4d0-Flags = {}" + "id": "0x55fc72d5a4c0-OmpBeginLoopDirective", + "OmpDirectiveName": "0x55fc72d5a538-OmpDirectiveName", + "OmpClauseList": "0x55fc72d5a4d8-OmpClauseList", + "Flags = {}": "0x55fc72d5a4d0-Flags = {}" }, { - "id": "0x563e5e54c538-OmpDirectiveName", + "id": "0x55fc72d5a538-OmpDirectiveName", "directive": "parallel do" }, { - "id": "0x563e5e54c4d8-OmpClauseList" + "id": "0x55fc72d5a4d8-OmpClauseList" }, { - "id": "0x563e5e54c4a8-ExecutionPartConstruct" + "id": "0x55fc72d5a4a8-ExecutionPartConstruct" }, { - "id": "0x563e5e54d280-ExecutionPartConstruct", + "id": "0x55fc72d5b280-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x563e5e54d280-ExecutableConstruct" + "ExecutableConstruct": "0x55fc72d5b280-ExecutableConstruct" }, { - "id": "0x563e5e54d280-ExecutableConstruct", + "id": "0x55fc72d5b280-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x563e5e4e6780-DoConstruct" + "DoConstruct": "0x55fc72cf4780-DoConstruct" }, { - "id": "0x563e5e4e6780-DoConstruct", - "Statement": "0x563e5e4e67d8-Statement", + "id": "0x55fc72cf4780-DoConstruct", + "Statement": "0x55fc72cf47d8-Statement", "ExecutionPartConstruct": [ - "0x563e5e5457e0-ExecutionPartConstruct", - "0x563e5e54c060-ExecutionPartConstruct" + "0x55fc72d537e0-ExecutionPartConstruct", + "0x55fc72d5a060-ExecutionPartConstruct" ], - "Statement": "0x563e5e4e6780-Statement" + "Statement": "0x55fc72cf4780-Statement" }, { - "id": "0x563e5e4e67d8-Statement", - "statement": "0x563e5e4e67e8-NonLabelDoStmt", + "id": "0x55fc72cf47d8-Statement", + "statement": "0x55fc72cf47e8-NonLabelDoStmt", "source": "do i = 1, 5, a" }, { - "id": "0x563e5e4e67e8-NonLabelDoStmt", - "LoopControl": "0x563e5e4e67e8-LoopControl" + "id": "0x55fc72cf47e8-NonLabelDoStmt", + "LoopControl": "0x55fc72cf47e8-LoopControl" }, { - "id": "0x563e5e4e67e8-LoopControl", + "id": "0x55fc72cf47e8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x563e5e4e67e8-LoopBounds" + "LoopBounds": "0x55fc72cf47e8-LoopBounds" }, { - "id": "0x563e5e4e67e8-LoopBounds", - "var": "0x563e5e4e67e8-Name", - "lower": "0x563e5e54b4b0-Expr", - "upper": "0x563e5e54bdd0-Expr", - "step": "0x563e5e54bf70-Expr" + "id": "0x55fc72cf47e8-LoopBounds", + "var": "0x55fc72cf47e8-Name", + "lower": "0x55fc72d594b0-Expr", + "upper": "0x55fc72d59dd0-Expr", + "step": "0x55fc72d59f70-Expr" }, { - "id": "0x563e5e4e67e8-Name", + "id": "0x55fc72cf47e8-Name", "source": "i" }, { - "id": "0x563e5e54b4b0-Expr", + "id": "0x55fc72d594b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x563e5e54b4d0-LiteralConstant" + "LiteralConstant": "0x55fc72d594d0-LiteralConstant" }, { - "id": "0x563e5e54b4d0-LiteralConstant", + "id": "0x55fc72d594d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x563e5e54b4d0-IntLiteralConstant" + "IntLiteralConstant": "0x55fc72d594d0-IntLiteralConstant" }, { - "id": "0x563e5e54b4d0-IntLiteralConstant", + "id": "0x55fc72d594d0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x563e5e54bdd0-Expr", + "id": "0x55fc72d59dd0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x563e5e54bdf0-LiteralConstant" + "LiteralConstant": "0x55fc72d59df0-LiteralConstant" }, { - "id": "0x563e5e54bdf0-LiteralConstant", + "id": "0x55fc72d59df0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x563e5e54bdf0-IntLiteralConstant" + "IntLiteralConstant": "0x55fc72d59df0-IntLiteralConstant" }, { - "id": "0x563e5e54bdf0-IntLiteralConstant", + "id": "0x55fc72d59df0-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x563e5e54bf70-Expr", + "id": "0x55fc72d59f70-Expr", "variantKey": "Designator", - "Designator": "0x563e5e54d410-Designator" + "Designator": "0x55fc72d5b410-Designator" }, { - "id": "0x563e5e54d410-Designator", + "id": "0x55fc72d5b410-Designator", "variantKey": "DataRef", - "DataRef": "0x563e5e54d420-DataRef" + "DataRef": "0x55fc72d5b420-DataRef" }, { - "id": "0x563e5e54d420-DataRef", + "id": "0x55fc72d5b420-DataRef", "variantKey": "Name", - "Name": "0x563e5e54d420-Name" + "Name": "0x55fc72d5b420-Name" }, { - "id": "0x563e5e54d420-Name", + "id": "0x55fc72d5b420-Name", "source": "a" }, { - "id": "0x563e5e4e67c0-ExecutionPartConstruct" + "id": "0x55fc72cf47c0-ExecutionPartConstruct" }, { - "id": "0x563e5e5457e0-ExecutionPartConstruct", + "id": "0x55fc72d537e0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x563e5e5457e0-ExecutableConstruct" + "ExecutableConstruct": "0x55fc72d537e0-ExecutableConstruct" }, { - "id": "0x563e5e5457e0-ExecutableConstruct", + "id": "0x55fc72d537e0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x563e5e5457e0-Statement" + "Statement": "0x55fc72d537e0-Statement" }, { - "id": "0x563e5e5457e0-Statement", - "statement": "0x563e5e5457f0-ActionStmt", + "id": "0x55fc72d537e0-Statement", + "statement": "0x55fc72d537f0-ActionStmt", "source": "dummy = 3" }, { - "id": "0x563e5e5457f0-ActionStmt", + "id": "0x55fc72d537f0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x563e5e54c220-AssignmentStmt" + "AssignmentStmt": "0x55fc72d5a220-AssignmentStmt" }, { - "id": "0x563e5e54c220-AssignmentStmt", - "Variable": "0x563e5e54c300-Variable", - "Expr": "0x563e5e54c230-Expr" + "id": "0x55fc72d5a220-AssignmentStmt", + "Variable": "0x55fc72d5a300-Variable", + "Expr": "0x55fc72d5a230-Expr" }, { - "id": "0x563e5e54c300-Variable", + "id": "0x55fc72d5a300-Variable", "variantKey": "Designator", - "Designator": "0x563e5e54c0b0-Designator" + "Designator": "0x55fc72d5a0b0-Designator" }, { - "id": "0x563e5e54c0b0-Designator", + "id": "0x55fc72d5a0b0-Designator", "variantKey": "DataRef", - "DataRef": "0x563e5e54c0c0-DataRef" + "DataRef": "0x55fc72d5a0c0-DataRef" }, { - "id": "0x563e5e54c0c0-DataRef", + "id": "0x55fc72d5a0c0-DataRef", "variantKey": "Name", - "Name": "0x563e5e54c0c0-Name" + "Name": "0x55fc72d5a0c0-Name" }, { - "id": "0x563e5e54c0c0-Name", + "id": "0x55fc72d5a0c0-Name", "source": "dummy" }, { - "id": "0x563e5e54c230-Expr", + "id": "0x55fc72d5a230-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x563e5e54c250-LiteralConstant" + "LiteralConstant": "0x55fc72d5a250-LiteralConstant" }, { - "id": "0x563e5e54c250-LiteralConstant", + "id": "0x55fc72d5a250-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x563e5e54c250-IntLiteralConstant" + "IntLiteralConstant": "0x55fc72d5a250-IntLiteralConstant" }, { - "id": "0x563e5e54c250-IntLiteralConstant", + "id": "0x55fc72d5a250-IntLiteralConstant", "CharBlock": "3" }, { - "id": "0x563e5e54c060-ExecutionPartConstruct", + "id": "0x55fc72d5a060-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x563e5e54c060-ExecutableConstruct" + "ExecutableConstruct": "0x55fc72d5a060-ExecutableConstruct" }, { - "id": "0x563e5e54c060-ExecutableConstruct", + "id": "0x55fc72d5a060-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x563e5e54c060-Statement" + "Statement": "0x55fc72d5a060-Statement" }, { - "id": "0x563e5e54c060-Statement", - "statement": "0x563e5e54c070-ActionStmt", + "id": "0x55fc72d5a060-Statement", + "statement": "0x55fc72d5a070-ActionStmt", "source": "dummy = 4" }, { - "id": "0x563e5e54c070-ActionStmt", + "id": "0x55fc72d5a070-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x563e5e54c110-AssignmentStmt" + "AssignmentStmt": "0x55fc72d5a110-AssignmentStmt" }, { - "id": "0x563e5e54c110-AssignmentStmt", - "Variable": "0x563e5e54c1f0-Variable", - "Expr": "0x563e5e54c120-Expr" + "id": "0x55fc72d5a110-AssignmentStmt", + "Variable": "0x55fc72d5a1f0-Variable", + "Expr": "0x55fc72d5a120-Expr" }, { - "id": "0x563e5e54c1f0-Variable", + "id": "0x55fc72d5a1f0-Variable", "variantKey": "Designator", - "Designator": "0x563e5e54c330-Designator" + "Designator": "0x55fc72d5a330-Designator" }, { - "id": "0x563e5e54c330-Designator", + "id": "0x55fc72d5a330-Designator", "variantKey": "DataRef", - "DataRef": "0x563e5e54c340-DataRef" + "DataRef": "0x55fc72d5a340-DataRef" }, { - "id": "0x563e5e54c340-DataRef", + "id": "0x55fc72d5a340-DataRef", "variantKey": "Name", - "Name": "0x563e5e54c340-Name" + "Name": "0x55fc72d5a340-Name" }, { - "id": "0x563e5e54c340-Name", + "id": "0x55fc72d5a340-Name", "source": "dummy" }, { - "id": "0x563e5e54c120-Expr", + "id": "0x55fc72d5a120-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x563e5e54c140-LiteralConstant" + "LiteralConstant": "0x55fc72d5a140-LiteralConstant" }, { - "id": "0x563e5e54c140-LiteralConstant", + "id": "0x55fc72d5a140-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x563e5e54c140-IntLiteralConstant" + "IntLiteralConstant": "0x55fc72d5a140-IntLiteralConstant" }, { - "id": "0x563e5e54c140-IntLiteralConstant", + "id": "0x55fc72d5a140-IntLiteralConstant", "CharBlock": "4" }, { - "id": "0x563e5e4e6780-Statement", - "statement": "0x563e5e4e6790-EndDoStmt", + "id": "0x55fc72cf4780-Statement", + "statement": "0x55fc72cf4790-EndDoStmt", "source": "end do" }, { - "id": "0x563e5e4e6790-EndDoStmt" + "id": "0x55fc72cf4790-EndDoStmt" }, { - "id": "0x563e5e54c410-OmpEndLoopDirective", - "OmpDirectiveName": "0x563e5e54c488-OmpDirectiveName", - "OmpClauseList": "0x563e5e54c428-OmpClauseList", - "Flags = {}": "0x563e5e54c420-Flags = {}" + "id": "0x55fc72d5a410-OmpEndLoopDirective", + "OmpDirectiveName": "0x55fc72d5a488-OmpDirectiveName", + "OmpClauseList": "0x55fc72d5a428-OmpClauseList", + "Flags = {}": "0x55fc72d5a420-Flags = {}" }, { - "id": "0x563e5e54c488-OmpDirectiveName", + "id": "0x55fc72d5a488-OmpDirectiveName", "directive": "parallel do" }, { - "id": "0x563e5e54c428-OmpClauseList" + "id": "0x55fc72d5a428-OmpClauseList" }, { - "id": "0x563e5e54c5c0-ExecutionPartConstruct", + "id": "0x55fc72d5a5c0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x563e5e54c5c0-ExecutableConstruct" + "ExecutableConstruct": "0x55fc72d5a5c0-ExecutableConstruct" }, { - "id": "0x563e5e54c5c0-ExecutableConstruct", + "id": "0x55fc72d5a5c0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x563e5e54cae0-DoConstruct" + "DoConstruct": "0x55fc72d5aae0-DoConstruct" }, { - "id": "0x563e5e54cae0-DoConstruct", - "Statement": "0x563e5e54cb38-Statement", + "id": "0x55fc72d5aae0-DoConstruct", + "Statement": "0x55fc72d5ab38-Statement", "ExecutionPartConstruct": [ - "0x563e5e54ca90-ExecutionPartConstruct" + "0x55fc72d5aa90-ExecutionPartConstruct" ], - "Statement": "0x563e5e54cae0-Statement" + "Statement": "0x55fc72d5aae0-Statement" }, { - "id": "0x563e5e54cb38-Statement", - "statement": "0x563e5e54cb48-NonLabelDoStmt", + "id": "0x55fc72d5ab38-Statement", + "statement": "0x55fc72d5ab48-NonLabelDoStmt", "source": "do while(2 > 0)" }, { - "id": "0x563e5e54cb48-NonLabelDoStmt", - "LoopControl": "0x563e5e54cb48-LoopControl" + "id": "0x55fc72d5ab48-NonLabelDoStmt", + "LoopControl": "0x55fc72d5ab48-LoopControl" }, { - "id": "0x563e5e54cb48-LoopControl", + "id": "0x55fc72d5ab48-LoopControl", "variantKey": "Expr", - "Expr": "0x563e5e54c7d0-Expr" + "Expr": "0x55fc72d5a7d0-Expr" }, { - "id": "0x563e5e54c7d0-Expr", + "id": "0x55fc72d5a7d0-Expr", "variantKey": "GT", - "GT": "0x563e5e54c7f0-GT" + "GT": "0x55fc72d5a7f0-GT" }, { - "id": "0x563e5e54c7f0-GT", - "left": "0x563e5e54c6f0-Expr", - "right": "0x563e5e54c610-Expr", + "id": "0x55fc72d5a7f0-GT", + "left": "0x55fc72d5a6f0-Expr", + "right": "0x55fc72d5a610-Expr", "op": "GT" }, { - "id": "0x563e5e54c6f0-Expr", + "id": "0x55fc72d5a6f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x563e5e54c710-LiteralConstant" + "LiteralConstant": "0x55fc72d5a710-LiteralConstant" }, { - "id": "0x563e5e54c710-LiteralConstant", + "id": "0x55fc72d5a710-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x563e5e54c710-IntLiteralConstant" + "IntLiteralConstant": "0x55fc72d5a710-IntLiteralConstant" }, { - "id": "0x563e5e54c710-IntLiteralConstant", + "id": "0x55fc72d5a710-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x563e5e54c610-Expr", + "id": "0x55fc72d5a610-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x563e5e54c630-LiteralConstant" + "LiteralConstant": "0x55fc72d5a630-LiteralConstant" }, { - "id": "0x563e5e54c630-LiteralConstant", + "id": "0x55fc72d5a630-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x563e5e54c630-IntLiteralConstant" + "IntLiteralConstant": "0x55fc72d5a630-IntLiteralConstant" }, { - "id": "0x563e5e54c630-IntLiteralConstant", + "id": "0x55fc72d5a630-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x563e5e54cb20-ExecutionPartConstruct" + "id": "0x55fc72d5ab20-ExecutionPartConstruct" }, { - "id": "0x563e5e54ca90-ExecutionPartConstruct", + "id": "0x55fc72d5aa90-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x563e5e54ca90-ExecutableConstruct" + "ExecutableConstruct": "0x55fc72d5aa90-ExecutableConstruct" }, { - "id": "0x563e5e54ca90-ExecutableConstruct", + "id": "0x55fc72d5aa90-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x563e5e54ca90-Statement" + "Statement": "0x55fc72d5aa90-Statement" }, { - "id": "0x563e5e54ca90-Statement", - "statement": "0x563e5e54caa0-ActionStmt", + "id": "0x55fc72d5aa90-Statement", + "statement": "0x55fc72d5aaa0-ActionStmt", "source": "dummy = 2" }, { - "id": "0x563e5e54caa0-ActionStmt", + "id": "0x55fc72d5aaa0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x563e5e54c970-AssignmentStmt" + "AssignmentStmt": "0x55fc72d5a970-AssignmentStmt" }, { - "id": "0x563e5e54c970-AssignmentStmt", - "Variable": "0x563e5e54ca50-Variable", - "Expr": "0x563e5e54c980-Expr" + "id": "0x55fc72d5a970-AssignmentStmt", + "Variable": "0x55fc72d5aa50-Variable", + "Expr": "0x55fc72d5a980-Expr" }, { - "id": "0x563e5e54ca50-Variable", + "id": "0x55fc72d5aa50-Variable", "variantKey": "Designator", - "Designator": "0x563e5e54bf10-Designator" + "Designator": "0x55fc72d59f10-Designator" }, { - "id": "0x563e5e54bf10-Designator", + "id": "0x55fc72d59f10-Designator", "variantKey": "DataRef", - "DataRef": "0x563e5e54bf20-DataRef" + "DataRef": "0x55fc72d59f20-DataRef" }, { - "id": "0x563e5e54bf20-DataRef", + "id": "0x55fc72d59f20-DataRef", "variantKey": "Name", - "Name": "0x563e5e54bf20-Name" + "Name": "0x55fc72d59f20-Name" }, { - "id": "0x563e5e54bf20-Name", + "id": "0x55fc72d59f20-Name", "source": "dummy" }, { - "id": "0x563e5e54c980-Expr", + "id": "0x55fc72d5a980-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x563e5e54c9a0-LiteralConstant" + "LiteralConstant": "0x55fc72d5a9a0-LiteralConstant" }, { - "id": "0x563e5e54c9a0-LiteralConstant", + "id": "0x55fc72d5a9a0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x563e5e54c9a0-IntLiteralConstant" + "IntLiteralConstant": "0x55fc72d5a9a0-IntLiteralConstant" }, { - "id": "0x563e5e54c9a0-IntLiteralConstant", + "id": "0x55fc72d5a9a0-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x563e5e54cae0-Statement", - "statement": "0x563e5e54caf0-EndDoStmt", + "id": "0x55fc72d5aae0-Statement", + "statement": "0x55fc72d5aaf0-EndDoStmt", "source": "end do" }, { - "id": "0x563e5e54caf0-EndDoStmt" + "id": "0x55fc72d5aaf0-EndDoStmt" }, { - "id": "0x563e5e54cc70-ExecutionPartConstruct", + "id": "0x55fc72d5ac70-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x563e5e54cc70-ExecutableConstruct" + "ExecutableConstruct": "0x55fc72d5ac70-ExecutableConstruct" }, { - "id": "0x563e5e54cc70-ExecutableConstruct", + "id": "0x55fc72d5ac70-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x563e5e551f30-DoConstruct" + "DoConstruct": "0x55fc72d5ff30-DoConstruct" }, { - "id": "0x563e5e551f30-DoConstruct", - "Statement": "0x563e5e551f88-Statement", + "id": "0x55fc72d5ff30-DoConstruct", + "Statement": "0x55fc72d5ff88-Statement", "ExecutionPartConstruct": [ - "0x563e5e551ee0-ExecutionPartConstruct" + "0x55fc72d5fee0-ExecutionPartConstruct" ], - "Statement": "0x563e5e551f30-Statement" + "Statement": "0x55fc72d5ff30-Statement" }, { - "id": "0x563e5e551f88-Statement", - "statement": "0x563e5e551f98-NonLabelDoStmt", + "id": "0x55fc72d5ff88-Statement", + "statement": "0x55fc72d5ff98-NonLabelDoStmt", "source": "name: do" }, { - "id": "0x563e5e551f98-NonLabelDoStmt", - "Name": "0x563e5e552018-Name" + "id": "0x55fc72d5ff98-NonLabelDoStmt", + "Name": "0x55fc72d60018-Name" }, { - "id": "0x563e5e552018-Name", + "id": "0x55fc72d60018-Name", "source": "name" }, { - "id": "0x563e5e551f70-ExecutionPartConstruct" + "id": "0x55fc72d5ff70-ExecutionPartConstruct" }, { - "id": "0x563e5e551ee0-ExecutionPartConstruct", + "id": "0x55fc72d5fee0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x563e5e551ee0-ExecutableConstruct" + "ExecutableConstruct": "0x55fc72d5fee0-ExecutableConstruct" }, { - "id": "0x563e5e551ee0-ExecutableConstruct", + "id": "0x55fc72d5fee0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x563e5e551ee0-Statement" + "Statement": "0x55fc72d5fee0-Statement" }, { - "id": "0x563e5e551ee0-Statement", - "statement": "0x563e5e551ef0-ActionStmt", + "id": "0x55fc72d5fee0-Statement", + "statement": "0x55fc72d5fef0-ActionStmt", "source": "dummy = 4" }, { - "id": "0x563e5e551ef0-ActionStmt", + "id": "0x55fc72d5fef0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x563e5e551dc0-AssignmentStmt" + "AssignmentStmt": "0x55fc72d5fdc0-AssignmentStmt" }, { - "id": "0x563e5e551dc0-AssignmentStmt", - "Variable": "0x563e5e551ea0-Variable", - "Expr": "0x563e5e551dd0-Expr" + "id": "0x55fc72d5fdc0-AssignmentStmt", + "Variable": "0x55fc72d5fea0-Variable", + "Expr": "0x55fc72d5fdd0-Expr" }, { - "id": "0x563e5e551ea0-Variable", + "id": "0x55fc72d5fea0-Variable", "variantKey": "Designator", - "Designator": "0x563e5e54cc00-Designator" + "Designator": "0x55fc72d5ac00-Designator" }, { - "id": "0x563e5e54cc00-Designator", + "id": "0x55fc72d5ac00-Designator", "variantKey": "DataRef", - "DataRef": "0x563e5e54cc10-DataRef" + "DataRef": "0x55fc72d5ac10-DataRef" }, { - "id": "0x563e5e54cc10-DataRef", + "id": "0x55fc72d5ac10-DataRef", "variantKey": "Name", - "Name": "0x563e5e54cc10-Name" + "Name": "0x55fc72d5ac10-Name" }, { - "id": "0x563e5e54cc10-Name", + "id": "0x55fc72d5ac10-Name", "source": "dummy" }, { - "id": "0x563e5e551dd0-Expr", + "id": "0x55fc72d5fdd0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x563e5e551df0-LiteralConstant" + "LiteralConstant": "0x55fc72d5fdf0-LiteralConstant" }, { - "id": "0x563e5e551df0-LiteralConstant", + "id": "0x55fc72d5fdf0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x563e5e551df0-IntLiteralConstant" + "IntLiteralConstant": "0x55fc72d5fdf0-IntLiteralConstant" }, { - "id": "0x563e5e551df0-IntLiteralConstant", + "id": "0x55fc72d5fdf0-IntLiteralConstant", "CharBlock": "4" }, { - "id": "0x563e5e551f30-Statement", - "statement": "0x563e5e551f40-EndDoStmt", + "id": "0x55fc72d5ff30-Statement", + "statement": "0x55fc72d5ff40-EndDoStmt", "source": "end do name" }, { - "id": "0x563e5e551f40-EndDoStmt", - "Name": "0x563e5e551f40-Name" + "id": "0x55fc72d5ff40-EndDoStmt", + "Name": "0x55fc72d5ff40-Name" }, { - "id": "0x563e5e551f40-Name", + "id": "0x55fc72d5ff40-Name", "source": "name" }, { - "id": "0x563e5e53cb90-Statement", - "statement": "0x563e5e53cba0-EndProgramStmt", + "id": "0x55fc72d4ab90-Statement", + "statement": "0x55fc72d4aba0-EndProgramStmt", "source": "end program SIMPLE_LOOP" }, { - "id": "0x563e5e53cba0-EndProgramStmt", - "Name": "0x563e5e53cba0-Name" + "id": "0x55fc72d4aba0-EndProgramStmt", + "Name": "0x55fc72d4aba0-Name" }, { - "id": "0x563e5e53cba0-Name", + "id": "0x55fc72d4aba0-Name", "source": "SIMPLE_LOOP" } ], "comments": [ { "text": "!use omp_lib", - "stmtId": "0x563e5e51e110-Statement" + "stmtId": "0x55fc72d2c110-Statement", + "trailing": false } ], "enums": { diff --git a/FortranParser/resources-test/fortran/parser/hello.json b/FortranParser/resources-test/fortran/parser/hello.json index b8bb2ec9..2a1cef6a 100644 --- a/FortranParser/resources-test/fortran/parser/hello.json +++ b/FortranParser/resources-test/fortran/parser/hello.json @@ -1,332 +1,333 @@ { "nodes": [ { - "id": "0x5630aa794f00-Program", + "id": "0x561cfdde3f00-Program", "ProgramUnit": [ - "0x5630aa7c9cb0-ProgramUnit" + "0x561cfde18cb0-ProgramUnit" ] }, { - "id": "0x5630aa7c9cb0-ProgramUnit", + "id": "0x561cfde18cb0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x5630aa7c2d00-MainProgram" + "MainProgram": "0x561cfde11d00-MainProgram" }, { - "id": "0x5630aa7c2d00-MainProgram", - "Statement": "0x5630aa7c2e48-Statement", - "SpecificationPart": "0x5630aa7c2da0-SpecificationPart", - "ExecutionPart": "0x5630aa7c2d88-ExecutionPart", - "Statement": "0x5630aa7c2d00-Statement" + "id": "0x561cfde11d00-MainProgram", + "Statement": "0x561cfde11e48-Statement", + "SpecificationPart": "0x561cfde11da0-SpecificationPart", + "ExecutionPart": "0x561cfde11d88-ExecutionPart", + "Statement": "0x561cfde11d00-Statement" }, { - "id": "0x5630aa7c2e48-Statement", - "statement": "0x5630aa7c2e58-ProgramStmt", + "id": "0x561cfde11e48-Statement", + "statement": "0x561cfde11e58-ProgramStmt", "source": "program HELLO" }, { - "id": "0x5630aa7c2e58-ProgramStmt", - "Name": "0x5630aa7c2e58-Name" + "id": "0x561cfde11e58-ProgramStmt", + "Name": "0x561cfde11e58-Name" }, { - "id": "0x5630aa7c2e58-Name", + "id": "0x561cfde11e58-Name", "source": "HELLO" }, { - "id": "0x5630aa7c2da0-SpecificationPart", - "ImplicitPart": "0x5630aa7c2db8-ImplicitPart" + "id": "0x561cfde11da0-SpecificationPart", + "ImplicitPart": "0x561cfde11db8-ImplicitPart" }, { - "id": "0x5630aa7c2db8-ImplicitPart" + "id": "0x561cfde11db8-ImplicitPart" }, { - "id": "0x5630aa7c2d88-ExecutionPart", + "id": "0x561cfde11d88-ExecutionPart", "ExecutionPartConstruct": [ - "0x5630aa7d4c10-ExecutionPartConstruct", - "0x5630aa7d1560-ExecutionPartConstruct", - "0x5630aa7d4c70-ExecutionPartConstruct", - "0x5630aa7a2170-ExecutionPartConstruct" + "0x561cfde23c10-ExecutionPartConstruct", + "0x561cfde20560-ExecutionPartConstruct", + "0x561cfde23c70-ExecutionPartConstruct", + "0x561cfddf1170-ExecutionPartConstruct" ] }, { - "id": "0x5630aa7c2d88-ExecutionPartConstruct" + "id": "0x561cfde11d88-ExecutionPartConstruct" }, { - "id": "0x5630aa7d4c10-ExecutionPartConstruct", + "id": "0x561cfde23c10-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5630aa7d4c10-ExecutableConstruct" + "ExecutableConstruct": "0x561cfde23c10-ExecutableConstruct" }, { - "id": "0x5630aa7d4c10-ExecutableConstruct", + "id": "0x561cfde23c10-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5630aa7d4c10-Statement" + "Statement": "0x561cfde23c10-Statement" }, { - "id": "0x5630aa7d4c10-Statement", - "statement": "0x5630aa7d4c20-ActionStmt", + "id": "0x561cfde23c10-Statement", + "statement": "0x561cfde23c20-ActionStmt", "source": "print *, 'Hello, World!'" }, { - "id": "0x5630aa7d4c20-ActionStmt", + "id": "0x561cfde23c20-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x5630aa74a260-PrintStmt" + "PrintStmt": "0x561cfdd99260-PrintStmt" }, { - "id": "0x5630aa74a260-PrintStmt", - "Format": "0x5630aa74a278-Format", + "id": "0x561cfdd99260-PrintStmt", + "Format": "0x561cfdd99278-Format", "OutputItem": [ - "0x5630aa7d5ea0-OutputItem" + "0x561cfde24ea0-OutputItem" ] }, { - "id": "0x5630aa74a278-Format", + "id": "0x561cfdd99278-Format", "variantKey": "Star", - "Star": "0x5630aa74a278-Star" + "Star": "0x561cfdd99278-Star" }, { - "id": "0x5630aa74a278-Star" + "id": "0x561cfdd99278-Star" }, { - "id": "0x5630aa7d5ea0-OutputItem", + "id": "0x561cfde24ea0-OutputItem", "variantKey": "Expr", - "Expr": "0x5630aa7d5ea0-Expr" + "Expr": "0x561cfde24ea0-Expr" }, { - "id": "0x5630aa7d5ea0-Expr", + "id": "0x561cfde24ea0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5630aa7d5ec0-LiteralConstant" + "LiteralConstant": "0x561cfde24ec0-LiteralConstant" }, { - "id": "0x5630aa7d5ec0-LiteralConstant", + "id": "0x561cfde24ec0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x5630aa7d5ec0-CharLiteralConstant" + "CharLiteralConstant": "0x561cfde24ec0-CharLiteralConstant" }, { - "id": "0x5630aa7d5ec0-CharLiteralConstant", + "id": "0x561cfde24ec0-CharLiteralConstant", "string": "Hello, World!" }, { - "id": "0x5630aa7d1560-ExecutionPartConstruct", + "id": "0x561cfde20560-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5630aa7d1560-ExecutableConstruct" + "ExecutableConstruct": "0x561cfde20560-ExecutableConstruct" }, { - "id": "0x5630aa7d1560-ExecutableConstruct", + "id": "0x561cfde20560-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5630aa7d1560-Statement" + "Statement": "0x561cfde20560-Statement" }, { - "id": "0x5630aa7d1560-Statement", - "statement": "0x5630aa7d1570-ActionStmt", + "id": "0x561cfde20560-Statement", + "statement": "0x561cfde20570-ActionStmt", "source": "print 100, 'Hello, World!', 2" }, { - "id": "0x5630aa7d1570-ActionStmt", + "id": "0x561cfde20570-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x5630aa7d1450-PrintStmt" + "PrintStmt": "0x561cfde20450-PrintStmt" }, { - "id": "0x5630aa7d1450-PrintStmt", - "Format": "0x5630aa7d1468-Format", + "id": "0x561cfde20450-PrintStmt", + "Format": "0x561cfde20468-Format", "OutputItem": [ - "0x5630aa7d1370-OutputItem", - "0x5630aa7d3c70-OutputItem" + "0x561cfde20370-OutputItem", + "0x561cfde22c70-OutputItem" ] }, { - "id": "0x5630aa7d1468-Format", + "id": "0x561cfde20468-Format", "variantKey": "uint64_t", "uint64_t": "100" }, { - "id": "0x5630aa7d1370-OutputItem", + "id": "0x561cfde20370-OutputItem", "variantKey": "Expr", - "Expr": "0x5630aa7d1370-Expr" + "Expr": "0x561cfde20370-Expr" }, { - "id": "0x5630aa7d1370-Expr", + "id": "0x561cfde20370-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5630aa7d1390-LiteralConstant" + "LiteralConstant": "0x561cfde20390-LiteralConstant" }, { - "id": "0x5630aa7d1390-LiteralConstant", + "id": "0x561cfde20390-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x5630aa7d1390-CharLiteralConstant" + "CharLiteralConstant": "0x561cfde20390-CharLiteralConstant" }, { - "id": "0x5630aa7d1390-CharLiteralConstant", + "id": "0x561cfde20390-CharLiteralConstant", "string": "Hello, World!" }, { - "id": "0x5630aa7d3c70-OutputItem", + "id": "0x561cfde22c70-OutputItem", "variantKey": "Expr", - "Expr": "0x5630aa7d3c70-Expr" + "Expr": "0x561cfde22c70-Expr" }, { - "id": "0x5630aa7d3c70-Expr", + "id": "0x561cfde22c70-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5630aa7d3c90-LiteralConstant" + "LiteralConstant": "0x561cfde22c90-LiteralConstant" }, { - "id": "0x5630aa7d3c90-LiteralConstant", + "id": "0x561cfde22c90-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5630aa7d3c90-IntLiteralConstant" + "IntLiteralConstant": "0x561cfde22c90-IntLiteralConstant" }, { - "id": "0x5630aa7d3c90-IntLiteralConstant", + "id": "0x561cfde22c90-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x5630aa7d4c70-ExecutionPartConstruct", + "id": "0x561cfde23c70-ExecutionPartConstruct", "variantKey": "Statement", - "Statement": "0x5630aa7d4c70-Statement" + "Statement": "0x561cfde23c70-Statement" }, { - "id": "0x5630aa7d4c70-Statement", - "statement": "0x5630aa7d7380-FormatStmt", + "id": "0x561cfde23c70-Statement", + "statement": "0x561cfde26380-FormatStmt", "label": "100", "source": "100 format(a, i3)" }, { - "id": "0x5630aa7d7380-FormatStmt", - "FormatSpecification": "0x5630aa7d7380-FormatSpecification" + "id": "0x561cfde26380-FormatStmt", + "FormatSpecification": "0x561cfde26380-FormatSpecification" }, { - "id": "0x5630aa7d7380-FormatSpecification", + "id": "0x561cfde26380-FormatSpecification", "items": [ - "0x5630aa7d5810-FormatItem", - "0x5630aa7d5e30-FormatItem" + "0x561cfde24810-FormatItem", + "0x561cfde24e30-FormatItem" ], "unlimitedItems": [] }, { - "id": "0x5630aa7d5810-FormatItem", + "id": "0x561cfde24810-FormatItem", "variantKey": "IntrinsicTypeDataEditDesc", - "IntrinsicTypeDataEditDesc": "0x5630aa7d5820-IntrinsicTypeDataEditDesc" + "IntrinsicTypeDataEditDesc": "0x561cfde24820-IntrinsicTypeDataEditDesc" }, { - "id": "0x5630aa7d5820-IntrinsicTypeDataEditDesc", - "kind": "0x5630aa7d5820-Kind" + "id": "0x561cfde24820-IntrinsicTypeDataEditDesc", + "kind": "0x561cfde24820-Kind" }, { - "id": "0x5630aa7d5820-Kind" + "id": "0x561cfde24820-Kind" }, { - "id": "0x5630aa7d5e30-FormatItem", + "id": "0x561cfde24e30-FormatItem", "variantKey": "IntrinsicTypeDataEditDesc", - "IntrinsicTypeDataEditDesc": "0x5630aa7d5e40-IntrinsicTypeDataEditDesc" + "IntrinsicTypeDataEditDesc": "0x561cfde24e40-IntrinsicTypeDataEditDesc" }, { - "id": "0x5630aa7d5e40-IntrinsicTypeDataEditDesc", - "kind": "0x5630aa7d5e40-Kind", + "id": "0x561cfde24e40-IntrinsicTypeDataEditDesc", + "kind": "0x561cfde24e40-Kind", "width": "3" }, { - "id": "0x5630aa7d5e40-Kind" + "id": "0x561cfde24e40-Kind" }, { - "id": "0x5630aa7a2170-ExecutionPartConstruct", + "id": "0x561cfddf1170-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5630aa7a2170-ExecutableConstruct" + "ExecutableConstruct": "0x561cfddf1170-ExecutableConstruct" }, { - "id": "0x5630aa7a2170-ExecutableConstruct", + "id": "0x561cfddf1170-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5630aa7a2170-Statement" + "Statement": "0x561cfddf1170-Statement" }, { - "id": "0x5630aa7a2170-Statement", - "statement": "0x5630aa7a2180-ActionStmt", + "id": "0x561cfddf1170-Statement", + "statement": "0x561cfddf1180-ActionStmt", "label": "20", "source": "20 print '(A, F6.3)', 'Value = ', 3" }, { - "id": "0x5630aa7a2180-ActionStmt", + "id": "0x561cfddf1180-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x5630aa7bfbd0-PrintStmt" + "PrintStmt": "0x561cfde0ebd0-PrintStmt" }, { - "id": "0x5630aa7bfbd0-PrintStmt", - "Format": "0x5630aa7bfbe8-Format", + "id": "0x561cfde0ebd0-PrintStmt", + "Format": "0x561cfde0ebe8-Format", "OutputItem": [ - "0x5630aa7bfaf0-OutputItem", - "0x5630aa7bfa00-OutputItem" + "0x561cfde0eaf0-OutputItem", + "0x561cfde0ea00-OutputItem" ] }, { - "id": "0x5630aa7bfbe8-Format", + "id": "0x561cfde0ebe8-Format", "variantKey": "Expr", - "Expr": "0x5630aa7bfbe8-Expr" + "Expr": "0x561cfde0ebe8-Expr" }, { - "id": "0x5630aa7bfbe8-Expr", + "id": "0x561cfde0ebe8-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5630aa7bfc08-LiteralConstant" + "LiteralConstant": "0x561cfde0ec08-LiteralConstant" }, { - "id": "0x5630aa7bfc08-LiteralConstant", + "id": "0x561cfde0ec08-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x5630aa7bfc08-CharLiteralConstant" + "CharLiteralConstant": "0x561cfde0ec08-CharLiteralConstant" }, { - "id": "0x5630aa7bfc08-CharLiteralConstant", + "id": "0x561cfde0ec08-CharLiteralConstant", "string": "(A, F6.3)" }, { - "id": "0x5630aa7bfaf0-OutputItem", + "id": "0x561cfde0eaf0-OutputItem", "variantKey": "Expr", - "Expr": "0x5630aa7bfaf0-Expr" + "Expr": "0x561cfde0eaf0-Expr" }, { - "id": "0x5630aa7bfaf0-Expr", + "id": "0x561cfde0eaf0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5630aa7bfb10-LiteralConstant" + "LiteralConstant": "0x561cfde0eb10-LiteralConstant" }, { - "id": "0x5630aa7bfb10-LiteralConstant", + "id": "0x561cfde0eb10-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x5630aa7bfb10-CharLiteralConstant" + "CharLiteralConstant": "0x561cfde0eb10-CharLiteralConstant" }, { - "id": "0x5630aa7bfb10-CharLiteralConstant", + "id": "0x561cfde0eb10-CharLiteralConstant", "string": "Value = " }, { - "id": "0x5630aa7bfa00-OutputItem", + "id": "0x561cfde0ea00-OutputItem", "variantKey": "Expr", - "Expr": "0x5630aa7bfa00-Expr" + "Expr": "0x561cfde0ea00-Expr" }, { - "id": "0x5630aa7bfa00-Expr", + "id": "0x561cfde0ea00-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5630aa7bfa20-LiteralConstant" + "LiteralConstant": "0x561cfde0ea20-LiteralConstant" }, { - "id": "0x5630aa7bfa20-LiteralConstant", + "id": "0x561cfde0ea20-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5630aa7bfa20-IntLiteralConstant" + "IntLiteralConstant": "0x561cfde0ea20-IntLiteralConstant" }, { - "id": "0x5630aa7bfa20-IntLiteralConstant", + "id": "0x561cfde0ea20-IntLiteralConstant", "CharBlock": "3" }, { - "id": "0x5630aa7c2d00-Statement", - "statement": "0x5630aa7c2d10-EndProgramStmt", + "id": "0x561cfde11d00-Statement", + "statement": "0x561cfde11d10-EndProgramStmt", "source": "end program HELLO" }, { - "id": "0x5630aa7c2d10-EndProgramStmt", - "Name": "0x5630aa7c2d10-Name" + "id": "0x561cfde11d10-EndProgramStmt", + "Name": "0x561cfde11d10-Name" }, { - "id": "0x5630aa7c2d10-Name", + "id": "0x561cfde11d10-Name", "source": "HELLO" } ], "comments": [ { "text": "! This is a comment line; it is ignored by the compiler", - "stmtId": "0x5630aa7d4c10-Statement" + "stmtId": "0x561cfde23c10-Statement", + "trailing": false } ], "enums": { diff --git a/FortranParser/resources-test/fortran/parser/polybench/3mm.json b/FortranParser/resources-test/fortran/parser/polybench/3mm.json index 17a3139f..e47f66e4 100644 --- a/FortranParser/resources-test/fortran/parser/polybench/3mm.json +++ b/FortranParser/resources-test/fortran/parser/polybench/3mm.json @@ -1,10513 +1,10535 @@ { "nodes": [ { - "id": "0x559712283f00-Program", + "id": "0x55eadb461f00-Program", "ProgramUnit": [ - "0x5597122d0f80-ProgramUnit" + "0x55eadb4aef80-ProgramUnit" ] }, { - "id": "0x5597122d0f80-ProgramUnit", + "id": "0x55eadb4aef80-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x5597122c20a0-MainProgram" + "MainProgram": "0x55eadb4a00a0-MainProgram" }, { - "id": "0x5597122c20a0-MainProgram", - "Statement": "0x5597122c21e8-Statement", - "SpecificationPart": "0x5597122c2140-SpecificationPart", - "ExecutionPart": "0x5597122c2128-ExecutionPart", - "InternalSubprogramPart": "0x5597122c20e0-InternalSubprogramPart", - "Statement": "0x5597122c20a0-Statement" + "id": "0x55eadb4a00a0-MainProgram", + "Statement": "0x55eadb4a01e8-Statement", + "SpecificationPart": "0x55eadb4a0140-SpecificationPart", + "ExecutionPart": "0x55eadb4a0128-ExecutionPart", + "InternalSubprogramPart": "0x55eadb4a00e0-InternalSubprogramPart", + "Statement": "0x55eadb4a00a0-Statement" }, { - "id": "0x5597122c21e8-Statement", - "statement": "0x5597122c21f8-ProgramStmt", + "id": "0x55eadb4a01e8-Statement", + "statement": "0x55eadb4a01f8-ProgramStmt", "source": "program THREE_MM" }, { - "id": "0x5597122c21f8-ProgramStmt", - "Name": "0x5597122c21f8-Name" + "id": "0x55eadb4a01f8-ProgramStmt", + "Name": "0x55eadb4a01f8-Name" }, { - "id": "0x5597122c21f8-Name", + "id": "0x55eadb4a01f8-Name", "source": "THREE_MM" }, { - "id": "0x5597122c2140-SpecificationPart", - "ImplicitPart": "0x5597122c2158-ImplicitPart", + "id": "0x55eadb4a0140-SpecificationPart", + "ImplicitPart": "0x55eadb4a0158-ImplicitPart", "DeclarationConstruct": [ - "0x559712291110-DeclarationConstruct", - "0x559712290da0-DeclarationConstruct", - "0x5597122c67b0-DeclarationConstruct", - "0x5597122392e0-DeclarationConstruct", - "0x5597122ae9c0-DeclarationConstruct", - "0x5597122aec30-DeclarationConstruct", - "0x5597122aeea0-DeclarationConstruct", - "0x559712291170-DeclarationConstruct" + "0x55eadb46f110-DeclarationConstruct", + "0x55eadb46eda0-DeclarationConstruct", + "0x55eadb4a47b0-DeclarationConstruct", + "0x55eadb4172e0-DeclarationConstruct", + "0x55eadb48c9c0-DeclarationConstruct", + "0x55eadb48cc30-DeclarationConstruct", + "0x55eadb48cea0-DeclarationConstruct", + "0x55eadb46f170-DeclarationConstruct" ] }, { - "id": "0x5597122c2158-ImplicitPart" + "id": "0x55eadb4a0158-ImplicitPart" }, { - "id": "0x559712291110-DeclarationConstruct", + "id": "0x55eadb46f110-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x559712291110-SpecificationConstruct" + "SpecificationConstruct": "0x55eadb46f110-SpecificationConstruct" }, { - "id": "0x559712291110-SpecificationConstruct", + "id": "0x55eadb46f110-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x559712291110-Statement" + "Statement": "0x55eadb46f110-Statement" }, { - "id": "0x559712291110-Statement", - "statement": "0x5597122c5f50-TypeDeclarationStmt", + "id": "0x55eadb46f110-Statement", + "statement": "0x55eadb4a3f50-TypeDeclarationStmt", "source": "double precision, dimension(:, :), allocatable :: a" }, { - "id": "0x5597122c5f50-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5597122c5f80-DeclarationTypeSpec", + "id": "0x55eadb4a3f50-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4a3f80-DeclarationTypeSpec", "AttrSpec": [ - "0x5597122c8ff0-AttrSpec", - "0x5597122b8460-AttrSpec" + "0x55eadb4a6ff0-AttrSpec", + "0x55eadb496460-AttrSpec" ], "EntityDecl": [ - "0x5597122c6300-EntityDecl" + "0x55eadb4a4300-EntityDecl" ] }, { - "id": "0x5597122c5f80-DeclarationTypeSpec", + "id": "0x55eadb4a3f80-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5597122c5f80-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55eadb4a3f80-IntrinsicTypeSpec" }, { - "id": "0x5597122c5f80-IntrinsicTypeSpec", + "id": "0x55eadb4a3f80-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x5597122c5f80-DoublePrecision" + "DoublePrecision": "0x55eadb4a3f80-DoublePrecision" }, { - "id": "0x5597122c5f80-DoublePrecision" + "id": "0x55eadb4a3f80-DoublePrecision" }, { - "id": "0x5597122c8ff0-AttrSpec", + "id": "0x55eadb4a6ff0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x5597122c8ff0-ArraySpec" + "ArraySpec": "0x55eadb4a6ff0-ArraySpec" }, { - "id": "0x5597122c8ff0-ArraySpec", + "id": "0x55eadb4a6ff0-ArraySpec", "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x5597122c8ff0-DeferredShapeSpecList" + "DeferredShapeSpecList": "0x55eadb4a6ff0-DeferredShapeSpecList" }, { - "id": "0x5597122c8ff0-DeferredShapeSpecList", + "id": "0x55eadb4a6ff0-DeferredShapeSpecList", "int": "2" }, { - "id": "0x5597122b8460-AttrSpec", + "id": "0x55eadb496460-AttrSpec", "variantKey": "Allocatable", - "Allocatable": "0x5597122b8460-Allocatable" + "Allocatable": "0x55eadb496460-Allocatable" }, { - "id": "0x5597122b8460-Allocatable", + "id": "0x55eadb496460-Allocatable", "keyword": "Allocatable" }, { - "id": "0x5597122c6300-EntityDecl", - "Name": "0x5597122c63b8-Name" + "id": "0x55eadb4a4300-EntityDecl", + "Name": "0x55eadb4a43b8-Name" }, { - "id": "0x5597122c63b8-Name", + "id": "0x55eadb4a43b8-Name", "source": "a" }, { - "id": "0x559712290da0-DeclarationConstruct", + "id": "0x55eadb46eda0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x559712290da0-SpecificationConstruct" + "SpecificationConstruct": "0x55eadb46eda0-SpecificationConstruct" }, { - "id": "0x559712290da0-SpecificationConstruct", + "id": "0x55eadb46eda0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x559712290da0-Statement" + "Statement": "0x55eadb46eda0-Statement" }, { - "id": "0x559712290da0-Statement", - "statement": "0x5597122c5fd0-TypeDeclarationStmt", + "id": "0x55eadb46eda0-Statement", + "statement": "0x55eadb4a3fd0-TypeDeclarationStmt", "source": "double precision, dimension(:, :), allocatable :: b" }, { - "id": "0x5597122c5fd0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5597122c6000-DeclarationTypeSpec", + "id": "0x55eadb4a3fd0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4a4000-DeclarationTypeSpec", "AttrSpec": [ - "0x5597122ba210-AttrSpec", - "0x5597122c1e90-AttrSpec" + "0x55eadb498210-AttrSpec", + "0x55eadb49fe90-AttrSpec" ], "EntityDecl": [ - "0x5597122c6550-EntityDecl" + "0x55eadb4a4550-EntityDecl" ] }, { - "id": "0x5597122c6000-DeclarationTypeSpec", + "id": "0x55eadb4a4000-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5597122c6000-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55eadb4a4000-IntrinsicTypeSpec" }, { - "id": "0x5597122c6000-IntrinsicTypeSpec", + "id": "0x55eadb4a4000-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x5597122c6000-DoublePrecision" + "DoublePrecision": "0x55eadb4a4000-DoublePrecision" }, { - "id": "0x5597122c6000-DoublePrecision" + "id": "0x55eadb4a4000-DoublePrecision" }, { - "id": "0x5597122ba210-AttrSpec", + "id": "0x55eadb498210-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x5597122ba210-ArraySpec" + "ArraySpec": "0x55eadb498210-ArraySpec" }, { - "id": "0x5597122ba210-ArraySpec", + "id": "0x55eadb498210-ArraySpec", "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x5597122ba210-DeferredShapeSpecList" + "DeferredShapeSpecList": "0x55eadb498210-DeferredShapeSpecList" }, { - "id": "0x5597122ba210-DeferredShapeSpecList", + "id": "0x55eadb498210-DeferredShapeSpecList", "int": "2" }, { - "id": "0x5597122c1e90-AttrSpec", + "id": "0x55eadb49fe90-AttrSpec", "variantKey": "Allocatable", - "Allocatable": "0x5597122c1e90-Allocatable" + "Allocatable": "0x55eadb49fe90-Allocatable" }, { - "id": "0x5597122c1e90-Allocatable", + "id": "0x55eadb49fe90-Allocatable", "keyword": "Allocatable" }, { - "id": "0x5597122c6550-EntityDecl", - "Name": "0x5597122c6608-Name" + "id": "0x55eadb4a4550-EntityDecl", + "Name": "0x55eadb4a4608-Name" }, { - "id": "0x5597122c6608-Name", + "id": "0x55eadb4a4608-Name", "source": "b" }, { - "id": "0x5597122c67b0-DeclarationConstruct", + "id": "0x55eadb4a47b0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5597122c67b0-SpecificationConstruct" + "SpecificationConstruct": "0x55eadb4a47b0-SpecificationConstruct" }, { - "id": "0x5597122c67b0-SpecificationConstruct", + "id": "0x55eadb4a47b0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5597122c67b0-Statement" + "Statement": "0x55eadb4a47b0-Statement" }, { - "id": "0x5597122c67b0-Statement", - "statement": "0x5597122c64c0-TypeDeclarationStmt", + "id": "0x55eadb4a47b0-Statement", + "statement": "0x55eadb4a44c0-TypeDeclarationStmt", "source": "double precision, dimension(:, :), allocatable :: c" }, { - "id": "0x5597122c64c0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5597122c64f0-DeclarationTypeSpec", + "id": "0x55eadb4a44c0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4a44f0-DeclarationTypeSpec", "AttrSpec": [ - "0x5597122bc330-AttrSpec", - "0x5597122c85f0-AttrSpec" + "0x55eadb49a330-AttrSpec", + "0x55eadb4a65f0-AttrSpec" ], "EntityDecl": [ - "0x5597122c66c0-EntityDecl" + "0x55eadb4a46c0-EntityDecl" ] }, { - "id": "0x5597122c64f0-DeclarationTypeSpec", + "id": "0x55eadb4a44f0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5597122c64f0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55eadb4a44f0-IntrinsicTypeSpec" }, { - "id": "0x5597122c64f0-IntrinsicTypeSpec", + "id": "0x55eadb4a44f0-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x5597122c64f0-DoublePrecision" + "DoublePrecision": "0x55eadb4a44f0-DoublePrecision" }, { - "id": "0x5597122c64f0-DoublePrecision" + "id": "0x55eadb4a44f0-DoublePrecision" }, { - "id": "0x5597122bc330-AttrSpec", + "id": "0x55eadb49a330-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x5597122bc330-ArraySpec" + "ArraySpec": "0x55eadb49a330-ArraySpec" }, { - "id": "0x5597122bc330-ArraySpec", + "id": "0x55eadb49a330-ArraySpec", "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x5597122bc330-DeferredShapeSpecList" + "DeferredShapeSpecList": "0x55eadb49a330-DeferredShapeSpecList" }, { - "id": "0x5597122bc330-DeferredShapeSpecList", + "id": "0x55eadb49a330-DeferredShapeSpecList", "int": "2" }, { - "id": "0x5597122c85f0-AttrSpec", + "id": "0x55eadb4a65f0-AttrSpec", "variantKey": "Allocatable", - "Allocatable": "0x5597122c85f0-Allocatable" + "Allocatable": "0x55eadb4a65f0-Allocatable" }, { - "id": "0x5597122c85f0-Allocatable", + "id": "0x55eadb4a65f0-Allocatable", "keyword": "Allocatable" }, { - "id": "0x5597122c66c0-EntityDecl", - "Name": "0x5597122c6778-Name" + "id": "0x55eadb4a46c0-EntityDecl", + "Name": "0x55eadb4a4778-Name" }, { - "id": "0x5597122c6778-Name", + "id": "0x55eadb4a4778-Name", "source": "c" }, { - "id": "0x5597122392e0-DeclarationConstruct", + "id": "0x55eadb4172e0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5597122392e0-SpecificationConstruct" + "SpecificationConstruct": "0x55eadb4172e0-SpecificationConstruct" }, { - "id": "0x5597122392e0-SpecificationConstruct", + "id": "0x55eadb4172e0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5597122392e0-Statement" + "Statement": "0x55eadb4172e0-Statement" }, { - "id": "0x5597122392e0-Statement", - "statement": "0x5597122c6630-TypeDeclarationStmt", + "id": "0x55eadb4172e0-Statement", + "statement": "0x55eadb4a4630-TypeDeclarationStmt", "source": "double precision, dimension(:, :), allocatable :: d" }, { - "id": "0x5597122c6630-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5597122c6660-DeclarationTypeSpec", + "id": "0x55eadb4a4630-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4a4660-DeclarationTypeSpec", "AttrSpec": [ - "0x5597122c5cd0-AttrSpec", - "0x5597122c2380-AttrSpec" + "0x55eadb4a3cd0-AttrSpec", + "0x55eadb4a0380-AttrSpec" ], "EntityDecl": [ - "0x5597122c1c70-EntityDecl" + "0x55eadb49fc70-EntityDecl" ] }, { - "id": "0x5597122c6660-DeclarationTypeSpec", + "id": "0x55eadb4a4660-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5597122c6660-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55eadb4a4660-IntrinsicTypeSpec" }, { - "id": "0x5597122c6660-IntrinsicTypeSpec", + "id": "0x55eadb4a4660-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x5597122c6660-DoublePrecision" + "DoublePrecision": "0x55eadb4a4660-DoublePrecision" }, { - "id": "0x5597122c6660-DoublePrecision" + "id": "0x55eadb4a4660-DoublePrecision" }, { - "id": "0x5597122c5cd0-AttrSpec", + "id": "0x55eadb4a3cd0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x5597122c5cd0-ArraySpec" + "ArraySpec": "0x55eadb4a3cd0-ArraySpec" }, { - "id": "0x5597122c5cd0-ArraySpec", + "id": "0x55eadb4a3cd0-ArraySpec", "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x5597122c5cd0-DeferredShapeSpecList" + "DeferredShapeSpecList": "0x55eadb4a3cd0-DeferredShapeSpecList" }, { - "id": "0x5597122c5cd0-DeferredShapeSpecList", + "id": "0x55eadb4a3cd0-DeferredShapeSpecList", "int": "2" }, { - "id": "0x5597122c2380-AttrSpec", + "id": "0x55eadb4a0380-AttrSpec", "variantKey": "Allocatable", - "Allocatable": "0x5597122c2380-Allocatable" + "Allocatable": "0x55eadb4a0380-Allocatable" }, { - "id": "0x5597122c2380-Allocatable", + "id": "0x55eadb4a0380-Allocatable", "keyword": "Allocatable" }, { - "id": "0x5597122c1c70-EntityDecl", - "Name": "0x5597122c1d28-Name" + "id": "0x55eadb49fc70-EntityDecl", + "Name": "0x55eadb49fd28-Name" }, { - "id": "0x5597122c1d28-Name", + "id": "0x55eadb49fd28-Name", "source": "d" }, { - "id": "0x5597122ae9c0-DeclarationConstruct", + "id": "0x55eadb48c9c0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5597122ae9c0-SpecificationConstruct" + "SpecificationConstruct": "0x55eadb48c9c0-SpecificationConstruct" }, { - "id": "0x5597122ae9c0-SpecificationConstruct", + "id": "0x55eadb48c9c0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5597122ae9c0-Statement" + "Statement": "0x55eadb48c9c0-Statement" }, { - "id": "0x5597122ae9c0-Statement", - "statement": "0x5597122ae770-TypeDeclarationStmt", + "id": "0x55eadb48c9c0-Statement", + "statement": "0x55eadb48c770-TypeDeclarationStmt", "source": "double precision, dimension(:, :), allocatable :: e" }, { - "id": "0x5597122ae770-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5597122ae7a0-DeclarationTypeSpec", + "id": "0x55eadb48c770-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb48c7a0-DeclarationTypeSpec", "AttrSpec": [ - "0x5597122ae880-AttrSpec", - "0x559712239340-AttrSpec" + "0x55eadb48c880-AttrSpec", + "0x55eadb417340-AttrSpec" ], "EntityDecl": [ - "0x5597122ae8d0-EntityDecl" + "0x55eadb48c8d0-EntityDecl" ] }, { - "id": "0x5597122ae7a0-DeclarationTypeSpec", + "id": "0x55eadb48c7a0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5597122ae7a0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55eadb48c7a0-IntrinsicTypeSpec" }, { - "id": "0x5597122ae7a0-IntrinsicTypeSpec", + "id": "0x55eadb48c7a0-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x5597122ae7a0-DoublePrecision" + "DoublePrecision": "0x55eadb48c7a0-DoublePrecision" }, { - "id": "0x5597122ae7a0-DoublePrecision" + "id": "0x55eadb48c7a0-DoublePrecision" }, { - "id": "0x5597122ae880-AttrSpec", + "id": "0x55eadb48c880-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x5597122ae880-ArraySpec" + "ArraySpec": "0x55eadb48c880-ArraySpec" }, { - "id": "0x5597122ae880-ArraySpec", + "id": "0x55eadb48c880-ArraySpec", "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x5597122ae880-DeferredShapeSpecList" + "DeferredShapeSpecList": "0x55eadb48c880-DeferredShapeSpecList" }, { - "id": "0x5597122ae880-DeferredShapeSpecList", + "id": "0x55eadb48c880-DeferredShapeSpecList", "int": "2" }, { - "id": "0x559712239340-AttrSpec", + "id": "0x55eadb417340-AttrSpec", "variantKey": "Allocatable", - "Allocatable": "0x559712239340-Allocatable" + "Allocatable": "0x55eadb417340-Allocatable" }, { - "id": "0x559712239340-Allocatable", + "id": "0x55eadb417340-Allocatable", "keyword": "Allocatable" }, { - "id": "0x5597122ae8d0-EntityDecl", - "Name": "0x5597122ae988-Name" + "id": "0x55eadb48c8d0-EntityDecl", + "Name": "0x55eadb48c988-Name" }, { - "id": "0x5597122ae988-Name", + "id": "0x55eadb48c988-Name", "source": "e" }, { - "id": "0x5597122aec30-DeclarationConstruct", + "id": "0x55eadb48cc30-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5597122aec30-SpecificationConstruct" + "SpecificationConstruct": "0x55eadb48cc30-SpecificationConstruct" }, { - "id": "0x5597122aec30-SpecificationConstruct", + "id": "0x55eadb48cc30-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5597122aec30-Statement" + "Statement": "0x55eadb48cc30-Statement" }, { - "id": "0x5597122aec30-Statement", - "statement": "0x5597122ae7f0-TypeDeclarationStmt", + "id": "0x55eadb48cc30-Statement", + "statement": "0x55eadb48c7f0-TypeDeclarationStmt", "source": "double precision, dimension(:, :), allocatable :: f" }, { - "id": "0x5597122ae7f0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5597122ae820-DeclarationTypeSpec", + "id": "0x55eadb48c7f0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb48c820-DeclarationTypeSpec", "AttrSpec": [ - "0x5597122aeaf0-AttrSpec", - "0x5597122aeaa0-AttrSpec" + "0x55eadb48caf0-AttrSpec", + "0x55eadb48caa0-AttrSpec" ], "EntityDecl": [ - "0x5597122aeb40-EntityDecl" + "0x55eadb48cb40-EntityDecl" ] }, { - "id": "0x5597122ae820-DeclarationTypeSpec", + "id": "0x55eadb48c820-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5597122ae820-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55eadb48c820-IntrinsicTypeSpec" }, { - "id": "0x5597122ae820-IntrinsicTypeSpec", + "id": "0x55eadb48c820-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x5597122ae820-DoublePrecision" + "DoublePrecision": "0x55eadb48c820-DoublePrecision" }, { - "id": "0x5597122ae820-DoublePrecision" + "id": "0x55eadb48c820-DoublePrecision" }, { - "id": "0x5597122aeaf0-AttrSpec", + "id": "0x55eadb48caf0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x5597122aeaf0-ArraySpec" + "ArraySpec": "0x55eadb48caf0-ArraySpec" }, { - "id": "0x5597122aeaf0-ArraySpec", + "id": "0x55eadb48caf0-ArraySpec", "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x5597122aeaf0-DeferredShapeSpecList" + "DeferredShapeSpecList": "0x55eadb48caf0-DeferredShapeSpecList" }, { - "id": "0x5597122aeaf0-DeferredShapeSpecList", + "id": "0x55eadb48caf0-DeferredShapeSpecList", "int": "2" }, { - "id": "0x5597122aeaa0-AttrSpec", + "id": "0x55eadb48caa0-AttrSpec", "variantKey": "Allocatable", - "Allocatable": "0x5597122aeaa0-Allocatable" + "Allocatable": "0x55eadb48caa0-Allocatable" }, { - "id": "0x5597122aeaa0-Allocatable", + "id": "0x55eadb48caa0-Allocatable", "keyword": "Allocatable" }, { - "id": "0x5597122aeb40-EntityDecl", - "Name": "0x5597122aebf8-Name" + "id": "0x55eadb48cb40-EntityDecl", + "Name": "0x55eadb48cbf8-Name" }, { - "id": "0x5597122aebf8-Name", + "id": "0x55eadb48cbf8-Name", "source": "f" }, { - "id": "0x5597122aeea0-DeclarationConstruct", + "id": "0x55eadb48cea0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5597122aeea0-SpecificationConstruct" + "SpecificationConstruct": "0x55eadb48cea0-SpecificationConstruct" }, { - "id": "0x5597122aeea0-SpecificationConstruct", + "id": "0x55eadb48cea0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5597122aeea0-Statement" + "Statement": "0x55eadb48cea0-Statement" }, { - "id": "0x5597122aeea0-Statement", - "statement": "0x5597122aea10-TypeDeclarationStmt", + "id": "0x55eadb48cea0-Statement", + "statement": "0x55eadb48ca10-TypeDeclarationStmt", "source": "double precision, dimension(:, :), allocatable :: g" }, { - "id": "0x5597122aea10-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5597122aea40-DeclarationTypeSpec", + "id": "0x55eadb48ca10-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb48ca40-DeclarationTypeSpec", "AttrSpec": [ - "0x5597122aed60-AttrSpec", - "0x5597122aed10-AttrSpec" + "0x55eadb48cd60-AttrSpec", + "0x55eadb48cd10-AttrSpec" ], "EntityDecl": [ - "0x5597122aedb0-EntityDecl" + "0x55eadb48cdb0-EntityDecl" ] }, { - "id": "0x5597122aea40-DeclarationTypeSpec", + "id": "0x55eadb48ca40-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5597122aea40-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55eadb48ca40-IntrinsicTypeSpec" }, { - "id": "0x5597122aea40-IntrinsicTypeSpec", + "id": "0x55eadb48ca40-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x5597122aea40-DoublePrecision" + "DoublePrecision": "0x55eadb48ca40-DoublePrecision" }, { - "id": "0x5597122aea40-DoublePrecision" + "id": "0x55eadb48ca40-DoublePrecision" }, { - "id": "0x5597122aed60-AttrSpec", + "id": "0x55eadb48cd60-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x5597122aed60-ArraySpec" + "ArraySpec": "0x55eadb48cd60-ArraySpec" }, { - "id": "0x5597122aed60-ArraySpec", + "id": "0x55eadb48cd60-ArraySpec", "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x5597122aed60-DeferredShapeSpecList" + "DeferredShapeSpecList": "0x55eadb48cd60-DeferredShapeSpecList" }, { - "id": "0x5597122aed60-DeferredShapeSpecList", + "id": "0x55eadb48cd60-DeferredShapeSpecList", "int": "2" }, { - "id": "0x5597122aed10-AttrSpec", + "id": "0x55eadb48cd10-AttrSpec", "variantKey": "Allocatable", - "Allocatable": "0x5597122aed10-Allocatable" + "Allocatable": "0x55eadb48cd10-Allocatable" }, { - "id": "0x5597122aed10-Allocatable", + "id": "0x55eadb48cd10-Allocatable", "keyword": "Allocatable" }, { - "id": "0x5597122aedb0-EntityDecl", - "Name": "0x5597122aee68-Name" + "id": "0x55eadb48cdb0-EntityDecl", + "Name": "0x55eadb48ce68-Name" }, { - "id": "0x5597122aee68-Name", + "id": "0x55eadb48ce68-Name", "source": "g" }, { - "id": "0x559712291170-DeclarationConstruct", + "id": "0x55eadb46f170-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x559712291170-SpecificationConstruct" + "SpecificationConstruct": "0x55eadb46f170-SpecificationConstruct" }, { - "id": "0x559712291170-SpecificationConstruct", + "id": "0x55eadb46f170-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x559712291170-Statement" + "Statement": "0x55eadb46f170-Statement" }, { - "id": "0x559712291170-Statement", - "statement": "0x5597122aec80-TypeDeclarationStmt", + "id": "0x55eadb46f170-Statement", + "statement": "0x55eadb48cc80-TypeDeclarationStmt", "source": "integer :: i" }, { - "id": "0x5597122aec80-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5597122aecb0-DeclarationTypeSpec", + "id": "0x55eadb48cc80-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb48ccb0-DeclarationTypeSpec", "EntityDecl": [ - "0x5597122aef80-EntityDecl" + "0x55eadb48cf80-EntityDecl" ] }, { - "id": "0x5597122aecb0-DeclarationTypeSpec", + "id": "0x55eadb48ccb0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5597122aecb0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55eadb48ccb0-IntrinsicTypeSpec" }, { - "id": "0x5597122aecb0-IntrinsicTypeSpec", + "id": "0x55eadb48ccb0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x5597122aecb0-IntegerTypeSpec" + "IntegerTypeSpec": "0x55eadb48ccb0-IntegerTypeSpec" }, { - "id": "0x5597122aecb0-IntegerTypeSpec" + "id": "0x55eadb48ccb0-IntegerTypeSpec" }, { - "id": "0x5597122aef80-EntityDecl", - "Name": "0x5597122af038-Name" + "id": "0x55eadb48cf80-EntityDecl", + "Name": "0x55eadb48d038-Name" }, { - "id": "0x5597122af038-Name", + "id": "0x55eadb48d038-Name", "source": "i" }, { - "id": "0x5597122c2128-ExecutionPart", + "id": "0x55eadb4a0128-ExecutionPart", "ExecutionPartConstruct": [ - "0x5597122b0510-ExecutionPartConstruct", - "0x5597122b03d0-ExecutionPartConstruct", - "0x5597122b0db0-ExecutionPartConstruct", - "0x5597122b0d50-ExecutionPartConstruct", - "0x5597122b1820-ExecutionPartConstruct", - "0x5597122b17c0-ExecutionPartConstruct", - "0x5597122b2290-ExecutionPartConstruct", - "0x5597122b2230-ExecutionPartConstruct", - "0x5597122b2d00-ExecutionPartConstruct", - "0x5597122b2ca0-ExecutionPartConstruct", - "0x5597122b3770-ExecutionPartConstruct", - "0x5597122b3710-ExecutionPartConstruct", - "0x5597122b41e0-ExecutionPartConstruct", - "0x5597122b4180-ExecutionPartConstruct", - "0x5597122b6fa0-ExecutionPartConstruct", - "0x5597122b5e60-ExecutionPartConstruct", - "0x5597122ca720-ExecutionPartConstruct", - "0x5597122c92a0-ExecutionPartConstruct", - "0x5597122c9710-ExecutionPartConstruct", - "0x5597122b5820-ExecutionPartConstruct", - "0x5597122c94c0-ExecutionPartConstruct", - "0x5597122b4fc0-ExecutionPartConstruct", - "0x5597122b5c40-ExecutionPartConstruct", - "0x5597122b2be0-ExecutionPartConstruct", - "0x5597122af9e0-ExecutionPartConstruct", - "0x5597122b7df0-ExecutionPartConstruct", - "0x5597122b0080-ExecutionPartConstruct" + "0x55eadb48e510-ExecutionPartConstruct", + "0x55eadb48e3d0-ExecutionPartConstruct", + "0x55eadb48edb0-ExecutionPartConstruct", + "0x55eadb48ed50-ExecutionPartConstruct", + "0x55eadb48f820-ExecutionPartConstruct", + "0x55eadb48f7c0-ExecutionPartConstruct", + "0x55eadb490290-ExecutionPartConstruct", + "0x55eadb490230-ExecutionPartConstruct", + "0x55eadb490d00-ExecutionPartConstruct", + "0x55eadb490ca0-ExecutionPartConstruct", + "0x55eadb491770-ExecutionPartConstruct", + "0x55eadb491710-ExecutionPartConstruct", + "0x55eadb4921e0-ExecutionPartConstruct", + "0x55eadb492180-ExecutionPartConstruct", + "0x55eadb494fa0-ExecutionPartConstruct", + "0x55eadb493e60-ExecutionPartConstruct", + "0x55eadb4a8720-ExecutionPartConstruct", + "0x55eadb4a72a0-ExecutionPartConstruct", + "0x55eadb4a7710-ExecutionPartConstruct", + "0x55eadb493820-ExecutionPartConstruct", + "0x55eadb4a74c0-ExecutionPartConstruct", + "0x55eadb492fc0-ExecutionPartConstruct", + "0x55eadb493c40-ExecutionPartConstruct", + "0x55eadb490be0-ExecutionPartConstruct", + "0x55eadb48d9e0-ExecutionPartConstruct", + "0x55eadb495df0-ExecutionPartConstruct", + "0x55eadb48e080-ExecutionPartConstruct" ] }, { - "id": "0x5597122c2128-ExecutionPartConstruct" + "id": "0x55eadb4a0128-ExecutionPartConstruct" }, { - "id": "0x5597122b0510-ExecutionPartConstruct", + "id": "0x55eadb48e510-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122b0510-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb48e510-ExecutableConstruct" }, { - "id": "0x5597122b0510-ExecutableConstruct", + "id": "0x55eadb48e510-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122b0510-Statement" + "Statement": "0x55eadb48e510-Statement" }, { - "id": "0x5597122b0510-Statement", - "statement": "0x5597122b0520-ActionStmt", + "id": "0x55eadb48e510-Statement", + "statement": "0x55eadb48e520-ActionStmt", "source": "allocate(a(32 + 0, 32 + 0), stat = i)" }, { - "id": "0x5597122b0520-ActionStmt", + "id": "0x55eadb48e520-ActionStmt", "variantKey": "AllocateStmt", - "AllocateStmt": "0x5597122c5d10-AllocateStmt" + "AllocateStmt": "0x55eadb4a3d10-AllocateStmt" }, { - "id": "0x5597122c5d10-AllocateStmt", + "id": "0x55eadb4a3d10-AllocateStmt", "Allocation": [ - "0x559712220b10-Allocation" + "0x55eadb3feb10-Allocation" ], "AllocOpt": [ - "0x5597122afb10-AllocOpt" + "0x55eadb48db10-AllocOpt" ] }, { - "id": "0x559712220b10-Allocation", - "AllocateObject": "0x559712220b58-AllocateObject", + "id": "0x55eadb3feb10-Allocation", + "AllocateObject": "0x55eadb3feb58-AllocateObject", "AllocateShapeSpec": [ - "0x5597122ba0c0-AllocateShapeSpec", - "0x5597122ba090-AllocateShapeSpec" + "0x55eadb4980c0-AllocateShapeSpec", + "0x55eadb498090-AllocateShapeSpec" ] }, { - "id": "0x559712220b58-AllocateObject", + "id": "0x55eadb3feb58-AllocateObject", "variantKey": "Name", - "Name": "0x559712220b68-Name" + "Name": "0x55eadb3feb68-Name" }, { - "id": "0x559712220b68-Name", + "id": "0x55eadb3feb68-Name", "source": "a" }, { - "id": "0x5597122ba0c0-AllocateShapeSpec", - "upper_bound": "0x5597122af500-Expr" + "id": "0x55eadb4980c0-AllocateShapeSpec", + "upper_bound": "0x55eadb48d500-Expr" }, { - "id": "0x5597122af500-Expr", + "id": "0x55eadb48d500-Expr", "variantKey": "Add", - "Add": "0x5597122af520-Add" + "Add": "0x55eadb48d520-Add" }, { - "id": "0x5597122af520-Add", - "left": "0x5597122af420-Expr", - "right": "0x5597122af340-Expr", + "id": "0x55eadb48d520-Add", + "left": "0x55eadb48d420-Expr", + "right": "0x55eadb48d340-Expr", "op": "ADD" }, { - "id": "0x5597122af420-Expr", + "id": "0x55eadb48d420-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122af440-LiteralConstant" + "LiteralConstant": "0x55eadb48d440-LiteralConstant" }, { - "id": "0x5597122af440-LiteralConstant", + "id": "0x55eadb48d440-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122af440-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb48d440-IntLiteralConstant" }, { - "id": "0x5597122af440-IntLiteralConstant", + "id": "0x55eadb48d440-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x5597122af340-Expr", + "id": "0x55eadb48d340-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122af360-LiteralConstant" + "LiteralConstant": "0x55eadb48d360-LiteralConstant" }, { - "id": "0x5597122af360-LiteralConstant", + "id": "0x55eadb48d360-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122af360-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb48d360-IntLiteralConstant" }, { - "id": "0x5597122af360-IntLiteralConstant", + "id": "0x55eadb48d360-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x5597122ba090-AllocateShapeSpec", - "upper_bound": "0x5597122af8f0-Expr" + "id": "0x55eadb498090-AllocateShapeSpec", + "upper_bound": "0x55eadb48d8f0-Expr" }, { - "id": "0x5597122af8f0-Expr", + "id": "0x55eadb48d8f0-Expr", "variantKey": "Add", - "Add": "0x5597122af910-Add" + "Add": "0x55eadb48d910-Add" }, { - "id": "0x5597122af910-Add", - "left": "0x5597122c1b40-Expr", - "right": "0x559712223790-Expr", + "id": "0x55eadb48d910-Add", + "left": "0x55eadb49fb40-Expr", + "right": "0x55eadb401790-Expr", "op": "ADD" }, { - "id": "0x5597122c1b40-Expr", + "id": "0x55eadb49fb40-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122c1b60-LiteralConstant" + "LiteralConstant": "0x55eadb49fb60-LiteralConstant" }, { - "id": "0x5597122c1b60-LiteralConstant", + "id": "0x55eadb49fb60-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122c1b60-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb49fb60-IntLiteralConstant" }, { - "id": "0x5597122c1b60-IntLiteralConstant", + "id": "0x55eadb49fb60-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x559712223790-Expr", + "id": "0x55eadb401790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122237b0-LiteralConstant" + "LiteralConstant": "0x55eadb4017b0-LiteralConstant" }, { - "id": "0x5597122237b0-LiteralConstant", + "id": "0x55eadb4017b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122237b0-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4017b0-IntLiteralConstant" }, { - "id": "0x5597122237b0-IntLiteralConstant", + "id": "0x55eadb4017b0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x5597122afb10-AllocOpt", + "id": "0x55eadb48db10-AllocOpt", "variantKey": "StatOrErrmsg", - "StatOrErrmsg": "0x5597122afb10-StatOrErrmsg" + "StatOrErrmsg": "0x55eadb48db10-StatOrErrmsg" }, { - "id": "0x5597122afb10-StatOrErrmsg", + "id": "0x55eadb48db10-StatOrErrmsg", "variantKey": "StatVariable", - "StatVariable": "0x5597122afb10-StatVariable" + "StatVariable": "0x55eadb48db10-StatVariable" }, { - "id": "0x5597122afb10-StatVariable", - "Expr": "0x5597122afb10-Variable" + "id": "0x55eadb48db10-StatVariable", + "Expr": "0x55eadb48db10-Variable" }, { - "id": "0x5597122afb10-Variable", + "id": "0x55eadb48db10-Variable", "variantKey": "Designator", - "Designator": "0x5597122824d0-Designator" + "Designator": "0x55eadb4604d0-Designator" }, { - "id": "0x5597122824d0-Designator", + "id": "0x55eadb4604d0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122824e0-DataRef" + "DataRef": "0x55eadb4604e0-DataRef" }, { - "id": "0x5597122824e0-DataRef", + "id": "0x55eadb4604e0-DataRef", "variantKey": "Name", - "Name": "0x5597122824e0-Name" + "Name": "0x55eadb4604e0-Name" }, { - "id": "0x5597122824e0-Name", + "id": "0x55eadb4604e0-Name", "source": "i" }, { - "id": "0x5597122b03d0-ExecutionPartConstruct", + "id": "0x55eadb48e3d0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122b03d0-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb48e3d0-ExecutableConstruct" }, { - "id": "0x5597122b03d0-ExecutableConstruct", + "id": "0x55eadb48e3d0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122b03d0-Statement" + "Statement": "0x55eadb48e3d0-Statement" }, { - "id": "0x5597122b03d0-Statement", - "statement": "0x5597122b03e0-ActionStmt", + "id": "0x55eadb48e3d0-Statement", + "statement": "0x55eadb48e3e0-ActionStmt", "source": "call check_err(i)" }, { - "id": "0x5597122b03e0-ActionStmt", + "id": "0x55eadb48e3e0-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x5597122bae90-CallStmt" + "CallStmt": "0x55eadb498e90-CallStmt" }, { - "id": "0x5597122bae90-CallStmt", - "call": "0x5597122bae90-Call" + "id": "0x55eadb498e90-CallStmt", + "call": "0x55eadb498e90-Call" }, { - "id": "0x5597122bae90-Call", - "ProcedureDesignator": "0x5597122baea8-ProcedureDesignator", + "id": "0x55eadb498e90-Call", + "ProcedureDesignator": "0x55eadb498ea8-ProcedureDesignator", "ActualArgSpec": [ - "0x559712291cf0-ActualArgSpec" + "0x55eadb46fcf0-ActualArgSpec" ] }, { - "id": "0x5597122baea8-ProcedureDesignator", + "id": "0x55eadb498ea8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x5597122baea8-Name" + "Name": "0x55eadb498ea8-Name" }, { - "id": "0x5597122baea8-Name", + "id": "0x55eadb498ea8-Name", "source": "check_err" }, { - "id": "0x559712291cf0-ActualArgSpec", - "ActualArg": "0x559712291cf0-ActualArg" + "id": "0x55eadb46fcf0-ActualArgSpec", + "ActualArg": "0x55eadb46fcf0-ActualArg" }, { - "id": "0x559712291cf0-ActualArg", + "id": "0x55eadb46fcf0-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122b0560-Expr" + "Expr": "0x55eadb48e560-Expr" }, { - "id": "0x5597122b0560-Expr", + "id": "0x55eadb48e560-Expr", "variantKey": "Designator", - "Designator": "0x5597122c5da0-Designator" + "Designator": "0x55eadb4a3da0-Designator" }, { - "id": "0x5597122c5da0-Designator", + "id": "0x55eadb4a3da0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122c5db0-DataRef" + "DataRef": "0x55eadb4a3db0-DataRef" }, { - "id": "0x5597122c5db0-DataRef", + "id": "0x55eadb4a3db0-DataRef", "variantKey": "Name", - "Name": "0x5597122c5db0-Name" + "Name": "0x55eadb4a3db0-Name" }, { - "id": "0x5597122c5db0-Name", + "id": "0x55eadb4a3db0-Name", "source": "i" }, { - "id": "0x5597122b0db0-ExecutionPartConstruct", + "id": "0x55eadb48edb0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122b0db0-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb48edb0-ExecutableConstruct" }, { - "id": "0x5597122b0db0-ExecutableConstruct", + "id": "0x55eadb48edb0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122b0db0-Statement" + "Statement": "0x55eadb48edb0-Statement" }, { - "id": "0x5597122b0db0-Statement", - "statement": "0x5597122b0dc0-ActionStmt", + "id": "0x55eadb48edb0-Statement", + "statement": "0x55eadb48edc0-ActionStmt", "source": "allocate(b(32 + 0, 32 + 0), stat = i)" }, { - "id": "0x5597122b0dc0-ActionStmt", + "id": "0x55eadb48edc0-ActionStmt", "variantKey": "AllocateStmt", - "AllocateStmt": "0x5597122afd00-AllocateStmt" + "AllocateStmt": "0x55eadb48dd00-AllocateStmt" }, { - "id": "0x5597122afd00-AllocateStmt", + "id": "0x55eadb48dd00-AllocateStmt", "Allocation": [ - "0x5597122b0be0-Allocation" + "0x55eadb48ebe0-Allocation" ], "AllocOpt": [ - "0x5597122af5f0-AllocOpt" + "0x55eadb48d5f0-AllocOpt" ] }, { - "id": "0x5597122b0be0-Allocation", - "AllocateObject": "0x5597122b0c28-AllocateObject", + "id": "0x55eadb48ebe0-Allocation", + "AllocateObject": "0x55eadb48ec28-AllocateObject", "AllocateShapeSpec": [ - "0x5597122ba140-AllocateShapeSpec", - "0x5597122ba0f0-AllocateShapeSpec" + "0x55eadb498140-AllocateShapeSpec", + "0x55eadb4980f0-AllocateShapeSpec" ] }, { - "id": "0x5597122b0c28-AllocateObject", + "id": "0x55eadb48ec28-AllocateObject", "variantKey": "Name", - "Name": "0x5597122b0c38-Name" + "Name": "0x55eadb48ec38-Name" }, { - "id": "0x5597122b0c38-Name", + "id": "0x55eadb48ec38-Name", "source": "b" }, { - "id": "0x5597122ba140-AllocateShapeSpec", - "upper_bound": "0x5597122b0720-Expr" + "id": "0x55eadb498140-AllocateShapeSpec", + "upper_bound": "0x55eadb48e720-Expr" }, { - "id": "0x5597122b0720-Expr", + "id": "0x55eadb48e720-Expr", "variantKey": "Add", - "Add": "0x5597122b0740-Add" + "Add": "0x55eadb48e740-Add" }, { - "id": "0x5597122b0740-Add", - "left": "0x5597122b0640-Expr", - "right": "0x5597122b0800-Expr", + "id": "0x55eadb48e740-Add", + "left": "0x55eadb48e640-Expr", + "right": "0x55eadb48e800-Expr", "op": "ADD" }, { - "id": "0x5597122b0640-Expr", + "id": "0x55eadb48e640-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b0660-LiteralConstant" + "LiteralConstant": "0x55eadb48e660-LiteralConstant" }, { - "id": "0x5597122b0660-LiteralConstant", + "id": "0x55eadb48e660-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b0660-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb48e660-IntLiteralConstant" }, { - "id": "0x5597122b0660-IntLiteralConstant", + "id": "0x55eadb48e660-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x5597122b0800-Expr", + "id": "0x55eadb48e800-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b0820-LiteralConstant" + "LiteralConstant": "0x55eadb48e820-LiteralConstant" }, { - "id": "0x5597122b0820-LiteralConstant", + "id": "0x55eadb48e820-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b0820-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb48e820-IntLiteralConstant" }, { - "id": "0x5597122b0820-IntLiteralConstant", + "id": "0x55eadb48e820-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x5597122ba0f0-AllocateShapeSpec", - "upper_bound": "0x5597122b09c0-Expr" + "id": "0x55eadb4980f0-AllocateShapeSpec", + "upper_bound": "0x55eadb48e9c0-Expr" }, { - "id": "0x5597122b09c0-Expr", + "id": "0x55eadb48e9c0-Expr", "variantKey": "Add", - "Add": "0x5597122b09e0-Add" + "Add": "0x55eadb48e9e0-Add" }, { - "id": "0x5597122b09e0-Add", - "left": "0x5597122b08e0-Expr", - "right": "0x5597122b0aa0-Expr", + "id": "0x55eadb48e9e0-Add", + "left": "0x55eadb48e8e0-Expr", + "right": "0x55eadb48eaa0-Expr", "op": "ADD" }, { - "id": "0x5597122b08e0-Expr", + "id": "0x55eadb48e8e0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b0900-LiteralConstant" + "LiteralConstant": "0x55eadb48e900-LiteralConstant" }, { - "id": "0x5597122b0900-LiteralConstant", + "id": "0x55eadb48e900-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b0900-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb48e900-IntLiteralConstant" }, { - "id": "0x5597122b0900-IntLiteralConstant", + "id": "0x55eadb48e900-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x5597122b0aa0-Expr", + "id": "0x55eadb48eaa0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b0ac0-LiteralConstant" + "LiteralConstant": "0x55eadb48eac0-LiteralConstant" }, { - "id": "0x5597122b0ac0-LiteralConstant", + "id": "0x55eadb48eac0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b0ac0-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb48eac0-IntLiteralConstant" }, { - "id": "0x5597122b0ac0-IntLiteralConstant", + "id": "0x55eadb48eac0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x5597122af5f0-AllocOpt", + "id": "0x55eadb48d5f0-AllocOpt", "variantKey": "StatOrErrmsg", - "StatOrErrmsg": "0x5597122af5f0-StatOrErrmsg" + "StatOrErrmsg": "0x55eadb48d5f0-StatOrErrmsg" }, { - "id": "0x5597122af5f0-StatOrErrmsg", + "id": "0x55eadb48d5f0-StatOrErrmsg", "variantKey": "StatVariable", - "StatVariable": "0x5597122af5f0-StatVariable" + "StatVariable": "0x55eadb48d5f0-StatVariable" }, { - "id": "0x5597122af5f0-StatVariable", - "Expr": "0x5597122af5f0-Variable" + "id": "0x55eadb48d5f0-StatVariable", + "Expr": "0x55eadb48d5f0-Variable" }, { - "id": "0x5597122af5f0-Variable", + "id": "0x55eadb48d5f0-Variable", "variantKey": "Designator", - "Designator": "0x5597122b0ce0-Designator" + "Designator": "0x55eadb48ece0-Designator" }, { - "id": "0x5597122b0ce0-Designator", + "id": "0x55eadb48ece0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122b0cf0-DataRef" + "DataRef": "0x55eadb48ecf0-DataRef" }, { - "id": "0x5597122b0cf0-DataRef", + "id": "0x55eadb48ecf0-DataRef", "variantKey": "Name", - "Name": "0x5597122b0cf0-Name" + "Name": "0x55eadb48ecf0-Name" }, { - "id": "0x5597122b0cf0-Name", + "id": "0x55eadb48ecf0-Name", "source": "i" }, { - "id": "0x5597122b0d50-ExecutionPartConstruct", + "id": "0x55eadb48ed50-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122b0d50-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb48ed50-ExecutableConstruct" }, { - "id": "0x5597122b0d50-ExecutableConstruct", + "id": "0x55eadb48ed50-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122b0d50-Statement" + "Statement": "0x55eadb48ed50-Statement" }, { - "id": "0x5597122b0d50-Statement", - "statement": "0x5597122b0d60-ActionStmt", + "id": "0x55eadb48ed50-Statement", + "statement": "0x55eadb48ed60-ActionStmt", "source": "call check_err(i)" }, { - "id": "0x5597122b0d60-ActionStmt", + "id": "0x55eadb48ed60-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x5597122b0ff0-CallStmt" + "CallStmt": "0x55eadb48eff0-CallStmt" }, { - "id": "0x5597122b0ff0-CallStmt", - "call": "0x5597122b0ff0-Call" + "id": "0x55eadb48eff0-CallStmt", + "call": "0x55eadb48eff0-Call" }, { - "id": "0x5597122b0ff0-Call", - "ProcedureDesignator": "0x5597122b1008-ProcedureDesignator", + "id": "0x55eadb48eff0-Call", + "ProcedureDesignator": "0x55eadb48f008-ProcedureDesignator", "ActualArgSpec": [ - "0x5597122b0ef0-ActualArgSpec" + "0x55eadb48eef0-ActualArgSpec" ] }, { - "id": "0x5597122b1008-ProcedureDesignator", + "id": "0x55eadb48f008-ProcedureDesignator", "variantKey": "Name", - "Name": "0x5597122b1008-Name" + "Name": "0x55eadb48f008-Name" }, { - "id": "0x5597122b1008-Name", + "id": "0x55eadb48f008-Name", "source": "check_err" }, { - "id": "0x5597122b0ef0-ActualArgSpec", - "ActualArg": "0x5597122b0ef0-ActualArg" + "id": "0x55eadb48eef0-ActualArgSpec", + "ActualArg": "0x55eadb48eef0-ActualArg" }, { - "id": "0x5597122b0ef0-ActualArg", + "id": "0x55eadb48eef0-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122b0e00-Expr" + "Expr": "0x55eadb48ee00-Expr" }, { - "id": "0x5597122b0e00-Expr", + "id": "0x55eadb48ee00-Expr", "variantKey": "Designator", - "Designator": "0x5597122afed0-Designator" + "Designator": "0x55eadb48ded0-Designator" }, { - "id": "0x5597122afed0-Designator", + "id": "0x55eadb48ded0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122afee0-DataRef" + "DataRef": "0x55eadb48dee0-DataRef" }, { - "id": "0x5597122afee0-DataRef", + "id": "0x55eadb48dee0-DataRef", "variantKey": "Name", - "Name": "0x5597122afee0-Name" + "Name": "0x55eadb48dee0-Name" }, { - "id": "0x5597122afee0-Name", + "id": "0x55eadb48dee0-Name", "source": "i" }, { - "id": "0x5597122b1820-ExecutionPartConstruct", + "id": "0x55eadb48f820-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122b1820-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb48f820-ExecutableConstruct" }, { - "id": "0x5597122b1820-ExecutableConstruct", + "id": "0x55eadb48f820-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122b1820-Statement" + "Statement": "0x55eadb48f820-Statement" }, { - "id": "0x5597122b1820-Statement", - "statement": "0x5597122b1830-ActionStmt", + "id": "0x55eadb48f820-Statement", + "statement": "0x55eadb48f830-ActionStmt", "source": "allocate(c(32 + 0, 32 + 0), stat = i)" }, { - "id": "0x5597122b1830-ActionStmt", + "id": "0x55eadb48f830-ActionStmt", "variantKey": "AllocateStmt", - "AllocateStmt": "0x5597122afb50-AllocateStmt" + "AllocateStmt": "0x55eadb48db50-AllocateStmt" }, { - "id": "0x5597122afb50-AllocateStmt", + "id": "0x55eadb48db50-AllocateStmt", "Allocation": [ - "0x5597122b1650-Allocation" + "0x55eadb48f650-Allocation" ], "AllocOpt": [ - "0x5597122b0b90-AllocOpt" + "0x55eadb48eb90-AllocOpt" ] }, { - "id": "0x5597122b1650-Allocation", - "AllocateObject": "0x5597122b1698-AllocateObject", + "id": "0x55eadb48f650-Allocation", + "AllocateObject": "0x55eadb48f698-AllocateObject", "AllocateShapeSpec": [ - "0x5597122be440-AllocateShapeSpec", - "0x5597122be410-AllocateShapeSpec" + "0x55eadb49c440-AllocateShapeSpec", + "0x55eadb49c410-AllocateShapeSpec" ] }, { - "id": "0x5597122b1698-AllocateObject", + "id": "0x55eadb48f698-AllocateObject", "variantKey": "Name", - "Name": "0x5597122b16a8-Name" + "Name": "0x55eadb48f6a8-Name" }, { - "id": "0x5597122b16a8-Name", + "id": "0x55eadb48f6a8-Name", "source": "c" }, { - "id": "0x5597122be440-AllocateShapeSpec", - "upper_bound": "0x5597122b1190-Expr" + "id": "0x55eadb49c440-AllocateShapeSpec", + "upper_bound": "0x55eadb48f190-Expr" }, { - "id": "0x5597122b1190-Expr", + "id": "0x55eadb48f190-Expr", "variantKey": "Add", - "Add": "0x5597122b11b0-Add" + "Add": "0x55eadb48f1b0-Add" }, { - "id": "0x5597122b11b0-Add", - "left": "0x5597122b10b0-Expr", - "right": "0x5597122b1270-Expr", + "id": "0x55eadb48f1b0-Add", + "left": "0x55eadb48f0b0-Expr", + "right": "0x55eadb48f270-Expr", "op": "ADD" }, { - "id": "0x5597122b10b0-Expr", + "id": "0x55eadb48f0b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b10d0-LiteralConstant" + "LiteralConstant": "0x55eadb48f0d0-LiteralConstant" }, { - "id": "0x5597122b10d0-LiteralConstant", + "id": "0x55eadb48f0d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b10d0-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb48f0d0-IntLiteralConstant" }, { - "id": "0x5597122b10d0-IntLiteralConstant", + "id": "0x55eadb48f0d0-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x5597122b1270-Expr", + "id": "0x55eadb48f270-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b1290-LiteralConstant" + "LiteralConstant": "0x55eadb48f290-LiteralConstant" }, { - "id": "0x5597122b1290-LiteralConstant", + "id": "0x55eadb48f290-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b1290-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb48f290-IntLiteralConstant" }, { - "id": "0x5597122b1290-IntLiteralConstant", + "id": "0x55eadb48f290-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x5597122be410-AllocateShapeSpec", - "upper_bound": "0x5597122b1430-Expr" + "id": "0x55eadb49c410-AllocateShapeSpec", + "upper_bound": "0x55eadb48f430-Expr" }, { - "id": "0x5597122b1430-Expr", + "id": "0x55eadb48f430-Expr", "variantKey": "Add", - "Add": "0x5597122b1450-Add" + "Add": "0x55eadb48f450-Add" }, { - "id": "0x5597122b1450-Add", - "left": "0x5597122b1350-Expr", - "right": "0x5597122b1510-Expr", + "id": "0x55eadb48f450-Add", + "left": "0x55eadb48f350-Expr", + "right": "0x55eadb48f510-Expr", "op": "ADD" }, { - "id": "0x5597122b1350-Expr", + "id": "0x55eadb48f350-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b1370-LiteralConstant" + "LiteralConstant": "0x55eadb48f370-LiteralConstant" }, { - "id": "0x5597122b1370-LiteralConstant", + "id": "0x55eadb48f370-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b1370-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb48f370-IntLiteralConstant" }, { - "id": "0x5597122b1370-IntLiteralConstant", + "id": "0x55eadb48f370-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x5597122b1510-Expr", + "id": "0x55eadb48f510-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b1530-LiteralConstant" + "LiteralConstant": "0x55eadb48f530-LiteralConstant" }, { - "id": "0x5597122b1530-LiteralConstant", + "id": "0x55eadb48f530-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b1530-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb48f530-IntLiteralConstant" }, { - "id": "0x5597122b1530-IntLiteralConstant", + "id": "0x55eadb48f530-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x5597122b0b90-AllocOpt", + "id": "0x55eadb48eb90-AllocOpt", "variantKey": "StatOrErrmsg", - "StatOrErrmsg": "0x5597122b0b90-StatOrErrmsg" + "StatOrErrmsg": "0x55eadb48eb90-StatOrErrmsg" }, { - "id": "0x5597122b0b90-StatOrErrmsg", + "id": "0x55eadb48eb90-StatOrErrmsg", "variantKey": "StatVariable", - "StatVariable": "0x5597122b0b90-StatVariable" + "StatVariable": "0x55eadb48eb90-StatVariable" }, { - "id": "0x5597122b0b90-StatVariable", - "Expr": "0x5597122b0b90-Variable" + "id": "0x55eadb48eb90-StatVariable", + "Expr": "0x55eadb48eb90-Variable" }, { - "id": "0x5597122b0b90-Variable", + "id": "0x55eadb48eb90-Variable", "variantKey": "Designator", - "Designator": "0x5597122b1750-Designator" + "Designator": "0x55eadb48f750-Designator" }, { - "id": "0x5597122b1750-Designator", + "id": "0x55eadb48f750-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122b1760-DataRef" + "DataRef": "0x55eadb48f760-DataRef" }, { - "id": "0x5597122b1760-DataRef", + "id": "0x55eadb48f760-DataRef", "variantKey": "Name", - "Name": "0x5597122b1760-Name" + "Name": "0x55eadb48f760-Name" }, { - "id": "0x5597122b1760-Name", + "id": "0x55eadb48f760-Name", "source": "i" }, { - "id": "0x5597122b17c0-ExecutionPartConstruct", + "id": "0x55eadb48f7c0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122b17c0-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb48f7c0-ExecutableConstruct" }, { - "id": "0x5597122b17c0-ExecutableConstruct", + "id": "0x55eadb48f7c0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122b17c0-Statement" + "Statement": "0x55eadb48f7c0-Statement" }, { - "id": "0x5597122b17c0-Statement", - "statement": "0x5597122b17d0-ActionStmt", + "id": "0x55eadb48f7c0-Statement", + "statement": "0x55eadb48f7d0-ActionStmt", "source": "call check_err(i)" }, { - "id": "0x5597122b17d0-ActionStmt", + "id": "0x55eadb48f7d0-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x5597122b1a60-CallStmt" + "CallStmt": "0x55eadb48fa60-CallStmt" }, { - "id": "0x5597122b1a60-CallStmt", - "call": "0x5597122b1a60-Call" + "id": "0x55eadb48fa60-CallStmt", + "call": "0x55eadb48fa60-Call" }, { - "id": "0x5597122b1a60-Call", - "ProcedureDesignator": "0x5597122b1a78-ProcedureDesignator", + "id": "0x55eadb48fa60-Call", + "ProcedureDesignator": "0x55eadb48fa78-ProcedureDesignator", "ActualArgSpec": [ - "0x5597122b1960-ActualArgSpec" + "0x55eadb48f960-ActualArgSpec" ] }, { - "id": "0x5597122b1a78-ProcedureDesignator", + "id": "0x55eadb48fa78-ProcedureDesignator", "variantKey": "Name", - "Name": "0x5597122b1a78-Name" + "Name": "0x55eadb48fa78-Name" }, { - "id": "0x5597122b1a78-Name", + "id": "0x55eadb48fa78-Name", "source": "check_err" }, { - "id": "0x5597122b1960-ActualArgSpec", - "ActualArg": "0x5597122b1960-ActualArg" + "id": "0x55eadb48f960-ActualArgSpec", + "ActualArg": "0x55eadb48f960-ActualArg" }, { - "id": "0x5597122b1960-ActualArg", + "id": "0x55eadb48f960-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122b1870-Expr" + "Expr": "0x55eadb48f870-Expr" }, { - "id": "0x5597122b1870-Expr", + "id": "0x55eadb48f870-Expr", "variantKey": "Designator", - "Designator": "0x5597122afd90-Designator" + "Designator": "0x55eadb48dd90-Designator" }, { - "id": "0x5597122afd90-Designator", + "id": "0x55eadb48dd90-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122afda0-DataRef" + "DataRef": "0x55eadb48dda0-DataRef" }, { - "id": "0x5597122afda0-DataRef", + "id": "0x55eadb48dda0-DataRef", "variantKey": "Name", - "Name": "0x5597122afda0-Name" + "Name": "0x55eadb48dda0-Name" }, { - "id": "0x5597122afda0-Name", + "id": "0x55eadb48dda0-Name", "source": "i" }, { - "id": "0x5597122b2290-ExecutionPartConstruct", + "id": "0x55eadb490290-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122b2290-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb490290-ExecutableConstruct" }, { - "id": "0x5597122b2290-ExecutableConstruct", + "id": "0x55eadb490290-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122b2290-Statement" + "Statement": "0x55eadb490290-Statement" }, { - "id": "0x5597122b2290-Statement", - "statement": "0x5597122b22a0-ActionStmt", + "id": "0x55eadb490290-Statement", + "statement": "0x55eadb4902a0-ActionStmt", "source": "allocate(d(32 + 0, 32 + 0), stat = i)" }, { - "id": "0x5597122b22a0-ActionStmt", + "id": "0x55eadb4902a0-ActionStmt", "variantKey": "AllocateStmt", - "AllocateStmt": "0x5597122af760-AllocateStmt" + "AllocateStmt": "0x55eadb48d760-AllocateStmt" }, { - "id": "0x5597122af760-AllocateStmt", + "id": "0x55eadb48d760-AllocateStmt", "Allocation": [ - "0x5597122b20c0-Allocation" + "0x55eadb4900c0-Allocation" ], "AllocOpt": [ - "0x5597122b1600-AllocOpt" + "0x55eadb48f600-AllocOpt" ] }, { - "id": "0x5597122b20c0-Allocation", - "AllocateObject": "0x5597122b2108-AllocateObject", + "id": "0x55eadb4900c0-Allocation", + "AllocateObject": "0x55eadb490108-AllocateObject", "AllocateShapeSpec": [ - "0x5597122b8b30-AllocateShapeSpec", - "0x5597122be490-AllocateShapeSpec" + "0x55eadb496b30-AllocateShapeSpec", + "0x55eadb49c490-AllocateShapeSpec" ] }, { - "id": "0x5597122b2108-AllocateObject", + "id": "0x55eadb490108-AllocateObject", "variantKey": "Name", - "Name": "0x5597122b2118-Name" + "Name": "0x55eadb490118-Name" }, { - "id": "0x5597122b2118-Name", + "id": "0x55eadb490118-Name", "source": "d" }, { - "id": "0x5597122b8b30-AllocateShapeSpec", - "upper_bound": "0x5597122b1c00-Expr" + "id": "0x55eadb496b30-AllocateShapeSpec", + "upper_bound": "0x55eadb48fc00-Expr" }, { - "id": "0x5597122b1c00-Expr", + "id": "0x55eadb48fc00-Expr", "variantKey": "Add", - "Add": "0x5597122b1c20-Add" + "Add": "0x55eadb48fc20-Add" }, { - "id": "0x5597122b1c20-Add", - "left": "0x5597122b1b20-Expr", - "right": "0x5597122b1ce0-Expr", + "id": "0x55eadb48fc20-Add", + "left": "0x55eadb48fb20-Expr", + "right": "0x55eadb48fce0-Expr", "op": "ADD" }, { - "id": "0x5597122b1b20-Expr", + "id": "0x55eadb48fb20-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b1b40-LiteralConstant" + "LiteralConstant": "0x55eadb48fb40-LiteralConstant" }, { - "id": "0x5597122b1b40-LiteralConstant", + "id": "0x55eadb48fb40-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b1b40-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb48fb40-IntLiteralConstant" }, { - "id": "0x5597122b1b40-IntLiteralConstant", + "id": "0x55eadb48fb40-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x5597122b1ce0-Expr", + "id": "0x55eadb48fce0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b1d00-LiteralConstant" + "LiteralConstant": "0x55eadb48fd00-LiteralConstant" }, { - "id": "0x5597122b1d00-LiteralConstant", + "id": "0x55eadb48fd00-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b1d00-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb48fd00-IntLiteralConstant" }, { - "id": "0x5597122b1d00-IntLiteralConstant", + "id": "0x55eadb48fd00-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x5597122be490-AllocateShapeSpec", - "upper_bound": "0x5597122b1ea0-Expr" + "id": "0x55eadb49c490-AllocateShapeSpec", + "upper_bound": "0x55eadb48fea0-Expr" }, { - "id": "0x5597122b1ea0-Expr", + "id": "0x55eadb48fea0-Expr", "variantKey": "Add", - "Add": "0x5597122b1ec0-Add" + "Add": "0x55eadb48fec0-Add" }, { - "id": "0x5597122b1ec0-Add", - "left": "0x5597122b1dc0-Expr", - "right": "0x5597122b1f80-Expr", + "id": "0x55eadb48fec0-Add", + "left": "0x55eadb48fdc0-Expr", + "right": "0x55eadb48ff80-Expr", "op": "ADD" }, { - "id": "0x5597122b1dc0-Expr", + "id": "0x55eadb48fdc0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b1de0-LiteralConstant" + "LiteralConstant": "0x55eadb48fde0-LiteralConstant" }, { - "id": "0x5597122b1de0-LiteralConstant", + "id": "0x55eadb48fde0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b1de0-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb48fde0-IntLiteralConstant" }, { - "id": "0x5597122b1de0-IntLiteralConstant", + "id": "0x55eadb48fde0-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x5597122b1f80-Expr", + "id": "0x55eadb48ff80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b1fa0-LiteralConstant" + "LiteralConstant": "0x55eadb48ffa0-LiteralConstant" }, { - "id": "0x5597122b1fa0-LiteralConstant", + "id": "0x55eadb48ffa0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b1fa0-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb48ffa0-IntLiteralConstant" }, { - "id": "0x5597122b1fa0-IntLiteralConstant", + "id": "0x55eadb48ffa0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x5597122b1600-AllocOpt", + "id": "0x55eadb48f600-AllocOpt", "variantKey": "StatOrErrmsg", - "StatOrErrmsg": "0x5597122b1600-StatOrErrmsg" + "StatOrErrmsg": "0x55eadb48f600-StatOrErrmsg" }, { - "id": "0x5597122b1600-StatOrErrmsg", + "id": "0x55eadb48f600-StatOrErrmsg", "variantKey": "StatVariable", - "StatVariable": "0x5597122b1600-StatVariable" + "StatVariable": "0x55eadb48f600-StatVariable" }, { - "id": "0x5597122b1600-StatVariable", - "Expr": "0x5597122b1600-Variable" + "id": "0x55eadb48f600-StatVariable", + "Expr": "0x55eadb48f600-Variable" }, { - "id": "0x5597122b1600-Variable", + "id": "0x55eadb48f600-Variable", "variantKey": "Designator", - "Designator": "0x5597122b21c0-Designator" + "Designator": "0x55eadb4901c0-Designator" }, { - "id": "0x5597122b21c0-Designator", + "id": "0x55eadb4901c0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122b21d0-DataRef" + "DataRef": "0x55eadb4901d0-DataRef" }, { - "id": "0x5597122b21d0-DataRef", + "id": "0x55eadb4901d0-DataRef", "variantKey": "Name", - "Name": "0x5597122b21d0-Name" + "Name": "0x55eadb4901d0-Name" }, { - "id": "0x5597122b21d0-Name", + "id": "0x55eadb4901d0-Name", "source": "i" }, { - "id": "0x5597122b2230-ExecutionPartConstruct", + "id": "0x55eadb490230-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122b2230-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb490230-ExecutableConstruct" }, { - "id": "0x5597122b2230-ExecutableConstruct", + "id": "0x55eadb490230-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122b2230-Statement" + "Statement": "0x55eadb490230-Statement" }, { - "id": "0x5597122b2230-Statement", - "statement": "0x5597122b2240-ActionStmt", + "id": "0x55eadb490230-Statement", + "statement": "0x55eadb490240-ActionStmt", "source": "call check_err(i)" }, { - "id": "0x5597122b2240-ActionStmt", + "id": "0x55eadb490240-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x5597122b24d0-CallStmt" + "CallStmt": "0x55eadb4904d0-CallStmt" }, { - "id": "0x5597122b24d0-CallStmt", - "call": "0x5597122b24d0-Call" + "id": "0x55eadb4904d0-CallStmt", + "call": "0x55eadb4904d0-Call" }, { - "id": "0x5597122b24d0-Call", - "ProcedureDesignator": "0x5597122b24e8-ProcedureDesignator", + "id": "0x55eadb4904d0-Call", + "ProcedureDesignator": "0x55eadb4904e8-ProcedureDesignator", "ActualArgSpec": [ - "0x5597122b23d0-ActualArgSpec" + "0x55eadb4903d0-ActualArgSpec" ] }, { - "id": "0x5597122b24e8-ProcedureDesignator", + "id": "0x55eadb4904e8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x5597122b24e8-Name" + "Name": "0x55eadb4904e8-Name" }, { - "id": "0x5597122b24e8-Name", + "id": "0x55eadb4904e8-Name", "source": "check_err" }, { - "id": "0x5597122b23d0-ActualArgSpec", - "ActualArg": "0x5597122b23d0-ActualArg" + "id": "0x55eadb4903d0-ActualArgSpec", + "ActualArg": "0x55eadb4903d0-ActualArg" }, { - "id": "0x5597122b23d0-ActualArg", + "id": "0x55eadb4903d0-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122b22e0-Expr" + "Expr": "0x55eadb4902e0-Expr" }, { - "id": "0x5597122b22e0-Expr", + "id": "0x55eadb4902e0-Expr", "variantKey": "Designator", - "Designator": "0x5597122b02f0-Designator" + "Designator": "0x55eadb48e2f0-Designator" }, { - "id": "0x5597122b02f0-Designator", + "id": "0x55eadb48e2f0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122b0300-DataRef" + "DataRef": "0x55eadb48e300-DataRef" }, { - "id": "0x5597122b0300-DataRef", + "id": "0x55eadb48e300-DataRef", "variantKey": "Name", - "Name": "0x5597122b0300-Name" + "Name": "0x55eadb48e300-Name" }, { - "id": "0x5597122b0300-Name", + "id": "0x55eadb48e300-Name", "source": "i" }, { - "id": "0x5597122b2d00-ExecutionPartConstruct", + "id": "0x55eadb490d00-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122b2d00-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb490d00-ExecutableConstruct" }, { - "id": "0x5597122b2d00-ExecutableConstruct", + "id": "0x55eadb490d00-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122b2d00-Statement" + "Statement": "0x55eadb490d00-Statement" }, { - "id": "0x5597122b2d00-Statement", - "statement": "0x5597122b2d10-ActionStmt", + "id": "0x55eadb490d00-Statement", + "statement": "0x55eadb490d10-ActionStmt", "source": "allocate(e(32 + 0, 32 + 0), stat = i)" }, { - "id": "0x5597122b2d10-ActionStmt", + "id": "0x55eadb490d10-ActionStmt", "variantKey": "AllocateStmt", - "AllocateStmt": "0x5597122c1a20-AllocateStmt" + "AllocateStmt": "0x55eadb49fa20-AllocateStmt" }, { - "id": "0x5597122c1a20-AllocateStmt", + "id": "0x55eadb49fa20-AllocateStmt", "Allocation": [ - "0x5597122b2b30-Allocation" + "0x55eadb490b30-Allocation" ], "AllocOpt": [ - "0x5597122b2070-AllocOpt" + "0x55eadb490070-AllocOpt" ] }, { - "id": "0x5597122b2b30-Allocation", - "AllocateObject": "0x5597122b2b78-AllocateObject", + "id": "0x55eadb490b30-Allocation", + "AllocateObject": "0x55eadb490b78-AllocateObject", "AllocateShapeSpec": [ - "0x5597122c8550-AllocateShapeSpec", - "0x5597122c84a0-AllocateShapeSpec" + "0x55eadb4a6550-AllocateShapeSpec", + "0x55eadb4a64a0-AllocateShapeSpec" ] }, { - "id": "0x5597122b2b78-AllocateObject", + "id": "0x55eadb490b78-AllocateObject", "variantKey": "Name", - "Name": "0x5597122b2b88-Name" + "Name": "0x55eadb490b88-Name" }, { - "id": "0x5597122b2b88-Name", + "id": "0x55eadb490b88-Name", "source": "e" }, { - "id": "0x5597122c8550-AllocateShapeSpec", - "upper_bound": "0x5597122b2670-Expr" + "id": "0x55eadb4a6550-AllocateShapeSpec", + "upper_bound": "0x55eadb490670-Expr" }, { - "id": "0x5597122b2670-Expr", + "id": "0x55eadb490670-Expr", "variantKey": "Add", - "Add": "0x5597122b2690-Add" + "Add": "0x55eadb490690-Add" }, { - "id": "0x5597122b2690-Add", - "left": "0x5597122b2590-Expr", - "right": "0x5597122b2750-Expr", + "id": "0x55eadb490690-Add", + "left": "0x55eadb490590-Expr", + "right": "0x55eadb490750-Expr", "op": "ADD" }, { - "id": "0x5597122b2590-Expr", + "id": "0x55eadb490590-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b25b0-LiteralConstant" + "LiteralConstant": "0x55eadb4905b0-LiteralConstant" }, { - "id": "0x5597122b25b0-LiteralConstant", + "id": "0x55eadb4905b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b25b0-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4905b0-IntLiteralConstant" }, { - "id": "0x5597122b25b0-IntLiteralConstant", + "id": "0x55eadb4905b0-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x5597122b2750-Expr", + "id": "0x55eadb490750-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b2770-LiteralConstant" + "LiteralConstant": "0x55eadb490770-LiteralConstant" }, { - "id": "0x5597122b2770-LiteralConstant", + "id": "0x55eadb490770-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b2770-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb490770-IntLiteralConstant" }, { - "id": "0x5597122b2770-IntLiteralConstant", + "id": "0x55eadb490770-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x5597122c84a0-AllocateShapeSpec", - "upper_bound": "0x5597122b2910-Expr" + "id": "0x55eadb4a64a0-AllocateShapeSpec", + "upper_bound": "0x55eadb490910-Expr" }, { - "id": "0x5597122b2910-Expr", + "id": "0x55eadb490910-Expr", "variantKey": "Add", - "Add": "0x5597122b2930-Add" + "Add": "0x55eadb490930-Add" }, { - "id": "0x5597122b2930-Add", - "left": "0x5597122b2830-Expr", - "right": "0x5597122b29f0-Expr", + "id": "0x55eadb490930-Add", + "left": "0x55eadb490830-Expr", + "right": "0x55eadb4909f0-Expr", "op": "ADD" }, { - "id": "0x5597122b2830-Expr", + "id": "0x55eadb490830-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b2850-LiteralConstant" + "LiteralConstant": "0x55eadb490850-LiteralConstant" }, { - "id": "0x5597122b2850-LiteralConstant", + "id": "0x55eadb490850-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b2850-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb490850-IntLiteralConstant" }, { - "id": "0x5597122b2850-IntLiteralConstant", + "id": "0x55eadb490850-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x5597122b29f0-Expr", + "id": "0x55eadb4909f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b2a10-LiteralConstant" + "LiteralConstant": "0x55eadb490a10-LiteralConstant" }, { - "id": "0x5597122b2a10-LiteralConstant", + "id": "0x55eadb490a10-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b2a10-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb490a10-IntLiteralConstant" }, { - "id": "0x5597122b2a10-IntLiteralConstant", + "id": "0x55eadb490a10-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x5597122b2070-AllocOpt", + "id": "0x55eadb490070-AllocOpt", "variantKey": "StatOrErrmsg", - "StatOrErrmsg": "0x5597122b2070-StatOrErrmsg" + "StatOrErrmsg": "0x55eadb490070-StatOrErrmsg" }, { - "id": "0x5597122b2070-StatOrErrmsg", + "id": "0x55eadb490070-StatOrErrmsg", "variantKey": "StatVariable", - "StatVariable": "0x5597122b2070-StatVariable" + "StatVariable": "0x55eadb490070-StatVariable" }, { - "id": "0x5597122b2070-StatVariable", - "Expr": "0x5597122b2070-Variable" + "id": "0x55eadb490070-StatVariable", + "Expr": "0x55eadb490070-Variable" }, { - "id": "0x5597122b2070-Variable", + "id": "0x55eadb490070-Variable", "variantKey": "Designator", - "Designator": "0x5597122b2c30-Designator" + "Designator": "0x55eadb490c30-Designator" }, { - "id": "0x5597122b2c30-Designator", + "id": "0x55eadb490c30-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122b2c40-DataRef" + "DataRef": "0x55eadb490c40-DataRef" }, { - "id": "0x5597122b2c40-DataRef", + "id": "0x55eadb490c40-DataRef", "variantKey": "Name", - "Name": "0x5597122b2c40-Name" + "Name": "0x55eadb490c40-Name" }, { - "id": "0x5597122b2c40-Name", + "id": "0x55eadb490c40-Name", "source": "i" }, { - "id": "0x5597122b2ca0-ExecutionPartConstruct", + "id": "0x55eadb490ca0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122b2ca0-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb490ca0-ExecutableConstruct" }, { - "id": "0x5597122b2ca0-ExecutableConstruct", + "id": "0x55eadb490ca0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122b2ca0-Statement" + "Statement": "0x55eadb490ca0-Statement" }, { - "id": "0x5597122b2ca0-Statement", - "statement": "0x5597122b2cb0-ActionStmt", + "id": "0x55eadb490ca0-Statement", + "statement": "0x55eadb490cb0-ActionStmt", "source": "call check_err(i)" }, { - "id": "0x5597122b2cb0-ActionStmt", + "id": "0x55eadb490cb0-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x5597122b2f40-CallStmt" + "CallStmt": "0x55eadb490f40-CallStmt" }, { - "id": "0x5597122b2f40-CallStmt", - "call": "0x5597122b2f40-Call" + "id": "0x55eadb490f40-CallStmt", + "call": "0x55eadb490f40-Call" }, { - "id": "0x5597122b2f40-Call", - "ProcedureDesignator": "0x5597122b2f58-ProcedureDesignator", + "id": "0x55eadb490f40-Call", + "ProcedureDesignator": "0x55eadb490f58-ProcedureDesignator", "ActualArgSpec": [ - "0x5597122b2e40-ActualArgSpec" + "0x55eadb490e40-ActualArgSpec" ] }, { - "id": "0x5597122b2f58-ProcedureDesignator", + "id": "0x55eadb490f58-ProcedureDesignator", "variantKey": "Name", - "Name": "0x5597122b2f58-Name" + "Name": "0x55eadb490f58-Name" }, { - "id": "0x5597122b2f58-Name", + "id": "0x55eadb490f58-Name", "source": "check_err" }, { - "id": "0x5597122b2e40-ActualArgSpec", - "ActualArg": "0x5597122b2e40-ActualArg" + "id": "0x55eadb490e40-ActualArgSpec", + "ActualArg": "0x55eadb490e40-ActualArg" }, { - "id": "0x5597122b2e40-ActualArg", + "id": "0x55eadb490e40-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122b2d50-Expr" + "Expr": "0x55eadb490d50-Expr" }, { - "id": "0x5597122b2d50-Expr", + "id": "0x55eadb490d50-Expr", "variantKey": "Designator", - "Designator": "0x5597122affa0-Designator" + "Designator": "0x55eadb48dfa0-Designator" }, { - "id": "0x5597122affa0-Designator", + "id": "0x55eadb48dfa0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122affb0-DataRef" + "DataRef": "0x55eadb48dfb0-DataRef" }, { - "id": "0x5597122affb0-DataRef", + "id": "0x55eadb48dfb0-DataRef", "variantKey": "Name", - "Name": "0x5597122affb0-Name" + "Name": "0x55eadb48dfb0-Name" }, { - "id": "0x5597122affb0-Name", + "id": "0x55eadb48dfb0-Name", "source": "i" }, { - "id": "0x5597122b3770-ExecutionPartConstruct", + "id": "0x55eadb491770-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122b3770-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb491770-ExecutableConstruct" }, { - "id": "0x5597122b3770-ExecutableConstruct", + "id": "0x55eadb491770-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122b3770-Statement" + "Statement": "0x55eadb491770-Statement" }, { - "id": "0x5597122b3770-Statement", - "statement": "0x5597122b3780-ActionStmt", + "id": "0x55eadb491770-Statement", + "statement": "0x55eadb491780-ActionStmt", "source": "allocate(f(32 + 0, 32 + 0), stat = i)" }, { - "id": "0x5597122b3780-ActionStmt", + "id": "0x55eadb491780-ActionStmt", "variantKey": "AllocateStmt", - "AllocateStmt": "0x5597122391d0-AllocateStmt" + "AllocateStmt": "0x55eadb4171d0-AllocateStmt" }, { - "id": "0x5597122391d0-AllocateStmt", + "id": "0x55eadb4171d0-AllocateStmt", "Allocation": [ - "0x5597122b35a0-Allocation" + "0x55eadb4915a0-Allocation" ], "AllocOpt": [ - "0x5597122b2ae0-AllocOpt" + "0x55eadb490ae0-AllocOpt" ] }, { - "id": "0x5597122b35a0-Allocation", - "AllocateObject": "0x5597122b35e8-AllocateObject", + "id": "0x55eadb4915a0-Allocation", + "AllocateObject": "0x55eadb4915e8-AllocateObject", "AllocateShapeSpec": [ - "0x5597122b8530-AllocateShapeSpec", - "0x5597122c85c0-AllocateShapeSpec" + "0x55eadb496530-AllocateShapeSpec", + "0x55eadb4a65c0-AllocateShapeSpec" ] }, { - "id": "0x5597122b35e8-AllocateObject", + "id": "0x55eadb4915e8-AllocateObject", "variantKey": "Name", - "Name": "0x5597122b35f8-Name" + "Name": "0x55eadb4915f8-Name" }, { - "id": "0x5597122b35f8-Name", + "id": "0x55eadb4915f8-Name", "source": "f" }, { - "id": "0x5597122b8530-AllocateShapeSpec", - "upper_bound": "0x5597122b30e0-Expr" + "id": "0x55eadb496530-AllocateShapeSpec", + "upper_bound": "0x55eadb4910e0-Expr" }, { - "id": "0x5597122b30e0-Expr", + "id": "0x55eadb4910e0-Expr", "variantKey": "Add", - "Add": "0x5597122b3100-Add" + "Add": "0x55eadb491100-Add" }, { - "id": "0x5597122b3100-Add", - "left": "0x5597122b3000-Expr", - "right": "0x5597122b31c0-Expr", + "id": "0x55eadb491100-Add", + "left": "0x55eadb491000-Expr", + "right": "0x55eadb4911c0-Expr", "op": "ADD" }, { - "id": "0x5597122b3000-Expr", + "id": "0x55eadb491000-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b3020-LiteralConstant" + "LiteralConstant": "0x55eadb491020-LiteralConstant" }, { - "id": "0x5597122b3020-LiteralConstant", + "id": "0x55eadb491020-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b3020-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb491020-IntLiteralConstant" }, { - "id": "0x5597122b3020-IntLiteralConstant", + "id": "0x55eadb491020-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x5597122b31c0-Expr", + "id": "0x55eadb4911c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b31e0-LiteralConstant" + "LiteralConstant": "0x55eadb4911e0-LiteralConstant" }, { - "id": "0x5597122b31e0-LiteralConstant", + "id": "0x55eadb4911e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b31e0-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4911e0-IntLiteralConstant" }, { - "id": "0x5597122b31e0-IntLiteralConstant", + "id": "0x55eadb4911e0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x5597122c85c0-AllocateShapeSpec", - "upper_bound": "0x5597122b3380-Expr" + "id": "0x55eadb4a65c0-AllocateShapeSpec", + "upper_bound": "0x55eadb491380-Expr" }, { - "id": "0x5597122b3380-Expr", + "id": "0x55eadb491380-Expr", "variantKey": "Add", - "Add": "0x5597122b33a0-Add" + "Add": "0x55eadb4913a0-Add" }, { - "id": "0x5597122b33a0-Add", - "left": "0x5597122b32a0-Expr", - "right": "0x5597122b3460-Expr", + "id": "0x55eadb4913a0-Add", + "left": "0x55eadb4912a0-Expr", + "right": "0x55eadb491460-Expr", "op": "ADD" }, { - "id": "0x5597122b32a0-Expr", + "id": "0x55eadb4912a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b32c0-LiteralConstant" + "LiteralConstant": "0x55eadb4912c0-LiteralConstant" }, { - "id": "0x5597122b32c0-LiteralConstant", + "id": "0x55eadb4912c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b32c0-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4912c0-IntLiteralConstant" }, { - "id": "0x5597122b32c0-IntLiteralConstant", + "id": "0x55eadb4912c0-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x5597122b3460-Expr", + "id": "0x55eadb491460-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b3480-LiteralConstant" + "LiteralConstant": "0x55eadb491480-LiteralConstant" }, { - "id": "0x5597122b3480-LiteralConstant", + "id": "0x55eadb491480-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b3480-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb491480-IntLiteralConstant" }, { - "id": "0x5597122b3480-IntLiteralConstant", + "id": "0x55eadb491480-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x5597122b2ae0-AllocOpt", + "id": "0x55eadb490ae0-AllocOpt", "variantKey": "StatOrErrmsg", - "StatOrErrmsg": "0x5597122b2ae0-StatOrErrmsg" + "StatOrErrmsg": "0x55eadb490ae0-StatOrErrmsg" }, { - "id": "0x5597122b2ae0-StatOrErrmsg", + "id": "0x55eadb490ae0-StatOrErrmsg", "variantKey": "StatVariable", - "StatVariable": "0x5597122b2ae0-StatVariable" + "StatVariable": "0x55eadb490ae0-StatVariable" }, { - "id": "0x5597122b2ae0-StatVariable", - "Expr": "0x5597122b2ae0-Variable" + "id": "0x55eadb490ae0-StatVariable", + "Expr": "0x55eadb490ae0-Variable" }, { - "id": "0x5597122b2ae0-Variable", + "id": "0x55eadb490ae0-Variable", "variantKey": "Designator", - "Designator": "0x5597122b36a0-Designator" + "Designator": "0x55eadb4916a0-Designator" }, { - "id": "0x5597122b36a0-Designator", + "id": "0x55eadb4916a0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122b36b0-DataRef" + "DataRef": "0x55eadb4916b0-DataRef" }, { - "id": "0x5597122b36b0-DataRef", + "id": "0x55eadb4916b0-DataRef", "variantKey": "Name", - "Name": "0x5597122b36b0-Name" + "Name": "0x55eadb4916b0-Name" }, { - "id": "0x5597122b36b0-Name", + "id": "0x55eadb4916b0-Name", "source": "i" }, { - "id": "0x5597122b3710-ExecutionPartConstruct", + "id": "0x55eadb491710-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122b3710-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb491710-ExecutableConstruct" }, { - "id": "0x5597122b3710-ExecutableConstruct", + "id": "0x55eadb491710-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122b3710-Statement" + "Statement": "0x55eadb491710-Statement" }, { - "id": "0x5597122b3710-Statement", - "statement": "0x5597122b3720-ActionStmt", + "id": "0x55eadb491710-Statement", + "statement": "0x55eadb491720-ActionStmt", "source": "call check_err(i)" }, { - "id": "0x5597122b3720-ActionStmt", + "id": "0x55eadb491720-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x5597122b39b0-CallStmt" + "CallStmt": "0x55eadb4919b0-CallStmt" }, { - "id": "0x5597122b39b0-CallStmt", - "call": "0x5597122b39b0-Call" + "id": "0x55eadb4919b0-CallStmt", + "call": "0x55eadb4919b0-Call" }, { - "id": "0x5597122b39b0-Call", - "ProcedureDesignator": "0x5597122b39c8-ProcedureDesignator", + "id": "0x55eadb4919b0-Call", + "ProcedureDesignator": "0x55eadb4919c8-ProcedureDesignator", "ActualArgSpec": [ - "0x5597122b38b0-ActualArgSpec" + "0x55eadb4918b0-ActualArgSpec" ] }, { - "id": "0x5597122b39c8-ProcedureDesignator", + "id": "0x55eadb4919c8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x5597122b39c8-Name" + "Name": "0x55eadb4919c8-Name" }, { - "id": "0x5597122b39c8-Name", + "id": "0x55eadb4919c8-Name", "source": "check_err" }, { - "id": "0x5597122b38b0-ActualArgSpec", - "ActualArg": "0x5597122b38b0-ActualArg" + "id": "0x55eadb4918b0-ActualArgSpec", + "ActualArg": "0x55eadb4918b0-ActualArg" }, { - "id": "0x5597122b38b0-ActualArg", + "id": "0x55eadb4918b0-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122b37c0-Expr" + "Expr": "0x55eadb4917c0-Expr" }, { - "id": "0x5597122b37c0-Expr", + "id": "0x55eadb4917c0-Expr", "variantKey": "Designator", - "Designator": "0x5597122afc70-Designator" + "Designator": "0x55eadb48dc70-Designator" }, { - "id": "0x5597122afc70-Designator", + "id": "0x55eadb48dc70-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122afc80-DataRef" + "DataRef": "0x55eadb48dc80-DataRef" }, { - "id": "0x5597122afc80-DataRef", + "id": "0x55eadb48dc80-DataRef", "variantKey": "Name", - "Name": "0x5597122afc80-Name" + "Name": "0x55eadb48dc80-Name" }, { - "id": "0x5597122afc80-Name", + "id": "0x55eadb48dc80-Name", "source": "i" }, { - "id": "0x5597122b41e0-ExecutionPartConstruct", + "id": "0x55eadb4921e0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122b41e0-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4921e0-ExecutableConstruct" }, { - "id": "0x5597122b41e0-ExecutableConstruct", + "id": "0x55eadb4921e0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122b41e0-Statement" + "Statement": "0x55eadb4921e0-Statement" }, { - "id": "0x5597122b41e0-Statement", - "statement": "0x5597122b41f0-ActionStmt", + "id": "0x55eadb4921e0-Statement", + "statement": "0x55eadb4921f0-ActionStmt", "source": "allocate(g(32 + 0, 32 + 0), stat = i)" }, { - "id": "0x5597122b41f0-ActionStmt", + "id": "0x55eadb4921f0-ActionStmt", "variantKey": "AllocateStmt", - "AllocateStmt": "0x5597122390b0-AllocateStmt" + "AllocateStmt": "0x55eadb4170b0-AllocateStmt" }, { - "id": "0x5597122390b0-AllocateStmt", + "id": "0x55eadb4170b0-AllocateStmt", "Allocation": [ - "0x5597122b4010-Allocation" + "0x55eadb492010-Allocation" ], "AllocOpt": [ - "0x5597122b3550-AllocOpt" + "0x55eadb491550-AllocOpt" ] }, { - "id": "0x5597122b4010-Allocation", - "AllocateObject": "0x5597122b4058-AllocateObject", + "id": "0x55eadb492010-Allocation", + "AllocateObject": "0x55eadb492058-AllocateObject", "AllocateShapeSpec": [ - "0x5597122b8730-AllocateShapeSpec", - "0x5597122b86c0-AllocateShapeSpec" + "0x55eadb496730-AllocateShapeSpec", + "0x55eadb4966c0-AllocateShapeSpec" ] }, { - "id": "0x5597122b4058-AllocateObject", + "id": "0x55eadb492058-AllocateObject", "variantKey": "Name", - "Name": "0x5597122b4068-Name" + "Name": "0x55eadb492068-Name" }, { - "id": "0x5597122b4068-Name", + "id": "0x55eadb492068-Name", "source": "g" }, { - "id": "0x5597122b8730-AllocateShapeSpec", - "upper_bound": "0x5597122b3b50-Expr" + "id": "0x55eadb496730-AllocateShapeSpec", + "upper_bound": "0x55eadb491b50-Expr" }, { - "id": "0x5597122b3b50-Expr", + "id": "0x55eadb491b50-Expr", "variantKey": "Add", - "Add": "0x5597122b3b70-Add" + "Add": "0x55eadb491b70-Add" }, { - "id": "0x5597122b3b70-Add", - "left": "0x5597122b3a70-Expr", - "right": "0x5597122b3c30-Expr", + "id": "0x55eadb491b70-Add", + "left": "0x55eadb491a70-Expr", + "right": "0x55eadb491c30-Expr", "op": "ADD" }, { - "id": "0x5597122b3a70-Expr", + "id": "0x55eadb491a70-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b3a90-LiteralConstant" + "LiteralConstant": "0x55eadb491a90-LiteralConstant" }, { - "id": "0x5597122b3a90-LiteralConstant", + "id": "0x55eadb491a90-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b3a90-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb491a90-IntLiteralConstant" }, { - "id": "0x5597122b3a90-IntLiteralConstant", + "id": "0x55eadb491a90-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x5597122b3c30-Expr", + "id": "0x55eadb491c30-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b3c50-LiteralConstant" + "LiteralConstant": "0x55eadb491c50-LiteralConstant" }, { - "id": "0x5597122b3c50-LiteralConstant", + "id": "0x55eadb491c50-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b3c50-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb491c50-IntLiteralConstant" }, { - "id": "0x5597122b3c50-IntLiteralConstant", + "id": "0x55eadb491c50-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x5597122b86c0-AllocateShapeSpec", - "upper_bound": "0x5597122b3df0-Expr" + "id": "0x55eadb4966c0-AllocateShapeSpec", + "upper_bound": "0x55eadb491df0-Expr" }, { - "id": "0x5597122b3df0-Expr", + "id": "0x55eadb491df0-Expr", "variantKey": "Add", - "Add": "0x5597122b3e10-Add" + "Add": "0x55eadb491e10-Add" }, { - "id": "0x5597122b3e10-Add", - "left": "0x5597122b3d10-Expr", - "right": "0x5597122b3ed0-Expr", + "id": "0x55eadb491e10-Add", + "left": "0x55eadb491d10-Expr", + "right": "0x55eadb491ed0-Expr", "op": "ADD" }, { - "id": "0x5597122b3d10-Expr", + "id": "0x55eadb491d10-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b3d30-LiteralConstant" + "LiteralConstant": "0x55eadb491d30-LiteralConstant" }, { - "id": "0x5597122b3d30-LiteralConstant", + "id": "0x55eadb491d30-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b3d30-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb491d30-IntLiteralConstant" }, { - "id": "0x5597122b3d30-IntLiteralConstant", + "id": "0x55eadb491d30-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x5597122b3ed0-Expr", + "id": "0x55eadb491ed0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b3ef0-LiteralConstant" + "LiteralConstant": "0x55eadb491ef0-LiteralConstant" }, { - "id": "0x5597122b3ef0-LiteralConstant", + "id": "0x55eadb491ef0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b3ef0-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb491ef0-IntLiteralConstant" }, { - "id": "0x5597122b3ef0-IntLiteralConstant", + "id": "0x55eadb491ef0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x5597122b3550-AllocOpt", + "id": "0x55eadb491550-AllocOpt", "variantKey": "StatOrErrmsg", - "StatOrErrmsg": "0x5597122b3550-StatOrErrmsg" + "StatOrErrmsg": "0x55eadb491550-StatOrErrmsg" }, { - "id": "0x5597122b3550-StatOrErrmsg", + "id": "0x55eadb491550-StatOrErrmsg", "variantKey": "StatVariable", - "StatVariable": "0x5597122b3550-StatVariable" + "StatVariable": "0x55eadb491550-StatVariable" }, { - "id": "0x5597122b3550-StatVariable", - "Expr": "0x5597122b3550-Variable" + "id": "0x55eadb491550-StatVariable", + "Expr": "0x55eadb491550-Variable" }, { - "id": "0x5597122b3550-Variable", + "id": "0x55eadb491550-Variable", "variantKey": "Designator", - "Designator": "0x5597122b4110-Designator" + "Designator": "0x55eadb492110-Designator" }, { - "id": "0x5597122b4110-Designator", + "id": "0x55eadb492110-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122b4120-DataRef" + "DataRef": "0x55eadb492120-DataRef" }, { - "id": "0x5597122b4120-DataRef", + "id": "0x55eadb492120-DataRef", "variantKey": "Name", - "Name": "0x5597122b4120-Name" + "Name": "0x55eadb492120-Name" }, { - "id": "0x5597122b4120-Name", + "id": "0x55eadb492120-Name", "source": "i" }, { - "id": "0x5597122b4180-ExecutionPartConstruct", + "id": "0x55eadb492180-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122b4180-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb492180-ExecutableConstruct" }, { - "id": "0x5597122b4180-ExecutableConstruct", + "id": "0x55eadb492180-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122b4180-Statement" + "Statement": "0x55eadb492180-Statement" }, { - "id": "0x5597122b4180-Statement", - "statement": "0x5597122b4190-ActionStmt", + "id": "0x55eadb492180-Statement", + "statement": "0x55eadb492190-ActionStmt", "source": "call check_err(i)" }, { - "id": "0x5597122b4190-ActionStmt", + "id": "0x55eadb492190-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x5597122b4420-CallStmt" + "CallStmt": "0x55eadb492420-CallStmt" }, { - "id": "0x5597122b4420-CallStmt", - "call": "0x5597122b4420-Call" + "id": "0x55eadb492420-CallStmt", + "call": "0x55eadb492420-Call" }, { - "id": "0x5597122b4420-Call", - "ProcedureDesignator": "0x5597122b4438-ProcedureDesignator", + "id": "0x55eadb492420-Call", + "ProcedureDesignator": "0x55eadb492438-ProcedureDesignator", "ActualArgSpec": [ - "0x5597122b4320-ActualArgSpec" + "0x55eadb492320-ActualArgSpec" ] }, { - "id": "0x5597122b4438-ProcedureDesignator", + "id": "0x55eadb492438-ProcedureDesignator", "variantKey": "Name", - "Name": "0x5597122b4438-Name" + "Name": "0x55eadb492438-Name" }, { - "id": "0x5597122b4438-Name", + "id": "0x55eadb492438-Name", "source": "check_err" }, { - "id": "0x5597122b4320-ActualArgSpec", - "ActualArg": "0x5597122b4320-ActualArg" + "id": "0x55eadb492320-ActualArgSpec", + "ActualArg": "0x55eadb492320-ActualArg" }, { - "id": "0x5597122b4320-ActualArg", + "id": "0x55eadb492320-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122b4230-Expr" + "Expr": "0x55eadb492230-Expr" }, { - "id": "0x5597122b4230-Expr", + "id": "0x55eadb492230-Expr", "variantKey": "Designator", - "Designator": "0x5597122b0c80-Designator" + "Designator": "0x55eadb48ec80-Designator" }, { - "id": "0x5597122b0c80-Designator", + "id": "0x55eadb48ec80-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122b0c90-DataRef" + "DataRef": "0x55eadb48ec90-DataRef" }, { - "id": "0x5597122b0c90-DataRef", + "id": "0x55eadb48ec90-DataRef", "variantKey": "Name", - "Name": "0x5597122b0c90-Name" + "Name": "0x55eadb48ec90-Name" }, { - "id": "0x5597122b0c90-Name", + "id": "0x55eadb48ec90-Name", "source": "i" }, { - "id": "0x5597122b6fa0-ExecutionPartConstruct", + "id": "0x55eadb494fa0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122b6fa0-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb494fa0-ExecutableConstruct" }, { - "id": "0x5597122b6fa0-ExecutableConstruct", + "id": "0x55eadb494fa0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122b6fa0-Statement" + "Statement": "0x55eadb494fa0-Statement" }, { - "id": "0x5597122b6fa0-Statement", - "statement": "0x5597122b6fb0-ActionStmt", + "id": "0x55eadb494fa0-Statement", + "statement": "0x55eadb494fb0-ActionStmt", "source": "call init_array(32, 32, 32, 32, 32, a, b, c, d)" }, { - "id": "0x5597122b6fb0-ActionStmt", + "id": "0x55eadb494fb0-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x5597122b6e60-CallStmt" + "CallStmt": "0x55eadb494e60-CallStmt" }, { - "id": "0x5597122b6e60-CallStmt", - "call": "0x5597122b6e60-Call" + "id": "0x55eadb494e60-CallStmt", + "call": "0x55eadb494e60-Call" }, { - "id": "0x5597122b6e60-Call", - "ProcedureDesignator": "0x5597122b6e78-ProcedureDesignator", + "id": "0x55eadb494e60-Call", + "ProcedureDesignator": "0x55eadb494e78-ProcedureDesignator", "ActualArgSpec": [ - "0x5597122b6cf0-ActualArgSpec", - "0x5597122b6410-ActualArgSpec", - "0x5597122b6520-ActualArgSpec", - "0x5597122b6630-ActualArgSpec", - "0x5597122b6740-ActualArgSpec", - "0x5597122b6850-ActualArgSpec", - "0x5597122b6960-ActualArgSpec", - "0x5597122b6a70-ActualArgSpec", - "0x5597122b6be0-ActualArgSpec" + "0x55eadb494cf0-ActualArgSpec", + "0x55eadb494410-ActualArgSpec", + "0x55eadb494520-ActualArgSpec", + "0x55eadb494630-ActualArgSpec", + "0x55eadb494740-ActualArgSpec", + "0x55eadb494850-ActualArgSpec", + "0x55eadb494960-ActualArgSpec", + "0x55eadb494a70-ActualArgSpec", + "0x55eadb494be0-ActualArgSpec" ] }, { - "id": "0x5597122b6e78-ProcedureDesignator", + "id": "0x55eadb494e78-ProcedureDesignator", "variantKey": "Name", - "Name": "0x5597122b6e78-Name" + "Name": "0x55eadb494e78-Name" }, { - "id": "0x5597122b6e78-Name", + "id": "0x55eadb494e78-Name", "source": "init_array" }, { - "id": "0x5597122b6cf0-ActualArgSpec", - "ActualArg": "0x5597122b6cf0-ActualArg" + "id": "0x55eadb494cf0-ActualArgSpec", + "ActualArg": "0x55eadb494cf0-ActualArg" }, { - "id": "0x5597122b6cf0-ActualArg", + "id": "0x55eadb494cf0-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122b54c0-Expr" + "Expr": "0x55eadb4934c0-Expr" }, { - "id": "0x5597122b54c0-Expr", + "id": "0x55eadb4934c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b54e0-LiteralConstant" + "LiteralConstant": "0x55eadb4934e0-LiteralConstant" }, { - "id": "0x5597122b54e0-LiteralConstant", + "id": "0x55eadb4934e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b54e0-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4934e0-IntLiteralConstant" }, { - "id": "0x5597122b54e0-IntLiteralConstant", + "id": "0x55eadb4934e0-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x5597122b6410-ActualArgSpec", - "ActualArg": "0x5597122b6410-ActualArg" + "id": "0x55eadb494410-ActualArgSpec", + "ActualArg": "0x55eadb494410-ActualArg" }, { - "id": "0x5597122b6410-ActualArg", + "id": "0x55eadb494410-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122b4e80-Expr" + "Expr": "0x55eadb492e80-Expr" }, { - "id": "0x5597122b4e80-Expr", + "id": "0x55eadb492e80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b4ea0-LiteralConstant" + "LiteralConstant": "0x55eadb492ea0-LiteralConstant" }, { - "id": "0x5597122b4ea0-LiteralConstant", + "id": "0x55eadb492ea0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b4ea0-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb492ea0-IntLiteralConstant" }, { - "id": "0x5597122b4ea0-IntLiteralConstant", + "id": "0x55eadb492ea0-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x5597122b6520-ActualArgSpec", - "ActualArg": "0x5597122b6520-ActualArg" + "id": "0x55eadb494520-ActualArgSpec", + "ActualArg": "0x55eadb494520-ActualArg" }, { - "id": "0x5597122b6520-ActualArg", + "id": "0x55eadb494520-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122b4900-Expr" + "Expr": "0x55eadb492900-Expr" }, { - "id": "0x5597122b4900-Expr", + "id": "0x55eadb492900-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b4920-LiteralConstant" + "LiteralConstant": "0x55eadb492920-LiteralConstant" }, { - "id": "0x5597122b4920-LiteralConstant", + "id": "0x55eadb492920-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b4920-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb492920-IntLiteralConstant" }, { - "id": "0x5597122b4920-IntLiteralConstant", + "id": "0x55eadb492920-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x5597122b6630-ActualArgSpec", - "ActualArg": "0x5597122b6630-ActualArg" + "id": "0x55eadb494630-ActualArgSpec", + "ActualArg": "0x55eadb494630-ActualArg" }, { - "id": "0x5597122b6630-ActualArg", + "id": "0x55eadb494630-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122b47d0-Expr" + "Expr": "0x55eadb4927d0-Expr" }, { - "id": "0x5597122b47d0-Expr", + "id": "0x55eadb4927d0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b47f0-LiteralConstant" + "LiteralConstant": "0x55eadb4927f0-LiteralConstant" }, { - "id": "0x5597122b47f0-LiteralConstant", + "id": "0x55eadb4927f0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b47f0-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4927f0-IntLiteralConstant" }, { - "id": "0x5597122b47f0-IntLiteralConstant", + "id": "0x55eadb4927f0-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x5597122b6740-ActualArgSpec", - "ActualArg": "0x5597122b6740-ActualArg" + "id": "0x55eadb494740-ActualArgSpec", + "ActualArg": "0x55eadb494740-ActualArg" }, { - "id": "0x5597122b6740-ActualArg", + "id": "0x55eadb494740-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122b46a0-Expr" + "Expr": "0x55eadb4926a0-Expr" }, { - "id": "0x5597122b46a0-Expr", + "id": "0x55eadb4926a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b46c0-LiteralConstant" + "LiteralConstant": "0x55eadb4926c0-LiteralConstant" }, { - "id": "0x5597122b46c0-LiteralConstant", + "id": "0x55eadb4926c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b46c0-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4926c0-IntLiteralConstant" }, { - "id": "0x5597122b46c0-IntLiteralConstant", + "id": "0x55eadb4926c0-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x5597122b6850-ActualArgSpec", - "ActualArg": "0x5597122b6850-ActualArg" + "id": "0x55eadb494850-ActualArgSpec", + "ActualArg": "0x55eadb494850-ActualArg" }, { - "id": "0x5597122b6850-ActualArg", + "id": "0x55eadb494850-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122b45c0-Expr" + "Expr": "0x55eadb4925c0-Expr" }, { - "id": "0x5597122b45c0-Expr", + "id": "0x55eadb4925c0-Expr", "variantKey": "Designator", - "Designator": "0x5597122b5a30-Designator" + "Designator": "0x55eadb493a30-Designator" }, { - "id": "0x5597122b5a30-Designator", + "id": "0x55eadb493a30-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122b5a40-DataRef" + "DataRef": "0x55eadb493a40-DataRef" }, { - "id": "0x5597122b5a40-DataRef", + "id": "0x55eadb493a40-DataRef", "variantKey": "Name", - "Name": "0x5597122b5a40-Name" + "Name": "0x55eadb493a40-Name" }, { - "id": "0x5597122b5a40-Name", + "id": "0x55eadb493a40-Name", "source": "a" }, { - "id": "0x5597122b6960-ActualArgSpec", - "ActualArg": "0x5597122b6960-ActualArg" + "id": "0x55eadb494960-ActualArgSpec", + "ActualArg": "0x55eadb494960-ActualArg" }, { - "id": "0x5597122b6960-ActualArg", + "id": "0x55eadb494960-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122b44e0-Expr" + "Expr": "0x55eadb4924e0-Expr" }, { - "id": "0x5597122b44e0-Expr", + "id": "0x55eadb4924e0-Expr", "variantKey": "Designator", - "Designator": "0x5597122b53f0-Designator" + "Designator": "0x55eadb4933f0-Designator" }, { - "id": "0x5597122b53f0-Designator", + "id": "0x55eadb4933f0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122b5400-DataRef" + "DataRef": "0x55eadb493400-DataRef" }, { - "id": "0x5597122b5400-DataRef", + "id": "0x55eadb493400-DataRef", "variantKey": "Name", - "Name": "0x5597122b5400-Name" + "Name": "0x55eadb493400-Name" }, { - "id": "0x5597122b5400-Name", + "id": "0x55eadb493400-Name", "source": "b" }, { - "id": "0x5597122b6a70-ActualArgSpec", - "ActualArg": "0x5597122b6a70-ActualArg" + "id": "0x55eadb494a70-ActualArgSpec", + "ActualArg": "0x55eadb494a70-ActualArg" }, { - "id": "0x5597122b6a70-ActualArg", + "id": "0x55eadb494a70-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122b5b00-Expr" + "Expr": "0x55eadb493b00-Expr" }, { - "id": "0x5597122b5b00-Expr", + "id": "0x55eadb493b00-Expr", "variantKey": "Designator", - "Designator": "0x5597122b4db0-Designator" + "Designator": "0x55eadb492db0-Designator" }, { - "id": "0x5597122b4db0-Designator", + "id": "0x55eadb492db0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122b4dc0-DataRef" + "DataRef": "0x55eadb492dc0-DataRef" }, { - "id": "0x5597122b4dc0-DataRef", + "id": "0x55eadb492dc0-DataRef", "variantKey": "Name", - "Name": "0x5597122b4dc0-Name" + "Name": "0x55eadb492dc0-Name" }, { - "id": "0x5597122b4dc0-Name", + "id": "0x55eadb492dc0-Name", "source": "c" }, { - "id": "0x5597122b6be0-ActualArgSpec", - "ActualArg": "0x5597122b6be0-ActualArg" + "id": "0x55eadb494be0-ActualArgSpec", + "ActualArg": "0x55eadb494be0-ActualArg" }, { - "id": "0x5597122b6be0-ActualArg", + "id": "0x55eadb494be0-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122b6140-Expr" + "Expr": "0x55eadb494140-Expr" }, { - "id": "0x5597122b6140-Expr", + "id": "0x55eadb494140-Expr", "variantKey": "Designator", - "Designator": "0x5597122b6b70-Designator" + "Designator": "0x55eadb494b70-Designator" }, { - "id": "0x5597122b6b70-Designator", + "id": "0x55eadb494b70-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122b6b80-DataRef" + "DataRef": "0x55eadb494b80-DataRef" }, { - "id": "0x5597122b6b80-DataRef", + "id": "0x55eadb494b80-DataRef", "variantKey": "Name", - "Name": "0x5597122b6b80-Name" + "Name": "0x55eadb494b80-Name" }, { - "id": "0x5597122b6b80-Name", + "id": "0x55eadb494b80-Name", "source": "d" }, { - "id": "0x5597122b5e60-ExecutionPartConstruct", + "id": "0x55eadb493e60-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122b5e60-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb493e60-ExecutableConstruct" }, { - "id": "0x5597122b5e60-ExecutableConstruct", + "id": "0x55eadb493e60-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122b5e60-Statement" + "Statement": "0x55eadb493e60-Statement" }, { - "id": "0x5597122b5e60-Statement", - "statement": "0x5597122b5e70-ActionStmt", + "id": "0x55eadb493e60-Statement", + "statement": "0x55eadb493e70-ActionStmt", "source": "call polybench_timer_start()" }, { - "id": "0x5597122b5e70-ActionStmt", + "id": "0x55eadb493e70-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x5597122b6ff0-CallStmt" + "CallStmt": "0x55eadb494ff0-CallStmt" }, { - "id": "0x5597122b6ff0-CallStmt", - "call": "0x5597122b6ff0-Call" + "id": "0x55eadb494ff0-CallStmt", + "call": "0x55eadb494ff0-Call" }, { - "id": "0x5597122b6ff0-Call", - "ProcedureDesignator": "0x5597122b7008-ProcedureDesignator" + "id": "0x55eadb494ff0-Call", + "ProcedureDesignator": "0x55eadb495008-ProcedureDesignator" }, { - "id": "0x5597122b7008-ProcedureDesignator", + "id": "0x55eadb495008-ProcedureDesignator", "variantKey": "Name", - "Name": "0x5597122b7008-Name" + "Name": "0x55eadb495008-Name" }, { - "id": "0x5597122b7008-Name", + "id": "0x55eadb495008-Name", "source": "polybench_timer_start" }, { - "id": "0x5597122ca720-ExecutionPartConstruct", + "id": "0x55eadb4a8720-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122ca720-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4a8720-ExecutableConstruct" }, { - "id": "0x5597122ca720-ExecutableConstruct", + "id": "0x55eadb4a8720-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122ca720-Statement" + "Statement": "0x55eadb4a8720-Statement" }, { - "id": "0x5597122ca720-Statement", - "statement": "0x5597122ca730-ActionStmt", + "id": "0x55eadb4a8720-Statement", + "statement": "0x55eadb4a8730-ActionStmt", "source": "call kernel_3mm(32, 32, 32, 32, 32, e, a, b, f, c, d, g)" }, { - "id": "0x5597122ca730-ActionStmt", + "id": "0x55eadb4a8730-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x5597122ca5e0-CallStmt" + "CallStmt": "0x55eadb4a85e0-CallStmt" }, { - "id": "0x5597122ca5e0-CallStmt", - "call": "0x5597122ca5e0-Call" + "id": "0x55eadb4a85e0-CallStmt", + "call": "0x55eadb4a85e0-Call" }, { - "id": "0x5597122ca5e0-Call", - "ProcedureDesignator": "0x5597122ca5f8-ProcedureDesignator", + "id": "0x55eadb4a85e0-Call", + "ProcedureDesignator": "0x55eadb4a85f8-ProcedureDesignator", "ActualArgSpec": [ - "0x5597122ca470-ActualArgSpec", - "0x5597122c97e0-ActualArgSpec", - "0x5597122c98f0-ActualArgSpec", - "0x5597122c9a00-ActualArgSpec", - "0x5597122c9b10-ActualArgSpec", - "0x5597122c9c20-ActualArgSpec", - "0x5597122c9d30-ActualArgSpec", - "0x5597122c9e40-ActualArgSpec", - "0x5597122c9f50-ActualArgSpec", - "0x5597122ca060-ActualArgSpec", - "0x5597122ca170-ActualArgSpec", - "0x5597122ca360-ActualArgSpec" + "0x55eadb4a8470-ActualArgSpec", + "0x55eadb4a77e0-ActualArgSpec", + "0x55eadb4a78f0-ActualArgSpec", + "0x55eadb4a7a00-ActualArgSpec", + "0x55eadb4a7b10-ActualArgSpec", + "0x55eadb4a7c20-ActualArgSpec", + "0x55eadb4a7d30-ActualArgSpec", + "0x55eadb4a7e40-ActualArgSpec", + "0x55eadb4a7f50-ActualArgSpec", + "0x55eadb4a8060-ActualArgSpec", + "0x55eadb4a8170-ActualArgSpec", + "0x55eadb4a8360-ActualArgSpec" ] }, { - "id": "0x5597122ca5f8-ProcedureDesignator", + "id": "0x55eadb4a85f8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x5597122ca5f8-Name" + "Name": "0x55eadb4a85f8-Name" }, { - "id": "0x5597122ca5f8-Name", + "id": "0x55eadb4a85f8-Name", "source": "kernel_3mm" }, { - "id": "0x5597122ca470-ActualArgSpec", - "ActualArg": "0x5597122ca470-ActualArg" + "id": "0x55eadb4a8470-ActualArgSpec", + "ActualArg": "0x55eadb4a8470-ActualArg" }, { - "id": "0x5597122ca470-ActualArg", + "id": "0x55eadb4a8470-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122b75f0-Expr" + "Expr": "0x55eadb4955f0-Expr" }, { - "id": "0x5597122b75f0-Expr", + "id": "0x55eadb4955f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b7610-LiteralConstant" + "LiteralConstant": "0x55eadb495610-LiteralConstant" }, { - "id": "0x5597122b7610-LiteralConstant", + "id": "0x55eadb495610-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b7610-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb495610-IntLiteralConstant" }, { - "id": "0x5597122b7610-IntLiteralConstant", + "id": "0x55eadb495610-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x5597122c97e0-ActualArgSpec", - "ActualArg": "0x5597122c97e0-ActualArg" + "id": "0x55eadb4a77e0-ActualArgSpec", + "ActualArg": "0x55eadb4a77e0-ActualArg" }, { - "id": "0x5597122c97e0-ActualArg", + "id": "0x55eadb4a77e0-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122b7510-Expr" + "Expr": "0x55eadb495510-Expr" }, { - "id": "0x5597122b7510-Expr", + "id": "0x55eadb495510-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b7530-LiteralConstant" + "LiteralConstant": "0x55eadb495530-LiteralConstant" }, { - "id": "0x5597122b7530-LiteralConstant", + "id": "0x55eadb495530-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b7530-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb495530-IntLiteralConstant" }, { - "id": "0x5597122b7530-IntLiteralConstant", + "id": "0x55eadb495530-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x5597122c98f0-ActualArgSpec", - "ActualArg": "0x5597122c98f0-ActualArg" + "id": "0x55eadb4a78f0-ActualArgSpec", + "ActualArg": "0x55eadb4a78f0-ActualArg" }, { - "id": "0x5597122c98f0-ActualArg", + "id": "0x55eadb4a78f0-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122b7430-Expr" + "Expr": "0x55eadb495430-Expr" }, { - "id": "0x5597122b7430-Expr", + "id": "0x55eadb495430-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b7450-LiteralConstant" + "LiteralConstant": "0x55eadb495450-LiteralConstant" }, { - "id": "0x5597122b7450-LiteralConstant", + "id": "0x55eadb495450-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b7450-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb495450-IntLiteralConstant" }, { - "id": "0x5597122b7450-IntLiteralConstant", + "id": "0x55eadb495450-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x5597122c9a00-ActualArgSpec", - "ActualArg": "0x5597122c9a00-ActualArg" + "id": "0x55eadb4a7a00-ActualArgSpec", + "ActualArg": "0x55eadb4a7a00-ActualArg" }, { - "id": "0x5597122c9a00-ActualArg", + "id": "0x55eadb4a7a00-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122b7350-Expr" + "Expr": "0x55eadb495350-Expr" }, { - "id": "0x5597122b7350-Expr", + "id": "0x55eadb495350-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b7370-LiteralConstant" + "LiteralConstant": "0x55eadb495370-LiteralConstant" }, { - "id": "0x5597122b7370-LiteralConstant", + "id": "0x55eadb495370-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b7370-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb495370-IntLiteralConstant" }, { - "id": "0x5597122b7370-IntLiteralConstant", + "id": "0x55eadb495370-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x5597122c9b10-ActualArgSpec", - "ActualArg": "0x5597122c9b10-ActualArg" + "id": "0x55eadb4a7b10-ActualArgSpec", + "ActualArg": "0x55eadb4a7b10-ActualArg" }, { - "id": "0x5597122c9b10-ActualArg", + "id": "0x55eadb4a7b10-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122b7270-Expr" + "Expr": "0x55eadb495270-Expr" }, { - "id": "0x5597122b7270-Expr", + "id": "0x55eadb495270-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b7290-LiteralConstant" + "LiteralConstant": "0x55eadb495290-LiteralConstant" }, { - "id": "0x5597122b7290-LiteralConstant", + "id": "0x55eadb495290-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b7290-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb495290-IntLiteralConstant" }, { - "id": "0x5597122b7290-IntLiteralConstant", + "id": "0x55eadb495290-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x5597122c9c20-ActualArgSpec", - "ActualArg": "0x5597122c9c20-ActualArg" + "id": "0x55eadb4a7c20-ActualArgSpec", + "ActualArg": "0x55eadb4a7c20-ActualArg" }, { - "id": "0x5597122c9c20-ActualArg", + "id": "0x55eadb4a7c20-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122b7190-Expr" + "Expr": "0x55eadb495190-Expr" }, { - "id": "0x5597122b7190-Expr", + "id": "0x55eadb495190-Expr", "variantKey": "Designator", - "Designator": "0x5597122b8220-Designator" + "Designator": "0x55eadb496220-Designator" }, { - "id": "0x5597122b8220-Designator", + "id": "0x55eadb496220-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122b8230-DataRef" + "DataRef": "0x55eadb496230-DataRef" }, { - "id": "0x5597122b8230-DataRef", + "id": "0x55eadb496230-DataRef", "variantKey": "Name", - "Name": "0x5597122b8230-Name" + "Name": "0x55eadb496230-Name" }, { - "id": "0x5597122b8230-Name", + "id": "0x55eadb496230-Name", "source": "e" }, { - "id": "0x5597122c9d30-ActualArgSpec", - "ActualArg": "0x5597122c9d30-ActualArg" + "id": "0x55eadb4a7d30-ActualArgSpec", + "ActualArg": "0x55eadb4a7d30-ActualArg" }, { - "id": "0x5597122c9d30-ActualArg", + "id": "0x55eadb4a7d30-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122b70b0-Expr" + "Expr": "0x55eadb4950b0-Expr" }, { - "id": "0x5597122b70b0-Expr", + "id": "0x55eadb4950b0-Expr", "variantKey": "Designator", - "Designator": "0x5597122b7c30-Designator" + "Designator": "0x55eadb495c30-Designator" }, { - "id": "0x5597122b7c30-Designator", + "id": "0x55eadb495c30-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122b7c40-DataRef" + "DataRef": "0x55eadb495c40-DataRef" }, { - "id": "0x5597122b7c40-DataRef", + "id": "0x55eadb495c40-DataRef", "variantKey": "Name", - "Name": "0x5597122b7c40-Name" + "Name": "0x55eadb495c40-Name" }, { - "id": "0x5597122b7c40-Name", + "id": "0x55eadb495c40-Name", "source": "a" }, { - "id": "0x5597122c9e40-ActualArgSpec", - "ActualArg": "0x5597122c9e40-ActualArg" + "id": "0x55eadb4a7e40-ActualArgSpec", + "ActualArg": "0x55eadb4a7e40-ActualArg" }, { - "id": "0x5597122c9e40-ActualArg", + "id": "0x55eadb4a7e40-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122b78d0-Expr" + "Expr": "0x55eadb4958d0-Expr" }, { - "id": "0x5597122b78d0-Expr", + "id": "0x55eadb4958d0-Expr", "variantKey": "Designator", - "Designator": "0x5597122b7870-Designator" + "Designator": "0x55eadb495870-Designator" }, { - "id": "0x5597122b7870-Designator", + "id": "0x55eadb495870-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122b7880-DataRef" + "DataRef": "0x55eadb495880-DataRef" }, { - "id": "0x5597122b7880-DataRef", + "id": "0x55eadb495880-DataRef", "variantKey": "Name", - "Name": "0x5597122b7880-Name" + "Name": "0x55eadb495880-Name" }, { - "id": "0x5597122b7880-Name", + "id": "0x55eadb495880-Name", "source": "b" }, { - "id": "0x5597122c9f50-ActualArgSpec", - "ActualArg": "0x5597122c9f50-ActualArg" + "id": "0x55eadb4a7f50-ActualArgSpec", + "ActualArg": "0x55eadb4a7f50-ActualArg" }, { - "id": "0x5597122c9f50-ActualArg", + "id": "0x55eadb4a7f50-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122c9580-Expr" + "Expr": "0x55eadb4a7580-Expr" }, { - "id": "0x5597122c9580-Expr", + "id": "0x55eadb4a7580-Expr", "variantKey": "Designator", - "Designator": "0x5597122b16f0-Designator" + "Designator": "0x55eadb48f6f0-Designator" }, { - "id": "0x5597122b16f0-Designator", + "id": "0x55eadb48f6f0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122b1700-DataRef" + "DataRef": "0x55eadb48f700-DataRef" }, { - "id": "0x5597122b1700-DataRef", + "id": "0x55eadb48f700-DataRef", "variantKey": "Name", - "Name": "0x5597122b1700-Name" + "Name": "0x55eadb48f700-Name" }, { - "id": "0x5597122b1700-Name", + "id": "0x55eadb48f700-Name", "source": "f" }, { - "id": "0x5597122ca060-ActualArgSpec", - "ActualArg": "0x5597122ca060-ActualArg" + "id": "0x55eadb4a8060-ActualArgSpec", + "ActualArg": "0x55eadb4a8060-ActualArg" }, { - "id": "0x5597122ca060-ActualArg", + "id": "0x55eadb4a8060-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122b82f0-Expr" + "Expr": "0x55eadb4962f0-Expr" }, { - "id": "0x5597122b82f0-Expr", + "id": "0x55eadb4962f0-Expr", "variantKey": "Designator", - "Designator": "0x5597122b6070-Designator" + "Designator": "0x55eadb494070-Designator" }, { - "id": "0x5597122b6070-Designator", + "id": "0x55eadb494070-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122b6080-DataRef" + "DataRef": "0x55eadb494080-DataRef" }, { - "id": "0x5597122b6080-DataRef", + "id": "0x55eadb494080-DataRef", "variantKey": "Name", - "Name": "0x5597122b6080-Name" + "Name": "0x55eadb494080-Name" }, { - "id": "0x5597122b6080-Name", + "id": "0x55eadb494080-Name", "source": "c" }, { - "id": "0x5597122ca170-ActualArgSpec", - "ActualArg": "0x5597122ca170-ActualArg" + "id": "0x55eadb4a8170-ActualArgSpec", + "ActualArg": "0x55eadb4a8170-ActualArg" }, { - "id": "0x5597122ca170-ActualArg", + "id": "0x55eadb4a8170-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122b7d00-Expr" + "Expr": "0x55eadb495d00-Expr" }, { - "id": "0x5597122b7d00-Expr", + "id": "0x55eadb495d00-Expr", "variantKey": "Designator", - "Designator": "0x5597122b2160-Designator" + "Designator": "0x55eadb490160-Designator" }, { - "id": "0x5597122b2160-Designator", + "id": "0x55eadb490160-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122b2170-DataRef" + "DataRef": "0x55eadb490170-DataRef" }, { - "id": "0x5597122b2170-DataRef", + "id": "0x55eadb490170-DataRef", "variantKey": "Name", - "Name": "0x5597122b2170-Name" + "Name": "0x55eadb490170-Name" }, { - "id": "0x5597122b2170-Name", + "id": "0x55eadb490170-Name", "source": "d" }, { - "id": "0x5597122ca360-ActualArgSpec", - "ActualArg": "0x5597122ca360-ActualArg" + "id": "0x55eadb4a8360-ActualArgSpec", + "ActualArg": "0x55eadb4a8360-ActualArg" }, { - "id": "0x5597122ca360-ActualArg", + "id": "0x55eadb4a8360-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122ca270-Expr" + "Expr": "0x55eadb4a8270-Expr" }, { - "id": "0x5597122ca270-Expr", + "id": "0x55eadb4a8270-Expr", "variantKey": "Designator", - "Designator": "0x5597122b7740-Designator" + "Designator": "0x55eadb495740-Designator" }, { - "id": "0x5597122b7740-Designator", + "id": "0x55eadb495740-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122b7750-DataRef" + "DataRef": "0x55eadb495750-DataRef" }, { - "id": "0x5597122b7750-DataRef", + "id": "0x55eadb495750-DataRef", "variantKey": "Name", - "Name": "0x5597122b7750-Name" + "Name": "0x55eadb495750-Name" }, { - "id": "0x5597122b7750-Name", + "id": "0x55eadb495750-Name", "source": "g" }, { - "id": "0x5597122c92a0-ExecutionPartConstruct", + "id": "0x55eadb4a72a0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122c92a0-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4a72a0-ExecutableConstruct" }, { - "id": "0x5597122c92a0-ExecutableConstruct", + "id": "0x55eadb4a72a0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122c92a0-Statement" + "Statement": "0x55eadb4a72a0-Statement" }, { - "id": "0x5597122c92a0-Statement", - "statement": "0x5597122c92b0-ActionStmt", + "id": "0x55eadb4a72a0-Statement", + "statement": "0x55eadb4a72b0-ActionStmt", "source": "call polybench_timer_stop()" }, { - "id": "0x5597122c92b0-ActionStmt", + "id": "0x55eadb4a72b0-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x5597122ca770-CallStmt" + "CallStmt": "0x55eadb4a8770-CallStmt" }, { - "id": "0x5597122ca770-CallStmt", - "call": "0x5597122ca770-Call" + "id": "0x55eadb4a8770-CallStmt", + "call": "0x55eadb4a8770-Call" }, { - "id": "0x5597122ca770-Call", - "ProcedureDesignator": "0x5597122ca788-ProcedureDesignator" + "id": "0x55eadb4a8770-Call", + "ProcedureDesignator": "0x55eadb4a8788-ProcedureDesignator" }, { - "id": "0x5597122ca788-ProcedureDesignator", + "id": "0x55eadb4a8788-ProcedureDesignator", "variantKey": "Name", - "Name": "0x5597122ca788-Name" + "Name": "0x55eadb4a8788-Name" }, { - "id": "0x5597122ca788-Name", + "id": "0x55eadb4a8788-Name", "source": "polybench_timer_stop" }, { - "id": "0x5597122c9710-ExecutionPartConstruct", + "id": "0x55eadb4a7710-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122c9710-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4a7710-ExecutableConstruct" }, { - "id": "0x5597122c9710-ExecutableConstruct", + "id": "0x55eadb4a7710-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122c9710-Statement" + "Statement": "0x55eadb4a7710-Statement" }, { - "id": "0x5597122c9710-Statement", - "statement": "0x5597122c9720-ActionStmt", + "id": "0x55eadb4a7710-Statement", + "statement": "0x55eadb4a7720-ActionStmt", "source": "call polybench_timer_print()" }, { - "id": "0x5597122c9720-ActionStmt", + "id": "0x55eadb4a7720-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x5597122ca830-CallStmt" + "CallStmt": "0x55eadb4a8830-CallStmt" }, { - "id": "0x5597122ca830-CallStmt", - "call": "0x5597122ca830-Call" + "id": "0x55eadb4a8830-CallStmt", + "call": "0x55eadb4a8830-Call" }, { - "id": "0x5597122ca830-Call", - "ProcedureDesignator": "0x5597122ca848-ProcedureDesignator" + "id": "0x55eadb4a8830-Call", + "ProcedureDesignator": "0x55eadb4a8848-ProcedureDesignator" }, { - "id": "0x5597122ca848-ProcedureDesignator", + "id": "0x55eadb4a8848-ProcedureDesignator", "variantKey": "Name", - "Name": "0x5597122ca848-Name" + "Name": "0x55eadb4a8848-Name" }, { - "id": "0x5597122ca848-Name", + "id": "0x55eadb4a8848-Name", "source": "polybench_timer_print" }, { - "id": "0x5597122b5820-ExecutionPartConstruct", + "id": "0x55eadb493820-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122b5820-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb493820-ExecutableConstruct" }, { - "id": "0x5597122b5820-ExecutableConstruct", + "id": "0x55eadb493820-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122b5820-Statement" + "Statement": "0x55eadb493820-Statement" }, { - "id": "0x5597122b5820-Statement", - "statement": "0x5597122b5830-ActionStmt", + "id": "0x55eadb493820-Statement", + "statement": "0x55eadb493830-ActionStmt", "source": "call print_array(32, 32, g)" }, { - "id": "0x5597122b5830-ActionStmt", + "id": "0x55eadb493830-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x5597122caec0-CallStmt" + "CallStmt": "0x55eadb4a8ec0-CallStmt" }, { - "id": "0x5597122caec0-CallStmt", - "call": "0x5597122caec0-Call" + "id": "0x55eadb4a8ec0-CallStmt", + "call": "0x55eadb4a8ec0-Call" }, { - "id": "0x5597122caec0-Call", - "ProcedureDesignator": "0x5597122caed8-ProcedureDesignator", + "id": "0x55eadb4a8ec0-Call", + "ProcedureDesignator": "0x55eadb4a8ed8-ProcedureDesignator", "ActualArgSpec": [ - "0x5597122cadc0-ActualArgSpec", - "0x5597122caba0-ActualArgSpec", - "0x5597122cacb0-ActualArgSpec" + "0x55eadb4a8dc0-ActualArgSpec", + "0x55eadb4a8ba0-ActualArgSpec", + "0x55eadb4a8cb0-ActualArgSpec" ] }, { - "id": "0x5597122caed8-ProcedureDesignator", + "id": "0x55eadb4a8ed8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x5597122caed8-Name" + "Name": "0x55eadb4a8ed8-Name" }, { - "id": "0x5597122caed8-Name", + "id": "0x55eadb4a8ed8-Name", "source": "print_array" }, { - "id": "0x5597122cadc0-ActualArgSpec", - "ActualArg": "0x5597122cadc0-ActualArg" + "id": "0x55eadb4a8dc0-ActualArgSpec", + "ActualArg": "0x55eadb4a8dc0-ActualArg" }, { - "id": "0x5597122cadc0-ActualArg", + "id": "0x55eadb4a8dc0-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122caab0-Expr" + "Expr": "0x55eadb4a8ab0-Expr" }, { - "id": "0x5597122caab0-Expr", + "id": "0x55eadb4a8ab0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122caad0-LiteralConstant" + "LiteralConstant": "0x55eadb4a8ad0-LiteralConstant" }, { - "id": "0x5597122caad0-LiteralConstant", + "id": "0x55eadb4a8ad0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122caad0-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4a8ad0-IntLiteralConstant" }, { - "id": "0x5597122caad0-IntLiteralConstant", + "id": "0x55eadb4a8ad0-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x5597122caba0-ActualArgSpec", - "ActualArg": "0x5597122caba0-ActualArg" + "id": "0x55eadb4a8ba0-ActualArgSpec", + "ActualArg": "0x55eadb4a8ba0-ActualArg" }, { - "id": "0x5597122caba0-ActualArg", + "id": "0x55eadb4a8ba0-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122ca9d0-Expr" + "Expr": "0x55eadb4a89d0-Expr" }, { - "id": "0x5597122ca9d0-Expr", + "id": "0x55eadb4a89d0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122ca9f0-LiteralConstant" + "LiteralConstant": "0x55eadb4a89f0-LiteralConstant" }, { - "id": "0x5597122ca9f0-LiteralConstant", + "id": "0x55eadb4a89f0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122ca9f0-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4a89f0-IntLiteralConstant" }, { - "id": "0x5597122ca9f0-IntLiteralConstant", + "id": "0x55eadb4a89f0-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x5597122cacb0-ActualArgSpec", - "ActualArg": "0x5597122cacb0-ActualArg" + "id": "0x55eadb4a8cb0-ActualArgSpec", + "ActualArg": "0x55eadb4a8cb0-ActualArg" }, { - "id": "0x5597122cacb0-ActualArg", + "id": "0x55eadb4a8cb0-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122ca8f0-Expr" + "Expr": "0x55eadb4a88f0-Expr" }, { - "id": "0x5597122ca8f0-Expr", + "id": "0x55eadb4a88f0-Expr", "variantKey": "Designator", - "Designator": "0x5597122b55f0-Designator" + "Designator": "0x55eadb4935f0-Designator" }, { - "id": "0x5597122b55f0-Designator", + "id": "0x55eadb4935f0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122b5600-DataRef" + "DataRef": "0x55eadb493600-DataRef" }, { - "id": "0x5597122b5600-DataRef", + "id": "0x55eadb493600-DataRef", "variantKey": "Name", - "Name": "0x5597122b5600-Name" + "Name": "0x55eadb493600-Name" }, { - "id": "0x5597122b5600-Name", + "id": "0x55eadb493600-Name", "source": "g" }, { - "id": "0x5597122c94c0-ExecutionPartConstruct", + "id": "0x55eadb4a74c0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122c94c0-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4a74c0-ExecutableConstruct" }, { - "id": "0x5597122c94c0-ExecutableConstruct", + "id": "0x55eadb4a74c0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122c94c0-Statement" + "Statement": "0x55eadb4a74c0-Statement" }, { - "id": "0x5597122c94c0-Statement", - "statement": "0x5597122c94d0-ActionStmt", + "id": "0x55eadb4a74c0-Statement", + "statement": "0x55eadb4a74d0-ActionStmt", "source": "deallocate(a)" }, { - "id": "0x5597122c94d0-ActionStmt", + "id": "0x55eadb4a74d0-ActionStmt", "variantKey": "DeallocateStmt", - "DeallocateStmt": "0x5597122b8d90-DeallocateStmt" + "DeallocateStmt": "0x55eadb496d90-DeallocateStmt" }, { - "id": "0x5597122b8d90-DeallocateStmt", + "id": "0x55eadb496d90-DeallocateStmt", "AllocateObject": [ - "0x5597122b6e00-AllocateObject" + "0x55eadb494e00-AllocateObject" ] }, { - "id": "0x5597122b6e00-AllocateObject", + "id": "0x55eadb494e00-AllocateObject", "variantKey": "Name", - "Name": "0x5597122b6e10-Name" + "Name": "0x55eadb494e10-Name" }, { - "id": "0x5597122b6e10-Name", + "id": "0x55eadb494e10-Name", "source": "a" }, { - "id": "0x5597122b4fc0-ExecutionPartConstruct", + "id": "0x55eadb492fc0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122b4fc0-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb492fc0-ExecutableConstruct" }, { - "id": "0x5597122b4fc0-ExecutableConstruct", + "id": "0x55eadb492fc0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122b4fc0-Statement" + "Statement": "0x55eadb492fc0-Statement" }, { - "id": "0x5597122b4fc0-Statement", - "statement": "0x5597122b4fd0-ActionStmt", + "id": "0x55eadb492fc0-Statement", + "statement": "0x55eadb492fd0-ActionStmt", "source": "deallocate(b)" }, { - "id": "0x5597122b4fd0-ActionStmt", + "id": "0x55eadb492fd0-ActionStmt", "variantKey": "DeallocateStmt", - "DeallocateStmt": "0x5597122b9470-DeallocateStmt" + "DeallocateStmt": "0x55eadb497470-DeallocateStmt" }, { - "id": "0x5597122b9470-DeallocateStmt", + "id": "0x55eadb497470-DeallocateStmt", "AllocateObject": [ - "0x5597122af270-AllocateObject" + "0x55eadb48d270-AllocateObject" ] }, { - "id": "0x5597122af270-AllocateObject", + "id": "0x55eadb48d270-AllocateObject", "variantKey": "Name", - "Name": "0x5597122af280-Name" + "Name": "0x55eadb48d280-Name" }, { - "id": "0x5597122af280-Name", + "id": "0x55eadb48d280-Name", "source": "b" }, { - "id": "0x5597122b5c40-ExecutionPartConstruct", + "id": "0x55eadb493c40-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122b5c40-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb493c40-ExecutableConstruct" }, { - "id": "0x5597122b5c40-ExecutableConstruct", + "id": "0x55eadb493c40-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122b5c40-Statement" + "Statement": "0x55eadb493c40-Statement" }, { - "id": "0x5597122b5c40-Statement", - "statement": "0x5597122b5c50-ActionStmt", + "id": "0x55eadb493c40-Statement", + "statement": "0x55eadb493c50-ActionStmt", "source": "deallocate(c)" }, { - "id": "0x5597122b5c50-ActionStmt", + "id": "0x55eadb493c50-ActionStmt", "variantKey": "DeallocateStmt", - "DeallocateStmt": "0x5597122b9530-DeallocateStmt" + "DeallocateStmt": "0x55eadb497530-DeallocateStmt" }, { - "id": "0x5597122b9530-DeallocateStmt", + "id": "0x55eadb497530-DeallocateStmt", "AllocateObject": [ - "0x5597122b6f30-AllocateObject" + "0x55eadb494f30-AllocateObject" ] }, { - "id": "0x5597122b6f30-AllocateObject", + "id": "0x55eadb494f30-AllocateObject", "variantKey": "Name", - "Name": "0x5597122b6f40-Name" + "Name": "0x55eadb494f40-Name" }, { - "id": "0x5597122b6f40-Name", + "id": "0x55eadb494f40-Name", "source": "c" }, { - "id": "0x5597122b2be0-ExecutionPartConstruct", + "id": "0x55eadb490be0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122b2be0-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb490be0-ExecutableConstruct" }, { - "id": "0x5597122b2be0-ExecutableConstruct", + "id": "0x55eadb490be0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122b2be0-Statement" + "Statement": "0x55eadb490be0-Statement" }, { - "id": "0x5597122b2be0-Statement", - "statement": "0x5597122b2bf0-ActionStmt", + "id": "0x55eadb490be0-Statement", + "statement": "0x55eadb490bf0-ActionStmt", "source": "deallocate(d)" }, { - "id": "0x5597122b2bf0-ActionStmt", + "id": "0x55eadb490bf0-ActionStmt", "variantKey": "DeallocateStmt", - "DeallocateStmt": "0x5597122b9930-DeallocateStmt" + "DeallocateStmt": "0x55eadb497930-DeallocateStmt" }, { - "id": "0x5597122b9930-DeallocateStmt", + "id": "0x55eadb497930-DeallocateStmt", "AllocateObject": [ - "0x5597122c5ef0-AllocateObject" + "0x55eadb4a3ef0-AllocateObject" ] }, { - "id": "0x5597122c5ef0-AllocateObject", + "id": "0x55eadb4a3ef0-AllocateObject", "variantKey": "Name", - "Name": "0x5597122c5f00-Name" + "Name": "0x55eadb4a3f00-Name" }, { - "id": "0x5597122c5f00-Name", + "id": "0x55eadb4a3f00-Name", "source": "d" }, { - "id": "0x5597122af9e0-ExecutionPartConstruct", + "id": "0x55eadb48d9e0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122af9e0-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb48d9e0-ExecutableConstruct" }, { - "id": "0x5597122af9e0-ExecutableConstruct", + "id": "0x55eadb48d9e0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122af9e0-Statement" + "Statement": "0x55eadb48d9e0-Statement" }, { - "id": "0x5597122af9e0-Statement", - "statement": "0x5597122af9f0-ActionStmt", + "id": "0x55eadb48d9e0-Statement", + "statement": "0x55eadb48d9f0-ActionStmt", "source": "deallocate(e)" }, { - "id": "0x5597122af9f0-ActionStmt", + "id": "0x55eadb48d9f0-ActionStmt", "variantKey": "DeallocateStmt", - "DeallocateStmt": "0x5597122ba160-DeallocateStmt" + "DeallocateStmt": "0x55eadb498160-DeallocateStmt" }, { - "id": "0x5597122ba160-DeallocateStmt", + "id": "0x55eadb498160-DeallocateStmt", "AllocateObject": [ - "0x5597122b5df0-AllocateObject" + "0x55eadb493df0-AllocateObject" ] }, { - "id": "0x5597122b5df0-AllocateObject", + "id": "0x55eadb493df0-AllocateObject", "variantKey": "Name", - "Name": "0x5597122b5e00-Name" + "Name": "0x55eadb493e00-Name" }, { - "id": "0x5597122b5e00-Name", + "id": "0x55eadb493e00-Name", "source": "e" }, { - "id": "0x5597122b7df0-ExecutionPartConstruct", + "id": "0x55eadb495df0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122b7df0-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb495df0-ExecutableConstruct" }, { - "id": "0x5597122b7df0-ExecutableConstruct", + "id": "0x55eadb495df0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122b7df0-Statement" + "Statement": "0x55eadb495df0-Statement" }, { - "id": "0x5597122b7df0-Statement", - "statement": "0x5597122b7e00-ActionStmt", + "id": "0x55eadb495df0-Statement", + "statement": "0x55eadb495e00-ActionStmt", "source": "deallocate(f)" }, { - "id": "0x5597122b7e00-ActionStmt", + "id": "0x55eadb495e00-ActionStmt", "variantKey": "DeallocateStmt", - "DeallocateStmt": "0x5597122ba1c0-DeallocateStmt" + "DeallocateStmt": "0x55eadb4981c0-DeallocateStmt" }, { - "id": "0x5597122ba1c0-DeallocateStmt", + "id": "0x55eadb4981c0-DeallocateStmt", "AllocateObject": [ - "0x5597122b5ec0-AllocateObject" + "0x55eadb493ec0-AllocateObject" ] }, { - "id": "0x5597122b5ec0-AllocateObject", + "id": "0x55eadb493ec0-AllocateObject", "variantKey": "Name", - "Name": "0x5597122b5ed0-Name" + "Name": "0x55eadb493ed0-Name" }, { - "id": "0x5597122b5ed0-Name", + "id": "0x55eadb493ed0-Name", "source": "f" }, { - "id": "0x5597122b0080-ExecutionPartConstruct", + "id": "0x55eadb48e080-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122b0080-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb48e080-ExecutableConstruct" }, { - "id": "0x5597122b0080-ExecutableConstruct", + "id": "0x55eadb48e080-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122b0080-Statement" + "Statement": "0x55eadb48e080-Statement" }, { - "id": "0x5597122b0080-Statement", - "statement": "0x5597122b0090-ActionStmt", + "id": "0x55eadb48e080-Statement", + "statement": "0x55eadb48e090-ActionStmt", "source": "deallocate(g)" }, { - "id": "0x5597122b0090-ActionStmt", + "id": "0x55eadb48e090-ActionStmt", "variantKey": "DeallocateStmt", - "DeallocateStmt": "0x5597122be3c0-DeallocateStmt" + "DeallocateStmt": "0x55eadb49c3c0-DeallocateStmt" }, { - "id": "0x5597122be3c0-DeallocateStmt", + "id": "0x55eadb49c3c0-DeallocateStmt", "AllocateObject": [ - "0x5597122c9230-AllocateObject" + "0x55eadb4a7230-AllocateObject" ] }, { - "id": "0x5597122c9230-AllocateObject", + "id": "0x55eadb4a7230-AllocateObject", "variantKey": "Name", - "Name": "0x5597122c9240-Name" + "Name": "0x55eadb4a7240-Name" }, { - "id": "0x5597122c9240-Name", + "id": "0x55eadb4a7240-Name", "source": "g" }, { - "id": "0x5597122c20e0-InternalSubprogramPart", - "Statement": "0x5597122c20f8-Statement", + "id": "0x55eadb4a00e0-InternalSubprogramPart", + "Statement": "0x55eadb4a00f8-Statement", "InternalSubprogram": [ - "0x5597122c8200-InternalSubprogram", - "0x5597122bc300-InternalSubprogram", - "0x5597122d12b0-InternalSubprogram" + "0x55eadb4a6200-InternalSubprogram", + "0x55eadb49a300-InternalSubprogram", + "0x55eadb4af2b0-InternalSubprogram" ] }, { - "id": "0x5597122c20f8-Statement", - "statement": "0x5597122c2108-ContainsStmt", + "id": "0x55eadb4a00f8-Statement", + "statement": "0x55eadb4a0108-ContainsStmt", "source": "contains" }, { - "id": "0x5597122c2108-ContainsStmt" + "id": "0x55eadb4a0108-ContainsStmt" }, { - "id": "0x5597122c8200-InternalSubprogram", + "id": "0x55eadb4a6200-InternalSubprogram", "variantKey": "SubroutineSubprogram", - "SubroutineSubprogram": "0x5597122d0b50-SubroutineSubprogram" + "SubroutineSubprogram": "0x55eadb4aeb50-SubroutineSubprogram" }, { - "id": "0x5597122d0b50-SubroutineSubprogram", - "Statement": "0x5597122d0c98-Statement", - "SpecificationPart": "0x5597122d0bf0-SpecificationPart", - "ExecutionPart": "0x5597122d0bd8-ExecutionPart", - "Statement": "0x5597122d0b50-Statement" + "id": "0x55eadb4aeb50-SubroutineSubprogram", + "Statement": "0x55eadb4aec98-Statement", + "SpecificationPart": "0x55eadb4aebf0-SpecificationPart", + "ExecutionPart": "0x55eadb4aebd8-ExecutionPart", + "Statement": "0x55eadb4aeb50-Statement" }, { - "id": "0x5597122d0c98-Statement", - "statement": "0x5597122d0ca8-SubroutineStmt", + "id": "0x55eadb4aec98-Statement", + "statement": "0x55eadb4aeca8-SubroutineStmt", "source": "subroutine init_array(ni, nj, nk, nl, nm, a, b, c, d)" }, { - "id": "0x5597122d0ca8-SubroutineStmt", - "Name": "0x5597122d0ce0-Name", + "id": "0x55eadb4aeca8-SubroutineStmt", + "Name": "0x55eadb4aece0-Name", "DummyArg": [ - "0x5597122b8ab0-DummyArg", - "0x5597122b8d20-DummyArg", - "0x5597122b8af0-DummyArg", - "0x5597122b8ba0-DummyArg", - "0x5597122b8b60-DummyArg", - "0x5597122b8be0-DummyArg", - "0x5597122b8c40-DummyArg", - "0x5597122b8c80-DummyArg", - "0x5597122b8ce0-DummyArg" + "0x55eadb496ab0-DummyArg", + "0x55eadb496d20-DummyArg", + "0x55eadb496af0-DummyArg", + "0x55eadb496ba0-DummyArg", + "0x55eadb496b60-DummyArg", + "0x55eadb496be0-DummyArg", + "0x55eadb496c40-DummyArg", + "0x55eadb496c80-DummyArg", + "0x55eadb496ce0-DummyArg" ] }, { - "id": "0x5597122d0ce0-Name", + "id": "0x55eadb4aece0-Name", "source": "init_array" }, { - "id": "0x5597122b8ab0-DummyArg", + "id": "0x55eadb496ab0-DummyArg", "variantKey": "Name", - "Name": "0x5597122b8ab0-Name" + "Name": "0x55eadb496ab0-Name" }, { - "id": "0x5597122b8ab0-Name", + "id": "0x55eadb496ab0-Name", "source": "ni" }, { - "id": "0x5597122b8d20-DummyArg", + "id": "0x55eadb496d20-DummyArg", "variantKey": "Name", - "Name": "0x5597122b8d20-Name" + "Name": "0x55eadb496d20-Name" }, { - "id": "0x5597122b8d20-Name", + "id": "0x55eadb496d20-Name", "source": "nj" }, { - "id": "0x5597122b8af0-DummyArg", + "id": "0x55eadb496af0-DummyArg", "variantKey": "Name", - "Name": "0x5597122b8af0-Name" + "Name": "0x55eadb496af0-Name" }, { - "id": "0x5597122b8af0-Name", + "id": "0x55eadb496af0-Name", "source": "nk" }, { - "id": "0x5597122b8ba0-DummyArg", + "id": "0x55eadb496ba0-DummyArg", "variantKey": "Name", - "Name": "0x5597122b8ba0-Name" + "Name": "0x55eadb496ba0-Name" }, { - "id": "0x5597122b8ba0-Name", + "id": "0x55eadb496ba0-Name", "source": "nl" }, { - "id": "0x5597122b8b60-DummyArg", + "id": "0x55eadb496b60-DummyArg", "variantKey": "Name", - "Name": "0x5597122b8b60-Name" + "Name": "0x55eadb496b60-Name" }, { - "id": "0x5597122b8b60-Name", + "id": "0x55eadb496b60-Name", "source": "nm" }, { - "id": "0x5597122b8be0-DummyArg", + "id": "0x55eadb496be0-DummyArg", "variantKey": "Name", - "Name": "0x5597122b8be0-Name" + "Name": "0x55eadb496be0-Name" }, { - "id": "0x5597122b8be0-Name", + "id": "0x55eadb496be0-Name", "source": "a" }, { - "id": "0x5597122b8c40-DummyArg", + "id": "0x55eadb496c40-DummyArg", "variantKey": "Name", - "Name": "0x5597122b8c40-Name" + "Name": "0x55eadb496c40-Name" }, { - "id": "0x5597122b8c40-Name", + "id": "0x55eadb496c40-Name", "source": "b" }, { - "id": "0x5597122b8c80-DummyArg", + "id": "0x55eadb496c80-DummyArg", "variantKey": "Name", - "Name": "0x5597122b8c80-Name" + "Name": "0x55eadb496c80-Name" }, { - "id": "0x5597122b8c80-Name", + "id": "0x55eadb496c80-Name", "source": "c" }, { - "id": "0x5597122b8ce0-DummyArg", + "id": "0x55eadb496ce0-DummyArg", "variantKey": "Name", - "Name": "0x5597122b8ce0-Name" + "Name": "0x55eadb496ce0-Name" }, { - "id": "0x5597122b8ce0-Name", + "id": "0x55eadb496ce0-Name", "source": "d" }, { - "id": "0x5597122d0bf0-SpecificationPart", - "ImplicitPart": "0x5597122d0c08-ImplicitPart", + "id": "0x55eadb4aebf0-SpecificationPart", + "ImplicitPart": "0x55eadb4aec08-ImplicitPart", "DeclarationConstruct": [ - "0x5597122b3650-DeclarationConstruct", - "0x5597122b79c0-DeclarationConstruct", - "0x5597122cd230-DeclarationConstruct", - "0x5597122cb4f0-DeclarationConstruct", - "0x5597122b62d0-DeclarationConstruct", - "0x5597122b7820-DeclarationConstruct" + "0x55eadb491650-DeclarationConstruct", + "0x55eadb4959c0-DeclarationConstruct", + "0x55eadb4ab230-DeclarationConstruct", + "0x55eadb4a94f0-DeclarationConstruct", + "0x55eadb4942d0-DeclarationConstruct", + "0x55eadb495820-DeclarationConstruct" ] }, { - "id": "0x5597122d0c08-ImplicitPart" + "id": "0x55eadb4aec08-ImplicitPart" }, { - "id": "0x5597122b3650-DeclarationConstruct", + "id": "0x55eadb491650-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5597122b3650-SpecificationConstruct" + "SpecificationConstruct": "0x55eadb491650-SpecificationConstruct" }, { - "id": "0x5597122b3650-SpecificationConstruct", + "id": "0x55eadb491650-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5597122b3650-Statement" + "Statement": "0x55eadb491650-Statement" }, { - "id": "0x5597122b3650-Statement", - "statement": "0x5597122cb7a0-TypeDeclarationStmt", + "id": "0x55eadb491650-Statement", + "statement": "0x55eadb4a97a0-TypeDeclarationStmt", "source": "double precision, dimension(nk, ni) :: a" }, { - "id": "0x5597122cb7a0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5597122cb7d0-DeclarationTypeSpec", + "id": "0x55eadb4a97a0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4a97d0-DeclarationTypeSpec", "AttrSpec": [ - "0x5597122b4790-AttrSpec" + "0x55eadb492790-AttrSpec" ], "EntityDecl": [ - "0x5597122cb940-EntityDecl" + "0x55eadb4a9940-EntityDecl" ] }, { - "id": "0x5597122cb7d0-DeclarationTypeSpec", + "id": "0x55eadb4a97d0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5597122cb7d0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55eadb4a97d0-IntrinsicTypeSpec" }, { - "id": "0x5597122cb7d0-IntrinsicTypeSpec", + "id": "0x55eadb4a97d0-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x5597122cb7d0-DoublePrecision" + "DoublePrecision": "0x55eadb4a97d0-DoublePrecision" }, { - "id": "0x5597122cb7d0-DoublePrecision" + "id": "0x55eadb4a97d0-DoublePrecision" }, { - "id": "0x5597122b4790-AttrSpec", + "id": "0x55eadb492790-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x5597122b4790-ArraySpec" + "ArraySpec": "0x55eadb492790-ArraySpec" }, { - "id": "0x5597122b4790-ArraySpec", + "id": "0x55eadb492790-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x5597122c82b0-ExplicitShapeSpec", - "0x5597122b89a0-ExplicitShapeSpec" + "0x55eadb4a62b0-ExplicitShapeSpec", + "0x55eadb4969a0-ExplicitShapeSpec" ] }, { - "id": "0x5597122c82b0-ExplicitShapeSpec", - "upper_bound": "0x5597122c82b0-SpecificationExpr" + "id": "0x55eadb4a62b0-ExplicitShapeSpec", + "upper_bound": "0x55eadb4a62b0-SpecificationExpr" }, { - "id": "0x5597122c82b0-SpecificationExpr", - "Expr": "0x5597122caf80-Expr" + "id": "0x55eadb4a62b0-SpecificationExpr", + "Expr": "0x55eadb4a8f80-Expr" }, { - "id": "0x5597122caf80-Expr", + "id": "0x55eadb4a8f80-Expr", "variantKey": "Designator", - "Designator": "0x5597122b7a10-Designator" + "Designator": "0x55eadb495a10-Designator" }, { - "id": "0x5597122b7a10-Designator", + "id": "0x55eadb495a10-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122b7a20-DataRef" + "DataRef": "0x55eadb495a20-DataRef" }, { - "id": "0x5597122b7a20-DataRef", + "id": "0x55eadb495a20-DataRef", "variantKey": "Name", - "Name": "0x5597122b7a20-Name" + "Name": "0x55eadb495a20-Name" }, { - "id": "0x5597122b7a20-Name", + "id": "0x55eadb495a20-Name", "source": "nk" }, { - "id": "0x5597122b89a0-ExplicitShapeSpec", - "upper_bound": "0x5597122b89a0-SpecificationExpr" + "id": "0x55eadb4969a0-ExplicitShapeSpec", + "upper_bound": "0x55eadb4969a0-SpecificationExpr" }, { - "id": "0x5597122b89a0-SpecificationExpr", - "Expr": "0x5597122cd480-Expr" + "id": "0x55eadb4969a0-SpecificationExpr", + "Expr": "0x55eadb4ab480-Expr" }, { - "id": "0x5597122cd480-Expr", + "id": "0x55eadb4ab480-Expr", "variantKey": "Designator", - "Designator": "0x5597122b77b0-Designator" + "Designator": "0x55eadb4957b0-Designator" }, { - "id": "0x5597122b77b0-Designator", + "id": "0x55eadb4957b0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122b77c0-DataRef" + "DataRef": "0x55eadb4957c0-DataRef" }, { - "id": "0x5597122b77c0-DataRef", + "id": "0x55eadb4957c0-DataRef", "variantKey": "Name", - "Name": "0x5597122b77c0-Name" + "Name": "0x55eadb4957c0-Name" }, { - "id": "0x5597122b77c0-Name", + "id": "0x55eadb4957c0-Name", "source": "ni" }, { - "id": "0x5597122cb940-EntityDecl", - "Name": "0x5597122cb9f8-Name" + "id": "0x55eadb4a9940-EntityDecl", + "Name": "0x55eadb4a99f8-Name" }, { - "id": "0x5597122cb9f8-Name", + "id": "0x55eadb4a99f8-Name", "source": "a" }, { - "id": "0x5597122b79c0-DeclarationConstruct", + "id": "0x55eadb4959c0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5597122b79c0-SpecificationConstruct" + "SpecificationConstruct": "0x55eadb4959c0-SpecificationConstruct" }, { - "id": "0x5597122b79c0-SpecificationConstruct", + "id": "0x55eadb4959c0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5597122b79c0-Statement" + "Statement": "0x55eadb4959c0-Statement" }, { - "id": "0x5597122b79c0-Statement", - "statement": "0x5597122c1f10-TypeDeclarationStmt", + "id": "0x55eadb4959c0-Statement", + "statement": "0x55eadb49ff10-TypeDeclarationStmt", "source": "double precision, dimension(nj, nk) :: b" }, { - "id": "0x5597122c1f10-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5597122c1f40-DeclarationTypeSpec", + "id": "0x55eadb49ff10-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb49ff40-DeclarationTypeSpec", "AttrSpec": [ - "0x5597122b3fc0-AttrSpec" + "0x55eadb491fc0-AttrSpec" ], "EntityDecl": [ - "0x5597122cded0-EntityDecl" + "0x55eadb4abed0-EntityDecl" ] }, { - "id": "0x5597122c1f40-DeclarationTypeSpec", + "id": "0x55eadb49ff40-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5597122c1f40-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55eadb49ff40-IntrinsicTypeSpec" }, { - "id": "0x5597122c1f40-IntrinsicTypeSpec", + "id": "0x55eadb49ff40-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x5597122c1f40-DoublePrecision" + "DoublePrecision": "0x55eadb49ff40-DoublePrecision" }, { - "id": "0x5597122c1f40-DoublePrecision" + "id": "0x55eadb49ff40-DoublePrecision" }, { - "id": "0x5597122b3fc0-AttrSpec", + "id": "0x55eadb491fc0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x5597122b3fc0-ArraySpec" + "ArraySpec": "0x55eadb491fc0-ArraySpec" }, { - "id": "0x5597122b3fc0-ArraySpec", + "id": "0x55eadb491fc0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x5597122c79b0-ExplicitShapeSpec", - "0x5597122c7760-ExplicitShapeSpec" + "0x55eadb4a59b0-ExplicitShapeSpec", + "0x55eadb4a5760-ExplicitShapeSpec" ] }, { - "id": "0x5597122c79b0-ExplicitShapeSpec", - "upper_bound": "0x5597122c79b0-SpecificationExpr" + "id": "0x55eadb4a59b0-ExplicitShapeSpec", + "upper_bound": "0x55eadb4a59b0-SpecificationExpr" }, { - "id": "0x5597122c79b0-SpecificationExpr", - "Expr": "0x5597122cdd00-Expr" + "id": "0x55eadb4a59b0-SpecificationExpr", + "Expr": "0x55eadb4abd00-Expr" }, { - "id": "0x5597122cdd00-Expr", + "id": "0x55eadb4abd00-Expr", "variantKey": "Designator", - "Designator": "0x5597122b0140-Designator" + "Designator": "0x55eadb48e140-Designator" }, { - "id": "0x5597122b0140-Designator", + "id": "0x55eadb48e140-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122b0150-DataRef" + "DataRef": "0x55eadb48e150-DataRef" }, { - "id": "0x5597122b0150-DataRef", + "id": "0x55eadb48e150-DataRef", "variantKey": "Name", - "Name": "0x5597122b0150-Name" + "Name": "0x55eadb48e150-Name" }, { - "id": "0x5597122b0150-Name", + "id": "0x55eadb48e150-Name", "source": "nj" }, { - "id": "0x5597122c7760-ExplicitShapeSpec", - "upper_bound": "0x5597122c7760-SpecificationExpr" + "id": "0x55eadb4a5760-ExplicitShapeSpec", + "upper_bound": "0x55eadb4a5760-SpecificationExpr" }, { - "id": "0x5597122c7760-SpecificationExpr", - "Expr": "0x5597122cdde0-Expr" + "id": "0x55eadb4a5760-SpecificationExpr", + "Expr": "0x55eadb4abde0-Expr" }, { - "id": "0x5597122cdde0-Expr", + "id": "0x55eadb4abde0-Expr", "variantKey": "Designator", - "Designator": "0x5597122afbe0-Designator" + "Designator": "0x55eadb48dbe0-Designator" }, { - "id": "0x5597122afbe0-Designator", + "id": "0x55eadb48dbe0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122afbf0-DataRef" + "DataRef": "0x55eadb48dbf0-DataRef" }, { - "id": "0x5597122afbf0-DataRef", + "id": "0x55eadb48dbf0-DataRef", "variantKey": "Name", - "Name": "0x5597122afbf0-Name" + "Name": "0x55eadb48dbf0-Name" }, { - "id": "0x5597122afbf0-Name", + "id": "0x55eadb48dbf0-Name", "source": "nk" }, { - "id": "0x5597122cded0-EntityDecl", - "Name": "0x5597122cdf88-Name" + "id": "0x55eadb4abed0-EntityDecl", + "Name": "0x55eadb4abf88-Name" }, { - "id": "0x5597122cdf88-Name", + "id": "0x55eadb4abf88-Name", "source": "b" }, { - "id": "0x5597122cd230-DeclarationConstruct", + "id": "0x55eadb4ab230-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5597122cd230-SpecificationConstruct" + "SpecificationConstruct": "0x55eadb4ab230-SpecificationConstruct" }, { - "id": "0x5597122cd230-SpecificationConstruct", + "id": "0x55eadb4ab230-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5597122cd230-Statement" + "Statement": "0x55eadb4ab230-Statement" }, { - "id": "0x5597122cd230-Statement", - "statement": "0x5597122af1e0-TypeDeclarationStmt", + "id": "0x55eadb4ab230-Statement", + "statement": "0x55eadb48d1e0-TypeDeclarationStmt", "source": "double precision, dimension(nm, nj) :: c" }, { - "id": "0x5597122af1e0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5597122af210-DeclarationTypeSpec", + "id": "0x55eadb48d1e0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb48d210-DeclarationTypeSpec", "AttrSpec": [ - "0x5597122b48c0-AttrSpec" + "0x55eadb4928c0-AttrSpec" ], "EntityDecl": [ - "0x5597122cd140-EntityDecl" + "0x55eadb4ab140-EntityDecl" ] }, { - "id": "0x5597122af210-DeclarationTypeSpec", + "id": "0x55eadb48d210-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5597122af210-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55eadb48d210-IntrinsicTypeSpec" }, { - "id": "0x5597122af210-IntrinsicTypeSpec", + "id": "0x55eadb48d210-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x5597122af210-DoublePrecision" + "DoublePrecision": "0x55eadb48d210-DoublePrecision" }, { - "id": "0x5597122af210-DoublePrecision" + "id": "0x55eadb48d210-DoublePrecision" }, { - "id": "0x5597122b48c0-AttrSpec", + "id": "0x55eadb4928c0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x5597122b48c0-ArraySpec" + "ArraySpec": "0x55eadb4928c0-ArraySpec" }, { - "id": "0x5597122b48c0-ArraySpec", + "id": "0x55eadb4928c0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x5597122c7b10-ExplicitShapeSpec", - "0x5597122c7aa0-ExplicitShapeSpec" + "0x55eadb4a5b10-ExplicitShapeSpec", + "0x55eadb4a5aa0-ExplicitShapeSpec" ] }, { - "id": "0x5597122c7b10-ExplicitShapeSpec", - "upper_bound": "0x5597122c7b10-SpecificationExpr" + "id": "0x55eadb4a5b10-ExplicitShapeSpec", + "upper_bound": "0x55eadb4a5b10-SpecificationExpr" }, { - "id": "0x5597122c7b10-SpecificationExpr", - "Expr": "0x5597122ccf10-Expr" + "id": "0x55eadb4a5b10-SpecificationExpr", + "Expr": "0x55eadb4aaf10-Expr" }, { - "id": "0x5597122ccf10-Expr", + "id": "0x55eadb4aaf10-Expr", "variantKey": "Designator", - "Designator": "0x5597122b51d0-Designator" + "Designator": "0x55eadb4931d0-Designator" }, { - "id": "0x5597122b51d0-Designator", + "id": "0x55eadb4931d0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122b51e0-DataRef" + "DataRef": "0x55eadb4931e0-DataRef" }, { - "id": "0x5597122b51e0-DataRef", + "id": "0x55eadb4931e0-DataRef", "variantKey": "Name", - "Name": "0x5597122b51e0-Name" + "Name": "0x55eadb4931e0-Name" }, { - "id": "0x5597122b51e0-Name", + "id": "0x55eadb4931e0-Name", "source": "nm" }, { - "id": "0x5597122c7aa0-ExplicitShapeSpec", - "upper_bound": "0x5597122c7aa0-SpecificationExpr" + "id": "0x55eadb4a5aa0-ExplicitShapeSpec", + "upper_bound": "0x55eadb4a5aa0-SpecificationExpr" }, { - "id": "0x5597122c7aa0-SpecificationExpr", - "Expr": "0x5597122cd050-Expr" + "id": "0x55eadb4a5aa0-SpecificationExpr", + "Expr": "0x55eadb4ab050-Expr" }, { - "id": "0x5597122cd050-Expr", + "id": "0x55eadb4ab050-Expr", "variantKey": "Designator", - "Designator": "0x5597122ccff0-Designator" + "Designator": "0x55eadb4aaff0-Designator" }, { - "id": "0x5597122ccff0-Designator", + "id": "0x55eadb4aaff0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122cd000-DataRef" + "DataRef": "0x55eadb4ab000-DataRef" }, { - "id": "0x5597122cd000-DataRef", + "id": "0x55eadb4ab000-DataRef", "variantKey": "Name", - "Name": "0x5597122cd000-Name" + "Name": "0x55eadb4ab000-Name" }, { - "id": "0x5597122cd000-Name", + "id": "0x55eadb4ab000-Name", "source": "nj" }, { - "id": "0x5597122cd140-EntityDecl", - "Name": "0x5597122cd1f8-Name" + "id": "0x55eadb4ab140-EntityDecl", + "Name": "0x55eadb4ab1f8-Name" }, { - "id": "0x5597122cd1f8-Name", + "id": "0x55eadb4ab1f8-Name", "source": "c" }, { - "id": "0x5597122cb4f0-DeclarationConstruct", + "id": "0x55eadb4a94f0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5597122cb4f0-SpecificationConstruct" + "SpecificationConstruct": "0x55eadb4a94f0-SpecificationConstruct" }, { - "id": "0x5597122cb4f0-SpecificationConstruct", + "id": "0x55eadb4a94f0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5597122cb4f0-Statement" + "Statement": "0x55eadb4a94f0-Statement" }, { - "id": "0x5597122cb4f0-Statement", - "statement": "0x5597122cd5a0-TypeDeclarationStmt", + "id": "0x55eadb4a94f0-Statement", + "statement": "0x55eadb4ab5a0-TypeDeclarationStmt", "source": "double precision, dimension(nl, nm) :: d" }, { - "id": "0x5597122cd5a0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5597122cd5d0-DeclarationTypeSpec", + "id": "0x55eadb4ab5a0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4ab5d0-DeclarationTypeSpec", "AttrSpec": [ - "0x5597122b49f0-AttrSpec" + "0x55eadb4929f0-AttrSpec" ], "EntityDecl": [ - "0x5597122cb400-EntityDecl" + "0x55eadb4a9400-EntityDecl" ] }, { - "id": "0x5597122cd5d0-DeclarationTypeSpec", + "id": "0x55eadb4ab5d0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5597122cd5d0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55eadb4ab5d0-IntrinsicTypeSpec" }, { - "id": "0x5597122cd5d0-IntrinsicTypeSpec", + "id": "0x55eadb4ab5d0-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x5597122cd5d0-DoublePrecision" + "DoublePrecision": "0x55eadb4ab5d0-DoublePrecision" }, { - "id": "0x5597122cd5d0-DoublePrecision" + "id": "0x55eadb4ab5d0-DoublePrecision" }, { - "id": "0x5597122b49f0-AttrSpec", + "id": "0x55eadb4929f0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x5597122b49f0-ArraySpec" + "ArraySpec": "0x55eadb4929f0-ArraySpec" }, { - "id": "0x5597122b49f0-ArraySpec", + "id": "0x55eadb4929f0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x5597122c7e90-ExplicitShapeSpec", - "0x5597122c7c80-ExplicitShapeSpec" + "0x55eadb4a5e90-ExplicitShapeSpec", + "0x55eadb4a5c80-ExplicitShapeSpec" ] }, { - "id": "0x5597122c7e90-ExplicitShapeSpec", - "upper_bound": "0x5597122c7e90-SpecificationExpr" + "id": "0x55eadb4a5e90-ExplicitShapeSpec", + "upper_bound": "0x55eadb4a5e90-SpecificationExpr" }, { - "id": "0x5597122c7e90-SpecificationExpr", - "Expr": "0x5597122cb170-Expr" + "id": "0x55eadb4a5e90-SpecificationExpr", + "Expr": "0x55eadb4a9170-Expr" }, { - "id": "0x5597122cb170-Expr", + "id": "0x55eadb4a9170-Expr", "variantKey": "Designator", - "Designator": "0x5597122b8000-Designator" + "Designator": "0x55eadb496000-Designator" }, { - "id": "0x5597122b8000-Designator", + "id": "0x55eadb496000-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122b8010-DataRef" + "DataRef": "0x55eadb496010-DataRef" }, { - "id": "0x5597122b8010-DataRef", + "id": "0x55eadb496010-DataRef", "variantKey": "Name", - "Name": "0x5597122b8010-Name" + "Name": "0x55eadb496010-Name" }, { - "id": "0x5597122b8010-Name", + "id": "0x55eadb496010-Name", "source": "nl" }, { - "id": "0x5597122c7c80-ExplicitShapeSpec", - "upper_bound": "0x5597122c7c80-SpecificationExpr" + "id": "0x55eadb4a5c80-ExplicitShapeSpec", + "upper_bound": "0x55eadb4a5c80-SpecificationExpr" }, { - "id": "0x5597122c7c80-SpecificationExpr", - "Expr": "0x5597122cb310-Expr" + "id": "0x55eadb4a5c80-SpecificationExpr", + "Expr": "0x55eadb4a9310-Expr" }, { - "id": "0x5597122cb310-Expr", + "id": "0x55eadb4a9310-Expr", "variantKey": "Designator", - "Designator": "0x5597122cb2b0-Designator" + "Designator": "0x55eadb4a92b0-Designator" }, { - "id": "0x5597122cb2b0-Designator", + "id": "0x55eadb4a92b0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122cb2c0-DataRef" + "DataRef": "0x55eadb4a92c0-DataRef" }, { - "id": "0x5597122cb2c0-DataRef", + "id": "0x55eadb4a92c0-DataRef", "variantKey": "Name", - "Name": "0x5597122cb2c0-Name" + "Name": "0x55eadb4a92c0-Name" }, { - "id": "0x5597122cb2c0-Name", + "id": "0x55eadb4a92c0-Name", "source": "nm" }, { - "id": "0x5597122cb400-EntityDecl", - "Name": "0x5597122cb4b8-Name" + "id": "0x55eadb4a9400-EntityDecl", + "Name": "0x55eadb4a94b8-Name" }, { - "id": "0x5597122cb4b8-Name", + "id": "0x55eadb4a94b8-Name", "source": "d" }, { - "id": "0x5597122b62d0-DeclarationConstruct", + "id": "0x55eadb4942d0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5597122b62d0-SpecificationConstruct" + "SpecificationConstruct": "0x55eadb4942d0-SpecificationConstruct" }, { - "id": "0x5597122b62d0-SpecificationConstruct", + "id": "0x55eadb4942d0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5597122b62d0-Statement" + "Statement": "0x55eadb4942d0-Statement" }, { - "id": "0x5597122b62d0-Statement", - "statement": "0x5597122cc610-TypeDeclarationStmt", + "id": "0x55eadb4942d0-Statement", + "statement": "0x55eadb4aa610-TypeDeclarationStmt", "source": "integer :: ni, nj, nk, nl, nm" }, { - "id": "0x5597122cc610-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5597122cc640-DeclarationTypeSpec", + "id": "0x55eadb4aa610-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4aa640-DeclarationTypeSpec", "EntityDecl": [ - "0x5597122ce780-EntityDecl", - "0x5597122cb550-EntityDecl", - "0x5597122cb640-EntityDecl", - "0x5597122ce5a0-EntityDecl", - "0x5597122ce690-EntityDecl" + "0x55eadb4ac780-EntityDecl", + "0x55eadb4a9550-EntityDecl", + "0x55eadb4a9640-EntityDecl", + "0x55eadb4ac5a0-EntityDecl", + "0x55eadb4ac690-EntityDecl" ] }, { - "id": "0x5597122cc640-DeclarationTypeSpec", + "id": "0x55eadb4aa640-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5597122cc640-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55eadb4aa640-IntrinsicTypeSpec" }, { - "id": "0x5597122cc640-IntrinsicTypeSpec", + "id": "0x55eadb4aa640-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x5597122cc640-IntegerTypeSpec" + "IntegerTypeSpec": "0x55eadb4aa640-IntegerTypeSpec" }, { - "id": "0x5597122cc640-IntegerTypeSpec" + "id": "0x55eadb4aa640-IntegerTypeSpec" }, { - "id": "0x5597122ce780-EntityDecl", - "Name": "0x5597122ce838-Name" + "id": "0x55eadb4ac780-EntityDecl", + "Name": "0x55eadb4ac838-Name" }, { - "id": "0x5597122ce838-Name", + "id": "0x55eadb4ac838-Name", "source": "ni" }, { - "id": "0x5597122cb550-EntityDecl", - "Name": "0x5597122cb608-Name" + "id": "0x55eadb4a9550-EntityDecl", + "Name": "0x55eadb4a9608-Name" }, { - "id": "0x5597122cb608-Name", + "id": "0x55eadb4a9608-Name", "source": "nj" }, { - "id": "0x5597122cb640-EntityDecl", - "Name": "0x5597122cb6f8-Name" + "id": "0x55eadb4a9640-EntityDecl", + "Name": "0x55eadb4a96f8-Name" }, { - "id": "0x5597122cb6f8-Name", + "id": "0x55eadb4a96f8-Name", "source": "nk" }, { - "id": "0x5597122ce5a0-EntityDecl", - "Name": "0x5597122ce658-Name" + "id": "0x55eadb4ac5a0-EntityDecl", + "Name": "0x55eadb4ac658-Name" }, { - "id": "0x5597122ce658-Name", + "id": "0x55eadb4ac658-Name", "source": "nl" }, { - "id": "0x5597122ce690-EntityDecl", - "Name": "0x5597122ce748-Name" + "id": "0x55eadb4ac690-EntityDecl", + "Name": "0x55eadb4ac748-Name" }, { - "id": "0x5597122ce748-Name", + "id": "0x55eadb4ac748-Name", "source": "nm" }, { - "id": "0x5597122b7820-DeclarationConstruct", + "id": "0x55eadb495820-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5597122b7820-SpecificationConstruct" + "SpecificationConstruct": "0x55eadb495820-SpecificationConstruct" }, { - "id": "0x5597122b7820-SpecificationConstruct", + "id": "0x55eadb495820-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5597122b7820-Statement" + "Statement": "0x55eadb495820-Statement" }, { - "id": "0x5597122b7820-Statement", - "statement": "0x5597122cd400-TypeDeclarationStmt", + "id": "0x55eadb495820-Statement", + "statement": "0x55eadb4ab400-TypeDeclarationStmt", "source": "integer :: i, j" }, { - "id": "0x5597122cd400-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5597122cd430-DeclarationTypeSpec", + "id": "0x55eadb4ab400-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4ab430-DeclarationTypeSpec", "EntityDecl": [ - "0x5597122ce960-EntityDecl", - "0x5597122ce870-EntityDecl" + "0x55eadb4ac960-EntityDecl", + "0x55eadb4ac870-EntityDecl" ] }, { - "id": "0x5597122cd430-DeclarationTypeSpec", + "id": "0x55eadb4ab430-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5597122cd430-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55eadb4ab430-IntrinsicTypeSpec" }, { - "id": "0x5597122cd430-IntrinsicTypeSpec", + "id": "0x55eadb4ab430-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x5597122cd430-IntegerTypeSpec" + "IntegerTypeSpec": "0x55eadb4ab430-IntegerTypeSpec" }, { - "id": "0x5597122cd430-IntegerTypeSpec" + "id": "0x55eadb4ab430-IntegerTypeSpec" }, { - "id": "0x5597122ce960-EntityDecl", - "Name": "0x5597122cea18-Name" + "id": "0x55eadb4ac960-EntityDecl", + "Name": "0x55eadb4aca18-Name" }, { - "id": "0x5597122cea18-Name", + "id": "0x55eadb4aca18-Name", "source": "i" }, { - "id": "0x5597122ce870-EntityDecl", - "Name": "0x5597122ce928-Name" + "id": "0x55eadb4ac870-EntityDecl", + "Name": "0x55eadb4ac928-Name" }, { - "id": "0x5597122ce928-Name", + "id": "0x55eadb4ac928-Name", "source": "j" }, { - "id": "0x5597122d0bd8-ExecutionPart", + "id": "0x55eadb4aebd8-ExecutionPart", "ExecutionPartConstruct": [ - "0x5597122b56d0-ExecutionPartConstruct", - "0x5597122cc870-ExecutionPartConstruct", - "0x5597122c8bd0-ExecutionPartConstruct", - "0x5597122babf0-ExecutionPartConstruct" + "0x55eadb4936d0-ExecutionPartConstruct", + "0x55eadb4aa870-ExecutionPartConstruct", + "0x55eadb4a6bd0-ExecutionPartConstruct", + "0x55eadb498bf0-ExecutionPartConstruct" ] }, { - "id": "0x5597122d0bd8-ExecutionPartConstruct" + "id": "0x55eadb4aebd8-ExecutionPartConstruct" }, { - "id": "0x5597122b56d0-ExecutionPartConstruct", + "id": "0x55eadb4936d0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122b56d0-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4936d0-ExecutableConstruct" }, { - "id": "0x5597122b56d0-ExecutableConstruct", + "id": "0x55eadb4936d0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x5597122c6050-DoConstruct" + "DoConstruct": "0x55eadb4a4050-DoConstruct" }, { - "id": "0x5597122c6050-DoConstruct", - "Statement": "0x5597122c60a8-Statement", + "id": "0x55eadb4a4050-DoConstruct", + "Statement": "0x55eadb4a40a8-Statement", "ExecutionPartConstruct": [ - "0x5597122b5240-ExecutionPartConstruct" + "0x55eadb493240-ExecutionPartConstruct" ], - "Statement": "0x5597122c6050-Statement" + "Statement": "0x55eadb4a4050-Statement" }, { - "id": "0x5597122c60a8-Statement", - "statement": "0x5597122c60b8-NonLabelDoStmt", + "id": "0x55eadb4a40a8-Statement", + "statement": "0x55eadb4a40b8-NonLabelDoStmt", "source": "do i = 1, ni" }, { - "id": "0x5597122c60b8-NonLabelDoStmt", - "LoopControl": "0x5597122c60b8-LoopControl" + "id": "0x55eadb4a40b8-NonLabelDoStmt", + "LoopControl": "0x55eadb4a40b8-LoopControl" }, { - "id": "0x5597122c60b8-LoopControl", + "id": "0x55eadb4a40b8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x5597122c60b8-LoopBounds" + "LoopBounds": "0x55eadb4a40b8-LoopBounds" }, { - "id": "0x5597122c60b8-LoopBounds", - "var": "0x5597122c60b8-Name", - "lower": "0x5597122b6320-Expr", - "upper": "0x5597122b4a30-Expr" + "id": "0x55eadb4a40b8-LoopBounds", + "var": "0x55eadb4a40b8-Name", + "lower": "0x55eadb494320-Expr", + "upper": "0x55eadb492a30-Expr" }, { - "id": "0x5597122c60b8-Name", + "id": "0x55eadb4a40b8-Name", "source": "i" }, { - "id": "0x5597122b6320-Expr", + "id": "0x55eadb494320-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b6340-LiteralConstant" + "LiteralConstant": "0x55eadb494340-LiteralConstant" }, { - "id": "0x5597122b6340-LiteralConstant", + "id": "0x55eadb494340-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b6340-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb494340-IntLiteralConstant" }, { - "id": "0x5597122b6340-IntLiteralConstant", + "id": "0x55eadb494340-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5597122b4a30-Expr", + "id": "0x55eadb492a30-Expr", "variantKey": "Designator", - "Designator": "0x5597122cd620-Designator" + "Designator": "0x55eadb4ab620-Designator" }, { - "id": "0x5597122cd620-Designator", + "id": "0x55eadb4ab620-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122cd630-DataRef" + "DataRef": "0x55eadb4ab630-DataRef" }, { - "id": "0x5597122cd630-DataRef", + "id": "0x55eadb4ab630-DataRef", "variantKey": "Name", - "Name": "0x5597122cd630-Name" + "Name": "0x55eadb4ab630-Name" }, { - "id": "0x5597122cd630-Name", + "id": "0x55eadb4ab630-Name", "source": "ni" }, { - "id": "0x5597122c6090-ExecutionPartConstruct" + "id": "0x55eadb4a4090-ExecutionPartConstruct" }, { - "id": "0x5597122b5240-ExecutionPartConstruct", + "id": "0x55eadb493240-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122b5240-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb493240-ExecutableConstruct" }, { - "id": "0x5597122b5240-ExecutableConstruct", + "id": "0x55eadb493240-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x559712259780-DoConstruct" + "DoConstruct": "0x55eadb437780-DoConstruct" }, { - "id": "0x559712259780-DoConstruct", - "Statement": "0x5597122597d8-Statement", + "id": "0x55eadb437780-DoConstruct", + "Statement": "0x55eadb4377d8-Statement", "ExecutionPartConstruct": [ - "0x5597122c8160-ExecutionPartConstruct" + "0x55eadb4a6160-ExecutionPartConstruct" ], - "Statement": "0x559712259780-Statement" + "Statement": "0x55eadb437780-Statement" }, { - "id": "0x5597122597d8-Statement", - "statement": "0x5597122597e8-NonLabelDoStmt", + "id": "0x55eadb4377d8-Statement", + "statement": "0x55eadb4377e8-NonLabelDoStmt", "source": "do j = 1, nk" }, { - "id": "0x5597122597e8-NonLabelDoStmt", - "LoopControl": "0x5597122597e8-LoopControl" + "id": "0x55eadb4377e8-NonLabelDoStmt", + "LoopControl": "0x55eadb4377e8-LoopControl" }, { - "id": "0x5597122597e8-LoopControl", + "id": "0x55eadb4377e8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x5597122597e8-LoopBounds" + "LoopBounds": "0x55eadb4377e8-LoopBounds" }, { - "id": "0x5597122597e8-LoopBounds", - "var": "0x5597122597e8-Name", - "lower": "0x5597122b0210-Expr", - "upper": "0x5597122afdf0-Expr" + "id": "0x55eadb4377e8-LoopBounds", + "var": "0x55eadb4377e8-Name", + "lower": "0x55eadb48e210-Expr", + "upper": "0x55eadb48ddf0-Expr" }, { - "id": "0x5597122597e8-Name", + "id": "0x55eadb4377e8-Name", "source": "j" }, { - "id": "0x5597122b0210-Expr", + "id": "0x55eadb48e210-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b0230-LiteralConstant" + "LiteralConstant": "0x55eadb48e230-LiteralConstant" }, { - "id": "0x5597122b0230-LiteralConstant", + "id": "0x55eadb48e230-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b0230-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb48e230-IntLiteralConstant" }, { - "id": "0x5597122b0230-IntLiteralConstant", + "id": "0x55eadb48e230-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5597122afdf0-Expr", + "id": "0x55eadb48ddf0-Expr", "variantKey": "Designator", - "Designator": "0x5597122b40b0-Designator" + "Designator": "0x55eadb4920b0-Designator" }, { - "id": "0x5597122b40b0-Designator", + "id": "0x55eadb4920b0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122b40c0-DataRef" + "DataRef": "0x55eadb4920c0-DataRef" }, { - "id": "0x5597122b40c0-DataRef", + "id": "0x55eadb4920c0-DataRef", "variantKey": "Name", - "Name": "0x5597122b40c0-Name" + "Name": "0x55eadb4920c0-Name" }, { - "id": "0x5597122b40c0-Name", + "id": "0x55eadb4920c0-Name", "source": "nk" }, { - "id": "0x5597122597c0-ExecutionPartConstruct" + "id": "0x55eadb4377c0-ExecutionPartConstruct" }, { - "id": "0x5597122c8160-ExecutionPartConstruct", + "id": "0x55eadb4a6160-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122c8160-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4a6160-ExecutableConstruct" }, { - "id": "0x5597122c8160-ExecutableConstruct", + "id": "0x55eadb4a6160-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122c8160-Statement" + "Statement": "0x55eadb4a6160-Statement" }, { - "id": "0x5597122c8160-Statement", - "statement": "0x5597122c8170-ActionStmt", + "id": "0x55eadb4a6160-Statement", + "statement": "0x55eadb4a6170-ActionStmt", "source": "a(j, i) = dble(i - 1) * dble(j - 1) / ni" }, { - "id": "0x5597122c8170-ActionStmt", + "id": "0x55eadb4a6170-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5597122cb820-AssignmentStmt" + "AssignmentStmt": "0x55eadb4a9820-AssignmentStmt" }, { - "id": "0x5597122cb820-AssignmentStmt", - "Variable": "0x5597122cb900-Variable", - "Expr": "0x5597122cb830-Expr" + "id": "0x55eadb4a9820-AssignmentStmt", + "Variable": "0x55eadb4a9900-Variable", + "Expr": "0x55eadb4a9830-Expr" }, { - "id": "0x5597122cb900-Variable", + "id": "0x55eadb4a9900-Variable", "variantKey": "Designator", - "Designator": "0x5597122c1510-Designator" + "Designator": "0x55eadb49f510-Designator" }, { - "id": "0x5597122c1510-Designator", + "id": "0x55eadb49f510-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122c1520-DataRef" + "DataRef": "0x55eadb49f520-DataRef" }, { - "id": "0x5597122c1520-DataRef", + "id": "0x55eadb49f520-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x5597122e45a0-ArrayElement" + "ArrayElement": "0x55eadb4c25a0-ArrayElement" }, { - "id": "0x5597122e45a0-ArrayElement", - "base": "0x5597122e45a0-DataRef", + "id": "0x55eadb4c25a0-ArrayElement", + "base": "0x55eadb4c25a0-DataRef", "subscripts": [ - "0x5597122c11d0-SectionSubscript", - "0x5597122f9830-SectionSubscript" + "0x55eadb49f1d0-SectionSubscript", + "0x55eadb4d7830-SectionSubscript" ] }, { - "id": "0x5597122e45a0-DataRef", + "id": "0x55eadb4c25a0-DataRef", "variantKey": "Name", - "Name": "0x5597122e45a0-Name" + "Name": "0x55eadb4c25a0-Name" }, { - "id": "0x5597122e45a0-Name", + "id": "0x55eadb4c25a0-Name", "source": "a" }, { - "id": "0x5597122c11d0-SectionSubscript", + "id": "0x55eadb49f1d0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x559712306ac0-Expr" + "Expr": "0x55eadb4e4ac0-Expr" }, { - "id": "0x559712306ac0-Expr", + "id": "0x55eadb4e4ac0-Expr", "variantKey": "Designator", - "Designator": "0x5597122c17f0-Designator" + "Designator": "0x55eadb49f7f0-Designator" }, { - "id": "0x5597122c17f0-Designator", + "id": "0x55eadb49f7f0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122c1800-DataRef" + "DataRef": "0x55eadb49f800-DataRef" }, { - "id": "0x5597122c1800-DataRef", + "id": "0x55eadb49f800-DataRef", "variantKey": "Name", - "Name": "0x5597122c1800-Name" + "Name": "0x55eadb49f800-Name" }, { - "id": "0x5597122c1800-Name", + "id": "0x55eadb49f800-Name", "source": "j" }, { - "id": "0x5597122f9830-SectionSubscript", + "id": "0x55eadb4d7830-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122e2500-Expr" + "Expr": "0x55eadb4c0500-Expr" }, { - "id": "0x5597122e2500-Expr", + "id": "0x55eadb4c0500-Expr", "variantKey": "Designator", - "Designator": "0x5597122af870-Designator" + "Designator": "0x55eadb48d870-Designator" }, { - "id": "0x5597122af870-Designator", + "id": "0x55eadb48d870-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122af880-DataRef" + "DataRef": "0x55eadb48d880-DataRef" }, { - "id": "0x5597122af880-DataRef", + "id": "0x55eadb48d880-DataRef", "variantKey": "Name", - "Name": "0x5597122af880-Name" + "Name": "0x55eadb48d880-Name" }, { - "id": "0x5597122af880-Name", + "id": "0x55eadb48d880-Name", "source": "i" }, { - "id": "0x5597122cb830-Expr", + "id": "0x55eadb4a9830-Expr", "variantKey": "Divide", - "Divide": "0x5597122cb850-Divide" + "Divide": "0x55eadb4a9850-Divide" }, { - "id": "0x5597122cb850-Divide", - "left": "0x5597122c7f90-Expr", - "right": "0x5597122b4cc0-Expr", + "id": "0x55eadb4a9850-Divide", + "left": "0x55eadb4a5f90-Expr", + "right": "0x55eadb492cc0-Expr", "op": "DIVIDE" }, { - "id": "0x5597122c7f90-Expr", + "id": "0x55eadb4a5f90-Expr", "variantKey": "Multiply", - "Multiply": "0x5597122c7fb0-Multiply" + "Multiply": "0x55eadb4a5fb0-Multiply" }, { - "id": "0x5597122c7fb0-Multiply", - "left": "0x5597122ccc70-Expr", - "right": "0x5597122c7d10-Expr", + "id": "0x55eadb4a5fb0-Multiply", + "left": "0x55eadb4aac70-Expr", + "right": "0x55eadb4a5d10-Expr", "op": "MULTIPLY" }, { - "id": "0x5597122ccc70-Expr", + "id": "0x55eadb4aac70-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x5597122cbb50-FunctionReference" + "FunctionReference": "0x55eadb4a9b50-FunctionReference" }, { - "id": "0x5597122cbb50-FunctionReference", - "Call": "0x5597122cbb50-Call" + "id": "0x55eadb4a9b50-FunctionReference", + "Call": "0x55eadb4a9b50-Call" }, { - "id": "0x5597122cbb50-Call", - "ProcedureDesignator": "0x5597122cbb68-ProcedureDesignator", + "id": "0x55eadb4a9b50-Call", + "ProcedureDesignator": "0x55eadb4a9b68-ProcedureDesignator", "ActualArgSpec": [ - "0x5597122cc1e0-ActualArgSpec" + "0x55eadb4aa1e0-ActualArgSpec" ] }, { - "id": "0x5597122cbb68-ProcedureDesignator", + "id": "0x55eadb4a9b68-ProcedureDesignator", "variantKey": "Name", - "Name": "0x5597122cbb68-Name" + "Name": "0x55eadb4a9b68-Name" }, { - "id": "0x5597122cbb68-Name", + "id": "0x55eadb4a9b68-Name", "source": "dble" }, { - "id": "0x5597122cc1e0-ActualArgSpec", - "ActualArg": "0x5597122cc1e0-ActualArg" + "id": "0x55eadb4aa1e0-ActualArgSpec", + "ActualArg": "0x55eadb4aa1e0-ActualArg" }, { - "id": "0x5597122cc1e0-ActualArg", + "id": "0x55eadb4aa1e0-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122b8550-Expr" + "Expr": "0x55eadb496550-Expr" }, { - "id": "0x5597122b8550-Expr", + "id": "0x55eadb496550-Expr", "variantKey": "Subtract", - "Subtract": "0x5597122b8570-Subtract" + "Subtract": "0x55eadb496570-Subtract" }, { - "id": "0x5597122b8570-Subtract", - "left": "0x5597122cd8c0-Expr", - "right": "0x5597122c8330-Expr", + "id": "0x55eadb496570-Subtract", + "left": "0x55eadb4ab8c0-Expr", + "right": "0x55eadb4a6330-Expr", "op": "SUBTRACT" }, { - "id": "0x5597122cd8c0-Expr", + "id": "0x55eadb4ab8c0-Expr", "variantKey": "Designator", - "Designator": "0x5597122c7c10-Designator" + "Designator": "0x55eadb4a5c10-Designator" }, { - "id": "0x5597122c7c10-Designator", + "id": "0x55eadb4a5c10-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122c7c20-DataRef" + "DataRef": "0x55eadb4a5c20-DataRef" }, { - "id": "0x5597122c7c20-DataRef", + "id": "0x55eadb4a5c20-DataRef", "variantKey": "Name", - "Name": "0x5597122c7c20-Name" + "Name": "0x55eadb4a5c20-Name" }, { - "id": "0x5597122c7c20-Name", + "id": "0x55eadb4a5c20-Name", "source": "i" }, { - "id": "0x5597122c8330-Expr", + "id": "0x55eadb4a6330-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122c8350-LiteralConstant" + "LiteralConstant": "0x55eadb4a6350-LiteralConstant" }, { - "id": "0x5597122c8350-LiteralConstant", + "id": "0x55eadb4a6350-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122c8350-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4a6350-IntLiteralConstant" }, { - "id": "0x5597122c8350-IntLiteralConstant", + "id": "0x55eadb4a6350-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5597122c7d10-Expr", + "id": "0x55eadb4a5d10-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x5597122c9440-FunctionReference" + "FunctionReference": "0x55eadb4a7440-FunctionReference" }, { - "id": "0x5597122c9440-FunctionReference", - "Call": "0x5597122c9440-Call" + "id": "0x55eadb4a7440-FunctionReference", + "Call": "0x55eadb4a7440-Call" }, { - "id": "0x5597122c9440-Call", - "ProcedureDesignator": "0x5597122c9458-ProcedureDesignator", + "id": "0x55eadb4a7440-Call", + "ProcedureDesignator": "0x55eadb4a7458-ProcedureDesignator", "ActualArgSpec": [ - "0x5597122cc510-ActualArgSpec" + "0x55eadb4aa510-ActualArgSpec" ] }, { - "id": "0x5597122c9458-ProcedureDesignator", + "id": "0x55eadb4a7458-ProcedureDesignator", "variantKey": "Name", - "Name": "0x5597122c9458-Name" + "Name": "0x55eadb4a7458-Name" }, { - "id": "0x5597122c9458-Name", + "id": "0x55eadb4a7458-Name", "source": "dble" }, { - "id": "0x5597122cc510-ActualArgSpec", - "ActualArg": "0x5597122cc510-ActualArg" + "id": "0x55eadb4aa510-ActualArgSpec", + "ActualArg": "0x55eadb4aa510-ActualArg" }, { - "id": "0x5597122cc510-ActualArg", + "id": "0x55eadb4aa510-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122b7eb0-Expr" + "Expr": "0x55eadb495eb0-Expr" }, { - "id": "0x5597122b7eb0-Expr", + "id": "0x55eadb495eb0-Expr", "variantKey": "Subtract", - "Subtract": "0x5597122b7ed0-Subtract" + "Subtract": "0x55eadb495ed0-Subtract" }, { - "id": "0x5597122b7ed0-Subtract", - "left": "0x5597122b8140-Expr", - "right": "0x5597122b8060-Expr", + "id": "0x55eadb495ed0-Subtract", + "left": "0x55eadb496140-Expr", + "right": "0x55eadb496060-Expr", "op": "SUBTRACT" }, { - "id": "0x5597122b8140-Expr", + "id": "0x55eadb496140-Expr", "variantKey": "Designator", - "Designator": "0x5597122b5950-Designator" + "Designator": "0x55eadb493950-Designator" }, { - "id": "0x5597122b5950-Designator", + "id": "0x55eadb493950-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122b5960-DataRef" + "DataRef": "0x55eadb493960-DataRef" }, { - "id": "0x5597122b5960-DataRef", + "id": "0x55eadb493960-DataRef", "variantKey": "Name", - "Name": "0x5597122b5960-Name" + "Name": "0x55eadb493960-Name" }, { - "id": "0x5597122b5960-Name", + "id": "0x55eadb493960-Name", "source": "j" }, { - "id": "0x5597122b8060-Expr", + "id": "0x55eadb496060-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b8080-LiteralConstant" + "LiteralConstant": "0x55eadb496080-LiteralConstant" }, { - "id": "0x5597122b8080-LiteralConstant", + "id": "0x55eadb496080-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b8080-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb496080-IntLiteralConstant" }, { - "id": "0x5597122b8080-IntLiteralConstant", + "id": "0x55eadb496080-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5597122b4cc0-Expr", + "id": "0x55eadb492cc0-Expr", "variantKey": "Designator", - "Designator": "0x5597122b4bf0-Designator" + "Designator": "0x55eadb492bf0-Designator" }, { - "id": "0x5597122b4bf0-Designator", + "id": "0x55eadb492bf0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122b4c00-DataRef" + "DataRef": "0x55eadb492c00-DataRef" }, { - "id": "0x5597122b4c00-DataRef", + "id": "0x55eadb492c00-DataRef", "variantKey": "Name", - "Name": "0x5597122b4c00-Name" + "Name": "0x55eadb492c00-Name" }, { - "id": "0x5597122b4c00-Name", + "id": "0x55eadb492c00-Name", "source": "ni" }, { - "id": "0x559712259780-Statement", - "statement": "0x559712259790-EndDoStmt", + "id": "0x55eadb437780-Statement", + "statement": "0x55eadb437790-EndDoStmt", "source": "end do" }, { - "id": "0x559712259790-EndDoStmt" + "id": "0x55eadb437790-EndDoStmt" }, { - "id": "0x5597122c6050-Statement", - "statement": "0x5597122c6060-EndDoStmt", + "id": "0x55eadb4a4050-Statement", + "statement": "0x55eadb4a4060-EndDoStmt", "source": "end do" }, { - "id": "0x5597122c6060-EndDoStmt" + "id": "0x55eadb4a4060-EndDoStmt" }, { - "id": "0x5597122cc870-ExecutionPartConstruct", + "id": "0x55eadb4aa870-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122cc870-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4aa870-ExecutableConstruct" }, { - "id": "0x5597122cc870-ExecutableConstruct", + "id": "0x55eadb4aa870-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x5597122b9dc0-DoConstruct" + "DoConstruct": "0x55eadb497dc0-DoConstruct" }, { - "id": "0x5597122b9dc0-DoConstruct", - "Statement": "0x5597122b9e18-Statement", + "id": "0x55eadb497dc0-DoConstruct", + "Statement": "0x55eadb497e18-Statement", "ExecutionPartConstruct": [ - "0x5597122cc810-ExecutionPartConstruct" + "0x55eadb4aa810-ExecutionPartConstruct" ], - "Statement": "0x5597122b9dc0-Statement" + "Statement": "0x55eadb497dc0-Statement" }, { - "id": "0x5597122b9e18-Statement", - "statement": "0x5597122b9e28-NonLabelDoStmt", + "id": "0x55eadb497e18-Statement", + "statement": "0x55eadb497e28-NonLabelDoStmt", "source": "do i = 1, nk" }, { - "id": "0x5597122b9e28-NonLabelDoStmt", - "LoopControl": "0x5597122b9e28-LoopControl" + "id": "0x55eadb497e28-NonLabelDoStmt", + "LoopControl": "0x55eadb497e28-LoopControl" }, { - "id": "0x5597122b9e28-LoopControl", + "id": "0x55eadb497e28-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x5597122b9e28-LoopBounds" + "LoopBounds": "0x55eadb497e28-LoopBounds" }, { - "id": "0x5597122b9e28-LoopBounds", - "var": "0x5597122b9e28-Name", - "lower": "0x5597122c6170-Expr", - "upper": "0x5597122ce0d0-Expr" + "id": "0x55eadb497e28-LoopBounds", + "var": "0x55eadb497e28-Name", + "lower": "0x55eadb4a4170-Expr", + "upper": "0x55eadb4ac0d0-Expr" }, { - "id": "0x5597122b9e28-Name", + "id": "0x55eadb497e28-Name", "source": "i" }, { - "id": "0x5597122c6170-Expr", + "id": "0x55eadb4a4170-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122c6190-LiteralConstant" + "LiteralConstant": "0x55eadb4a4190-LiteralConstant" }, { - "id": "0x5597122c6190-LiteralConstant", + "id": "0x55eadb4a4190-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122c6190-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4a4190-IntLiteralConstant" }, { - "id": "0x5597122c6190-IntLiteralConstant", + "id": "0x55eadb4a4190-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5597122ce0d0-Expr", + "id": "0x55eadb4ac0d0-Expr", "variantKey": "Designator", - "Designator": "0x5597122ccd50-Designator" + "Designator": "0x55eadb4aad50-Designator" }, { - "id": "0x5597122ccd50-Designator", + "id": "0x55eadb4aad50-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122ccd60-DataRef" + "DataRef": "0x55eadb4aad60-DataRef" }, { - "id": "0x5597122ccd60-DataRef", + "id": "0x55eadb4aad60-DataRef", "variantKey": "Name", - "Name": "0x5597122ccd60-Name" + "Name": "0x55eadb4aad60-Name" }, { - "id": "0x5597122ccd60-Name", + "id": "0x55eadb4aad60-Name", "source": "nk" }, { - "id": "0x5597122b9e00-ExecutionPartConstruct" + "id": "0x55eadb497e00-ExecutionPartConstruct" }, { - "id": "0x5597122cc810-ExecutionPartConstruct", + "id": "0x55eadb4aa810-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122cc810-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4aa810-ExecutableConstruct" }, { - "id": "0x5597122cc810-ExecutableConstruct", + "id": "0x55eadb4aa810-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x5597122b9ca0-DoConstruct" + "DoConstruct": "0x55eadb497ca0-DoConstruct" }, { - "id": "0x5597122b9ca0-DoConstruct", - "Statement": "0x5597122b9cf8-Statement", + "id": "0x55eadb497ca0-DoConstruct", + "Statement": "0x55eadb497cf8-Statement", "ExecutionPartConstruct": [ - "0x5597122b9c50-ExecutionPartConstruct" + "0x55eadb497c50-ExecutionPartConstruct" ], - "Statement": "0x5597122b9ca0-Statement" + "Statement": "0x55eadb497ca0-Statement" }, { - "id": "0x5597122b9cf8-Statement", - "statement": "0x5597122b9d08-NonLabelDoStmt", + "id": "0x55eadb497cf8-Statement", + "statement": "0x55eadb497d08-NonLabelDoStmt", "source": "do j = 1, nj" }, { - "id": "0x5597122b9d08-NonLabelDoStmt", - "LoopControl": "0x5597122b9d08-LoopControl" + "id": "0x55eadb497d08-NonLabelDoStmt", + "LoopControl": "0x55eadb497d08-LoopControl" }, { - "id": "0x5597122b9d08-LoopControl", + "id": "0x55eadb497d08-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x5597122b9d08-LoopBounds" + "LoopBounds": "0x55eadb497d08-LoopBounds" }, { - "id": "0x5597122b9d08-LoopBounds", - "var": "0x5597122b9d08-Name", - "lower": "0x5597122ce1b0-Expr", - "upper": "0x5597122ce290-Expr" + "id": "0x55eadb497d08-LoopBounds", + "var": "0x55eadb497d08-Name", + "lower": "0x55eadb4ac1b0-Expr", + "upper": "0x55eadb4ac290-Expr" }, { - "id": "0x5597122b9d08-Name", + "id": "0x55eadb497d08-Name", "source": "j" }, { - "id": "0x5597122ce1b0-Expr", + "id": "0x55eadb4ac1b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122ce1d0-LiteralConstant" + "LiteralConstant": "0x55eadb4ac1d0-LiteralConstant" }, { - "id": "0x5597122ce1d0-LiteralConstant", + "id": "0x55eadb4ac1d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122ce1d0-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4ac1d0-IntLiteralConstant" }, { - "id": "0x5597122ce1d0-IntLiteralConstant", + "id": "0x55eadb4ac1d0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5597122ce290-Expr", + "id": "0x55eadb4ac290-Expr", "variantKey": "Designator", - "Designator": "0x5597122af630-Designator" + "Designator": "0x55eadb48d630-Designator" }, { - "id": "0x5597122af630-Designator", + "id": "0x55eadb48d630-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122af640-DataRef" + "DataRef": "0x55eadb48d640-DataRef" }, { - "id": "0x5597122af640-DataRef", + "id": "0x55eadb48d640-DataRef", "variantKey": "Name", - "Name": "0x5597122af640-Name" + "Name": "0x55eadb48d640-Name" }, { - "id": "0x5597122af640-Name", + "id": "0x55eadb48d640-Name", "source": "nj" }, { - "id": "0x5597122b9ce0-ExecutionPartConstruct" + "id": "0x55eadb497ce0-ExecutionPartConstruct" }, { - "id": "0x5597122b9c50-ExecutionPartConstruct", + "id": "0x55eadb497c50-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122b9c50-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb497c50-ExecutableConstruct" }, { - "id": "0x5597122b9c50-ExecutableConstruct", + "id": "0x55eadb497c50-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122b9c50-Statement" + "Statement": "0x55eadb497c50-Statement" }, { - "id": "0x5597122b9c50-Statement", - "statement": "0x5597122b9c60-ActionStmt", + "id": "0x55eadb497c50-Statement", + "statement": "0x55eadb497c60-ActionStmt", "source": "b(j, i) =(dble(i - 1) * dble(j))/ nj" }, { - "id": "0x5597122b9c60-ActionStmt", + "id": "0x55eadb497c60-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5597122b9ac0-AssignmentStmt" + "AssignmentStmt": "0x55eadb497ac0-AssignmentStmt" }, { - "id": "0x5597122b9ac0-AssignmentStmt", - "Variable": "0x5597122b9ba0-Variable", - "Expr": "0x5597122b9ad0-Expr" + "id": "0x55eadb497ac0-AssignmentStmt", + "Variable": "0x55eadb497ba0-Variable", + "Expr": "0x55eadb497ad0-Expr" }, { - "id": "0x5597122b9ba0-Variable", + "id": "0x55eadb497ba0-Variable", "variantKey": "Designator", - "Designator": "0x5597122ebb10-Designator" + "Designator": "0x55eadb4c9b10-Designator" }, { - "id": "0x5597122ebb10-Designator", + "id": "0x55eadb4c9b10-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122ebb20-DataRef" + "DataRef": "0x55eadb4c9b20-DataRef" }, { - "id": "0x5597122ebb20-DataRef", + "id": "0x55eadb4c9b20-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x5597122e3b30-ArrayElement" + "ArrayElement": "0x55eadb4c1b30-ArrayElement" }, { - "id": "0x5597122e3b30-ArrayElement", - "base": "0x5597122e3b30-DataRef", + "id": "0x55eadb4c1b30-ArrayElement", + "base": "0x55eadb4c1b30-DataRef", "subscripts": [ - "0x55971238a220-SectionSubscript", - "0x55971238a270-SectionSubscript" + "0x55eadb568220-SectionSubscript", + "0x55eadb568270-SectionSubscript" ] }, { - "id": "0x5597122e3b30-DataRef", + "id": "0x55eadb4c1b30-DataRef", "variantKey": "Name", - "Name": "0x5597122e3b30-Name" + "Name": "0x55eadb4c1b30-Name" }, { - "id": "0x5597122e3b30-Name", + "id": "0x55eadb4c1b30-Name", "source": "b" }, { - "id": "0x55971238a220-SectionSubscript", + "id": "0x55eadb568220-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122c5e00-Expr" + "Expr": "0x55eadb4a3e00-Expr" }, { - "id": "0x5597122c5e00-Expr", + "id": "0x55eadb4a3e00-Expr", "variantKey": "Designator", - "Designator": "0x5597122b6220-Designator" + "Designator": "0x55eadb494220-Designator" }, { - "id": "0x5597122b6220-Designator", + "id": "0x55eadb494220-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122b6230-DataRef" + "DataRef": "0x55eadb494230-DataRef" }, { - "id": "0x5597122b6230-DataRef", + "id": "0x55eadb494230-DataRef", "variantKey": "Name", - "Name": "0x5597122b6230-Name" + "Name": "0x55eadb494230-Name" }, { - "id": "0x5597122b6230-Name", + "id": "0x55eadb494230-Name", "source": "j" }, { - "id": "0x55971238a270-SectionSubscript", + "id": "0x55eadb568270-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122ab040-Expr" + "Expr": "0x55eadb489040-Expr" }, { - "id": "0x5597122ab040-Expr", + "id": "0x55eadb489040-Expr", "variantKey": "Designator", - "Designator": "0x5597122c7f10-Designator" + "Designator": "0x55eadb4a5f10-Designator" }, { - "id": "0x5597122c7f10-Designator", + "id": "0x55eadb4a5f10-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122c7f20-DataRef" + "DataRef": "0x55eadb4a5f20-DataRef" }, { - "id": "0x5597122c7f20-DataRef", + "id": "0x55eadb4a5f20-DataRef", "variantKey": "Name", - "Name": "0x5597122c7f20-Name" + "Name": "0x55eadb4a5f20-Name" }, { - "id": "0x5597122c7f20-Name", + "id": "0x55eadb4a5f20-Name", "source": "i" }, { - "id": "0x5597122b9ad0-Expr", + "id": "0x55eadb497ad0-Expr", "variantKey": "Divide", - "Divide": "0x5597122b9af0-Divide" + "Divide": "0x55eadb497af0-Divide" }, { - "id": "0x5597122b9af0-Divide", - "left": "0x5597122b9970-Expr", - "right": "0x5597122c2c70-Expr", + "id": "0x55eadb497af0-Divide", + "left": "0x55eadb497970-Expr", + "right": "0x55eadb4a0c70-Expr", "op": "DIVIDE" }, { - "id": "0x5597122b9970-Expr", + "id": "0x55eadb497970-Expr", "variantKey": "Parentheses", - "Parentheses": "0x5597122b9990-Parentheses" + "Parentheses": "0x55eadb497990-Parentheses" }, { - "id": "0x5597122b9990-Parentheses", - "Expr": "0x5597122c27d0-Expr", + "id": "0x55eadb497990-Parentheses", + "Expr": "0x55eadb4a07d0-Expr", "op": "PARENTHESES" }, { - "id": "0x5597122c27d0-Expr", + "id": "0x55eadb4a07d0-Expr", "variantKey": "Multiply", - "Multiply": "0x5597122c27f0-Multiply" + "Multiply": "0x55eadb4a07f0-Multiply" }, { - "id": "0x5597122c27f0-Multiply", - "left": "0x5597122c26f0-Expr", - "right": "0x5597122b9840-Expr", + "id": "0x55eadb4a07f0-Multiply", + "left": "0x55eadb4a06f0-Expr", + "right": "0x55eadb497840-Expr", "op": "MULTIPLY" }, { - "id": "0x5597122c26f0-Expr", + "id": "0x55eadb4a06f0-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x5597122c7ca0-FunctionReference" + "FunctionReference": "0x55eadb4a5ca0-FunctionReference" }, { - "id": "0x5597122c7ca0-FunctionReference", - "Call": "0x5597122c7ca0-Call" + "id": "0x55eadb4a5ca0-FunctionReference", + "Call": "0x55eadb4a5ca0-Call" }, { - "id": "0x5597122c7ca0-Call", - "ProcedureDesignator": "0x5597122c7cb8-ProcedureDesignator", + "id": "0x55eadb4a5ca0-Call", + "ProcedureDesignator": "0x55eadb4a5cb8-ProcedureDesignator", "ActualArgSpec": [ - "0x5597122cc6a0-ActualArgSpec" + "0x55eadb4aa6a0-ActualArgSpec" ] }, { - "id": "0x5597122c7cb8-ProcedureDesignator", + "id": "0x55eadb4a5cb8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x5597122c7cb8-Name" + "Name": "0x55eadb4a5cb8-Name" }, { - "id": "0x5597122c7cb8-Name", + "id": "0x55eadb4a5cb8-Name", "source": "dble" }, { - "id": "0x5597122cc6a0-ActualArgSpec", - "ActualArg": "0x5597122cc6a0-ActualArg" + "id": "0x55eadb4aa6a0-ActualArgSpec", + "ActualArg": "0x55eadb4aa6a0-ActualArg" }, { - "id": "0x5597122cc6a0-ActualArg", + "id": "0x55eadb4aa6a0-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122cbe70-Expr" + "Expr": "0x55eadb4a9e70-Expr" }, { - "id": "0x5597122cbe70-Expr", + "id": "0x55eadb4a9e70-Expr", "variantKey": "Subtract", - "Subtract": "0x5597122cbe90-Subtract" + "Subtract": "0x55eadb4a9e90-Subtract" }, { - "id": "0x5597122cbe90-Subtract", - "left": "0x5597122cc030-Expr", - "right": "0x5597122cbf50-Expr", + "id": "0x55eadb4a9e90-Subtract", + "left": "0x55eadb4aa030-Expr", + "right": "0x55eadb4a9f50-Expr", "op": "SUBTRACT" }, { - "id": "0x5597122cc030-Expr", + "id": "0x55eadb4aa030-Expr", "variantKey": "Designator", - "Designator": "0x5597122c77f0-Designator" + "Designator": "0x55eadb4a57f0-Designator" }, { - "id": "0x5597122c77f0-Designator", + "id": "0x55eadb4a57f0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122c7800-DataRef" + "DataRef": "0x55eadb4a5800-DataRef" }, { - "id": "0x5597122c7800-DataRef", + "id": "0x55eadb4a5800-DataRef", "variantKey": "Name", - "Name": "0x5597122c7800-Name" + "Name": "0x55eadb4a5800-Name" }, { - "id": "0x5597122c7800-Name", + "id": "0x55eadb4a5800-Name", "source": "i" }, { - "id": "0x5597122cbf50-Expr", + "id": "0x55eadb4a9f50-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122cbf70-LiteralConstant" + "LiteralConstant": "0x55eadb4a9f70-LiteralConstant" }, { - "id": "0x5597122cbf70-LiteralConstant", + "id": "0x55eadb4a9f70-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122cbf70-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4a9f70-IntLiteralConstant" }, { - "id": "0x5597122cbf70-IntLiteralConstant", + "id": "0x55eadb4a9f70-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5597122b9840-Expr", + "id": "0x55eadb497840-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x5597122c92f0-FunctionReference" + "FunctionReference": "0x55eadb4a72f0-FunctionReference" }, { - "id": "0x5597122c92f0-FunctionReference", - "Call": "0x5597122c92f0-Call" + "id": "0x55eadb4a72f0-FunctionReference", + "Call": "0x55eadb4a72f0-Call" }, { - "id": "0x5597122c92f0-Call", - "ProcedureDesignator": "0x5597122c9308-ProcedureDesignator", + "id": "0x55eadb4a72f0-Call", + "ProcedureDesignator": "0x55eadb4a7308-ProcedureDesignator", "ActualArgSpec": [ - "0x5597122cca70-ActualArgSpec" + "0x55eadb4aaa70-ActualArgSpec" ] }, { - "id": "0x5597122c9308-ProcedureDesignator", + "id": "0x55eadb4a7308-ProcedureDesignator", "variantKey": "Name", - "Name": "0x5597122c9308-Name" + "Name": "0x55eadb4a7308-Name" }, { - "id": "0x5597122c9308-Name", + "id": "0x55eadb4a7308-Name", "source": "dble" }, { - "id": "0x5597122cca70-ActualArgSpec", - "ActualArg": "0x5597122cca70-ActualArg" + "id": "0x55eadb4aaa70-ActualArgSpec", + "ActualArg": "0x55eadb4aaa70-ActualArg" }, { - "id": "0x5597122cca70-ActualArg", + "id": "0x55eadb4aaa70-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122cc920-Expr" + "Expr": "0x55eadb4aa920-Expr" }, { - "id": "0x5597122cc920-Expr", + "id": "0x55eadb4aa920-Expr", "variantKey": "Designator", - "Designator": "0x5597122cc8c0-Designator" + "Designator": "0x55eadb4aa8c0-Designator" }, { - "id": "0x5597122cc8c0-Designator", + "id": "0x55eadb4aa8c0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122cc8d0-DataRef" + "DataRef": "0x55eadb4aa8d0-DataRef" }, { - "id": "0x5597122cc8d0-DataRef", + "id": "0x55eadb4aa8d0-DataRef", "variantKey": "Name", - "Name": "0x5597122cc8d0-Name" + "Name": "0x55eadb4aa8d0-Name" }, { - "id": "0x5597122cc8d0-Name", + "id": "0x55eadb4aa8d0-Name", "source": "j" }, { - "id": "0x5597122c2c70-Expr", + "id": "0x55eadb4a0c70-Expr", "variantKey": "Designator", - "Designator": "0x5597122c2ba0-Designator" + "Designator": "0x55eadb4a0ba0-Designator" }, { - "id": "0x5597122c2ba0-Designator", + "id": "0x55eadb4a0ba0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122c2bb0-DataRef" + "DataRef": "0x55eadb4a0bb0-DataRef" }, { - "id": "0x5597122c2bb0-DataRef", + "id": "0x55eadb4a0bb0-DataRef", "variantKey": "Name", - "Name": "0x5597122c2bb0-Name" + "Name": "0x55eadb4a0bb0-Name" }, { - "id": "0x5597122c2bb0-Name", + "id": "0x55eadb4a0bb0-Name", "source": "nj" }, { - "id": "0x5597122b9ca0-Statement", - "statement": "0x5597122b9cb0-EndDoStmt", + "id": "0x55eadb497ca0-Statement", + "statement": "0x55eadb497cb0-EndDoStmt", "source": "end do" }, { - "id": "0x5597122b9cb0-EndDoStmt" + "id": "0x55eadb497cb0-EndDoStmt" }, { - "id": "0x5597122b9dc0-Statement", - "statement": "0x5597122b9dd0-EndDoStmt", + "id": "0x55eadb497dc0-Statement", + "statement": "0x55eadb497dd0-EndDoStmt", "source": "end do" }, { - "id": "0x5597122b9dd0-EndDoStmt" + "id": "0x55eadb497dd0-EndDoStmt" }, { - "id": "0x5597122c8bd0-ExecutionPartConstruct", + "id": "0x55eadb4a6bd0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122c8bd0-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4a6bd0-ExecutableConstruct" }, { - "id": "0x5597122c8bd0-ExecutableConstruct", + "id": "0x55eadb4a6bd0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x5597122c6b80-DoConstruct" + "DoConstruct": "0x55eadb4a4b80-DoConstruct" }, { - "id": "0x5597122c6b80-DoConstruct", - "Statement": "0x5597122c6bd8-Statement", + "id": "0x55eadb4a4b80-DoConstruct", + "Statement": "0x55eadb4a4bd8-Statement", "ExecutionPartConstruct": [ - "0x5597122c8b10-ExecutionPartConstruct" + "0x55eadb4a6b10-ExecutionPartConstruct" ], - "Statement": "0x5597122c6b80-Statement" + "Statement": "0x55eadb4a4b80-Statement" }, { - "id": "0x5597122c6bd8-Statement", - "statement": "0x5597122c6be8-NonLabelDoStmt", + "id": "0x55eadb4a4bd8-Statement", + "statement": "0x55eadb4a4be8-NonLabelDoStmt", "source": "do i = 1, nj" }, { - "id": "0x5597122c6be8-NonLabelDoStmt", - "LoopControl": "0x5597122c6be8-LoopControl" + "id": "0x55eadb4a4be8-NonLabelDoStmt", + "LoopControl": "0x55eadb4a4be8-LoopControl" }, { - "id": "0x5597122c6be8-LoopControl", + "id": "0x55eadb4a4be8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x5597122c6be8-LoopBounds" + "LoopBounds": "0x55eadb4a4be8-LoopBounds" }, { - "id": "0x5597122c6be8-LoopBounds", - "var": "0x5597122c6be8-Name", - "lower": "0x5597122b9ee0-Expr", - "upper": "0x5597122b8dd0-Expr" + "id": "0x55eadb4a4be8-LoopBounds", + "var": "0x55eadb4a4be8-Name", + "lower": "0x55eadb497ee0-Expr", + "upper": "0x55eadb496dd0-Expr" }, { - "id": "0x5597122c6be8-Name", + "id": "0x55eadb4a4be8-Name", "source": "i" }, { - "id": "0x5597122b9ee0-Expr", + "id": "0x55eadb497ee0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b9f00-LiteralConstant" + "LiteralConstant": "0x55eadb497f00-LiteralConstant" }, { - "id": "0x5597122b9f00-LiteralConstant", + "id": "0x55eadb497f00-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b9f00-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb497f00-IntLiteralConstant" }, { - "id": "0x5597122b9f00-IntLiteralConstant", + "id": "0x55eadb497f00-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5597122b8dd0-Expr", + "id": "0x55eadb496dd0-Expr", "variantKey": "Designator", - "Designator": "0x5597122c28b0-Designator" + "Designator": "0x55eadb4a08b0-Designator" }, { - "id": "0x5597122c28b0-Designator", + "id": "0x55eadb4a08b0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122c28c0-DataRef" + "DataRef": "0x55eadb4a08c0-DataRef" }, { - "id": "0x5597122c28c0-DataRef", + "id": "0x55eadb4a08c0-DataRef", "variantKey": "Name", - "Name": "0x5597122c28c0-Name" + "Name": "0x55eadb4a08c0-Name" }, { - "id": "0x5597122c28c0-Name", + "id": "0x55eadb4a08c0-Name", "source": "nj" }, { - "id": "0x5597122c6bc0-ExecutionPartConstruct" + "id": "0x55eadb4a4bc0-ExecutionPartConstruct" }, { - "id": "0x5597122c8b10-ExecutionPartConstruct", + "id": "0x55eadb4a6b10-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122c8b10-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4a6b10-ExecutableConstruct" }, { - "id": "0x5597122c8b10-ExecutableConstruct", + "id": "0x55eadb4a6b10-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x5597122c6a60-DoConstruct" + "DoConstruct": "0x55eadb4a4a60-DoConstruct" }, { - "id": "0x5597122c6a60-DoConstruct", - "Statement": "0x5597122c6ab8-Statement", + "id": "0x55eadb4a4a60-DoConstruct", + "Statement": "0x55eadb4a4ab8-Statement", "ExecutionPartConstruct": [ - "0x5597122c6a10-ExecutionPartConstruct" + "0x55eadb4a4a10-ExecutionPartConstruct" ], - "Statement": "0x5597122c6a60-Statement" + "Statement": "0x55eadb4a4a60-Statement" }, { - "id": "0x5597122c6ab8-Statement", - "statement": "0x5597122c6ac8-NonLabelDoStmt", + "id": "0x55eadb4a4ab8-Statement", + "statement": "0x55eadb4a4ac8-NonLabelDoStmt", "source": "do j = 1, nm" }, { - "id": "0x5597122c6ac8-NonLabelDoStmt", - "LoopControl": "0x5597122c6ac8-LoopControl" + "id": "0x55eadb4a4ac8-NonLabelDoStmt", + "LoopControl": "0x55eadb4a4ac8-LoopControl" }, { - "id": "0x5597122c6ac8-LoopControl", + "id": "0x55eadb4a4ac8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x5597122c6ac8-LoopBounds" + "LoopBounds": "0x55eadb4a4ac8-LoopBounds" }, { - "id": "0x5597122c6ac8-LoopBounds", - "var": "0x5597122c6ac8-Name", - "lower": "0x5597122b8eb0-Expr", - "upper": "0x5597122b8f90-Expr" + "id": "0x55eadb4a4ac8-LoopBounds", + "var": "0x55eadb4a4ac8-Name", + "lower": "0x55eadb496eb0-Expr", + "upper": "0x55eadb496f90-Expr" }, { - "id": "0x5597122c6ac8-Name", + "id": "0x55eadb4a4ac8-Name", "source": "j" }, { - "id": "0x5597122b8eb0-Expr", + "id": "0x55eadb496eb0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122b8ed0-LiteralConstant" + "LiteralConstant": "0x55eadb496ed0-LiteralConstant" }, { - "id": "0x5597122b8ed0-LiteralConstant", + "id": "0x55eadb496ed0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122b8ed0-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb496ed0-IntLiteralConstant" }, { - "id": "0x5597122b8ed0-IntLiteralConstant", + "id": "0x55eadb496ed0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5597122b8f90-Expr", + "id": "0x55eadb496f90-Expr", "variantKey": "Designator", - "Designator": "0x5597122cb250-Designator" + "Designator": "0x55eadb4a9250-Designator" }, { - "id": "0x5597122cb250-Designator", + "id": "0x55eadb4a9250-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122cb260-DataRef" + "DataRef": "0x55eadb4a9260-DataRef" }, { - "id": "0x5597122cb260-DataRef", + "id": "0x55eadb4a9260-DataRef", "variantKey": "Name", - "Name": "0x5597122cb260-Name" + "Name": "0x55eadb4a9260-Name" }, { - "id": "0x5597122cb260-Name", + "id": "0x55eadb4a9260-Name", "source": "nm" }, { - "id": "0x5597122c6aa0-ExecutionPartConstruct" + "id": "0x55eadb4a4aa0-ExecutionPartConstruct" }, { - "id": "0x5597122c6a10-ExecutionPartConstruct", + "id": "0x55eadb4a4a10-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122c6a10-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4a4a10-ExecutableConstruct" }, { - "id": "0x5597122c6a10-ExecutableConstruct", + "id": "0x55eadb4a4a10-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122c6a10-Statement" + "Statement": "0x55eadb4a4a10-Statement" }, { - "id": "0x5597122c6a10-Statement", - "statement": "0x5597122c6a20-ActionStmt", + "id": "0x55eadb4a4a10-Statement", + "statement": "0x55eadb4a4a20-ActionStmt", "source": "c(j, i) =(dble(i - 1) * dble(j + 2))/ nl" }, { - "id": "0x5597122c6a20-ActionStmt", + "id": "0x55eadb4a4a20-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5597122c6880-AssignmentStmt" + "AssignmentStmt": "0x55eadb4a4880-AssignmentStmt" }, { - "id": "0x5597122c6880-AssignmentStmt", - "Variable": "0x5597122c6960-Variable", - "Expr": "0x5597122c6890-Expr" + "id": "0x55eadb4a4880-AssignmentStmt", + "Variable": "0x55eadb4a4960-Variable", + "Expr": "0x55eadb4a4890-Expr" }, { - "id": "0x5597122c6960-Variable", + "id": "0x55eadb4a4960-Variable", "variantKey": "Designator", - "Designator": "0x5597122f1dd0-Designator" + "Designator": "0x55eadb4cfdd0-Designator" }, { - "id": "0x5597122f1dd0-Designator", + "id": "0x55eadb4cfdd0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122f1de0-DataRef" + "DataRef": "0x55eadb4cfde0-DataRef" }, { - "id": "0x5597122f1de0-DataRef", + "id": "0x55eadb4cfde0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x5597122c1680-ArrayElement" + "ArrayElement": "0x55eadb49f680-ArrayElement" }, { - "id": "0x5597122c1680-ArrayElement", - "base": "0x5597122c1680-DataRef", + "id": "0x55eadb49f680-ArrayElement", + "base": "0x55eadb49f680-DataRef", "subscripts": [ - "0x55971238a2c0-SectionSubscript", - "0x55971238a310-SectionSubscript" + "0x55eadb5682c0-SectionSubscript", + "0x55eadb568310-SectionSubscript" ] }, { - "id": "0x5597122c1680-DataRef", + "id": "0x55eadb49f680-DataRef", "variantKey": "Name", - "Name": "0x5597122c1680-Name" + "Name": "0x55eadb49f680-Name" }, { - "id": "0x5597122c1680-Name", + "id": "0x55eadb49f680-Name", "source": "c" }, { - "id": "0x55971238a2c0-SectionSubscript", + "id": "0x55eadb5682c0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122b9570-Expr" + "Expr": "0x55eadb497570-Expr" }, { - "id": "0x5597122b9570-Expr", + "id": "0x55eadb497570-Expr", "variantKey": "Designator", - "Designator": "0x5597122cbe10-Designator" + "Designator": "0x55eadb4a9e10-Designator" }, { - "id": "0x5597122cbe10-Designator", + "id": "0x55eadb4a9e10-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122cbe20-DataRef" + "DataRef": "0x55eadb4a9e20-DataRef" }, { - "id": "0x5597122cbe20-DataRef", + "id": "0x55eadb4a9e20-DataRef", "variantKey": "Name", - "Name": "0x5597122cbe20-Name" + "Name": "0x55eadb4a9e20-Name" }, { - "id": "0x5597122cbe20-Name", + "id": "0x55eadb4a9e20-Name", "source": "j" }, { - "id": "0x55971238a310-SectionSubscript", + "id": "0x55eadb568310-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122b9650-Expr" + "Expr": "0x55eadb497650-Expr" }, { - "id": "0x5597122b9650-Expr", + "id": "0x55eadb497650-Expr", "variantKey": "Designator", - "Designator": "0x5597122c7a30-Designator" + "Designator": "0x55eadb4a5a30-Designator" }, { - "id": "0x5597122c7a30-Designator", + "id": "0x55eadb4a5a30-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122c7a40-DataRef" + "DataRef": "0x55eadb4a5a40-DataRef" }, { - "id": "0x5597122c7a40-DataRef", + "id": "0x55eadb4a5a40-DataRef", "variantKey": "Name", - "Name": "0x5597122c7a40-Name" + "Name": "0x55eadb4a5a40-Name" }, { - "id": "0x5597122c7a40-Name", + "id": "0x55eadb4a5a40-Name", "source": "i" }, { - "id": "0x5597122c6890-Expr", + "id": "0x55eadb4a4890-Expr", "variantKey": "Divide", - "Divide": "0x5597122c68b0-Divide" + "Divide": "0x55eadb4a48b0-Divide" }, { - "id": "0x5597122c68b0-Divide", - "left": "0x5597122baa30-Expr", - "right": "0x5597122ba950-Expr", + "id": "0x55eadb4a48b0-Divide", + "left": "0x55eadb498a30-Expr", + "right": "0x55eadb498950-Expr", "op": "DIVIDE" }, { - "id": "0x5597122baa30-Expr", + "id": "0x55eadb498a30-Expr", "variantKey": "Parentheses", - "Parentheses": "0x5597122baa50-Parentheses" + "Parentheses": "0x55eadb498a50-Parentheses" }, { - "id": "0x5597122baa50-Parentheses", - "Expr": "0x5597122ba520-Expr", + "id": "0x55eadb498a50-Parentheses", + "Expr": "0x55eadb498520-Expr", "op": "PARENTHESES" }, { - "id": "0x5597122ba520-Expr", + "id": "0x55eadb498520-Expr", "variantKey": "Multiply", - "Multiply": "0x5597122ba540-Multiply" + "Multiply": "0x55eadb498540-Multiply" }, { - "id": "0x5597122ba540-Multiply", - "left": "0x5597122ba440-Expr", - "right": "0x5597122ba360-Expr", + "id": "0x55eadb498540-Multiply", + "left": "0x55eadb498440-Expr", + "right": "0x55eadb498360-Expr", "op": "MULTIPLY" }, { - "id": "0x5597122ba440-Expr", + "id": "0x55eadb498440-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x5597122c9510-FunctionReference" + "FunctionReference": "0x55eadb4a7510-FunctionReference" }, { - "id": "0x5597122c9510-FunctionReference", - "Call": "0x5597122c9510-Call" + "id": "0x55eadb4a7510-FunctionReference", + "Call": "0x55eadb4a7510-Call" }, { - "id": "0x5597122c9510-Call", - "ProcedureDesignator": "0x5597122c9528-ProcedureDesignator", + "id": "0x55eadb4a7510-Call", + "ProcedureDesignator": "0x55eadb4a7528-ProcedureDesignator", "ActualArgSpec": [ - "0x5597122c8940-ActualArgSpec" + "0x55eadb4a6940-ActualArgSpec" ] }, { - "id": "0x5597122c9528-ProcedureDesignator", + "id": "0x55eadb4a7528-ProcedureDesignator", "variantKey": "Name", - "Name": "0x5597122c9528-Name" + "Name": "0x55eadb4a7528-Name" }, { - "id": "0x5597122c9528-Name", + "id": "0x55eadb4a7528-Name", "source": "dble" }, { - "id": "0x5597122c8940-ActualArgSpec", - "ActualArg": "0x5597122c8940-ActualArg" + "id": "0x55eadb4a6940-ActualArgSpec", + "ActualArg": "0x55eadb4a6940-ActualArg" }, { - "id": "0x5597122c8940-ActualArg", + "id": "0x55eadb4a6940-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122c8630-Expr" + "Expr": "0x55eadb4a6630-Expr" }, { - "id": "0x5597122c8630-Expr", + "id": "0x55eadb4a6630-Expr", "variantKey": "Subtract", - "Subtract": "0x5597122c8650-Subtract" + "Subtract": "0x55eadb4a6650-Subtract" }, { - "id": "0x5597122c8650-Subtract", - "left": "0x5597122c87f0-Expr", - "right": "0x5597122c8710-Expr", + "id": "0x55eadb4a6650-Subtract", + "left": "0x55eadb4a67f0-Expr", + "right": "0x55eadb4a6710-Expr", "op": "SUBTRACT" }, { - "id": "0x5597122c87f0-Expr", + "id": "0x55eadb4a67f0-Expr", "variantKey": "Designator", - "Designator": "0x5597122c2980-Designator" + "Designator": "0x55eadb4a0980-Designator" }, { - "id": "0x5597122c2980-Designator", + "id": "0x55eadb4a0980-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122c2990-DataRef" + "DataRef": "0x55eadb4a0990-DataRef" }, { - "id": "0x5597122c2990-DataRef", + "id": "0x55eadb4a0990-DataRef", "variantKey": "Name", - "Name": "0x5597122c2990-Name" + "Name": "0x55eadb4a0990-Name" }, { - "id": "0x5597122c2990-Name", + "id": "0x55eadb4a0990-Name", "source": "i" }, { - "id": "0x5597122c8710-Expr", + "id": "0x55eadb4a6710-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122c8730-LiteralConstant" + "LiteralConstant": "0x55eadb4a6730-LiteralConstant" }, { - "id": "0x5597122c8730-LiteralConstant", + "id": "0x55eadb4a6730-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122c8730-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4a6730-IntLiteralConstant" }, { - "id": "0x5597122c8730-IntLiteralConstant", + "id": "0x55eadb4a6730-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5597122ba360-Expr", + "id": "0x55eadb498360-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x5597122ccdb0-FunctionReference" + "FunctionReference": "0x55eadb4aadb0-FunctionReference" }, { - "id": "0x5597122ccdb0-FunctionReference", - "Call": "0x5597122ccdb0-Call" + "id": "0x55eadb4aadb0-FunctionReference", + "Call": "0x55eadb4aadb0-Call" }, { - "id": "0x5597122ccdb0-Call", - "ProcedureDesignator": "0x5597122ccdc8-ProcedureDesignator", + "id": "0x55eadb4aadb0-Call", + "ProcedureDesignator": "0x55eadb4aadc8-ProcedureDesignator", "ActualArgSpec": [ - "0x5597122ba260-ActualArgSpec" + "0x55eadb498260-ActualArgSpec" ] }, { - "id": "0x5597122ccdc8-ProcedureDesignator", + "id": "0x55eadb4aadc8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x5597122ccdc8-Name" + "Name": "0x55eadb4aadc8-Name" }, { - "id": "0x5597122ccdc8-Name", + "id": "0x55eadb4aadc8-Name", "source": "dble" }, { - "id": "0x5597122ba260-ActualArgSpec", - "ActualArg": "0x5597122ba260-ActualArg" + "id": "0x55eadb498260-ActualArgSpec", + "ActualArg": "0x55eadb498260-ActualArg" }, { - "id": "0x5597122ba260-ActualArg", + "id": "0x55eadb498260-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122c8c20-Expr" + "Expr": "0x55eadb4a6c20-Expr" }, { - "id": "0x5597122c8c20-Expr", + "id": "0x55eadb4a6c20-Expr", "variantKey": "Add", - "Add": "0x5597122c8c40-Add" + "Add": "0x55eadb4a6c40-Add" }, { - "id": "0x5597122c8c40-Add", - "left": "0x5597122c8de0-Expr", - "right": "0x5597122c8d00-Expr", + "id": "0x55eadb4a6c40-Add", + "left": "0x55eadb4a6de0-Expr", + "right": "0x55eadb4a6d00-Expr", "op": "ADD" }, { - "id": "0x5597122c8de0-Expr", + "id": "0x55eadb4a6de0-Expr", "variantKey": "Designator", - "Designator": "0x5597122c8b60-Designator" + "Designator": "0x55eadb4a6b60-Designator" }, { - "id": "0x5597122c8b60-Designator", + "id": "0x55eadb4a6b60-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122c8b70-DataRef" + "DataRef": "0x55eadb4a6b70-DataRef" }, { - "id": "0x5597122c8b70-DataRef", + "id": "0x55eadb4a6b70-DataRef", "variantKey": "Name", - "Name": "0x5597122c8b70-Name" + "Name": "0x55eadb4a6b70-Name" }, { - "id": "0x5597122c8b70-Name", + "id": "0x55eadb4a6b70-Name", "source": "j" }, { - "id": "0x5597122c8d00-Expr", + "id": "0x55eadb4a6d00-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122c8d20-LiteralConstant" + "LiteralConstant": "0x55eadb4a6d20-LiteralConstant" }, { - "id": "0x5597122c8d20-LiteralConstant", + "id": "0x55eadb4a6d20-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122c8d20-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4a6d20-IntLiteralConstant" }, { - "id": "0x5597122c8d20-IntLiteralConstant", + "id": "0x55eadb4a6d20-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x5597122ba950-Expr", + "id": "0x55eadb498950-Expr", "variantKey": "Designator", - "Designator": "0x5597122ba880-Designator" + "Designator": "0x55eadb498880-Designator" }, { - "id": "0x5597122ba880-Designator", + "id": "0x55eadb498880-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122ba890-DataRef" + "DataRef": "0x55eadb498890-DataRef" }, { - "id": "0x5597122ba890-DataRef", + "id": "0x55eadb498890-DataRef", "variantKey": "Name", - "Name": "0x5597122ba890-Name" + "Name": "0x55eadb498890-Name" }, { - "id": "0x5597122ba890-Name", + "id": "0x55eadb498890-Name", "source": "nl" }, { - "id": "0x5597122c6a60-Statement", - "statement": "0x5597122c6a70-EndDoStmt", + "id": "0x55eadb4a4a60-Statement", + "statement": "0x55eadb4a4a70-EndDoStmt", "source": "end do" }, { - "id": "0x5597122c6a70-EndDoStmt" + "id": "0x55eadb4a4a70-EndDoStmt" }, { - "id": "0x5597122c6b80-Statement", - "statement": "0x5597122c6b90-EndDoStmt", + "id": "0x55eadb4a4b80-Statement", + "statement": "0x55eadb4a4b90-EndDoStmt", "source": "end do" }, { - "id": "0x5597122c6b90-EndDoStmt" + "id": "0x55eadb4a4b90-EndDoStmt" }, { - "id": "0x5597122babf0-ExecutionPartConstruct", + "id": "0x55eadb498bf0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122babf0-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb498bf0-ExecutableConstruct" }, { - "id": "0x5597122babf0-ExecutableConstruct", + "id": "0x55eadb498bf0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x5597122cf8c0-DoConstruct" + "DoConstruct": "0x55eadb4ad8c0-DoConstruct" }, { - "id": "0x5597122cf8c0-DoConstruct", - "Statement": "0x5597122cf918-Statement", + "id": "0x55eadb4ad8c0-DoConstruct", + "Statement": "0x55eadb4ad918-Statement", "ExecutionPartConstruct": [ - "0x5597122c8f90-ExecutionPartConstruct" + "0x55eadb4a6f90-ExecutionPartConstruct" ], - "Statement": "0x5597122cf8c0-Statement" + "Statement": "0x55eadb4ad8c0-Statement" }, { - "id": "0x5597122cf918-Statement", - "statement": "0x5597122cf928-NonLabelDoStmt", + "id": "0x55eadb4ad918-Statement", + "statement": "0x55eadb4ad928-NonLabelDoStmt", "source": "do i = 1, nm" }, { - "id": "0x5597122cf928-NonLabelDoStmt", - "LoopControl": "0x5597122cf928-LoopControl" + "id": "0x55eadb4ad928-NonLabelDoStmt", + "LoopControl": "0x55eadb4ad928-LoopControl" }, { - "id": "0x5597122cf928-LoopControl", + "id": "0x55eadb4ad928-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x5597122cf928-LoopBounds" + "LoopBounds": "0x55eadb4ad928-LoopBounds" }, { - "id": "0x5597122cf928-LoopBounds", - "var": "0x5597122cf928-Name", - "lower": "0x5597122c6ca0-Expr", - "upper": "0x5597122c6d80-Expr" + "id": "0x55eadb4ad928-LoopBounds", + "var": "0x55eadb4ad928-Name", + "lower": "0x55eadb4a4ca0-Expr", + "upper": "0x55eadb4a4d80-Expr" }, { - "id": "0x5597122cf928-Name", + "id": "0x55eadb4ad928-Name", "source": "i" }, { - "id": "0x5597122c6ca0-Expr", + "id": "0x55eadb4a4ca0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122c6cc0-LiteralConstant" + "LiteralConstant": "0x55eadb4a4cc0-LiteralConstant" }, { - "id": "0x5597122c6cc0-LiteralConstant", + "id": "0x55eadb4a4cc0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122c6cc0-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4a4cc0-IntLiteralConstant" }, { - "id": "0x5597122c6cc0-IntLiteralConstant", + "id": "0x55eadb4a4cc0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5597122c6d80-Expr", + "id": "0x55eadb4a4d80-Expr", "variantKey": "Designator", - "Designator": "0x5597122ba600-Designator" + "Designator": "0x55eadb498600-Designator" }, { - "id": "0x5597122ba600-Designator", + "id": "0x55eadb498600-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122ba610-DataRef" + "DataRef": "0x55eadb498610-DataRef" }, { - "id": "0x5597122ba610-DataRef", + "id": "0x55eadb498610-DataRef", "variantKey": "Name", - "Name": "0x5597122ba610-Name" + "Name": "0x55eadb498610-Name" }, { - "id": "0x5597122ba610-Name", + "id": "0x55eadb498610-Name", "source": "nm" }, { - "id": "0x5597122cf900-ExecutionPartConstruct" + "id": "0x55eadb4ad900-ExecutionPartConstruct" }, { - "id": "0x5597122c8f90-ExecutionPartConstruct", + "id": "0x55eadb4a6f90-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122c8f90-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4a6f90-ExecutableConstruct" }, { - "id": "0x5597122c8f90-ExecutableConstruct", + "id": "0x55eadb4a6f90-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x5597122cf7a0-DoConstruct" + "DoConstruct": "0x55eadb4ad7a0-DoConstruct" }, { - "id": "0x5597122cf7a0-DoConstruct", - "Statement": "0x5597122cf7f8-Statement", + "id": "0x55eadb4ad7a0-DoConstruct", + "Statement": "0x55eadb4ad7f8-Statement", "ExecutionPartConstruct": [ - "0x5597122cf750-ExecutionPartConstruct" + "0x55eadb4ad750-ExecutionPartConstruct" ], - "Statement": "0x5597122cf7a0-Statement" + "Statement": "0x55eadb4ad7a0-Statement" }, { - "id": "0x5597122cf7f8-Statement", - "statement": "0x5597122cf808-NonLabelDoStmt", + "id": "0x55eadb4ad7f8-Statement", + "statement": "0x55eadb4ad808-NonLabelDoStmt", "source": "do j = 1, nl" }, { - "id": "0x5597122cf808-NonLabelDoStmt", - "LoopControl": "0x5597122cf808-LoopControl" + "id": "0x55eadb4ad808-NonLabelDoStmt", + "LoopControl": "0x55eadb4ad808-LoopControl" }, { - "id": "0x5597122cf808-LoopControl", + "id": "0x55eadb4ad808-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x5597122cf808-LoopBounds" + "LoopBounds": "0x55eadb4ad808-LoopBounds" }, { - "id": "0x5597122cf808-LoopBounds", - "var": "0x5597122cf808-Name", - "lower": "0x5597122c6e60-Expr", - "upper": "0x5597122c6f40-Expr" + "id": "0x55eadb4ad808-LoopBounds", + "var": "0x55eadb4ad808-Name", + "lower": "0x55eadb4a4e60-Expr", + "upper": "0x55eadb4a4f40-Expr" }, { - "id": "0x5597122cf808-Name", + "id": "0x55eadb4ad808-Name", "source": "j" }, { - "id": "0x5597122c6e60-Expr", + "id": "0x55eadb4a4e60-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122c6e80-LiteralConstant" + "LiteralConstant": "0x55eadb4a4e80-LiteralConstant" }, { - "id": "0x5597122c6e80-LiteralConstant", + "id": "0x55eadb4a4e80-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122c6e80-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4a4e80-IntLiteralConstant" }, { - "id": "0x5597122c6e80-IntLiteralConstant", + "id": "0x55eadb4a4e80-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5597122c6f40-Expr", + "id": "0x55eadb4a4f40-Expr", "variantKey": "Designator", - "Designator": "0x5597122afa30-Designator" + "Designator": "0x55eadb48da30-Designator" }, { - "id": "0x5597122afa30-Designator", + "id": "0x55eadb48da30-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122afa40-DataRef" + "DataRef": "0x55eadb48da40-DataRef" }, { - "id": "0x5597122afa40-DataRef", + "id": "0x55eadb48da40-DataRef", "variantKey": "Name", - "Name": "0x5597122afa40-Name" + "Name": "0x55eadb48da40-Name" }, { - "id": "0x5597122afa40-Name", + "id": "0x55eadb48da40-Name", "source": "nl" }, { - "id": "0x5597122cf7e0-ExecutionPartConstruct" + "id": "0x55eadb4ad7e0-ExecutionPartConstruct" }, { - "id": "0x5597122cf750-ExecutionPartConstruct", + "id": "0x55eadb4ad750-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122cf750-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4ad750-ExecutableConstruct" }, { - "id": "0x5597122cf750-ExecutableConstruct", + "id": "0x55eadb4ad750-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122cf750-Statement" + "Statement": "0x55eadb4ad750-Statement" }, { - "id": "0x5597122cf750-Statement", - "statement": "0x5597122cf760-ActionStmt", + "id": "0x55eadb4ad750-Statement", + "statement": "0x55eadb4ad760-ActionStmt", "source": "d(j, i) =(dble(i - 1) * dble(j + 1))/ nk" }, { - "id": "0x5597122cf760-ActionStmt", + "id": "0x55eadb4ad760-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5597122cf5c0-AssignmentStmt" + "AssignmentStmt": "0x55eadb4ad5c0-AssignmentStmt" }, { - "id": "0x5597122cf5c0-AssignmentStmt", - "Variable": "0x5597122cf6a0-Variable", - "Expr": "0x5597122cf5d0-Expr" + "id": "0x55eadb4ad5c0-AssignmentStmt", + "Variable": "0x55eadb4ad6a0-Variable", + "Expr": "0x55eadb4ad5d0-Expr" }, { - "id": "0x5597122cf6a0-Variable", + "id": "0x55eadb4ad6a0-Variable", "variantKey": "Designator", - "Designator": "0x5597122c1620-Designator" + "Designator": "0x55eadb49f620-Designator" }, { - "id": "0x5597122c1620-Designator", + "id": "0x55eadb49f620-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122c1630-DataRef" + "DataRef": "0x55eadb49f630-DataRef" }, { - "id": "0x5597122c1630-DataRef", + "id": "0x55eadb49f630-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x5597122e0280-ArrayElement" + "ArrayElement": "0x55eadb4be280-ArrayElement" }, { - "id": "0x5597122e0280-ArrayElement", - "base": "0x5597122e0280-DataRef", + "id": "0x55eadb4be280-ArrayElement", + "base": "0x55eadb4be280-DataRef", "subscripts": [ - "0x55971238a360-SectionSubscript", - "0x5597122f9e20-SectionSubscript" + "0x55eadb568360-SectionSubscript", + "0x55eadb4d7e20-SectionSubscript" ] }, { - "id": "0x5597122e0280-DataRef", + "id": "0x55eadb4be280-DataRef", "variantKey": "Name", - "Name": "0x5597122e0280-Name" + "Name": "0x55eadb4be280-Name" }, { - "id": "0x5597122e0280-Name", + "id": "0x55eadb4be280-Name", "source": "d" }, { - "id": "0x55971238a360-SectionSubscript", + "id": "0x55eadb568360-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122b9070-Expr" + "Expr": "0x55eadb497070-Expr" }, { - "id": "0x5597122b9070-Expr", + "id": "0x55eadb497070-Expr", "variantKey": "Designator", - "Designator": "0x5597122bacc0-Designator" + "Designator": "0x55eadb498cc0-Designator" }, { - "id": "0x5597122bacc0-Designator", + "id": "0x55eadb498cc0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122bacd0-DataRef" + "DataRef": "0x55eadb498cd0-DataRef" }, { - "id": "0x5597122bacd0-DataRef", + "id": "0x55eadb498cd0-DataRef", "variantKey": "Name", - "Name": "0x5597122bacd0-Name" + "Name": "0x55eadb498cd0-Name" }, { - "id": "0x5597122bacd0-Name", + "id": "0x55eadb498cd0-Name", "source": "j" }, { - "id": "0x5597122f9e20-SectionSubscript", + "id": "0x55eadb4d7e20-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122b9150-Expr" + "Expr": "0x55eadb497150-Expr" }, { - "id": "0x5597122b9150-Expr", + "id": "0x55eadb497150-Expr", "variantKey": "Designator", - "Designator": "0x5597122cda00-Designator" + "Designator": "0x55eadb4aba00-Designator" }, { - "id": "0x5597122cda00-Designator", + "id": "0x55eadb4aba00-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122cda10-DataRef" + "DataRef": "0x55eadb4aba10-DataRef" }, { - "id": "0x5597122cda10-DataRef", + "id": "0x55eadb4aba10-DataRef", "variantKey": "Name", - "Name": "0x5597122cda10-Name" + "Name": "0x55eadb4aba10-Name" }, { - "id": "0x5597122cda10-Name", + "id": "0x55eadb4aba10-Name", "source": "i" }, { - "id": "0x5597122cf5d0-Expr", + "id": "0x55eadb4ad5d0-Expr", "variantKey": "Divide", - "Divide": "0x5597122cf5f0-Divide" + "Divide": "0x55eadb4ad5f0-Divide" }, { - "id": "0x5597122cf5f0-Divide", - "left": "0x5597122cf470-Expr", - "right": "0x5597122cf390-Expr", + "id": "0x55eadb4ad5f0-Divide", + "left": "0x55eadb4ad470-Expr", + "right": "0x55eadb4ad390-Expr", "op": "DIVIDE" }, { - "id": "0x5597122cf470-Expr", + "id": "0x55eadb4ad470-Expr", "variantKey": "Parentheses", - "Parentheses": "0x5597122cf490-Parentheses" + "Parentheses": "0x55eadb4ad490-Parentheses" }, { - "id": "0x5597122cf490-Parentheses", - "Expr": "0x5597122cf120-Expr", + "id": "0x55eadb4ad490-Parentheses", + "Expr": "0x55eadb4ad120-Expr", "op": "PARENTHESES" }, { - "id": "0x5597122cf120-Expr", + "id": "0x55eadb4ad120-Expr", "variantKey": "Multiply", - "Multiply": "0x5597122cf140-Multiply" + "Multiply": "0x55eadb4ad140-Multiply" }, { - "id": "0x5597122cf140-Multiply", - "left": "0x5597122cf040-Expr", - "right": "0x5597122cef60-Expr", + "id": "0x55eadb4ad140-Multiply", + "left": "0x55eadb4ad040-Expr", + "right": "0x55eadb4acf60-Expr", "op": "MULTIPLY" }, { - "id": "0x5597122cf040-Expr", + "id": "0x55eadb4ad040-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x5597122c2300-FunctionReference" + "FunctionReference": "0x55eadb4a0300-FunctionReference" }, { - "id": "0x5597122c2300-FunctionReference", - "Call": "0x5597122c2300-Call" + "id": "0x55eadb4a0300-FunctionReference", + "Call": "0x55eadb4a0300-Call" }, { - "id": "0x5597122c2300-Call", - "ProcedureDesignator": "0x5597122c2318-ProcedureDesignator", + "id": "0x55eadb4a0300-Call", + "ProcedureDesignator": "0x55eadb4a0318-ProcedureDesignator", "ActualArgSpec": [ - "0x5597122cea50-ActualArgSpec" + "0x55eadb4aca50-ActualArgSpec" ] }, { - "id": "0x5597122c2318-ProcedureDesignator", + "id": "0x55eadb4a0318-ProcedureDesignator", "variantKey": "Name", - "Name": "0x5597122c2318-Name" + "Name": "0x55eadb4a0318-Name" }, { - "id": "0x5597122c2318-Name", + "id": "0x55eadb4a0318-Name", "source": "dble" }, { - "id": "0x5597122cea50-ActualArgSpec", - "ActualArg": "0x5597122cea50-ActualArg" + "id": "0x55eadb4aca50-ActualArgSpec", + "ActualArg": "0x55eadb4aca50-ActualArg" }, { - "id": "0x5597122cea50-ActualArg", + "id": "0x55eadb4aca50-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122c7400-Expr" + "Expr": "0x55eadb4a5400-Expr" }, { - "id": "0x5597122c7400-Expr", + "id": "0x55eadb4a5400-Expr", "variantKey": "Subtract", - "Subtract": "0x5597122c7420-Subtract" + "Subtract": "0x55eadb4a5420-Subtract" }, { - "id": "0x5597122c7420-Subtract", - "left": "0x5597122c75c0-Expr", - "right": "0x5597122c74e0-Expr", + "id": "0x55eadb4a5420-Subtract", + "left": "0x55eadb4a55c0-Expr", + "right": "0x55eadb4a54e0-Expr", "op": "SUBTRACT" }, { - "id": "0x5597122c75c0-Expr", + "id": "0x55eadb4a55c0-Expr", "variantKey": "Designator", - "Designator": "0x5597122ba660-Designator" + "Designator": "0x55eadb498660-Designator" }, { - "id": "0x5597122ba660-Designator", + "id": "0x55eadb498660-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122ba670-DataRef" + "DataRef": "0x55eadb498670-DataRef" }, { - "id": "0x5597122ba670-DataRef", + "id": "0x55eadb498670-DataRef", "variantKey": "Name", - "Name": "0x5597122ba670-Name" + "Name": "0x55eadb498670-Name" }, { - "id": "0x5597122ba670-Name", + "id": "0x55eadb498670-Name", "source": "i" }, { - "id": "0x5597122c74e0-Expr", + "id": "0x55eadb4a54e0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122c7500-LiteralConstant" + "LiteralConstant": "0x55eadb4a5500-LiteralConstant" }, { - "id": "0x5597122c7500-LiteralConstant", + "id": "0x55eadb4a5500-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122c7500-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4a5500-IntLiteralConstant" }, { - "id": "0x5597122c7500-IntLiteralConstant", + "id": "0x55eadb4a5500-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5597122cef60-Expr", + "id": "0x55eadb4acf60-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x5597122b5d00-FunctionReference" + "FunctionReference": "0x55eadb493d00-FunctionReference" }, { - "id": "0x5597122b5d00-FunctionReference", - "Call": "0x5597122b5d00-Call" + "id": "0x55eadb493d00-FunctionReference", + "Call": "0x55eadb493d00-Call" }, { - "id": "0x5597122b5d00-Call", - "ProcedureDesignator": "0x5597122b5d18-ProcedureDesignator", + "id": "0x55eadb493d00-Call", + "ProcedureDesignator": "0x55eadb493d18-ProcedureDesignator", "ActualArgSpec": [ - "0x5597122cee60-ActualArgSpec" + "0x55eadb4ace60-ActualArgSpec" ] }, { - "id": "0x5597122b5d18-ProcedureDesignator", + "id": "0x55eadb493d18-ProcedureDesignator", "variantKey": "Name", - "Name": "0x5597122b5d18-Name" + "Name": "0x55eadb493d18-Name" }, { - "id": "0x5597122b5d18-Name", + "id": "0x55eadb493d18-Name", "source": "dble" }, { - "id": "0x5597122cee60-ActualArgSpec", - "ActualArg": "0x5597122cee60-ActualArg" + "id": "0x55eadb4ace60-ActualArgSpec", + "ActualArg": "0x55eadb4ace60-ActualArg" }, { - "id": "0x5597122cee60-ActualArg", + "id": "0x55eadb4ace60-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122ceb50-Expr" + "Expr": "0x55eadb4acb50-Expr" }, { - "id": "0x5597122ceb50-Expr", + "id": "0x55eadb4acb50-Expr", "variantKey": "Add", - "Add": "0x5597122ceb70-Add" + "Add": "0x55eadb4acb70-Add" }, { - "id": "0x5597122ceb70-Add", - "left": "0x5597122ced10-Expr", - "right": "0x5597122cec30-Expr", + "id": "0x55eadb4acb70-Add", + "left": "0x55eadb4acd10-Expr", + "right": "0x55eadb4acc30-Expr", "op": "ADD" }, { - "id": "0x5597122ced10-Expr", + "id": "0x55eadb4acd10-Expr", "variantKey": "Designator", - "Designator": "0x5597122bab80-Designator" + "Designator": "0x55eadb498b80-Designator" }, { - "id": "0x5597122bab80-Designator", + "id": "0x55eadb498b80-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122bab90-DataRef" + "DataRef": "0x55eadb498b90-DataRef" }, { - "id": "0x5597122bab90-DataRef", + "id": "0x55eadb498b90-DataRef", "variantKey": "Name", - "Name": "0x5597122bab90-Name" + "Name": "0x55eadb498b90-Name" }, { - "id": "0x5597122bab90-Name", + "id": "0x55eadb498b90-Name", "source": "j" }, { - "id": "0x5597122cec30-Expr", + "id": "0x55eadb4acc30-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122cec50-LiteralConstant" + "LiteralConstant": "0x55eadb4acc50-LiteralConstant" }, { - "id": "0x5597122cec50-LiteralConstant", + "id": "0x55eadb4acc50-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122cec50-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4acc50-IntLiteralConstant" }, { - "id": "0x5597122cec50-IntLiteralConstant", + "id": "0x55eadb4acc50-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5597122cf390-Expr", + "id": "0x55eadb4ad390-Expr", "variantKey": "Designator", - "Designator": "0x5597122cf2c0-Designator" + "Designator": "0x55eadb4ad2c0-Designator" }, { - "id": "0x5597122cf2c0-Designator", + "id": "0x55eadb4ad2c0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122cf2d0-DataRef" + "DataRef": "0x55eadb4ad2d0-DataRef" }, { - "id": "0x5597122cf2d0-DataRef", + "id": "0x55eadb4ad2d0-DataRef", "variantKey": "Name", - "Name": "0x5597122cf2d0-Name" + "Name": "0x55eadb4ad2d0-Name" }, { - "id": "0x5597122cf2d0-Name", + "id": "0x55eadb4ad2d0-Name", "source": "nk" }, { - "id": "0x5597122cf7a0-Statement", - "statement": "0x5597122cf7b0-EndDoStmt", + "id": "0x55eadb4ad7a0-Statement", + "statement": "0x55eadb4ad7b0-EndDoStmt", "source": "end do" }, { - "id": "0x5597122cf7b0-EndDoStmt" + "id": "0x55eadb4ad7b0-EndDoStmt" }, { - "id": "0x5597122cf8c0-Statement", - "statement": "0x5597122cf8d0-EndDoStmt", + "id": "0x55eadb4ad8c0-Statement", + "statement": "0x55eadb4ad8d0-EndDoStmt", "source": "end do" }, { - "id": "0x5597122cf8d0-EndDoStmt" + "id": "0x55eadb4ad8d0-EndDoStmt" }, { - "id": "0x5597122d0b50-Statement", - "statement": "0x5597122d0b60-EndSubroutineStmt", + "id": "0x55eadb4aeb50-Statement", + "statement": "0x55eadb4aeb60-EndSubroutineStmt", "source": "end subroutine" }, { - "id": "0x5597122d0b60-EndSubroutineStmt" + "id": "0x55eadb4aeb60-EndSubroutineStmt" }, { - "id": "0x5597122bc300-InternalSubprogram", + "id": "0x55eadb49a300-InternalSubprogram", "variantKey": "SubroutineSubprogram", - "SubroutineSubprogram": "0x5597122d6660-SubroutineSubprogram" + "SubroutineSubprogram": "0x55eadb4b4660-SubroutineSubprogram" }, { - "id": "0x5597122d6660-SubroutineSubprogram", - "Statement": "0x5597122d67a8-Statement", - "SpecificationPart": "0x5597122d6700-SpecificationPart", - "ExecutionPart": "0x5597122d66e8-ExecutionPart", - "Statement": "0x5597122d6660-Statement" + "id": "0x55eadb4b4660-SubroutineSubprogram", + "Statement": "0x55eadb4b47a8-Statement", + "SpecificationPart": "0x55eadb4b4700-SpecificationPart", + "ExecutionPart": "0x55eadb4b46e8-ExecutionPart", + "Statement": "0x55eadb4b4660-Statement" }, { - "id": "0x5597122d67a8-Statement", - "statement": "0x5597122d67b8-SubroutineStmt", + "id": "0x55eadb4b47a8-Statement", + "statement": "0x55eadb4b47b8-SubroutineStmt", "source": "subroutine print_array(ni, nl, g)" }, { - "id": "0x5597122d67b8-SubroutineStmt", - "Name": "0x5597122d67f0-Name", + "id": "0x55eadb4b47b8-SubroutineStmt", + "Name": "0x55eadb4b47f0-Name", "DummyArg": [ - "0x5597122b8920-DummyArg", - "0x5597122b8880-DummyArg", - "0x5597122b88c0-DummyArg" + "0x55eadb496920-DummyArg", + "0x55eadb496880-DummyArg", + "0x55eadb4968c0-DummyArg" ] }, { - "id": "0x5597122d67f0-Name", + "id": "0x55eadb4b47f0-Name", "source": "print_array" }, { - "id": "0x5597122b8920-DummyArg", + "id": "0x55eadb496920-DummyArg", "variantKey": "Name", - "Name": "0x5597122b8920-Name" + "Name": "0x55eadb496920-Name" }, { - "id": "0x5597122b8920-Name", + "id": "0x55eadb496920-Name", "source": "ni" }, { - "id": "0x5597122b8880-DummyArg", + "id": "0x55eadb496880-DummyArg", "variantKey": "Name", - "Name": "0x5597122b8880-Name" + "Name": "0x55eadb496880-Name" }, { - "id": "0x5597122b8880-Name", + "id": "0x55eadb496880-Name", "source": "nl" }, { - "id": "0x5597122b88c0-DummyArg", + "id": "0x55eadb4968c0-DummyArg", "variantKey": "Name", - "Name": "0x5597122b88c0-Name" + "Name": "0x55eadb4968c0-Name" }, { - "id": "0x5597122b88c0-Name", + "id": "0x55eadb4968c0-Name", "source": "g" }, { - "id": "0x5597122d6700-SpecificationPart", - "ImplicitPart": "0x5597122d6718-ImplicitPart", + "id": "0x55eadb4b4700-SpecificationPart", + "ImplicitPart": "0x55eadb4b4718-ImplicitPart", "DeclarationConstruct": [ - "0x5597122cc7b0-DeclarationConstruct", - "0x5597122b7a80-DeclarationConstruct", - "0x5597122c6260-DeclarationConstruct" + "0x55eadb4aa7b0-DeclarationConstruct", + "0x55eadb495a80-DeclarationConstruct", + "0x55eadb4a4260-DeclarationConstruct" ] }, { - "id": "0x5597122d6718-ImplicitPart" + "id": "0x55eadb4b4718-ImplicitPart" }, { - "id": "0x5597122cc7b0-DeclarationConstruct", + "id": "0x55eadb4aa7b0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5597122cc7b0-SpecificationConstruct" + "SpecificationConstruct": "0x55eadb4aa7b0-SpecificationConstruct" }, { - "id": "0x5597122cc7b0-SpecificationConstruct", + "id": "0x55eadb4aa7b0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5597122cc7b0-Statement" + "Statement": "0x55eadb4aa7b0-Statement" }, { - "id": "0x5597122cc7b0-Statement", - "statement": "0x5597122af7f0-TypeDeclarationStmt", + "id": "0x55eadb4aa7b0-Statement", + "statement": "0x55eadb48d7f0-TypeDeclarationStmt", "source": "double precision, dimension(nl, ni) :: g" }, { - "id": "0x5597122af7f0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5597122af820-DeclarationTypeSpec", + "id": "0x55eadb48d7f0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb48d820-DeclarationTypeSpec", "AttrSpec": [ - "0x5597122b4f70-AttrSpec" + "0x55eadb492f70-AttrSpec" ], "EntityDecl": [ - "0x5597122d1850-EntityDecl" + "0x55eadb4af850-EntityDecl" ] }, { - "id": "0x5597122af820-DeclarationTypeSpec", + "id": "0x55eadb48d820-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5597122af820-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55eadb48d820-IntrinsicTypeSpec" }, { - "id": "0x5597122af820-IntrinsicTypeSpec", + "id": "0x55eadb48d820-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x5597122af820-DoublePrecision" + "DoublePrecision": "0x55eadb48d820-DoublePrecision" }, { - "id": "0x5597122af820-DoublePrecision" + "id": "0x55eadb48d820-DoublePrecision" }, { - "id": "0x5597122b4f70-AttrSpec", + "id": "0x55eadb492f70-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x5597122b4f70-ArraySpec" + "ArraySpec": "0x55eadb492f70-ArraySpec" }, { - "id": "0x5597122b4f70-ArraySpec", + "id": "0x55eadb492f70-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x5597122bac50-ExplicitShapeSpec", - "0x5597122c6810-ExplicitShapeSpec" + "0x55eadb498c50-ExplicitShapeSpec", + "0x55eadb4a4810-ExplicitShapeSpec" ] }, { - "id": "0x5597122bac50-ExplicitShapeSpec", - "upper_bound": "0x5597122bac50-SpecificationExpr" + "id": "0x55eadb498c50-ExplicitShapeSpec", + "upper_bound": "0x55eadb498c50-SpecificationExpr" }, { - "id": "0x5597122bac50-SpecificationExpr", - "Expr": "0x5597122d1680-Expr" + "id": "0x55eadb498c50-SpecificationExpr", + "Expr": "0x55eadb4af680-Expr" }, { - "id": "0x5597122d1680-Expr", + "id": "0x55eadb4af680-Expr", "variantKey": "Designator", - "Designator": "0x5597122cf200-Designator" + "Designator": "0x55eadb4ad200-Designator" }, { - "id": "0x5597122cf200-Designator", + "id": "0x55eadb4ad200-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122cf210-DataRef" + "DataRef": "0x55eadb4ad210-DataRef" }, { - "id": "0x5597122cf210-DataRef", + "id": "0x55eadb4ad210-DataRef", "variantKey": "Name", - "Name": "0x5597122cf210-Name" + "Name": "0x55eadb4ad210-Name" }, { - "id": "0x5597122cf210-Name", + "id": "0x55eadb4ad210-Name", "source": "nl" }, { - "id": "0x5597122c6810-ExplicitShapeSpec", - "upper_bound": "0x5597122c6810-SpecificationExpr" + "id": "0x55eadb4a4810-ExplicitShapeSpec", + "upper_bound": "0x55eadb4a4810-SpecificationExpr" }, { - "id": "0x5597122c6810-SpecificationExpr", - "Expr": "0x5597122d1760-Expr" + "id": "0x55eadb4a4810-SpecificationExpr", + "Expr": "0x55eadb4af760-Expr" }, { - "id": "0x5597122d1760-Expr", + "id": "0x55eadb4af760-Expr", "variantKey": "Designator", - "Designator": "0x5597122c8ec0-Designator" + "Designator": "0x55eadb4a6ec0-Designator" }, { - "id": "0x5597122c8ec0-Designator", + "id": "0x55eadb4a6ec0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122c8ed0-DataRef" + "DataRef": "0x55eadb4a6ed0-DataRef" }, { - "id": "0x5597122c8ed0-DataRef", + "id": "0x55eadb4a6ed0-DataRef", "variantKey": "Name", - "Name": "0x5597122c8ed0-Name" + "Name": "0x55eadb4a6ed0-Name" }, { - "id": "0x5597122c8ed0-Name", + "id": "0x55eadb4a6ed0-Name", "source": "ni" }, { - "id": "0x5597122d1850-EntityDecl", - "Name": "0x5597122d1908-Name" + "id": "0x55eadb4af850-EntityDecl", + "Name": "0x55eadb4af908-Name" }, { - "id": "0x5597122d1908-Name", + "id": "0x55eadb4af908-Name", "source": "g" }, { - "id": "0x5597122b7a80-DeclarationConstruct", + "id": "0x55eadb495a80-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5597122b7a80-SpecificationConstruct" + "SpecificationConstruct": "0x55eadb495a80-SpecificationConstruct" }, { - "id": "0x5597122b7a80-SpecificationConstruct", + "id": "0x55eadb495a80-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5597122b7a80-Statement" + "Statement": "0x55eadb495a80-Statement" }, { - "id": "0x5597122b7a80-Statement", - "statement": "0x5597122cd300-TypeDeclarationStmt", + "id": "0x55eadb495a80-Statement", + "statement": "0x55eadb4ab300-TypeDeclarationStmt", "source": "integer :: ni, nl" }, { - "id": "0x5597122cd300-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5597122cd330-DeclarationTypeSpec", + "id": "0x55eadb4ab300-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4ab330-DeclarationTypeSpec", "EntityDecl": [ - "0x5597122cfae0-EntityDecl", - "0x5597122cf9f0-EntityDecl" + "0x55eadb4adae0-EntityDecl", + "0x55eadb4ad9f0-EntityDecl" ] }, { - "id": "0x5597122cd330-DeclarationTypeSpec", + "id": "0x55eadb4ab330-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5597122cd330-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55eadb4ab330-IntrinsicTypeSpec" }, { - "id": "0x5597122cd330-IntrinsicTypeSpec", + "id": "0x55eadb4ab330-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x5597122cd330-IntegerTypeSpec" + "IntegerTypeSpec": "0x55eadb4ab330-IntegerTypeSpec" }, { - "id": "0x5597122cd330-IntegerTypeSpec" + "id": "0x55eadb4ab330-IntegerTypeSpec" }, { - "id": "0x5597122cfae0-EntityDecl", - "Name": "0x5597122cfb98-Name" + "id": "0x55eadb4adae0-EntityDecl", + "Name": "0x55eadb4adb98-Name" }, { - "id": "0x5597122cfb98-Name", + "id": "0x55eadb4adb98-Name", "source": "ni" }, { - "id": "0x5597122cf9f0-EntityDecl", - "Name": "0x5597122cfaa8-Name" + "id": "0x55eadb4ad9f0-EntityDecl", + "Name": "0x55eadb4adaa8-Name" }, { - "id": "0x5597122cfaa8-Name", + "id": "0x55eadb4adaa8-Name", "source": "nl" }, { - "id": "0x5597122c6260-DeclarationConstruct", + "id": "0x55eadb4a4260-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5597122c6260-SpecificationConstruct" + "SpecificationConstruct": "0x55eadb4a4260-SpecificationConstruct" }, { - "id": "0x5597122c6260-SpecificationConstruct", + "id": "0x55eadb4a4260-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5597122c6260-Statement" + "Statement": "0x55eadb4a4260-Statement" }, { - "id": "0x5597122c6260-Statement", - "statement": "0x5597122c1e00-TypeDeclarationStmt", + "id": "0x55eadb4a4260-Statement", + "statement": "0x55eadb49fe00-TypeDeclarationStmt", "source": "integer :: i, j" }, { - "id": "0x5597122c1e00-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5597122c1e30-DeclarationTypeSpec", + "id": "0x55eadb49fe00-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb49fe30-DeclarationTypeSpec", "EntityDecl": [ - "0x5597122cfcc0-EntityDecl", - "0x5597122cfbd0-EntityDecl" + "0x55eadb4adcc0-EntityDecl", + "0x55eadb4adbd0-EntityDecl" ] }, { - "id": "0x5597122c1e30-DeclarationTypeSpec", + "id": "0x55eadb49fe30-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5597122c1e30-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55eadb49fe30-IntrinsicTypeSpec" }, { - "id": "0x5597122c1e30-IntrinsicTypeSpec", + "id": "0x55eadb49fe30-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x5597122c1e30-IntegerTypeSpec" + "IntegerTypeSpec": "0x55eadb49fe30-IntegerTypeSpec" }, { - "id": "0x5597122c1e30-IntegerTypeSpec" + "id": "0x55eadb49fe30-IntegerTypeSpec" }, { - "id": "0x5597122cfcc0-EntityDecl", - "Name": "0x5597122cfd78-Name" + "id": "0x55eadb4adcc0-EntityDecl", + "Name": "0x55eadb4add78-Name" }, { - "id": "0x5597122cfd78-Name", + "id": "0x55eadb4add78-Name", "source": "i" }, { - "id": "0x5597122cfbd0-EntityDecl", - "Name": "0x5597122cfc88-Name" + "id": "0x55eadb4adbd0-EntityDecl", + "Name": "0x55eadb4adc88-Name" }, { - "id": "0x5597122cfc88-Name", + "id": "0x55eadb4adc88-Name", "source": "j" }, { - "id": "0x5597122d66e8-ExecutionPart", + "id": "0x55eadb4b46e8-ExecutionPart", "ExecutionPartConstruct": [ - "0x5597122cba90-ExecutionPartConstruct", - "0x5597122c76b0-ExecutionPartConstruct" + "0x55eadb4a9a90-ExecutionPartConstruct", + "0x55eadb4a56b0-ExecutionPartConstruct" ] }, { - "id": "0x5597122d66e8-ExecutionPartConstruct" + "id": "0x55eadb4b46e8-ExecutionPartConstruct" }, { - "id": "0x5597122cba90-ExecutionPartConstruct", + "id": "0x55eadb4a9a90-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122cba90-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4a9a90-ExecutableConstruct" }, { - "id": "0x5597122cba90-ExecutableConstruct", + "id": "0x55eadb4a9a90-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x5597122d51a0-DoConstruct" + "DoConstruct": "0x55eadb4b31a0-DoConstruct" }, { - "id": "0x5597122d51a0-DoConstruct", - "Statement": "0x5597122d51f8-Statement", + "id": "0x55eadb4b31a0-DoConstruct", + "Statement": "0x55eadb4b31f8-Statement", "ExecutionPartConstruct": [ - "0x5597122c88e0-ExecutionPartConstruct" + "0x55eadb4a68e0-ExecutionPartConstruct" ], - "Statement": "0x5597122d51a0-Statement" + "Statement": "0x55eadb4b31a0-Statement" }, { - "id": "0x5597122d51f8-Statement", - "statement": "0x5597122d5208-NonLabelDoStmt", + "id": "0x55eadb4b31f8-Statement", + "statement": "0x55eadb4b3208-NonLabelDoStmt", "source": "do i = 1, ni" }, { - "id": "0x5597122d5208-NonLabelDoStmt", - "LoopControl": "0x5597122d5208-LoopControl" + "id": "0x55eadb4b3208-NonLabelDoStmt", + "LoopControl": "0x55eadb4b3208-LoopControl" }, { - "id": "0x5597122d5208-LoopControl", + "id": "0x55eadb4b3208-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x5597122d5208-LoopBounds" + "LoopBounds": "0x55eadb4b3208-LoopBounds" }, { - "id": "0x5597122d5208-LoopBounds", - "var": "0x5597122d5208-Name", - "lower": "0x5597122cfda0-Expr", - "upper": "0x5597122cfe80-Expr" + "id": "0x55eadb4b3208-LoopBounds", + "var": "0x55eadb4b3208-Name", + "lower": "0x55eadb4adda0-Expr", + "upper": "0x55eadb4ade80-Expr" }, { - "id": "0x5597122d5208-Name", + "id": "0x55eadb4b3208-Name", "source": "i" }, { - "id": "0x5597122cfda0-Expr", + "id": "0x55eadb4adda0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122cfdc0-LiteralConstant" + "LiteralConstant": "0x55eadb4addc0-LiteralConstant" }, { - "id": "0x5597122cfdc0-LiteralConstant", + "id": "0x55eadb4addc0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122cfdc0-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4addc0-IntLiteralConstant" }, { - "id": "0x5597122cfdc0-IntLiteralConstant", + "id": "0x55eadb4addc0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5597122cfe80-Expr", + "id": "0x55eadb4ade80-Expr", "variantKey": "Designator", - "Designator": "0x5597122cca00-Designator" + "Designator": "0x55eadb4aaa00-Designator" }, { - "id": "0x5597122cca00-Designator", + "id": "0x55eadb4aaa00-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122cca10-DataRef" + "DataRef": "0x55eadb4aaa10-DataRef" }, { - "id": "0x5597122cca10-DataRef", + "id": "0x55eadb4aaa10-DataRef", "variantKey": "Name", - "Name": "0x5597122cca10-Name" + "Name": "0x55eadb4aaa10-Name" }, { - "id": "0x5597122cca10-Name", + "id": "0x55eadb4aaa10-Name", "source": "ni" }, { - "id": "0x5597122d51e0-ExecutionPartConstruct" + "id": "0x55eadb4b31e0-ExecutionPartConstruct" }, { - "id": "0x5597122c88e0-ExecutionPartConstruct", + "id": "0x55eadb4a68e0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122c88e0-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4a68e0-ExecutableConstruct" }, { - "id": "0x5597122c88e0-ExecutableConstruct", + "id": "0x55eadb4a68e0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x5597122d5080-DoConstruct" + "DoConstruct": "0x55eadb4b3080-DoConstruct" }, { - "id": "0x5597122d5080-DoConstruct", - "Statement": "0x5597122d50d8-Statement", + "id": "0x55eadb4b3080-DoConstruct", + "Statement": "0x55eadb4b30d8-Statement", "ExecutionPartConstruct": [ - "0x5597122d1e10-ExecutionPartConstruct", - "0x5597122cc120-ExecutionPartConstruct" + "0x55eadb4afe10-ExecutionPartConstruct", + "0x55eadb4aa120-ExecutionPartConstruct" ], - "Statement": "0x5597122d5080-Statement" + "Statement": "0x55eadb4b3080-Statement" }, { - "id": "0x5597122d50d8-Statement", - "statement": "0x5597122d50e8-NonLabelDoStmt", + "id": "0x55eadb4b30d8-Statement", + "statement": "0x55eadb4b30e8-NonLabelDoStmt", "source": "do j = 1, nl" }, { - "id": "0x5597122d50e8-NonLabelDoStmt", - "LoopControl": "0x5597122d50e8-LoopControl" + "id": "0x55eadb4b30e8-NonLabelDoStmt", + "LoopControl": "0x55eadb4b30e8-LoopControl" }, { - "id": "0x5597122d50e8-LoopControl", + "id": "0x55eadb4b30e8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x5597122d50e8-LoopBounds" + "LoopBounds": "0x55eadb4b30e8-LoopBounds" }, { - "id": "0x5597122d50e8-LoopBounds", - "var": "0x5597122d50e8-Name", - "lower": "0x5597122cff60-Expr", - "upper": "0x5597122d0040-Expr" + "id": "0x55eadb4b30e8-LoopBounds", + "var": "0x55eadb4b30e8-Name", + "lower": "0x55eadb4adf60-Expr", + "upper": "0x55eadb4ae040-Expr" }, { - "id": "0x5597122d50e8-Name", + "id": "0x55eadb4b30e8-Name", "source": "j" }, { - "id": "0x5597122cff60-Expr", + "id": "0x55eadb4adf60-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122cff80-LiteralConstant" + "LiteralConstant": "0x55eadb4adf80-LiteralConstant" }, { - "id": "0x5597122cff80-LiteralConstant", + "id": "0x55eadb4adf80-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122cff80-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4adf80-IntLiteralConstant" }, { - "id": "0x5597122cff80-IntLiteralConstant", + "id": "0x55eadb4adf80-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5597122d0040-Expr", + "id": "0x55eadb4ae040-Expr", "variantKey": "Designator", - "Designator": "0x5597122c8a40-Designator" + "Designator": "0x55eadb4a6a40-Designator" }, { - "id": "0x5597122c8a40-Designator", + "id": "0x55eadb4a6a40-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122c8a50-DataRef" + "DataRef": "0x55eadb4a6a50-DataRef" }, { - "id": "0x5597122c8a50-DataRef", + "id": "0x55eadb4a6a50-DataRef", "variantKey": "Name", - "Name": "0x5597122c8a50-Name" + "Name": "0x55eadb4a6a50-Name" }, { - "id": "0x5597122c8a50-Name", + "id": "0x55eadb4a6a50-Name", "source": "nl" }, { - "id": "0x5597122d50c0-ExecutionPartConstruct" + "id": "0x55eadb4b30c0-ExecutionPartConstruct" }, { - "id": "0x5597122d1e10-ExecutionPartConstruct", + "id": "0x55eadb4afe10-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122d1e10-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4afe10-ExecutableConstruct" }, { - "id": "0x5597122d1e10-ExecutableConstruct", + "id": "0x55eadb4afe10-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122d1e10-Statement" + "Statement": "0x55eadb4afe10-Statement" }, { - "id": "0x5597122d1e10-Statement", - "statement": "0x5597122d1e20-ActionStmt", + "id": "0x55eadb4afe10-Statement", + "statement": "0x55eadb4afe20-ActionStmt", "source": "write(0, \"(f0.2,1x)\", advance = 'no') g(j, i)" }, { - "id": "0x5597122d1e20-ActionStmt", + "id": "0x55eadb4afe20-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x5597122d20e0-WriteStmt" + "WriteStmt": "0x55eadb4b00e0-WriteStmt" }, { - "id": "0x5597122d20e0-WriteStmt", - "iounit": "0x5597122d20e0-IoUnit", - "format": "0x5597122d2110-Format", + "id": "0x55eadb4b00e0-WriteStmt", + "iounit": "0x55eadb4b00e0-IoUnit", + "format": "0x55eadb4b0110-Format", "controls": [ - "0x5597122d0700-IoControlSpec" + "0x55eadb4ae700-IoControlSpec" ], "items": [ - "0x5597122d2000-OutputItem" + "0x55eadb4b0000-OutputItem" ] }, { - "id": "0x5597122d20e0-IoUnit", + "id": "0x55eadb4b00e0-IoUnit", "variantKey": "Expr", - "Expr": "0x5597122d0120-Expr" + "Expr": "0x55eadb4ae120-Expr" }, { - "id": "0x5597122d0120-Expr", + "id": "0x55eadb4ae120-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122d0140-LiteralConstant" + "LiteralConstant": "0x55eadb4ae140-LiteralConstant" }, { - "id": "0x5597122d0140-LiteralConstant", + "id": "0x55eadb4ae140-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122d0140-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4ae140-IntLiteralConstant" }, { - "id": "0x5597122d0140-IntLiteralConstant", + "id": "0x55eadb4ae140-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x5597122d2110-Format", + "id": "0x55eadb4b0110-Format", "variantKey": "Expr", - "Expr": "0x5597122d2110-Expr" + "Expr": "0x55eadb4b0110-Expr" }, { - "id": "0x5597122d2110-Expr", + "id": "0x55eadb4b0110-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122d2130-LiteralConstant" + "LiteralConstant": "0x55eadb4b0130-LiteralConstant" }, { - "id": "0x5597122d2130-LiteralConstant", + "id": "0x55eadb4b0130-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x5597122d2130-CharLiteralConstant" + "CharLiteralConstant": "0x55eadb4b0130-CharLiteralConstant" }, { - "id": "0x5597122d2130-CharLiteralConstant", + "id": "0x55eadb4b0130-CharLiteralConstant", "string": "(f0.2,1x)" }, { - "id": "0x5597122d0700-IoControlSpec", + "id": "0x55eadb4ae700-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x5597122d0700-CharExpr" + "CharExpr": "0x55eadb4ae700-CharExpr" }, { - "id": "0x5597122d0700-CharExpr", - "Kind = Advance": "0x5597122d0708-Kind = Advance", - "Expr": "0x5597122d0200-Expr", + "id": "0x55eadb4ae700-CharExpr", + "Kind = Advance": "0x55eadb4ae708-Kind = Advance", + "Expr": "0x55eadb4ae200-Expr", "kind": "Advance" }, { - "id": "0x5597122d0708-Kind = Advance", + "id": "0x55eadb4ae708-Kind = Advance", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Advance" }, { - "id": "0x5597122d0200-Expr", + "id": "0x55eadb4ae200-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122d0220-LiteralConstant" + "LiteralConstant": "0x55eadb4ae220-LiteralConstant" }, { - "id": "0x5597122d0220-LiteralConstant", + "id": "0x55eadb4ae220-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x5597122d0220-CharLiteralConstant" + "CharLiteralConstant": "0x55eadb4ae220-CharLiteralConstant" }, { - "id": "0x5597122d0220-CharLiteralConstant", + "id": "0x55eadb4ae220-CharLiteralConstant", "string": "no" }, { - "id": "0x5597122d2000-OutputItem", + "id": "0x55eadb4b0000-OutputItem", "variantKey": "Expr", - "Expr": "0x5597122d2000-Expr" + "Expr": "0x55eadb4b0000-Expr" }, { - "id": "0x5597122d2000-Expr", + "id": "0x55eadb4b0000-Expr", "variantKey": "Designator", - "Designator": "0x5597122f0780-Designator" + "Designator": "0x55eadb4ce780-Designator" }, { - "id": "0x5597122f0780-Designator", + "id": "0x55eadb4ce780-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122f0790-DataRef" + "DataRef": "0x55eadb4ce790-DataRef" }, { - "id": "0x5597122f0790-DataRef", + "id": "0x55eadb4ce790-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x5597122c1410-ArrayElement" + "ArrayElement": "0x55eadb49f410-ArrayElement" }, { - "id": "0x5597122c1410-ArrayElement", - "base": "0x5597122c1410-DataRef", + "id": "0x55eadb49f410-ArrayElement", + "base": "0x55eadb49f410-DataRef", "subscripts": [ - "0x5597122fdca0-SectionSubscript", - "0x559712391140-SectionSubscript" + "0x55eadb4dbca0-SectionSubscript", + "0x55eadb56f140-SectionSubscript" ] }, { - "id": "0x5597122c1410-DataRef", + "id": "0x55eadb49f410-DataRef", "variantKey": "Name", - "Name": "0x5597122c1410-Name" + "Name": "0x55eadb49f410-Name" }, { - "id": "0x5597122c1410-Name", + "id": "0x55eadb49f410-Name", "source": "g" }, { - "id": "0x5597122fdca0-SectionSubscript", + "id": "0x55eadb4dbca0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122c7020-Expr" + "Expr": "0x55eadb4a5020-Expr" }, { - "id": "0x5597122c7020-Expr", + "id": "0x55eadb4a5020-Expr", "variantKey": "Designator", - "Designator": "0x5597122d0a70-Designator" + "Designator": "0x55eadb4aea70-Designator" }, { - "id": "0x5597122d0a70-Designator", + "id": "0x55eadb4aea70-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d0a80-DataRef" + "DataRef": "0x55eadb4aea80-DataRef" }, { - "id": "0x5597122d0a80-DataRef", + "id": "0x55eadb4aea80-DataRef", "variantKey": "Name", - "Name": "0x5597122d0a80-Name" + "Name": "0x55eadb4aea80-Name" }, { - "id": "0x5597122d0a80-Name", + "id": "0x55eadb4aea80-Name", "source": "j" }, { - "id": "0x559712391140-SectionSubscript", + "id": "0x55eadb56f140-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122c7100-Expr" + "Expr": "0x55eadb4a5100-Expr" }, { - "id": "0x5597122c7100-Expr", + "id": "0x55eadb4a5100-Expr", "variantKey": "Designator", - "Designator": "0x5597122d0d30-Designator" + "Designator": "0x55eadb4aed30-Designator" }, { - "id": "0x5597122d0d30-Designator", + "id": "0x55eadb4aed30-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d0d40-DataRef" + "DataRef": "0x55eadb4aed40-DataRef" }, { - "id": "0x5597122d0d40-DataRef", + "id": "0x55eadb4aed40-DataRef", "variantKey": "Name", - "Name": "0x5597122d0d40-Name" + "Name": "0x55eadb4aed40-Name" }, { - "id": "0x5597122d0d40-Name", + "id": "0x55eadb4aed40-Name", "source": "i" }, { - "id": "0x5597122cc120-ExecutionPartConstruct", + "id": "0x55eadb4aa120-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122cc120-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4aa120-ExecutableConstruct" }, { - "id": "0x5597122cc120-ExecutableConstruct", + "id": "0x55eadb4aa120-ExecutableConstruct", "variantKey": "IfConstruct", - "IfConstruct": "0x5597122d4f60-IfConstruct" + "IfConstruct": "0x55eadb4b2f60-IfConstruct" }, { - "id": "0x5597122d4f60-IfConstruct", - "Statement": "0x5597122d5030-Statement", + "id": "0x55eadb4b2f60-IfConstruct", + "Statement": "0x55eadb4b3030-Statement", "ExecutionPartConstruct": [ - "0x5597122c8f30-ExecutionPartConstruct" + "0x55eadb4a6f30-ExecutionPartConstruct" ], - "Statement": "0x5597122d4f60-Statement" + "Statement": "0x55eadb4b2f60-Statement" }, { - "id": "0x5597122d5030-Statement", - "statement": "0x5597122d5040-IfThenStmt", + "id": "0x55eadb4b3030-Statement", + "statement": "0x55eadb4b3040-IfThenStmt", "source": "if(mod(((i - 1) * ni) + j - 1, 20) == 0) then" }, { - "id": "0x5597122d5040-IfThenStmt", - "Expr": "0x5597122d4c50-Expr" + "id": "0x55eadb4b3040-IfThenStmt", + "Expr": "0x55eadb4b2c50-Expr" }, { - "id": "0x5597122d4c50-Expr", + "id": "0x55eadb4b2c50-Expr", "variantKey": "EQ", - "EQ": "0x5597122d4c70-EQ" + "EQ": "0x55eadb4b2c70-EQ" }, { - "id": "0x5597122d4c70-EQ", - "left": "0x5597122d4b70-Expr", - "right": "0x5597122d4a90-Expr", + "id": "0x55eadb4b2c70-EQ", + "left": "0x55eadb4b2b70-Expr", + "right": "0x55eadb4b2a90-Expr", "op": "EQ" }, { - "id": "0x5597122d4b70-Expr", + "id": "0x55eadb4b2b70-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x5597122b4c50-FunctionReference" + "FunctionReference": "0x55eadb492c50-FunctionReference" }, { - "id": "0x5597122b4c50-FunctionReference", - "Call": "0x5597122b4c50-Call" + "id": "0x55eadb492c50-FunctionReference", + "Call": "0x55eadb492c50-Call" }, { - "id": "0x5597122b4c50-Call", - "ProcedureDesignator": "0x5597122b4c68-ProcedureDesignator", + "id": "0x55eadb492c50-Call", + "ProcedureDesignator": "0x55eadb492c68-ProcedureDesignator", "ActualArgSpec": [ - "0x5597122d05f0-ActualArgSpec", - "0x5597122d3130-ActualArgSpec" + "0x55eadb4ae5f0-ActualArgSpec", + "0x55eadb4b1130-ActualArgSpec" ] }, { - "id": "0x5597122b4c68-ProcedureDesignator", + "id": "0x55eadb492c68-ProcedureDesignator", "variantKey": "Name", - "Name": "0x5597122b4c68-Name" + "Name": "0x55eadb492c68-Name" }, { - "id": "0x5597122b4c68-Name", + "id": "0x55eadb492c68-Name", "source": "mod" }, { - "id": "0x5597122d05f0-ActualArgSpec", - "ActualArg": "0x5597122d05f0-ActualArg" + "id": "0x55eadb4ae5f0-ActualArgSpec", + "ActualArg": "0x55eadb4ae5f0-ActualArg" }, { - "id": "0x5597122d05f0-ActualArg", + "id": "0x55eadb4ae5f0-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122d48d0-Expr" + "Expr": "0x55eadb4b28d0-Expr" }, { - "id": "0x5597122d48d0-Expr", + "id": "0x55eadb4b28d0-Expr", "variantKey": "Subtract", - "Subtract": "0x5597122d48f0-Subtract" + "Subtract": "0x55eadb4b28f0-Subtract" }, { - "id": "0x5597122d48f0-Subtract", - "left": "0x5597122d4710-Expr", - "right": "0x5597122d4630-Expr", + "id": "0x55eadb4b28f0-Subtract", + "left": "0x55eadb4b2710-Expr", + "right": "0x55eadb4b2630-Expr", "op": "SUBTRACT" }, { - "id": "0x5597122d4710-Expr", + "id": "0x55eadb4b2710-Expr", "variantKey": "Add", - "Add": "0x5597122d4730-Add" + "Add": "0x55eadb4b2730-Add" }, { - "id": "0x5597122d4730-Add", - "left": "0x5597122d2fe0-Expr", - "right": "0x5597122d2230-Expr", + "id": "0x55eadb4b2730-Add", + "left": "0x55eadb4b0fe0-Expr", + "right": "0x55eadb4b0230-Expr", "op": "ADD" }, { - "id": "0x5597122d2fe0-Expr", + "id": "0x55eadb4b0fe0-Expr", "variantKey": "Parentheses", - "Parentheses": "0x5597122d3000-Parentheses" + "Parentheses": "0x55eadb4b1000-Parentheses" }, { - "id": "0x5597122d3000-Parentheses", - "Expr": "0x5597122d4550-Expr", + "id": "0x55eadb4b1000-Parentheses", + "Expr": "0x55eadb4b2550-Expr", "op": "PARENTHESES" }, { - "id": "0x5597122d4550-Expr", + "id": "0x55eadb4b2550-Expr", "variantKey": "Multiply", - "Multiply": "0x5597122d4570-Multiply" + "Multiply": "0x55eadb4b2570-Multiply" }, { - "id": "0x5597122d4570-Multiply", - "left": "0x5597122d23f0-Expr", - "right": "0x5597122d25b0-Expr", + "id": "0x55eadb4b2570-Multiply", + "left": "0x55eadb4b03f0-Expr", + "right": "0x55eadb4b05b0-Expr", "op": "MULTIPLY" }, { - "id": "0x5597122d23f0-Expr", + "id": "0x55eadb4b03f0-Expr", "variantKey": "Parentheses", - "Parentheses": "0x5597122d2410-Parentheses" + "Parentheses": "0x55eadb4b0410-Parentheses" }, { - "id": "0x5597122d2410-Parentheses", - "Expr": "0x5597122d24d0-Expr", + "id": "0x55eadb4b0410-Parentheses", + "Expr": "0x55eadb4b04d0-Expr", "op": "PARENTHESES" }, { - "id": "0x5597122d24d0-Expr", + "id": "0x55eadb4b04d0-Expr", "variantKey": "Subtract", - "Subtract": "0x5597122d24f0-Subtract" + "Subtract": "0x55eadb4b04f0-Subtract" }, { - "id": "0x5597122d24f0-Subtract", - "left": "0x5597122d4400-Expr", - "right": "0x5597122d2310-Expr", + "id": "0x55eadb4b04f0-Subtract", + "left": "0x55eadb4b2400-Expr", + "right": "0x55eadb4b0310-Expr", "op": "SUBTRACT" }, { - "id": "0x5597122d4400-Expr", + "id": "0x55eadb4b2400-Expr", "variantKey": "Designator", - "Designator": "0x5597122cedf0-Designator" + "Designator": "0x55eadb4acdf0-Designator" }, { - "id": "0x5597122cedf0-Designator", + "id": "0x55eadb4acdf0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122cee00-DataRef" + "DataRef": "0x55eadb4ace00-DataRef" }, { - "id": "0x5597122cee00-DataRef", + "id": "0x55eadb4ace00-DataRef", "variantKey": "Name", - "Name": "0x5597122cee00-Name" + "Name": "0x55eadb4ace00-Name" }, { - "id": "0x5597122cee00-Name", + "id": "0x55eadb4ace00-Name", "source": "i" }, { - "id": "0x5597122d2310-Expr", + "id": "0x55eadb4b0310-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122d2330-LiteralConstant" + "LiteralConstant": "0x55eadb4b0330-LiteralConstant" }, { - "id": "0x5597122d2330-LiteralConstant", + "id": "0x55eadb4b0330-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122d2330-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4b0330-IntLiteralConstant" }, { - "id": "0x5597122d2330-IntLiteralConstant", + "id": "0x55eadb4b0330-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5597122d25b0-Expr", + "id": "0x55eadb4b05b0-Expr", "variantKey": "Designator", - "Designator": "0x5597122c22a0-Designator" + "Designator": "0x55eadb4a02a0-Designator" }, { - "id": "0x5597122c22a0-Designator", + "id": "0x55eadb4a02a0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122c22b0-DataRef" + "DataRef": "0x55eadb4a02b0-DataRef" }, { - "id": "0x5597122c22b0-DataRef", + "id": "0x55eadb4a02b0-DataRef", "variantKey": "Name", - "Name": "0x5597122c22b0-Name" + "Name": "0x55eadb4a02b0-Name" }, { - "id": "0x5597122c22b0-Name", + "id": "0x55eadb4a02b0-Name", "source": "ni" }, { - "id": "0x5597122d2230-Expr", + "id": "0x55eadb4b0230-Expr", "variantKey": "Designator", - "Designator": "0x5597122cc170-Designator" + "Designator": "0x55eadb4aa170-Designator" }, { - "id": "0x5597122cc170-Designator", + "id": "0x55eadb4aa170-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122cc180-DataRef" + "DataRef": "0x55eadb4aa180-DataRef" }, { - "id": "0x5597122cc180-DataRef", + "id": "0x55eadb4aa180-DataRef", "variantKey": "Name", - "Name": "0x5597122cc180-Name" + "Name": "0x55eadb4aa180-Name" }, { - "id": "0x5597122cc180-Name", + "id": "0x55eadb4aa180-Name", "source": "j" }, { - "id": "0x5597122d4630-Expr", + "id": "0x55eadb4b2630-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122d4650-LiteralConstant" + "LiteralConstant": "0x55eadb4b2650-LiteralConstant" }, { - "id": "0x5597122d4650-LiteralConstant", + "id": "0x55eadb4b2650-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122d4650-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4b2650-IntLiteralConstant" }, { - "id": "0x5597122d4650-IntLiteralConstant", + "id": "0x55eadb4b2650-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5597122d3130-ActualArgSpec", - "ActualArg": "0x5597122d3130-ActualArg" + "id": "0x55eadb4b1130-ActualArgSpec", + "ActualArg": "0x55eadb4b1130-ActualArg" }, { - "id": "0x5597122d3130-ActualArg", + "id": "0x55eadb4b1130-ActualArg", "variantKey": "Expr", - "Expr": "0x5597122d49b0-Expr" + "Expr": "0x55eadb4b29b0-Expr" }, { - "id": "0x5597122d49b0-Expr", + "id": "0x55eadb4b29b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122d49d0-LiteralConstant" + "LiteralConstant": "0x55eadb4b29d0-LiteralConstant" }, { - "id": "0x5597122d49d0-LiteralConstant", + "id": "0x55eadb4b29d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122d49d0-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4b29d0-IntLiteralConstant" }, { - "id": "0x5597122d49d0-IntLiteralConstant", + "id": "0x55eadb4b29d0-IntLiteralConstant", "CharBlock": "20" }, { - "id": "0x5597122d4a90-Expr", + "id": "0x55eadb4b2a90-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122d4ab0-LiteralConstant" + "LiteralConstant": "0x55eadb4b2ab0-LiteralConstant" }, { - "id": "0x5597122d4ab0-LiteralConstant", + "id": "0x55eadb4b2ab0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122d4ab0-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4b2ab0-IntLiteralConstant" }, { - "id": "0x5597122d4ab0-IntLiteralConstant", + "id": "0x55eadb4b2ab0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x5597122d5018-ExecutionPartConstruct" + "id": "0x55eadb4b3018-ExecutionPartConstruct" }, { - "id": "0x5597122c8f30-ExecutionPartConstruct", + "id": "0x55eadb4a6f30-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122c8f30-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4a6f30-ExecutableConstruct" }, { - "id": "0x5597122c8f30-ExecutableConstruct", + "id": "0x55eadb4a6f30-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122c8f30-Statement" + "Statement": "0x55eadb4a6f30-Statement" }, { - "id": "0x5597122c8f30-Statement", - "statement": "0x5597122c8f40-ActionStmt", + "id": "0x55eadb4a6f30-Statement", + "statement": "0x55eadb4a6f40-ActionStmt", "source": "write(0, *)" }, { - "id": "0x5597122c8f40-ActionStmt", + "id": "0x55eadb4a6f40-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x5597122d4e10-WriteStmt" + "WriteStmt": "0x55eadb4b2e10-WriteStmt" }, { - "id": "0x5597122d4e10-WriteStmt", - "iounit": "0x5597122d4e10-IoUnit", - "format": "0x5597122d4e40-Format", + "id": "0x55eadb4b2e10-WriteStmt", + "iounit": "0x55eadb4b2e10-IoUnit", + "format": "0x55eadb4b2e40-Format", "controls": [], "items": [] }, { - "id": "0x5597122d4e10-IoUnit", + "id": "0x55eadb4b2e10-IoUnit", "variantKey": "Expr", - "Expr": "0x5597122d4d30-Expr" + "Expr": "0x55eadb4b2d30-Expr" }, { - "id": "0x5597122d4d30-Expr", + "id": "0x55eadb4b2d30-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122d4d50-LiteralConstant" + "LiteralConstant": "0x55eadb4b2d50-LiteralConstant" }, { - "id": "0x5597122d4d50-LiteralConstant", + "id": "0x55eadb4b2d50-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122d4d50-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4b2d50-IntLiteralConstant" }, { - "id": "0x5597122d4d50-IntLiteralConstant", + "id": "0x55eadb4b2d50-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x5597122d4e40-Format", + "id": "0x55eadb4b2e40-Format", "variantKey": "Star", - "Star": "0x5597122d4e40-Star" + "Star": "0x55eadb4b2e40-Star" }, { - "id": "0x5597122d4e40-Star" + "id": "0x55eadb4b2e40-Star" }, { - "id": "0x5597122d4f60-Statement", - "statement": "0x5597122d4f70-EndIfStmt", + "id": "0x55eadb4b2f60-Statement", + "statement": "0x55eadb4b2f70-EndIfStmt", "source": "end if" }, { - "id": "0x5597122d4f70-EndIfStmt" + "id": "0x55eadb4b2f70-EndIfStmt" }, { - "id": "0x5597122d5080-Statement", - "statement": "0x5597122d5090-EndDoStmt", + "id": "0x55eadb4b3080-Statement", + "statement": "0x55eadb4b3090-EndDoStmt", "source": "end do" }, { - "id": "0x5597122d5090-EndDoStmt" + "id": "0x55eadb4b3090-EndDoStmt" }, { - "id": "0x5597122d51a0-Statement", - "statement": "0x5597122d51b0-EndDoStmt", + "id": "0x55eadb4b31a0-Statement", + "statement": "0x55eadb4b31b0-EndDoStmt", "source": "end do" }, { - "id": "0x5597122d51b0-EndDoStmt" + "id": "0x55eadb4b31b0-EndDoStmt" }, { - "id": "0x5597122c76b0-ExecutionPartConstruct", + "id": "0x55eadb4a56b0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122c76b0-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4a56b0-ExecutableConstruct" }, { - "id": "0x5597122c76b0-ExecutableConstruct", + "id": "0x55eadb4a56b0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122c76b0-Statement" + "Statement": "0x55eadb4a56b0-Statement" }, { - "id": "0x5597122c76b0-Statement", - "statement": "0x5597122c76c0-ActionStmt", + "id": "0x55eadb4a56b0-Statement", + "statement": "0x55eadb4a56c0-ActionStmt", "source": "write(0, *)" }, { - "id": "0x5597122c76c0-ActionStmt", + "id": "0x55eadb4a56c0-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x5597122d53a0-WriteStmt" + "WriteStmt": "0x55eadb4b33a0-WriteStmt" }, { - "id": "0x5597122d53a0-WriteStmt", - "iounit": "0x5597122d53a0-IoUnit", - "format": "0x5597122d53d0-Format", + "id": "0x55eadb4b33a0-WriteStmt", + "iounit": "0x55eadb4b33a0-IoUnit", + "format": "0x55eadb4b33d0-Format", "controls": [], "items": [] }, { - "id": "0x5597122d53a0-IoUnit", + "id": "0x55eadb4b33a0-IoUnit", "variantKey": "Expr", - "Expr": "0x5597122d52c0-Expr" + "Expr": "0x55eadb4b32c0-Expr" }, { - "id": "0x5597122d52c0-Expr", + "id": "0x55eadb4b32c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122d52e0-LiteralConstant" + "LiteralConstant": "0x55eadb4b32e0-LiteralConstant" }, { - "id": "0x5597122d52e0-LiteralConstant", + "id": "0x55eadb4b32e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122d52e0-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4b32e0-IntLiteralConstant" }, { - "id": "0x5597122d52e0-IntLiteralConstant", + "id": "0x55eadb4b32e0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x5597122d53d0-Format", + "id": "0x55eadb4b33d0-Format", "variantKey": "Star", - "Star": "0x5597122d53d0-Star" + "Star": "0x55eadb4b33d0-Star" }, { - "id": "0x5597122d53d0-Star" + "id": "0x55eadb4b33d0-Star" }, { - "id": "0x5597122d6660-Statement", - "statement": "0x5597122d6670-EndSubroutineStmt", + "id": "0x55eadb4b4660-Statement", + "statement": "0x55eadb4b4670-EndSubroutineStmt", "source": "end subroutine" }, { - "id": "0x5597122d6670-EndSubroutineStmt" + "id": "0x55eadb4b4670-EndSubroutineStmt" }, { - "id": "0x5597122d12b0-InternalSubprogram", + "id": "0x55eadb4af2b0-InternalSubprogram", "variantKey": "SubroutineSubprogram", - "SubroutineSubprogram": "0x5597122df350-SubroutineSubprogram" + "SubroutineSubprogram": "0x55eadb4bd350-SubroutineSubprogram" }, { - "id": "0x5597122df350-SubroutineSubprogram", - "Statement": "0x5597122df498-Statement", - "SpecificationPart": "0x5597122df3f0-SpecificationPart", - "ExecutionPart": "0x5597122df3d8-ExecutionPart", - "Statement": "0x5597122df350-Statement" + "id": "0x55eadb4bd350-SubroutineSubprogram", + "Statement": "0x55eadb4bd498-Statement", + "SpecificationPart": "0x55eadb4bd3f0-SpecificationPart", + "ExecutionPart": "0x55eadb4bd3d8-ExecutionPart", + "Statement": "0x55eadb4bd350-Statement" }, { - "id": "0x5597122df498-Statement", - "statement": "0x5597122df4a8-SubroutineStmt", + "id": "0x55eadb4bd498-Statement", + "statement": "0x55eadb4bd4a8-SubroutineStmt", "source": "subroutine kernel_3mm(ni, nj, nk, nl, nm, e, a, b, f, c, d, g)" }, { - "id": "0x5597122df4a8-SubroutineStmt", - "Name": "0x5597122df4e0-Name", + "id": "0x55eadb4bd4a8-SubroutineStmt", + "Name": "0x55eadb4bd4e0-Name", "DummyArg": [ - "0x5597122cd570-DummyArg", - "0x5597122b8960-DummyArg", - "0x5597122b89d0-DummyArg", - "0x5597122b8a10-DummyArg", - "0x5597122b8a50-DummyArg", - "0x5597122c1c30-DummyArg", - "0x5597122bafe0-DummyArg", - "0x5597122c7ad0-DummyArg", - "0x5597122c82e0-DummyArg", - "0x5597122c8580-DummyArg", - "0x5597122b86f0-DummyArg", - "0x5597122b8d60-DummyArg" + "0x55eadb4ab570-DummyArg", + "0x55eadb496960-DummyArg", + "0x55eadb4969d0-DummyArg", + "0x55eadb496a10-DummyArg", + "0x55eadb496a50-DummyArg", + "0x55eadb49fc30-DummyArg", + "0x55eadb498fe0-DummyArg", + "0x55eadb4a5ad0-DummyArg", + "0x55eadb4a62e0-DummyArg", + "0x55eadb4a6580-DummyArg", + "0x55eadb4966f0-DummyArg", + "0x55eadb496d60-DummyArg" ] }, { - "id": "0x5597122df4e0-Name", + "id": "0x55eadb4bd4e0-Name", "source": "kernel_3mm" }, { - "id": "0x5597122cd570-DummyArg", + "id": "0x55eadb4ab570-DummyArg", "variantKey": "Name", - "Name": "0x5597122cd570-Name" + "Name": "0x55eadb4ab570-Name" }, { - "id": "0x5597122cd570-Name", + "id": "0x55eadb4ab570-Name", "source": "ni" }, { - "id": "0x5597122b8960-DummyArg", + "id": "0x55eadb496960-DummyArg", "variantKey": "Name", - "Name": "0x5597122b8960-Name" + "Name": "0x55eadb496960-Name" }, { - "id": "0x5597122b8960-Name", + "id": "0x55eadb496960-Name", "source": "nj" }, { - "id": "0x5597122b89d0-DummyArg", + "id": "0x55eadb4969d0-DummyArg", "variantKey": "Name", - "Name": "0x5597122b89d0-Name" + "Name": "0x55eadb4969d0-Name" }, { - "id": "0x5597122b89d0-Name", + "id": "0x55eadb4969d0-Name", "source": "nk" }, { - "id": "0x5597122b8a10-DummyArg", + "id": "0x55eadb496a10-DummyArg", "variantKey": "Name", - "Name": "0x5597122b8a10-Name" + "Name": "0x55eadb496a10-Name" }, { - "id": "0x5597122b8a10-Name", + "id": "0x55eadb496a10-Name", "source": "nl" }, { - "id": "0x5597122b8a50-DummyArg", + "id": "0x55eadb496a50-DummyArg", "variantKey": "Name", - "Name": "0x5597122b8a50-Name" + "Name": "0x55eadb496a50-Name" }, { - "id": "0x5597122b8a50-Name", + "id": "0x55eadb496a50-Name", "source": "nm" }, { - "id": "0x5597122c1c30-DummyArg", + "id": "0x55eadb49fc30-DummyArg", "variantKey": "Name", - "Name": "0x5597122c1c30-Name" + "Name": "0x55eadb49fc30-Name" }, { - "id": "0x5597122c1c30-Name", + "id": "0x55eadb49fc30-Name", "source": "e" }, { - "id": "0x5597122bafe0-DummyArg", + "id": "0x55eadb498fe0-DummyArg", "variantKey": "Name", - "Name": "0x5597122bafe0-Name" + "Name": "0x55eadb498fe0-Name" }, { - "id": "0x5597122bafe0-Name", + "id": "0x55eadb498fe0-Name", "source": "a" }, { - "id": "0x5597122c7ad0-DummyArg", + "id": "0x55eadb4a5ad0-DummyArg", "variantKey": "Name", - "Name": "0x5597122c7ad0-Name" + "Name": "0x55eadb4a5ad0-Name" }, { - "id": "0x5597122c7ad0-Name", + "id": "0x55eadb4a5ad0-Name", "source": "b" }, { - "id": "0x5597122c82e0-DummyArg", + "id": "0x55eadb4a62e0-DummyArg", "variantKey": "Name", - "Name": "0x5597122c82e0-Name" + "Name": "0x55eadb4a62e0-Name" }, { - "id": "0x5597122c82e0-Name", + "id": "0x55eadb4a62e0-Name", "source": "f" }, { - "id": "0x5597122c8580-DummyArg", + "id": "0x55eadb4a6580-DummyArg", "variantKey": "Name", - "Name": "0x5597122c8580-Name" + "Name": "0x55eadb4a6580-Name" }, { - "id": "0x5597122c8580-Name", + "id": "0x55eadb4a6580-Name", "source": "c" }, { - "id": "0x5597122b86f0-DummyArg", + "id": "0x55eadb4966f0-DummyArg", "variantKey": "Name", - "Name": "0x5597122b86f0-Name" + "Name": "0x55eadb4966f0-Name" }, { - "id": "0x5597122b86f0-Name", + "id": "0x55eadb4966f0-Name", "source": "d" }, { - "id": "0x5597122b8d60-DummyArg", + "id": "0x55eadb496d60-DummyArg", "variantKey": "Name", - "Name": "0x5597122b8d60-Name" + "Name": "0x55eadb496d60-Name" }, { - "id": "0x5597122b8d60-Name", + "id": "0x55eadb496d60-Name", "source": "g" }, { - "id": "0x5597122df3f0-SpecificationPart", - "ImplicitPart": "0x5597122df408-ImplicitPart", + "id": "0x55eadb4bd3f0-SpecificationPart", + "ImplicitPart": "0x55eadb4bd408-ImplicitPart", "DeclarationConstruct": [ - "0x5597122cf270-DeclarationConstruct", - "0x5597122c8ab0-DeclarationConstruct", - "0x5597122d5680-DeclarationConstruct", - "0x5597122d5ab0-DeclarationConstruct", - "0x5597122d5ee0-DeclarationConstruct", - "0x5597122d6310-DeclarationConstruct", - "0x5597122d4800-DeclarationConstruct", - "0x5597122d3240-DeclarationConstruct", - "0x5597122cc370-DeclarationConstruct" + "0x55eadb4ad270-DeclarationConstruct", + "0x55eadb4a6ab0-DeclarationConstruct", + "0x55eadb4b3680-DeclarationConstruct", + "0x55eadb4b3ab0-DeclarationConstruct", + "0x55eadb4b3ee0-DeclarationConstruct", + "0x55eadb4b4310-DeclarationConstruct", + "0x55eadb4b2800-DeclarationConstruct", + "0x55eadb4b1240-DeclarationConstruct", + "0x55eadb4aa370-DeclarationConstruct" ] }, { - "id": "0x5597122df408-ImplicitPart" + "id": "0x55eadb4bd408-ImplicitPart" }, { - "id": "0x5597122cf270-DeclarationConstruct", + "id": "0x55eadb4ad270-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5597122cf270-SpecificationConstruct" + "SpecificationConstruct": "0x55eadb4ad270-SpecificationConstruct" }, { - "id": "0x5597122cf270-SpecificationConstruct", + "id": "0x55eadb4ad270-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5597122cf270-Statement" + "Statement": "0x55eadb4ad270-Statement" }, { - "id": "0x5597122cf270-Statement", - "statement": "0x5597122d10b0-TypeDeclarationStmt", + "id": "0x55eadb4ad270-Statement", + "statement": "0x55eadb4af0b0-TypeDeclarationStmt", "source": "double precision, dimension(nk, ni) :: a" }, { - "id": "0x5597122d10b0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5597122d10e0-DeclarationTypeSpec", + "id": "0x55eadb4af0b0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4af0e0-DeclarationTypeSpec", "AttrSpec": [ - "0x5597122b55b0-AttrSpec" + "0x55eadb4935b0-AttrSpec" ], "EntityDecl": [ - "0x5597122d6f80-EntityDecl" + "0x55eadb4b4f80-EntityDecl" ] }, { - "id": "0x5597122d10e0-DeclarationTypeSpec", + "id": "0x55eadb4af0e0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5597122d10e0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55eadb4af0e0-IntrinsicTypeSpec" }, { - "id": "0x5597122d10e0-IntrinsicTypeSpec", + "id": "0x55eadb4af0e0-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x5597122d10e0-DoublePrecision" + "DoublePrecision": "0x55eadb4af0e0-DoublePrecision" }, { - "id": "0x5597122d10e0-DoublePrecision" + "id": "0x55eadb4af0e0-DoublePrecision" }, { - "id": "0x5597122b55b0-AttrSpec", + "id": "0x55eadb4935b0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x5597122b55b0-ArraySpec" + "ArraySpec": "0x55eadb4935b0-ArraySpec" }, { - "id": "0x5597122b55b0-ArraySpec", + "id": "0x55eadb4935b0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x5597122afce0-ExplicitShapeSpec", - "0x5597122afc50-ExplicitShapeSpec" + "0x55eadb48dce0-ExplicitShapeSpec", + "0x55eadb48dc50-ExplicitShapeSpec" ] }, { - "id": "0x5597122afce0-ExplicitShapeSpec", - "upper_bound": "0x5597122afce0-SpecificationExpr" + "id": "0x55eadb48dce0-ExplicitShapeSpec", + "upper_bound": "0x55eadb48dce0-SpecificationExpr" }, { - "id": "0x5597122afce0-SpecificationExpr", - "Expr": "0x5597122d6db0-Expr" + "id": "0x55eadb48dce0-SpecificationExpr", + "Expr": "0x55eadb4b4db0-Expr" }, { - "id": "0x5597122d6db0-Expr", + "id": "0x55eadb4b4db0-Expr", "variantKey": "Designator", - "Designator": "0x5597122cd9a0-Designator" + "Designator": "0x55eadb4ab9a0-Designator" }, { - "id": "0x5597122cd9a0-Designator", + "id": "0x55eadb4ab9a0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122cd9b0-DataRef" + "DataRef": "0x55eadb4ab9b0-DataRef" }, { - "id": "0x5597122cd9b0-DataRef", + "id": "0x55eadb4ab9b0-DataRef", "variantKey": "Name", - "Name": "0x5597122cd9b0-Name" + "Name": "0x55eadb4ab9b0-Name" }, { - "id": "0x5597122cd9b0-Name", + "id": "0x55eadb4ab9b0-Name", "source": "nk" }, { - "id": "0x5597122afc50-ExplicitShapeSpec", - "upper_bound": "0x5597122afc50-SpecificationExpr" + "id": "0x55eadb48dc50-ExplicitShapeSpec", + "upper_bound": "0x55eadb48dc50-SpecificationExpr" }, { - "id": "0x5597122afc50-SpecificationExpr", - "Expr": "0x5597122d6e90-Expr" + "id": "0x55eadb48dc50-SpecificationExpr", + "Expr": "0x55eadb4b4e90-Expr" }, { - "id": "0x5597122d6e90-Expr", + "id": "0x55eadb4b4e90-Expr", "variantKey": "Designator", - "Designator": "0x5597122d30c0-Designator" + "Designator": "0x55eadb4b10c0-Designator" }, { - "id": "0x5597122d30c0-Designator", + "id": "0x55eadb4b10c0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d30d0-DataRef" + "DataRef": "0x55eadb4b10d0-DataRef" }, { - "id": "0x5597122d30d0-DataRef", + "id": "0x55eadb4b10d0-DataRef", "variantKey": "Name", - "Name": "0x5597122d30d0-Name" + "Name": "0x55eadb4b10d0-Name" }, { - "id": "0x5597122d30d0-Name", + "id": "0x55eadb4b10d0-Name", "source": "ni" }, { - "id": "0x5597122d6f80-EntityDecl", - "Name": "0x5597122d7038-Name" + "id": "0x55eadb4b4f80-EntityDecl", + "Name": "0x55eadb4b5038-Name" }, { - "id": "0x5597122d7038-Name", + "id": "0x55eadb4b5038-Name", "source": "a" }, { - "id": "0x5597122c8ab0-DeclarationConstruct", + "id": "0x55eadb4a6ab0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5597122c8ab0-SpecificationConstruct" + "SpecificationConstruct": "0x55eadb4a6ab0-SpecificationConstruct" }, { - "id": "0x5597122c8ab0-SpecificationConstruct", + "id": "0x55eadb4a6ab0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5597122c8ab0-Statement" + "Statement": "0x55eadb4a6ab0-Statement" }, { - "id": "0x5597122c8ab0-Statement", - "statement": "0x5597122c1d80-TypeDeclarationStmt", + "id": "0x55eadb4a6ab0-Statement", + "statement": "0x55eadb49fd80-TypeDeclarationStmt", "source": "double precision, dimension(nj, nk) :: b" }, { - "id": "0x5597122c1d80-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5597122c1db0-DeclarationTypeSpec", + "id": "0x55eadb49fd80-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb49fdb0-DeclarationTypeSpec", "AttrSpec": [ - "0x5597122c9670-AttrSpec" + "0x55eadb4a7670-AttrSpec" ], "EntityDecl": [ - "0x5597122d6a10-EntityDecl" + "0x55eadb4b4a10-EntityDecl" ] }, { - "id": "0x5597122c1db0-DeclarationTypeSpec", + "id": "0x55eadb49fdb0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5597122c1db0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55eadb49fdb0-IntrinsicTypeSpec" }, { - "id": "0x5597122c1db0-IntrinsicTypeSpec", + "id": "0x55eadb49fdb0-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x5597122c1db0-DoublePrecision" + "DoublePrecision": "0x55eadb49fdb0-DoublePrecision" }, { - "id": "0x5597122c1db0-DoublePrecision" + "id": "0x55eadb49fdb0-DoublePrecision" }, { - "id": "0x5597122c9670-AttrSpec", + "id": "0x55eadb4a7670-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x5597122c9670-ArraySpec" + "ArraySpec": "0x55eadb4a7670-ArraySpec" }, { - "id": "0x5597122c9670-ArraySpec", + "id": "0x55eadb4a7670-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x5597122cc3d0-ExplicitShapeSpec", - "0x5597122c1d60-ExplicitShapeSpec" + "0x55eadb4aa3d0-ExplicitShapeSpec", + "0x55eadb49fd60-ExplicitShapeSpec" ] }, { - "id": "0x5597122cc3d0-ExplicitShapeSpec", - "upper_bound": "0x5597122cc3d0-SpecificationExpr" + "id": "0x55eadb4aa3d0-ExplicitShapeSpec", + "upper_bound": "0x55eadb4aa3d0-SpecificationExpr" }, { - "id": "0x5597122cc3d0-SpecificationExpr", - "Expr": "0x5597122d6840-Expr" + "id": "0x55eadb4aa3d0-SpecificationExpr", + "Expr": "0x55eadb4b4840-Expr" }, { - "id": "0x5597122d6840-Expr", + "id": "0x55eadb4b4840-Expr", "variantKey": "Designator", - "Designator": "0x5597122d07f0-Designator" + "Designator": "0x55eadb4ae7f0-Designator" }, { - "id": "0x5597122d07f0-Designator", + "id": "0x55eadb4ae7f0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d0800-DataRef" + "DataRef": "0x55eadb4ae800-DataRef" }, { - "id": "0x5597122d0800-DataRef", + "id": "0x55eadb4ae800-DataRef", "variantKey": "Name", - "Name": "0x5597122d0800-Name" + "Name": "0x55eadb4ae800-Name" }, { - "id": "0x5597122d0800-Name", + "id": "0x55eadb4ae800-Name", "source": "nj" }, { - "id": "0x5597122c1d60-ExplicitShapeSpec", - "upper_bound": "0x5597122c1d60-SpecificationExpr" + "id": "0x55eadb49fd60-ExplicitShapeSpec", + "upper_bound": "0x55eadb49fd60-SpecificationExpr" }, { - "id": "0x5597122c1d60-SpecificationExpr", - "Expr": "0x5597122d6920-Expr" + "id": "0x55eadb49fd60-SpecificationExpr", + "Expr": "0x55eadb4b4920-Expr" }, { - "id": "0x5597122d6920-Expr", + "id": "0x55eadb4b4920-Expr", "variantKey": "Designator", - "Designator": "0x5597122d2dc0-Designator" + "Designator": "0x55eadb4b0dc0-Designator" }, { - "id": "0x5597122d2dc0-Designator", + "id": "0x55eadb4b0dc0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d2dd0-DataRef" + "DataRef": "0x55eadb4b0dd0-DataRef" }, { - "id": "0x5597122d2dd0-DataRef", + "id": "0x55eadb4b0dd0-DataRef", "variantKey": "Name", - "Name": "0x5597122d2dd0-Name" + "Name": "0x55eadb4b0dd0-Name" }, { - "id": "0x5597122d2dd0-Name", + "id": "0x55eadb4b0dd0-Name", "source": "nk" }, { - "id": "0x5597122d6a10-EntityDecl", - "Name": "0x5597122d6ac8-Name" + "id": "0x55eadb4b4a10-EntityDecl", + "Name": "0x55eadb4b4ac8-Name" }, { - "id": "0x5597122d6ac8-Name", + "id": "0x55eadb4b4ac8-Name", "source": "b" }, { - "id": "0x5597122d5680-DeclarationConstruct", + "id": "0x55eadb4b3680-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5597122d5680-SpecificationConstruct" + "SpecificationConstruct": "0x55eadb4b3680-SpecificationConstruct" }, { - "id": "0x5597122d5680-SpecificationConstruct", + "id": "0x55eadb4b3680-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5597122d5680-Statement" + "Statement": "0x55eadb4b3680-Statement" }, { - "id": "0x5597122d5680-Statement", - "statement": "0x5597122cc2e0-TypeDeclarationStmt", + "id": "0x55eadb4b3680-Statement", + "statement": "0x55eadb4aa2e0-TypeDeclarationStmt", "source": "double precision, dimension(nm, nj) :: c" }, { - "id": "0x5597122cc2e0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5597122cc310-DeclarationTypeSpec", + "id": "0x55eadb4aa2e0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4aa310-DeclarationTypeSpec", "AttrSpec": [ - "0x5597122c7710-AttrSpec" + "0x55eadb4a5710-AttrSpec" ], "EntityDecl": [ - "0x5597122d5590-EntityDecl" + "0x55eadb4b3590-EntityDecl" ] }, { - "id": "0x5597122cc310-DeclarationTypeSpec", + "id": "0x55eadb4aa310-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5597122cc310-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55eadb4aa310-IntrinsicTypeSpec" }, { - "id": "0x5597122cc310-IntrinsicTypeSpec", + "id": "0x55eadb4aa310-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x5597122cc310-DoublePrecision" + "DoublePrecision": "0x55eadb4aa310-DoublePrecision" }, { - "id": "0x5597122cc310-DoublePrecision" + "id": "0x55eadb4aa310-DoublePrecision" }, { - "id": "0x5597122c7710-AttrSpec", + "id": "0x55eadb4a5710-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x5597122c7710-ArraySpec" + "ArraySpec": "0x55eadb4a5710-ArraySpec" }, { - "id": "0x5597122c7710-ArraySpec", + "id": "0x55eadb4a5710-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x5597122d6cc0-ExplicitShapeSpec", - "0x5597122d1e70-ExplicitShapeSpec" + "0x55eadb4b4cc0-ExplicitShapeSpec", + "0x55eadb4afe70-ExplicitShapeSpec" ] }, { - "id": "0x5597122d6cc0-ExplicitShapeSpec", - "upper_bound": "0x5597122d6cc0-SpecificationExpr" + "id": "0x55eadb4b4cc0-ExplicitShapeSpec", + "upper_bound": "0x55eadb4b4cc0-SpecificationExpr" }, { - "id": "0x5597122d6cc0-SpecificationExpr", - "Expr": "0x5597122d6af0-Expr" + "id": "0x55eadb4b4cc0-SpecificationExpr", + "Expr": "0x55eadb4b4af0-Expr" }, { - "id": "0x5597122d6af0-Expr", + "id": "0x55eadb4b4af0-Expr", "variantKey": "Designator", - "Designator": "0x5597122d0850-Designator" + "Designator": "0x55eadb4ae850-Designator" }, { - "id": "0x5597122d0850-Designator", + "id": "0x55eadb4ae850-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d0860-DataRef" + "DataRef": "0x55eadb4ae860-DataRef" }, { - "id": "0x5597122d0860-DataRef", + "id": "0x55eadb4ae860-DataRef", "variantKey": "Name", - "Name": "0x5597122d0860-Name" + "Name": "0x55eadb4ae860-Name" }, { - "id": "0x5597122d0860-Name", + "id": "0x55eadb4ae860-Name", "source": "nm" }, { - "id": "0x5597122d1e70-ExplicitShapeSpec", - "upper_bound": "0x5597122d1e70-SpecificationExpr" + "id": "0x55eadb4afe70-ExplicitShapeSpec", + "upper_bound": "0x55eadb4afe70-SpecificationExpr" }, { - "id": "0x5597122d1e70-SpecificationExpr", - "Expr": "0x5597122d6bd0-Expr" + "id": "0x55eadb4afe70-SpecificationExpr", + "Expr": "0x55eadb4b4bd0-Expr" }, { - "id": "0x5597122d6bd0-Expr", + "id": "0x55eadb4b4bd0-Expr", "variantKey": "Designator", - "Designator": "0x5597122c79d0-Designator" + "Designator": "0x55eadb4a59d0-Designator" }, { - "id": "0x5597122c79d0-Designator", + "id": "0x55eadb4a59d0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122c79e0-DataRef" + "DataRef": "0x55eadb4a59e0-DataRef" }, { - "id": "0x5597122c79e0-DataRef", + "id": "0x55eadb4a59e0-DataRef", "variantKey": "Name", - "Name": "0x5597122c79e0-Name" + "Name": "0x55eadb4a59e0-Name" }, { - "id": "0x5597122c79e0-Name", + "id": "0x55eadb4a59e0-Name", "source": "nj" }, { - "id": "0x5597122d5590-EntityDecl", - "Name": "0x5597122d5648-Name" + "id": "0x55eadb4b3590-EntityDecl", + "Name": "0x55eadb4b3648-Name" }, { - "id": "0x5597122d5648-Name", + "id": "0x55eadb4b3648-Name", "source": "c" }, { - "id": "0x5597122d5ab0-DeclarationConstruct", + "id": "0x55eadb4b3ab0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5597122d5ab0-SpecificationConstruct" + "SpecificationConstruct": "0x55eadb4b3ab0-SpecificationConstruct" }, { - "id": "0x5597122d5ab0-SpecificationConstruct", + "id": "0x55eadb4b3ab0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5597122d5ab0-Statement" + "Statement": "0x55eadb4b3ab0-Statement" }, { - "id": "0x5597122d5ab0-Statement", - "statement": "0x5597122b5370-TypeDeclarationStmt", + "id": "0x55eadb4b3ab0-Statement", + "statement": "0x55eadb493370-TypeDeclarationStmt", "source": "double precision, dimension(nl, nm) :: d" }, { - "id": "0x5597122b5370-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5597122b53a0-DeclarationTypeSpec", + "id": "0x55eadb493370-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4933a0-DeclarationTypeSpec", "AttrSpec": [ - "0x5597122cbc40-AttrSpec" + "0x55eadb4a9c40-AttrSpec" ], "EntityDecl": [ - "0x5597122d59c0-EntityDecl" + "0x55eadb4b39c0-EntityDecl" ] }, { - "id": "0x5597122b53a0-DeclarationTypeSpec", + "id": "0x55eadb4933a0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5597122b53a0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55eadb4933a0-IntrinsicTypeSpec" }, { - "id": "0x5597122b53a0-IntrinsicTypeSpec", + "id": "0x55eadb4933a0-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x5597122b53a0-DoublePrecision" + "DoublePrecision": "0x55eadb4933a0-DoublePrecision" }, { - "id": "0x5597122b53a0-DoublePrecision" + "id": "0x55eadb4933a0-DoublePrecision" }, { - "id": "0x5597122cbc40-AttrSpec", + "id": "0x55eadb4a9c40-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x5597122cbc40-ArraySpec" + "ArraySpec": "0x55eadb4a9c40-ArraySpec" }, { - "id": "0x5597122cbc40-ArraySpec", + "id": "0x55eadb4a9c40-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x5597122d5990-ExplicitShapeSpec", - "0x5597122d5960-ExplicitShapeSpec" + "0x55eadb4b3990-ExplicitShapeSpec", + "0x55eadb4b3960-ExplicitShapeSpec" ] }, { - "id": "0x5597122d5990-ExplicitShapeSpec", - "upper_bound": "0x5597122d5990-SpecificationExpr" + "id": "0x55eadb4b3990-ExplicitShapeSpec", + "upper_bound": "0x55eadb4b3990-SpecificationExpr" }, { - "id": "0x5597122d5990-SpecificationExpr", - "Expr": "0x5597122d56d0-Expr" + "id": "0x55eadb4b3990-SpecificationExpr", + "Expr": "0x55eadb4b36d0-Expr" }, { - "id": "0x5597122d56d0-Expr", + "id": "0x55eadb4b36d0-Expr", "variantKey": "Designator", - "Designator": "0x5597122c7eb0-Designator" + "Designator": "0x55eadb4a5eb0-Designator" }, { - "id": "0x5597122c7eb0-Designator", + "id": "0x55eadb4a5eb0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122c7ec0-DataRef" + "DataRef": "0x55eadb4a5ec0-DataRef" }, { - "id": "0x5597122c7ec0-DataRef", + "id": "0x55eadb4a5ec0-DataRef", "variantKey": "Name", - "Name": "0x5597122c7ec0-Name" + "Name": "0x55eadb4a5ec0-Name" }, { - "id": "0x5597122c7ec0-Name", + "id": "0x55eadb4a5ec0-Name", "source": "nl" }, { - "id": "0x5597122d5960-ExplicitShapeSpec", - "upper_bound": "0x5597122d5960-SpecificationExpr" + "id": "0x55eadb4b3960-ExplicitShapeSpec", + "upper_bound": "0x55eadb4b3960-SpecificationExpr" }, { - "id": "0x5597122d5960-SpecificationExpr", - "Expr": "0x5597122d5870-Expr" + "id": "0x55eadb4b3960-SpecificationExpr", + "Expr": "0x55eadb4b3870-Expr" }, { - "id": "0x5597122d5870-Expr", + "id": "0x55eadb4b3870-Expr", "variantKey": "Designator", - "Designator": "0x5597122d5810-Designator" + "Designator": "0x55eadb4b3810-Designator" }, { - "id": "0x5597122d5810-Designator", + "id": "0x55eadb4b3810-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d5820-DataRef" + "DataRef": "0x55eadb4b3820-DataRef" }, { - "id": "0x5597122d5820-DataRef", + "id": "0x55eadb4b3820-DataRef", "variantKey": "Name", - "Name": "0x5597122d5820-Name" + "Name": "0x55eadb4b3820-Name" }, { - "id": "0x5597122d5820-Name", + "id": "0x55eadb4b3820-Name", "source": "nm" }, { - "id": "0x5597122d59c0-EntityDecl", - "Name": "0x5597122d5a78-Name" + "id": "0x55eadb4b39c0-EntityDecl", + "Name": "0x55eadb4b3a78-Name" }, { - "id": "0x5597122d5a78-Name", + "id": "0x55eadb4b3a78-Name", "source": "d" }, { - "id": "0x5597122d5ee0-DeclarationConstruct", + "id": "0x55eadb4b3ee0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5597122d5ee0-SpecificationConstruct" + "SpecificationConstruct": "0x55eadb4b3ee0-SpecificationConstruct" }, { - "id": "0x5597122d5ee0-SpecificationConstruct", + "id": "0x55eadb4b3ee0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5597122d5ee0-Statement" + "Statement": "0x55eadb4b3ee0-Statement" }, { - "id": "0x5597122d5ee0-Statement", - "statement": "0x5597122b83d0-TypeDeclarationStmt", + "id": "0x55eadb4b3ee0-Statement", + "statement": "0x55eadb4963d0-TypeDeclarationStmt", "source": "double precision, dimension(nj, ni) :: e" }, { - "id": "0x5597122b83d0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5597122b8400-DeclarationTypeSpec", + "id": "0x55eadb4963d0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb496400-DeclarationTypeSpec", "AttrSpec": [ - "0x5597122c1860-AttrSpec" + "0x55eadb49f860-AttrSpec" ], "EntityDecl": [ - "0x5597122d5df0-EntityDecl" + "0x55eadb4b3df0-EntityDecl" ] }, { - "id": "0x5597122b8400-DeclarationTypeSpec", + "id": "0x55eadb496400-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5597122b8400-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55eadb496400-IntrinsicTypeSpec" }, { - "id": "0x5597122b8400-IntrinsicTypeSpec", + "id": "0x55eadb496400-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x5597122b8400-DoublePrecision" + "DoublePrecision": "0x55eadb496400-DoublePrecision" }, { - "id": "0x5597122b8400-DoublePrecision" + "id": "0x55eadb496400-DoublePrecision" }, { - "id": "0x5597122c1860-AttrSpec", + "id": "0x55eadb49f860-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x5597122c1860-ArraySpec" + "ArraySpec": "0x55eadb49f860-ArraySpec" }, { - "id": "0x5597122c1860-ArraySpec", + "id": "0x55eadb49f860-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x5597122d5dc0-ExplicitShapeSpec", - "0x5597122d5d90-ExplicitShapeSpec" + "0x55eadb4b3dc0-ExplicitShapeSpec", + "0x55eadb4b3d90-ExplicitShapeSpec" ] }, { - "id": "0x5597122d5dc0-ExplicitShapeSpec", - "upper_bound": "0x5597122d5dc0-SpecificationExpr" + "id": "0x55eadb4b3dc0-ExplicitShapeSpec", + "upper_bound": "0x55eadb4b3dc0-SpecificationExpr" }, { - "id": "0x5597122d5dc0-SpecificationExpr", - "Expr": "0x5597122d5b00-Expr" + "id": "0x55eadb4b3dc0-SpecificationExpr", + "Expr": "0x55eadb4b3b00-Expr" }, { - "id": "0x5597122d5b00-Expr", + "id": "0x55eadb4b3b00-Expr", "variantKey": "Designator", - "Designator": "0x5597122d3290-Designator" + "Designator": "0x55eadb4b1290-Designator" }, { - "id": "0x5597122d3290-Designator", + "id": "0x55eadb4b1290-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d32a0-DataRef" + "DataRef": "0x55eadb4b12a0-DataRef" }, { - "id": "0x5597122d32a0-DataRef", + "id": "0x55eadb4b12a0-DataRef", "variantKey": "Name", - "Name": "0x5597122d32a0-Name" + "Name": "0x55eadb4b12a0-Name" }, { - "id": "0x5597122d32a0-Name", + "id": "0x55eadb4b12a0-Name", "source": "nj" }, { - "id": "0x5597122d5d90-ExplicitShapeSpec", - "upper_bound": "0x5597122d5d90-SpecificationExpr" + "id": "0x55eadb4b3d90-ExplicitShapeSpec", + "upper_bound": "0x55eadb4b3d90-SpecificationExpr" }, { - "id": "0x5597122d5d90-SpecificationExpr", - "Expr": "0x5597122d5ca0-Expr" + "id": "0x55eadb4b3d90-SpecificationExpr", + "Expr": "0x55eadb4b3ca0-Expr" }, { - "id": "0x5597122d5ca0-Expr", + "id": "0x55eadb4b3ca0-Expr", "variantKey": "Designator", - "Designator": "0x5597122d5c40-Designator" + "Designator": "0x55eadb4b3c40-Designator" }, { - "id": "0x5597122d5c40-Designator", + "id": "0x55eadb4b3c40-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d5c50-DataRef" + "DataRef": "0x55eadb4b3c50-DataRef" }, { - "id": "0x5597122d5c50-DataRef", + "id": "0x55eadb4b3c50-DataRef", "variantKey": "Name", - "Name": "0x5597122d5c50-Name" + "Name": "0x55eadb4b3c50-Name" }, { - "id": "0x5597122d5c50-Name", + "id": "0x55eadb4b3c50-Name", "source": "ni" }, { - "id": "0x5597122d5df0-EntityDecl", - "Name": "0x5597122d5ea8-Name" + "id": "0x55eadb4b3df0-EntityDecl", + "Name": "0x55eadb4b3ea8-Name" }, { - "id": "0x5597122d5ea8-Name", + "id": "0x55eadb4b3ea8-Name", "source": "e" }, { - "id": "0x5597122d6310-DeclarationConstruct", + "id": "0x55eadb4b4310-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5597122d6310-SpecificationConstruct" + "SpecificationConstruct": "0x55eadb4b4310-SpecificationConstruct" }, { - "id": "0x5597122d6310-SpecificationConstruct", + "id": "0x55eadb4b4310-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5597122d6310-Statement" + "Statement": "0x55eadb4b4310-Statement" }, { - "id": "0x5597122d6310-Statement", - "statement": "0x5597122d1d80-TypeDeclarationStmt", + "id": "0x55eadb4b4310-Statement", + "statement": "0x55eadb4afd80-TypeDeclarationStmt", "source": "double precision, dimension(nl, nj) :: f" }, { - "id": "0x5597122d1d80-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5597122d1db0-DeclarationTypeSpec", + "id": "0x55eadb4afd80-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4afdb0-DeclarationTypeSpec", "AttrSpec": [ - "0x5597122af6a0-AttrSpec" + "0x55eadb48d6a0-AttrSpec" ], "EntityDecl": [ - "0x5597122d6220-EntityDecl" + "0x55eadb4b4220-EntityDecl" ] }, { - "id": "0x5597122d1db0-DeclarationTypeSpec", + "id": "0x55eadb4afdb0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5597122d1db0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55eadb4afdb0-IntrinsicTypeSpec" }, { - "id": "0x5597122d1db0-IntrinsicTypeSpec", + "id": "0x55eadb4afdb0-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x5597122d1db0-DoublePrecision" + "DoublePrecision": "0x55eadb4afdb0-DoublePrecision" }, { - "id": "0x5597122d1db0-DoublePrecision" + "id": "0x55eadb4afdb0-DoublePrecision" }, { - "id": "0x5597122af6a0-AttrSpec", + "id": "0x55eadb48d6a0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x5597122af6a0-ArraySpec" + "ArraySpec": "0x55eadb48d6a0-ArraySpec" }, { - "id": "0x5597122af6a0-ArraySpec", + "id": "0x55eadb48d6a0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x5597122d61f0-ExplicitShapeSpec", - "0x5597122d61c0-ExplicitShapeSpec" + "0x55eadb4b41f0-ExplicitShapeSpec", + "0x55eadb4b41c0-ExplicitShapeSpec" ] }, { - "id": "0x5597122d61f0-ExplicitShapeSpec", - "upper_bound": "0x5597122d61f0-SpecificationExpr" + "id": "0x55eadb4b41f0-ExplicitShapeSpec", + "upper_bound": "0x55eadb4b41f0-SpecificationExpr" }, { - "id": "0x5597122d61f0-SpecificationExpr", - "Expr": "0x5597122d5f30-Expr" + "id": "0x55eadb4b41f0-SpecificationExpr", + "Expr": "0x55eadb4b3f30-Expr" }, { - "id": "0x5597122d5f30-Expr", + "id": "0x55eadb4b3f30-Expr", "variantKey": "Designator", - "Designator": "0x5597122d57b0-Designator" + "Designator": "0x55eadb4b37b0-Designator" }, { - "id": "0x5597122d57b0-Designator", + "id": "0x55eadb4b37b0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d57c0-DataRef" + "DataRef": "0x55eadb4b37c0-DataRef" }, { - "id": "0x5597122d57c0-DataRef", + "id": "0x55eadb4b37c0-DataRef", "variantKey": "Name", - "Name": "0x5597122d57c0-Name" + "Name": "0x55eadb4b37c0-Name" }, { - "id": "0x5597122d57c0-Name", + "id": "0x55eadb4b37c0-Name", "source": "nl" }, { - "id": "0x5597122d61c0-ExplicitShapeSpec", - "upper_bound": "0x5597122d61c0-SpecificationExpr" + "id": "0x55eadb4b41c0-ExplicitShapeSpec", + "upper_bound": "0x55eadb4b41c0-SpecificationExpr" }, { - "id": "0x5597122d61c0-SpecificationExpr", - "Expr": "0x5597122d60d0-Expr" + "id": "0x55eadb4b41c0-SpecificationExpr", + "Expr": "0x55eadb4b40d0-Expr" }, { - "id": "0x5597122d60d0-Expr", + "id": "0x55eadb4b40d0-Expr", "variantKey": "Designator", - "Designator": "0x5597122d6070-Designator" + "Designator": "0x55eadb4b4070-Designator" }, { - "id": "0x5597122d6070-Designator", + "id": "0x55eadb4b4070-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d6080-DataRef" + "DataRef": "0x55eadb4b4080-DataRef" }, { - "id": "0x5597122d6080-DataRef", + "id": "0x55eadb4b4080-DataRef", "variantKey": "Name", - "Name": "0x5597122d6080-Name" + "Name": "0x55eadb4b4080-Name" }, { - "id": "0x5597122d6080-Name", + "id": "0x55eadb4b4080-Name", "source": "nj" }, { - "id": "0x5597122d6220-EntityDecl", - "Name": "0x5597122d62d8-Name" + "id": "0x55eadb4b4220-EntityDecl", + "Name": "0x55eadb4b42d8-Name" }, { - "id": "0x5597122d62d8-Name", + "id": "0x55eadb4b42d8-Name", "source": "f" }, { - "id": "0x5597122d4800-DeclarationConstruct", + "id": "0x55eadb4b2800-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5597122d4800-SpecificationConstruct" + "SpecificationConstruct": "0x55eadb4b2800-SpecificationConstruct" }, { - "id": "0x5597122d4800-SpecificationConstruct", + "id": "0x55eadb4b2800-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5597122d4800-Statement" + "Statement": "0x55eadb4b2800-Statement" }, { - "id": "0x5597122d4800-Statement", - "statement": "0x5597122d1e90-TypeDeclarationStmt", + "id": "0x55eadb4b2800-Statement", + "statement": "0x55eadb4afe90-TypeDeclarationStmt", "source": "double precision, dimension(nl, ni) :: g" }, { - "id": "0x5597122d1e90-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5597122d1ec0-DeclarationTypeSpec", + "id": "0x55eadb4afe90-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4afec0-DeclarationTypeSpec", "AttrSpec": [ - "0x5597122b5bf0-AttrSpec" + "0x55eadb493bf0-AttrSpec" ], "EntityDecl": [ - "0x5597122d72b0-EntityDecl" + "0x55eadb4b52b0-EntityDecl" ] }, { - "id": "0x5597122d1ec0-DeclarationTypeSpec", + "id": "0x55eadb4afec0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5597122d1ec0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55eadb4afec0-IntrinsicTypeSpec" }, { - "id": "0x5597122d1ec0-IntrinsicTypeSpec", + "id": "0x55eadb4afec0-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x5597122d1ec0-DoublePrecision" + "DoublePrecision": "0x55eadb4afec0-DoublePrecision" }, { - "id": "0x5597122d1ec0-DoublePrecision" + "id": "0x55eadb4afec0-DoublePrecision" }, { - "id": "0x5597122b5bf0-AttrSpec", + "id": "0x55eadb493bf0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x5597122b5bf0-ArraySpec" + "ArraySpec": "0x55eadb493bf0-ArraySpec" }, { - "id": "0x5597122b5bf0-ArraySpec", + "id": "0x55eadb493bf0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x5597122c1fa0-ExplicitShapeSpec", - "0x5597122d65f0-ExplicitShapeSpec" + "0x55eadb49ffa0-ExplicitShapeSpec", + "0x55eadb4b45f0-ExplicitShapeSpec" ] }, { - "id": "0x5597122c1fa0-ExplicitShapeSpec", - "upper_bound": "0x5597122c1fa0-SpecificationExpr" + "id": "0x55eadb49ffa0-ExplicitShapeSpec", + "upper_bound": "0x55eadb49ffa0-SpecificationExpr" }, { - "id": "0x5597122c1fa0-SpecificationExpr", - "Expr": "0x5597122d6360-Expr" + "id": "0x55eadb49ffa0-SpecificationExpr", + "Expr": "0x55eadb4b4360-Expr" }, { - "id": "0x5597122d6360-Expr", + "id": "0x55eadb4b4360-Expr", "variantKey": "Designator", - "Designator": "0x5597122d5be0-Designator" + "Designator": "0x55eadb4b3be0-Designator" }, { - "id": "0x5597122d5be0-Designator", + "id": "0x55eadb4b3be0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d5bf0-DataRef" + "DataRef": "0x55eadb4b3bf0-DataRef" }, { - "id": "0x5597122d5bf0-DataRef", + "id": "0x55eadb4b3bf0-DataRef", "variantKey": "Name", - "Name": "0x5597122d5bf0-Name" + "Name": "0x55eadb4b3bf0-Name" }, { - "id": "0x5597122d5bf0-Name", + "id": "0x55eadb4b3bf0-Name", "source": "nl" }, { - "id": "0x5597122d65f0-ExplicitShapeSpec", - "upper_bound": "0x5597122d65f0-SpecificationExpr" + "id": "0x55eadb4b45f0-ExplicitShapeSpec", + "upper_bound": "0x55eadb4b45f0-SpecificationExpr" }, { - "id": "0x5597122d65f0-SpecificationExpr", - "Expr": "0x5597122d6500-Expr" + "id": "0x55eadb4b45f0-SpecificationExpr", + "Expr": "0x55eadb4b4500-Expr" }, { - "id": "0x5597122d6500-Expr", + "id": "0x55eadb4b4500-Expr", "variantKey": "Designator", - "Designator": "0x5597122d64a0-Designator" + "Designator": "0x55eadb4b44a0-Designator" }, { - "id": "0x5597122d64a0-Designator", + "id": "0x55eadb4b44a0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d64b0-DataRef" + "DataRef": "0x55eadb4b44b0-DataRef" }, { - "id": "0x5597122d64b0-DataRef", + "id": "0x55eadb4b44b0-DataRef", "variantKey": "Name", - "Name": "0x5597122d64b0-Name" + "Name": "0x55eadb4b44b0-Name" }, { - "id": "0x5597122d64b0-Name", + "id": "0x55eadb4b44b0-Name", "source": "ni" }, { - "id": "0x5597122d72b0-EntityDecl", - "Name": "0x5597122d7368-Name" + "id": "0x55eadb4b52b0-EntityDecl", + "Name": "0x55eadb4b5368-Name" }, { - "id": "0x5597122d7368-Name", + "id": "0x55eadb4b5368-Name", "source": "g" }, { - "id": "0x5597122d3240-DeclarationConstruct", + "id": "0x55eadb4b1240-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5597122d3240-SpecificationConstruct" + "SpecificationConstruct": "0x55eadb4b1240-SpecificationConstruct" }, { - "id": "0x5597122d3240-SpecificationConstruct", + "id": "0x55eadb4b1240-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5597122d3240-Statement" + "Statement": "0x55eadb4b1240-Statement" }, { - "id": "0x5597122d3240-Statement", - "statement": "0x5597122cdfd0-TypeDeclarationStmt", + "id": "0x55eadb4b1240-Statement", + "statement": "0x55eadb4abfd0-TypeDeclarationStmt", "source": "integer :: ni, nj, nk, nl, nm" }, { - "id": "0x5597122cdfd0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5597122ce000-DeclarationTypeSpec", + "id": "0x55eadb4abfd0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4ac000-DeclarationTypeSpec", "EntityDecl": [ - "0x5597122d7760-EntityDecl", - "0x5597122d73a0-EntityDecl", - "0x5597122d7490-EntityDecl", - "0x5597122d7580-EntityDecl", - "0x5597122d7670-EntityDecl" + "0x55eadb4b5760-EntityDecl", + "0x55eadb4b53a0-EntityDecl", + "0x55eadb4b5490-EntityDecl", + "0x55eadb4b5580-EntityDecl", + "0x55eadb4b5670-EntityDecl" ] }, { - "id": "0x5597122ce000-DeclarationTypeSpec", + "id": "0x55eadb4ac000-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5597122ce000-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55eadb4ac000-IntrinsicTypeSpec" }, { - "id": "0x5597122ce000-IntrinsicTypeSpec", + "id": "0x55eadb4ac000-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x5597122ce000-IntegerTypeSpec" + "IntegerTypeSpec": "0x55eadb4ac000-IntegerTypeSpec" }, { - "id": "0x5597122ce000-IntegerTypeSpec" + "id": "0x55eadb4ac000-IntegerTypeSpec" }, { - "id": "0x5597122d7760-EntityDecl", - "Name": "0x5597122d7818-Name" + "id": "0x55eadb4b5760-EntityDecl", + "Name": "0x55eadb4b5818-Name" }, { - "id": "0x5597122d7818-Name", + "id": "0x55eadb4b5818-Name", "source": "ni" }, { - "id": "0x5597122d73a0-EntityDecl", - "Name": "0x5597122d7458-Name" + "id": "0x55eadb4b53a0-EntityDecl", + "Name": "0x55eadb4b5458-Name" }, { - "id": "0x5597122d7458-Name", + "id": "0x55eadb4b5458-Name", "source": "nj" }, { - "id": "0x5597122d7490-EntityDecl", - "Name": "0x5597122d7548-Name" + "id": "0x55eadb4b5490-EntityDecl", + "Name": "0x55eadb4b5548-Name" }, { - "id": "0x5597122d7548-Name", + "id": "0x55eadb4b5548-Name", "source": "nk" }, { - "id": "0x5597122d7580-EntityDecl", - "Name": "0x5597122d7638-Name" + "id": "0x55eadb4b5580-EntityDecl", + "Name": "0x55eadb4b5638-Name" }, { - "id": "0x5597122d7638-Name", + "id": "0x55eadb4b5638-Name", "source": "nl" }, { - "id": "0x5597122d7670-EntityDecl", - "Name": "0x5597122d7728-Name" + "id": "0x55eadb4b5670-EntityDecl", + "Name": "0x55eadb4b5728-Name" }, { - "id": "0x5597122d7728-Name", + "id": "0x55eadb4b5728-Name", "source": "nm" }, { - "id": "0x5597122cc370-DeclarationConstruct", + "id": "0x55eadb4aa370-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5597122cc370-SpecificationConstruct" + "SpecificationConstruct": "0x55eadb4aa370-SpecificationConstruct" }, { - "id": "0x5597122cc370-SpecificationConstruct", + "id": "0x55eadb4aa370-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5597122cc370-Statement" + "Statement": "0x55eadb4aa370-Statement" }, { - "id": "0x5597122cc370-Statement", - "statement": "0x5597122cda60-TypeDeclarationStmt", + "id": "0x55eadb4aa370-Statement", + "statement": "0x55eadb4aba60-TypeDeclarationStmt", "source": "integer :: i, j, k" }, { - "id": "0x5597122cda60-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5597122cda90-DeclarationTypeSpec", + "id": "0x55eadb4aba60-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4aba90-DeclarationTypeSpec", "EntityDecl": [ - "0x5597122d7a30-EntityDecl", - "0x5597122d7850-EntityDecl", - "0x5597122d7940-EntityDecl" + "0x55eadb4b5a30-EntityDecl", + "0x55eadb4b5850-EntityDecl", + "0x55eadb4b5940-EntityDecl" ] }, { - "id": "0x5597122cda90-DeclarationTypeSpec", + "id": "0x55eadb4aba90-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5597122cda90-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55eadb4aba90-IntrinsicTypeSpec" }, { - "id": "0x5597122cda90-IntrinsicTypeSpec", + "id": "0x55eadb4aba90-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x5597122cda90-IntegerTypeSpec" + "IntegerTypeSpec": "0x55eadb4aba90-IntegerTypeSpec" }, { - "id": "0x5597122cda90-IntegerTypeSpec" + "id": "0x55eadb4aba90-IntegerTypeSpec" }, { - "id": "0x5597122d7a30-EntityDecl", - "Name": "0x5597122d7ae8-Name" + "id": "0x55eadb4b5a30-EntityDecl", + "Name": "0x55eadb4b5ae8-Name" }, { - "id": "0x5597122d7ae8-Name", + "id": "0x55eadb4b5ae8-Name", "source": "i" }, { - "id": "0x5597122d7850-EntityDecl", - "Name": "0x5597122d7908-Name" + "id": "0x55eadb4b5850-EntityDecl", + "Name": "0x55eadb4b5908-Name" }, { - "id": "0x5597122d7908-Name", + "id": "0x55eadb4b5908-Name", "source": "j" }, { - "id": "0x5597122d7940-EntityDecl", - "Name": "0x5597122d79f8-Name" + "id": "0x55eadb4b5940-EntityDecl", + "Name": "0x55eadb4b59f8-Name" }, { - "id": "0x5597122d79f8-Name", + "id": "0x55eadb4b59f8-Name", "source": "k" }, { - "id": "0x5597122df3d8-ExecutionPart", + "id": "0x55eadb4bd3d8-ExecutionPart", "ExecutionPartConstruct": [ - "0x5597122d9ae0-ExecutionPartConstruct", - "0x5597122dc340-ExecutionPartConstruct", - "0x5597122deba0-ExecutionPartConstruct" + "0x55eadb4b7ae0-ExecutionPartConstruct", + "0x55eadb4ba340-ExecutionPartConstruct", + "0x55eadb4bcba0-ExecutionPartConstruct" ] }, { - "id": "0x5597122df3d8-ExecutionPartConstruct" + "id": "0x55eadb4bd3d8-ExecutionPartConstruct" }, { - "id": "0x5597122d9ae0-ExecutionPartConstruct", + "id": "0x55eadb4b7ae0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122d9ae0-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4b7ae0-ExecutableConstruct" }, { - "id": "0x5597122d9ae0-ExecutableConstruct", + "id": "0x55eadb4b7ae0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x5597122da680-DoConstruct" + "DoConstruct": "0x55eadb4b8680-DoConstruct" }, { - "id": "0x5597122da680-DoConstruct", - "Statement": "0x5597122da6d8-Statement", + "id": "0x55eadb4b8680-DoConstruct", + "Statement": "0x55eadb4b86d8-Statement", "ExecutionPartConstruct": [ - "0x5597122d9940-ExecutionPartConstruct" + "0x55eadb4b7940-ExecutionPartConstruct" ], - "Statement": "0x5597122da680-Statement" + "Statement": "0x55eadb4b8680-Statement" }, { - "id": "0x5597122da6d8-Statement", - "statement": "0x5597122da6e8-NonLabelDoStmt", + "id": "0x55eadb4b86d8-Statement", + "statement": "0x55eadb4b86e8-NonLabelDoStmt", "source": "do i = 1, ni" }, { - "id": "0x5597122da6e8-NonLabelDoStmt", - "LoopControl": "0x5597122da6e8-LoopControl" + "id": "0x55eadb4b86e8-NonLabelDoStmt", + "LoopControl": "0x55eadb4b86e8-LoopControl" }, { - "id": "0x5597122da6e8-LoopControl", + "id": "0x55eadb4b86e8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x5597122da6e8-LoopBounds" + "LoopBounds": "0x55eadb4b86e8-LoopBounds" }, { - "id": "0x5597122da6e8-LoopBounds", - "var": "0x5597122da6e8-Name", - "lower": "0x5597122d7b10-Expr", - "upper": "0x5597122d7bf0-Expr" + "id": "0x55eadb4b86e8-LoopBounds", + "var": "0x55eadb4b86e8-Name", + "lower": "0x55eadb4b5b10-Expr", + "upper": "0x55eadb4b5bf0-Expr" }, { - "id": "0x5597122da6e8-Name", + "id": "0x55eadb4b86e8-Name", "source": "i" }, { - "id": "0x5597122d7b10-Expr", + "id": "0x55eadb4b5b10-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122d7b30-LiteralConstant" + "LiteralConstant": "0x55eadb4b5b30-LiteralConstant" }, { - "id": "0x5597122d7b30-LiteralConstant", + "id": "0x55eadb4b5b30-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122d7b30-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4b5b30-IntLiteralConstant" }, { - "id": "0x5597122d7b30-IntLiteralConstant", + "id": "0x55eadb4b5b30-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5597122d7bf0-Expr", + "id": "0x55eadb4b5bf0-Expr", "variantKey": "Designator", - "Designator": "0x5597122d1240-Designator" + "Designator": "0x55eadb4af240-Designator" }, { - "id": "0x5597122d1240-Designator", + "id": "0x55eadb4af240-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d1250-DataRef" + "DataRef": "0x55eadb4af250-DataRef" }, { - "id": "0x5597122d1250-DataRef", + "id": "0x55eadb4af250-DataRef", "variantKey": "Name", - "Name": "0x5597122d1250-Name" + "Name": "0x55eadb4af250-Name" }, { - "id": "0x5597122d1250-Name", + "id": "0x55eadb4af250-Name", "source": "ni" }, { - "id": "0x5597122da6c0-ExecutionPartConstruct" + "id": "0x55eadb4b86c0-ExecutionPartConstruct" }, { - "id": "0x5597122d9940-ExecutionPartConstruct", + "id": "0x55eadb4b7940-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122d9940-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4b7940-ExecutableConstruct" }, { - "id": "0x5597122d9940-ExecutableConstruct", + "id": "0x55eadb4b7940-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x5597122da560-DoConstruct" + "DoConstruct": "0x55eadb4b8560-DoConstruct" }, { - "id": "0x5597122da560-DoConstruct", - "Statement": "0x5597122da5b8-Statement", + "id": "0x55eadb4b8560-DoConstruct", + "Statement": "0x55eadb4b85b8-Statement", "ExecutionPartConstruct": [ - "0x5597122d8400-ExecutionPartConstruct", - "0x5597122d98e0-ExecutionPartConstruct" + "0x55eadb4b6400-ExecutionPartConstruct", + "0x55eadb4b78e0-ExecutionPartConstruct" ], - "Statement": "0x5597122da560-Statement" + "Statement": "0x55eadb4b8560-Statement" }, { - "id": "0x5597122da5b8-Statement", - "statement": "0x5597122da5c8-NonLabelDoStmt", + "id": "0x55eadb4b85b8-Statement", + "statement": "0x55eadb4b85c8-NonLabelDoStmt", "source": "do j = 1, nj" }, { - "id": "0x5597122da5c8-NonLabelDoStmt", - "LoopControl": "0x5597122da5c8-LoopControl" + "id": "0x55eadb4b85c8-NonLabelDoStmt", + "LoopControl": "0x55eadb4b85c8-LoopControl" }, { - "id": "0x5597122da5c8-LoopControl", + "id": "0x55eadb4b85c8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x5597122da5c8-LoopBounds" + "LoopBounds": "0x55eadb4b85c8-LoopBounds" }, { - "id": "0x5597122da5c8-LoopBounds", - "var": "0x5597122da5c8-Name", - "lower": "0x5597122d7cd0-Expr", - "upper": "0x5597122d7db0-Expr" + "id": "0x55eadb4b85c8-LoopBounds", + "var": "0x55eadb4b85c8-Name", + "lower": "0x55eadb4b5cd0-Expr", + "upper": "0x55eadb4b5db0-Expr" }, { - "id": "0x5597122da5c8-Name", + "id": "0x55eadb4b85c8-Name", "source": "j" }, { - "id": "0x5597122d7cd0-Expr", + "id": "0x55eadb4b5cd0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122d7cf0-LiteralConstant" + "LiteralConstant": "0x55eadb4b5cf0-LiteralConstant" }, { - "id": "0x5597122d7cf0-LiteralConstant", + "id": "0x55eadb4b5cf0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122d7cf0-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4b5cf0-IntLiteralConstant" }, { - "id": "0x5597122d7cf0-IntLiteralConstant", + "id": "0x55eadb4b5cf0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5597122d7db0-Expr", + "id": "0x55eadb4b5db0-Expr", "variantKey": "Designator", - "Designator": "0x5597122d6010-Designator" + "Designator": "0x55eadb4b4010-Designator" }, { - "id": "0x5597122d6010-Designator", + "id": "0x55eadb4b4010-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d6020-DataRef" + "DataRef": "0x55eadb4b4020-DataRef" }, { - "id": "0x5597122d6020-DataRef", + "id": "0x55eadb4b4020-DataRef", "variantKey": "Name", - "Name": "0x5597122d6020-Name" + "Name": "0x55eadb4b4020-Name" }, { - "id": "0x5597122d6020-Name", + "id": "0x55eadb4b4020-Name", "source": "nj" }, { - "id": "0x5597122da5a0-ExecutionPartConstruct" + "id": "0x55eadb4b85a0-ExecutionPartConstruct" }, { - "id": "0x5597122d8400-ExecutionPartConstruct", + "id": "0x55eadb4b6400-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122d8400-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4b6400-ExecutableConstruct" }, { - "id": "0x5597122d8400-ExecutableConstruct", + "id": "0x55eadb4b6400-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122d8400-Statement" + "Statement": "0x55eadb4b6400-Statement" }, { - "id": "0x5597122d8400-Statement", - "statement": "0x5597122d8410-ActionStmt", + "id": "0x55eadb4b6400-Statement", + "statement": "0x55eadb4b6410-ActionStmt", "source": "e(j, i) = 0.0" }, { - "id": "0x5597122d8410-ActionStmt", + "id": "0x55eadb4b6410-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5597122d82e0-AssignmentStmt" + "AssignmentStmt": "0x55eadb4b62e0-AssignmentStmt" }, { - "id": "0x5597122d82e0-AssignmentStmt", - "Variable": "0x5597122d83c0-Variable", - "Expr": "0x5597122d82f0-Expr" + "id": "0x55eadb4b62e0-AssignmentStmt", + "Variable": "0x55eadb4b63c0-Variable", + "Expr": "0x55eadb4b62f0-Expr" }, { - "id": "0x5597122d83c0-Variable", + "id": "0x55eadb4b63c0-Variable", "variantKey": "Designator", - "Designator": "0x5597122ff240-Designator" + "Designator": "0x55eadb4dd240-Designator" }, { - "id": "0x5597122ff240-Designator", + "id": "0x55eadb4dd240-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122ff250-DataRef" + "DataRef": "0x55eadb4dd250-DataRef" }, { - "id": "0x5597122ff250-DataRef", + "id": "0x55eadb4dd250-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x5597122e2f20-ArrayElement" + "ArrayElement": "0x55eadb4c0f20-ArrayElement" }, { - "id": "0x5597122e2f20-ArrayElement", - "base": "0x5597122e2f20-DataRef", + "id": "0x55eadb4c0f20-ArrayElement", + "base": "0x55eadb4c0f20-DataRef", "subscripts": [ - "0x5597123950e0-SectionSubscript", - "0x559712395130-SectionSubscript" + "0x55eadb5730e0-SectionSubscript", + "0x55eadb573130-SectionSubscript" ] }, { - "id": "0x5597122e2f20-DataRef", + "id": "0x55eadb4c0f20-DataRef", "variantKey": "Name", - "Name": "0x5597122e2f20-Name" + "Name": "0x55eadb4c0f20-Name" }, { - "id": "0x5597122e2f20-Name", + "id": "0x55eadb4c0f20-Name", "source": "e" }, { - "id": "0x5597123950e0-SectionSubscript", + "id": "0x55eadb5730e0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122d02e0-Expr" + "Expr": "0x55eadb4ae2e0-Expr" }, { - "id": "0x5597122d02e0-Expr", + "id": "0x55eadb4ae2e0-Expr", "variantKey": "Designator", - "Designator": "0x5597122d7fd0-Designator" + "Designator": "0x55eadb4b5fd0-Designator" }, { - "id": "0x5597122d7fd0-Designator", + "id": "0x55eadb4b5fd0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d7fe0-DataRef" + "DataRef": "0x55eadb4b5fe0-DataRef" }, { - "id": "0x5597122d7fe0-DataRef", + "id": "0x55eadb4b5fe0-DataRef", "variantKey": "Name", - "Name": "0x5597122d7fe0-Name" + "Name": "0x55eadb4b5fe0-Name" }, { - "id": "0x5597122d7fe0-Name", + "id": "0x55eadb4b5fe0-Name", "source": "j" }, { - "id": "0x559712395130-SectionSubscript", + "id": "0x55eadb573130-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122d1f10-Expr" + "Expr": "0x55eadb4aff10-Expr" }, { - "id": "0x5597122d1f10-Expr", + "id": "0x55eadb4aff10-Expr", "variantKey": "Designator", - "Designator": "0x5597122d0f10-Designator" + "Designator": "0x55eadb4aef10-Designator" }, { - "id": "0x5597122d0f10-Designator", + "id": "0x55eadb4aef10-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d0f20-DataRef" + "DataRef": "0x55eadb4aef20-DataRef" }, { - "id": "0x5597122d0f20-DataRef", + "id": "0x55eadb4aef20-DataRef", "variantKey": "Name", - "Name": "0x5597122d0f20-Name" + "Name": "0x55eadb4aef20-Name" }, { - "id": "0x5597122d0f20-Name", + "id": "0x55eadb4aef20-Name", "source": "i" }, { - "id": "0x5597122d82f0-Expr", + "id": "0x55eadb4b62f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122d8310-LiteralConstant" + "LiteralConstant": "0x55eadb4b6310-LiteralConstant" }, { - "id": "0x5597122d8310-LiteralConstant", + "id": "0x55eadb4b6310-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x5597122d8310-RealLiteralConstant" + "RealLiteralConstant": "0x55eadb4b6310-RealLiteralConstant" }, { - "id": "0x5597122d8310-RealLiteralConstant", - "real": "0x5597122d8310-Real" + "id": "0x55eadb4b6310-RealLiteralConstant", + "real": "0x55eadb4b6310-Real" }, { - "id": "0x5597122d8310-Real", + "id": "0x55eadb4b6310-Real", "source": "0.0" }, { - "id": "0x5597122d98e0-ExecutionPartConstruct", + "id": "0x55eadb4b78e0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122d98e0-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4b78e0-ExecutableConstruct" }, { - "id": "0x5597122d98e0-ExecutableConstruct", + "id": "0x55eadb4b78e0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x5597122da440-DoConstruct" + "DoConstruct": "0x55eadb4b8440-DoConstruct" }, { - "id": "0x5597122da440-DoConstruct", - "Statement": "0x5597122da498-Statement", + "id": "0x55eadb4b8440-DoConstruct", + "Statement": "0x55eadb4b8498-Statement", "ExecutionPartConstruct": [ - "0x5597122da3f0-ExecutionPartConstruct" + "0x55eadb4b83f0-ExecutionPartConstruct" ], - "Statement": "0x5597122da440-Statement" + "Statement": "0x55eadb4b8440-Statement" }, { - "id": "0x5597122da498-Statement", - "statement": "0x5597122da4a8-NonLabelDoStmt", + "id": "0x55eadb4b8498-Statement", + "statement": "0x55eadb4b84a8-NonLabelDoStmt", "source": "do k = 1, nk" }, { - "id": "0x5597122da4a8-NonLabelDoStmt", - "LoopControl": "0x5597122da4a8-LoopControl" + "id": "0x55eadb4b84a8-NonLabelDoStmt", + "LoopControl": "0x55eadb4b84a8-LoopControl" }, { - "id": "0x5597122da4a8-LoopControl", + "id": "0x55eadb4b84a8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x5597122da4a8-LoopBounds" + "LoopBounds": "0x55eadb4b84a8-LoopBounds" }, { - "id": "0x5597122da4a8-LoopBounds", - "var": "0x5597122da4a8-Name", - "lower": "0x5597122d8450-Expr", - "upper": "0x5597122d8530-Expr" + "id": "0x55eadb4b84a8-LoopBounds", + "var": "0x55eadb4b84a8-Name", + "lower": "0x55eadb4b6450-Expr", + "upper": "0x55eadb4b6530-Expr" }, { - "id": "0x5597122da4a8-Name", + "id": "0x55eadb4b84a8-Name", "source": "k" }, { - "id": "0x5597122d8450-Expr", + "id": "0x55eadb4b6450-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122d8470-LiteralConstant" + "LiteralConstant": "0x55eadb4b6470-LiteralConstant" }, { - "id": "0x5597122d8470-LiteralConstant", + "id": "0x55eadb4b6470-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122d8470-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4b6470-IntLiteralConstant" }, { - "id": "0x5597122d8470-IntLiteralConstant", + "id": "0x55eadb4b6470-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5597122d8530-Expr", + "id": "0x55eadb4b6530-Expr", "variantKey": "Designator", - "Designator": "0x5597122cba20-Designator" + "Designator": "0x55eadb4a9a20-Designator" }, { - "id": "0x5597122cba20-Designator", + "id": "0x55eadb4a9a20-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122cba30-DataRef" + "DataRef": "0x55eadb4a9a30-DataRef" }, { - "id": "0x5597122cba30-DataRef", + "id": "0x55eadb4a9a30-DataRef", "variantKey": "Name", - "Name": "0x5597122cba30-Name" + "Name": "0x55eadb4a9a30-Name" }, { - "id": "0x5597122cba30-Name", + "id": "0x55eadb4a9a30-Name", "source": "nk" }, { - "id": "0x5597122da480-ExecutionPartConstruct" + "id": "0x55eadb4b8480-ExecutionPartConstruct" }, { - "id": "0x5597122da3f0-ExecutionPartConstruct", + "id": "0x55eadb4b83f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122da3f0-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4b83f0-ExecutableConstruct" }, { - "id": "0x5597122da3f0-ExecutableConstruct", + "id": "0x55eadb4b83f0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122da3f0-Statement" + "Statement": "0x55eadb4b83f0-Statement" }, { - "id": "0x5597122da3f0-Statement", - "statement": "0x5597122da400-ActionStmt", + "id": "0x55eadb4b83f0-Statement", + "statement": "0x55eadb4b8400-ActionStmt", "source": "e(j, i) = e(j, i) + a(k, i) * b(j, k)" }, { - "id": "0x5597122da400-ActionStmt", + "id": "0x55eadb4b8400-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5597122da2d0-AssignmentStmt" + "AssignmentStmt": "0x55eadb4b82d0-AssignmentStmt" }, { - "id": "0x5597122da2d0-AssignmentStmt", - "Variable": "0x5597122da3b0-Variable", - "Expr": "0x5597122da2e0-Expr" + "id": "0x55eadb4b82d0-AssignmentStmt", + "Variable": "0x55eadb4b83b0-Variable", + "Expr": "0x55eadb4b82e0-Expr" }, { - "id": "0x5597122da3b0-Variable", + "id": "0x55eadb4b83b0-Variable", "variantKey": "Designator", - "Designator": "0x5597122cdca0-Designator" + "Designator": "0x55eadb4abca0-Designator" }, { - "id": "0x5597122cdca0-Designator", + "id": "0x55eadb4abca0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122cdcb0-DataRef" + "DataRef": "0x55eadb4abcb0-DataRef" }, { - "id": "0x5597122cdcb0-DataRef", + "id": "0x55eadb4abcb0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x5597122e40f0-ArrayElement" + "ArrayElement": "0x55eadb4c20f0-ArrayElement" }, { - "id": "0x5597122e40f0-ArrayElement", - "base": "0x5597122e40f0-DataRef", + "id": "0x55eadb4c20f0-ArrayElement", + "base": "0x55eadb4c20f0-DataRef", "subscripts": [ - "0x5597122d2d70-SectionSubscript", - "0x559712395890-SectionSubscript" + "0x55eadb4b0d70-SectionSubscript", + "0x55eadb573890-SectionSubscript" ] }, { - "id": "0x5597122e40f0-DataRef", + "id": "0x55eadb4c20f0-DataRef", "variantKey": "Name", - "Name": "0x5597122e40f0-Name" + "Name": "0x55eadb4c20f0-Name" }, { - "id": "0x5597122e40f0-Name", + "id": "0x55eadb4c20f0-Name", "source": "e" }, { - "id": "0x5597122d2d70-SectionSubscript", + "id": "0x55eadb4b0d70-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122d7e90-Expr" + "Expr": "0x55eadb4b5e90-Expr" }, { - "id": "0x5597122d7e90-Expr", + "id": "0x55eadb4b5e90-Expr", "variantKey": "Designator", - "Designator": "0x5597122d86f0-Designator" + "Designator": "0x55eadb4b66f0-Designator" }, { - "id": "0x5597122d86f0-Designator", + "id": "0x55eadb4b66f0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d8700-DataRef" + "DataRef": "0x55eadb4b6700-DataRef" }, { - "id": "0x5597122d8700-DataRef", + "id": "0x55eadb4b6700-DataRef", "variantKey": "Name", - "Name": "0x5597122d8700-Name" + "Name": "0x55eadb4b6700-Name" }, { - "id": "0x5597122d8700-Name", + "id": "0x55eadb4b6700-Name", "source": "j" }, { - "id": "0x559712395890-SectionSubscript", + "id": "0x55eadb573890-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122d8030-Expr" + "Expr": "0x55eadb4b6030-Expr" }, { - "id": "0x5597122d8030-Expr", + "id": "0x55eadb4b6030-Expr", "variantKey": "Designator", - "Designator": "0x5597122d6440-Designator" + "Designator": "0x55eadb4b4440-Designator" }, { - "id": "0x5597122d6440-Designator", + "id": "0x55eadb4b4440-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d6450-DataRef" + "DataRef": "0x55eadb4b4450-DataRef" }, { - "id": "0x5597122d6450-DataRef", + "id": "0x55eadb4b4450-DataRef", "variantKey": "Name", - "Name": "0x5597122d6450-Name" + "Name": "0x55eadb4b4450-Name" }, { - "id": "0x5597122d6450-Name", + "id": "0x55eadb4b4450-Name", "source": "i" }, { - "id": "0x5597122da2e0-Expr", + "id": "0x55eadb4b82e0-Expr", "variantKey": "Add", - "Add": "0x5597122da300-Add" + "Add": "0x55eadb4b8300-Add" }, { - "id": "0x5597122da300-Add", - "left": "0x5597122da1f0-Expr", - "right": "0x5597122da110-Expr", + "id": "0x55eadb4b8300-Add", + "left": "0x55eadb4b81f0-Expr", + "right": "0x55eadb4b8110-Expr", "op": "ADD" }, { - "id": "0x5597122da1f0-Expr", + "id": "0x55eadb4b81f0-Expr", "variantKey": "Designator", - "Designator": "0x5597122cb110-Designator" + "Designator": "0x55eadb4a9110-Designator" }, { - "id": "0x5597122cb110-Designator", + "id": "0x55eadb4a9110-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122cb120-DataRef" + "DataRef": "0x55eadb4a9120-DataRef" }, { - "id": "0x5597122cb120-DataRef", + "id": "0x55eadb4a9120-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x5597122c5af0-ArrayElement" + "ArrayElement": "0x55eadb4a3af0-ArrayElement" }, { - "id": "0x5597122c5af0-ArrayElement", - "base": "0x5597122c5af0-DataRef", + "id": "0x55eadb4a3af0-ArrayElement", + "base": "0x55eadb4a3af0-DataRef", "subscripts": [ - "0x559712395ab0-SectionSubscript", - "0x559712395b00-SectionSubscript" + "0x55eadb573ab0-SectionSubscript", + "0x55eadb573b00-SectionSubscript" ] }, { - "id": "0x5597122c5af0-DataRef", + "id": "0x55eadb4a3af0-DataRef", "variantKey": "Name", - "Name": "0x5597122c5af0-Name" + "Name": "0x55eadb4a3af0-Name" }, { - "id": "0x5597122c5af0-Name", + "id": "0x55eadb4a3af0-Name", "source": "e" }, { - "id": "0x559712395ab0-SectionSubscript", + "id": "0x55eadb573ab0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122d8610-Expr" + "Expr": "0x55eadb4b6610-Expr" }, { - "id": "0x5597122d8610-Expr", + "id": "0x55eadb4b6610-Expr", "variantKey": "Designator", - "Designator": "0x5597122d8dd0-Designator" + "Designator": "0x55eadb4b6dd0-Designator" }, { - "id": "0x5597122d8dd0-Designator", + "id": "0x55eadb4b6dd0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d8de0-DataRef" + "DataRef": "0x55eadb4b6de0-DataRef" }, { - "id": "0x5597122d8de0-DataRef", + "id": "0x55eadb4b6de0-DataRef", "variantKey": "Name", - "Name": "0x5597122d8de0-Name" + "Name": "0x55eadb4b6de0-Name" }, { - "id": "0x5597122d8de0-Name", + "id": "0x55eadb4b6de0-Name", "source": "j" }, { - "id": "0x559712395b00-SectionSubscript", + "id": "0x55eadb573b00-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122d8750-Expr" + "Expr": "0x55eadb4b6750-Expr" }, { - "id": "0x5597122d8750-Expr", + "id": "0x55eadb4b6750-Expr", "variantKey": "Designator", - "Designator": "0x5597122d8bd0-Designator" + "Designator": "0x55eadb4b6bd0-Designator" }, { - "id": "0x5597122d8bd0-Designator", + "id": "0x55eadb4b6bd0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d8be0-DataRef" + "DataRef": "0x55eadb4b6be0-DataRef" }, { - "id": "0x5597122d8be0-DataRef", + "id": "0x55eadb4b6be0-DataRef", "variantKey": "Name", - "Name": "0x5597122d8be0-Name" + "Name": "0x55eadb4b6be0-Name" }, { - "id": "0x5597122d8be0-Name", + "id": "0x55eadb4b6be0-Name", "source": "i" }, { - "id": "0x5597122da110-Expr", + "id": "0x55eadb4b8110-Expr", "variantKey": "Multiply", - "Multiply": "0x5597122da130-Multiply" + "Multiply": "0x55eadb4b8130-Multiply" }, { - "id": "0x5597122da130-Multiply", - "left": "0x5597122da030-Expr", - "right": "0x5597122d9f50-Expr", + "id": "0x55eadb4b8130-Multiply", + "left": "0x55eadb4b8030-Expr", + "right": "0x55eadb4b7f50-Expr", "op": "MULTIPLY" }, { - "id": "0x5597122da030-Expr", + "id": "0x55eadb4b8030-Expr", "variantKey": "Designator", - "Designator": "0x559712395e40-Designator" + "Designator": "0x55eadb573e40-Designator" }, { - "id": "0x559712395e40-Designator", + "id": "0x55eadb573e40-Designator", "variantKey": "DataRef", - "DataRef": "0x559712395e50-DataRef" + "DataRef": "0x55eadb573e50-DataRef" }, { - "id": "0x559712395e50-DataRef", + "id": "0x55eadb573e50-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x5597122d8240-ArrayElement" + "ArrayElement": "0x55eadb4b6240-ArrayElement" }, { - "id": "0x5597122d8240-ArrayElement", - "base": "0x5597122d8240-DataRef", + "id": "0x55eadb4b6240-ArrayElement", + "base": "0x55eadb4b6240-DataRef", "subscripts": [ - "0x559712395db0-SectionSubscript", - "0x559712395e00-SectionSubscript" + "0x55eadb573db0-SectionSubscript", + "0x55eadb573e00-SectionSubscript" ] }, { - "id": "0x5597122d8240-DataRef", + "id": "0x55eadb4b6240-DataRef", "variantKey": "Name", - "Name": "0x5597122d8240-Name" + "Name": "0x55eadb4b6240-Name" }, { - "id": "0x5597122d8240-Name", + "id": "0x55eadb4b6240-Name", "source": "a" }, { - "id": "0x559712395db0-SectionSubscript", + "id": "0x55eadb573db0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122d8c30-Expr" + "Expr": "0x55eadb4b6c30-Expr" }, { - "id": "0x5597122d8c30-Expr", + "id": "0x55eadb4b6c30-Expr", "variantKey": "Designator", - "Designator": "0x5597122d94b0-Designator" + "Designator": "0x55eadb4b74b0-Designator" }, { - "id": "0x5597122d94b0-Designator", + "id": "0x55eadb4b74b0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d94c0-DataRef" + "DataRef": "0x55eadb4b74c0-DataRef" }, { - "id": "0x5597122d94c0-DataRef", + "id": "0x55eadb4b74c0-DataRef", "variantKey": "Name", - "Name": "0x5597122d94c0-Name" + "Name": "0x55eadb4b74c0-Name" }, { - "id": "0x5597122d94c0-Name", + "id": "0x55eadb4b74c0-Name", "source": "k" }, { - "id": "0x559712395e00-SectionSubscript", + "id": "0x55eadb573e00-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122d8e30-Expr" + "Expr": "0x55eadb4b6e30-Expr" }, { - "id": "0x5597122d8e30-Expr", + "id": "0x55eadb4b6e30-Expr", "variantKey": "Designator", - "Designator": "0x5597122d92b0-Designator" + "Designator": "0x55eadb4b72b0-Designator" }, { - "id": "0x5597122d92b0-Designator", + "id": "0x55eadb4b72b0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d92c0-DataRef" + "DataRef": "0x55eadb4b72c0-DataRef" }, { - "id": "0x5597122d92c0-DataRef", + "id": "0x55eadb4b72c0-DataRef", "variantKey": "Name", - "Name": "0x5597122d92c0-Name" + "Name": "0x55eadb4b72c0-Name" }, { - "id": "0x5597122d92c0-Name", + "id": "0x55eadb4b72c0-Name", "source": "i" }, { - "id": "0x5597122d9f50-Expr", + "id": "0x55eadb4b7f50-Expr", "variantKey": "Designator", - "Designator": "0x559712396230-Designator" + "Designator": "0x55eadb574230-Designator" }, { - "id": "0x559712396230-Designator", + "id": "0x55eadb574230-Designator", "variantKey": "DataRef", - "DataRef": "0x559712396240-DataRef" + "DataRef": "0x55eadb574240-DataRef" }, { - "id": "0x559712396240-DataRef", + "id": "0x55eadb574240-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x5597122d9700-ArrayElement" + "ArrayElement": "0x55eadb4b7700-ArrayElement" }, { - "id": "0x5597122d9700-ArrayElement", - "base": "0x5597122d9700-DataRef", + "id": "0x55eadb4b7700-ArrayElement", + "base": "0x55eadb4b7700-DataRef", "subscripts": [ - "0x5597123961a0-SectionSubscript", - "0x5597123961f0-SectionSubscript" + "0x55eadb5741a0-SectionSubscript", + "0x55eadb5741f0-SectionSubscript" ] }, { - "id": "0x5597122d9700-DataRef", + "id": "0x55eadb4b7700-DataRef", "variantKey": "Name", - "Name": "0x5597122d9700-Name" + "Name": "0x55eadb4b7700-Name" }, { - "id": "0x5597122d9700-Name", + "id": "0x55eadb4b7700-Name", "source": "b" }, { - "id": "0x5597123961a0-SectionSubscript", + "id": "0x55eadb5741a0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122d9310-Expr" + "Expr": "0x55eadb4b7310-Expr" }, { - "id": "0x5597122d9310-Expr", + "id": "0x55eadb4b7310-Expr", "variantKey": "Designator", - "Designator": "0x5597122d9b90-Designator" + "Designator": "0x55eadb4b7b90-Designator" }, { - "id": "0x5597122d9b90-Designator", + "id": "0x55eadb4b7b90-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d9ba0-DataRef" + "DataRef": "0x55eadb4b7ba0-DataRef" }, { - "id": "0x5597122d9ba0-DataRef", + "id": "0x55eadb4b7ba0-DataRef", "variantKey": "Name", - "Name": "0x5597122d9ba0-Name" + "Name": "0x55eadb4b7ba0-Name" }, { - "id": "0x5597122d9ba0-Name", + "id": "0x55eadb4b7ba0-Name", "source": "j" }, { - "id": "0x5597123961f0-SectionSubscript", + "id": "0x55eadb5741f0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122d9510-Expr" + "Expr": "0x55eadb4b7510-Expr" }, { - "id": "0x5597122d9510-Expr", + "id": "0x55eadb4b7510-Expr", "variantKey": "Designator", - "Designator": "0x5597122d9990-Designator" + "Designator": "0x55eadb4b7990-Designator" }, { - "id": "0x5597122d9990-Designator", + "id": "0x55eadb4b7990-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d99a0-DataRef" + "DataRef": "0x55eadb4b79a0-DataRef" }, { - "id": "0x5597122d99a0-DataRef", + "id": "0x55eadb4b79a0-DataRef", "variantKey": "Name", - "Name": "0x5597122d99a0-Name" + "Name": "0x55eadb4b79a0-Name" }, { - "id": "0x5597122d99a0-Name", + "id": "0x55eadb4b79a0-Name", "source": "k" }, { - "id": "0x5597122da440-Statement", - "statement": "0x5597122da450-EndDoStmt", + "id": "0x55eadb4b8440-Statement", + "statement": "0x55eadb4b8450-EndDoStmt", "source": "end do" }, { - "id": "0x5597122da450-EndDoStmt" + "id": "0x55eadb4b8450-EndDoStmt" }, { - "id": "0x5597122da560-Statement", - "statement": "0x5597122da570-EndDoStmt", + "id": "0x55eadb4b8560-Statement", + "statement": "0x55eadb4b8570-EndDoStmt", "source": "end do" }, { - "id": "0x5597122da570-EndDoStmt" + "id": "0x55eadb4b8570-EndDoStmt" }, { - "id": "0x5597122da680-Statement", - "statement": "0x5597122da690-EndDoStmt", + "id": "0x55eadb4b8680-Statement", + "statement": "0x55eadb4b8690-EndDoStmt", "source": "end do" }, { - "id": "0x5597122da690-EndDoStmt" + "id": "0x55eadb4b8690-EndDoStmt" }, { - "id": "0x5597122dc340-ExecutionPartConstruct", + "id": "0x55eadb4ba340-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122dc340-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4ba340-ExecutableConstruct" }, { - "id": "0x5597122dc340-ExecutableConstruct", + "id": "0x55eadb4ba340-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x5597122dcee0-DoConstruct" + "DoConstruct": "0x55eadb4baee0-DoConstruct" }, { - "id": "0x5597122dcee0-DoConstruct", - "Statement": "0x5597122dcf38-Statement", + "id": "0x55eadb4baee0-DoConstruct", + "Statement": "0x55eadb4baf38-Statement", "ExecutionPartConstruct": [ - "0x5597122dc1a0-ExecutionPartConstruct" + "0x55eadb4ba1a0-ExecutionPartConstruct" ], - "Statement": "0x5597122dcee0-Statement" + "Statement": "0x55eadb4baee0-Statement" }, { - "id": "0x5597122dcf38-Statement", - "statement": "0x5597122dcf48-NonLabelDoStmt", + "id": "0x55eadb4baf38-Statement", + "statement": "0x55eadb4baf48-NonLabelDoStmt", "source": "do i = 1, nj" }, { - "id": "0x5597122dcf48-NonLabelDoStmt", - "LoopControl": "0x5597122dcf48-LoopControl" + "id": "0x55eadb4baf48-NonLabelDoStmt", + "LoopControl": "0x55eadb4baf48-LoopControl" }, { - "id": "0x5597122dcf48-LoopControl", + "id": "0x55eadb4baf48-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x5597122dcf48-LoopBounds" + "LoopBounds": "0x55eadb4baf48-LoopBounds" }, { - "id": "0x5597122dcf48-LoopBounds", - "var": "0x5597122dcf48-Name", - "lower": "0x5597122da7a0-Expr", - "upper": "0x5597122da880-Expr" + "id": "0x55eadb4baf48-LoopBounds", + "var": "0x55eadb4baf48-Name", + "lower": "0x55eadb4b87a0-Expr", + "upper": "0x55eadb4b8880-Expr" }, { - "id": "0x5597122dcf48-Name", + "id": "0x55eadb4baf48-Name", "source": "i" }, { - "id": "0x5597122da7a0-Expr", + "id": "0x55eadb4b87a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122da7c0-LiteralConstant" + "LiteralConstant": "0x55eadb4b87c0-LiteralConstant" }, { - "id": "0x5597122da7c0-LiteralConstant", + "id": "0x55eadb4b87c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122da7c0-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4b87c0-IntLiteralConstant" }, { - "id": "0x5597122da7c0-IntLiteralConstant", + "id": "0x55eadb4b87c0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5597122da880-Expr", + "id": "0x55eadb4b8880-Expr", "variantKey": "Designator", - "Designator": "0x5597122d9cd0-Designator" + "Designator": "0x55eadb4b7cd0-Designator" }, { - "id": "0x5597122d9cd0-Designator", + "id": "0x55eadb4b7cd0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d9ce0-DataRef" + "DataRef": "0x55eadb4b7ce0-DataRef" }, { - "id": "0x5597122d9ce0-DataRef", + "id": "0x55eadb4b7ce0-DataRef", "variantKey": "Name", - "Name": "0x5597122d9ce0-Name" + "Name": "0x55eadb4b7ce0-Name" }, { - "id": "0x5597122d9ce0-Name", + "id": "0x55eadb4b7ce0-Name", "source": "nj" }, { - "id": "0x5597122dcf20-ExecutionPartConstruct" + "id": "0x55eadb4baf20-ExecutionPartConstruct" }, { - "id": "0x5597122dc1a0-ExecutionPartConstruct", + "id": "0x55eadb4ba1a0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122dc1a0-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4ba1a0-ExecutableConstruct" }, { - "id": "0x5597122dc1a0-ExecutableConstruct", + "id": "0x55eadb4ba1a0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x5597122dcdc0-DoConstruct" + "DoConstruct": "0x55eadb4badc0-DoConstruct" }, { - "id": "0x5597122dcdc0-DoConstruct", - "Statement": "0x5597122dce18-Statement", + "id": "0x55eadb4badc0-DoConstruct", + "Statement": "0x55eadb4bae18-Statement", "ExecutionPartConstruct": [ - "0x5597122d8b80-ExecutionPartConstruct", - "0x5597122dc140-ExecutionPartConstruct" + "0x55eadb4b6b80-ExecutionPartConstruct", + "0x55eadb4ba140-ExecutionPartConstruct" ], - "Statement": "0x5597122dcdc0-Statement" + "Statement": "0x55eadb4badc0-Statement" }, { - "id": "0x5597122dce18-Statement", - "statement": "0x5597122dce28-NonLabelDoStmt", + "id": "0x55eadb4bae18-Statement", + "statement": "0x55eadb4bae28-NonLabelDoStmt", "source": "do j = 1, nl" }, { - "id": "0x5597122dce28-NonLabelDoStmt", - "LoopControl": "0x5597122dce28-LoopControl" + "id": "0x55eadb4bae28-NonLabelDoStmt", + "LoopControl": "0x55eadb4bae28-LoopControl" }, { - "id": "0x5597122dce28-LoopControl", + "id": "0x55eadb4bae28-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x5597122dce28-LoopBounds" + "LoopBounds": "0x55eadb4bae28-LoopBounds" }, { - "id": "0x5597122dce28-LoopBounds", - "var": "0x5597122dce28-Name", - "lower": "0x5597122da960-Expr", - "upper": "0x5597122daa40-Expr" + "id": "0x55eadb4bae28-LoopBounds", + "var": "0x55eadb4bae28-Name", + "lower": "0x55eadb4b8960-Expr", + "upper": "0x55eadb4b8a40-Expr" }, { - "id": "0x5597122dce28-Name", + "id": "0x55eadb4bae28-Name", "source": "j" }, { - "id": "0x5597122da960-Expr", + "id": "0x55eadb4b8960-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122da980-LiteralConstant" + "LiteralConstant": "0x55eadb4b8980-LiteralConstant" }, { - "id": "0x5597122da980-LiteralConstant", + "id": "0x55eadb4b8980-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122da980-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4b8980-IntLiteralConstant" }, { - "id": "0x5597122da980-IntLiteralConstant", + "id": "0x55eadb4b8980-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5597122daa40-Expr", + "id": "0x55eadb4b8a40-Expr", "variantKey": "Designator", - "Designator": "0x5597122d8280-Designator" + "Designator": "0x55eadb4b6280-Designator" }, { - "id": "0x5597122d8280-Designator", + "id": "0x55eadb4b6280-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d8290-DataRef" + "DataRef": "0x55eadb4b6290-DataRef" }, { - "id": "0x5597122d8290-DataRef", + "id": "0x55eadb4b6290-DataRef", "variantKey": "Name", - "Name": "0x5597122d8290-Name" + "Name": "0x55eadb4b6290-Name" }, { - "id": "0x5597122d8290-Name", + "id": "0x55eadb4b6290-Name", "source": "nl" }, { - "id": "0x5597122dce00-ExecutionPartConstruct" + "id": "0x55eadb4bae00-ExecutionPartConstruct" }, { - "id": "0x5597122d8b80-ExecutionPartConstruct", + "id": "0x55eadb4b6b80-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122d8b80-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4b6b80-ExecutableConstruct" }, { - "id": "0x5597122d8b80-ExecutableConstruct", + "id": "0x55eadb4b6b80-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122d8b80-Statement" + "Statement": "0x55eadb4b6b80-Statement" }, { - "id": "0x5597122d8b80-Statement", - "statement": "0x5597122d8b90-ActionStmt", + "id": "0x55eadb4b6b80-Statement", + "statement": "0x55eadb4b6b90-ActionStmt", "source": "f(j, i) = 0.0" }, { - "id": "0x5597122d8b90-ActionStmt", + "id": "0x55eadb4b6b90-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5597122daf00-AssignmentStmt" + "AssignmentStmt": "0x55eadb4b8f00-AssignmentStmt" }, { - "id": "0x5597122daf00-AssignmentStmt", - "Variable": "0x5597122dafe0-Variable", - "Expr": "0x5597122daf10-Expr" + "id": "0x55eadb4b8f00-AssignmentStmt", + "Variable": "0x55eadb4b8fe0-Variable", + "Expr": "0x55eadb4b8f10-Expr" }, { - "id": "0x5597122dafe0-Variable", + "id": "0x55eadb4b8fe0-Variable", "variantKey": "Designator", - "Designator": "0x5597122cbdb0-Designator" + "Designator": "0x55eadb4a9db0-Designator" }, { - "id": "0x5597122cbdb0-Designator", + "id": "0x55eadb4a9db0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122cbdc0-DataRef" + "DataRef": "0x55eadb4a9dc0-DataRef" }, { - "id": "0x5597122cbdc0-DataRef", + "id": "0x55eadb4a9dc0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x5597122d9de0-ArrayElement" + "ArrayElement": "0x55eadb4b7de0-ArrayElement" }, { - "id": "0x5597122d9de0-ArrayElement", - "base": "0x5597122d9de0-DataRef", + "id": "0x55eadb4b7de0-ArrayElement", + "base": "0x55eadb4b7de0-DataRef", "subscripts": [ - "0x5597122d8a70-SectionSubscript", - "0x559712397540-SectionSubscript" + "0x55eadb4b6a70-SectionSubscript", + "0x55eadb575540-SectionSubscript" ] }, { - "id": "0x5597122d9de0-DataRef", + "id": "0x55eadb4b7de0-DataRef", "variantKey": "Name", - "Name": "0x5597122d9de0-Name" + "Name": "0x55eadb4b7de0-Name" }, { - "id": "0x5597122d9de0-Name", + "id": "0x55eadb4b7de0-Name", "source": "f" }, { - "id": "0x5597122d8a70-SectionSubscript", + "id": "0x55eadb4b6a70-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122d99f0-Expr" + "Expr": "0x55eadb4b79f0-Expr" }, { - "id": "0x5597122d99f0-Expr", + "id": "0x55eadb4b79f0-Expr", "variantKey": "Designator", - "Designator": "0x5597122d8f10-Designator" + "Designator": "0x55eadb4b6f10-Designator" }, { - "id": "0x5597122d8f10-Designator", + "id": "0x55eadb4b6f10-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d8f20-DataRef" + "DataRef": "0x55eadb4b6f20-DataRef" }, { - "id": "0x5597122d8f20-DataRef", + "id": "0x55eadb4b6f20-DataRef", "variantKey": "Name", - "Name": "0x5597122d8f20-Name" + "Name": "0x55eadb4b6f20-Name" }, { - "id": "0x5597122d8f20-Name", + "id": "0x55eadb4b6f20-Name", "source": "j" }, { - "id": "0x559712397540-SectionSubscript", + "id": "0x55eadb575540-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122d9bf0-Expr" + "Expr": "0x55eadb4b7bf0-Expr" }, { - "id": "0x5597122d9bf0-Expr", + "id": "0x55eadb4b7bf0-Expr", "variantKey": "Designator", - "Designator": "0x5597122d8ab0-Designator" + "Designator": "0x55eadb4b6ab0-Designator" }, { - "id": "0x5597122d8ab0-Designator", + "id": "0x55eadb4b6ab0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d8ac0-DataRef" + "DataRef": "0x55eadb4b6ac0-DataRef" }, { - "id": "0x5597122d8ac0-DataRef", + "id": "0x55eadb4b6ac0-DataRef", "variantKey": "Name", - "Name": "0x5597122d8ac0-Name" + "Name": "0x55eadb4b6ac0-Name" }, { - "id": "0x5597122d8ac0-Name", + "id": "0x55eadb4b6ac0-Name", "source": "i" }, { - "id": "0x5597122daf10-Expr", + "id": "0x55eadb4b8f10-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122daf30-LiteralConstant" + "LiteralConstant": "0x55eadb4b8f30-LiteralConstant" }, { - "id": "0x5597122daf30-LiteralConstant", + "id": "0x55eadb4b8f30-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x5597122daf30-RealLiteralConstant" + "RealLiteralConstant": "0x55eadb4b8f30-RealLiteralConstant" }, { - "id": "0x5597122daf30-RealLiteralConstant", - "real": "0x5597122daf30-Real" + "id": "0x55eadb4b8f30-RealLiteralConstant", + "real": "0x55eadb4b8f30-Real" }, { - "id": "0x5597122daf30-Real", + "id": "0x55eadb4b8f30-Real", "source": "0.0" }, { - "id": "0x5597122dc140-ExecutionPartConstruct", + "id": "0x55eadb4ba140-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122dc140-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4ba140-ExecutableConstruct" }, { - "id": "0x5597122dc140-ExecutableConstruct", + "id": "0x55eadb4ba140-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x5597122dcca0-DoConstruct" + "DoConstruct": "0x55eadb4baca0-DoConstruct" }, { - "id": "0x5597122dcca0-DoConstruct", - "Statement": "0x5597122dccf8-Statement", + "id": "0x55eadb4baca0-DoConstruct", + "Statement": "0x55eadb4bacf8-Statement", "ExecutionPartConstruct": [ - "0x5597122dcc50-ExecutionPartConstruct" + "0x55eadb4bac50-ExecutionPartConstruct" ], - "Statement": "0x5597122dcca0-Statement" + "Statement": "0x55eadb4baca0-Statement" }, { - "id": "0x5597122dccf8-Statement", - "statement": "0x5597122dcd08-NonLabelDoStmt", + "id": "0x55eadb4bacf8-Statement", + "statement": "0x55eadb4bad08-NonLabelDoStmt", "source": "do k = 1, nm" }, { - "id": "0x5597122dcd08-NonLabelDoStmt", - "LoopControl": "0x5597122dcd08-LoopControl" + "id": "0x55eadb4bad08-NonLabelDoStmt", + "LoopControl": "0x55eadb4bad08-LoopControl" }, { - "id": "0x5597122dcd08-LoopControl", + "id": "0x55eadb4bad08-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x5597122dcd08-LoopBounds" + "LoopBounds": "0x55eadb4bad08-LoopBounds" }, { - "id": "0x5597122dcd08-LoopBounds", - "var": "0x5597122dcd08-Name", - "lower": "0x5597122db010-Expr", - "upper": "0x5597122db0f0-Expr" + "id": "0x55eadb4bad08-LoopBounds", + "var": "0x55eadb4bad08-Name", + "lower": "0x55eadb4b9010-Expr", + "upper": "0x55eadb4b90f0-Expr" }, { - "id": "0x5597122dcd08-Name", + "id": "0x55eadb4bad08-Name", "source": "k" }, { - "id": "0x5597122db010-Expr", + "id": "0x55eadb4b9010-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122db030-LiteralConstant" + "LiteralConstant": "0x55eadb4b9030-LiteralConstant" }, { - "id": "0x5597122db030-LiteralConstant", + "id": "0x55eadb4b9030-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122db030-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4b9030-IntLiteralConstant" }, { - "id": "0x5597122db030-IntLiteralConstant", + "id": "0x55eadb4b9030-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5597122db0f0-Expr", + "id": "0x55eadb4b90f0-Expr", "variantKey": "Designator", - "Designator": "0x5597122d8d10-Designator" + "Designator": "0x55eadb4b6d10-Designator" }, { - "id": "0x5597122d8d10-Designator", + "id": "0x55eadb4b6d10-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d8d20-DataRef" + "DataRef": "0x55eadb4b6d20-DataRef" }, { - "id": "0x5597122d8d20-DataRef", + "id": "0x55eadb4b6d20-DataRef", "variantKey": "Name", - "Name": "0x5597122d8d20-Name" + "Name": "0x55eadb4b6d20-Name" }, { - "id": "0x5597122d8d20-Name", + "id": "0x55eadb4b6d20-Name", "source": "nm" }, { - "id": "0x5597122dcce0-ExecutionPartConstruct" + "id": "0x55eadb4bace0-ExecutionPartConstruct" }, { - "id": "0x5597122dcc50-ExecutionPartConstruct", + "id": "0x55eadb4bac50-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122dcc50-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4bac50-ExecutableConstruct" }, { - "id": "0x5597122dcc50-ExecutableConstruct", + "id": "0x55eadb4bac50-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122dcc50-Statement" + "Statement": "0x55eadb4bac50-Statement" }, { - "id": "0x5597122dcc50-Statement", - "statement": "0x5597122dcc60-ActionStmt", + "id": "0x55eadb4bac50-Statement", + "statement": "0x55eadb4bac60-ActionStmt", "source": "f(j, i) = f(j, i) + c(k, i) * d(j, k)" }, { - "id": "0x5597122dcc60-ActionStmt", + "id": "0x55eadb4bac60-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5597122dcb30-AssignmentStmt" + "AssignmentStmt": "0x55eadb4bab30-AssignmentStmt" }, { - "id": "0x5597122dcb30-AssignmentStmt", - "Variable": "0x5597122dcc10-Variable", - "Expr": "0x5597122dcb40-Expr" + "id": "0x55eadb4bab30-AssignmentStmt", + "Variable": "0x55eadb4bac10-Variable", + "Expr": "0x55eadb4bab40-Expr" }, { - "id": "0x5597122dcc10-Variable", + "id": "0x55eadb4bac10-Variable", "variantKey": "Designator", - "Designator": "0x5597122d9ed0-Designator" + "Designator": "0x55eadb4b7ed0-Designator" }, { - "id": "0x5597122d9ed0-Designator", + "id": "0x55eadb4b7ed0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d9ee0-DataRef" + "DataRef": "0x55eadb4b7ee0-DataRef" }, { - "id": "0x5597122d9ee0-DataRef", + "id": "0x55eadb4b7ee0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x559712396aa0-ArrayElement" + "ArrayElement": "0x55eadb574aa0-ArrayElement" }, { - "id": "0x559712396aa0-ArrayElement", - "base": "0x559712396aa0-DataRef", + "id": "0x55eadb574aa0-ArrayElement", + "base": "0x55eadb574aa0-DataRef", "subscripts": [ - "0x559712398e90-SectionSubscript", - "0x559712398ee0-SectionSubscript" + "0x55eadb576e90-SectionSubscript", + "0x55eadb576ee0-SectionSubscript" ] }, { - "id": "0x559712396aa0-DataRef", + "id": "0x55eadb574aa0-DataRef", "variantKey": "Name", - "Name": "0x559712396aa0-Name" + "Name": "0x55eadb574aa0-Name" }, { - "id": "0x559712396aa0-Name", + "id": "0x55eadb574aa0-Name", "source": "f" }, { - "id": "0x559712398e90-SectionSubscript", + "id": "0x55eadb576e90-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122dab20-Expr" + "Expr": "0x55eadb4b8b20-Expr" }, { - "id": "0x5597122dab20-Expr", + "id": "0x55eadb4b8b20-Expr", "variantKey": "Designator", - "Designator": "0x5597122d93f0-Designator" + "Designator": "0x55eadb4b73f0-Designator" }, { - "id": "0x5597122d93f0-Designator", + "id": "0x55eadb4b73f0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d9400-DataRef" + "DataRef": "0x55eadb4b7400-DataRef" }, { - "id": "0x5597122d9400-DataRef", + "id": "0x55eadb4b7400-DataRef", "variantKey": "Name", - "Name": "0x5597122d9400-Name" + "Name": "0x55eadb4b7400-Name" }, { - "id": "0x5597122d9400-Name", + "id": "0x55eadb4b7400-Name", "source": "j" }, { - "id": "0x559712398ee0-SectionSubscript", + "id": "0x55eadb576ee0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122dac00-Expr" + "Expr": "0x55eadb4b8c00-Expr" }, { - "id": "0x5597122dac00-Expr", + "id": "0x55eadb4b8c00-Expr", "variantKey": "Designator", - "Designator": "0x5597122d7f70-Designator" + "Designator": "0x55eadb4b5f70-Designator" }, { - "id": "0x5597122d7f70-Designator", + "id": "0x55eadb4b5f70-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d7f80-DataRef" + "DataRef": "0x55eadb4b5f80-DataRef" }, { - "id": "0x5597122d7f80-DataRef", + "id": "0x55eadb4b5f80-DataRef", "variantKey": "Name", - "Name": "0x5597122d7f80-Name" + "Name": "0x55eadb4b5f80-Name" }, { - "id": "0x5597122d7f80-Name", + "id": "0x55eadb4b5f80-Name", "source": "i" }, { - "id": "0x5597122dcb40-Expr", + "id": "0x55eadb4bab40-Expr", "variantKey": "Add", - "Add": "0x5597122dcb60-Add" + "Add": "0x55eadb4bab60-Add" }, { - "id": "0x5597122dcb60-Add", - "left": "0x5597122dca50-Expr", - "right": "0x5597122dc970-Expr", + "id": "0x55eadb4bab60-Add", + "left": "0x55eadb4baa50-Expr", + "right": "0x55eadb4ba970-Expr", "op": "ADD" }, { - "id": "0x5597122dca50-Expr", + "id": "0x55eadb4baa50-Expr", "variantKey": "Designator", - "Designator": "0x5597123991b0-Designator" + "Designator": "0x55eadb5771b0-Designator" }, { - "id": "0x5597123991b0-Designator", + "id": "0x55eadb5771b0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597123991c0-DataRef" + "DataRef": "0x55eadb5771c0-DataRef" }, { - "id": "0x5597123991c0-DataRef", + "id": "0x55eadb5771c0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x5597122db390-ArrayElement" + "ArrayElement": "0x55eadb4b9390-ArrayElement" }, { - "id": "0x5597122db390-ArrayElement", - "base": "0x5597122db390-DataRef", + "id": "0x55eadb4b9390-ArrayElement", + "base": "0x55eadb4b9390-DataRef", "subscripts": [ - "0x559712399120-SectionSubscript", - "0x559712399170-SectionSubscript" + "0x55eadb577120-SectionSubscript", + "0x55eadb577170-SectionSubscript" ] }, { - "id": "0x5597122db390-DataRef", + "id": "0x55eadb4b9390-DataRef", "variantKey": "Name", - "Name": "0x5597122db390-Name" + "Name": "0x55eadb4b9390-Name" }, { - "id": "0x5597122db390-Name", + "id": "0x55eadb4b9390-Name", "source": "f" }, { - "id": "0x559712399120-SectionSubscript", + "id": "0x55eadb577120-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122db1d0-Expr" + "Expr": "0x55eadb4b91d0-Expr" }, { - "id": "0x5597122db1d0-Expr", + "id": "0x55eadb4b91d0-Expr", "variantKey": "Designator", - "Designator": "0x5597122d9450-Designator" + "Designator": "0x55eadb4b7450-Designator" }, { - "id": "0x5597122d9450-Designator", + "id": "0x55eadb4b7450-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d9460-DataRef" + "DataRef": "0x55eadb4b7460-DataRef" }, { - "id": "0x5597122d9460-DataRef", + "id": "0x55eadb4b7460-DataRef", "variantKey": "Name", - "Name": "0x5597122d9460-Name" + "Name": "0x55eadb4b7460-Name" }, { - "id": "0x5597122d9460-Name", + "id": "0x55eadb4b7460-Name", "source": "j" }, { - "id": "0x559712399170-SectionSubscript", + "id": "0x55eadb577170-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122db2b0-Expr" + "Expr": "0x55eadb4b92b0-Expr" }, { - "id": "0x5597122db2b0-Expr", + "id": "0x55eadb4b92b0-Expr", "variantKey": "Designator", - "Designator": "0x5597122d9b30-Designator" + "Designator": "0x55eadb4b7b30-Designator" }, { - "id": "0x5597122d9b30-Designator", + "id": "0x55eadb4b7b30-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d9b40-DataRef" + "DataRef": "0x55eadb4b7b40-DataRef" }, { - "id": "0x5597122d9b40-DataRef", + "id": "0x55eadb4b7b40-DataRef", "variantKey": "Name", - "Name": "0x5597122d9b40-Name" + "Name": "0x55eadb4b7b40-Name" }, { - "id": "0x5597122d9b40-Name", + "id": "0x55eadb4b7b40-Name", "source": "i" }, { - "id": "0x5597122dc970-Expr", + "id": "0x55eadb4ba970-Expr", "variantKey": "Multiply", - "Multiply": "0x5597122dc990-Multiply" + "Multiply": "0x55eadb4ba990-Multiply" }, { - "id": "0x5597122dc990-Multiply", - "left": "0x5597122dc890-Expr", - "right": "0x5597122dc7b0-Expr", + "id": "0x55eadb4ba990-Multiply", + "left": "0x55eadb4ba890-Expr", + "right": "0x55eadb4ba7b0-Expr", "op": "MULTIPLY" }, { - "id": "0x5597122dc890-Expr", + "id": "0x55eadb4ba890-Expr", "variantKey": "Designator", - "Designator": "0x559712399550-Designator" + "Designator": "0x55eadb577550-Designator" }, { - "id": "0x559712399550-Designator", + "id": "0x55eadb577550-Designator", "variantKey": "DataRef", - "DataRef": "0x559712399560-DataRef" + "DataRef": "0x55eadb577560-DataRef" }, { - "id": "0x559712399560-DataRef", + "id": "0x55eadb577560-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x5597122db880-ArrayElement" + "ArrayElement": "0x55eadb4b9880-ArrayElement" }, { - "id": "0x5597122db880-ArrayElement", - "base": "0x5597122db880-DataRef", + "id": "0x55eadb4b9880-ArrayElement", + "base": "0x55eadb4b9880-DataRef", "subscripts": [ - "0x5597122db980-SectionSubscript", - "0x559712399510-SectionSubscript" + "0x55eadb4b9980-SectionSubscript", + "0x55eadb577510-SectionSubscript" ] }, { - "id": "0x5597122db880-DataRef", + "id": "0x55eadb4b9880-DataRef", "variantKey": "Name", - "Name": "0x5597122db880-Name" + "Name": "0x55eadb4b9880-Name" }, { - "id": "0x5597122db880-Name", + "id": "0x55eadb4b9880-Name", "source": "c" }, { - "id": "0x5597122db980-SectionSubscript", + "id": "0x55eadb4b9980-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122db5b0-Expr" + "Expr": "0x55eadb4b95b0-Expr" }, { - "id": "0x5597122db5b0-Expr", + "id": "0x55eadb4b95b0-Expr", "variantKey": "Designator", - "Designator": "0x5597122dbd10-Designator" + "Designator": "0x55eadb4b9d10-Designator" }, { - "id": "0x5597122dbd10-Designator", + "id": "0x55eadb4b9d10-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122dbd20-DataRef" + "DataRef": "0x55eadb4b9d20-DataRef" }, { - "id": "0x5597122dbd20-DataRef", + "id": "0x55eadb4b9d20-DataRef", "variantKey": "Name", - "Name": "0x5597122dbd20-Name" + "Name": "0x55eadb4b9d20-Name" }, { - "id": "0x5597122dbd20-Name", + "id": "0x55eadb4b9d20-Name", "source": "k" }, { - "id": "0x559712399510-SectionSubscript", + "id": "0x55eadb577510-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122db690-Expr" + "Expr": "0x55eadb4b9690-Expr" }, { - "id": "0x5597122db690-Expr", + "id": "0x55eadb4b9690-Expr", "variantKey": "Designator", - "Designator": "0x5597122dbb10-Designator" + "Designator": "0x55eadb4b9b10-Designator" }, { - "id": "0x5597122dbb10-Designator", + "id": "0x55eadb4b9b10-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122dbb20-DataRef" + "DataRef": "0x55eadb4b9b20-DataRef" }, { - "id": "0x5597122dbb20-DataRef", + "id": "0x55eadb4b9b20-DataRef", "variantKey": "Name", - "Name": "0x5597122dbb20-Name" + "Name": "0x55eadb4b9b20-Name" }, { - "id": "0x5597122dbb20-Name", + "id": "0x55eadb4b9b20-Name", "source": "i" }, { - "id": "0x5597122dc7b0-Expr", + "id": "0x55eadb4ba7b0-Expr", "variantKey": "Designator", - "Designator": "0x5597123999c0-Designator" + "Designator": "0x55eadb5779c0-Designator" }, { - "id": "0x5597123999c0-Designator", + "id": "0x55eadb5779c0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597123999d0-DataRef" + "DataRef": "0x55eadb5779d0-DataRef" }, { - "id": "0x5597123999d0-DataRef", + "id": "0x55eadb5779d0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x5597122dbf60-ArrayElement" + "ArrayElement": "0x55eadb4b9f60-ArrayElement" }, { - "id": "0x5597122dbf60-ArrayElement", - "base": "0x5597122dbf60-DataRef", + "id": "0x55eadb4b9f60-ArrayElement", + "base": "0x55eadb4b9f60-DataRef", "subscripts": [ - "0x559712399930-SectionSubscript", - "0x559712399980-SectionSubscript" + "0x55eadb577930-SectionSubscript", + "0x55eadb577980-SectionSubscript" ] }, { - "id": "0x5597122dbf60-DataRef", + "id": "0x55eadb4b9f60-DataRef", "variantKey": "Name", - "Name": "0x5597122dbf60-Name" + "Name": "0x55eadb4b9f60-Name" }, { - "id": "0x5597122dbf60-Name", + "id": "0x55eadb4b9f60-Name", "source": "d" }, { - "id": "0x559712399930-SectionSubscript", + "id": "0x55eadb577930-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122dbb70-Expr" + "Expr": "0x55eadb4b9b70-Expr" }, { - "id": "0x5597122dbb70-Expr", + "id": "0x55eadb4b9b70-Expr", "variantKey": "Designator", - "Designator": "0x5597122dc3f0-Designator" + "Designator": "0x55eadb4ba3f0-Designator" }, { - "id": "0x5597122dc3f0-Designator", + "id": "0x55eadb4ba3f0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122dc400-DataRef" + "DataRef": "0x55eadb4ba400-DataRef" }, { - "id": "0x5597122dc400-DataRef", + "id": "0x55eadb4ba400-DataRef", "variantKey": "Name", - "Name": "0x5597122dc400-Name" + "Name": "0x55eadb4ba400-Name" }, { - "id": "0x5597122dc400-Name", + "id": "0x55eadb4ba400-Name", "source": "j" }, { - "id": "0x559712399980-SectionSubscript", + "id": "0x55eadb577980-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122dbd70-Expr" + "Expr": "0x55eadb4b9d70-Expr" }, { - "id": "0x5597122dbd70-Expr", + "id": "0x55eadb4b9d70-Expr", "variantKey": "Designator", - "Designator": "0x5597122dc1f0-Designator" + "Designator": "0x55eadb4ba1f0-Designator" }, { - "id": "0x5597122dc1f0-Designator", + "id": "0x55eadb4ba1f0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122dc200-DataRef" + "DataRef": "0x55eadb4ba200-DataRef" }, { - "id": "0x5597122dc200-DataRef", + "id": "0x55eadb4ba200-DataRef", "variantKey": "Name", - "Name": "0x5597122dc200-Name" + "Name": "0x55eadb4ba200-Name" }, { - "id": "0x5597122dc200-Name", + "id": "0x55eadb4ba200-Name", "source": "k" }, { - "id": "0x5597122dcca0-Statement", - "statement": "0x5597122dccb0-EndDoStmt", + "id": "0x55eadb4baca0-Statement", + "statement": "0x55eadb4bacb0-EndDoStmt", "source": "end do" }, { - "id": "0x5597122dccb0-EndDoStmt" + "id": "0x55eadb4bacb0-EndDoStmt" }, { - "id": "0x5597122dcdc0-Statement", - "statement": "0x5597122dcdd0-EndDoStmt", + "id": "0x55eadb4badc0-Statement", + "statement": "0x55eadb4badd0-EndDoStmt", "source": "end do" }, { - "id": "0x5597122dcdd0-EndDoStmt" + "id": "0x55eadb4badd0-EndDoStmt" }, { - "id": "0x5597122dcee0-Statement", - "statement": "0x5597122dcef0-EndDoStmt", + "id": "0x55eadb4baee0-Statement", + "statement": "0x55eadb4baef0-EndDoStmt", "source": "end do" }, { - "id": "0x5597122dcef0-EndDoStmt" + "id": "0x55eadb4baef0-EndDoStmt" }, { - "id": "0x5597122deba0-ExecutionPartConstruct", + "id": "0x55eadb4bcba0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122deba0-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4bcba0-ExecutableConstruct" }, { - "id": "0x5597122deba0-ExecutableConstruct", + "id": "0x55eadb4bcba0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x5597122d32f0-DoConstruct" + "DoConstruct": "0x55eadb4b12f0-DoConstruct" }, { - "id": "0x5597122d32f0-DoConstruct", - "Statement": "0x5597122d3348-Statement", + "id": "0x55eadb4b12f0-DoConstruct", + "Statement": "0x55eadb4b1348-Statement", "ExecutionPartConstruct": [ - "0x5597122dea00-ExecutionPartConstruct" + "0x55eadb4bca00-ExecutionPartConstruct" ], - "Statement": "0x5597122d32f0-Statement" + "Statement": "0x55eadb4b12f0-Statement" }, { - "id": "0x5597122d3348-Statement", - "statement": "0x5597122d3358-NonLabelDoStmt", + "id": "0x55eadb4b1348-Statement", + "statement": "0x55eadb4b1358-NonLabelDoStmt", "source": "do i = 1, ni" }, { - "id": "0x5597122d3358-NonLabelDoStmt", - "LoopControl": "0x5597122d3358-LoopControl" + "id": "0x55eadb4b1358-NonLabelDoStmt", + "LoopControl": "0x55eadb4b1358-LoopControl" }, { - "id": "0x5597122d3358-LoopControl", + "id": "0x55eadb4b1358-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x5597122d3358-LoopBounds" + "LoopBounds": "0x55eadb4b1358-LoopBounds" }, { - "id": "0x5597122d3358-LoopBounds", - "var": "0x5597122d3358-Name", - "lower": "0x5597122dd000-Expr", - "upper": "0x5597122dd0e0-Expr" + "id": "0x55eadb4b1358-LoopBounds", + "var": "0x55eadb4b1358-Name", + "lower": "0x55eadb4bb000-Expr", + "upper": "0x55eadb4bb0e0-Expr" }, { - "id": "0x5597122d3358-Name", + "id": "0x55eadb4b1358-Name", "source": "i" }, { - "id": "0x5597122dd000-Expr", + "id": "0x55eadb4bb000-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122dd020-LiteralConstant" + "LiteralConstant": "0x55eadb4bb020-LiteralConstant" }, { - "id": "0x5597122dd020-LiteralConstant", + "id": "0x55eadb4bb020-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122dd020-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4bb020-IntLiteralConstant" }, { - "id": "0x5597122dd020-IntLiteralConstant", + "id": "0x55eadb4bb020-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5597122dd0e0-Expr", + "id": "0x55eadb4bb0e0-Expr", "variantKey": "Designator", - "Designator": "0x5597122dc530-Designator" + "Designator": "0x55eadb4ba530-Designator" }, { - "id": "0x5597122dc530-Designator", + "id": "0x55eadb4ba530-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122dc540-DataRef" + "DataRef": "0x55eadb4ba540-DataRef" }, { - "id": "0x5597122dc540-DataRef", + "id": "0x55eadb4ba540-DataRef", "variantKey": "Name", - "Name": "0x5597122dc540-Name" + "Name": "0x55eadb4ba540-Name" }, { - "id": "0x5597122dc540-Name", + "id": "0x55eadb4ba540-Name", "source": "ni" }, { - "id": "0x5597122d3330-ExecutionPartConstruct" + "id": "0x55eadb4b1330-ExecutionPartConstruct" }, { - "id": "0x5597122dea00-ExecutionPartConstruct", + "id": "0x55eadb4bca00-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122dea00-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4bca00-ExecutableConstruct" }, { - "id": "0x5597122dea00-ExecutableConstruct", + "id": "0x55eadb4bca00-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x5597122d3870-DoConstruct" + "DoConstruct": "0x55eadb4b1870-DoConstruct" }, { - "id": "0x5597122d3870-DoConstruct", - "Statement": "0x5597122d38c8-Statement", + "id": "0x55eadb4b1870-DoConstruct", + "Statement": "0x55eadb4b18c8-Statement", "ExecutionPartConstruct": [ - "0x5597122d8b20-ExecutionPartConstruct", - "0x5597122de9a0-ExecutionPartConstruct" + "0x55eadb4b6b20-ExecutionPartConstruct", + "0x55eadb4bc9a0-ExecutionPartConstruct" ], - "Statement": "0x5597122d3870-Statement" + "Statement": "0x55eadb4b1870-Statement" }, { - "id": "0x5597122d38c8-Statement", - "statement": "0x5597122d38d8-NonLabelDoStmt", + "id": "0x55eadb4b18c8-Statement", + "statement": "0x55eadb4b18d8-NonLabelDoStmt", "source": "do j = 1, nl" }, { - "id": "0x5597122d38d8-NonLabelDoStmt", - "LoopControl": "0x5597122d38d8-LoopControl" + "id": "0x55eadb4b18d8-NonLabelDoStmt", + "LoopControl": "0x55eadb4b18d8-LoopControl" }, { - "id": "0x5597122d38d8-LoopControl", + "id": "0x55eadb4b18d8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x5597122d38d8-LoopBounds" + "LoopBounds": "0x55eadb4b18d8-LoopBounds" }, { - "id": "0x5597122d38d8-LoopBounds", - "var": "0x5597122d38d8-Name", - "lower": "0x5597122dd1c0-Expr", - "upper": "0x5597122dd2a0-Expr" + "id": "0x55eadb4b18d8-LoopBounds", + "var": "0x55eadb4b18d8-Name", + "lower": "0x55eadb4bb1c0-Expr", + "upper": "0x55eadb4bb2a0-Expr" }, { - "id": "0x5597122d38d8-Name", + "id": "0x55eadb4b18d8-Name", "source": "j" }, { - "id": "0x5597122dd1c0-Expr", + "id": "0x55eadb4bb1c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122dd1e0-LiteralConstant" + "LiteralConstant": "0x55eadb4bb1e0-LiteralConstant" }, { - "id": "0x5597122dd1e0-LiteralConstant", + "id": "0x55eadb4bb1e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122dd1e0-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4bb1e0-IntLiteralConstant" }, { - "id": "0x5597122dd1e0-IntLiteralConstant", + "id": "0x55eadb4bb1e0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5597122dd2a0-Expr", + "id": "0x55eadb4bb2a0-Expr", "variantKey": "Designator", - "Designator": "0x5597122d8110-Designator" + "Designator": "0x55eadb4b6110-Designator" }, { - "id": "0x5597122d8110-Designator", + "id": "0x55eadb4b6110-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d8120-DataRef" + "DataRef": "0x55eadb4b6120-DataRef" }, { - "id": "0x5597122d8120-DataRef", + "id": "0x55eadb4b6120-DataRef", "variantKey": "Name", - "Name": "0x5597122d8120-Name" + "Name": "0x55eadb4b6120-Name" }, { - "id": "0x5597122d8120-Name", + "id": "0x55eadb4b6120-Name", "source": "nl" }, { - "id": "0x5597122d38b0-ExecutionPartConstruct" + "id": "0x55eadb4b18b0-ExecutionPartConstruct" }, { - "id": "0x5597122d8b20-ExecutionPartConstruct", + "id": "0x55eadb4b6b20-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122d8b20-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4b6b20-ExecutableConstruct" }, { - "id": "0x5597122d8b20-ExecutableConstruct", + "id": "0x55eadb4b6b20-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122d8b20-Statement" + "Statement": "0x55eadb4b6b20-Statement" }, { - "id": "0x5597122d8b20-Statement", - "statement": "0x5597122d8b30-ActionStmt", + "id": "0x55eadb4b6b20-Statement", + "statement": "0x55eadb4b6b30-ActionStmt", "source": "g(j, i) = 0.0" }, { - "id": "0x5597122d8b30-ActionStmt", + "id": "0x55eadb4b6b30-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5597122dd760-AssignmentStmt" + "AssignmentStmt": "0x55eadb4bb760-AssignmentStmt" }, { - "id": "0x5597122dd760-AssignmentStmt", - "Variable": "0x5597122dd840-Variable", - "Expr": "0x5597122dd770-Expr" + "id": "0x55eadb4bb760-AssignmentStmt", + "Variable": "0x55eadb4bb840-Variable", + "Expr": "0x55eadb4bb770-Expr" }, { - "id": "0x5597122dd840-Variable", + "id": "0x55eadb4bb840-Variable", "variantKey": "Designator", - "Designator": "0x559712399060-Designator" + "Designator": "0x55eadb577060-Designator" }, { - "id": "0x559712399060-Designator", + "id": "0x55eadb577060-Designator", "variantKey": "DataRef", - "DataRef": "0x559712399070-DataRef" + "DataRef": "0x55eadb577070-DataRef" }, { - "id": "0x559712399070-DataRef", + "id": "0x55eadb577070-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x5597122dc640-ArrayElement" + "ArrayElement": "0x55eadb4ba640-ArrayElement" }, { - "id": "0x5597122dc640-ArrayElement", - "base": "0x5597122dc640-DataRef", + "id": "0x55eadb4ba640-ArrayElement", + "base": "0x55eadb4ba640-DataRef", "subscripts": [ - "0x5597123990d0-SectionSubscript", - "0x55971239afb0-SectionSubscript" + "0x55eadb5770d0-SectionSubscript", + "0x55eadb578fb0-SectionSubscript" ] }, { - "id": "0x5597122dc640-DataRef", + "id": "0x55eadb4ba640-DataRef", "variantKey": "Name", - "Name": "0x5597122dc640-Name" + "Name": "0x55eadb4ba640-Name" }, { - "id": "0x5597122dc640-Name", + "id": "0x55eadb4ba640-Name", "source": "g" }, { - "id": "0x5597123990d0-SectionSubscript", + "id": "0x55eadb5770d0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122dc250-Expr" + "Expr": "0x55eadb4ba250-Expr" }, { - "id": "0x5597122dc250-Expr", + "id": "0x55eadb4ba250-Expr", "variantKey": "Designator", - "Designator": "0x5597122db770-Designator" + "Designator": "0x55eadb4b9770-Designator" }, { - "id": "0x5597122db770-Designator", + "id": "0x55eadb4b9770-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122db780-DataRef" + "DataRef": "0x55eadb4b9780-DataRef" }, { - "id": "0x5597122db780-DataRef", + "id": "0x55eadb4b9780-DataRef", "variantKey": "Name", - "Name": "0x5597122db780-Name" + "Name": "0x55eadb4b9780-Name" }, { - "id": "0x5597122db780-Name", + "id": "0x55eadb4b9780-Name", "source": "j" }, { - "id": "0x55971239afb0-SectionSubscript", + "id": "0x55eadb578fb0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122dc450-Expr" + "Expr": "0x55eadb4ba450-Expr" }, { - "id": "0x5597122dc450-Expr", + "id": "0x55eadb4ba450-Expr", "variantKey": "Designator", - "Designator": "0x5597122d91f0-Designator" + "Designator": "0x55eadb4b71f0-Designator" }, { - "id": "0x5597122d91f0-Designator", + "id": "0x55eadb4b71f0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d9200-DataRef" + "DataRef": "0x55eadb4b7200-DataRef" }, { - "id": "0x5597122d9200-DataRef", + "id": "0x55eadb4b7200-DataRef", "variantKey": "Name", - "Name": "0x5597122d9200-Name" + "Name": "0x55eadb4b7200-Name" }, { - "id": "0x5597122d9200-Name", + "id": "0x55eadb4b7200-Name", "source": "i" }, { - "id": "0x5597122dd770-Expr", + "id": "0x55eadb4bb770-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122dd790-LiteralConstant" + "LiteralConstant": "0x55eadb4bb790-LiteralConstant" }, { - "id": "0x5597122dd790-LiteralConstant", + "id": "0x55eadb4bb790-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x5597122dd790-RealLiteralConstant" + "RealLiteralConstant": "0x55eadb4bb790-RealLiteralConstant" }, { - "id": "0x5597122dd790-RealLiteralConstant", - "real": "0x5597122dd790-Real" + "id": "0x55eadb4bb790-RealLiteralConstant", + "real": "0x55eadb4bb790-Real" }, { - "id": "0x5597122dd790-Real", + "id": "0x55eadb4bb790-Real", "source": "0.0" }, { - "id": "0x5597122de9a0-ExecutionPartConstruct", + "id": "0x55eadb4bc9a0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122de9a0-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4bc9a0-ExecutableConstruct" }, { - "id": "0x5597122de9a0-ExecutableConstruct", + "id": "0x55eadb4bc9a0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x5597122d3750-DoConstruct" + "DoConstruct": "0x55eadb4b1750-DoConstruct" }, { - "id": "0x5597122d3750-DoConstruct", - "Statement": "0x5597122d37a8-Statement", + "id": "0x55eadb4b1750-DoConstruct", + "Statement": "0x55eadb4b17a8-Statement", "ExecutionPartConstruct": [ - "0x5597122d3df0-ExecutionPartConstruct" + "0x55eadb4b1df0-ExecutionPartConstruct" ], - "Statement": "0x5597122d3750-Statement" + "Statement": "0x55eadb4b1750-Statement" }, { - "id": "0x5597122d37a8-Statement", - "statement": "0x5597122d37b8-NonLabelDoStmt", + "id": "0x55eadb4b17a8-Statement", + "statement": "0x55eadb4b17b8-NonLabelDoStmt", "source": "do k = 1, nj" }, { - "id": "0x5597122d37b8-NonLabelDoStmt", - "LoopControl": "0x5597122d37b8-LoopControl" + "id": "0x55eadb4b17b8-NonLabelDoStmt", + "LoopControl": "0x55eadb4b17b8-LoopControl" }, { - "id": "0x5597122d37b8-LoopControl", + "id": "0x55eadb4b17b8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x5597122d37b8-LoopBounds" + "LoopBounds": "0x55eadb4b17b8-LoopBounds" }, { - "id": "0x5597122d37b8-LoopBounds", - "var": "0x5597122d37b8-Name", - "lower": "0x5597122dd870-Expr", - "upper": "0x5597122dd950-Expr" + "id": "0x55eadb4b17b8-LoopBounds", + "var": "0x55eadb4b17b8-Name", + "lower": "0x55eadb4bb870-Expr", + "upper": "0x55eadb4bb950-Expr" }, { - "id": "0x5597122d37b8-Name", + "id": "0x55eadb4b17b8-Name", "source": "k" }, { - "id": "0x5597122dd870-Expr", + "id": "0x55eadb4bb870-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5597122dd890-LiteralConstant" + "LiteralConstant": "0x55eadb4bb890-LiteralConstant" }, { - "id": "0x5597122dd890-LiteralConstant", + "id": "0x55eadb4bb890-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5597122dd890-IntLiteralConstant" + "IntLiteralConstant": "0x55eadb4bb890-IntLiteralConstant" }, { - "id": "0x5597122dd890-IntLiteralConstant", + "id": "0x55eadb4bb890-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5597122dd950-Expr", + "id": "0x55eadb4bb950-Expr", "variantKey": "Designator", - "Designator": "0x5597122d7060-Designator" + "Designator": "0x55eadb4b5060-Designator" }, { - "id": "0x5597122d7060-Designator", + "id": "0x55eadb4b5060-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d7070-DataRef" + "DataRef": "0x55eadb4b5070-DataRef" }, { - "id": "0x5597122d7070-DataRef", + "id": "0x55eadb4b5070-DataRef", "variantKey": "Name", - "Name": "0x5597122d7070-Name" + "Name": "0x55eadb4b5070-Name" }, { - "id": "0x5597122d7070-Name", + "id": "0x55eadb4b5070-Name", "source": "nj" }, { - "id": "0x5597122d3790-ExecutionPartConstruct" + "id": "0x55eadb4b1790-ExecutionPartConstruct" }, { - "id": "0x5597122d3df0-ExecutionPartConstruct", + "id": "0x55eadb4b1df0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5597122d3df0-ExecutableConstruct" + "ExecutableConstruct": "0x55eadb4b1df0-ExecutableConstruct" }, { - "id": "0x5597122d3df0-ExecutableConstruct", + "id": "0x55eadb4b1df0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5597122d3df0-Statement" + "Statement": "0x55eadb4b1df0-Statement" }, { - "id": "0x5597122d3df0-Statement", - "statement": "0x5597122d3e00-ActionStmt", + "id": "0x55eadb4b1df0-Statement", + "statement": "0x55eadb4b1e00-ActionStmt", "source": "g(j, i) = g(j, i) + e(k, i) * f(j, k)" }, { - "id": "0x5597122d3e00-ActionStmt", + "id": "0x55eadb4b1e00-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5597122d40f0-AssignmentStmt" + "AssignmentStmt": "0x55eadb4b20f0-AssignmentStmt" }, { - "id": "0x5597122d40f0-AssignmentStmt", - "Variable": "0x5597122d41d0-Variable", - "Expr": "0x5597122d4100-Expr" + "id": "0x55eadb4b20f0-AssignmentStmt", + "Variable": "0x55eadb4b21d0-Variable", + "Expr": "0x55eadb4b2100-Expr" }, { - "id": "0x5597122d41d0-Variable", + "id": "0x55eadb4b21d0-Variable", "variantKey": "Designator", - "Designator": "0x559712399d20-Designator" + "Designator": "0x55eadb577d20-Designator" }, { - "id": "0x559712399d20-Designator", + "id": "0x55eadb577d20-Designator", "variantKey": "DataRef", - "DataRef": "0x559712399d30-DataRef" + "DataRef": "0x55eadb577d30-DataRef" }, { - "id": "0x559712399d30-DataRef", + "id": "0x55eadb577d30-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x5597122dd5f0-ArrayElement" + "ArrayElement": "0x55eadb4bb5f0-ArrayElement" }, { - "id": "0x5597122dd5f0-ArrayElement", - "base": "0x5597122dd5f0-DataRef", + "id": "0x55eadb4bb5f0-ArrayElement", + "base": "0x55eadb4bb5f0-DataRef", "subscripts": [ - "0x55971239c9b0-SectionSubscript", - "0x55971239ca00-SectionSubscript" + "0x55eadb57a9b0-SectionSubscript", + "0x55eadb57aa00-SectionSubscript" ] }, { - "id": "0x5597122dd5f0-DataRef", + "id": "0x55eadb4bb5f0-DataRef", "variantKey": "Name", - "Name": "0x5597122dd5f0-Name" + "Name": "0x55eadb4bb5f0-Name" }, { - "id": "0x5597122dd5f0-Name", + "id": "0x55eadb4bb5f0-Name", "source": "g" }, { - "id": "0x55971239c9b0-SectionSubscript", + "id": "0x55eadb57a9b0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122dd380-Expr" + "Expr": "0x55eadb4bb380-Expr" }, { - "id": "0x5597122dd380-Expr", + "id": "0x55eadb4bb380-Expr", "variantKey": "Designator", - "Designator": "0x5597122dbc50-Designator" + "Designator": "0x55eadb4b9c50-Designator" }, { - "id": "0x5597122dbc50-Designator", + "id": "0x55eadb4b9c50-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122dbc60-DataRef" + "DataRef": "0x55eadb4b9c60-DataRef" }, { - "id": "0x5597122dbc60-DataRef", + "id": "0x55eadb4b9c60-DataRef", "variantKey": "Name", - "Name": "0x5597122dbc60-Name" + "Name": "0x55eadb4b9c60-Name" }, { - "id": "0x5597122dbc60-Name", + "id": "0x55eadb4b9c60-Name", "source": "j" }, { - "id": "0x55971239ca00-SectionSubscript", + "id": "0x55eadb57aa00-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122dd460-Expr" + "Expr": "0x55eadb4bb460-Expr" }, { - "id": "0x5597122dd460-Expr", + "id": "0x55eadb4bb460-Expr", "variantKey": "Designator", - "Designator": "0x5597122d95f0-Designator" + "Designator": "0x55eadb4b75f0-Designator" }, { - "id": "0x5597122d95f0-Designator", + "id": "0x55eadb4b75f0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122d9600-DataRef" + "DataRef": "0x55eadb4b7600-DataRef" }, { - "id": "0x5597122d9600-DataRef", + "id": "0x55eadb4b7600-DataRef", "variantKey": "Name", - "Name": "0x5597122d9600-Name" + "Name": "0x55eadb4b7600-Name" }, { - "id": "0x5597122d9600-Name", + "id": "0x55eadb4b7600-Name", "source": "i" }, { - "id": "0x5597122d4100-Expr", + "id": "0x55eadb4b2100-Expr", "variantKey": "Add", - "Add": "0x5597122d4120-Add" + "Add": "0x55eadb4b2120-Add" }, { - "id": "0x5597122d4120-Add", - "left": "0x5597122d4010-Expr", - "right": "0x5597122af0e0-Expr", + "id": "0x55eadb4b2120-Add", + "left": "0x55eadb4b2010-Expr", + "right": "0x55eadb48d0e0-Expr", "op": "ADD" }, { - "id": "0x5597122d4010-Expr", + "id": "0x55eadb4b2010-Expr", "variantKey": "Designator", - "Designator": "0x55971239cb90-Designator" + "Designator": "0x55eadb57ab90-Designator" }, { - "id": "0x55971239cb90-Designator", + "id": "0x55eadb57ab90-Designator", "variantKey": "DataRef", - "DataRef": "0x55971239cba0-DataRef" + "DataRef": "0x55eadb57aba0-DataRef" }, { - "id": "0x55971239cba0-DataRef", + "id": "0x55eadb57aba0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x5597122dd720-ArrayElement" + "ArrayElement": "0x55eadb4bb720-ArrayElement" }, { - "id": "0x5597122dd720-ArrayElement", - "base": "0x5597122dd720-DataRef", + "id": "0x55eadb4bb720-ArrayElement", + "base": "0x55eadb4bb720-DataRef", "subscripts": [ - "0x55971239cb00-SectionSubscript", - "0x55971239cb50-SectionSubscript" + "0x55eadb57ab00-SectionSubscript", + "0x55eadb57ab50-SectionSubscript" ] }, { - "id": "0x5597122dd720-DataRef", + "id": "0x55eadb4bb720-DataRef", "variantKey": "Name", - "Name": "0x5597122dd720-Name" + "Name": "0x55eadb4bb720-Name" }, { - "id": "0x5597122dd720-Name", + "id": "0x55eadb4bb720-Name", "source": "g" }, { - "id": "0x55971239cb00-SectionSubscript", + "id": "0x55eadb57ab00-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122dda30-Expr" + "Expr": "0x55eadb4bba30-Expr" }, { - "id": "0x5597122dda30-Expr", + "id": "0x55eadb4bba30-Expr", "variantKey": "Designator", - "Designator": "0x5597122dbcb0-Designator" + "Designator": "0x55eadb4b9cb0-Designator" }, { - "id": "0x5597122dbcb0-Designator", + "id": "0x55eadb4b9cb0-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122dbcc0-DataRef" + "DataRef": "0x55eadb4b9cc0-DataRef" }, { - "id": "0x5597122dbcc0-DataRef", + "id": "0x55eadb4b9cc0-DataRef", "variantKey": "Name", - "Name": "0x5597122dbcc0-Name" + "Name": "0x55eadb4b9cc0-Name" }, { - "id": "0x5597122dbcc0-Name", + "id": "0x55eadb4b9cc0-Name", "source": "j" }, { - "id": "0x55971239cb50-SectionSubscript", + "id": "0x55eadb57ab50-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122ddb10-Expr" + "Expr": "0x55eadb4bbb10-Expr" }, { - "id": "0x5597122ddb10-Expr", + "id": "0x55eadb4bbb10-Expr", "variantKey": "Designator", - "Designator": "0x5597122dc390-Designator" + "Designator": "0x55eadb4ba390-Designator" }, { - "id": "0x5597122dc390-Designator", + "id": "0x55eadb4ba390-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122dc3a0-DataRef" + "DataRef": "0x55eadb4ba3a0-DataRef" }, { - "id": "0x5597122dc3a0-DataRef", + "id": "0x55eadb4ba3a0-DataRef", "variantKey": "Name", - "Name": "0x5597122dc3a0-Name" + "Name": "0x55eadb4ba3a0-Name" }, { - "id": "0x5597122dc3a0-Name", + "id": "0x55eadb4ba3a0-Name", "source": "i" }, { - "id": "0x5597122af0e0-Expr", + "id": "0x55eadb48d0e0-Expr", "variantKey": "Multiply", - "Multiply": "0x5597122af100-Multiply" + "Multiply": "0x55eadb48d100-Multiply" }, { - "id": "0x5597122af100-Multiply", - "left": "0x5597122d3ec0-Expr", - "right": "0x5597122d3c20-Expr", + "id": "0x55eadb48d100-Multiply", + "left": "0x55eadb4b1ec0-Expr", + "right": "0x55eadb4b1c20-Expr", "op": "MULTIPLY" }, { - "id": "0x5597122d3ec0-Expr", + "id": "0x55eadb4b1ec0-Expr", "variantKey": "Designator", - "Designator": "0x55971239cf30-Designator" + "Designator": "0x55eadb57af30-Designator" }, { - "id": "0x55971239cf30-Designator", + "id": "0x55eadb57af30-Designator", "variantKey": "DataRef", - "DataRef": "0x55971239cf40-DataRef" + "DataRef": "0x55eadb57af40-DataRef" }, { - "id": "0x55971239cf40-DataRef", + "id": "0x55eadb57af40-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x5597122de0e0-ArrayElement" + "ArrayElement": "0x55eadb4bc0e0-ArrayElement" }, { - "id": "0x5597122de0e0-ArrayElement", - "base": "0x5597122de0e0-DataRef", + "id": "0x55eadb4bc0e0-ArrayElement", + "base": "0x55eadb4bc0e0-DataRef", "subscripts": [ - "0x5597122de1e0-SectionSubscript", - "0x55971239cef0-SectionSubscript" + "0x55eadb4bc1e0-SectionSubscript", + "0x55eadb57aef0-SectionSubscript" ] }, { - "id": "0x5597122de0e0-DataRef", + "id": "0x55eadb4bc0e0-DataRef", "variantKey": "Name", - "Name": "0x5597122de0e0-Name" + "Name": "0x55eadb4bc0e0-Name" }, { - "id": "0x5597122de0e0-Name", + "id": "0x55eadb4bc0e0-Name", "source": "e" }, { - "id": "0x5597122de1e0-SectionSubscript", + "id": "0x55eadb4bc1e0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122dde10-Expr" + "Expr": "0x55eadb4bbe10-Expr" }, { - "id": "0x5597122dde10-Expr", + "id": "0x55eadb4bbe10-Expr", "variantKey": "Designator", - "Designator": "0x5597122de570-Designator" + "Designator": "0x55eadb4bc570-Designator" }, { - "id": "0x5597122de570-Designator", + "id": "0x55eadb4bc570-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122de580-DataRef" + "DataRef": "0x55eadb4bc580-DataRef" }, { - "id": "0x5597122de580-DataRef", + "id": "0x55eadb4bc580-DataRef", "variantKey": "Name", - "Name": "0x5597122de580-Name" + "Name": "0x55eadb4bc580-Name" }, { - "id": "0x5597122de580-Name", + "id": "0x55eadb4bc580-Name", "source": "k" }, { - "id": "0x55971239cef0-SectionSubscript", + "id": "0x55eadb57aef0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122ddef0-Expr" + "Expr": "0x55eadb4bbef0-Expr" }, { - "id": "0x5597122ddef0-Expr", + "id": "0x55eadb4bbef0-Expr", "variantKey": "Designator", - "Designator": "0x5597122de370-Designator" + "Designator": "0x55eadb4bc370-Designator" }, { - "id": "0x5597122de370-Designator", + "id": "0x55eadb4bc370-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122de380-DataRef" + "DataRef": "0x55eadb4bc380-DataRef" }, { - "id": "0x5597122de380-DataRef", + "id": "0x55eadb4bc380-DataRef", "variantKey": "Name", - "Name": "0x5597122de380-Name" + "Name": "0x55eadb4bc380-Name" }, { - "id": "0x5597122de380-Name", + "id": "0x55eadb4bc380-Name", "source": "i" }, { - "id": "0x5597122d3c20-Expr", + "id": "0x55eadb4b1c20-Expr", "variantKey": "Designator", - "Designator": "0x55971239d3a0-Designator" + "Designator": "0x55eadb57b3a0-Designator" }, { - "id": "0x55971239d3a0-Designator", + "id": "0x55eadb57b3a0-Designator", "variantKey": "DataRef", - "DataRef": "0x55971239d3b0-DataRef" + "DataRef": "0x55eadb57b3b0-DataRef" }, { - "id": "0x55971239d3b0-DataRef", + "id": "0x55eadb57b3b0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x5597122de7c0-ArrayElement" + "ArrayElement": "0x55eadb4bc7c0-ArrayElement" }, { - "id": "0x5597122de7c0-ArrayElement", - "base": "0x5597122de7c0-DataRef", + "id": "0x55eadb4bc7c0-ArrayElement", + "base": "0x55eadb4bc7c0-DataRef", "subscripts": [ - "0x55971239d310-SectionSubscript", - "0x55971239d360-SectionSubscript" + "0x55eadb57b310-SectionSubscript", + "0x55eadb57b360-SectionSubscript" ] }, { - "id": "0x5597122de7c0-DataRef", + "id": "0x55eadb4bc7c0-DataRef", "variantKey": "Name", - "Name": "0x5597122de7c0-Name" + "Name": "0x55eadb4bc7c0-Name" }, { - "id": "0x5597122de7c0-Name", + "id": "0x55eadb4bc7c0-Name", "source": "f" }, { - "id": "0x55971239d310-SectionSubscript", + "id": "0x55eadb57b310-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122de3d0-Expr" + "Expr": "0x55eadb4bc3d0-Expr" }, { - "id": "0x5597122de3d0-Expr", + "id": "0x55eadb4bc3d0-Expr", "variantKey": "Designator", - "Designator": "0x5597122dec50-Designator" + "Designator": "0x55eadb4bcc50-Designator" }, { - "id": "0x5597122dec50-Designator", + "id": "0x55eadb4bcc50-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122dec60-DataRef" + "DataRef": "0x55eadb4bcc60-DataRef" }, { - "id": "0x5597122dec60-DataRef", + "id": "0x55eadb4bcc60-DataRef", "variantKey": "Name", - "Name": "0x5597122dec60-Name" + "Name": "0x55eadb4bcc60-Name" }, { - "id": "0x5597122dec60-Name", + "id": "0x55eadb4bcc60-Name", "source": "j" }, { - "id": "0x55971239d360-SectionSubscript", + "id": "0x55eadb57b360-SectionSubscript", "variantKey": "Expr", - "Expr": "0x5597122de5d0-Expr" + "Expr": "0x55eadb4bc5d0-Expr" }, { - "id": "0x5597122de5d0-Expr", + "id": "0x55eadb4bc5d0-Expr", "variantKey": "Designator", - "Designator": "0x5597122dea50-Designator" + "Designator": "0x55eadb4bca50-Designator" }, { - "id": "0x5597122dea50-Designator", + "id": "0x55eadb4bca50-Designator", "variantKey": "DataRef", - "DataRef": "0x5597122dea60-DataRef" + "DataRef": "0x55eadb4bca60-DataRef" }, { - "id": "0x5597122dea60-DataRef", + "id": "0x55eadb4bca60-DataRef", "variantKey": "Name", - "Name": "0x5597122dea60-Name" + "Name": "0x55eadb4bca60-Name" }, { - "id": "0x5597122dea60-Name", + "id": "0x55eadb4bca60-Name", "source": "k" }, { - "id": "0x5597122d3750-Statement", - "statement": "0x5597122d3760-EndDoStmt", + "id": "0x55eadb4b1750-Statement", + "statement": "0x55eadb4b1760-EndDoStmt", "source": "end do" }, { - "id": "0x5597122d3760-EndDoStmt" + "id": "0x55eadb4b1760-EndDoStmt" }, { - "id": "0x5597122d3870-Statement", - "statement": "0x5597122d3880-EndDoStmt", + "id": "0x55eadb4b1870-Statement", + "statement": "0x55eadb4b1880-EndDoStmt", "source": "end do" }, { - "id": "0x5597122d3880-EndDoStmt" + "id": "0x55eadb4b1880-EndDoStmt" }, { - "id": "0x5597122d32f0-Statement", - "statement": "0x5597122d3300-EndDoStmt", + "id": "0x55eadb4b12f0-Statement", + "statement": "0x55eadb4b1300-EndDoStmt", "source": "end do" }, { - "id": "0x5597122d3300-EndDoStmt" + "id": "0x55eadb4b1300-EndDoStmt" }, { - "id": "0x5597122df350-Statement", - "statement": "0x5597122df360-EndSubroutineStmt", + "id": "0x55eadb4bd350-Statement", + "statement": "0x55eadb4bd360-EndSubroutineStmt", "source": "end subroutine" }, { - "id": "0x5597122df360-EndSubroutineStmt" + "id": "0x55eadb4bd360-EndSubroutineStmt" }, { - "id": "0x5597122c20a0-Statement", - "statement": "0x5597122c20b0-EndProgramStmt", + "id": "0x55eadb4a00a0-Statement", + "statement": "0x55eadb4a00b0-EndProgramStmt", "source": "end program" }, { - "id": "0x5597122c20b0-EndProgramStmt" + "id": "0x55eadb4a00b0-EndProgramStmt" } ], "comments": [ { "text": "!******************************************************************************", - "stmtId": "0x5597122c21e8-Statement" + "stmtId": "0x55eadb4a01e8-Statement", + "trailing": false }, { "text": "!", - "stmtId": "0x5597122c21e8-Statement" + "stmtId": "0x55eadb4a01e8-Statement", + "trailing": false }, { "text": "! 3mm.F90: This file is part of the PolyBench/Fortran 1.0 test suite.", - "stmtId": "0x5597122c21e8-Statement" + "stmtId": "0x55eadb4a01e8-Statement", + "trailing": false }, { "text": "!", - "stmtId": "0x5597122c21e8-Statement" + "stmtId": "0x55eadb4a01e8-Statement", + "trailing": false }, { "text": "! Contact: Louis-Noel Pouchet ", - "stmtId": "0x5597122c21e8-Statement" + "stmtId": "0x55eadb4a01e8-Statement", + "trailing": false }, { "text": "! Web address: http://polybench.sourceforge.net", - "stmtId": "0x5597122c21e8-Statement" + "stmtId": "0x55eadb4a01e8-Statement", + "trailing": false }, { "text": "!", - "stmtId": "0x5597122c21e8-Statement" + "stmtId": "0x55eadb4a01e8-Statement", + "trailing": false }, { "text": "!******************************************************************************", - "stmtId": "0x5597122c21e8-Statement" + "stmtId": "0x55eadb4a01e8-Statement", + "trailing": false }, { "text": "! Include polybench common header.", - "stmtId": "0x5597122c21e8-Statement" + "stmtId": "0x55eadb4a01e8-Statement", + "trailing": false }, { "text": "! Include benchmark-specific header.", - "stmtId": "0x5597122c21e8-Statement" + "stmtId": "0x55eadb4a01e8-Statement", + "trailing": false }, { "text": "! Default data type is double, default size is 4000.", - "stmtId": "0x5597122c21e8-Statement" + "stmtId": "0x55eadb4a01e8-Statement", + "trailing": false }, { "text": "! Allocation of Arrays", - "stmtId": "0x5597122b0510-Statement" + "stmtId": "0x55eadb48e510-Statement", + "trailing": false }, { "text": "! Initialization", - "stmtId": "0x5597122b6fa0-Statement" + "stmtId": "0x55eadb494fa0-Statement", + "trailing": false }, { "text": "! Kernel Execution", - "stmtId": "0x5597122b5e60-Statement" + "stmtId": "0x55eadb493e60-Statement", + "trailing": false }, { "text": "! Prevent dead-code elimination. All live-out data must be printed", - "stmtId": "0x5597122b5820-Statement" + "stmtId": "0x55eadb493820-Statement", + "trailing": false }, { "text": "! by the function call in argument.", - "stmtId": "0x5597122b5820-Statement" + "stmtId": "0x55eadb493820-Statement", + "trailing": false }, { "text": "! Deallocation of Arrays", - "stmtId": "0x5597122c94c0-Statement" + "stmtId": "0x55eadb4a74c0-Statement", + "trailing": false }, { "text": "!$pragma scop", - "stmtId": "0x5597122da6d8-Statement" + "stmtId": "0x55eadb4b86d8-Statement", + "trailing": false }, { "text": "! E := A*B", - "stmtId": "0x5597122da6d8-Statement" + "stmtId": "0x55eadb4b86d8-Statement", + "trailing": false }, { "text": "! F := C*D", - "stmtId": "0x5597122dcf38-Statement" + "stmtId": "0x55eadb4baf38-Statement", + "trailing": false }, { "text": "! G := E*F", - "stmtId": "0x5597122d3348-Statement" + "stmtId": "0x55eadb4b1348-Statement", + "trailing": false }, { "text": "!$pragma endscop", - "stmtId": "0x5597122df350-Statement" + "stmtId": "0x55eadb4bd350-Statement", + "trailing": false } ], "enums": { From 4bd747d94b9711cd9192dd07bdf8e683f0b2fdd8 Mon Sep 17 00:00:00 2001 From: Bruno Oliveira <42045371+Process-ing@users.noreply.github.com> Date: Thu, 9 Jul 2026 00:07:06 +0100 Subject: [PATCH 020/260] Fix child key in NamedConstantDef processor Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .../up/fe/specs/fortran/parser/processors/StmtProcessors.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 52f46bc6..2b461fb2 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -464,7 +464,7 @@ public void parameterStmt(ParameterStmt parameterStmt) { } public void namedConstantDef(NamedConstantDef namedConstantDef) { - var ref = getChild(namedConstantDef, FlangName.NAMED_CONSTANT_DEF); +var ref = getChild(namedConstantDef, FlangName.NAMED_CONSTANT); namedConstantDef.addChild(ref); var expr = getChild(namedConstantDef, FlangName.EXPR); From bc14bbe8e4e0a818f4801d2e0a5ff6d7b1de2976 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 9 Jul 2026 00:08:09 +0100 Subject: [PATCH 021/260] Improve comments test --- .../fortran/parser/comment.expected.f90 | 2 + .../resources-test/fortran/parser/comment.f90 | 5 +- .../fortran/parser/comment.json | 215 ++++++++++++++---- 3 files changed, 170 insertions(+), 52 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/comment.expected.f90 b/FortranParser/resources-test/fortran/parser/comment.expected.f90 index 66e66f46..9deb2c36 100644 --- a/FortranParser/resources-test/fortran/parser/comment.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/comment.expected.f90 @@ -2,5 +2,7 @@ PROGRAM HELLO ! This is "another comment" PRINT *, "Hello, ""World!""" ! This is a trailing comment + PRINT *, "Some" + PRINT *, "thing" ! This is a comment after a semicolon END PROGRAM HELLO ! This is a final comment \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/comment.f90 b/FortranParser/resources-test/fortran/parser/comment.f90 index 66e66f46..fab942ba 100644 --- a/FortranParser/resources-test/fortran/parser/comment.f90 +++ b/FortranParser/resources-test/fortran/parser/comment.f90 @@ -1,6 +1,7 @@ ! This is a \comment -PROGRAM HELLO +PROGRAM hello ! This is "another comment" PRINT *, "Hello, ""World!""" ! This is a trailing comment -END PROGRAM HELLO + PRINT *, "Some"; PRINT *, "thing" ! This is a comment after a semicolon +END PROGRAM hello ! This is a final comment \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/comment.json b/FortranParser/resources-test/fortran/parser/comment.json index 7840b7e5..90897cb2 100644 --- a/FortranParser/resources-test/fortran/parser/comment.json +++ b/FortranParser/resources-test/fortran/parser/comment.json @@ -1,139 +1,254 @@ { "nodes": [ { - "id": "0x564f41da5f00-Program", + "id": "0x5611007d4f00-Program", "ProgramUnit": [ - "0x564f41ddab50-ProgramUnit" + "0x561100809c90-ProgramUnit" ] }, { - "id": "0x564f41ddab50-ProgramUnit", + "id": "0x561100809c90-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x564f41dd8d30-MainProgram" + "MainProgram": "0x561100802090-MainProgram" }, { - "id": "0x564f41dd8d30-MainProgram", - "Statement": "0x564f41dd8e78-Statement", - "SpecificationPart": "0x564f41dd8dd0-SpecificationPart", - "ExecutionPart": "0x564f41dd8db8-ExecutionPart", - "Statement": "0x564f41dd8d30-Statement" + "id": "0x561100802090-MainProgram", + "Statement": "0x5611008021d8-Statement", + "SpecificationPart": "0x561100802130-SpecificationPart", + "ExecutionPart": "0x561100802118-ExecutionPart", + "Statement": "0x561100802090-Statement" }, { - "id": "0x564f41dd8e78-Statement", - "statement": "0x564f41dd8e88-ProgramStmt", + "id": "0x5611008021d8-Statement", + "statement": "0x5611008021e8-ProgramStmt", "source": "program HELLO" }, { - "id": "0x564f41dd8e88-ProgramStmt", - "Name": "0x564f41dd8e88-Name" + "id": "0x5611008021e8-ProgramStmt", + "Name": "0x5611008021e8-Name" }, { - "id": "0x564f41dd8e88-Name", + "id": "0x5611008021e8-Name", "source": "HELLO" }, { - "id": "0x564f41dd8dd0-SpecificationPart", - "ImplicitPart": "0x564f41dd8de8-ImplicitPart" + "id": "0x561100802130-SpecificationPart", + "ImplicitPart": "0x561100802148-ImplicitPart" }, { - "id": "0x564f41dd8de8-ImplicitPart" + "id": "0x561100802148-ImplicitPart" }, { - "id": "0x564f41dd8db8-ExecutionPart", + "id": "0x561100802118-ExecutionPart", "ExecutionPartConstruct": [ - "0x564f41de3120-ExecutionPartConstruct" + "0x561100814a20-ExecutionPartConstruct", + "0x561100811470-ExecutionPartConstruct", + "0x5611008142c0-ExecutionPartConstruct" ] }, { - "id": "0x564f41dd8db8-ExecutionPartConstruct" + "id": "0x561100802118-ExecutionPartConstruct" }, { - "id": "0x564f41de3120-ExecutionPartConstruct", + "id": "0x561100814a20-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564f41de3120-ExecutableConstruct" + "ExecutableConstruct": "0x561100814a20-ExecutableConstruct" }, { - "id": "0x564f41de3120-ExecutableConstruct", + "id": "0x561100814a20-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x564f41de3120-Statement" + "Statement": "0x561100814a20-Statement" }, { - "id": "0x564f41de3120-Statement", - "statement": "0x564f41de3130-ActionStmt", + "id": "0x561100814a20-Statement", + "statement": "0x561100814a30-ActionStmt", "source": "print *, \"Hello, \"\"World!\"\"\"" }, { - "id": "0x564f41de3130-ActionStmt", + "id": "0x561100814a30-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x564f41de6190-PrintStmt" + "PrintStmt": "0x56110078a260-PrintStmt" }, { - "id": "0x564f41de6190-PrintStmt", - "Format": "0x564f41de61a8-Format", + "id": "0x56110078a260-PrintStmt", + "Format": "0x56110078a278-Format", "OutputItem": [ - "0x564f41de6040-OutputItem" + "0x561100815e60-OutputItem" ] }, { - "id": "0x564f41de61a8-Format", + "id": "0x56110078a278-Format", "variantKey": "Star", - "Star": "0x564f41de61a8-Star" + "Star": "0x56110078a278-Star" }, { - "id": "0x564f41de61a8-Star" + "id": "0x56110078a278-Star" }, { - "id": "0x564f41de6040-OutputItem", + "id": "0x561100815e60-OutputItem", "variantKey": "Expr", - "Expr": "0x564f41de6040-Expr" + "Expr": "0x561100815e60-Expr" }, { - "id": "0x564f41de6040-Expr", + "id": "0x561100815e60-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564f41de6060-LiteralConstant" + "LiteralConstant": "0x561100815e80-LiteralConstant" }, { - "id": "0x564f41de6060-LiteralConstant", + "id": "0x561100815e80-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x564f41de6060-CharLiteralConstant" + "CharLiteralConstant": "0x561100815e80-CharLiteralConstant" }, { - "id": "0x564f41de6060-CharLiteralConstant", + "id": "0x561100815e80-CharLiteralConstant", "string": "Hello, \"World!\"" }, { - "id": "0x564f41dd8d30-Statement", - "statement": "0x564f41dd8d40-EndProgramStmt", + "id": "0x561100811470-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561100811470-ExecutableConstruct" + }, + { + "id": "0x561100811470-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561100811470-Statement" + }, + { + "id": "0x561100811470-Statement", + "statement": "0x561100811480-ActionStmt", + "source": "print *, \"Some\"" + }, + { + "id": "0x561100811480-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x561100811360-PrintStmt" + }, + { + "id": "0x561100811360-PrintStmt", + "Format": "0x561100811378-Format", + "OutputItem": [ + "0x561100813c30-OutputItem" + ] + }, + { + "id": "0x561100811378-Format", + "variantKey": "Star", + "Star": "0x561100811378-Star" + }, + { + "id": "0x561100811378-Star" + }, + { + "id": "0x561100813c30-OutputItem", + "variantKey": "Expr", + "Expr": "0x561100813c30-Expr" + }, + { + "id": "0x561100813c30-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561100813c50-LiteralConstant" + }, + { + "id": "0x561100813c50-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x561100813c50-CharLiteralConstant" + }, + { + "id": "0x561100813c50-CharLiteralConstant", + "string": "Some" + }, + { + "id": "0x5611008142c0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5611008142c0-ExecutableConstruct" + }, + { + "id": "0x5611008142c0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5611008142c0-Statement" + }, + { + "id": "0x5611008142c0-Statement", + "statement": "0x5611008142d0-ActionStmt", + "source": "print *, \"thing\"" + }, + { + "id": "0x5611008142d0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x5611008141b0-PrintStmt" + }, + { + "id": "0x5611008141b0-PrintStmt", + "Format": "0x5611008141c8-Format", + "OutputItem": [ + "0x5611008114d0-OutputItem" + ] + }, + { + "id": "0x5611008141c8-Format", + "variantKey": "Star", + "Star": "0x5611008141c8-Star" + }, + { + "id": "0x5611008141c8-Star" + }, + { + "id": "0x5611008114d0-OutputItem", + "variantKey": "Expr", + "Expr": "0x5611008114d0-Expr" + }, + { + "id": "0x5611008114d0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5611008114f0-LiteralConstant" + }, + { + "id": "0x5611008114f0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x5611008114f0-CharLiteralConstant" + }, + { + "id": "0x5611008114f0-CharLiteralConstant", + "string": "thing" + }, + { + "id": "0x561100802090-Statement", + "statement": "0x5611008020a0-EndProgramStmt", "source": "end program HELLO" }, { - "id": "0x564f41dd8d40-EndProgramStmt", - "Name": "0x564f41dd8d40-Name" + "id": "0x5611008020a0-EndProgramStmt", + "Name": "0x5611008020a0-Name" }, { - "id": "0x564f41dd8d40-Name", + "id": "0x5611008020a0-Name", "source": "HELLO" } ], "comments": [ { "text": "! This is a \\comment", - "stmtId": "0x564f41dd8e78-Statement", + "stmtId": "0x5611008021d8-Statement", "trailing": false }, { "text": "! This is \"another comment\"", - "stmtId": "0x564f41de3120-Statement", + "stmtId": "0x561100814a20-Statement", "trailing": false }, { "text": "! This is a trailing comment", - "stmtId": "0x564f41de3120-Statement", + "stmtId": "0x561100814a20-Statement", + "trailing": true + }, + { + "text": "! This is a comment after a semicolon", + "stmtId": "0x5611008142c0-Statement", "trailing": true }, { "text": "! This is a final comment", - "stmtId": "0x564f41da5f00-Program", + "stmtId": "0x5611007d4f00-Program", "trailing": false } ], From 42e4d94f227b4bb9c51f41142b6cebb70af52bbe Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 9 Jul 2026 00:16:55 +0100 Subject: [PATCH 022/260] Fix structure creation in node factory --- .../fe/specs/fortran/ast/FortranNodeFactory.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java index 076f68f9..d3ce0a06 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java @@ -28,6 +28,8 @@ import pt.up.fe.specs.fortran.ast.nodes.program.*; import pt.up.fe.specs.fortran.ast.nodes.stmt.*; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; +import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.EndDoStmt; import pt.up.fe.specs.fortran.ast.nodes.utils.Format; import pt.up.fe.specs.fortran.ast.nodes.utils.LabelRef; import pt.up.fe.specs.fortran.ast.nodes.utils.Star; @@ -129,9 +131,11 @@ public MainProgram mainProgram(String programName, List executio DataStore data = newDataStore(MainProgram.class); data.set(MainProgram.NAME, Optional.ofNullable(programName)); + var programStmt = new ProgramStmt(data, Collections.emptyList()); var executionBlock = execution(execution); + var endProgramStmt = new EndProgramStmt(data, Collections.emptyList()); - return new MainProgram(data, List.of(executionBlock)); + return new MainProgram(data, List.of(programStmt, executionBlock, endProgramStmt)); } public Execution execution(List statements) { @@ -306,10 +310,14 @@ public RangeLoopControl rangeLoopControl(DataRef var, Expr lower, Expr upper) { return new RangeLoopControl(data, Arrays.asList(var, lower, upper)); } - public DoConstruct doStatement(LoopControl control) { + public DoConstruct doConstruct(LoopControl control) { DataStore data = newDataStore(DoConstruct.class); + + DoStmt doStmt = new DoStmt(data, List.of(control)); Execution body = execution(Collections.emptyList()); - return new DoConstruct(data, Arrays.asList(control, body)); + EndDoStmt endDoStmt = new EndDoStmt(data, Collections.emptyList()); + + return new DoConstruct(data, List.of(doStmt, body, endDoStmt)); } public Argument argument(Expr expr) { From f9be456cb76d19fcf43bff01069a10295372e914 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 9 Jul 2026 00:26:08 +0100 Subject: [PATCH 023/260] Fix weaver node association --- .../fortran/weaver/FortranJoinpoints.java | 21 ++++------------ .../{FDoStatement.java => FDoConstruct.java} | 24 +++++++++---------- 2 files changed, 17 insertions(+), 28 deletions(-) rename FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/{FDoStatement.java => FDoConstruct.java} (60%) diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranJoinpoints.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranJoinpoints.java index fb30aac7..5a94bcc7 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranJoinpoints.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranJoinpoints.java @@ -22,30 +22,19 @@ import pt.up.fe.specs.fortran.ast.nodes.loops.LoopControl; import pt.up.fe.specs.fortran.ast.nodes.loops.RangeLoopControl; import pt.up.fe.specs.fortran.ast.nodes.omp.OmpBlockConstruct; -import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpOrderedClause; -import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpReductionClause; import pt.up.fe.specs.fortran.ast.nodes.omp.OmpConstruct; import pt.up.fe.specs.fortran.ast.nodes.omp.OmpLoopConstruct; import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpClause; import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpDataSharingClause; -import pt.up.fe.specs.fortran.ast.nodes.program.Application; -import pt.up.fe.specs.fortran.ast.nodes.program.Execution; -import pt.up.fe.specs.fortran.ast.nodes.program.FortranFile; -import pt.up.fe.specs.fortran.ast.nodes.program.StmtBlock; +import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpOrderedClause; +import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpReductionClause; import pt.up.fe.specs.fortran.ast.nodes.program.*; -import pt.up.fe.specs.fortran.ast.nodes.omp.OmpConstruct; -import pt.up.fe.specs.fortran.ast.nodes.omp.OmpLoopConstruct; -import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpClause; -import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpDataSharingClause; -import pt.up.fe.specs.fortran.ast.nodes.program.Application; -import pt.up.fe.specs.fortran.ast.nodes.program.Execution; -import pt.up.fe.specs.fortran.ast.nodes.program.FortranFile; -import pt.up.fe.specs.fortran.ast.nodes.program.StmtBlock; import pt.up.fe.specs.fortran.ast.nodes.stmt.*; +import pt.up.fe.specs.fortran.ast.nodes.stmt.ifstmt.*; +import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.AttributeSpecifier; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.KeywordAttributeSpecifier; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.ParameterKeyword; -import pt.up.fe.specs.fortran.ast.nodes.stmt.ifstmt.*; import pt.up.fe.specs.fortran.ast.nodes.utils.NameValue; import pt.up.fe.specs.fortran.weaver.abstracts.AFortranWeaverJoinPoint; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AJoinPoint; @@ -73,7 +62,7 @@ public class FortranJoinpoints { JOINPOINT_FACTORY.put(CompilerDirective.class, FCompilerDirective::new); JOINPOINT_FACTORY.put(DataRef.class, FDataRef::new); JOINPOINT_FACTORY.put(Designator.class, FDesignator::new); - JOINPOINT_FACTORY.put(DoStmt.class, FDoStatement::new); + JOINPOINT_FACTORY.put(DoConstruct.class, FDoConstruct::new); JOINPOINT_FACTORY.put(ExecutableStmt.class, FExecutableStatement::new); JOINPOINT_FACTORY.put(Execution.class, FExecution::new); JOINPOINT_FACTORY.put(Expr.class, FExpr::new); diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FDoStatement.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FDoConstruct.java similarity index 60% rename from FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FDoStatement.java rename to FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FDoConstruct.java index fd72b80c..167572c4 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FDoStatement.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FDoConstruct.java @@ -1,7 +1,7 @@ package pt.up.fe.specs.fortran.weaver.joinpoints; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.stmt.DoStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; import pt.up.fe.specs.fortran.weaver.FortranJoinpoints; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.ADoStatement; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AExecution; @@ -9,35 +9,35 @@ import java.util.Objects; -public class FDoStatement extends ADoStatement { +public class FDoConstruct extends ADoStatement { - private final DoStmt doStmt; + private final DoConstruct doConstruct; - public FDoStatement(DoStmt doStmt) { - super(new FExecutableStatement(doStmt)); - this.doStmt = doStmt; + public FDoConstruct(DoConstruct doConstruct) { + super(new FExecutableStatement(doConstruct)); + this.doConstruct = doConstruct; } @Override public AExecution getBodyImpl() { - return FortranJoinpoints.create(doStmt.getBody(), AExecution.class); + return FortranJoinpoints.create(doConstruct.getBody(), AExecution.class); } @Override public ALoopControl getControlImpl() { - return FortranJoinpoints.create(doStmt.getControl().get(), ALoopControl.class); + return FortranJoinpoints.create(doConstruct.getControl().get(), ALoopControl.class); } @Override public String getKindImpl() { - return doStmt.getKind().toString().toLowerCase(); + return doConstruct.getKind().toString().toLowerCase(); } @Override public ADoStatement copyScopeImpl() { - DoStmt copiedDoStmt = (DoStmt) doStmt.copy(); + DoConstruct copiedDoStmt = (DoConstruct) doConstruct.copy(); copiedDoStmt.getBody().removeChildren(); - return new FDoStatement(copiedDoStmt); + return new FDoConstruct(copiedDoStmt); } @Override @@ -50,6 +50,6 @@ public boolean sameScopeImpl(ADoStatement loop) { @Override public FortranNode getNode() { - return doStmt; + return doConstruct; } } From 944232e9f34436f7a86b3f1530aa37b54f6e909a Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 9 Jul 2026 00:33:25 +0100 Subject: [PATCH 024/260] Complete weaver fix --- .../fortran/weaver/importable/AstFactory.java | 24 ++++++++----------- .../weaver/joinpoints/FOmpLoopConstruct.java | 4 ++-- 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/importable/AstFactory.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/importable/AstFactory.java index 5c1d014c..f61fb901 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/importable/AstFactory.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/importable/AstFactory.java @@ -1,18 +1,14 @@ package pt.up.fe.specs.fortran.weaver.importable; import pt.up.fe.specs.fortran.ast.nodes.expr.Argument; -import pt.up.fe.specs.fortran.ast.nodes.expr.Call; import pt.up.fe.specs.fortran.ast.nodes.expr.DataRef; import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; import pt.up.fe.specs.fortran.ast.nodes.expr.enums.BinaryOperatorKind; -import pt.up.fe.specs.fortran.ast.nodes.omp.OmpLoopConstruct; +import pt.up.fe.specs.fortran.ast.nodes.loops.RangeLoopControl; import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpClause; -import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpDataSharingClause; import pt.up.fe.specs.fortran.ast.nodes.omp.enums.OmpClauseKind; -import pt.up.fe.specs.fortran.ast.nodes.loops.LoopControl; -import pt.up.fe.specs.fortran.ast.nodes.loops.RangeLoopControl; -import pt.up.fe.specs.fortran.ast.nodes.stmt.DoStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.ExecutableStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; import pt.up.fe.specs.fortran.weaver.FortranJoinpoints; import pt.up.fe.specs.fortran.weaver.FortranWeaver; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.*; @@ -28,9 +24,9 @@ public static AOmpLoopConstruct ompLoopConstruct(ADoStatement loop, Object[] arg .map(clause -> (OmpClause) clause.getNode()) .toList(); - DoStmt doStmt = (DoStmt) loop.getNode(); + var doConstruct = (DoConstruct) loop.getNode(); - return FortranJoinpoints.create(FortranWeaver.getFactory().ompLoopConstruct(doStmt, clauses), AOmpLoopConstruct.class); + return FortranJoinpoints.create(FortranWeaver.getFactory().ompLoopConstruct(doConstruct, clauses), AOmpLoopConstruct.class); } public static AOmpLoopConstruct emptyOmpLoopConstruct() { @@ -107,16 +103,16 @@ public static ARangeLoopControl rangeLoopControl(ADataRef var, AExpr lower, AExp Expr lowerNode = (Expr) lower.getNode(); Expr upperNode = (Expr) upper.getNode(); return FortranJoinpoints.create( - FortranWeaver.getFactory().rangeLoopControl(varNode, lowerNode, upperNode), - ARangeLoopControl.class + FortranWeaver.getFactory().rangeLoopControl(varNode, lowerNode, upperNode), + ARangeLoopControl.class ); } public static ADoStatement doStatement(ARangeLoopControl control) { RangeLoopControl ctrl = (RangeLoopControl) control.getNode(); return FortranJoinpoints.create( - FortranWeaver.getFactory().doStatement(ctrl), - ADoStatement.class + FortranWeaver.getFactory().doConstruct(ctrl), + ADoStatement.class ); } @@ -135,8 +131,8 @@ private static ABinaryOperator binaryOperator(BinaryOperatorKind kind, AExpr lhs Expr lhsNode = (Expr) lhs.getNode(); Expr rhsNode = (Expr) rhs.getNode(); return FortranJoinpoints.create( - FortranWeaver.getFactory().binaryOperator(kind, lhsNode, rhsNode), - ABinaryOperator.class + FortranWeaver.getFactory().binaryOperator(kind, lhsNode, rhsNode), + ABinaryOperator.class ); } } diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FOmpLoopConstruct.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FOmpLoopConstruct.java index 05e92106..bd6471f6 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FOmpLoopConstruct.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FOmpLoopConstruct.java @@ -2,7 +2,7 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.omp.OmpLoopConstruct; -import pt.up.fe.specs.fortran.ast.nodes.stmt.DoStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.ADoStatement; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AOmpLoopConstruct; @@ -17,7 +17,7 @@ public FOmpLoopConstruct(OmpLoopConstruct ompLoopConstruct) { @Override public void setLoopImpl(ADoStatement loop) { - ompLoopConstruct.setLoop((DoStmt) loop.getNode()); + ompLoopConstruct.setLoop((DoConstruct) loop.getNode()); } @Override From 1a6af29657ba33774eedf5825412ba6f2509454e Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 13 Jul 2026 19:50:06 +0100 Subject: [PATCH 025/260] Create new test case --- .../fujitsu/0001/0001_0000.expected.f90 | 18 + .../fortran/parser/fujitsu/0001/0001_0000.f | 18 + .../parser/fujitsu/0001/0001_0000.json | 1219 +++++++++++++++++ .../fortran/parser/FortranParserTest.java | 12 + 4 files changed, 1267 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.f create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.json diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f90 new file mode 100644 index 00000000..73b6c5fb --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f90 @@ -0,0 +1,18 @@ + INTEGER A(1000) + + A = 0 + A = A + 1 + + DO 10 I = 1,1000 + IF (A(I) /= 1) THEN + WRITE (6, *) 'NG' + WRITE (6, *) 'ELEMENT NUMBER = A(', I, ')' + GO TO 20 + ENDIF + 10 CONTINUE + + WRITE (6, *) 'OK' + + 20 CONTINUE + STOP + END diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.f b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.f new file mode 100644 index 00000000..22277564 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.f @@ -0,0 +1,18 @@ + INTEGER A(1000) + + A = 0 + A = A + 1 + + DO 10 I=1,1000 + IF(A(I).NE.1) THEN + WRITE(6,*) 'NG' + WRITE(6,*) 'ELEMENT NUMBER = A(',I,')' + GO TO 20 + ENDIF + 10 CONTINUE + + WRITE(6,*) 'OK' + + 20 CONTINUE + STOP + END diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.json b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.json new file mode 100644 index 00000000..bcf1e0cd --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.json @@ -0,0 +1,1219 @@ +{ + "nodes": [ + { + "id": "0x55d98ce65f00-Program", + "ProgramUnit": [ + "0x55d98cea2390-ProgramUnit" + ] + }, + { + "id": "0x55d98cea2390-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x55d98cea2db0-MainProgram" + }, + { + "id": "0x55d98cea2db0-MainProgram", + "SpecificationPart": "0x55d98cea2e50-SpecificationPart", + "ExecutionPart": "0x55d98cea2e38-ExecutionPart", + "Statement": "0x55d98cea2db0-Statement" + }, + { + "id": "0x55d98cea2e50-SpecificationPart", + "ImplicitPart": "0x55d98cea2e68-ImplicitPart", + "DeclarationConstruct": [ + "0x55d98ce73110-DeclarationConstruct" + ] + }, + { + "id": "0x55d98cea2e68-ImplicitPart" + }, + { + "id": "0x55d98ce73110-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55d98ce73110-SpecificationConstruct" + }, + { + "id": "0x55d98ce73110-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55d98ce73110-Statement" + }, + { + "id": "0x55d98ce73110-Statement", + "statement": "0x55d98cea2c20-TypeDeclarationStmt", + "source": "integera(1000)" + }, + { + "id": "0x55d98cea2c20-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55d98cea2c50-DeclarationTypeSpec", + "EntityDecl": [ + "0x55d98ce91f70-EntityDecl" + ] + }, + { + "id": "0x55d98cea2c50-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55d98cea2c50-IntrinsicTypeSpec" + }, + { + "id": "0x55d98cea2c50-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55d98cea2c50-IntegerTypeSpec" + }, + { + "id": "0x55d98cea2c50-IntegerTypeSpec" + }, + { + "id": "0x55d98ce91f70-EntityDecl", + "Name": "0x55d98ce92028-Name", + "ArraySpec": "0x55d98ce91ff0-ArraySpec" + }, + { + "id": "0x55d98ce92028-Name", + "source": "a" + }, + { + "id": "0x55d98ce91ff0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x55d98cea2330-ExplicitShapeSpec" + ] + }, + { + "id": "0x55d98cea2330-ExplicitShapeSpec", + "upper_bound": "0x55d98cea2330-SpecificationExpr" + }, + { + "id": "0x55d98cea2330-SpecificationExpr", + "Expr": "0x55d98ce05790-Expr" + }, + { + "id": "0x55d98ce05790-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d98ce057b0-LiteralConstant" + }, + { + "id": "0x55d98ce057b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d98ce057b0-IntLiteralConstant" + }, + { + "id": "0x55d98ce057b0-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x55d98cea2e38-ExecutionPart", + "ExecutionPartConstruct": [ + "0x55d98ce91d30-ExecutionPartConstruct", + "0x55d98ce90a40-ExecutionPartConstruct", + "0x55d98ce90e50-ExecutionPartConstruct", + "0x55d98ce95c80-ExecutionPartConstruct", + "0x55d98ce91cd0-ExecutionPartConstruct", + "0x55d98ce92220-ExecutionPartConstruct" + ] + }, + { + "id": "0x55d98cea2e38-ExecutionPartConstruct" + }, + { + "id": "0x55d98ce91d30-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d98ce91d30-ExecutableConstruct" + }, + { + "id": "0x55d98ce91d30-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d98ce91d30-Statement" + }, + { + "id": "0x55d98ce91d30-Statement", + "statement": "0x55d98ce91d40-ActionStmt", + "source": "a=0" + }, + { + "id": "0x55d98ce91d40-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d98ce91b40-AssignmentStmt" + }, + { + "id": "0x55d98ce91b40-AssignmentStmt", + "Variable": "0x55d98ce91c20-Variable", + "Expr": "0x55d98ce91b50-Expr" + }, + { + "id": "0x55d98ce91c20-Variable", + "variantKey": "Designator", + "Designator": "0x55d98ce73160-Designator" + }, + { + "id": "0x55d98ce73160-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d98ce73170-DataRef" + }, + { + "id": "0x55d98ce73170-DataRef", + "variantKey": "Name", + "Name": "0x55d98ce73170-Name" + }, + { + "id": "0x55d98ce73170-Name", + "source": "a" + }, + { + "id": "0x55d98ce91b50-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d98ce91b70-LiteralConstant" + }, + { + "id": "0x55d98ce91b70-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d98ce91b70-IntLiteralConstant" + }, + { + "id": "0x55d98ce91b70-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55d98ce90a40-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d98ce90a40-ExecutableConstruct" + }, + { + "id": "0x55d98ce90a40-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d98ce90a40-Statement" + }, + { + "id": "0x55d98ce90a40-Statement", + "statement": "0x55d98ce90a50-ActionStmt", + "source": "a=a+1" + }, + { + "id": "0x55d98ce90a50-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d98ce9c710-AssignmentStmt" + }, + { + "id": "0x55d98ce9c710-AssignmentStmt", + "Variable": "0x55d98ce9c7f0-Variable", + "Expr": "0x55d98ce9c720-Expr" + }, + { + "id": "0x55d98ce9c7f0-Variable", + "variantKey": "Designator", + "Designator": "0x55d98ce644d0-Designator" + }, + { + "id": "0x55d98ce644d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d98ce644e0-DataRef" + }, + { + "id": "0x55d98ce644e0-DataRef", + "variantKey": "Name", + "Name": "0x55d98ce644e0-Name" + }, + { + "id": "0x55d98ce644e0-Name", + "source": "a" + }, + { + "id": "0x55d98ce9c720-Expr", + "variantKey": "Add", + "Add": "0x55d98ce9c740-Add" + }, + { + "id": "0x55d98ce9c740-Add", + "left": "0x55d98ce9c5c0-Expr", + "right": "0x55d98ce9c4e0-Expr", + "op": "ADD" + }, + { + "id": "0x55d98ce9c5c0-Expr", + "variantKey": "Designator", + "Designator": "0x55d98ce914b0-Designator" + }, + { + "id": "0x55d98ce914b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d98ce914c0-DataRef" + }, + { + "id": "0x55d98ce914c0-DataRef", + "variantKey": "Name", + "Name": "0x55d98ce914c0-Name" + }, + { + "id": "0x55d98ce914c0-Name", + "source": "a" + }, + { + "id": "0x55d98ce9c4e0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d98ce9c500-LiteralConstant" + }, + { + "id": "0x55d98ce9c500-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d98ce9c500-IntLiteralConstant" + }, + { + "id": "0x55d98ce9c500-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55d98ce90e50-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d98ce90e50-ExecutableConstruct" + }, + { + "id": "0x55d98ce90e50-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x55d98ce9f1f0-DoConstruct" + }, + { + "id": "0x55d98ce9f1f0-DoConstruct", + "Statement": "0x55d98ce9f248-Statement", + "ExecutionPartConstruct": [ + "0x55d98ce913f0-ExecutionPartConstruct", + "0x55d98ce91670-ExecutionPartConstruct" + ], + "Statement": "0x55d98ce9f1f0-Statement" + }, + { + "id": "0x55d98ce9f248-Statement", + "statement": "0x55d98ce9f258-NonLabelDoStmt", + "source": "do10i=1,1000" + }, + { + "id": "0x55d98ce9f258-NonLabelDoStmt", + "LoopControl": "0x55d98ce9f258-LoopControl" + }, + { + "id": "0x55d98ce9f258-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x55d98ce9f258-LoopBounds" + }, + { + "id": "0x55d98ce9f258-LoopBounds", + "var": "0x55d98ce9f258-Name", + "lower": "0x55d98ce90a90-Expr", + "upper": "0x55d98ce90b70-Expr" + }, + { + "id": "0x55d98ce9f258-Name", + "source": "i" + }, + { + "id": "0x55d98ce90a90-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d98ce90ab0-LiteralConstant" + }, + { + "id": "0x55d98ce90ab0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d98ce90ab0-IntLiteralConstant" + }, + { + "id": "0x55d98ce90ab0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55d98ce90b70-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d98ce90b90-LiteralConstant" + }, + { + "id": "0x55d98ce90b90-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d98ce90b90-IntLiteralConstant" + }, + { + "id": "0x55d98ce90b90-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x55d98ce9f230-ExecutionPartConstruct" + }, + { + "id": "0x55d98ce913f0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d98ce913f0-ExecutableConstruct" + }, + { + "id": "0x55d98ce913f0-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55d98ce3b780-IfConstruct" + }, + { + "id": "0x55d98ce3b780-IfConstruct", + "Statement": "0x55d98ce3b850-Statement", + "ExecutionPartConstruct": [ + "0x55d98ce919a0-ExecutionPartConstruct", + "0x55d98ce95900-ExecutionPartConstruct", + "0x55d98ce72da0-ExecutionPartConstruct" + ], + "Statement": "0x55d98ce3b780-Statement" + }, + { + "id": "0x55d98ce3b850-Statement", + "statement": "0x55d98ce3b860-IfThenStmt", + "source": "if(a(i).ne.1)then" + }, + { + "id": "0x55d98ce3b860-IfThenStmt", + "Expr": "0x55d98ce926f0-Expr" + }, + { + "id": "0x55d98ce926f0-Expr", + "variantKey": "NE", + "NE": "0x55d98ce92710-NE" + }, + { + "id": "0x55d98ce92710-NE", + "left": "0x55d98ce90cd0-Expr", + "right": "0x55d98ce92610-Expr", + "op": "NE" + }, + { + "id": "0x55d98ce90cd0-Expr", + "variantKey": "Designator", + "Designator": "0x55d98ceca2f0-Designator" + }, + { + "id": "0x55d98ceca2f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d98ceca300-DataRef" + }, + { + "id": "0x55d98ceca300-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55d98cebe350-ArrayElement" + }, + { + "id": "0x55d98cebe350-ArrayElement", + "base": "0x55d98cebe350-DataRef", + "subscripts": [ + "0x55d98cea92b0-SectionSubscript" + ] + }, + { + "id": "0x55d98cebe350-DataRef", + "variantKey": "Name", + "Name": "0x55d98cebe350-Name" + }, + { + "id": "0x55d98cebe350-Name", + "source": "a" + }, + { + "id": "0x55d98cea92b0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55d98cec6ea0-Expr" + }, + { + "id": "0x55d98cec6ea0-Expr", + "variantKey": "Designator", + "Designator": "0x55d98ce927d0-Designator" + }, + { + "id": "0x55d98ce927d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d98ce927e0-DataRef" + }, + { + "id": "0x55d98ce927e0-DataRef", + "variantKey": "Name", + "Name": "0x55d98ce927e0-Name" + }, + { + "id": "0x55d98ce927e0-Name", + "source": "i" + }, + { + "id": "0x55d98ce92610-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d98ce92630-LiteralConstant" + }, + { + "id": "0x55d98ce92630-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d98ce92630-IntLiteralConstant" + }, + { + "id": "0x55d98ce92630-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55d98ce3b838-ExecutionPartConstruct" + }, + { + "id": "0x55d98ce919a0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d98ce919a0-ExecutableConstruct" + }, + { + "id": "0x55d98ce919a0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d98ce919a0-Statement" + }, + { + "id": "0x55d98ce919a0-Statement", + "statement": "0x55d98ce919b0-ActionStmt", + "source": "write(6,*)'NG'" + }, + { + "id": "0x55d98ce919b0-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x55d98ce951e0-WriteStmt" + }, + { + "id": "0x55d98ce951e0-WriteStmt", + "iounit": "0x55d98ce951e0-IoUnit", + "format": "0x55d98ce95210-Format", + "controls": [], + "items": [ + "0x55d98ce95100-OutputItem" + ] + }, + { + "id": "0x55d98ce951e0-IoUnit", + "variantKey": "Expr", + "Expr": "0x55d98ce95010-Expr" + }, + { + "id": "0x55d98ce95010-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d98ce95030-LiteralConstant" + }, + { + "id": "0x55d98ce95030-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d98ce95030-IntLiteralConstant" + }, + { + "id": "0x55d98ce95030-IntLiteralConstant", + "CharBlock": "6" + }, + { + "id": "0x55d98ce95210-Format", + "variantKey": "Star", + "Star": "0x55d98ce95210-Star" + }, + { + "id": "0x55d98ce95210-Star" + }, + { + "id": "0x55d98ce95100-OutputItem", + "variantKey": "Expr", + "Expr": "0x55d98ce95100-Expr" + }, + { + "id": "0x55d98ce95100-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d98ce95120-LiteralConstant" + }, + { + "id": "0x55d98ce95120-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55d98ce95120-CharLiteralConstant" + }, + { + "id": "0x55d98ce95120-CharLiteralConstant", + "string": "NG" + }, + { + "id": "0x55d98ce95900-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d98ce95900-ExecutableConstruct" + }, + { + "id": "0x55d98ce95900-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d98ce95900-Statement" + }, + { + "id": "0x55d98ce95900-Statement", + "statement": "0x55d98ce95910-ActionStmt", + "source": "write(6,*)'ELEMENT NUMBER = A(',i,')'" + }, + { + "id": "0x55d98ce95910-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x55d98ce95740-WriteStmt" + }, + { + "id": "0x55d98ce95740-WriteStmt", + "iounit": "0x55d98ce95740-IoUnit", + "format": "0x55d98ce95770-Format", + "controls": [], + "items": [ + "0x55d98ce95660-OutputItem", + "0x55d98ce95420-OutputItem", + "0x55d98ce95570-OutputItem" + ] + }, + { + "id": "0x55d98ce95740-IoUnit", + "variantKey": "Expr", + "Expr": "0x55d98ce95330-Expr" + }, + { + "id": "0x55d98ce95330-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d98ce95350-LiteralConstant" + }, + { + "id": "0x55d98ce95350-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d98ce95350-IntLiteralConstant" + }, + { + "id": "0x55d98ce95350-IntLiteralConstant", + "CharBlock": "6" + }, + { + "id": "0x55d98ce95770-Format", + "variantKey": "Star", + "Star": "0x55d98ce95770-Star" + }, + { + "id": "0x55d98ce95770-Star" + }, + { + "id": "0x55d98ce95660-OutputItem", + "variantKey": "Expr", + "Expr": "0x55d98ce95660-Expr" + }, + { + "id": "0x55d98ce95660-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d98ce95680-LiteralConstant" + }, + { + "id": "0x55d98ce95680-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55d98ce95680-CharLiteralConstant" + }, + { + "id": "0x55d98ce95680-CharLiteralConstant", + "string": "ELEMENT NUMBER = A(" + }, + { + "id": "0x55d98ce95420-OutputItem", + "variantKey": "Expr", + "Expr": "0x55d98ce95420-Expr" + }, + { + "id": "0x55d98ce95420-Expr", + "variantKey": "Designator", + "Designator": "0x55d98ce933b0-Designator" + }, + { + "id": "0x55d98ce933b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d98ce933c0-DataRef" + }, + { + "id": "0x55d98ce933c0-DataRef", + "variantKey": "Name", + "Name": "0x55d98ce933c0-Name" + }, + { + "id": "0x55d98ce933c0-Name", + "source": "i" + }, + { + "id": "0x55d98ce95570-OutputItem", + "variantKey": "Expr", + "Expr": "0x55d98ce95570-Expr" + }, + { + "id": "0x55d98ce95570-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d98ce95590-LiteralConstant" + }, + { + "id": "0x55d98ce95590-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55d98ce95590-CharLiteralConstant" + }, + { + "id": "0x55d98ce95590-CharLiteralConstant", + "string": ")" + }, + { + "id": "0x55d98ce72da0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d98ce72da0-ExecutableConstruct" + }, + { + "id": "0x55d98ce72da0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d98ce72da0-Statement" + }, + { + "id": "0x55d98ce72da0-Statement", + "statement": "0x55d98ce72db0-ActionStmt", + "source": "goto20" + }, + { + "id": "0x55d98ce72db0-ActionStmt", + "variantKey": "GotoStmt", + "GotoStmt": "0x55d98cea3b30-GotoStmt" + }, + { + "id": "0x55d98cea3b30-GotoStmt", + "uint64_t": "20" + }, + { + "id": "0x55d98ce3b780-Statement", + "statement": "0x55d98ce3b790-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55d98ce3b790-EndIfStmt" + }, + { + "id": "0x55d98ce91670-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d98ce91670-ExecutableConstruct" + }, + { + "id": "0x55d98ce91670-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d98ce91670-Statement" + }, + { + "id": "0x55d98ce91670-Statement", + "statement": "0x55d98ce91680-ActionStmt", + "label": "10", + "source": "10continue" + }, + { + "id": "0x55d98ce91680-ActionStmt", + "variantKey": "ContinueStmt", + "ContinueStmt": "0x55d98ce91680-ContinueStmt" + }, + { + "id": "0x55d98ce91680-ContinueStmt" + }, + { + "id": "0x55d98ce9f1f0-Statement", + "statement": "0x55d98ce9f200-EndDoStmt", + "source": "" + }, + { + "id": "0x55d98ce9f200-EndDoStmt" + }, + { + "id": "0x55d98ce95c80-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d98ce95c80-ExecutableConstruct" + }, + { + "id": "0x55d98ce95c80-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d98ce95c80-Statement" + }, + { + "id": "0x55d98ce95c80-Statement", + "statement": "0x55d98ce95c90-ActionStmt", + "source": "write(6,*)'OK'" + }, + { + "id": "0x55d98ce95c90-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x55d98ce95b20-WriteStmt" + }, + { + "id": "0x55d98ce95b20-WriteStmt", + "iounit": "0x55d98ce95b20-IoUnit", + "format": "0x55d98ce95b50-Format", + "controls": [], + "items": [ + "0x55d98ce95a40-OutputItem" + ] + }, + { + "id": "0x55d98ce95b20-IoUnit", + "variantKey": "Expr", + "Expr": "0x55d98ce95950-Expr" + }, + { + "id": "0x55d98ce95950-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d98ce95970-LiteralConstant" + }, + { + "id": "0x55d98ce95970-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d98ce95970-IntLiteralConstant" + }, + { + "id": "0x55d98ce95970-IntLiteralConstant", + "CharBlock": "6" + }, + { + "id": "0x55d98ce95b50-Format", + "variantKey": "Star", + "Star": "0x55d98ce95b50-Star" + }, + { + "id": "0x55d98ce95b50-Star" + }, + { + "id": "0x55d98ce95a40-OutputItem", + "variantKey": "Expr", + "Expr": "0x55d98ce95a40-Expr" + }, + { + "id": "0x55d98ce95a40-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d98ce95a60-LiteralConstant" + }, + { + "id": "0x55d98ce95a60-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55d98ce95a60-CharLiteralConstant" + }, + { + "id": "0x55d98ce95a60-CharLiteralConstant", + "string": "OK" + }, + { + "id": "0x55d98ce91cd0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d98ce91cd0-ExecutableConstruct" + }, + { + "id": "0x55d98ce91cd0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d98ce91cd0-Statement" + }, + { + "id": "0x55d98ce91cd0-Statement", + "statement": "0x55d98ce91ce0-ActionStmt", + "label": "20", + "source": "20continue" + }, + { + "id": "0x55d98ce91ce0-ActionStmt", + "variantKey": "ContinueStmt", + "ContinueStmt": "0x55d98ce91ce0-ContinueStmt" + }, + { + "id": "0x55d98ce91ce0-ContinueStmt" + }, + { + "id": "0x55d98ce92220-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d98ce92220-ExecutableConstruct" + }, + { + "id": "0x55d98ce92220-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d98ce92220-Statement" + }, + { + "id": "0x55d98ce92220-Statement", + "statement": "0x55d98ce92230-ActionStmt", + "source": "stop" + }, + { + "id": "0x55d98ce92230-ActionStmt", + "variantKey": "StopStmt", + "StopStmt": "0x55d98ce95cd0-StopStmt" + }, + { + "id": "0x55d98ce95cd0-StopStmt", + "kind": "0x55d98ce95db8-Kind = Stop" + }, + { + "id": "0x55d98ce95db8-Kind = Stop", + "disambiguation": "Fortran::parser::StopStmt::Kind", + "value": "Stop" + }, + { + "id": "0x55d98cea2db0-Statement", + "statement": "0x55d98cea2dc0-EndProgramStmt", + "source": "end" + }, + { + "id": "0x55d98cea2dc0-EndProgramStmt" + } + ], + "enums": { + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "Fortran::common::ImportKind": [ + "Default", + "Only", + "None", + "All" + ], + "Fortran::common::OmpDependenceKind": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::common::OmpMemoryOrderType": [ + "Acq_Rel", + "Acquire", + "Relaxed", + "Release", + "Seq_Cst" + ], + "Fortran::common::OpenACCDeviceType": [ + "Star", + "Default", + "Nvidia", + "Radeon", + "Host", + "Multicore", + "None" + ], + "Fortran::parser::AccDataModifier::Modifier": [ + "ReadOnly", + "Zero" + ], + "Fortran::parser::AccessSpec::Kind": [ + "Public", + "Private" + ], + "Fortran::parser::BindEntity::Kind": [ + "Object", + "Common" + ], + "Fortran::parser::CompilerDirective::VectorLength::Kind": [ + "Auto", + "Fixed", + "Scalable" + ], + "Fortran::parser::ConnectSpec::CharExpr::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Encoding", + "Form", + "Pad", + "Position", + "Round", + "Sign", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::DefinedOperator::IntrinsicOperator": [ + "Power", + "Multiply", + "Divide", + "Add", + "Subtract", + "Concat", + "LT", + "LE", + "EQ", + "NE", + "GE", + "GT", + "NOT", + "AND", + "OR", + "EQV", + "NEQV" + ], + "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec": [ + "External", + "Type" + ], + "Fortran::parser::InquireSpec::CharVar::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Direct", + "Encoding", + "Form", + "Formatted", + "Iomsg", + "Name", + "Pad", + "Position", + "Read", + "Readwrite", + "Round", + "Sequential", + "Sign", + "Stream", + "Status", + "Unformatted", + "Write", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::InquireSpec::IntVar::Kind": [ + "Iostat", + "Nextrec", + "Number", + "Pos", + "Recl", + "Size" + ], + "Fortran::parser::InquireSpec::LogVar::Kind": [ + "Exist", + "Named", + "Opened", + "Pending" + ], + "Fortran::parser::IntentSpec::Intent": [ + "In", + "Out", + "InOut" + ], + "Fortran::parser::IoControlSpec::CharExpr::Kind": [ + "Advance", + "Blank", + "Decimal", + "Delim", + "Pad", + "Round", + "Sign" + ], + "Fortran::parser::ReductionOperator::Operator": [ + "Plus", + "Multiply", + "Max", + "Min", + "Iand", + "Ior", + "Ieor", + "And", + "Or", + "Eqv", + "Neqv" + ], + "Fortran::parser::OmpAccessGroup::Value": [ + "Cgroup" + ], + "Fortran::parser::OmpAdjustArgsClause::OmpAdjustOp::Value": [ + "Nothing", + "Need_Device_Ptr" + ], + "Fortran::parser::OmpAlwaysModifier::Value": [ + "Always" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpAttachModifier::Value": [ + "Always", + "Never", + "Auto" + ], + "Fortran::parser::OmpAutomapModifier::Value": [ + "Automap" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpCloseModifier::Value": [ + "Close" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default", + "Present" + ], + "Fortran::parser::OmpDeleteModifier::Value": [ + "Delete" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpDirectiveSpecification::Flag": [ + "DeprecatedSyntax", + "CrossesLabelDo" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpInteropType::Value": [ + "Target", + "Targetsync" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "Storage", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpObject::Invalid::Kind": [ + "BlankCommonBlock" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpPresentModifier::Value": [ + "Present" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpRefModifier::Value": [ + "Ref_Ptee", + "Ref_Ptr", + "Ref_Ptr_Ptee" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpSelfModifier::Value": [ + "Self" + ], + "Fortran::parser::OmpSeverityClause::SevLevel": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpThreadsetClause::ThreadsetPolicy": [ + "Omp_Pool", + "Omp_Team" + ], + "Fortran::parser::OmpTraitSelectorName::Value": [ + "Arch", + "Atomic_Default_Mem_Order", + "Condition", + "Device_Num", + "Extension", + "Isa", + "Kind", + "Requires", + "Simd", + "Uid", + "Vendor" + ], + "Fortran::parser::OmpTraitSetSelectorName::Value": [ + "Construct", + "Device", + "Implementation", + "Target_Device", + "User" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpxHoldModifier::Value": [ + "Ompx_Hold" + ], + "Fortran::parser::ProcedureStmt::Kind": [ + "ModuleProcedure", + "Procedure" + ], + "Fortran::parser::SavedEntity::Kind": [ + "Entity", + "Common" + ], + "Fortran::parser::StopStmt::Kind": [ + "Stop", + "ErrorStop" + ], + "Fortran::parser::UseStmt::ModuleNature": [ + "Intrinsic", + "Non_Intrinsic" + ] + } +} diff --git a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java index 5eb4111c..43e14976 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -676,4 +676,16 @@ void testFujitsu0000_0033Native() { testNative("fujitsu/0000/0000_0033.f90"); } } + + @Test + void testFujitsu0001_0000() { + testJson("fujitsu/0001/0001_0000.json"); + } + + @Test + void testFujitsu0001_0000Native() { + if (SpecsPlatforms.isLinux()) { + testNative("fujitsu/0001/0001_0000.f"); + } + } } From 453a79ac7f7c6b29c8e689e474960c9798f3a3c2 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 14 Jul 2026 15:35:38 +0100 Subject: [PATCH 026/260] Add test for legacy do loops --- .../fujitsu/0001/0001_0000.expected.f90 | 28 +++++++++---------- .../parser/stmt/legacy_do.expected.f90 | 11 ++++++++ .../fortran/parser/stmt/legacy_do.f90 | 11 ++++++++ .../fortran/parser/FortranParserTest.java | 12 ++++++++ 4 files changed, 48 insertions(+), 14 deletions(-) create mode 100644 FortranParser/resources-test/fortran/parser/stmt/legacy_do.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/stmt/legacy_do.f90 diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f90 index 73b6c5fb..f7339dd3 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f90 @@ -1,18 +1,18 @@ - INTEGER A(1000) + INTEGER a(1000) - A = 0 - A = A + 1 + a = 0 + a = a + 1 - DO 10 I = 1,1000 - IF (A(I) /= 1) THEN - WRITE (6, *) 'NG' - WRITE (6, *) 'ELEMENT NUMBER = A(', I, ')' - GO TO 20 - ENDIF - 10 CONTINUE + DO 10 i = 1,1000 + IF (a(i) /= 1) THEN + WRITE (6, *) "NG" + WRITE (6, *) "ELEMENT NUMBER = A(", i, ")" + GO TO 20 + END IF + 10 CONTINUE - WRITE (6, *) 'OK' + WRITE (6, *) "OK" - 20 CONTINUE - STOP - END + 20 CONTINUE + STOP +END PROGRAM diff --git a/FortranParser/resources-test/fortran/parser/stmt/legacy_do.expected.f90 b/FortranParser/resources-test/fortran/parser/stmt/legacy_do.expected.f90 new file mode 100644 index 00000000..dd6f1f75 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/stmt/legacy_do.expected.f90 @@ -0,0 +1,11 @@ +PROGRAM LEGACY_DO + ! Legacy do's end with a continue statement + DO 10 i = 1, 5 + PRINT *, i + 10 CONTINUE + + ! They can also end normally + DO 20 i = 11, 15 + PRINT *, i + 20 END DO +END PROGRAM LEGACY_DO \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/stmt/legacy_do.f90 b/FortranParser/resources-test/fortran/parser/stmt/legacy_do.f90 new file mode 100644 index 00000000..a37b50cb --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/stmt/legacy_do.f90 @@ -0,0 +1,11 @@ +program legacy_do + ! Legacy do's end with a continue statement + do 10 i = 1, 5 + print *, i + 10 continue + + ! They can also end normally + do 20 i = 11, 15 + print *, i + 20 end do +end program legacy_do \ No newline at end of file diff --git a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java index 43e14976..2880cbdf 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -532,6 +532,18 @@ void testCommentNative() { } } + @Test + void testLegacyDo() { + testJson("stmt/legacy_do.json"); + } + + @Test + void testLegacyDoNative() { + if (SpecsPlatforms.isLinux()) { + testNative("stmt/legacy_do.f90"); + } + } + @Test void testFujitsu0000_0000() { testJson("fujitsu/0000/0000_0000.json"); From bd2a4547ca19976b5e06a800f9154cdc8d6a1edc Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 14 Jul 2026 15:36:00 +0100 Subject: [PATCH 027/260] Add AST-level support for labeled do loops --- .../ast/nodes/stmt/loop/DoConstruct.java | 39 ++++++++++++++++--- .../fortran/ast/nodes/stmt/loop/DoStmt.java | 12 ++---- .../ast/nodes/stmt/loop/EndDoStmt.java | 7 +++- 3 files changed, 44 insertions(+), 14 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java index 93e3ae18..7efbf26d 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java @@ -4,20 +4,19 @@ import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.decl.LabelDecl; import pt.up.fe.specs.fortran.ast.nodes.loops.LoopControl; import pt.up.fe.specs.fortran.ast.nodes.loops.enums.DoKind; import pt.up.fe.specs.fortran.ast.nodes.program.Execution; +import pt.up.fe.specs.fortran.ast.nodes.stmt.ContinueStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.ExecutableStmt; import java.util.Collection; import java.util.Optional; -import static pt.up.fe.specs.fortran.ast.FortranKeyword.DO; -import static pt.up.fe.specs.fortran.ast.FortranKeyword.END; - public class DoConstruct extends ExecutableStmt { - public static final DataKey> NAME = KeyFactory.optional("name"); + public static final DataKey> DO_LABEL = KeyFactory.optional("doLabel"); public DoConstruct(DataStore data, Collection children) { super(data, children); @@ -43,6 +42,10 @@ public Optional getName() { return get(NAME); } + public Optional getDoLabel() { + return get(DO_LABEL); + } + public DoKind getKind() { return getControl() .map(DoKind::fromControl) @@ -61,6 +64,32 @@ public String getStmtCode() { var body = getBody(); var endDoStmt = getEndDoStmt(); - return doStmt.getCode() + ln() + indent(body.getCode()) + ln() + endDoStmt.getCode(); + var code = new StringBuilder(); + + code.append(doStmt.getCode()).append(ln()) + .append(body.getCode()); + + var endDoStmtCode = endDoStmt.getStmtCode(); + if (!endDoStmtCode.isEmpty()) { + code.append(ln()).append(endDoStmtCode); + } + + return code.toString(); + } + + public boolean hasContinueEnd() { + var doLabelOpt = getDoLabel(); + if (doLabelOpt.isEmpty()) { + return false; + } + + var doLabel = doLabelOpt.get(); + var lastStmt = getBody().getChildTry(getNumChildren() - 1); + if (lastStmt.isEmpty() || !(lastStmt.get() instanceof ContinueStmt contLastStmt)) { + return false; + } + + var contLabel = contLastStmt.getLabel().map(LabelDecl::getCode); + return contLabel.map(doLabel::equals).orElse(false); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoStmt.java index c05054c8..4a09e3f9 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoStmt.java @@ -12,8 +12,6 @@ import java.util.Optional; public class DoStmt extends Stmt { - public static final DataKey> DO_LABEL = KeyFactory.optional("do_label"); - public DoStmt(DataStore data, Collection children) { super(data, children); } @@ -22,14 +20,12 @@ public Optional getLoopControl() { return getChildOf(LoopControl.class); } - public Optional getDoLabel() { - return get(DO_LABEL); - } - @Override public String getStmtCode() { - var doNameOpt = getAncestor(DoConstruct.class).getName(); - var doLabelOpt = getDoLabel(); + var parent = getAncestor(DoConstruct.class); + + var doNameOpt = parent.getName(); + var doLabelOpt = parent.getDoLabel(); var loopControlOpt = getLoopControl(); var code = new StringBuilder(); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/EndDoStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/EndDoStmt.java index e4af4555..7a6df73c 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/EndDoStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/EndDoStmt.java @@ -14,7 +14,12 @@ public EndDoStmt(DataStore data, Collection children) { @Override public String getStmtCode() { - var doNameOpt = getAncestor(DoConstruct.class).getName(); + var parent = getAncestor(DoConstruct.class); + if (parent.hasContinueEnd()) { + return ""; + } + + var doNameOpt = parent.getName(); var doNameSuffix = doNameOpt.map(name -> " " + name).orElse(""); return keyword(FortranKeyword.END) + " " + keyword(FortranKeyword.DO) + doNameSuffix; From 70a4849846269713af87e921f027b81a10a39579 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 14 Jul 2026 15:36:12 +0100 Subject: [PATCH 028/260] Upload dump --- .../fortran/parser/stmt/legacy_do.json | 781 ++++++++++++++++++ 1 file changed, 781 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/stmt/legacy_do.json diff --git a/FortranParser/resources-test/fortran/parser/stmt/legacy_do.json b/FortranParser/resources-test/fortran/parser/stmt/legacy_do.json new file mode 100644 index 00000000..02cc138f --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/stmt/legacy_do.json @@ -0,0 +1,781 @@ +{ + "nodes": [ + { + "id": "0x559c881a5f00-Program", + "ProgramUnit": [ + "0x559c881dbe50-ProgramUnit" + ] + }, + { + "id": "0x559c881dbe50-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x559c881d3680-MainProgram" + }, + { + "id": "0x559c881d3680-MainProgram", + "Statement": "0x559c881d37c8-Statement", + "SpecificationPart": "0x559c881d3720-SpecificationPart", + "ExecutionPart": "0x559c881d3708-ExecutionPart", + "Statement": "0x559c881d3680-Statement" + }, + { + "id": "0x559c881d37c8-Statement", + "statement": "0x559c881d37d8-ProgramStmt", + "source": "program LEGACY_DO" + }, + { + "id": "0x559c881d37d8-ProgramStmt", + "Name": "0x559c881d37d8-Name" + }, + { + "id": "0x559c881d37d8-Name", + "source": "LEGACY_DO" + }, + { + "id": "0x559c881d3720-SpecificationPart", + "ImplicitPart": "0x559c881d3738-ImplicitPart" + }, + { + "id": "0x559c881d3738-ImplicitPart" + }, + { + "id": "0x559c881d3708-ExecutionPart", + "ExecutionPartConstruct": [ + "0x559c881e3160-ExecutionPartConstruct", + "0x559c881e19e0-ExecutionPartConstruct" + ] + }, + { + "id": "0x559c881d3708-ExecutionPartConstruct" + }, + { + "id": "0x559c881e3160-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x559c881e3160-ExecutableConstruct" + }, + { + "id": "0x559c881e3160-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x559c881e3360-DoConstruct" + }, + { + "id": "0x559c881e3360-DoConstruct", + "Statement": "0x559c881e33b8-Statement", + "ExecutionPartConstruct": [ + "0x559c881e17c0-ExecutionPartConstruct", + "0x559c881b3170-ExecutionPartConstruct" + ], + "Statement": "0x559c881e3360-Statement" + }, + { + "id": "0x559c881e33b8-Statement", + "statement": "0x559c881e33c8-NonLabelDoStmt", + "source": "do 10 i = 1, 5" + }, + { + "id": "0x559c881e33c8-NonLabelDoStmt", + "LoopControl": "0x559c881e33c8-LoopControl" + }, + { + "id": "0x559c881e33c8-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x559c881e33c8-LoopBounds" + }, + { + "id": "0x559c881e33c8-LoopBounds", + "var": "0x559c881e33c8-Name", + "lower": "0x559c88145790-Expr", + "upper": "0x559c881e1340-Expr" + }, + { + "id": "0x559c881e33c8-Name", + "source": "i" + }, + { + "id": "0x559c88145790-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x559c881457b0-LiteralConstant" + }, + { + "id": "0x559c881457b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x559c881457b0-IntLiteralConstant" + }, + { + "id": "0x559c881457b0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x559c881e1340-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x559c881e1360-LiteralConstant" + }, + { + "id": "0x559c881e1360-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x559c881e1360-IntLiteralConstant" + }, + { + "id": "0x559c881e1360-IntLiteralConstant", + "CharBlock": "5" + }, + { + "id": "0x559c881e33a0-ExecutionPartConstruct" + }, + { + "id": "0x559c881e17c0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x559c881e17c0-ExecutableConstruct" + }, + { + "id": "0x559c881e17c0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x559c881e17c0-Statement" + }, + { + "id": "0x559c881e17c0-Statement", + "statement": "0x559c881e17d0-ActionStmt", + "source": "print *, i" + }, + { + "id": "0x559c881e17d0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x559c881e1640-PrintStmt" + }, + { + "id": "0x559c881e1640-PrintStmt", + "Format": "0x559c881e1658-Format", + "OutputItem": [ + "0x559c881e14f0-OutputItem" + ] + }, + { + "id": "0x559c881e1658-Format", + "variantKey": "Star", + "Star": "0x559c881e1658-Star" + }, + { + "id": "0x559c881e1658-Star" + }, + { + "id": "0x559c881e14f0-OutputItem", + "variantKey": "Expr", + "Expr": "0x559c881e14f0-Expr" + }, + { + "id": "0x559c881e14f0-Expr", + "variantKey": "Designator", + "Designator": "0x559c881e1480-Designator" + }, + { + "id": "0x559c881e1480-Designator", + "variantKey": "DataRef", + "DataRef": "0x559c881e1490-DataRef" + }, + { + "id": "0x559c881e1490-DataRef", + "variantKey": "Name", + "Name": "0x559c881e1490-Name" + }, + { + "id": "0x559c881e1490-Name", + "source": "i" + }, + { + "id": "0x559c881b3170-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x559c881b3170-ExecutableConstruct" + }, + { + "id": "0x559c881b3170-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x559c881b3170-Statement" + }, + { + "id": "0x559c881b3170-Statement", + "statement": "0x559c881b3180-ActionStmt", + "label": "10", + "source": "10 continue" + }, + { + "id": "0x559c881b3180-ActionStmt", + "variantKey": "ContinueStmt", + "ContinueStmt": "0x559c881b3180-ContinueStmt" + }, + { + "id": "0x559c881b3180-ContinueStmt" + }, + { + "id": "0x559c881e3360-Statement", + "statement": "0x559c881e3370-EndDoStmt", + "source": "" + }, + { + "id": "0x559c881e3370-EndDoStmt" + }, + { + "id": "0x559c881e19e0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x559c881e19e0-ExecutableConstruct" + }, + { + "id": "0x559c881e19e0-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x559c881e3480-DoConstruct" + }, + { + "id": "0x559c881e3480-DoConstruct", + "Statement": "0x559c881e34d8-Statement", + "ExecutionPartConstruct": [ + "0x559c881e1cf0-ExecutionPartConstruct", + "0x559c881b2da0-ExecutionPartConstruct" + ], + "Statement": "0x559c881e3480-Statement" + }, + { + "id": "0x559c881e34d8-Statement", + "statement": "0x559c881e34e8-NonLabelDoStmt", + "source": "do 20 i = 11, 15" + }, + { + "id": "0x559c881e34e8-NonLabelDoStmt", + "LoopControl": "0x559c881e34e8-LoopControl" + }, + { + "id": "0x559c881e34e8-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x559c881e34e8-LoopBounds" + }, + { + "id": "0x559c881e34e8-LoopBounds", + "var": "0x559c881e34e8-Name", + "lower": "0x559c881e1810-Expr", + "upper": "0x559c881e18f0-Expr" + }, + { + "id": "0x559c881e34e8-Name", + "source": "i" + }, + { + "id": "0x559c881e1810-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x559c881e1830-LiteralConstant" + }, + { + "id": "0x559c881e1830-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x559c881e1830-IntLiteralConstant" + }, + { + "id": "0x559c881e1830-IntLiteralConstant", + "CharBlock": "11" + }, + { + "id": "0x559c881e18f0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x559c881e1910-LiteralConstant" + }, + { + "id": "0x559c881e1910-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x559c881e1910-IntLiteralConstant" + }, + { + "id": "0x559c881e1910-IntLiteralConstant", + "CharBlock": "15" + }, + { + "id": "0x559c881e34c0-ExecutionPartConstruct" + }, + { + "id": "0x559c881e1cf0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x559c881e1cf0-ExecutableConstruct" + }, + { + "id": "0x559c881e1cf0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x559c881e1cf0-Statement" + }, + { + "id": "0x559c881e1cf0-Statement", + "statement": "0x559c881e1d00-ActionStmt", + "source": "print *, i" + }, + { + "id": "0x559c881e1d00-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x559c881e1be0-PrintStmt" + }, + { + "id": "0x559c881e1be0-PrintStmt", + "Format": "0x559c881e1bf8-Format", + "OutputItem": [ + "0x559c881e1b00-OutputItem" + ] + }, + { + "id": "0x559c881e1bf8-Format", + "variantKey": "Star", + "Star": "0x559c881e1bf8-Star" + }, + { + "id": "0x559c881e1bf8-Star" + }, + { + "id": "0x559c881e1b00-OutputItem", + "variantKey": "Expr", + "Expr": "0x559c881e1b00-Expr" + }, + { + "id": "0x559c881e1b00-Expr", + "variantKey": "Designator", + "Designator": "0x559c881e1a90-Designator" + }, + { + "id": "0x559c881e1a90-Designator", + "variantKey": "DataRef", + "DataRef": "0x559c881e1aa0-DataRef" + }, + { + "id": "0x559c881e1aa0-DataRef", + "variantKey": "Name", + "Name": "0x559c881e1aa0-Name" + }, + { + "id": "0x559c881e1aa0-Name", + "source": "i" + }, + { + "id": "0x559c881b2da0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x559c881b2da0-ExecutableConstruct" + }, + { + "id": "0x559c881b2da0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x559c881b2da0-Statement" + }, + { + "id": "0x559c881b2da0-Statement", + "statement": "0x559c881b2db0-ActionStmt", + "label": "20", + "source": "" + }, + { + "id": "0x559c881b2db0-ActionStmt", + "variantKey": "ContinueStmt", + "ContinueStmt": "0x559c881b2db0-ContinueStmt" + }, + { + "id": "0x559c881b2db0-ContinueStmt" + }, + { + "id": "0x559c881e3480-Statement", + "statement": "0x559c881e3490-EndDoStmt", + "source": "" + }, + { + "id": "0x559c881e3490-EndDoStmt" + }, + { + "id": "0x559c881d3680-Statement", + "statement": "0x559c881d3690-EndProgramStmt", + "source": "end program LEGACY_DO" + }, + { + "id": "0x559c881d3690-EndProgramStmt", + "Name": "0x559c881d3690-Name" + }, + { + "id": "0x559c881d3690-Name", + "source": "LEGACY_DO" + } + ], + "comments": [ + { + "text": "! Legacy do's end with a continue statement", + "stmtId": "0x559c881e33b8-Statement", + "trailing": false + }, + { + "text": "! They can also end normally", + "stmtId": "0x559c881e34d8-Statement", + "trailing": false + } + ], + "enums": { + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "Fortran::common::ImportKind": [ + "Default", + "Only", + "None", + "All" + ], + "Fortran::common::OmpDependenceKind": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::common::OmpMemoryOrderType": [ + "Acq_Rel", + "Acquire", + "Relaxed", + "Release", + "Seq_Cst" + ], + "Fortran::common::OpenACCDeviceType": [ + "Star", + "Default", + "Nvidia", + "Radeon", + "Host", + "Multicore", + "None" + ], + "Fortran::parser::AccDataModifier::Modifier": [ + "ReadOnly", + "Zero" + ], + "Fortran::parser::AccessSpec::Kind": [ + "Public", + "Private" + ], + "Fortran::parser::BindEntity::Kind": [ + "Object", + "Common" + ], + "Fortran::parser::CompilerDirective::VectorLength::Kind": [ + "Auto", + "Fixed", + "Scalable" + ], + "Fortran::parser::ConnectSpec::CharExpr::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Encoding", + "Form", + "Pad", + "Position", + "Round", + "Sign", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::DefinedOperator::IntrinsicOperator": [ + "Power", + "Multiply", + "Divide", + "Add", + "Subtract", + "Concat", + "LT", + "LE", + "EQ", + "NE", + "GE", + "GT", + "NOT", + "AND", + "OR", + "EQV", + "NEQV" + ], + "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec": [ + "External", + "Type" + ], + "Fortran::parser::InquireSpec::CharVar::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Direct", + "Encoding", + "Form", + "Formatted", + "Iomsg", + "Name", + "Pad", + "Position", + "Read", + "Readwrite", + "Round", + "Sequential", + "Sign", + "Stream", + "Status", + "Unformatted", + "Write", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::InquireSpec::IntVar::Kind": [ + "Iostat", + "Nextrec", + "Number", + "Pos", + "Recl", + "Size" + ], + "Fortran::parser::InquireSpec::LogVar::Kind": [ + "Exist", + "Named", + "Opened", + "Pending" + ], + "Fortran::parser::IntentSpec::Intent": [ + "In", + "Out", + "InOut" + ], + "Fortran::parser::IoControlSpec::CharExpr::Kind": [ + "Advance", + "Blank", + "Decimal", + "Delim", + "Pad", + "Round", + "Sign" + ], + "Fortran::parser::ReductionOperator::Operator": [ + "Plus", + "Multiply", + "Max", + "Min", + "Iand", + "Ior", + "Ieor", + "And", + "Or", + "Eqv", + "Neqv" + ], + "Fortran::parser::OmpAccessGroup::Value": [ + "Cgroup" + ], + "Fortran::parser::OmpAdjustArgsClause::OmpAdjustOp::Value": [ + "Nothing", + "Need_Device_Ptr" + ], + "Fortran::parser::OmpAlwaysModifier::Value": [ + "Always" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpAttachModifier::Value": [ + "Always", + "Never", + "Auto" + ], + "Fortran::parser::OmpAutomapModifier::Value": [ + "Automap" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpCloseModifier::Value": [ + "Close" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default", + "Present" + ], + "Fortran::parser::OmpDeleteModifier::Value": [ + "Delete" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpDirectiveSpecification::Flag": [ + "DeprecatedSyntax", + "CrossesLabelDo" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpInteropType::Value": [ + "Target", + "Targetsync" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "Storage", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpObject::Invalid::Kind": [ + "BlankCommonBlock" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpPresentModifier::Value": [ + "Present" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpRefModifier::Value": [ + "Ref_Ptee", + "Ref_Ptr", + "Ref_Ptr_Ptee" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpSelfModifier::Value": [ + "Self" + ], + "Fortran::parser::OmpSeverityClause::SevLevel": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpThreadsetClause::ThreadsetPolicy": [ + "Omp_Pool", + "Omp_Team" + ], + "Fortran::parser::OmpTraitSelectorName::Value": [ + "Arch", + "Atomic_Default_Mem_Order", + "Condition", + "Device_Num", + "Extension", + "Isa", + "Kind", + "Requires", + "Simd", + "Uid", + "Vendor" + ], + "Fortran::parser::OmpTraitSetSelectorName::Value": [ + "Construct", + "Device", + "Implementation", + "Target_Device", + "User" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpxHoldModifier::Value": [ + "Ompx_Hold" + ], + "Fortran::parser::ProcedureStmt::Kind": [ + "ModuleProcedure", + "Procedure" + ], + "Fortran::parser::SavedEntity::Kind": [ + "Entity", + "Common" + ], + "Fortran::parser::StopStmt::Kind": [ + "Stop", + "ErrorStop" + ], + "Fortran::parser::UseStmt::ModuleNature": [ + "Intrinsic", + "Non_Intrinsic" + ] + } +} From 90b1835dba494e5f9ec9a1d89486faa808813a3a Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 14 Jul 2026 16:34:56 +0100 Subject: [PATCH 029/260] Fix labeled loop processing --- .../fortran/ast/nodes/decl/LabelDecl.java | 4 ++++ .../ast/nodes/stmt/loop/DoConstruct.java | 10 ++++---- .../parser/processors/StmtProcessors.java | 24 ++++++++++++++++++- 3 files changed, 33 insertions(+), 5 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/LabelDecl.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/LabelDecl.java index 79b902e3..9996f1a5 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/LabelDecl.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/LabelDecl.java @@ -26,6 +26,10 @@ public LabelDecl(DataStore data, Collection children) { super(data, children); } + public Integer getValue() { + return get(LABEL); + } + @Override public String getCode() { return get(LABEL).toString(); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java index 7efbf26d..6b73f1d6 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java @@ -16,7 +16,7 @@ public class DoConstruct extends ExecutableStmt { public static final DataKey> NAME = KeyFactory.optional("name"); - public static final DataKey> DO_LABEL = KeyFactory.optional("doLabel"); + public static final DataKey> DO_LABEL = KeyFactory.optional("doLabel"); public DoConstruct(DataStore data, Collection children) { super(data, children); @@ -42,7 +42,7 @@ public Optional getName() { return get(NAME); } - public Optional getDoLabel() { + public Optional getDoLabel() { return get(DO_LABEL); } @@ -84,12 +84,14 @@ public boolean hasContinueEnd() { } var doLabel = doLabelOpt.get(); - var lastStmt = getBody().getChildTry(getNumChildren() - 1); + var body = getBody(); + var lastStmt = body.getChildTry(body.getNumChildren() - 1); + if (lastStmt.isEmpty() || !(lastStmt.get() instanceof ContinueStmt contLastStmt)) { return false; } - var contLabel = contLastStmt.getLabel().map(LabelDecl::getCode); + var contLabel = contLastStmt.getLabel().map(LabelDecl::getValue); return contLabel.map(doLabel::equals).orElse(false); } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 2b461fb2..20dee5db 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -20,7 +20,9 @@ import pt.up.fe.specs.fortran.parser.FlangAttributes; import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; +import pt.up.fe.specs.util.SpecsStrings; +import java.util.ArrayList; import java.util.List; import java.util.Optional; @@ -342,13 +344,33 @@ public void doConstruct(DoConstruct doConstruct) { var doStmt = getStmtChild(doConstruct, FlangName.NON_LABEL_DO_STMT); doConstruct.addChild(doStmt); - var body = factory().newNode(Execution.class, getChildren(doConstruct, FlangName.EXECUTION_PART_CONSTRUCT)); + var doStmtSource = attributes(doStmt).getString("source"); + var doLabel = extractLabel(doStmtSource); + doConstruct.set(DoConstruct.DO_LABEL, doLabel); + + var bodyStmts = new ArrayList<>(getChildren(doConstruct, FlangName.EXECUTION_PART_CONSTRUCT)); + + // In labeled do loops with no continue statement at the end, Flang will add + // an empty continue statement at the end, which we want to ignore + var lastStmt = bodyStmts.get(bodyStmts.size() - 1); + if (attributes(lastStmt).getOptionalString("source").map(String::isEmpty).orElse(false)) { + bodyStmts.remove(bodyStmts.size() - 1); // Remove last element + } + + var body = factory().newNode(Execution.class, bodyStmts); doConstruct.addChild(body); var endDoStmt = getStmtChild(doConstruct, FlangName.END_DO_STMT); doConstruct.addChild(endDoStmt); } + private Optional extractLabel(String doStmtSource) { + var spaceIdx = doStmtSource.indexOf(' ', 3); // From index 3 to ignore first space + var labelText = doStmtSource.substring(3, spaceIdx); + + return SpecsStrings.tryGetDecimalInteger(labelText); + } + public void doStmt(DoStmt doStmt) { stmt(doStmt); From fa5f2cc0ea60fd678b44a8a7777cd6dc2c2f9f9c Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 14 Jul 2026 16:39:43 +0100 Subject: [PATCH 030/260] Fix some keyword usage --- .../fe/specs/fortran/ast/FortranKeyword.java | 4 +++ .../fortran/ast/nodes/stmt/AllocateStmt.java | 3 +- .../fortran/ast/nodes/stmt/ContainsStmt.java | 3 +- .../fortran/ast/nodes/stmt/ContinueStmt.java | 3 +- .../ast/nodes/stmt/DeallocateStmt.java | 3 +- .../fortran/parser/polybench/3mm.expected.f90 | 30 +++++++++---------- 6 files changed, 27 insertions(+), 19 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java index f5aa33bb..401141fb 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -18,6 +18,10 @@ public enum FortranKeyword { ERROR, QUIET, CALL, + CONTINUE, + CONTAINS, + ALLOCATE, + DEALLOCATE, // Conditional statements IF, diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AllocateStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AllocateStmt.java index 7e4015fe..ed424546 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AllocateStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AllocateStmt.java @@ -1,6 +1,7 @@ package pt.up.fe.specs.fortran.ast.nodes.stmt; import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.alloc.AllocOption; import pt.up.fe.specs.fortran.ast.nodes.alloc.Allocation; @@ -27,7 +28,7 @@ public List getOptions() { public String getStmtCode() { StringBuilder code = new StringBuilder(); - code.append("allocate("); + code.append(keyword(FortranKeyword.ALLOCATE)).append("("); List components = new ArrayList<>(); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ContainsStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ContainsStmt.java index 711107d0..3b8d05ac 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ContainsStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ContainsStmt.java @@ -1,6 +1,7 @@ package pt.up.fe.specs.fortran.ast.nodes.stmt; import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import java.util.Collection; @@ -12,6 +13,6 @@ public ContainsStmt(DataStore data, Collection children) @Override public String getStmtCode() { - return "contains"; + return keyword(FortranKeyword.CONTAINS); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ContinueStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ContinueStmt.java index acc7b07b..98cea718 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ContinueStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ContinueStmt.java @@ -1,6 +1,7 @@ package pt.up.fe.specs.fortran.ast.nodes.stmt; import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import java.util.Collection; @@ -12,6 +13,6 @@ public ContinueStmt(DataStore data, Collection children) @Override public String getStmtCode() { - return "continue"; + return keyword(FortranKeyword.CONTINUE); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DeallocateStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DeallocateStmt.java index e88dc15f..fec22d33 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DeallocateStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DeallocateStmt.java @@ -1,6 +1,7 @@ package pt.up.fe.specs.fortran.ast.nodes.stmt; import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.expr.DataRef; @@ -21,7 +22,7 @@ public List getRefs() { public String getStmtCode() { StringBuilder code = new StringBuilder(); - code.append("deallocate("); + code.append(keyword(FortranKeyword.DEALLOCATE)).append("("); code.append(getRefs() .stream() diff --git a/FortranParser/resources-test/fortran/parser/polybench/3mm.expected.f90 b/FortranParser/resources-test/fortran/parser/polybench/3mm.expected.f90 index 95349641..b28baed9 100644 --- a/FortranParser/resources-test/fortran/parser/polybench/3mm.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/polybench/3mm.expected.f90 @@ -19,19 +19,19 @@ PROGRAM THREE_MM DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: g INTEGER :: i ! Allocation of Arrays -allocate(a(32 + 0, 32 + 0), STAT=i) +ALLOCATE(a(32 + 0, 32 + 0), STAT=i) CALL check_err(i) -allocate(b(32 + 0, 32 + 0), STAT=i) +ALLOCATE(b(32 + 0, 32 + 0), STAT=i) CALL check_err(i) -allocate(c(32 + 0, 32 + 0), STAT=i) +ALLOCATE(c(32 + 0, 32 + 0), STAT=i) CALL check_err(i) -allocate(d(32 + 0, 32 + 0), STAT=i) +ALLOCATE(d(32 + 0, 32 + 0), STAT=i) CALL check_err(i) -allocate(e(32 + 0, 32 + 0), STAT=i) +ALLOCATE(e(32 + 0, 32 + 0), STAT=i) CALL check_err(i) -allocate(f(32 + 0, 32 + 0), STAT=i) +ALLOCATE(f(32 + 0, 32 + 0), STAT=i) CALL check_err(i) -allocate(g(32 + 0, 32 + 0), STAT=i) +ALLOCATE(g(32 + 0, 32 + 0), STAT=i) CALL check_err(i) ! Initialization CALL init_array(32, 32, 32, 32, 32, a, b, c, d) @@ -44,14 +44,14 @@ PROGRAM THREE_MM ! by the function call in argument. CALL print_array(32, 32, g) ! Deallocation of Arrays -deallocate(a) -deallocate(b) -deallocate(c) -deallocate(d) -deallocate(e) -deallocate(f) -deallocate(g) -contains +DEALLOCATE(a) +DEALLOCATE(b) +DEALLOCATE(c) +DEALLOCATE(d) +DEALLOCATE(e) +DEALLOCATE(f) +DEALLOCATE(g) +CONTAINS SUBROUTINE init_array(ni, nj, nk, nl, nm, a, b, c, d) DOUBLE PRECISION, DIMENSION(nk, ni) :: a DOUBLE PRECISION, DIMENSION(nj, nk) :: b From 1e43a6f7e65617e4f78a3f1711cebc7c7c9be005 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 14 Jul 2026 16:58:50 +0100 Subject: [PATCH 031/260] Fix label on end statement --- .../fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java | 2 +- .../up/fe/specs/fortran/ast/nodes/stmt/loop/EndDoStmt.java | 7 +++++-- .../fortran/parser/fujitsu/0001/0001_0000.expected.f90 | 4 ++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java index 6b73f1d6..83d23fd7 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java @@ -67,7 +67,7 @@ public String getStmtCode() { var code = new StringBuilder(); code.append(doStmt.getCode()).append(ln()) - .append(body.getCode()); + .append(indent(body.getCode())); var endDoStmtCode = endDoStmt.getStmtCode(); if (!endDoStmtCode.isEmpty()) { diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/EndDoStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/EndDoStmt.java index 7a6df73c..b4a38b30 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/EndDoStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/EndDoStmt.java @@ -19,9 +19,12 @@ public String getStmtCode() { return ""; } + var doLabelOpt = parent.getDoLabel(); + var labelPrefix = doLabelOpt.map(label -> label + " ").orElse(""); + var doNameOpt = parent.getName(); - var doNameSuffix = doNameOpt.map(name -> " " + name).orElse(""); + var nameSuffix = doNameOpt.map(name -> " " + name).orElse(""); - return keyword(FortranKeyword.END) + " " + keyword(FortranKeyword.DO) + doNameSuffix; + return labelPrefix + keyword(FortranKeyword.END) + " " + keyword(FortranKeyword.DO) + nameSuffix; } } diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f90 index f7339dd3..64e73db7 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f90 @@ -3,13 +3,13 @@ a = 0 a = a + 1 - DO 10 i = 1,1000 + DO 10 i = 1, 1000 IF (a(i) /= 1) THEN WRITE (6, *) "NG" WRITE (6, *) "ELEMENT NUMBER = A(", i, ")" GO TO 20 END IF - 10 CONTINUE + 10 CONTINUE WRITE (6, *) "OK" From 766f097b09f8c8603ad603f507e0eaa026a106ee Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 14 Jul 2026 17:18:14 +0100 Subject: [PATCH 032/260] Fix loop label extraction on fixed-format Fortran --- .../fujitsu/0001/0001_0000.expected.f90 | 8 +- .../parser/fujitsu/0001/0001_0000.json | 673 +++++++++--------- .../parser/processors/StmtProcessors.java | 18 +- 3 files changed, 356 insertions(+), 343 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f90 index 64e73db7..d6640105 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f90 @@ -1,17 +1,17 @@ - INTEGER a(1000) + INTEGER :: a(1000) a = 0 a = a + 1 DO 10 i = 1, 1000 IF (a(i) /= 1) THEN - WRITE (6, *) "NG" - WRITE (6, *) "ELEMENT NUMBER = A(", i, ")" + WRITE(6, *) "NG" + WRITE(6, *) "ELEMENT NUMBER = A(", i, ")" GO TO 20 END IF 10 CONTINUE - WRITE (6, *) "OK" + WRITE(6, *) "OK" 20 CONTINUE STOP diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.json b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.json index bcf1e0cd..ad4d330e 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.json +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.json @@ -1,847 +1,848 @@ { "nodes": [ { - "id": "0x55d98ce65f00-Program", + "id": "0x55dbf2fc7f00-Program", "ProgramUnit": [ - "0x55d98cea2390-ProgramUnit" + "0x55dbf3004140-ProgramUnit" ] }, { - "id": "0x55d98cea2390-ProgramUnit", + "id": "0x55dbf3004140-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x55d98cea2db0-MainProgram" + "MainProgram": "0x55dbf3004c70-MainProgram" }, { - "id": "0x55d98cea2db0-MainProgram", - "SpecificationPart": "0x55d98cea2e50-SpecificationPart", - "ExecutionPart": "0x55d98cea2e38-ExecutionPart", - "Statement": "0x55d98cea2db0-Statement" + "id": "0x55dbf3004c70-MainProgram", + "SpecificationPart": "0x55dbf3004d10-SpecificationPart", + "ExecutionPart": "0x55dbf3004cf8-ExecutionPart", + "Statement": "0x55dbf3004c70-Statement" }, { - "id": "0x55d98cea2e50-SpecificationPart", - "ImplicitPart": "0x55d98cea2e68-ImplicitPart", + "id": "0x55dbf3004d10-SpecificationPart", + "ImplicitPart": "0x55dbf3004d28-ImplicitPart", "DeclarationConstruct": [ - "0x55d98ce73110-DeclarationConstruct" + "0x55dbf2fd5110-DeclarationConstruct" ] }, { - "id": "0x55d98cea2e68-ImplicitPart" + "id": "0x55dbf3004d28-ImplicitPart" }, { - "id": "0x55d98ce73110-DeclarationConstruct", + "id": "0x55dbf2fd5110-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55d98ce73110-SpecificationConstruct" + "SpecificationConstruct": "0x55dbf2fd5110-SpecificationConstruct" }, { - "id": "0x55d98ce73110-SpecificationConstruct", + "id": "0x55dbf2fd5110-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55d98ce73110-Statement" + "Statement": "0x55dbf2fd5110-Statement" }, { - "id": "0x55d98ce73110-Statement", - "statement": "0x55d98cea2c20-TypeDeclarationStmt", + "id": "0x55dbf2fd5110-Statement", + "statement": "0x55dbf3004ae0-TypeDeclarationStmt", "source": "integera(1000)" }, { - "id": "0x55d98cea2c20-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55d98cea2c50-DeclarationTypeSpec", + "id": "0x55dbf3004ae0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55dbf3004b10-DeclarationTypeSpec", "EntityDecl": [ - "0x55d98ce91f70-EntityDecl" + "0x55dbf2ff3e20-EntityDecl" ] }, { - "id": "0x55d98cea2c50-DeclarationTypeSpec", + "id": "0x55dbf3004b10-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55d98cea2c50-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55dbf3004b10-IntrinsicTypeSpec" }, { - "id": "0x55d98cea2c50-IntrinsicTypeSpec", + "id": "0x55dbf3004b10-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55d98cea2c50-IntegerTypeSpec" + "IntegerTypeSpec": "0x55dbf3004b10-IntegerTypeSpec" }, { - "id": "0x55d98cea2c50-IntegerTypeSpec" + "id": "0x55dbf3004b10-IntegerTypeSpec" }, { - "id": "0x55d98ce91f70-EntityDecl", - "Name": "0x55d98ce92028-Name", - "ArraySpec": "0x55d98ce91ff0-ArraySpec" + "id": "0x55dbf2ff3e20-EntityDecl", + "Name": "0x55dbf2ff3ed8-Name", + "ArraySpec": "0x55dbf2ff3ea0-ArraySpec" }, { - "id": "0x55d98ce92028-Name", + "id": "0x55dbf2ff3ed8-Name", "source": "a" }, { - "id": "0x55d98ce91ff0-ArraySpec", + "id": "0x55dbf2ff3ea0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55d98cea2330-ExplicitShapeSpec" + "0x55dbf30040e0-ExplicitShapeSpec" ] }, { - "id": "0x55d98cea2330-ExplicitShapeSpec", - "upper_bound": "0x55d98cea2330-SpecificationExpr" + "id": "0x55dbf30040e0-ExplicitShapeSpec", + "upper_bound": "0x55dbf30040e0-SpecificationExpr" }, { - "id": "0x55d98cea2330-SpecificationExpr", - "Expr": "0x55d98ce05790-Expr" + "id": "0x55dbf30040e0-SpecificationExpr", + "Expr": "0x55dbf2f67790-Expr" }, { - "id": "0x55d98ce05790-Expr", + "id": "0x55dbf2f67790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d98ce057b0-LiteralConstant" + "LiteralConstant": "0x55dbf2f677b0-LiteralConstant" }, { - "id": "0x55d98ce057b0-LiteralConstant", + "id": "0x55dbf2f677b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55d98ce057b0-IntLiteralConstant" + "IntLiteralConstant": "0x55dbf2f677b0-IntLiteralConstant" }, { - "id": "0x55d98ce057b0-IntLiteralConstant", + "id": "0x55dbf2f677b0-IntLiteralConstant", "CharBlock": "1000" }, { - "id": "0x55d98cea2e38-ExecutionPart", + "id": "0x55dbf3004cf8-ExecutionPart", "ExecutionPartConstruct": [ - "0x55d98ce91d30-ExecutionPartConstruct", - "0x55d98ce90a40-ExecutionPartConstruct", - "0x55d98ce90e50-ExecutionPartConstruct", - "0x55d98ce95c80-ExecutionPartConstruct", - "0x55d98ce91cd0-ExecutionPartConstruct", - "0x55d98ce92220-ExecutionPartConstruct" + "0x55dbf2ff3be0-ExecutionPartConstruct", + "0x55dbf2ff28f0-ExecutionPartConstruct", + "0x55dbf2ff2d00-ExecutionPartConstruct", + "0x55dbf2ff7b30-ExecutionPartConstruct", + "0x55dbf2ff3b80-ExecutionPartConstruct", + "0x55dbf2ff40d0-ExecutionPartConstruct" ] }, { - "id": "0x55d98cea2e38-ExecutionPartConstruct" + "id": "0x55dbf3004cf8-ExecutionPartConstruct" }, { - "id": "0x55d98ce91d30-ExecutionPartConstruct", + "id": "0x55dbf2ff3be0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55d98ce91d30-ExecutableConstruct" + "ExecutableConstruct": "0x55dbf2ff3be0-ExecutableConstruct" }, { - "id": "0x55d98ce91d30-ExecutableConstruct", + "id": "0x55dbf2ff3be0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55d98ce91d30-Statement" + "Statement": "0x55dbf2ff3be0-Statement" }, { - "id": "0x55d98ce91d30-Statement", - "statement": "0x55d98ce91d40-ActionStmt", + "id": "0x55dbf2ff3be0-Statement", + "statement": "0x55dbf2ff3bf0-ActionStmt", "source": "a=0" }, { - "id": "0x55d98ce91d40-ActionStmt", + "id": "0x55dbf2ff3bf0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55d98ce91b40-AssignmentStmt" + "AssignmentStmt": "0x55dbf2ff39f0-AssignmentStmt" }, { - "id": "0x55d98ce91b40-AssignmentStmt", - "Variable": "0x55d98ce91c20-Variable", - "Expr": "0x55d98ce91b50-Expr" + "id": "0x55dbf2ff39f0-AssignmentStmt", + "Variable": "0x55dbf2ff3ad0-Variable", + "Expr": "0x55dbf2ff3a00-Expr" }, { - "id": "0x55d98ce91c20-Variable", + "id": "0x55dbf2ff3ad0-Variable", "variantKey": "Designator", - "Designator": "0x55d98ce73160-Designator" + "Designator": "0x55dbf2fd5160-Designator" }, { - "id": "0x55d98ce73160-Designator", + "id": "0x55dbf2fd5160-Designator", "variantKey": "DataRef", - "DataRef": "0x55d98ce73170-DataRef" + "DataRef": "0x55dbf2fd5170-DataRef" }, { - "id": "0x55d98ce73170-DataRef", + "id": "0x55dbf2fd5170-DataRef", "variantKey": "Name", - "Name": "0x55d98ce73170-Name" + "Name": "0x55dbf2fd5170-Name" }, { - "id": "0x55d98ce73170-Name", + "id": "0x55dbf2fd5170-Name", "source": "a" }, { - "id": "0x55d98ce91b50-Expr", + "id": "0x55dbf2ff3a00-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d98ce91b70-LiteralConstant" + "LiteralConstant": "0x55dbf2ff3a20-LiteralConstant" }, { - "id": "0x55d98ce91b70-LiteralConstant", + "id": "0x55dbf2ff3a20-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55d98ce91b70-IntLiteralConstant" + "IntLiteralConstant": "0x55dbf2ff3a20-IntLiteralConstant" }, { - "id": "0x55d98ce91b70-IntLiteralConstant", + "id": "0x55dbf2ff3a20-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55d98ce90a40-ExecutionPartConstruct", + "id": "0x55dbf2ff28f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55d98ce90a40-ExecutableConstruct" + "ExecutableConstruct": "0x55dbf2ff28f0-ExecutableConstruct" }, { - "id": "0x55d98ce90a40-ExecutableConstruct", + "id": "0x55dbf2ff28f0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55d98ce90a40-Statement" + "Statement": "0x55dbf2ff28f0-Statement" }, { - "id": "0x55d98ce90a40-Statement", - "statement": "0x55d98ce90a50-ActionStmt", + "id": "0x55dbf2ff28f0-Statement", + "statement": "0x55dbf2ff2900-ActionStmt", "source": "a=a+1" }, { - "id": "0x55d98ce90a50-ActionStmt", + "id": "0x55dbf2ff2900-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55d98ce9c710-AssignmentStmt" + "AssignmentStmt": "0x55dbf2ffe5d0-AssignmentStmt" }, { - "id": "0x55d98ce9c710-AssignmentStmt", - "Variable": "0x55d98ce9c7f0-Variable", - "Expr": "0x55d98ce9c720-Expr" + "id": "0x55dbf2ffe5d0-AssignmentStmt", + "Variable": "0x55dbf2ffe6b0-Variable", + "Expr": "0x55dbf2ffe5e0-Expr" }, { - "id": "0x55d98ce9c7f0-Variable", + "id": "0x55dbf2ffe6b0-Variable", "variantKey": "Designator", - "Designator": "0x55d98ce644d0-Designator" + "Designator": "0x55dbf2fc64d0-Designator" }, { - "id": "0x55d98ce644d0-Designator", + "id": "0x55dbf2fc64d0-Designator", "variantKey": "DataRef", - "DataRef": "0x55d98ce644e0-DataRef" + "DataRef": "0x55dbf2fc64e0-DataRef" }, { - "id": "0x55d98ce644e0-DataRef", + "id": "0x55dbf2fc64e0-DataRef", "variantKey": "Name", - "Name": "0x55d98ce644e0-Name" + "Name": "0x55dbf2fc64e0-Name" }, { - "id": "0x55d98ce644e0-Name", + "id": "0x55dbf2fc64e0-Name", "source": "a" }, { - "id": "0x55d98ce9c720-Expr", + "id": "0x55dbf2ffe5e0-Expr", "variantKey": "Add", - "Add": "0x55d98ce9c740-Add" + "Add": "0x55dbf2ffe600-Add" }, { - "id": "0x55d98ce9c740-Add", - "left": "0x55d98ce9c5c0-Expr", - "right": "0x55d98ce9c4e0-Expr", + "id": "0x55dbf2ffe600-Add", + "left": "0x55dbf2ffe480-Expr", + "right": "0x55dbf2ffe3a0-Expr", "op": "ADD" }, { - "id": "0x55d98ce9c5c0-Expr", + "id": "0x55dbf2ffe480-Expr", "variantKey": "Designator", - "Designator": "0x55d98ce914b0-Designator" + "Designator": "0x55dbf2ff3360-Designator" }, { - "id": "0x55d98ce914b0-Designator", + "id": "0x55dbf2ff3360-Designator", "variantKey": "DataRef", - "DataRef": "0x55d98ce914c0-DataRef" + "DataRef": "0x55dbf2ff3370-DataRef" }, { - "id": "0x55d98ce914c0-DataRef", + "id": "0x55dbf2ff3370-DataRef", "variantKey": "Name", - "Name": "0x55d98ce914c0-Name" + "Name": "0x55dbf2ff3370-Name" }, { - "id": "0x55d98ce914c0-Name", + "id": "0x55dbf2ff3370-Name", "source": "a" }, { - "id": "0x55d98ce9c4e0-Expr", + "id": "0x55dbf2ffe3a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d98ce9c500-LiteralConstant" + "LiteralConstant": "0x55dbf2ffe3c0-LiteralConstant" }, { - "id": "0x55d98ce9c500-LiteralConstant", + "id": "0x55dbf2ffe3c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55d98ce9c500-IntLiteralConstant" + "IntLiteralConstant": "0x55dbf2ffe3c0-IntLiteralConstant" }, { - "id": "0x55d98ce9c500-IntLiteralConstant", + "id": "0x55dbf2ffe3c0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55d98ce90e50-ExecutionPartConstruct", + "id": "0x55dbf2ff2d00-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55d98ce90e50-ExecutableConstruct" + "ExecutableConstruct": "0x55dbf2ff2d00-ExecutableConstruct" }, { - "id": "0x55d98ce90e50-ExecutableConstruct", + "id": "0x55dbf2ff2d00-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55d98ce9f1f0-DoConstruct" + "DoConstruct": "0x55dbf3001290-DoConstruct" }, { - "id": "0x55d98ce9f1f0-DoConstruct", - "Statement": "0x55d98ce9f248-Statement", + "id": "0x55dbf3001290-DoConstruct", + "Statement": "0x55dbf30012e8-Statement", "ExecutionPartConstruct": [ - "0x55d98ce913f0-ExecutionPartConstruct", - "0x55d98ce91670-ExecutionPartConstruct" + "0x55dbf2ff32a0-ExecutionPartConstruct", + "0x55dbf2ff3520-ExecutionPartConstruct" ], - "Statement": "0x55d98ce9f1f0-Statement" + "Statement": "0x55dbf3001290-Statement" }, { - "id": "0x55d98ce9f248-Statement", - "statement": "0x55d98ce9f258-NonLabelDoStmt", + "id": "0x55dbf30012e8-Statement", + "statement": "0x55dbf30012f8-NonLabelDoStmt", "source": "do10i=1,1000" }, { - "id": "0x55d98ce9f258-NonLabelDoStmt", - "LoopControl": "0x55d98ce9f258-LoopControl" + "id": "0x55dbf30012f8-NonLabelDoStmt", + "LoopControl": "0x55dbf30012f8-LoopControl" }, { - "id": "0x55d98ce9f258-LoopControl", + "id": "0x55dbf30012f8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55d98ce9f258-LoopBounds" + "LoopBounds": "0x55dbf30012f8-LoopBounds" }, { - "id": "0x55d98ce9f258-LoopBounds", - "var": "0x55d98ce9f258-Name", - "lower": "0x55d98ce90a90-Expr", - "upper": "0x55d98ce90b70-Expr" + "id": "0x55dbf30012f8-LoopBounds", + "var": "0x55dbf30012f8-Name", + "lower": "0x55dbf2ff2940-Expr", + "upper": "0x55dbf2ff2a20-Expr" }, { - "id": "0x55d98ce9f258-Name", + "id": "0x55dbf30012f8-Name", "source": "i" }, { - "id": "0x55d98ce90a90-Expr", + "id": "0x55dbf2ff2940-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d98ce90ab0-LiteralConstant" + "LiteralConstant": "0x55dbf2ff2960-LiteralConstant" }, { - "id": "0x55d98ce90ab0-LiteralConstant", + "id": "0x55dbf2ff2960-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55d98ce90ab0-IntLiteralConstant" + "IntLiteralConstant": "0x55dbf2ff2960-IntLiteralConstant" }, { - "id": "0x55d98ce90ab0-IntLiteralConstant", + "id": "0x55dbf2ff2960-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55d98ce90b70-Expr", + "id": "0x55dbf2ff2a20-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d98ce90b90-LiteralConstant" + "LiteralConstant": "0x55dbf2ff2a40-LiteralConstant" }, { - "id": "0x55d98ce90b90-LiteralConstant", + "id": "0x55dbf2ff2a40-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55d98ce90b90-IntLiteralConstant" + "IntLiteralConstant": "0x55dbf2ff2a40-IntLiteralConstant" }, { - "id": "0x55d98ce90b90-IntLiteralConstant", + "id": "0x55dbf2ff2a40-IntLiteralConstant", "CharBlock": "1000" }, { - "id": "0x55d98ce9f230-ExecutionPartConstruct" + "id": "0x55dbf30012d0-ExecutionPartConstruct" }, { - "id": "0x55d98ce913f0-ExecutionPartConstruct", + "id": "0x55dbf2ff32a0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55d98ce913f0-ExecutableConstruct" + "ExecutableConstruct": "0x55dbf2ff32a0-ExecutableConstruct" }, { - "id": "0x55d98ce913f0-ExecutableConstruct", + "id": "0x55dbf2ff32a0-ExecutableConstruct", "variantKey": "IfConstruct", - "IfConstruct": "0x55d98ce3b780-IfConstruct" + "IfConstruct": "0x55dbf2f9d780-IfConstruct" }, { - "id": "0x55d98ce3b780-IfConstruct", - "Statement": "0x55d98ce3b850-Statement", + "id": "0x55dbf2f9d780-IfConstruct", + "Statement": "0x55dbf2f9d850-Statement", "ExecutionPartConstruct": [ - "0x55d98ce919a0-ExecutionPartConstruct", - "0x55d98ce95900-ExecutionPartConstruct", - "0x55d98ce72da0-ExecutionPartConstruct" + "0x55dbf2ff3850-ExecutionPartConstruct", + "0x55dbf2ff77b0-ExecutionPartConstruct", + "0x55dbf2fd4da0-ExecutionPartConstruct" ], - "Statement": "0x55d98ce3b780-Statement" + "Statement": "0x55dbf2f9d780-Statement" }, { - "id": "0x55d98ce3b850-Statement", - "statement": "0x55d98ce3b860-IfThenStmt", + "id": "0x55dbf2f9d850-Statement", + "statement": "0x55dbf2f9d860-IfThenStmt", "source": "if(a(i).ne.1)then" }, { - "id": "0x55d98ce3b860-IfThenStmt", - "Expr": "0x55d98ce926f0-Expr" + "id": "0x55dbf2f9d860-IfThenStmt", + "Expr": "0x55dbf2ff45a0-Expr" }, { - "id": "0x55d98ce926f0-Expr", + "id": "0x55dbf2ff45a0-Expr", "variantKey": "NE", - "NE": "0x55d98ce92710-NE" + "NE": "0x55dbf2ff45c0-NE" }, { - "id": "0x55d98ce92710-NE", - "left": "0x55d98ce90cd0-Expr", - "right": "0x55d98ce92610-Expr", + "id": "0x55dbf2ff45c0-NE", + "left": "0x55dbf2ff2b80-Expr", + "right": "0x55dbf2ff44c0-Expr", "op": "NE" }, { - "id": "0x55d98ce90cd0-Expr", + "id": "0x55dbf2ff2b80-Expr", "variantKey": "Designator", - "Designator": "0x55d98ceca2f0-Designator" + "Designator": "0x55dbf302c330-Designator" }, { - "id": "0x55d98ceca2f0-Designator", + "id": "0x55dbf302c330-Designator", "variantKey": "DataRef", - "DataRef": "0x55d98ceca300-DataRef" + "DataRef": "0x55dbf302c340-DataRef" }, { - "id": "0x55d98ceca300-DataRef", + "id": "0x55dbf302c340-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55d98cebe350-ArrayElement" + "ArrayElement": "0x55dbf3020390-ArrayElement" }, { - "id": "0x55d98cebe350-ArrayElement", - "base": "0x55d98cebe350-DataRef", + "id": "0x55dbf3020390-ArrayElement", + "base": "0x55dbf3020390-DataRef", "subscripts": [ - "0x55d98cea92b0-SectionSubscript" + "0x55dbf2ffd1f0-SectionSubscript" ] }, { - "id": "0x55d98cebe350-DataRef", + "id": "0x55dbf3020390-DataRef", "variantKey": "Name", - "Name": "0x55d98cebe350-Name" + "Name": "0x55dbf3020390-Name" }, { - "id": "0x55d98cebe350-Name", + "id": "0x55dbf3020390-Name", "source": "a" }, { - "id": "0x55d98cea92b0-SectionSubscript", + "id": "0x55dbf2ffd1f0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55d98cec6ea0-Expr" + "Expr": "0x55dbf3028ee0-Expr" }, { - "id": "0x55d98cec6ea0-Expr", + "id": "0x55dbf3028ee0-Expr", "variantKey": "Designator", - "Designator": "0x55d98ce927d0-Designator" + "Designator": "0x55dbf2ff4680-Designator" }, { - "id": "0x55d98ce927d0-Designator", + "id": "0x55dbf2ff4680-Designator", "variantKey": "DataRef", - "DataRef": "0x55d98ce927e0-DataRef" + "DataRef": "0x55dbf2ff4690-DataRef" }, { - "id": "0x55d98ce927e0-DataRef", + "id": "0x55dbf2ff4690-DataRef", "variantKey": "Name", - "Name": "0x55d98ce927e0-Name" + "Name": "0x55dbf2ff4690-Name" }, { - "id": "0x55d98ce927e0-Name", + "id": "0x55dbf2ff4690-Name", "source": "i" }, { - "id": "0x55d98ce92610-Expr", + "id": "0x55dbf2ff44c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d98ce92630-LiteralConstant" + "LiteralConstant": "0x55dbf2ff44e0-LiteralConstant" }, { - "id": "0x55d98ce92630-LiteralConstant", + "id": "0x55dbf2ff44e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55d98ce92630-IntLiteralConstant" + "IntLiteralConstant": "0x55dbf2ff44e0-IntLiteralConstant" }, { - "id": "0x55d98ce92630-IntLiteralConstant", + "id": "0x55dbf2ff44e0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55d98ce3b838-ExecutionPartConstruct" + "id": "0x55dbf2f9d838-ExecutionPartConstruct" }, { - "id": "0x55d98ce919a0-ExecutionPartConstruct", + "id": "0x55dbf2ff3850-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55d98ce919a0-ExecutableConstruct" + "ExecutableConstruct": "0x55dbf2ff3850-ExecutableConstruct" }, { - "id": "0x55d98ce919a0-ExecutableConstruct", + "id": "0x55dbf2ff3850-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55d98ce919a0-Statement" + "Statement": "0x55dbf2ff3850-Statement" }, { - "id": "0x55d98ce919a0-Statement", - "statement": "0x55d98ce919b0-ActionStmt", + "id": "0x55dbf2ff3850-Statement", + "statement": "0x55dbf2ff3860-ActionStmt", "source": "write(6,*)'NG'" }, { - "id": "0x55d98ce919b0-ActionStmt", + "id": "0x55dbf2ff3860-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x55d98ce951e0-WriteStmt" + "WriteStmt": "0x55dbf2ff7090-WriteStmt" }, { - "id": "0x55d98ce951e0-WriteStmt", - "iounit": "0x55d98ce951e0-IoUnit", - "format": "0x55d98ce95210-Format", + "id": "0x55dbf2ff7090-WriteStmt", + "iounit": "0x55dbf2ff7090-IoUnit", + "format": "0x55dbf2ff70c0-Format", "controls": [], "items": [ - "0x55d98ce95100-OutputItem" + "0x55dbf2ff6fb0-OutputItem" ] }, { - "id": "0x55d98ce951e0-IoUnit", + "id": "0x55dbf2ff7090-IoUnit", "variantKey": "Expr", - "Expr": "0x55d98ce95010-Expr" + "Expr": "0x55dbf2ff6ec0-Expr" }, { - "id": "0x55d98ce95010-Expr", + "id": "0x55dbf2ff6ec0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d98ce95030-LiteralConstant" + "LiteralConstant": "0x55dbf2ff6ee0-LiteralConstant" }, { - "id": "0x55d98ce95030-LiteralConstant", + "id": "0x55dbf2ff6ee0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55d98ce95030-IntLiteralConstant" + "IntLiteralConstant": "0x55dbf2ff6ee0-IntLiteralConstant" }, { - "id": "0x55d98ce95030-IntLiteralConstant", + "id": "0x55dbf2ff6ee0-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x55d98ce95210-Format", + "id": "0x55dbf2ff70c0-Format", "variantKey": "Star", - "Star": "0x55d98ce95210-Star" + "Star": "0x55dbf2ff70c0-Star" }, { - "id": "0x55d98ce95210-Star" + "id": "0x55dbf2ff70c0-Star" }, { - "id": "0x55d98ce95100-OutputItem", + "id": "0x55dbf2ff6fb0-OutputItem", "variantKey": "Expr", - "Expr": "0x55d98ce95100-Expr" + "Expr": "0x55dbf2ff6fb0-Expr" }, { - "id": "0x55d98ce95100-Expr", + "id": "0x55dbf2ff6fb0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d98ce95120-LiteralConstant" + "LiteralConstant": "0x55dbf2ff6fd0-LiteralConstant" }, { - "id": "0x55d98ce95120-LiteralConstant", + "id": "0x55dbf2ff6fd0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55d98ce95120-CharLiteralConstant" + "CharLiteralConstant": "0x55dbf2ff6fd0-CharLiteralConstant" }, { - "id": "0x55d98ce95120-CharLiteralConstant", + "id": "0x55dbf2ff6fd0-CharLiteralConstant", "string": "NG" }, { - "id": "0x55d98ce95900-ExecutionPartConstruct", + "id": "0x55dbf2ff77b0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55d98ce95900-ExecutableConstruct" + "ExecutableConstruct": "0x55dbf2ff77b0-ExecutableConstruct" }, { - "id": "0x55d98ce95900-ExecutableConstruct", + "id": "0x55dbf2ff77b0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55d98ce95900-Statement" + "Statement": "0x55dbf2ff77b0-Statement" }, { - "id": "0x55d98ce95900-Statement", - "statement": "0x55d98ce95910-ActionStmt", + "id": "0x55dbf2ff77b0-Statement", + "statement": "0x55dbf2ff77c0-ActionStmt", "source": "write(6,*)'ELEMENT NUMBER = A(',i,')'" }, { - "id": "0x55d98ce95910-ActionStmt", + "id": "0x55dbf2ff77c0-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x55d98ce95740-WriteStmt" + "WriteStmt": "0x55dbf2ff75f0-WriteStmt" }, { - "id": "0x55d98ce95740-WriteStmt", - "iounit": "0x55d98ce95740-IoUnit", - "format": "0x55d98ce95770-Format", + "id": "0x55dbf2ff75f0-WriteStmt", + "iounit": "0x55dbf2ff75f0-IoUnit", + "format": "0x55dbf2ff7620-Format", "controls": [], "items": [ - "0x55d98ce95660-OutputItem", - "0x55d98ce95420-OutputItem", - "0x55d98ce95570-OutputItem" + "0x55dbf2ff7510-OutputItem", + "0x55dbf2ff72d0-OutputItem", + "0x55dbf2ff7420-OutputItem" ] }, { - "id": "0x55d98ce95740-IoUnit", + "id": "0x55dbf2ff75f0-IoUnit", "variantKey": "Expr", - "Expr": "0x55d98ce95330-Expr" + "Expr": "0x55dbf2ff71e0-Expr" }, { - "id": "0x55d98ce95330-Expr", + "id": "0x55dbf2ff71e0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d98ce95350-LiteralConstant" + "LiteralConstant": "0x55dbf2ff7200-LiteralConstant" }, { - "id": "0x55d98ce95350-LiteralConstant", + "id": "0x55dbf2ff7200-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55d98ce95350-IntLiteralConstant" + "IntLiteralConstant": "0x55dbf2ff7200-IntLiteralConstant" }, { - "id": "0x55d98ce95350-IntLiteralConstant", + "id": "0x55dbf2ff7200-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x55d98ce95770-Format", + "id": "0x55dbf2ff7620-Format", "variantKey": "Star", - "Star": "0x55d98ce95770-Star" + "Star": "0x55dbf2ff7620-Star" }, { - "id": "0x55d98ce95770-Star" + "id": "0x55dbf2ff7620-Star" }, { - "id": "0x55d98ce95660-OutputItem", + "id": "0x55dbf2ff7510-OutputItem", "variantKey": "Expr", - "Expr": "0x55d98ce95660-Expr" + "Expr": "0x55dbf2ff7510-Expr" }, { - "id": "0x55d98ce95660-Expr", + "id": "0x55dbf2ff7510-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d98ce95680-LiteralConstant" + "LiteralConstant": "0x55dbf2ff7530-LiteralConstant" }, { - "id": "0x55d98ce95680-LiteralConstant", + "id": "0x55dbf2ff7530-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55d98ce95680-CharLiteralConstant" + "CharLiteralConstant": "0x55dbf2ff7530-CharLiteralConstant" }, { - "id": "0x55d98ce95680-CharLiteralConstant", + "id": "0x55dbf2ff7530-CharLiteralConstant", "string": "ELEMENT NUMBER = A(" }, { - "id": "0x55d98ce95420-OutputItem", + "id": "0x55dbf2ff72d0-OutputItem", "variantKey": "Expr", - "Expr": "0x55d98ce95420-Expr" + "Expr": "0x55dbf2ff72d0-Expr" }, { - "id": "0x55d98ce95420-Expr", + "id": "0x55dbf2ff72d0-Expr", "variantKey": "Designator", - "Designator": "0x55d98ce933b0-Designator" + "Designator": "0x55dbf2ff5260-Designator" }, { - "id": "0x55d98ce933b0-Designator", + "id": "0x55dbf2ff5260-Designator", "variantKey": "DataRef", - "DataRef": "0x55d98ce933c0-DataRef" + "DataRef": "0x55dbf2ff5270-DataRef" }, { - "id": "0x55d98ce933c0-DataRef", + "id": "0x55dbf2ff5270-DataRef", "variantKey": "Name", - "Name": "0x55d98ce933c0-Name" + "Name": "0x55dbf2ff5270-Name" }, { - "id": "0x55d98ce933c0-Name", + "id": "0x55dbf2ff5270-Name", "source": "i" }, { - "id": "0x55d98ce95570-OutputItem", + "id": "0x55dbf2ff7420-OutputItem", "variantKey": "Expr", - "Expr": "0x55d98ce95570-Expr" + "Expr": "0x55dbf2ff7420-Expr" }, { - "id": "0x55d98ce95570-Expr", + "id": "0x55dbf2ff7420-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d98ce95590-LiteralConstant" + "LiteralConstant": "0x55dbf2ff7440-LiteralConstant" }, { - "id": "0x55d98ce95590-LiteralConstant", + "id": "0x55dbf2ff7440-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55d98ce95590-CharLiteralConstant" + "CharLiteralConstant": "0x55dbf2ff7440-CharLiteralConstant" }, { - "id": "0x55d98ce95590-CharLiteralConstant", + "id": "0x55dbf2ff7440-CharLiteralConstant", "string": ")" }, { - "id": "0x55d98ce72da0-ExecutionPartConstruct", + "id": "0x55dbf2fd4da0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55d98ce72da0-ExecutableConstruct" + "ExecutableConstruct": "0x55dbf2fd4da0-ExecutableConstruct" }, { - "id": "0x55d98ce72da0-ExecutableConstruct", + "id": "0x55dbf2fd4da0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55d98ce72da0-Statement" + "Statement": "0x55dbf2fd4da0-Statement" }, { - "id": "0x55d98ce72da0-Statement", - "statement": "0x55d98ce72db0-ActionStmt", + "id": "0x55dbf2fd4da0-Statement", + "statement": "0x55dbf2fd4db0-ActionStmt", "source": "goto20" }, { - "id": "0x55d98ce72db0-ActionStmt", + "id": "0x55dbf2fd4db0-ActionStmt", "variantKey": "GotoStmt", - "GotoStmt": "0x55d98cea3b30-GotoStmt" + "GotoStmt": "0x55dbf3004340-GotoStmt" }, { - "id": "0x55d98cea3b30-GotoStmt", + "id": "0x55dbf3004340-GotoStmt", "uint64_t": "20" }, { - "id": "0x55d98ce3b780-Statement", - "statement": "0x55d98ce3b790-EndIfStmt", + "id": "0x55dbf2f9d780-Statement", + "statement": "0x55dbf2f9d790-EndIfStmt", "source": "endif" }, { - "id": "0x55d98ce3b790-EndIfStmt" + "id": "0x55dbf2f9d790-EndIfStmt" }, { - "id": "0x55d98ce91670-ExecutionPartConstruct", + "id": "0x55dbf2ff3520-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55d98ce91670-ExecutableConstruct" + "ExecutableConstruct": "0x55dbf2ff3520-ExecutableConstruct" }, { - "id": "0x55d98ce91670-ExecutableConstruct", + "id": "0x55dbf2ff3520-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55d98ce91670-Statement" + "Statement": "0x55dbf2ff3520-Statement" }, { - "id": "0x55d98ce91670-Statement", - "statement": "0x55d98ce91680-ActionStmt", + "id": "0x55dbf2ff3520-Statement", + "statement": "0x55dbf2ff3530-ActionStmt", "label": "10", "source": "10continue" }, { - "id": "0x55d98ce91680-ActionStmt", + "id": "0x55dbf2ff3530-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x55d98ce91680-ContinueStmt" + "ContinueStmt": "0x55dbf2ff3530-ContinueStmt" }, { - "id": "0x55d98ce91680-ContinueStmt" + "id": "0x55dbf2ff3530-ContinueStmt" }, { - "id": "0x55d98ce9f1f0-Statement", - "statement": "0x55d98ce9f200-EndDoStmt", + "id": "0x55dbf3001290-Statement", + "statement": "0x55dbf30012a0-EndDoStmt", "source": "" }, { - "id": "0x55d98ce9f200-EndDoStmt" + "id": "0x55dbf30012a0-EndDoStmt" }, { - "id": "0x55d98ce95c80-ExecutionPartConstruct", + "id": "0x55dbf2ff7b30-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55d98ce95c80-ExecutableConstruct" + "ExecutableConstruct": "0x55dbf2ff7b30-ExecutableConstruct" }, { - "id": "0x55d98ce95c80-ExecutableConstruct", + "id": "0x55dbf2ff7b30-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55d98ce95c80-Statement" + "Statement": "0x55dbf2ff7b30-Statement" }, { - "id": "0x55d98ce95c80-Statement", - "statement": "0x55d98ce95c90-ActionStmt", + "id": "0x55dbf2ff7b30-Statement", + "statement": "0x55dbf2ff7b40-ActionStmt", "source": "write(6,*)'OK'" }, { - "id": "0x55d98ce95c90-ActionStmt", + "id": "0x55dbf2ff7b40-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x55d98ce95b20-WriteStmt" + "WriteStmt": "0x55dbf2ff79d0-WriteStmt" }, { - "id": "0x55d98ce95b20-WriteStmt", - "iounit": "0x55d98ce95b20-IoUnit", - "format": "0x55d98ce95b50-Format", + "id": "0x55dbf2ff79d0-WriteStmt", + "iounit": "0x55dbf2ff79d0-IoUnit", + "format": "0x55dbf2ff7a00-Format", "controls": [], "items": [ - "0x55d98ce95a40-OutputItem" + "0x55dbf2ff78f0-OutputItem" ] }, { - "id": "0x55d98ce95b20-IoUnit", + "id": "0x55dbf2ff79d0-IoUnit", "variantKey": "Expr", - "Expr": "0x55d98ce95950-Expr" + "Expr": "0x55dbf2ff7800-Expr" }, { - "id": "0x55d98ce95950-Expr", + "id": "0x55dbf2ff7800-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d98ce95970-LiteralConstant" + "LiteralConstant": "0x55dbf2ff7820-LiteralConstant" }, { - "id": "0x55d98ce95970-LiteralConstant", + "id": "0x55dbf2ff7820-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55d98ce95970-IntLiteralConstant" + "IntLiteralConstant": "0x55dbf2ff7820-IntLiteralConstant" }, { - "id": "0x55d98ce95970-IntLiteralConstant", + "id": "0x55dbf2ff7820-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x55d98ce95b50-Format", + "id": "0x55dbf2ff7a00-Format", "variantKey": "Star", - "Star": "0x55d98ce95b50-Star" + "Star": "0x55dbf2ff7a00-Star" }, { - "id": "0x55d98ce95b50-Star" + "id": "0x55dbf2ff7a00-Star" }, { - "id": "0x55d98ce95a40-OutputItem", + "id": "0x55dbf2ff78f0-OutputItem", "variantKey": "Expr", - "Expr": "0x55d98ce95a40-Expr" + "Expr": "0x55dbf2ff78f0-Expr" }, { - "id": "0x55d98ce95a40-Expr", + "id": "0x55dbf2ff78f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d98ce95a60-LiteralConstant" + "LiteralConstant": "0x55dbf2ff7910-LiteralConstant" }, { - "id": "0x55d98ce95a60-LiteralConstant", + "id": "0x55dbf2ff7910-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55d98ce95a60-CharLiteralConstant" + "CharLiteralConstant": "0x55dbf2ff7910-CharLiteralConstant" }, { - "id": "0x55d98ce95a60-CharLiteralConstant", + "id": "0x55dbf2ff7910-CharLiteralConstant", "string": "OK" }, { - "id": "0x55d98ce91cd0-ExecutionPartConstruct", + "id": "0x55dbf2ff3b80-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55d98ce91cd0-ExecutableConstruct" + "ExecutableConstruct": "0x55dbf2ff3b80-ExecutableConstruct" }, { - "id": "0x55d98ce91cd0-ExecutableConstruct", + "id": "0x55dbf2ff3b80-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55d98ce91cd0-Statement" + "Statement": "0x55dbf2ff3b80-Statement" }, { - "id": "0x55d98ce91cd0-Statement", - "statement": "0x55d98ce91ce0-ActionStmt", + "id": "0x55dbf2ff3b80-Statement", + "statement": "0x55dbf2ff3b90-ActionStmt", "label": "20", "source": "20continue" }, { - "id": "0x55d98ce91ce0-ActionStmt", + "id": "0x55dbf2ff3b90-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x55d98ce91ce0-ContinueStmt" + "ContinueStmt": "0x55dbf2ff3b90-ContinueStmt" }, { - "id": "0x55d98ce91ce0-ContinueStmt" + "id": "0x55dbf2ff3b90-ContinueStmt" }, { - "id": "0x55d98ce92220-ExecutionPartConstruct", + "id": "0x55dbf2ff40d0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55d98ce92220-ExecutableConstruct" + "ExecutableConstruct": "0x55dbf2ff40d0-ExecutableConstruct" }, { - "id": "0x55d98ce92220-ExecutableConstruct", + "id": "0x55dbf2ff40d0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55d98ce92220-Statement" + "Statement": "0x55dbf2ff40d0-Statement" }, { - "id": "0x55d98ce92220-Statement", - "statement": "0x55d98ce92230-ActionStmt", + "id": "0x55dbf2ff40d0-Statement", + "statement": "0x55dbf2ff40e0-ActionStmt", "source": "stop" }, { - "id": "0x55d98ce92230-ActionStmt", + "id": "0x55dbf2ff40e0-ActionStmt", "variantKey": "StopStmt", - "StopStmt": "0x55d98ce95cd0-StopStmt" + "StopStmt": "0x55dbf2ff7b80-StopStmt" }, { - "id": "0x55d98ce95cd0-StopStmt", - "kind": "0x55d98ce95db8-Kind = Stop" + "id": "0x55dbf2ff7b80-StopStmt", + "kind": "0x55dbf2ff7c68-Kind = Stop" }, { - "id": "0x55d98ce95db8-Kind = Stop", + "id": "0x55dbf2ff7c68-Kind = Stop", "disambiguation": "Fortran::parser::StopStmt::Kind", "value": "Stop" }, { - "id": "0x55d98cea2db0-Statement", - "statement": "0x55d98cea2dc0-EndProgramStmt", + "id": "0x55dbf3004c70-Statement", + "statement": "0x55dbf3004c80-EndProgramStmt", "source": "end" }, { - "id": "0x55d98cea2dc0-EndProgramStmt" + "id": "0x55dbf3004c80-EndProgramStmt" } ], + "comments": [], "enums": { "Fortran::common::CUDADataAttr": [ "Constant", diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 20dee5db..50c61dc3 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -365,10 +365,22 @@ public void doConstruct(DoConstruct doConstruct) { } private Optional extractLabel(String doStmtSource) { - var spaceIdx = doStmtSource.indexOf(' ', 3); // From index 3 to ignore first space - var labelText = doStmtSource.substring(3, spaceIdx); + // Ignore spaces, for compatibility with fixed-form (where the provided source lacks spacing) + doStmtSource = doStmtSource.replace(" ", ""); + + // Ignore 'do' keyword + doStmtSource = doStmtSource.substring(2); + var labelText = new StringBuilder(); + for (var i = 0; i < doStmtSource.length(); i++) { + var c = doStmtSource.charAt(i); + if (!Character.isDigit(c)) { + break; + } + + labelText.append(c); + } - return SpecsStrings.tryGetDecimalInteger(labelText); + return SpecsStrings.tryGetDecimalInteger(labelText.toString()); } public void doStmt(DoStmt doStmt) { From 01b86174501b748132b3dbe61905768cbf7b2326 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 15 Jul 2026 00:15:56 +0100 Subject: [PATCH 033/260] Add fixed form indication in FortranContext --- .../src/pt/up/fe/specs/fortran/ast/FortranContext.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranContext.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranContext.java index 35681f85..95082bc2 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranContext.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranContext.java @@ -63,6 +63,7 @@ public class FortranContext extends ADataClass { public final static DataKey> LAST_PARSED_FILE = KeyFactory .optional("lastParsedFile"); + public static final DataKey FIXED_FORM = KeyFactory.bool("fixedForm"); /** * A DataStore with options from {@link FortranAstOptions}. @@ -85,5 +86,7 @@ public String toString() { return "FortranContext " + hashCode(); } - + public boolean fixedForm() { + return get(FIXED_FORM); + } } From dbec91a32c5104eb7605abbe41734e426e9e4382 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sun, 19 Jul 2026 20:24:41 +0100 Subject: [PATCH 034/260] Fix file extensions in program --- .../up/fe/specs/fortran/ast/FortranContext.java | 6 +++--- .../fe/specs/fortran/ast/nodes/FortranNode.java | 3 +++ .../specs/fortran/parser/FortranJsonParser.java | 15 +++++++++++++-- .../fortran/parser/FortranNativeParser.java | 5 ++--- .../parser/processors/ProgramProcessors.java | 16 ++++++++++------ .../specs/fortran/parser/FortranParserTest.java | 3 ++- .../fe/specs/fortran/weaver/FortranWeaver.java | 2 -- 7 files changed, 33 insertions(+), 17 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranContext.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranContext.java index 95082bc2..1667060b 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranContext.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranContext.java @@ -63,7 +63,7 @@ public class FortranContext extends ADataClass { public final static DataKey> LAST_PARSED_FILE = KeyFactory .optional("lastParsedFile"); - public static final DataKey FIXED_FORM = KeyFactory.bool("fixedForm"); + public final static DataKey> LAST_PARSED_FILE_EXT = KeyFactory.optional("lastParsedFileExt"); /** * A DataStore with options from {@link FortranAstOptions}. @@ -86,7 +86,7 @@ public String toString() { return "FortranContext " + hashCode(); } - public boolean fixedForm() { - return get(FIXED_FORM); + public DataStore getFortranOptions() { + return get(FORTRAN_OPTIONS); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java index eea02505..f1ac6995 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java @@ -110,6 +110,9 @@ public FortranNode copy(boolean keepId) { return newNode; } + public FortranContext getContext() { + return get(CONTEXT); + } public String getCode() { PrintOnce.info("getCode() not implemented for nodes of type " + getClass()); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java index 78a28fb5..a66d60f1 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java @@ -41,10 +41,10 @@ public static FortranJsonResult parse(File file, FortranContext context) { public static FortranJsonResult parse(Reader input, FortranContext context) { var parser = new FortranJsonParser(context); - return parser.parsePrivate(input); + return parser.parsePrivate(input, context); } - private FortranJsonResult parsePrivate(Reader input) { + private FortranJsonResult parsePrivate(Reader input, FortranContext context) { JsonReader reader = new JsonReader(input); try { @@ -55,6 +55,9 @@ private FortranJsonResult parsePrivate(Reader input) { var objectsType = nextName(reader); switch (objectsType) { + case "fileExtension": + parseFileExtension(reader, context); + break; case "nodes": parseNodes(reader); break; @@ -78,6 +81,14 @@ private FortranJsonResult parsePrivate(Reader input) { return new FortranJsonResult(context, firstNode, ids, fortranNodes, FlangData.convert(attributes)); } + private void parseFileExtension(JsonReader reader, FortranContext context) { + try { + context.setOptional(FortranContext.LAST_PARSED_FILE_EXT, reader.nextString()); + } catch (IOException e) { + throw new RuntimeException("Problem while parsing Fortran json", e); + } + } + private void parseEnums(JsonReader reader) { try { reader.beginObject(); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranNativeParser.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranNativeParser.java index ee9f8adb..e3d6aa62 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranNativeParser.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranNativeParser.java @@ -53,7 +53,6 @@ public FortranJsonResult parse(File file) { context.set(FortranContext.LAST_PARSED_FILE, Optional.of(file)); var plugin = FLANG_DUMPER.get(); - System.out.println("PLUGIN : " + plugin.getAbsolutePath()); // Execute flang to obtain json var command = List.of(getFlangCommand(), "-fc1", "-fopenmp", "-load", plugin.getAbsolutePath(), "-plugin", "dump-ast", file.getAbsolutePath()); @@ -92,9 +91,9 @@ private FortranJsonResult parseStream(InputStream stream, File jsonOutput) { return FortranJsonParser.parse(new StringReader(json), context); } - public FortranJsonResult parse(InputStream input) { + public FortranJsonResult parse(InputStream input, String extension) { // Create temporary file for dumping the input - var tempFile = SpecsIo.getTempFile("", "f90"); + var tempFile = SpecsIo.getTempFile("", extension); var code = SpecsIo.read(input); SpecsIo.write(tempFile, code); var result = parse(tempFile); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java index eaa2f8f7..e80b912d 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java @@ -19,16 +19,20 @@ public ProgramProcessors(FortranJsonResult data) { public void fortranFile(FortranFile fortranFile) { fortranFile.setChildren(getChildren(fortranFile, FlangName.PROGRAM_UNIT)); - var lastParsedFile = fortranFile.get(FortranNode.CONTEXT).get(FortranContext.LAST_PARSED_FILE).orElse(null); - if (lastParsedFile != null) { - var fileName = lastParsedFile.getName(); + var context = fortranFile.getContext(); + var lastParsedFile = context.get(FortranContext.LAST_PARSED_FILE); + + lastParsedFile.ifPresent(parsedFile -> { + var fileName = parsedFile.getName(); + if (fileName.endsWith(".json")) { - fileName = SpecsIo.removeExtension(fileName) + ".f90"; + var fileExtension = context.get(FortranContext.LAST_PARSED_FILE_EXT).orElseGet(() -> "f90"); + fileName = SpecsIo.removeExtension(fileName) + "." + fileExtension; } fortranFile.set(FortranFile.FILE_NAME, fileName); - fortranFile.set(FortranFile.FOLDER_NAME, lastParsedFile.getParent()); - } + fortranFile.set(FortranFile.FOLDER_NAME, parsedFile.getParent()); + }); // The JSON parsing assumes this node is also a statement, which is the reason for the name of the key if (attributes(fortranFile).has("leadingComments")) { diff --git a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java index 2880cbdf..a094b99e 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -33,7 +33,8 @@ private static void testNative(String resource) { } private static void testNative(String resource, DataStore fortranOptions) { - test(resource, (r, c) -> new FortranNativeParser(c).parse(SpecsIo.resourceToStream(r)), fortranOptions); + test(resource, (r, c) -> new FortranNativeParser(c) + .parse(SpecsIo.resourceToStream(r), SpecsIo.getExtension(r)), fortranOptions); } private static void testJson(String resource) { diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.java index a2e2702a..9208ba79 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.java @@ -109,11 +109,9 @@ public boolean close() { for (var file : currentRoot.getFiles()) { // Get relative path var filename = file.get(FortranFile.FILE_NAME); - filename = SpecsIo.getExtension(filename).equals("json") ? SpecsIo.removeExtension(filename) + ".f90" : filename; var folder = new File(file.get(FortranFile.FOLDER_NAME)); var inputSourcePath = new File(file.get(FortranFile.INPUT_SOURCE_PATH)); - var baseOutputFile = inputSourcePath.isFile() ? filename : SpecsIo.getRelativePath(folder, inputSourcePath) + "/" + filename; var outputFile = new File(outputFolder, baseOutputFile); From 32774d1b2d44e4aa354d77434b8adaccf1d8fb5c Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sun, 19 Jul 2026 21:21:59 +0100 Subject: [PATCH 035/260] Use fixed form info on code generation --- .../fe/specs/fortran/ast/FortranContext.java | 2 ++ .../specs/fortran/ast/nodes/FortranNode.java | 10 +++++-- .../ast/nodes/program/FortranFile.java | 7 +++++ .../fe/specs/fortran/ast/nodes/stmt/Stmt.java | 16 ++++++++++- .../fujitsu/0001/0001_0000.expected.f90 | 28 +++++++++---------- 5 files changed, 46 insertions(+), 17 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranContext.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranContext.java index 1667060b..202b726d 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranContext.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranContext.java @@ -65,6 +65,8 @@ public class FortranContext extends ADataClass { public final static DataKey> LAST_PARSED_FILE_EXT = KeyFactory.optional("lastParsedFileExt"); + public final static DataKey FIXED_FORM = KeyFactory.bool("fixedObject").setDefault(() -> false); + /** * A DataStore with options from {@link FortranAstOptions}. * diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java index f1ac6995..0bc7379d 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java @@ -29,6 +29,7 @@ import java.util.Collection; import java.util.Optional; +import java.util.function.UnaryOperator; import java.util.stream.Collectors; /** @@ -156,9 +157,14 @@ public FortranNode insert(Position position, String code) { } public String indent(String code) { + var fixedForm = getContext().get(FortranContext.FIXED_FORM); + if (fixedForm) { // We will not indent code in fixed form, to prevent using too many columns + return code; + } + return StringLines.getLines(code).stream() - .map(line -> tab() + line) - .collect(Collectors.joining(ln())); + .map(line -> tab() + line) + .collect(Collectors.joining(ln())); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java index 7495ddb8..a5a5750f 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java @@ -3,7 +3,9 @@ import org.suikasoft.jOptions.Datakey.DataKey; import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranContext; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.util.SpecsIo; import java.util.Collection; import java.util.List; @@ -50,6 +52,11 @@ public List getFinalComments() { @Override public String getCode() { + // To output in the correct form, we set it in the context at the start + var fileName = get(FILE_NAME); + var fixedForm = List.of("f", "for").contains(SpecsIo.getExtension(fileName)); + getContext().set(FortranContext.FIXED_FORM, fixedForm); + var finalComments = getFinalComments(); var commentSuffix = finalComments.stream() .map(comment -> comment + ln()) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java index 060f0deb..d2ca1a01 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java @@ -3,6 +3,7 @@ import org.suikasoft.jOptions.Datakey.DataKey; import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranContext; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.decl.LabelDecl; import pt.up.fe.specs.util.SpecsCheck; @@ -43,7 +44,7 @@ public String getStmtCode() { @Override public final String getCode() { - var labelPrefix = getLabel().map(label -> label.getCode() + " ").orElse(""); + var labelPrefix = getLabelPrefix(); var leadingComments = getLeadingComments(); SpecsCheck.checkArgument(leadingComments != null, () -> "Leading comment array not initialized in " @@ -59,4 +60,17 @@ public final String getCode() { return commentPrefix + labelPrefix + getStmtCode() + commentSuffix; } + + private String getLabelPrefix() { + var labelOpt = getLabel(); + var fixedForm = getContext().get(FortranContext.FIXED_FORM); + + if (!fixedForm) { // Free form (AKA modern Fortran) + return labelOpt.map(label -> label.getCode() + " ").orElse(""); + } + + // Otherwise, fixed form (AKA legacy Fortran) -> first 5 columns are for labels, with one final separation + // column, and only then can statements begin + return (labelOpt.map(LabelDecl::getCode).orElse("") + " ").substring(0, 6); + } } diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f90 index d6640105..e39f0b6b 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f90 @@ -1,18 +1,18 @@ - INTEGER :: a(1000) + INTEGER :: a(1000) - a = 0 - a = a + 1 + a = 0 + a = a + 1 - DO 10 i = 1, 1000 - IF (a(i) /= 1) THEN - WRITE(6, *) "NG" - WRITE(6, *) "ELEMENT NUMBER = A(", i, ")" - GO TO 20 - END IF - 10 CONTINUE + DO 10 i = 1, 1000 + IF (a(i) /= 1) THEN + WRITE(6, *) "NG" + WRITE(6, *) "ELEMENT NUMBER = A(", i, ")" + GO TO 20 + END IF + 10 CONTINUE - WRITE(6, *) "OK" + WRITE(6, *) "OK" - 20 CONTINUE - STOP -END PROGRAM + 20 CONTINUE + STOP + END PROGRAM From 06149f8221b2921fde7b36aa756eb8a27e0423f3 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sun, 19 Jul 2026 23:08:39 +0100 Subject: [PATCH 036/260] Separate constructs from executable statements --- .../up/fe/specs/fortran/ast/nodes/FortranNode.java | 1 - .../specs/fortran/ast/nodes/program/StmtBlock.java | 8 +++++--- .../fortran/ast/nodes/stmt/ExecutableConstruct.java | 12 ++++++++++++ .../specs/fortran/ast/nodes/stmt/ExecutableStmt.java | 4 ---- .../fortran/ast/nodes/stmt/ifstmt/IfConstruct.java | 6 +++--- .../fortran/ast/nodes/stmt/loop/DoConstruct.java | 5 +++-- .../ast/nodes/stmt/selectcase/CaseConstruct.java | 5 +++-- .../fortran/parser/processors/StmtProcessors.java | 6 ------ 8 files changed, 26 insertions(+), 21 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExecutableConstruct.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java index 0bc7379d..c4d381e8 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java @@ -29,7 +29,6 @@ import java.util.Collection; import java.util.Optional; -import java.util.function.UnaryOperator; import java.util.stream.Collectors; /** diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/StmtBlock.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/StmtBlock.java index 944b625c..84af94cb 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/StmtBlock.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/StmtBlock.java @@ -2,6 +2,7 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.ExecutableConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; import java.util.Collection; @@ -14,14 +15,15 @@ public StmtBlock(DataStore data, Collection children) { super(data, children); } - public List getStatements() { - return getChildren(Stmt.class); + // TODO(Process-ing): Modify the weaver to avoid needing this wrapper + public List getStatements() { + return getChildren(); } @Override public String getCode() { return getStatements().stream() - .map(Stmt::getCode) + .map(FortranNode::getCode) .collect(Collectors.joining(ln())); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExecutableConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExecutableConstruct.java new file mode 100644 index 00000000..83ec3644 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExecutableConstruct.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class ExecutableConstruct extends FortranNode { + public ExecutableConstruct(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExecutableStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExecutableStmt.java index 8a051a9f..902eafae 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExecutableStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExecutableStmt.java @@ -4,12 +4,8 @@ import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.decl.LabelDecl; -import pt.up.fe.specs.util.SpecsCollections; -import pt.up.fe.specs.util.utilities.PrintOnce; import java.util.Collection; -import java.util.Optional; /** * R514 executable-construct diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfConstruct.java index b4d700e5..693c6fb5 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfConstruct.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfConstruct.java @@ -4,7 +4,7 @@ import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.stmt.ExecutableStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.ExecutableConstruct; import java.util.Collection; import java.util.List; @@ -13,7 +13,7 @@ /** * R1134 if-construct */ -public class IfConstruct extends ExecutableStmt { +public class IfConstruct extends ExecutableConstruct { public static final DataKey> NAME = KeyFactory.optional("name"); public IfConstruct(DataStore data, Collection children) { @@ -41,7 +41,7 @@ public EndIfStmt getEndIfStmt() { } @Override - public String getStmtCode() { + public String getCode() { var ifThenBlock = getIfThenBlock(); var elseIfBlocks = getElseIfBlocks(); var elseBlock = getElseBlock(); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java index 83d23fd7..ea17e640 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java @@ -9,12 +9,13 @@ import pt.up.fe.specs.fortran.ast.nodes.loops.enums.DoKind; import pt.up.fe.specs.fortran.ast.nodes.program.Execution; import pt.up.fe.specs.fortran.ast.nodes.stmt.ContinueStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.ExecutableConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.ExecutableStmt; import java.util.Collection; import java.util.Optional; -public class DoConstruct extends ExecutableStmt { +public class DoConstruct extends ExecutableConstruct { public static final DataKey> NAME = KeyFactory.optional("name"); public static final DataKey> DO_LABEL = KeyFactory.optional("doLabel"); @@ -59,7 +60,7 @@ private String getControlCode() { } @Override - public String getStmtCode() { + public String getCode() { var doStmt = getDoStmt(); var body = getBody(); var endDoStmt = getEndDoStmt(); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/CaseConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/CaseConstruct.java index 868ada9c..7ade8740 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/CaseConstruct.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/CaseConstruct.java @@ -4,13 +4,14 @@ import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.ExecutableConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.ExecutableStmt; import java.util.Collection; import java.util.List; import java.util.Optional; -public class CaseConstruct extends ExecutableStmt { +public class CaseConstruct extends ExecutableConstruct { public static final DataKey> NAME = KeyFactory.optional("name"); public CaseConstruct(DataStore data, Collection children) { @@ -34,7 +35,7 @@ public EndSelectStmt getEndSelectStmt() { } @Override - public String getStmtCode() { + public String getCode() { var selectCaseStmt = getSelectCaseStmt(); var caseBlocks = getCaseBlocks(); var endSelectStmt = getEndSelectStmt(); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 50c61dc3..9dd220f9 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -114,8 +114,6 @@ public void stmtBlock(StmtBlock stmtBlock) { } public void ifConstruct(IfConstruct ifConstruct) { - executableStmt(ifConstruct); - // Add if-then block var ifThenStmt = getStmtChild(ifConstruct, FlangName.IF_THEN_STMT); @@ -209,8 +207,6 @@ public void ifStmt(IfStmt ifStmt) { } public void caseConstruct(CaseConstruct caseConstruct) { - executableStmt(caseConstruct); - var selectCaseStmt = getStmtChild(caseConstruct, FlangName.SELECT_CASE_STMT); var caseBlocks = getChildren(caseConstruct, FlangName.CASE); var endSelectStmt = getStmtChild(caseConstruct, FlangName.END_SELECT_STMT); @@ -336,8 +332,6 @@ public void endSelectStmt(EndSelectStmt endSelectStmt) { } public void doConstruct(DoConstruct doConstruct) { - executableStmt(doConstruct); - var name = attributes().getOptionalString(doConstruct, "source", FlangName.NON_LABEL_DO_STMT, FlangName.NAME); name.ifPresent(str -> doConstruct.setOptional(DoConstruct.NAME, str)); From 9296642aa04f0b8e5bebf596917e4b12c9aee059 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sun, 19 Jul 2026 23:31:12 +0100 Subject: [PATCH 037/260] Fix lack of extension context in tests --- .../fortran/parser/FortranJsonParser.java | 25 +++++++++++++------ .../fortran/parser/FortranNativeParser.java | 10 ++++---- .../fortran/parser/FortranParserTest.java | 4 +-- 3 files changed, 23 insertions(+), 16 deletions(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java index a66d60f1..69a37242 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java @@ -5,6 +5,7 @@ import pt.up.fe.specs.fortran.ast.FortranContext; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.util.SpecsCheck; +import pt.up.fe.specs.util.SpecsIo; import pt.up.fe.specs.util.SpecsLogs; import java.io.*; @@ -31,17 +32,25 @@ private FortranJsonParser(FortranContext context) { public static FortranJsonResult parse(File file, FortranContext context) { - try { - context.set(FortranContext.LAST_PARSED_FILE, Optional.of(file)); - return parse(new FileReader(file), context); - } catch (FileNotFoundException e) { - throw new RuntimeException("Could not read file '" + file + "'", e); + context.set(FortranContext.LAST_PARSED_FILE, Optional.of(file)); + + var parser = new FortranJsonParser(context); + var code = SpecsIo.read(file); + + if (code == null) { + throw new RuntimeException("Could not read file '" + file + "'"); } + + return parser.parsePrivate(new StringReader(code), context); } - public static FortranJsonResult parse(Reader input, FortranContext context) { - var parser = new FortranJsonParser(context); - return parser.parsePrivate(input, context); + public static FortranJsonResult parse(String code, FortranContext context) { + // Create temporary file for dumping the input + var tempFile = SpecsIo.getTempFile("", "json"); + SpecsIo.write(tempFile, code); + var result = parse(tempFile, context); + SpecsIo.delete(tempFile); + return result; } private FortranJsonResult parsePrivate(Reader input, FortranContext context) { diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranNativeParser.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranNativeParser.java index e3d6aa62..0beb3c99 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranNativeParser.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranNativeParser.java @@ -79,16 +79,16 @@ public FortranJsonResult parse(File file) { } private FortranJsonResult parseStream(InputStream stream, File jsonOutput) { - if (jsonOutput == null) { - return FortranJsonParser.parse(new InputStreamReader(stream), context); - } - // Read the stream to a string first var json = SpecsIo.read(stream); + if (jsonOutput == null) { + return FortranJsonParser.parse(json, context); + } + SpecsIo.write(jsonOutput, json); SpecsLogs.info("Wrote JSON output at '" + jsonOutput.getAbsolutePath() + "'"); - return FortranJsonParser.parse(new StringReader(json), context); + return FortranJsonParser.parse(jsonOutput, context); } public FortranJsonResult parse(InputStream input, String extension) { diff --git a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java index a094b99e..9f5ea146 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -10,8 +10,6 @@ import pt.up.fe.specs.util.SpecsStrings; import pt.up.fe.specs.util.SpecsSystem; -import java.io.InputStreamReader; -import java.nio.charset.StandardCharsets; import java.util.function.BiFunction; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -42,7 +40,7 @@ private static void testJson(String resource) { } private static void testJson(String resource, DataStore fortranOptions) { - test(resource, (r, c) -> FortranJsonParser.parse(new InputStreamReader(SpecsIo.resourceToStream(r), StandardCharsets.UTF_8), c), fortranOptions); + test(resource, (r, c) -> FortranJsonParser.parse(SpecsIo.read(SpecsIo.resourceToStream(r)), c), fortranOptions); } private static void test(String resource, BiFunction parser, DataStore fortranOptions) { From 04bc90c240fa6199f2893b90aa766e08358c9908 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 20 Jul 2026 16:35:59 +0100 Subject: [PATCH 038/260] Regenerate dump and fix Fujitsu test case --- ...0000.expected.f90 => 0001_0000.expected.f} | 4 +- .../parser/fujitsu/0001/0001_0000.json | 673 +++++++++--------- 2 files changed, 339 insertions(+), 338 deletions(-) rename FortranParser/resources-test/fortran/parser/fujitsu/0001/{0001_0000.expected.f90 => 0001_0000.expected.f} (89%) diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f similarity index 89% rename from FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f90 rename to FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f index e39f0b6b..0d58e79d 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f @@ -9,10 +9,10 @@ WRITE(6, *) "ELEMENT NUMBER = A(", i, ")" GO TO 20 END IF - 10 CONTINUE +10 CONTINUE WRITE(6, *) "OK" - 20 CONTINUE +20 CONTINUE STOP END PROGRAM diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.json b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.json index ad4d330e..fd12dd0b 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.json +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.json @@ -1,845 +1,846 @@ { + "fileExtension": "f", "nodes": [ { - "id": "0x55dbf2fc7f00-Program", + "id": "0x55b98bfbff00-Program", "ProgramUnit": [ - "0x55dbf3004140-ProgramUnit" + "0x55b98bffc140-ProgramUnit" ] }, { - "id": "0x55dbf3004140-ProgramUnit", + "id": "0x55b98bffc140-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x55dbf3004c70-MainProgram" + "MainProgram": "0x55b98bffcc70-MainProgram" }, { - "id": "0x55dbf3004c70-MainProgram", - "SpecificationPart": "0x55dbf3004d10-SpecificationPart", - "ExecutionPart": "0x55dbf3004cf8-ExecutionPart", - "Statement": "0x55dbf3004c70-Statement" + "id": "0x55b98bffcc70-MainProgram", + "SpecificationPart": "0x55b98bffcd10-SpecificationPart", + "ExecutionPart": "0x55b98bffccf8-ExecutionPart", + "Statement": "0x55b98bffcc70-Statement" }, { - "id": "0x55dbf3004d10-SpecificationPart", - "ImplicitPart": "0x55dbf3004d28-ImplicitPart", + "id": "0x55b98bffcd10-SpecificationPart", + "ImplicitPart": "0x55b98bffcd28-ImplicitPart", "DeclarationConstruct": [ - "0x55dbf2fd5110-DeclarationConstruct" + "0x55b98bfcd110-DeclarationConstruct" ] }, { - "id": "0x55dbf3004d28-ImplicitPart" + "id": "0x55b98bffcd28-ImplicitPart" }, { - "id": "0x55dbf2fd5110-DeclarationConstruct", + "id": "0x55b98bfcd110-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55dbf2fd5110-SpecificationConstruct" + "SpecificationConstruct": "0x55b98bfcd110-SpecificationConstruct" }, { - "id": "0x55dbf2fd5110-SpecificationConstruct", + "id": "0x55b98bfcd110-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55dbf2fd5110-Statement" + "Statement": "0x55b98bfcd110-Statement" }, { - "id": "0x55dbf2fd5110-Statement", - "statement": "0x55dbf3004ae0-TypeDeclarationStmt", + "id": "0x55b98bfcd110-Statement", + "statement": "0x55b98bffcae0-TypeDeclarationStmt", "source": "integera(1000)" }, { - "id": "0x55dbf3004ae0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55dbf3004b10-DeclarationTypeSpec", + "id": "0x55b98bffcae0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55b98bffcb10-DeclarationTypeSpec", "EntityDecl": [ - "0x55dbf2ff3e20-EntityDecl" + "0x55b98bfebe20-EntityDecl" ] }, { - "id": "0x55dbf3004b10-DeclarationTypeSpec", + "id": "0x55b98bffcb10-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55dbf3004b10-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55b98bffcb10-IntrinsicTypeSpec" }, { - "id": "0x55dbf3004b10-IntrinsicTypeSpec", + "id": "0x55b98bffcb10-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55dbf3004b10-IntegerTypeSpec" + "IntegerTypeSpec": "0x55b98bffcb10-IntegerTypeSpec" }, { - "id": "0x55dbf3004b10-IntegerTypeSpec" + "id": "0x55b98bffcb10-IntegerTypeSpec" }, { - "id": "0x55dbf2ff3e20-EntityDecl", - "Name": "0x55dbf2ff3ed8-Name", - "ArraySpec": "0x55dbf2ff3ea0-ArraySpec" + "id": "0x55b98bfebe20-EntityDecl", + "Name": "0x55b98bfebed8-Name", + "ArraySpec": "0x55b98bfebea0-ArraySpec" }, { - "id": "0x55dbf2ff3ed8-Name", + "id": "0x55b98bfebed8-Name", "source": "a" }, { - "id": "0x55dbf2ff3ea0-ArraySpec", + "id": "0x55b98bfebea0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55dbf30040e0-ExplicitShapeSpec" + "0x55b98bffc0e0-ExplicitShapeSpec" ] }, { - "id": "0x55dbf30040e0-ExplicitShapeSpec", - "upper_bound": "0x55dbf30040e0-SpecificationExpr" + "id": "0x55b98bffc0e0-ExplicitShapeSpec", + "upper_bound": "0x55b98bffc0e0-SpecificationExpr" }, { - "id": "0x55dbf30040e0-SpecificationExpr", - "Expr": "0x55dbf2f67790-Expr" + "id": "0x55b98bffc0e0-SpecificationExpr", + "Expr": "0x55b98bf5f790-Expr" }, { - "id": "0x55dbf2f67790-Expr", + "id": "0x55b98bf5f790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55dbf2f677b0-LiteralConstant" + "LiteralConstant": "0x55b98bf5f7b0-LiteralConstant" }, { - "id": "0x55dbf2f677b0-LiteralConstant", + "id": "0x55b98bf5f7b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55dbf2f677b0-IntLiteralConstant" + "IntLiteralConstant": "0x55b98bf5f7b0-IntLiteralConstant" }, { - "id": "0x55dbf2f677b0-IntLiteralConstant", + "id": "0x55b98bf5f7b0-IntLiteralConstant", "CharBlock": "1000" }, { - "id": "0x55dbf3004cf8-ExecutionPart", + "id": "0x55b98bffccf8-ExecutionPart", "ExecutionPartConstruct": [ - "0x55dbf2ff3be0-ExecutionPartConstruct", - "0x55dbf2ff28f0-ExecutionPartConstruct", - "0x55dbf2ff2d00-ExecutionPartConstruct", - "0x55dbf2ff7b30-ExecutionPartConstruct", - "0x55dbf2ff3b80-ExecutionPartConstruct", - "0x55dbf2ff40d0-ExecutionPartConstruct" + "0x55b98bfebbe0-ExecutionPartConstruct", + "0x55b98bfea8f0-ExecutionPartConstruct", + "0x55b98bfead00-ExecutionPartConstruct", + "0x55b98bfefb30-ExecutionPartConstruct", + "0x55b98bfebb80-ExecutionPartConstruct", + "0x55b98bfec0d0-ExecutionPartConstruct" ] }, { - "id": "0x55dbf3004cf8-ExecutionPartConstruct" + "id": "0x55b98bffccf8-ExecutionPartConstruct" }, { - "id": "0x55dbf2ff3be0-ExecutionPartConstruct", + "id": "0x55b98bfebbe0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55dbf2ff3be0-ExecutableConstruct" + "ExecutableConstruct": "0x55b98bfebbe0-ExecutableConstruct" }, { - "id": "0x55dbf2ff3be0-ExecutableConstruct", + "id": "0x55b98bfebbe0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55dbf2ff3be0-Statement" + "Statement": "0x55b98bfebbe0-Statement" }, { - "id": "0x55dbf2ff3be0-Statement", - "statement": "0x55dbf2ff3bf0-ActionStmt", + "id": "0x55b98bfebbe0-Statement", + "statement": "0x55b98bfebbf0-ActionStmt", "source": "a=0" }, { - "id": "0x55dbf2ff3bf0-ActionStmt", + "id": "0x55b98bfebbf0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55dbf2ff39f0-AssignmentStmt" + "AssignmentStmt": "0x55b98bfeb9f0-AssignmentStmt" }, { - "id": "0x55dbf2ff39f0-AssignmentStmt", - "Variable": "0x55dbf2ff3ad0-Variable", - "Expr": "0x55dbf2ff3a00-Expr" + "id": "0x55b98bfeb9f0-AssignmentStmt", + "Variable": "0x55b98bfebad0-Variable", + "Expr": "0x55b98bfeba00-Expr" }, { - "id": "0x55dbf2ff3ad0-Variable", + "id": "0x55b98bfebad0-Variable", "variantKey": "Designator", - "Designator": "0x55dbf2fd5160-Designator" + "Designator": "0x55b98bfcd160-Designator" }, { - "id": "0x55dbf2fd5160-Designator", + "id": "0x55b98bfcd160-Designator", "variantKey": "DataRef", - "DataRef": "0x55dbf2fd5170-DataRef" + "DataRef": "0x55b98bfcd170-DataRef" }, { - "id": "0x55dbf2fd5170-DataRef", + "id": "0x55b98bfcd170-DataRef", "variantKey": "Name", - "Name": "0x55dbf2fd5170-Name" + "Name": "0x55b98bfcd170-Name" }, { - "id": "0x55dbf2fd5170-Name", + "id": "0x55b98bfcd170-Name", "source": "a" }, { - "id": "0x55dbf2ff3a00-Expr", + "id": "0x55b98bfeba00-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55dbf2ff3a20-LiteralConstant" + "LiteralConstant": "0x55b98bfeba20-LiteralConstant" }, { - "id": "0x55dbf2ff3a20-LiteralConstant", + "id": "0x55b98bfeba20-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55dbf2ff3a20-IntLiteralConstant" + "IntLiteralConstant": "0x55b98bfeba20-IntLiteralConstant" }, { - "id": "0x55dbf2ff3a20-IntLiteralConstant", + "id": "0x55b98bfeba20-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55dbf2ff28f0-ExecutionPartConstruct", + "id": "0x55b98bfea8f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55dbf2ff28f0-ExecutableConstruct" + "ExecutableConstruct": "0x55b98bfea8f0-ExecutableConstruct" }, { - "id": "0x55dbf2ff28f0-ExecutableConstruct", + "id": "0x55b98bfea8f0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55dbf2ff28f0-Statement" + "Statement": "0x55b98bfea8f0-Statement" }, { - "id": "0x55dbf2ff28f0-Statement", - "statement": "0x55dbf2ff2900-ActionStmt", + "id": "0x55b98bfea8f0-Statement", + "statement": "0x55b98bfea900-ActionStmt", "source": "a=a+1" }, { - "id": "0x55dbf2ff2900-ActionStmt", + "id": "0x55b98bfea900-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55dbf2ffe5d0-AssignmentStmt" + "AssignmentStmt": "0x55b98bff65d0-AssignmentStmt" }, { - "id": "0x55dbf2ffe5d0-AssignmentStmt", - "Variable": "0x55dbf2ffe6b0-Variable", - "Expr": "0x55dbf2ffe5e0-Expr" + "id": "0x55b98bff65d0-AssignmentStmt", + "Variable": "0x55b98bff66b0-Variable", + "Expr": "0x55b98bff65e0-Expr" }, { - "id": "0x55dbf2ffe6b0-Variable", + "id": "0x55b98bff66b0-Variable", "variantKey": "Designator", - "Designator": "0x55dbf2fc64d0-Designator" + "Designator": "0x55b98bfbe4d0-Designator" }, { - "id": "0x55dbf2fc64d0-Designator", + "id": "0x55b98bfbe4d0-Designator", "variantKey": "DataRef", - "DataRef": "0x55dbf2fc64e0-DataRef" + "DataRef": "0x55b98bfbe4e0-DataRef" }, { - "id": "0x55dbf2fc64e0-DataRef", + "id": "0x55b98bfbe4e0-DataRef", "variantKey": "Name", - "Name": "0x55dbf2fc64e0-Name" + "Name": "0x55b98bfbe4e0-Name" }, { - "id": "0x55dbf2fc64e0-Name", + "id": "0x55b98bfbe4e0-Name", "source": "a" }, { - "id": "0x55dbf2ffe5e0-Expr", + "id": "0x55b98bff65e0-Expr", "variantKey": "Add", - "Add": "0x55dbf2ffe600-Add" + "Add": "0x55b98bff6600-Add" }, { - "id": "0x55dbf2ffe600-Add", - "left": "0x55dbf2ffe480-Expr", - "right": "0x55dbf2ffe3a0-Expr", + "id": "0x55b98bff6600-Add", + "left": "0x55b98bff6480-Expr", + "right": "0x55b98bff63a0-Expr", "op": "ADD" }, { - "id": "0x55dbf2ffe480-Expr", + "id": "0x55b98bff6480-Expr", "variantKey": "Designator", - "Designator": "0x55dbf2ff3360-Designator" + "Designator": "0x55b98bfeb360-Designator" }, { - "id": "0x55dbf2ff3360-Designator", + "id": "0x55b98bfeb360-Designator", "variantKey": "DataRef", - "DataRef": "0x55dbf2ff3370-DataRef" + "DataRef": "0x55b98bfeb370-DataRef" }, { - "id": "0x55dbf2ff3370-DataRef", + "id": "0x55b98bfeb370-DataRef", "variantKey": "Name", - "Name": "0x55dbf2ff3370-Name" + "Name": "0x55b98bfeb370-Name" }, { - "id": "0x55dbf2ff3370-Name", + "id": "0x55b98bfeb370-Name", "source": "a" }, { - "id": "0x55dbf2ffe3a0-Expr", + "id": "0x55b98bff63a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55dbf2ffe3c0-LiteralConstant" + "LiteralConstant": "0x55b98bff63c0-LiteralConstant" }, { - "id": "0x55dbf2ffe3c0-LiteralConstant", + "id": "0x55b98bff63c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55dbf2ffe3c0-IntLiteralConstant" + "IntLiteralConstant": "0x55b98bff63c0-IntLiteralConstant" }, { - "id": "0x55dbf2ffe3c0-IntLiteralConstant", + "id": "0x55b98bff63c0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55dbf2ff2d00-ExecutionPartConstruct", + "id": "0x55b98bfead00-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55dbf2ff2d00-ExecutableConstruct" + "ExecutableConstruct": "0x55b98bfead00-ExecutableConstruct" }, { - "id": "0x55dbf2ff2d00-ExecutableConstruct", + "id": "0x55b98bfead00-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55dbf3001290-DoConstruct" + "DoConstruct": "0x55b98bff9290-DoConstruct" }, { - "id": "0x55dbf3001290-DoConstruct", - "Statement": "0x55dbf30012e8-Statement", + "id": "0x55b98bff9290-DoConstruct", + "Statement": "0x55b98bff92e8-Statement", "ExecutionPartConstruct": [ - "0x55dbf2ff32a0-ExecutionPartConstruct", - "0x55dbf2ff3520-ExecutionPartConstruct" + "0x55b98bfeb2a0-ExecutionPartConstruct", + "0x55b98bfeb520-ExecutionPartConstruct" ], - "Statement": "0x55dbf3001290-Statement" + "Statement": "0x55b98bff9290-Statement" }, { - "id": "0x55dbf30012e8-Statement", - "statement": "0x55dbf30012f8-NonLabelDoStmt", + "id": "0x55b98bff92e8-Statement", + "statement": "0x55b98bff92f8-NonLabelDoStmt", "source": "do10i=1,1000" }, { - "id": "0x55dbf30012f8-NonLabelDoStmt", - "LoopControl": "0x55dbf30012f8-LoopControl" + "id": "0x55b98bff92f8-NonLabelDoStmt", + "LoopControl": "0x55b98bff92f8-LoopControl" }, { - "id": "0x55dbf30012f8-LoopControl", + "id": "0x55b98bff92f8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55dbf30012f8-LoopBounds" + "LoopBounds": "0x55b98bff92f8-LoopBounds" }, { - "id": "0x55dbf30012f8-LoopBounds", - "var": "0x55dbf30012f8-Name", - "lower": "0x55dbf2ff2940-Expr", - "upper": "0x55dbf2ff2a20-Expr" + "id": "0x55b98bff92f8-LoopBounds", + "var": "0x55b98bff92f8-Name", + "lower": "0x55b98bfea940-Expr", + "upper": "0x55b98bfeaa20-Expr" }, { - "id": "0x55dbf30012f8-Name", + "id": "0x55b98bff92f8-Name", "source": "i" }, { - "id": "0x55dbf2ff2940-Expr", + "id": "0x55b98bfea940-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55dbf2ff2960-LiteralConstant" + "LiteralConstant": "0x55b98bfea960-LiteralConstant" }, { - "id": "0x55dbf2ff2960-LiteralConstant", + "id": "0x55b98bfea960-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55dbf2ff2960-IntLiteralConstant" + "IntLiteralConstant": "0x55b98bfea960-IntLiteralConstant" }, { - "id": "0x55dbf2ff2960-IntLiteralConstant", + "id": "0x55b98bfea960-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55dbf2ff2a20-Expr", + "id": "0x55b98bfeaa20-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55dbf2ff2a40-LiteralConstant" + "LiteralConstant": "0x55b98bfeaa40-LiteralConstant" }, { - "id": "0x55dbf2ff2a40-LiteralConstant", + "id": "0x55b98bfeaa40-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55dbf2ff2a40-IntLiteralConstant" + "IntLiteralConstant": "0x55b98bfeaa40-IntLiteralConstant" }, { - "id": "0x55dbf2ff2a40-IntLiteralConstant", + "id": "0x55b98bfeaa40-IntLiteralConstant", "CharBlock": "1000" }, { - "id": "0x55dbf30012d0-ExecutionPartConstruct" + "id": "0x55b98bff92d0-ExecutionPartConstruct" }, { - "id": "0x55dbf2ff32a0-ExecutionPartConstruct", + "id": "0x55b98bfeb2a0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55dbf2ff32a0-ExecutableConstruct" + "ExecutableConstruct": "0x55b98bfeb2a0-ExecutableConstruct" }, { - "id": "0x55dbf2ff32a0-ExecutableConstruct", + "id": "0x55b98bfeb2a0-ExecutableConstruct", "variantKey": "IfConstruct", - "IfConstruct": "0x55dbf2f9d780-IfConstruct" + "IfConstruct": "0x55b98bf95780-IfConstruct" }, { - "id": "0x55dbf2f9d780-IfConstruct", - "Statement": "0x55dbf2f9d850-Statement", + "id": "0x55b98bf95780-IfConstruct", + "Statement": "0x55b98bf95850-Statement", "ExecutionPartConstruct": [ - "0x55dbf2ff3850-ExecutionPartConstruct", - "0x55dbf2ff77b0-ExecutionPartConstruct", - "0x55dbf2fd4da0-ExecutionPartConstruct" + "0x55b98bfeb850-ExecutionPartConstruct", + "0x55b98bfef7b0-ExecutionPartConstruct", + "0x55b98bfccda0-ExecutionPartConstruct" ], - "Statement": "0x55dbf2f9d780-Statement" + "Statement": "0x55b98bf95780-Statement" }, { - "id": "0x55dbf2f9d850-Statement", - "statement": "0x55dbf2f9d860-IfThenStmt", + "id": "0x55b98bf95850-Statement", + "statement": "0x55b98bf95860-IfThenStmt", "source": "if(a(i).ne.1)then" }, { - "id": "0x55dbf2f9d860-IfThenStmt", - "Expr": "0x55dbf2ff45a0-Expr" + "id": "0x55b98bf95860-IfThenStmt", + "Expr": "0x55b98bfec5a0-Expr" }, { - "id": "0x55dbf2ff45a0-Expr", + "id": "0x55b98bfec5a0-Expr", "variantKey": "NE", - "NE": "0x55dbf2ff45c0-NE" + "NE": "0x55b98bfec5c0-NE" }, { - "id": "0x55dbf2ff45c0-NE", - "left": "0x55dbf2ff2b80-Expr", - "right": "0x55dbf2ff44c0-Expr", + "id": "0x55b98bfec5c0-NE", + "left": "0x55b98bfeab80-Expr", + "right": "0x55b98bfec4c0-Expr", "op": "NE" }, { - "id": "0x55dbf2ff2b80-Expr", + "id": "0x55b98bfeab80-Expr", "variantKey": "Designator", - "Designator": "0x55dbf302c330-Designator" + "Designator": "0x55b98c024330-Designator" }, { - "id": "0x55dbf302c330-Designator", + "id": "0x55b98c024330-Designator", "variantKey": "DataRef", - "DataRef": "0x55dbf302c340-DataRef" + "DataRef": "0x55b98c024340-DataRef" }, { - "id": "0x55dbf302c340-DataRef", + "id": "0x55b98c024340-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55dbf3020390-ArrayElement" + "ArrayElement": "0x55b98c018390-ArrayElement" }, { - "id": "0x55dbf3020390-ArrayElement", - "base": "0x55dbf3020390-DataRef", + "id": "0x55b98c018390-ArrayElement", + "base": "0x55b98c018390-DataRef", "subscripts": [ - "0x55dbf2ffd1f0-SectionSubscript" + "0x55b98bff51f0-SectionSubscript" ] }, { - "id": "0x55dbf3020390-DataRef", + "id": "0x55b98c018390-DataRef", "variantKey": "Name", - "Name": "0x55dbf3020390-Name" + "Name": "0x55b98c018390-Name" }, { - "id": "0x55dbf3020390-Name", + "id": "0x55b98c018390-Name", "source": "a" }, { - "id": "0x55dbf2ffd1f0-SectionSubscript", + "id": "0x55b98bff51f0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55dbf3028ee0-Expr" + "Expr": "0x55b98c020ee0-Expr" }, { - "id": "0x55dbf3028ee0-Expr", + "id": "0x55b98c020ee0-Expr", "variantKey": "Designator", - "Designator": "0x55dbf2ff4680-Designator" + "Designator": "0x55b98bfec680-Designator" }, { - "id": "0x55dbf2ff4680-Designator", + "id": "0x55b98bfec680-Designator", "variantKey": "DataRef", - "DataRef": "0x55dbf2ff4690-DataRef" + "DataRef": "0x55b98bfec690-DataRef" }, { - "id": "0x55dbf2ff4690-DataRef", + "id": "0x55b98bfec690-DataRef", "variantKey": "Name", - "Name": "0x55dbf2ff4690-Name" + "Name": "0x55b98bfec690-Name" }, { - "id": "0x55dbf2ff4690-Name", + "id": "0x55b98bfec690-Name", "source": "i" }, { - "id": "0x55dbf2ff44c0-Expr", + "id": "0x55b98bfec4c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55dbf2ff44e0-LiteralConstant" + "LiteralConstant": "0x55b98bfec4e0-LiteralConstant" }, { - "id": "0x55dbf2ff44e0-LiteralConstant", + "id": "0x55b98bfec4e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55dbf2ff44e0-IntLiteralConstant" + "IntLiteralConstant": "0x55b98bfec4e0-IntLiteralConstant" }, { - "id": "0x55dbf2ff44e0-IntLiteralConstant", + "id": "0x55b98bfec4e0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55dbf2f9d838-ExecutionPartConstruct" + "id": "0x55b98bf95838-ExecutionPartConstruct" }, { - "id": "0x55dbf2ff3850-ExecutionPartConstruct", + "id": "0x55b98bfeb850-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55dbf2ff3850-ExecutableConstruct" + "ExecutableConstruct": "0x55b98bfeb850-ExecutableConstruct" }, { - "id": "0x55dbf2ff3850-ExecutableConstruct", + "id": "0x55b98bfeb850-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55dbf2ff3850-Statement" + "Statement": "0x55b98bfeb850-Statement" }, { - "id": "0x55dbf2ff3850-Statement", - "statement": "0x55dbf2ff3860-ActionStmt", + "id": "0x55b98bfeb850-Statement", + "statement": "0x55b98bfeb860-ActionStmt", "source": "write(6,*)'NG'" }, { - "id": "0x55dbf2ff3860-ActionStmt", + "id": "0x55b98bfeb860-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x55dbf2ff7090-WriteStmt" + "WriteStmt": "0x55b98bfef090-WriteStmt" }, { - "id": "0x55dbf2ff7090-WriteStmt", - "iounit": "0x55dbf2ff7090-IoUnit", - "format": "0x55dbf2ff70c0-Format", + "id": "0x55b98bfef090-WriteStmt", + "iounit": "0x55b98bfef090-IoUnit", + "format": "0x55b98bfef0c0-Format", "controls": [], "items": [ - "0x55dbf2ff6fb0-OutputItem" + "0x55b98bfeefb0-OutputItem" ] }, { - "id": "0x55dbf2ff7090-IoUnit", + "id": "0x55b98bfef090-IoUnit", "variantKey": "Expr", - "Expr": "0x55dbf2ff6ec0-Expr" + "Expr": "0x55b98bfeeec0-Expr" }, { - "id": "0x55dbf2ff6ec0-Expr", + "id": "0x55b98bfeeec0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55dbf2ff6ee0-LiteralConstant" + "LiteralConstant": "0x55b98bfeeee0-LiteralConstant" }, { - "id": "0x55dbf2ff6ee0-LiteralConstant", + "id": "0x55b98bfeeee0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55dbf2ff6ee0-IntLiteralConstant" + "IntLiteralConstant": "0x55b98bfeeee0-IntLiteralConstant" }, { - "id": "0x55dbf2ff6ee0-IntLiteralConstant", + "id": "0x55b98bfeeee0-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x55dbf2ff70c0-Format", + "id": "0x55b98bfef0c0-Format", "variantKey": "Star", - "Star": "0x55dbf2ff70c0-Star" + "Star": "0x55b98bfef0c0-Star" }, { - "id": "0x55dbf2ff70c0-Star" + "id": "0x55b98bfef0c0-Star" }, { - "id": "0x55dbf2ff6fb0-OutputItem", + "id": "0x55b98bfeefb0-OutputItem", "variantKey": "Expr", - "Expr": "0x55dbf2ff6fb0-Expr" + "Expr": "0x55b98bfeefb0-Expr" }, { - "id": "0x55dbf2ff6fb0-Expr", + "id": "0x55b98bfeefb0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55dbf2ff6fd0-LiteralConstant" + "LiteralConstant": "0x55b98bfeefd0-LiteralConstant" }, { - "id": "0x55dbf2ff6fd0-LiteralConstant", + "id": "0x55b98bfeefd0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55dbf2ff6fd0-CharLiteralConstant" + "CharLiteralConstant": "0x55b98bfeefd0-CharLiteralConstant" }, { - "id": "0x55dbf2ff6fd0-CharLiteralConstant", + "id": "0x55b98bfeefd0-CharLiteralConstant", "string": "NG" }, { - "id": "0x55dbf2ff77b0-ExecutionPartConstruct", + "id": "0x55b98bfef7b0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55dbf2ff77b0-ExecutableConstruct" + "ExecutableConstruct": "0x55b98bfef7b0-ExecutableConstruct" }, { - "id": "0x55dbf2ff77b0-ExecutableConstruct", + "id": "0x55b98bfef7b0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55dbf2ff77b0-Statement" + "Statement": "0x55b98bfef7b0-Statement" }, { - "id": "0x55dbf2ff77b0-Statement", - "statement": "0x55dbf2ff77c0-ActionStmt", + "id": "0x55b98bfef7b0-Statement", + "statement": "0x55b98bfef7c0-ActionStmt", "source": "write(6,*)'ELEMENT NUMBER = A(',i,')'" }, { - "id": "0x55dbf2ff77c0-ActionStmt", + "id": "0x55b98bfef7c0-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x55dbf2ff75f0-WriteStmt" + "WriteStmt": "0x55b98bfef5f0-WriteStmt" }, { - "id": "0x55dbf2ff75f0-WriteStmt", - "iounit": "0x55dbf2ff75f0-IoUnit", - "format": "0x55dbf2ff7620-Format", + "id": "0x55b98bfef5f0-WriteStmt", + "iounit": "0x55b98bfef5f0-IoUnit", + "format": "0x55b98bfef620-Format", "controls": [], "items": [ - "0x55dbf2ff7510-OutputItem", - "0x55dbf2ff72d0-OutputItem", - "0x55dbf2ff7420-OutputItem" + "0x55b98bfef510-OutputItem", + "0x55b98bfef2d0-OutputItem", + "0x55b98bfef420-OutputItem" ] }, { - "id": "0x55dbf2ff75f0-IoUnit", + "id": "0x55b98bfef5f0-IoUnit", "variantKey": "Expr", - "Expr": "0x55dbf2ff71e0-Expr" + "Expr": "0x55b98bfef1e0-Expr" }, { - "id": "0x55dbf2ff71e0-Expr", + "id": "0x55b98bfef1e0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55dbf2ff7200-LiteralConstant" + "LiteralConstant": "0x55b98bfef200-LiteralConstant" }, { - "id": "0x55dbf2ff7200-LiteralConstant", + "id": "0x55b98bfef200-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55dbf2ff7200-IntLiteralConstant" + "IntLiteralConstant": "0x55b98bfef200-IntLiteralConstant" }, { - "id": "0x55dbf2ff7200-IntLiteralConstant", + "id": "0x55b98bfef200-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x55dbf2ff7620-Format", + "id": "0x55b98bfef620-Format", "variantKey": "Star", - "Star": "0x55dbf2ff7620-Star" + "Star": "0x55b98bfef620-Star" }, { - "id": "0x55dbf2ff7620-Star" + "id": "0x55b98bfef620-Star" }, { - "id": "0x55dbf2ff7510-OutputItem", + "id": "0x55b98bfef510-OutputItem", "variantKey": "Expr", - "Expr": "0x55dbf2ff7510-Expr" + "Expr": "0x55b98bfef510-Expr" }, { - "id": "0x55dbf2ff7510-Expr", + "id": "0x55b98bfef510-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55dbf2ff7530-LiteralConstant" + "LiteralConstant": "0x55b98bfef530-LiteralConstant" }, { - "id": "0x55dbf2ff7530-LiteralConstant", + "id": "0x55b98bfef530-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55dbf2ff7530-CharLiteralConstant" + "CharLiteralConstant": "0x55b98bfef530-CharLiteralConstant" }, { - "id": "0x55dbf2ff7530-CharLiteralConstant", + "id": "0x55b98bfef530-CharLiteralConstant", "string": "ELEMENT NUMBER = A(" }, { - "id": "0x55dbf2ff72d0-OutputItem", + "id": "0x55b98bfef2d0-OutputItem", "variantKey": "Expr", - "Expr": "0x55dbf2ff72d0-Expr" + "Expr": "0x55b98bfef2d0-Expr" }, { - "id": "0x55dbf2ff72d0-Expr", + "id": "0x55b98bfef2d0-Expr", "variantKey": "Designator", - "Designator": "0x55dbf2ff5260-Designator" + "Designator": "0x55b98bfed260-Designator" }, { - "id": "0x55dbf2ff5260-Designator", + "id": "0x55b98bfed260-Designator", "variantKey": "DataRef", - "DataRef": "0x55dbf2ff5270-DataRef" + "DataRef": "0x55b98bfed270-DataRef" }, { - "id": "0x55dbf2ff5270-DataRef", + "id": "0x55b98bfed270-DataRef", "variantKey": "Name", - "Name": "0x55dbf2ff5270-Name" + "Name": "0x55b98bfed270-Name" }, { - "id": "0x55dbf2ff5270-Name", + "id": "0x55b98bfed270-Name", "source": "i" }, { - "id": "0x55dbf2ff7420-OutputItem", + "id": "0x55b98bfef420-OutputItem", "variantKey": "Expr", - "Expr": "0x55dbf2ff7420-Expr" + "Expr": "0x55b98bfef420-Expr" }, { - "id": "0x55dbf2ff7420-Expr", + "id": "0x55b98bfef420-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55dbf2ff7440-LiteralConstant" + "LiteralConstant": "0x55b98bfef440-LiteralConstant" }, { - "id": "0x55dbf2ff7440-LiteralConstant", + "id": "0x55b98bfef440-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55dbf2ff7440-CharLiteralConstant" + "CharLiteralConstant": "0x55b98bfef440-CharLiteralConstant" }, { - "id": "0x55dbf2ff7440-CharLiteralConstant", + "id": "0x55b98bfef440-CharLiteralConstant", "string": ")" }, { - "id": "0x55dbf2fd4da0-ExecutionPartConstruct", + "id": "0x55b98bfccda0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55dbf2fd4da0-ExecutableConstruct" + "ExecutableConstruct": "0x55b98bfccda0-ExecutableConstruct" }, { - "id": "0x55dbf2fd4da0-ExecutableConstruct", + "id": "0x55b98bfccda0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55dbf2fd4da0-Statement" + "Statement": "0x55b98bfccda0-Statement" }, { - "id": "0x55dbf2fd4da0-Statement", - "statement": "0x55dbf2fd4db0-ActionStmt", + "id": "0x55b98bfccda0-Statement", + "statement": "0x55b98bfccdb0-ActionStmt", "source": "goto20" }, { - "id": "0x55dbf2fd4db0-ActionStmt", + "id": "0x55b98bfccdb0-ActionStmt", "variantKey": "GotoStmt", - "GotoStmt": "0x55dbf3004340-GotoStmt" + "GotoStmt": "0x55b98bffc340-GotoStmt" }, { - "id": "0x55dbf3004340-GotoStmt", + "id": "0x55b98bffc340-GotoStmt", "uint64_t": "20" }, { - "id": "0x55dbf2f9d780-Statement", - "statement": "0x55dbf2f9d790-EndIfStmt", + "id": "0x55b98bf95780-Statement", + "statement": "0x55b98bf95790-EndIfStmt", "source": "endif" }, { - "id": "0x55dbf2f9d790-EndIfStmt" + "id": "0x55b98bf95790-EndIfStmt" }, { - "id": "0x55dbf2ff3520-ExecutionPartConstruct", + "id": "0x55b98bfeb520-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55dbf2ff3520-ExecutableConstruct" + "ExecutableConstruct": "0x55b98bfeb520-ExecutableConstruct" }, { - "id": "0x55dbf2ff3520-ExecutableConstruct", + "id": "0x55b98bfeb520-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55dbf2ff3520-Statement" + "Statement": "0x55b98bfeb520-Statement" }, { - "id": "0x55dbf2ff3520-Statement", - "statement": "0x55dbf2ff3530-ActionStmt", + "id": "0x55b98bfeb520-Statement", + "statement": "0x55b98bfeb530-ActionStmt", "label": "10", "source": "10continue" }, { - "id": "0x55dbf2ff3530-ActionStmt", + "id": "0x55b98bfeb530-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x55dbf2ff3530-ContinueStmt" + "ContinueStmt": "0x55b98bfeb530-ContinueStmt" }, { - "id": "0x55dbf2ff3530-ContinueStmt" + "id": "0x55b98bfeb530-ContinueStmt" }, { - "id": "0x55dbf3001290-Statement", - "statement": "0x55dbf30012a0-EndDoStmt", + "id": "0x55b98bff9290-Statement", + "statement": "0x55b98bff92a0-EndDoStmt", "source": "" }, { - "id": "0x55dbf30012a0-EndDoStmt" + "id": "0x55b98bff92a0-EndDoStmt" }, { - "id": "0x55dbf2ff7b30-ExecutionPartConstruct", + "id": "0x55b98bfefb30-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55dbf2ff7b30-ExecutableConstruct" + "ExecutableConstruct": "0x55b98bfefb30-ExecutableConstruct" }, { - "id": "0x55dbf2ff7b30-ExecutableConstruct", + "id": "0x55b98bfefb30-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55dbf2ff7b30-Statement" + "Statement": "0x55b98bfefb30-Statement" }, { - "id": "0x55dbf2ff7b30-Statement", - "statement": "0x55dbf2ff7b40-ActionStmt", + "id": "0x55b98bfefb30-Statement", + "statement": "0x55b98bfefb40-ActionStmt", "source": "write(6,*)'OK'" }, { - "id": "0x55dbf2ff7b40-ActionStmt", + "id": "0x55b98bfefb40-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x55dbf2ff79d0-WriteStmt" + "WriteStmt": "0x55b98bfef9d0-WriteStmt" }, { - "id": "0x55dbf2ff79d0-WriteStmt", - "iounit": "0x55dbf2ff79d0-IoUnit", - "format": "0x55dbf2ff7a00-Format", + "id": "0x55b98bfef9d0-WriteStmt", + "iounit": "0x55b98bfef9d0-IoUnit", + "format": "0x55b98bfefa00-Format", "controls": [], "items": [ - "0x55dbf2ff78f0-OutputItem" + "0x55b98bfef8f0-OutputItem" ] }, { - "id": "0x55dbf2ff79d0-IoUnit", + "id": "0x55b98bfef9d0-IoUnit", "variantKey": "Expr", - "Expr": "0x55dbf2ff7800-Expr" + "Expr": "0x55b98bfef800-Expr" }, { - "id": "0x55dbf2ff7800-Expr", + "id": "0x55b98bfef800-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55dbf2ff7820-LiteralConstant" + "LiteralConstant": "0x55b98bfef820-LiteralConstant" }, { - "id": "0x55dbf2ff7820-LiteralConstant", + "id": "0x55b98bfef820-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55dbf2ff7820-IntLiteralConstant" + "IntLiteralConstant": "0x55b98bfef820-IntLiteralConstant" }, { - "id": "0x55dbf2ff7820-IntLiteralConstant", + "id": "0x55b98bfef820-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x55dbf2ff7a00-Format", + "id": "0x55b98bfefa00-Format", "variantKey": "Star", - "Star": "0x55dbf2ff7a00-Star" + "Star": "0x55b98bfefa00-Star" }, { - "id": "0x55dbf2ff7a00-Star" + "id": "0x55b98bfefa00-Star" }, { - "id": "0x55dbf2ff78f0-OutputItem", + "id": "0x55b98bfef8f0-OutputItem", "variantKey": "Expr", - "Expr": "0x55dbf2ff78f0-Expr" + "Expr": "0x55b98bfef8f0-Expr" }, { - "id": "0x55dbf2ff78f0-Expr", + "id": "0x55b98bfef8f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55dbf2ff7910-LiteralConstant" + "LiteralConstant": "0x55b98bfef910-LiteralConstant" }, { - "id": "0x55dbf2ff7910-LiteralConstant", + "id": "0x55b98bfef910-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55dbf2ff7910-CharLiteralConstant" + "CharLiteralConstant": "0x55b98bfef910-CharLiteralConstant" }, { - "id": "0x55dbf2ff7910-CharLiteralConstant", + "id": "0x55b98bfef910-CharLiteralConstant", "string": "OK" }, { - "id": "0x55dbf2ff3b80-ExecutionPartConstruct", + "id": "0x55b98bfebb80-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55dbf2ff3b80-ExecutableConstruct" + "ExecutableConstruct": "0x55b98bfebb80-ExecutableConstruct" }, { - "id": "0x55dbf2ff3b80-ExecutableConstruct", + "id": "0x55b98bfebb80-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55dbf2ff3b80-Statement" + "Statement": "0x55b98bfebb80-Statement" }, { - "id": "0x55dbf2ff3b80-Statement", - "statement": "0x55dbf2ff3b90-ActionStmt", + "id": "0x55b98bfebb80-Statement", + "statement": "0x55b98bfebb90-ActionStmt", "label": "20", "source": "20continue" }, { - "id": "0x55dbf2ff3b90-ActionStmt", + "id": "0x55b98bfebb90-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x55dbf2ff3b90-ContinueStmt" + "ContinueStmt": "0x55b98bfebb90-ContinueStmt" }, { - "id": "0x55dbf2ff3b90-ContinueStmt" + "id": "0x55b98bfebb90-ContinueStmt" }, { - "id": "0x55dbf2ff40d0-ExecutionPartConstruct", + "id": "0x55b98bfec0d0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55dbf2ff40d0-ExecutableConstruct" + "ExecutableConstruct": "0x55b98bfec0d0-ExecutableConstruct" }, { - "id": "0x55dbf2ff40d0-ExecutableConstruct", + "id": "0x55b98bfec0d0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55dbf2ff40d0-Statement" + "Statement": "0x55b98bfec0d0-Statement" }, { - "id": "0x55dbf2ff40d0-Statement", - "statement": "0x55dbf2ff40e0-ActionStmt", + "id": "0x55b98bfec0d0-Statement", + "statement": "0x55b98bfec0e0-ActionStmt", "source": "stop" }, { - "id": "0x55dbf2ff40e0-ActionStmt", + "id": "0x55b98bfec0e0-ActionStmt", "variantKey": "StopStmt", - "StopStmt": "0x55dbf2ff7b80-StopStmt" + "StopStmt": "0x55b98bfefb80-StopStmt" }, { - "id": "0x55dbf2ff7b80-StopStmt", - "kind": "0x55dbf2ff7c68-Kind = Stop" + "id": "0x55b98bfefb80-StopStmt", + "kind": "0x55b98bfefc68-Kind = Stop" }, { - "id": "0x55dbf2ff7c68-Kind = Stop", + "id": "0x55b98bfefc68-Kind = Stop", "disambiguation": "Fortran::parser::StopStmt::Kind", "value": "Stop" }, { - "id": "0x55dbf3004c70-Statement", - "statement": "0x55dbf3004c80-EndProgramStmt", + "id": "0x55b98bffcc70-Statement", + "statement": "0x55b98bffcc80-EndProgramStmt", "source": "end" }, { - "id": "0x55dbf3004c80-EndProgramStmt" + "id": "0x55b98bffcc80-EndProgramStmt" } ], "comments": [], From 6bb2737454f47968abac78d1bfeb9ad63abfabd7 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 20 Jul 2026 16:36:53 +0100 Subject: [PATCH 039/260] Fix weaver --- .../fortran/weaverspecs/actionModel.xml | 13 +++--- .../fortran/weaverspecs/artifacts.xml | 5 ++- .../fortran/weaverspecs/joinPointModel.xml | 19 +++++--- .../specs/fortran/weaver/FortranWeaver.json | 44 +++---------------- .../fortran/weaver/importable/AstFactory.java | 6 +-- .../weaver/joinpoints/FDoConstruct.java | 9 ++-- .../weaver/joinpoints/FIfConstruct.java | 6 ++- .../weaver/joinpoints/FOmpLoopConstruct.java | 5 +-- 8 files changed, 41 insertions(+), 66 deletions(-) diff --git a/FortranWeaver/resources/fortran/weaverspecs/actionModel.xml b/FortranWeaver/resources/fortran/weaverspecs/actionModel.xml index 4691e0c4..64b7e000 100644 --- a/FortranWeaver/resources/fortran/weaverspecs/actionModel.xml +++ b/FortranWeaver/resources/fortran/weaverspecs/actionModel.xml @@ -66,7 +66,7 @@ - + @@ -78,7 +78,8 @@ - + @@ -100,13 +101,13 @@ - - + - - + \ No newline at end of file diff --git a/FortranWeaver/resources/fortran/weaverspecs/artifacts.xml b/FortranWeaver/resources/fortran/weaverspecs/artifacts.xml index ba201705..e6b2590b 100644 --- a/FortranWeaver/resources/fortran/weaverspecs/artifacts.xml +++ b/FortranWeaver/resources/fortran/weaverspecs/artifacts.xml @@ -33,7 +33,8 @@ - + @@ -85,7 +86,7 @@ - + diff --git a/FortranWeaver/resources/fortran/weaverspecs/joinPointModel.xml b/FortranWeaver/resources/fortran/weaverspecs/joinPointModel.xml index 3f293028..f396df9a 100644 --- a/FortranWeaver/resources/fortran/weaverspecs/joinPointModel.xml +++ b/FortranWeaver/resources/fortran/weaverspecs/joinPointModel.xml @@ -32,9 +32,10 @@ - + - + @@ -44,7 +45,8 @@ - + @@ -52,13 +54,16 @@ - + - + - + @@ -92,7 +97,7 @@ - + diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json index 1940bdb1..a0c97943 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json @@ -2209,8 +2209,8 @@ }, { "type": "joinpoint", - "name": "doStatement", - "extends": "executableStatement" , + "name": "doConstruct", + "extends": "joinpoint" , "tooltip": "Represents a do loop", "children": [ { @@ -2237,22 +2237,6 @@ "name": "kind" }] }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isFirst" - }] - }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isLast" - }] - }, { "type": "attribute", "tooltip": "Returns an array with the children of the node", @@ -2367,7 +2351,7 @@ "tooltip": "Performs a copy of the do statement, including its controls, but not the body", "children": [ { - "type": "doStatement", + "type": "doConstruct", "name": "copyScope" }] }, @@ -2380,7 +2364,7 @@ "name": "sameScope" }, { - "type": "doStatement", + "type": "doConstruct", "name": "loop", "defaultValue": "" }] @@ -4891,7 +4875,7 @@ { "type": "joinpoint", "name": "ifConstruct", - "extends": "executableStatement" , + "extends": "joinpoint" , "tooltip": "Represents the root of an if construct", "children": [ { @@ -4918,22 +4902,6 @@ "name": "ifThenBlock" }] }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isFirst" - }] - }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isLast" - }] - }, { "type": "attribute", "tooltip": "Returns an array with the children of the node", @@ -8679,7 +8647,7 @@ "name": "setLoop" }, { - "type": "doStatement", + "type": "doConstruct", "name": "loop", "defaultValue": "" }] diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/importable/AstFactory.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/importable/AstFactory.java index f61fb901..6571f87f 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/importable/AstFactory.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/importable/AstFactory.java @@ -18,7 +18,7 @@ import java.util.stream.Collectors; public class AstFactory { - public static AOmpLoopConstruct ompLoopConstruct(ADoStatement loop, Object[] args) { + public static AOmpLoopConstruct ompLoopConstruct(ADoConstruct loop, Object[] args) { List clauses = SpecsCollections.asListT(AOmpClause.class, args) .stream() .map(clause -> (OmpClause) clause.getNode()) @@ -108,11 +108,11 @@ public static ARangeLoopControl rangeLoopControl(ADataRef var, AExpr lower, AExp ); } - public static ADoStatement doStatement(ARangeLoopControl control) { + public static ADoConstruct doStatement(ARangeLoopControl control) { RangeLoopControl ctrl = (RangeLoopControl) control.getNode(); return FortranJoinpoints.create( FortranWeaver.getFactory().doConstruct(ctrl), - ADoStatement.class + ADoConstruct.class ); } diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FDoConstruct.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FDoConstruct.java index 167572c4..b15a7c70 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FDoConstruct.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FDoConstruct.java @@ -3,18 +3,17 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; import pt.up.fe.specs.fortran.weaver.FortranJoinpoints; -import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.ADoStatement; +import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.ADoConstruct; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AExecution; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.ALoopControl; import java.util.Objects; -public class FDoConstruct extends ADoStatement { +public class FDoConstruct extends ADoConstruct { private final DoConstruct doConstruct; public FDoConstruct(DoConstruct doConstruct) { - super(new FExecutableStatement(doConstruct)); this.doConstruct = doConstruct; } @@ -34,14 +33,14 @@ public String getKindImpl() { } @Override - public ADoStatement copyScopeImpl() { + public ADoConstruct copyScopeImpl() { DoConstruct copiedDoStmt = (DoConstruct) doConstruct.copy(); copiedDoStmt.getBody().removeChildren(); return new FDoConstruct(copiedDoStmt); } @Override - public boolean sameScopeImpl(ADoStatement loop) { + public boolean sameScopeImpl(ADoConstruct loop) { if (!Objects.equals(this.getKindImpl(), loop.getKindImpl())) { return false; } diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FIfConstruct.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FIfConstruct.java index 6d0e8357..e8390460 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FIfConstruct.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FIfConstruct.java @@ -3,14 +3,16 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.stmt.ifstmt.IfConstruct; import pt.up.fe.specs.fortran.weaver.FortranJoinpoints; -import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.*; +import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AElseBlock; +import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AElseIfBlock; +import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AIfConstruct; +import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AIfThenBlock; public class FIfConstruct extends AIfConstruct { public final IfConstruct ifConstruct; public FIfConstruct(IfConstruct ifConstruct) { - super(new FExecutableStatement(ifConstruct)); this.ifConstruct = ifConstruct; } diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FOmpLoopConstruct.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FOmpLoopConstruct.java index bd6471f6..b23f4813 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FOmpLoopConstruct.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FOmpLoopConstruct.java @@ -3,7 +3,7 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.omp.OmpLoopConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; -import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.ADoStatement; +import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.ADoConstruct; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AOmpLoopConstruct; public class FOmpLoopConstruct extends AOmpLoopConstruct { @@ -15,8 +15,7 @@ public FOmpLoopConstruct(OmpLoopConstruct ompLoopConstruct) { this.ompLoopConstruct = ompLoopConstruct; } - @Override - public void setLoopImpl(ADoStatement loop) { + public void setLoopImpl(ADoConstruct loop) { ompLoopConstruct.setLoop((DoConstruct) loop.getNode()); } From 06fb222e489e0d63c782a37eebdd77374d46e05f Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 20 Jul 2026 16:37:20 +0100 Subject: [PATCH 040/260] Fix Fortran form used on tests --- .../up/fe/specs/fortran/parser/FortranParserTest.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java index 9f5ea146..611496b2 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -61,9 +61,14 @@ private static void test(String resource, BiFunction "f90"); + } + + var expectedResourceName = BASE_RESOURCE + SpecsIo.removeExtension(resource) + ".expected." + extension; + if (!SpecsIo.hasResource(expectedResourceName)) { + fail("Could not find expected output resource '" + expectedResourceName + "'. Generated contents:\n" + code); } // Compare resource contents with code, normalized From d5199ade83a2e2d0c6041aa2caee675d5f18973e Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 20 Jul 2026 17:08:57 +0100 Subject: [PATCH 041/260] Change label justification in fixed form --- .../src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java | 3 ++- .../fortran/parser/fujitsu/0001/0001_0000.expected.f | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java index d2ca1a01..5f4d0355 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java @@ -71,6 +71,7 @@ private String getLabelPrefix() { // Otherwise, fixed form (AKA legacy Fortran) -> first 5 columns are for labels, with one final separation // column, and only then can statements begin - return (labelOpt.map(LabelDecl::getCode).orElse("") + " ").substring(0, 6); + var labelText = labelOpt.map(LabelDecl::getCode).orElse(""); + return " ".repeat(5 - labelText.length()) + labelText + " "; } } diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f index 0d58e79d..e39f0b6b 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f @@ -9,10 +9,10 @@ WRITE(6, *) "ELEMENT NUMBER = A(", i, ")" GO TO 20 END IF -10 CONTINUE + 10 CONTINUE WRITE(6, *) "OK" -20 CONTINUE + 20 CONTINUE STOP END PROGRAM From fcbec2edb0640717b24ff6477cdf41d41194715b Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 20 Jul 2026 17:13:37 +0100 Subject: [PATCH 042/260] Add new Fujitsu test case --- .../parser/fujitsu/0001/0001_0007.expected.f | 50 + .../fortran/parser/fujitsu/0001/0001_0007.f | 50 + .../parser/fujitsu/0001/0001_0007.json | 3679 +++++++++++++++++ .../fortran/parser/FortranParserTest.java | 12 + 4 files changed, 3791 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.expected.f create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.f create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.json diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.expected.f b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.expected.f new file mode 100644 index 00000000..b8e996fe --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.expected.f @@ -0,0 +1,50 @@ + INTEGER :: A(1000), B(1000), C(1000), CODE + DATA A/1000*0/, B/1000*0/, C/1000*0/ +C + CODE = 0 + CALL SUB1(A, B, C, 1000, CODE) +C + IF (CODE == 0) WRITE(6,*) 'OK' +C + STOP + END PROGRAM +C + SUBROUTINE SUB1(A, B, C, N, CODE) + INTEGER A(N), B(N), C(N), CODE +C + A(1:N) = B(1:N) + 1 + B(1:N) = B(1:N) + 1 + C(1:N) = C(1:N) + 1 +C + DO 10 I = 1,1000 + IF(A(I) /= 1) THEN + WRITE(6,*) 'NG' + WRITE(6,*) 'ELEMENT NUMBER = A(',I,')' + CODE = 1 + GO TO 20 + END IF + 10 CONTINUE +C + 20 CONTINUE + DO 30 I=1,1000 + IF (B(I) /= 1) THEN + WRITE(6,*) 'NG' + WRITE(6,*) 'ELEMENT NUMBER = B(',I,')' + CODE = 1 + GO TO 40 + ENDIF + 30 CONTINUE +C + 40 CONTINUE + DO 50 I=1,1000 + IF(C(I).NE.1) THEN + WRITE(6,*) 'NG' + WRITE(6,*) 'ELEMENT NUMBER = C(',I,')' + CODE = 1 + GO TO 60 + END IF + 50 CONTINUE +C + 60 CONTINUE + RETURN + END SUBROUTINE \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.f b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.f new file mode 100644 index 00000000..9fc2caf0 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.f @@ -0,0 +1,50 @@ + INTEGER A(1000),B(1000),C(1000),CODE + DATA A/1000*0/,B/1000*0/,C/1000*0/ +C + CODE = 0 + CALL SUB1(A,B,C,1000,CODE) +C + IF(CODE.EQ.0) WRITE(6,*) 'OK' +C + STOP + END +C + SUBROUTINE SUB1(A,B,C,N,CODE) + INTEGER A(N),B(N),C(N),CODE +C + A(1:N) = B(1:N) + 1 + B(1:N) = B(1:N) + 1 + C(1:N) = C(1:N) + 1 +C + DO 10 I=1,1000 + IF(A(I).NE.1) THEN + WRITE(6,*) 'NG' + WRITE(6,*) 'ELEMENT NUMBER = A(',I,')' + CODE = 1 + GO TO 20 + ENDIF + 10 CONTINUE +C + 20 CONTINUE + DO 30 I=1,1000 + IF(B(I).NE.1) THEN + WRITE(6,*) 'NG' + WRITE(6,*) 'ELEMENT NUMBER = B(',I,')' + CODE = 1 + GO TO 40 + ENDIF + 30 CONTINUE +C + 40 CONTINUE + DO 50 I=1,1000 + IF(C(I).NE.1) THEN + WRITE(6,*) 'NG' + WRITE(6,*) 'ELEMENT NUMBER = C(',I,')' + CODE = 1 + GO TO 60 + ENDIF + 50 CONTINUE +C + 60 CONTINUE + RETURN + END diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.json b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.json new file mode 100644 index 00000000..172c2a13 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.json @@ -0,0 +1,3679 @@ +{ + "fileExtension": "f", + "nodes": [ + { + "id": "0x55ddae699f00-Program", + "ProgramUnit": [ + "0x55ddae6d60a0-ProgramUnit", + "0x55ddae6d5f10-ProgramUnit" + ] + }, + { + "id": "0x55ddae6d60a0-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x55ddae6d6cd0-MainProgram" + }, + { + "id": "0x55ddae6d6cd0-MainProgram", + "SpecificationPart": "0x55ddae6d6d70-SpecificationPart", + "ExecutionPart": "0x55ddae6d6d58-ExecutionPart", + "Statement": "0x55ddae6d6cd0-Statement" + }, + { + "id": "0x55ddae6d6d70-SpecificationPart", + "ImplicitPart": "0x55ddae6d6d88-ImplicitPart", + "DeclarationConstruct": [ + "0x55ddae6c6010-DeclarationConstruct", + "0x55ddae6c7aa0-DeclarationConstruct" + ] + }, + { + "id": "0x55ddae6d6d88-ImplicitPart" + }, + { + "id": "0x55ddae6c6010-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55ddae6c6010-SpecificationConstruct" + }, + { + "id": "0x55ddae6c6010-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55ddae6c6010-Statement" + }, + { + "id": "0x55ddae6c6010-Statement", + "statement": "0x55ddae6d6b40-TypeDeclarationStmt", + "source": "integera(1000),b(1000),c(1000),code" + }, + { + "id": "0x55ddae6d6b40-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55ddae6d6b70-DeclarationTypeSpec", + "EntityDecl": [ + "0x55ddae6c5e40-EntityDecl", + "0x55ddae6c6620-EntityDecl", + "0x55ddae6d67b0-EntityDecl", + "0x55ddae6c5d50-EntityDecl" + ] + }, + { + "id": "0x55ddae6d6b70-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55ddae6d6b70-IntrinsicTypeSpec" + }, + { + "id": "0x55ddae6d6b70-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55ddae6d6b70-IntegerTypeSpec" + }, + { + "id": "0x55ddae6d6b70-IntegerTypeSpec" + }, + { + "id": "0x55ddae6c5e40-EntityDecl", + "Name": "0x55ddae6c5ef8-Name", + "ArraySpec": "0x55ddae6c5ec0-ArraySpec" + }, + { + "id": "0x55ddae6c5ef8-Name", + "source": "a" + }, + { + "id": "0x55ddae6c5ec0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x55ddae6d8ba0-ExplicitShapeSpec" + ] + }, + { + "id": "0x55ddae6d8ba0-ExplicitShapeSpec", + "upper_bound": "0x55ddae6d8ba0-SpecificationExpr" + }, + { + "id": "0x55ddae6d8ba0-SpecificationExpr", + "Expr": "0x55ddae639790-Expr" + }, + { + "id": "0x55ddae639790-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6397b0-LiteralConstant" + }, + { + "id": "0x55ddae6397b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6397b0-IntLiteralConstant" + }, + { + "id": "0x55ddae6397b0-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x55ddae6c6620-EntityDecl", + "Name": "0x55ddae6c66d8-Name", + "ArraySpec": "0x55ddae6c66a0-ArraySpec" + }, + { + "id": "0x55ddae6c66d8-Name", + "source": "b" + }, + { + "id": "0x55ddae6c66a0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x55ddae6d8bd0-ExplicitShapeSpec" + ] + }, + { + "id": "0x55ddae6d8bd0-ExplicitShapeSpec", + "upper_bound": "0x55ddae6d8bd0-SpecificationExpr" + }, + { + "id": "0x55ddae6d8bd0-SpecificationExpr", + "Expr": "0x55ddae64f1d0-Expr" + }, + { + "id": "0x55ddae64f1d0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae64f1f0-LiteralConstant" + }, + { + "id": "0x55ddae64f1f0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae64f1f0-IntLiteralConstant" + }, + { + "id": "0x55ddae64f1f0-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x55ddae6d67b0-EntityDecl", + "Name": "0x55ddae6d6868-Name", + "ArraySpec": "0x55ddae6d6830-ArraySpec" + }, + { + "id": "0x55ddae6d6868-Name", + "source": "c" + }, + { + "id": "0x55ddae6d6830-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x55ddae6d8c00-ExplicitShapeSpec" + ] + }, + { + "id": "0x55ddae6d8c00-ExplicitShapeSpec", + "upper_bound": "0x55ddae6d8c00-SpecificationExpr" + }, + { + "id": "0x55ddae6d8c00-SpecificationExpr", + "Expr": "0x55ddae6d66c0-Expr" + }, + { + "id": "0x55ddae6d66c0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6d66e0-LiteralConstant" + }, + { + "id": "0x55ddae6d66e0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6d66e0-IntLiteralConstant" + }, + { + "id": "0x55ddae6d66e0-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x55ddae6c5d50-EntityDecl", + "Name": "0x55ddae6c5e08-Name" + }, + { + "id": "0x55ddae6c5e08-Name", + "source": "code" + }, + { + "id": "0x55ddae6c7aa0-DeclarationConstruct", + "variantKey": "Statement", + "Statement": "0x55ddae6c7aa0-Statement" + }, + { + "id": "0x55ddae6c7aa0-Statement", + "statement": "0x55ddae6d8af0-DataStmt", + "source": "dataa/1000*0/,b/1000*0/,c/1000*0/" + }, + { + "id": "0x55ddae6d8af0-DataStmt", + "DataStmtSet": [ + "0x55ddae6d6ac0-DataStmtSet", + "0x55ddae6d01e0-DataStmtSet", + "0x55ddae6ddb30-DataStmtSet" + ] + }, + { + "id": "0x55ddae6d6ac0-DataStmtSet", + "DataStmtObject": [ + "0x55ddae6c70b0-DataStmtObject" + ], + "DataStmtValue": [ + "0x55ddae6c6170-DataStmtValue" + ] + }, + { + "id": "0x55ddae6c70b0-DataStmtObject", + "variantKey": "Variable", + "Variable": "0x55ddae6d8c40-Variable" + }, + { + "id": "0x55ddae6d8c40-Variable", + "variantKey": "Designator", + "Designator": "0x55ddae6984d0-Designator" + }, + { + "id": "0x55ddae6984d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6984e0-DataRef" + }, + { + "id": "0x55ddae6984e0-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6984e0-Name" + }, + { + "id": "0x55ddae6984e0-Name", + "source": "a" + }, + { + "id": "0x55ddae6c6170-DataStmtValue", + "DataStmtRepeat": "0x55ddae6c6248-DataStmtRepeat", + "DataStmtConstant": "0x55ddae6c6178-DataStmtConstant" + }, + { + "id": "0x55ddae6c6248-DataStmtRepeat", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6c6248-IntLiteralConstant" + }, + { + "id": "0x55ddae6c6248-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x55ddae6c6178-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6c6198-LiteralConstant" + }, + { + "id": "0x55ddae6c6198-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6c6198-IntLiteralConstant" + }, + { + "id": "0x55ddae6c6198-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55ddae6d01e0-DataStmtSet", + "DataStmtObject": [ + "0x55ddae6c6840-DataStmtObject" + ], + "DataStmtValue": [ + "0x55ddae6c6960-DataStmtValue" + ] + }, + { + "id": "0x55ddae6c6840-DataStmtObject", + "variantKey": "Variable", + "Variable": "0x55ddae6d8d50-Variable" + }, + { + "id": "0x55ddae6d8d50-Variable", + "variantKey": "Designator", + "Designator": "0x55ddae6c6300-Designator" + }, + { + "id": "0x55ddae6c6300-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6c6310-DataRef" + }, + { + "id": "0x55ddae6c6310-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6c6310-Name" + }, + { + "id": "0x55ddae6c6310-Name", + "source": "b" + }, + { + "id": "0x55ddae6c6960-DataStmtValue", + "DataStmtRepeat": "0x55ddae6c6a38-DataStmtRepeat", + "DataStmtConstant": "0x55ddae6c6968-DataStmtConstant" + }, + { + "id": "0x55ddae6c6a38-DataStmtRepeat", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6c6a38-IntLiteralConstant" + }, + { + "id": "0x55ddae6c6a38-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x55ddae6c6968-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6c6988-LiteralConstant" + }, + { + "id": "0x55ddae6c6988-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6c6988-IntLiteralConstant" + }, + { + "id": "0x55ddae6c6988-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55ddae6ddb30-DataStmtSet", + "DataStmtObject": [ + "0x55ddae6c68d0-DataStmtObject" + ], + "DataStmtValue": [ + "0x55ddae6c75a0-DataStmtValue" + ] + }, + { + "id": "0x55ddae6c68d0-DataStmtObject", + "variantKey": "Variable", + "Variable": "0x55ddae6d8d80-Variable" + }, + { + "id": "0x55ddae6d8d80-Variable", + "variantKey": "Designator", + "Designator": "0x55ddae6c6d10-Designator" + }, + { + "id": "0x55ddae6c6d10-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6c6d20-DataRef" + }, + { + "id": "0x55ddae6c6d20-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6c6d20-Name" + }, + { + "id": "0x55ddae6c6d20-Name", + "source": "c" + }, + { + "id": "0x55ddae6c75a0-DataStmtValue", + "DataStmtRepeat": "0x55ddae6c7678-DataStmtRepeat", + "DataStmtConstant": "0x55ddae6c75a8-DataStmtConstant" + }, + { + "id": "0x55ddae6c7678-DataStmtRepeat", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6c7678-IntLiteralConstant" + }, + { + "id": "0x55ddae6c7678-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x55ddae6c75a8-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6c75c8-LiteralConstant" + }, + { + "id": "0x55ddae6c75c8-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6c75c8-IntLiteralConstant" + }, + { + "id": "0x55ddae6c75c8-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55ddae6d6d58-ExecutionPart", + "ExecutionPartConstruct": [ + "0x55ddae6c6df0-ExecutionPartConstruct", + "0x55ddae6c94a0-ExecutionPartConstruct", + "0x55ddae6c8150-ExecutionPartConstruct", + "0x55ddae6c89d0-ExecutionPartConstruct" + ] + }, + { + "id": "0x55ddae6d6d58-ExecutionPartConstruct" + }, + { + "id": "0x55ddae6c6df0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6c6df0-ExecutableConstruct" + }, + { + "id": "0x55ddae6c6df0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ddae6c6df0-Statement" + }, + { + "id": "0x55ddae6c6df0-Statement", + "statement": "0x55ddae6c6e00-ActionStmt", + "source": "code=0" + }, + { + "id": "0x55ddae6c6e00-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55ddae6a7cf0-AssignmentStmt" + }, + { + "id": "0x55ddae6a7cf0-AssignmentStmt", + "Variable": "0x55ddae6a7dd0-Variable", + "Expr": "0x55ddae6a7d00-Expr" + }, + { + "id": "0x55ddae6a7dd0-Variable", + "variantKey": "Designator", + "Designator": "0x55ddae6a7100-Designator" + }, + { + "id": "0x55ddae6a7100-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6a7110-DataRef" + }, + { + "id": "0x55ddae6a7110-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6a7110-Name" + }, + { + "id": "0x55ddae6a7110-Name", + "source": "code" + }, + { + "id": "0x55ddae6a7d00-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6a7d20-LiteralConstant" + }, + { + "id": "0x55ddae6a7d20-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6a7d20-IntLiteralConstant" + }, + { + "id": "0x55ddae6a7d20-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55ddae6c94a0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6c94a0-ExecutableConstruct" + }, + { + "id": "0x55ddae6c94a0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ddae6c94a0-Statement" + }, + { + "id": "0x55ddae6c94a0-Statement", + "statement": "0x55ddae6c94b0-ActionStmt", + "source": "callsub1(a,b,c,1000,code)" + }, + { + "id": "0x55ddae6c94b0-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x55ddae6d0e70-CallStmt" + }, + { + "id": "0x55ddae6d0e70-CallStmt", + "call": "0x55ddae6d0e70-Call" + }, + { + "id": "0x55ddae6d0e70-Call", + "ProcedureDesignator": "0x55ddae6d0e88-ProcedureDesignator", + "ActualArgSpec": [ + "0x55ddae6c8f50-ActualArgSpec", + "0x55ddae6c8e40-ActualArgSpec", + "0x55ddae6c8d30-ActualArgSpec", + "0x55ddae6c8c20-ActualArgSpec", + "0x55ddae6c8b10-ActualArgSpec" + ] + }, + { + "id": "0x55ddae6d0e88-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55ddae6d0e88-Name" + }, + { + "id": "0x55ddae6d0e88-Name", + "source": "sub1" + }, + { + "id": "0x55ddae6c8f50-ActualArgSpec", + "ActualArg": "0x55ddae6c8f50-ActualArg" + }, + { + "id": "0x55ddae6c8f50-ActualArg", + "variantKey": "Expr", + "Expr": "0x55ddae6c88e0-Expr" + }, + { + "id": "0x55ddae6c88e0-Expr", + "variantKey": "Designator", + "Designator": "0x55ddae6c78f0-Designator" + }, + { + "id": "0x55ddae6c78f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6c7900-DataRef" + }, + { + "id": "0x55ddae6c7900-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6c7900-Name" + }, + { + "id": "0x55ddae6c7900-Name", + "source": "a" + }, + { + "id": "0x55ddae6c8e40-ActualArgSpec", + "ActualArg": "0x55ddae6c8e40-ActualArg" + }, + { + "id": "0x55ddae6c8e40-ActualArg", + "variantKey": "Expr", + "Expr": "0x55ddae6c7c90-Expr" + }, + { + "id": "0x55ddae6c7c90-Expr", + "variantKey": "Designator", + "Designator": "0x55ddae6a6d90-Designator" + }, + { + "id": "0x55ddae6a6d90-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6a6da0-DataRef" + }, + { + "id": "0x55ddae6a6da0-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6a6da0-Name" + }, + { + "id": "0x55ddae6a6da0-Name", + "source": "b" + }, + { + "id": "0x55ddae6c8d30-ActualArgSpec", + "ActualArg": "0x55ddae6c8d30-ActualArg" + }, + { + "id": "0x55ddae6c8d30-ActualArg", + "variantKey": "Expr", + "Expr": "0x55ddae6c8330-Expr" + }, + { + "id": "0x55ddae6c8330-Expr", + "variantKey": "Designator", + "Designator": "0x55ddae6c6b60-Designator" + }, + { + "id": "0x55ddae6c6b60-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6c6b70-DataRef" + }, + { + "id": "0x55ddae6c6b70-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6c6b70-Name" + }, + { + "id": "0x55ddae6c6b70-Name", + "source": "c" + }, + { + "id": "0x55ddae6c8c20-ActualArgSpec", + "ActualArg": "0x55ddae6c8c20-ActualArg" + }, + { + "id": "0x55ddae6c8c20-ActualArg", + "variantKey": "Expr", + "Expr": "0x55ddae6c7130-Expr" + }, + { + "id": "0x55ddae6c7130-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6c7150-LiteralConstant" + }, + { + "id": "0x55ddae6c7150-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6c7150-IntLiteralConstant" + }, + { + "id": "0x55ddae6c7150-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x55ddae6c8b10-ActualArgSpec", + "ActualArg": "0x55ddae6c8b10-ActualArg" + }, + { + "id": "0x55ddae6c8b10-ActualArg", + "variantKey": "Expr", + "Expr": "0x55ddae6c86a0-Expr" + }, + { + "id": "0x55ddae6c86a0-Expr", + "variantKey": "Designator", + "Designator": "0x55ddae6c92f0-Designator" + }, + { + "id": "0x55ddae6c92f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6c9300-DataRef" + }, + { + "id": "0x55ddae6c9300-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6c9300-Name" + }, + { + "id": "0x55ddae6c9300-Name", + "source": "code" + }, + { + "id": "0x55ddae6c8150-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6c8150-ExecutableConstruct" + }, + { + "id": "0x55ddae6c8150-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ddae6c8150-Statement" + }, + { + "id": "0x55ddae6c8150-Statement", + "statement": "0x55ddae6c8160-ActionStmt", + "source": "if(code.eq.0)write(6,*)'OK'" + }, + { + "id": "0x55ddae6c8160-ActionStmt", + "variantKey": "IfStmt", + "IfStmt": "0x55ddae6d8dd0-IfStmt" + }, + { + "id": "0x55ddae6d8dd0-IfStmt", + "Expr": "0x55ddae6c95d0-Expr", + "UnlabeledStatement": "0x55ddae6d8dd0-UnlabeledStatement" + }, + { + "id": "0x55ddae6c95d0-Expr", + "variantKey": "EQ", + "EQ": "0x55ddae6c95f0-EQ" + }, + { + "id": "0x55ddae6c95f0-EQ", + "left": "0x55ddae6c94f0-Expr", + "right": "0x55ddae6c96b0-Expr", + "op": "EQ" + }, + { + "id": "0x55ddae6c94f0-Expr", + "variantKey": "Designator", + "Designator": "0x55ddae6c8410-Designator" + }, + { + "id": "0x55ddae6c8410-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6c8420-DataRef" + }, + { + "id": "0x55ddae6c8420-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6c8420-Name" + }, + { + "id": "0x55ddae6c8420-Name", + "source": "code" + }, + { + "id": "0x55ddae6c96b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6c96d0-LiteralConstant" + }, + { + "id": "0x55ddae6c96d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6c96d0-IntLiteralConstant" + }, + { + "id": "0x55ddae6c96d0-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55ddae6d8dd0-UnlabeledStatement", + "statement": "0x55ddae6d8de0-ActionStmt", + "source": "write(6,*)'OK'" + }, + { + "id": "0x55ddae6d8de0-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x55ddae6cacd0-WriteStmt" + }, + { + "id": "0x55ddae6cacd0-WriteStmt", + "iounit": "0x55ddae6cacd0-IoUnit", + "format": "0x55ddae6cad00-Format", + "controls": [], + "items": [ + "0x55ddae6cab80-OutputItem" + ] + }, + { + "id": "0x55ddae6cacd0-IoUnit", + "variantKey": "Expr", + "Expr": "0x55ddae6c98a0-Expr" + }, + { + "id": "0x55ddae6c98a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6c98c0-LiteralConstant" + }, + { + "id": "0x55ddae6c98c0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6c98c0-IntLiteralConstant" + }, + { + "id": "0x55ddae6c98c0-IntLiteralConstant", + "CharBlock": "6" + }, + { + "id": "0x55ddae6cad00-Format", + "variantKey": "Star", + "Star": "0x55ddae6cad00-Star" + }, + { + "id": "0x55ddae6cad00-Star" + }, + { + "id": "0x55ddae6cab80-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ddae6cab80-Expr" + }, + { + "id": "0x55ddae6cab80-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6caba0-LiteralConstant" + }, + { + "id": "0x55ddae6caba0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55ddae6caba0-CharLiteralConstant" + }, + { + "id": "0x55ddae6caba0-CharLiteralConstant", + "string": "OK" + }, + { + "id": "0x55ddae6c89d0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6c89d0-ExecutableConstruct" + }, + { + "id": "0x55ddae6c89d0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ddae6c89d0-Statement" + }, + { + "id": "0x55ddae6c89d0-Statement", + "statement": "0x55ddae6c89e0-ActionStmt", + "source": "stop" + }, + { + "id": "0x55ddae6c89e0-ActionStmt", + "variantKey": "StopStmt", + "StopStmt": "0x55ddae6caf00-StopStmt" + }, + { + "id": "0x55ddae6caf00-StopStmt", + "kind": "0x55ddae6cafe8-Kind = Stop" + }, + { + "id": "0x55ddae6cafe8-Kind = Stop", + "disambiguation": "Fortran::parser::StopStmt::Kind", + "value": "Stop" + }, + { + "id": "0x55ddae6d6cd0-Statement", + "statement": "0x55ddae6d6ce0-EndProgramStmt", + "source": "end" + }, + { + "id": "0x55ddae6d6ce0-EndProgramStmt" + }, + { + "id": "0x55ddae6d5f10-ProgramUnit", + "variantKey": "SubroutineSubprogram", + "SubroutineSubprogram": "0x55ddae6e1df0-SubroutineSubprogram" + }, + { + "id": "0x55ddae6e1df0-SubroutineSubprogram", + "Statement": "0x55ddae6e1f38-Statement", + "SpecificationPart": "0x55ddae6e1e90-SpecificationPart", + "ExecutionPart": "0x55ddae6e1e78-ExecutionPart", + "Statement": "0x55ddae6e1df0-Statement" + }, + { + "id": "0x55ddae6e1f38-Statement", + "statement": "0x55ddae6e1f48-SubroutineStmt", + "source": "subroutinesub1(a,b,c,n,code)" + }, + { + "id": "0x55ddae6e1f48-SubroutineStmt", + "Name": "0x55ddae6e1f80-Name", + "DummyArg": [ + "0x55ddae6d8c80-DummyArg", + "0x55ddae6d6310-DummyArg", + "0x55ddae6d7f90-DummyArg", + "0x55ddae6d8050-DummyArg", + "0x55ddae6d8450-DummyArg" + ] + }, + { + "id": "0x55ddae6e1f80-Name", + "source": "sub1" + }, + { + "id": "0x55ddae6d8c80-DummyArg", + "variantKey": "Name", + "Name": "0x55ddae6d8c80-Name" + }, + { + "id": "0x55ddae6d8c80-Name", + "source": "a" + }, + { + "id": "0x55ddae6d6310-DummyArg", + "variantKey": "Name", + "Name": "0x55ddae6d6310-Name" + }, + { + "id": "0x55ddae6d6310-Name", + "source": "b" + }, + { + "id": "0x55ddae6d7f90-DummyArg", + "variantKey": "Name", + "Name": "0x55ddae6d7f90-Name" + }, + { + "id": "0x55ddae6d7f90-Name", + "source": "c" + }, + { + "id": "0x55ddae6d8050-DummyArg", + "variantKey": "Name", + "Name": "0x55ddae6d8050-Name" + }, + { + "id": "0x55ddae6d8050-Name", + "source": "n" + }, + { + "id": "0x55ddae6d8450-DummyArg", + "variantKey": "Name", + "Name": "0x55ddae6d8450-Name" + }, + { + "id": "0x55ddae6d8450-Name", + "source": "code" + }, + { + "id": "0x55ddae6e1e90-SpecificationPart", + "ImplicitPart": "0x55ddae6e1ea8-ImplicitPart", + "DeclarationConstruct": [ + "0x55ddae6cd8a0-DeclarationConstruct" + ] + }, + { + "id": "0x55ddae6e1ea8-ImplicitPart" + }, + { + "id": "0x55ddae6cd8a0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55ddae6cd8a0-SpecificationConstruct" + }, + { + "id": "0x55ddae6cd8a0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55ddae6cd8a0-Statement" + }, + { + "id": "0x55ddae6cd8a0-Statement", + "statement": "0x55ddae6cb240-TypeDeclarationStmt", + "source": "integera(n),b(n),c(n),code" + }, + { + "id": "0x55ddae6cb240-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55ddae6cb270-DeclarationTypeSpec", + "EntityDecl": [ + "0x55ddae6cd7b0-EntityDecl", + "0x55ddae6c8790-EntityDecl", + "0x55ddae6cb3e0-EntityDecl", + "0x55ddae6cb4d0-EntityDecl" + ] + }, + { + "id": "0x55ddae6cb270-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55ddae6cb270-IntrinsicTypeSpec" + }, + { + "id": "0x55ddae6cb270-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55ddae6cb270-IntegerTypeSpec" + }, + { + "id": "0x55ddae6cb270-IntegerTypeSpec" + }, + { + "id": "0x55ddae6cd7b0-EntityDecl", + "Name": "0x55ddae6cd868-Name", + "ArraySpec": "0x55ddae6cd830-ArraySpec" + }, + { + "id": "0x55ddae6cd868-Name", + "source": "a" + }, + { + "id": "0x55ddae6cd830-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x55ddae6d56f0-ExplicitShapeSpec" + ] + }, + { + "id": "0x55ddae6d56f0-ExplicitShapeSpec", + "upper_bound": "0x55ddae6d56f0-SpecificationExpr" + }, + { + "id": "0x55ddae6d56f0-SpecificationExpr", + "Expr": "0x55ddae6cbbe0-Expr" + }, + { + "id": "0x55ddae6cbbe0-Expr", + "variantKey": "Designator", + "Designator": "0x55ddae6c93c0-Designator" + }, + { + "id": "0x55ddae6c93c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6c93d0-DataRef" + }, + { + "id": "0x55ddae6c93d0-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6c93d0-Name" + }, + { + "id": "0x55ddae6c93d0-Name", + "source": "n" + }, + { + "id": "0x55ddae6c8790-EntityDecl", + "Name": "0x55ddae6c8848-Name", + "ArraySpec": "0x55ddae6c8810-ArraySpec" + }, + { + "id": "0x55ddae6c8848-Name", + "source": "b" + }, + { + "id": "0x55ddae6c8810-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x55ddae6d58e0-ExplicitShapeSpec" + ] + }, + { + "id": "0x55ddae6d58e0-ExplicitShapeSpec", + "upper_bound": "0x55ddae6d58e0-SpecificationExpr" + }, + { + "id": "0x55ddae6d58e0-SpecificationExpr", + "Expr": "0x55ddae64f0b0-Expr" + }, + { + "id": "0x55ddae64f0b0-Expr", + "variantKey": "Designator", + "Designator": "0x55ddae6c6a90-Designator" + }, + { + "id": "0x55ddae6c6a90-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6c6aa0-DataRef" + }, + { + "id": "0x55ddae6c6aa0-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6c6aa0-Name" + }, + { + "id": "0x55ddae6c6aa0-Name", + "source": "n" + }, + { + "id": "0x55ddae6cb3e0-EntityDecl", + "Name": "0x55ddae6cb498-Name", + "ArraySpec": "0x55ddae6cb460-ArraySpec" + }, + { + "id": "0x55ddae6cb498-Name", + "source": "c" + }, + { + "id": "0x55ddae6cb460-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x55ddae6d5990-ExplicitShapeSpec" + ] + }, + { + "id": "0x55ddae6d5990-ExplicitShapeSpec", + "upper_bound": "0x55ddae6d5990-SpecificationExpr" + }, + { + "id": "0x55ddae6d5990-SpecificationExpr", + "Expr": "0x55ddae6cb090-Expr" + }, + { + "id": "0x55ddae6cb090-Expr", + "variantKey": "Designator", + "Designator": "0x55ddae6a7160-Designator" + }, + { + "id": "0x55ddae6a7160-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6a7170-DataRef" + }, + { + "id": "0x55ddae6a7170-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6a7170-Name" + }, + { + "id": "0x55ddae6a7170-Name", + "source": "n" + }, + { + "id": "0x55ddae6cb4d0-EntityDecl", + "Name": "0x55ddae6cb588-Name" + }, + { + "id": "0x55ddae6cb588-Name", + "source": "code" + }, + { + "id": "0x55ddae6e1e78-ExecutionPart", + "ExecutionPartConstruct": [ + "0x55ddae6ce460-ExecutionPartConstruct", + "0x55ddae6cec90-ExecutionPartConstruct", + "0x55ddae6cf4c0-ExecutionPartConstruct", + "0x55ddae6cf180-ExecutionPartConstruct", + "0x55ddae6cf240-ExecutionPartConstruct", + "0x55ddae6cbfb0-ExecutionPartConstruct", + "0x55ddae6cd150-ExecutionPartConstruct", + "0x55ddae6cc1d0-ExecutionPartConstruct", + "0x55ddae6c6fa0-ExecutionPartConstruct", + "0x55ddae6c7280-ExecutionPartConstruct" + ] + }, + { + "id": "0x55ddae6e1e78-ExecutionPartConstruct" + }, + { + "id": "0x55ddae6ce460-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6ce460-ExecutableConstruct" + }, + { + "id": "0x55ddae6ce460-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ddae6ce460-Statement" + }, + { + "id": "0x55ddae6ce460-Statement", + "statement": "0x55ddae6ce470-ActionStmt", + "source": "a(1:n)=b(1:n)+1" + }, + { + "id": "0x55ddae6ce470-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55ddae6c9790-AssignmentStmt" + }, + { + "id": "0x55ddae6c9790-AssignmentStmt", + "Variable": "0x55ddae6c9870-Variable", + "Expr": "0x55ddae6c97a0-Expr" + }, + { + "id": "0x55ddae6c9870-Variable", + "variantKey": "Designator", + "Designator": "0x55ddae6c62a0-Designator" + }, + { + "id": "0x55ddae6c62a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6c62b0-DataRef" + }, + { + "id": "0x55ddae6c62b0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55ddae6d8d10-ArrayElement" + }, + { + "id": "0x55ddae6d8d10-ArrayElement", + "base": "0x55ddae6d8d10-DataRef", + "subscripts": [ + "0x55ddae6d0c50-SectionSubscript" + ] + }, + { + "id": "0x55ddae6d8d10-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6d8d10-Name" + }, + { + "id": "0x55ddae6d8d10-Name", + "source": "a" + }, + { + "id": "0x55ddae6d0c50-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x55ddae6d0c50-SubscriptTriplet" + }, + { + "id": "0x55ddae6d0c50-SubscriptTriplet", + "start": "0x55ddae6ce230-Expr", + "end": "0x55ddae6ce310-Expr" + }, + { + "id": "0x55ddae6ce230-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6ce250-LiteralConstant" + }, + { + "id": "0x55ddae6ce250-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6ce250-IntLiteralConstant" + }, + { + "id": "0x55ddae6ce250-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55ddae6ce310-Expr", + "variantKey": "Designator", + "Designator": "0x55ddae6ccd20-Designator" + }, + { + "id": "0x55ddae6ccd20-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6ccd30-DataRef" + }, + { + "id": "0x55ddae6ccd30-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6ccd30-Name" + }, + { + "id": "0x55ddae6ccd30-Name", + "source": "n" + }, + { + "id": "0x55ddae6c97a0-Expr", + "variantKey": "Add", + "Add": "0x55ddae6c97c0-Add" + }, + { + "id": "0x55ddae6c97c0-Add", + "left": "0x55ddae6cd8f0-Expr", + "right": "0x55ddae6cca40-Expr", + "op": "ADD" + }, + { + "id": "0x55ddae6cd8f0-Expr", + "variantKey": "Designator", + "Designator": "0x55ddae6c76d0-Designator" + }, + { + "id": "0x55ddae6c76d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6c76e0-DataRef" + }, + { + "id": "0x55ddae6c76e0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55ddae6d8cd0-ArrayElement" + }, + { + "id": "0x55ddae6d8cd0-ArrayElement", + "base": "0x55ddae6d8cd0-DataRef", + "subscripts": [ + "0x55ddae6d6a30-SectionSubscript" + ] + }, + { + "id": "0x55ddae6d8cd0-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6d8cd0-Name" + }, + { + "id": "0x55ddae6d8cd0-Name", + "source": "b" + }, + { + "id": "0x55ddae6d6a30-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x55ddae6d6a30-SubscriptTriplet" + }, + { + "id": "0x55ddae6d6a30-SubscriptTriplet", + "start": "0x55ddae6ce030-Expr", + "end": "0x55ddae6ccb80-Expr" + }, + { + "id": "0x55ddae6ce030-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6ce050-LiteralConstant" + }, + { + "id": "0x55ddae6ce050-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6ce050-IntLiteralConstant" + }, + { + "id": "0x55ddae6ce050-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55ddae6ccb80-Expr", + "variantKey": "Designator", + "Designator": "0x55ddae6d6890-Designator" + }, + { + "id": "0x55ddae6d6890-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6d68a0-DataRef" + }, + { + "id": "0x55ddae6d68a0-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6d68a0-Name" + }, + { + "id": "0x55ddae6d68a0-Name", + "source": "n" + }, + { + "id": "0x55ddae6cca40-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6cca60-LiteralConstant" + }, + { + "id": "0x55ddae6cca60-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6cca60-IntLiteralConstant" + }, + { + "id": "0x55ddae6cca60-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55ddae6cec90-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6cec90-ExecutableConstruct" + }, + { + "id": "0x55ddae6cec90-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ddae6cec90-Statement" + }, + { + "id": "0x55ddae6cec90-Statement", + "statement": "0x55ddae6ceca0-ActionStmt", + "source": "b(1:n)=b(1:n)+1" + }, + { + "id": "0x55ddae6ceca0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55ddae6ce670-AssignmentStmt" + }, + { + "id": "0x55ddae6ce670-AssignmentStmt", + "Variable": "0x55ddae6ce750-Variable", + "Expr": "0x55ddae6ce680-Expr" + }, + { + "id": "0x55ddae6ce750-Variable", + "variantKey": "Designator", + "Designator": "0x55ddae6c7f90-Designator" + }, + { + "id": "0x55ddae6c7f90-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6c7fa0-DataRef" + }, + { + "id": "0x55ddae6c7fa0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55ddae6d6050-ArrayElement" + }, + { + "id": "0x55ddae6d6050-ArrayElement", + "base": "0x55ddae6d6050-DataRef", + "subscripts": [ + "0x55ddae6d0fd0-SectionSubscript" + ] + }, + { + "id": "0x55ddae6d6050-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6d6050-Name" + }, + { + "id": "0x55ddae6d6050-Name", + "source": "b" + }, + { + "id": "0x55ddae6d0fd0-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x55ddae6d0fd0-SubscriptTriplet" + }, + { + "id": "0x55ddae6d0fd0-SubscriptTriplet", + "start": "0x55ddae6ce4b0-Expr", + "end": "0x55ddae6ce590-Expr" + }, + { + "id": "0x55ddae6ce4b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6ce4d0-LiteralConstant" + }, + { + "id": "0x55ddae6ce4d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6ce4d0-IntLiteralConstant" + }, + { + "id": "0x55ddae6ce4d0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55ddae6ce590-Expr", + "variantKey": "Designator", + "Designator": "0x55ddae64f320-Designator" + }, + { + "id": "0x55ddae64f320-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae64f330-DataRef" + }, + { + "id": "0x55ddae64f330-DataRef", + "variantKey": "Name", + "Name": "0x55ddae64f330-Name" + }, + { + "id": "0x55ddae64f330-Name", + "source": "n" + }, + { + "id": "0x55ddae6ce680-Expr", + "variantKey": "Add", + "Add": "0x55ddae6ce6a0-Add" + }, + { + "id": "0x55ddae6ce6a0-Add", + "left": "0x55ddae6ceb40-Expr", + "right": "0x55ddae6cea60-Expr", + "op": "ADD" + }, + { + "id": "0x55ddae6ceb40-Expr", + "variantKey": "Designator", + "Designator": "0x55ddae6ce9a0-Designator" + }, + { + "id": "0x55ddae6ce9a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6ce9b0-DataRef" + }, + { + "id": "0x55ddae6ce9b0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55ddae6d6100-ArrayElement" + }, + { + "id": "0x55ddae6d6100-ArrayElement", + "base": "0x55ddae6d6100-DataRef", + "subscripts": [ + "0x55ddae6d0e30-SectionSubscript" + ] + }, + { + "id": "0x55ddae6d6100-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6d6100-Name" + }, + { + "id": "0x55ddae6d6100-Name", + "source": "b" + }, + { + "id": "0x55ddae6d0e30-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x55ddae6d0e30-SubscriptTriplet" + }, + { + "id": "0x55ddae6d0e30-SubscriptTriplet", + "start": "0x55ddae6ce780-Expr", + "end": "0x55ddae6ce860-Expr" + }, + { + "id": "0x55ddae6ce780-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6ce7a0-LiteralConstant" + }, + { + "id": "0x55ddae6ce7a0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6ce7a0-IntLiteralConstant" + }, + { + "id": "0x55ddae6ce7a0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55ddae6ce860-Expr", + "variantKey": "Designator", + "Designator": "0x55ddae6cccc0-Designator" + }, + { + "id": "0x55ddae6cccc0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6cccd0-DataRef" + }, + { + "id": "0x55ddae6cccd0-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6cccd0-Name" + }, + { + "id": "0x55ddae6cccd0-Name", + "source": "n" + }, + { + "id": "0x55ddae6cea60-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6cea80-LiteralConstant" + }, + { + "id": "0x55ddae6cea80-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6cea80-IntLiteralConstant" + }, + { + "id": "0x55ddae6cea80-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55ddae6cf4c0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6cf4c0-ExecutableConstruct" + }, + { + "id": "0x55ddae6cf4c0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ddae6cf4c0-Statement" + }, + { + "id": "0x55ddae6cf4c0-Statement", + "statement": "0x55ddae6cf4d0-ActionStmt", + "source": "c(1:n)=c(1:n)+1" + }, + { + "id": "0x55ddae6cf4d0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55ddae6ceea0-AssignmentStmt" + }, + { + "id": "0x55ddae6ceea0-AssignmentStmt", + "Variable": "0x55ddae6cef80-Variable", + "Expr": "0x55ddae6ceeb0-Expr" + }, + { + "id": "0x55ddae6cef80-Variable", + "variantKey": "Designator", + "Designator": "0x55ddae6cea00-Designator" + }, + { + "id": "0x55ddae6cea00-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6cea10-DataRef" + }, + { + "id": "0x55ddae6cea10-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55ddae6d60c0-ArrayElement" + }, + { + "id": "0x55ddae6d60c0-ArrayElement", + "base": "0x55ddae6d60c0-DataRef", + "subscripts": [ + "0x55ddae6c85d0-SectionSubscript" + ] + }, + { + "id": "0x55ddae6d60c0-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6d60c0-Name" + }, + { + "id": "0x55ddae6d60c0-Name", + "source": "c" + }, + { + "id": "0x55ddae6c85d0-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x55ddae6c85d0-SubscriptTriplet" + }, + { + "id": "0x55ddae6c85d0-SubscriptTriplet", + "start": "0x55ddae6cece0-Expr", + "end": "0x55ddae6cedc0-Expr" + }, + { + "id": "0x55ddae6cece0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6ced00-LiteralConstant" + }, + { + "id": "0x55ddae6ced00-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6ced00-IntLiteralConstant" + }, + { + "id": "0x55ddae6ced00-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55ddae6cedc0-Expr", + "variantKey": "Designator", + "Designator": "0x55ddae6ccc60-Designator" + }, + { + "id": "0x55ddae6ccc60-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6ccc70-DataRef" + }, + { + "id": "0x55ddae6ccc70-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6ccc70-Name" + }, + { + "id": "0x55ddae6ccc70-Name", + "source": "n" + }, + { + "id": "0x55ddae6ceeb0-Expr", + "variantKey": "Add", + "Add": "0x55ddae6ceed0-Add" + }, + { + "id": "0x55ddae6ceed0-Add", + "left": "0x55ddae6cf370-Expr", + "right": "0x55ddae6cf290-Expr", + "op": "ADD" + }, + { + "id": "0x55ddae6cf370-Expr", + "variantKey": "Designator", + "Designator": "0x55ddae6cf1d0-Designator" + }, + { + "id": "0x55ddae6cf1d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6cf1e0-DataRef" + }, + { + "id": "0x55ddae6cf1e0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55ddae6d6140-ArrayElement" + }, + { + "id": "0x55ddae6d6140-ArrayElement", + "base": "0x55ddae6d6140-DataRef", + "subscripts": [ + "0x55ddae6d6900-SectionSubscript" + ] + }, + { + "id": "0x55ddae6d6140-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6d6140-Name" + }, + { + "id": "0x55ddae6d6140-Name", + "source": "c" + }, + { + "id": "0x55ddae6d6900-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x55ddae6d6900-SubscriptTriplet" + }, + { + "id": "0x55ddae6d6900-SubscriptTriplet", + "start": "0x55ddae6cefb0-Expr", + "end": "0x55ddae6cf090-Expr" + }, + { + "id": "0x55ddae6cefb0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6cefd0-LiteralConstant" + }, + { + "id": "0x55ddae6cefd0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6cefd0-IntLiteralConstant" + }, + { + "id": "0x55ddae6cefd0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55ddae6cf090-Expr", + "variantKey": "Designator", + "Designator": "0x55ddae6ce170-Designator" + }, + { + "id": "0x55ddae6ce170-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6ce180-DataRef" + }, + { + "id": "0x55ddae6ce180-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6ce180-Name" + }, + { + "id": "0x55ddae6ce180-Name", + "source": "n" + }, + { + "id": "0x55ddae6cf290-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6cf2b0-LiteralConstant" + }, + { + "id": "0x55ddae6cf2b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6cf2b0-IntLiteralConstant" + }, + { + "id": "0x55ddae6cf2b0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55ddae6cf180-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6cf180-ExecutableConstruct" + }, + { + "id": "0x55ddae6cf180-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x55ddae6e10d0-DoConstruct" + }, + { + "id": "0x55ddae6e10d0-DoConstruct", + "Statement": "0x55ddae6e1128-Statement", + "ExecutionPartConstruct": [ + "0x55ddae6c7d80-ExecutionPartConstruct", + "0x55ddae6cc500-ExecutionPartConstruct" + ], + "Statement": "0x55ddae6e10d0-Statement" + }, + { + "id": "0x55ddae6e1128-Statement", + "statement": "0x55ddae6e1138-NonLabelDoStmt", + "source": "do10i=1,1000" + }, + { + "id": "0x55ddae6e1138-NonLabelDoStmt", + "LoopControl": "0x55ddae6e1138-LoopControl" + }, + { + "id": "0x55ddae6e1138-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x55ddae6e1138-LoopBounds" + }, + { + "id": "0x55ddae6e1138-LoopBounds", + "var": "0x55ddae6e1138-Name", + "lower": "0x55ddae6cf510-Expr", + "upper": "0x55ddae6cf5f0-Expr" + }, + { + "id": "0x55ddae6e1138-Name", + "source": "i" + }, + { + "id": "0x55ddae6cf510-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6cf530-LiteralConstant" + }, + { + "id": "0x55ddae6cf530-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6cf530-IntLiteralConstant" + }, + { + "id": "0x55ddae6cf530-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55ddae6cf5f0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6cf610-LiteralConstant" + }, + { + "id": "0x55ddae6cf610-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6cf610-IntLiteralConstant" + }, + { + "id": "0x55ddae6cf610-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x55ddae6e1110-ExecutionPartConstruct" + }, + { + "id": "0x55ddae6c7d80-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6c7d80-ExecutableConstruct" + }, + { + "id": "0x55ddae6c7d80-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55ddae66f780-IfConstruct" + }, + { + "id": "0x55ddae66f780-IfConstruct", + "Statement": "0x55ddae66f850-Statement", + "ExecutionPartConstruct": [ + "0x55ddae6ccb30-ExecutionPartConstruct", + "0x55ddae6cc2e0-ExecutionPartConstruct", + "0x55ddae6c79d0-ExecutionPartConstruct", + "0x55ddae6ce950-ExecutionPartConstruct" + ], + "Statement": "0x55ddae66f780-Statement" + }, + { + "id": "0x55ddae66f850-Statement", + "statement": "0x55ddae66f860-IfThenStmt", + "source": "if(a(i).ne.1)then" + }, + { + "id": "0x55ddae66f860-IfThenStmt", + "Expr": "0x55ddae6cfa80-Expr" + }, + { + "id": "0x55ddae6cfa80-Expr", + "variantKey": "NE", + "NE": "0x55ddae6cfaa0-NE" + }, + { + "id": "0x55ddae6cfaa0-NE", + "left": "0x55ddae6cf6d0-Expr", + "right": "0x55ddae6cf9a0-Expr", + "op": "NE" + }, + { + "id": "0x55ddae6cf6d0-Expr", + "variantKey": "Designator", + "Designator": "0x55ddae7068c0-Designator" + }, + { + "id": "0x55ddae7068c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae7068d0-DataRef" + }, + { + "id": "0x55ddae7068d0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55ddae6d5a50-ArrayElement" + }, + { + "id": "0x55ddae6d5a50-ArrayElement", + "base": "0x55ddae6d5a50-DataRef", + "subscripts": [ + "0x55ddae6da140-SectionSubscript" + ] + }, + { + "id": "0x55ddae6d5a50-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6d5a50-Name" + }, + { + "id": "0x55ddae6d5a50-Name", + "source": "a" + }, + { + "id": "0x55ddae6da140-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55ddae7813c0-Expr" + }, + { + "id": "0x55ddae7813c0-Expr", + "variantKey": "Designator", + "Designator": "0x55ddae6ce1d0-Designator" + }, + { + "id": "0x55ddae6ce1d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6ce1e0-DataRef" + }, + { + "id": "0x55ddae6ce1e0-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6ce1e0-Name" + }, + { + "id": "0x55ddae6ce1e0-Name", + "source": "i" + }, + { + "id": "0x55ddae6cf9a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6cf9c0-LiteralConstant" + }, + { + "id": "0x55ddae6cf9c0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6cf9c0-IntLiteralConstant" + }, + { + "id": "0x55ddae6cf9c0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55ddae66f838-ExecutionPartConstruct" + }, + { + "id": "0x55ddae6ccb30-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6ccb30-ExecutableConstruct" + }, + { + "id": "0x55ddae6ccb30-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ddae6ccb30-Statement" + }, + { + "id": "0x55ddae6ccb30-Statement", + "statement": "0x55ddae6ccb40-ActionStmt", + "source": "write(6,*)'NG'" + }, + { + "id": "0x55ddae6ccb40-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x55ddae6ddf50-WriteStmt" + }, + { + "id": "0x55ddae6ddf50-WriteStmt", + "iounit": "0x55ddae6ddf50-IoUnit", + "format": "0x55ddae6ddf80-Format", + "controls": [], + "items": [ + "0x55ddae6dde70-OutputItem" + ] + }, + { + "id": "0x55ddae6ddf50-IoUnit", + "variantKey": "Expr", + "Expr": "0x55ddae6ddd80-Expr" + }, + { + "id": "0x55ddae6ddd80-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6ddda0-LiteralConstant" + }, + { + "id": "0x55ddae6ddda0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6ddda0-IntLiteralConstant" + }, + { + "id": "0x55ddae6ddda0-IntLiteralConstant", + "CharBlock": "6" + }, + { + "id": "0x55ddae6ddf80-Format", + "variantKey": "Star", + "Star": "0x55ddae6ddf80-Star" + }, + { + "id": "0x55ddae6ddf80-Star" + }, + { + "id": "0x55ddae6dde70-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ddae6dde70-Expr" + }, + { + "id": "0x55ddae6dde70-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6dde90-LiteralConstant" + }, + { + "id": "0x55ddae6dde90-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55ddae6dde90-CharLiteralConstant" + }, + { + "id": "0x55ddae6dde90-CharLiteralConstant", + "string": "NG" + }, + { + "id": "0x55ddae6cc2e0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6cc2e0-ExecutableConstruct" + }, + { + "id": "0x55ddae6cc2e0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ddae6cc2e0-Statement" + }, + { + "id": "0x55ddae6cc2e0-Statement", + "statement": "0x55ddae6cc2f0-ActionStmt", + "source": "write(6,*)'ELEMENT NUMBER = A(',i,')'" + }, + { + "id": "0x55ddae6cc2f0-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x55ddae6de450-WriteStmt" + }, + { + "id": "0x55ddae6de450-WriteStmt", + "iounit": "0x55ddae6de450-IoUnit", + "format": "0x55ddae6de480-Format", + "controls": [], + "items": [ + "0x55ddae6de370-OutputItem", + "0x55ddae6de190-OutputItem", + "0x55ddae6de280-OutputItem" + ] + }, + { + "id": "0x55ddae6de450-IoUnit", + "variantKey": "Expr", + "Expr": "0x55ddae6de0a0-Expr" + }, + { + "id": "0x55ddae6de0a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6de0c0-LiteralConstant" + }, + { + "id": "0x55ddae6de0c0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6de0c0-IntLiteralConstant" + }, + { + "id": "0x55ddae6de0c0-IntLiteralConstant", + "CharBlock": "6" + }, + { + "id": "0x55ddae6de480-Format", + "variantKey": "Star", + "Star": "0x55ddae6de480-Star" + }, + { + "id": "0x55ddae6de480-Star" + }, + { + "id": "0x55ddae6de370-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ddae6de370-Expr" + }, + { + "id": "0x55ddae6de370-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6de390-LiteralConstant" + }, + { + "id": "0x55ddae6de390-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55ddae6de390-CharLiteralConstant" + }, + { + "id": "0x55ddae6de390-CharLiteralConstant", + "string": "ELEMENT NUMBER = A(" + }, + { + "id": "0x55ddae6de190-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ddae6de190-Expr" + }, + { + "id": "0x55ddae6de190-Expr", + "variantKey": "Designator", + "Designator": "0x55ddae6ce3f0-Designator" + }, + { + "id": "0x55ddae6ce3f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6ce400-DataRef" + }, + { + "id": "0x55ddae6ce400-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6ce400-Name" + }, + { + "id": "0x55ddae6ce400-Name", + "source": "i" + }, + { + "id": "0x55ddae6de280-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ddae6de280-Expr" + }, + { + "id": "0x55ddae6de280-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6de2a0-LiteralConstant" + }, + { + "id": "0x55ddae6de2a0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55ddae6de2a0-CharLiteralConstant" + }, + { + "id": "0x55ddae6de2a0-CharLiteralConstant", + "string": ")" + }, + { + "id": "0x55ddae6c79d0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6c79d0-ExecutableConstruct" + }, + { + "id": "0x55ddae6c79d0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ddae6c79d0-Statement" + }, + { + "id": "0x55ddae6c79d0-Statement", + "statement": "0x55ddae6c79e0-ActionStmt", + "source": "code=1" + }, + { + "id": "0x55ddae6c79e0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55ddae6cf7b0-AssignmentStmt" + }, + { + "id": "0x55ddae6cf7b0-AssignmentStmt", + "Variable": "0x55ddae6cf890-Variable", + "Expr": "0x55ddae6cf7c0-Expr" + }, + { + "id": "0x55ddae6cf890-Variable", + "variantKey": "Designator", + "Designator": "0x55ddae6ce110-Designator" + }, + { + "id": "0x55ddae6ce110-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6ce120-DataRef" + }, + { + "id": "0x55ddae6ce120-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6ce120-Name" + }, + { + "id": "0x55ddae6ce120-Name", + "source": "code" + }, + { + "id": "0x55ddae6cf7c0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6cf7e0-LiteralConstant" + }, + { + "id": "0x55ddae6cf7e0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6cf7e0-IntLiteralConstant" + }, + { + "id": "0x55ddae6cf7e0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55ddae6ce950-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6ce950-ExecutableConstruct" + }, + { + "id": "0x55ddae6ce950-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ddae6ce950-Statement" + }, + { + "id": "0x55ddae6ce950-Statement", + "statement": "0x55ddae6ce960-ActionStmt", + "source": "goto20" + }, + { + "id": "0x55ddae6ce960-ActionStmt", + "variantKey": "GotoStmt", + "GotoStmt": "0x55ddae6d6180-GotoStmt" + }, + { + "id": "0x55ddae6d6180-GotoStmt", + "uint64_t": "20" + }, + { + "id": "0x55ddae66f780-Statement", + "statement": "0x55ddae66f790-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55ddae66f790-EndIfStmt" + }, + { + "id": "0x55ddae6cc500-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6cc500-ExecutableConstruct" + }, + { + "id": "0x55ddae6cc500-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ddae6cc500-Statement" + }, + { + "id": "0x55ddae6cc500-Statement", + "statement": "0x55ddae6cc510-ActionStmt", + "label": "10", + "source": "10continue" + }, + { + "id": "0x55ddae6cc510-ActionStmt", + "variantKey": "ContinueStmt", + "ContinueStmt": "0x55ddae6cc510-ContinueStmt" + }, + { + "id": "0x55ddae6cc510-ContinueStmt" + }, + { + "id": "0x55ddae6e10d0-Statement", + "statement": "0x55ddae6e10e0-EndDoStmt", + "source": "" + }, + { + "id": "0x55ddae6e10e0-EndDoStmt" + }, + { + "id": "0x55ddae6cf240-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6cf240-ExecutableConstruct" + }, + { + "id": "0x55ddae6cf240-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ddae6cf240-Statement" + }, + { + "id": "0x55ddae6cf240-Statement", + "statement": "0x55ddae6cf250-ActionStmt", + "label": "20", + "source": "20continue" + }, + { + "id": "0x55ddae6cf250-ActionStmt", + "variantKey": "ContinueStmt", + "ContinueStmt": "0x55ddae6cf250-ContinueStmt" + }, + { + "id": "0x55ddae6cf250-ContinueStmt" + }, + { + "id": "0x55ddae6cbfb0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6cbfb0-ExecutableConstruct" + }, + { + "id": "0x55ddae6cbfb0-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x55ddae6e11f0-DoConstruct" + }, + { + "id": "0x55ddae6e11f0-DoConstruct", + "Statement": "0x55ddae6e1248-Statement", + "ExecutionPartConstruct": [ + "0x55ddae6cde20-ExecutionPartConstruct", + "0x55ddae6cc830-ExecutionPartConstruct" + ], + "Statement": "0x55ddae6e11f0-Statement" + }, + { + "id": "0x55ddae6e1248-Statement", + "statement": "0x55ddae6e1258-NonLabelDoStmt", + "source": "do30i=1,1000" + }, + { + "id": "0x55ddae6e1258-NonLabelDoStmt", + "LoopControl": "0x55ddae6e1258-LoopControl" + }, + { + "id": "0x55ddae6e1258-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x55ddae6e1258-LoopBounds" + }, + { + "id": "0x55ddae6e1258-LoopBounds", + "var": "0x55ddae6e1258-Name", + "lower": "0x55ddae6de5a0-Expr", + "upper": "0x55ddae6de680-Expr" + }, + { + "id": "0x55ddae6e1258-Name", + "source": "i" + }, + { + "id": "0x55ddae6de5a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6de5c0-LiteralConstant" + }, + { + "id": "0x55ddae6de5c0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6de5c0-IntLiteralConstant" + }, + { + "id": "0x55ddae6de5c0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55ddae6de680-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6de6a0-LiteralConstant" + }, + { + "id": "0x55ddae6de6a0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6de6a0-IntLiteralConstant" + }, + { + "id": "0x55ddae6de6a0-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x55ddae6e1230-ExecutionPartConstruct" + }, + { + "id": "0x55ddae6cde20-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6cde20-ExecutableConstruct" + }, + { + "id": "0x55ddae6cde20-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55ddae6df520-IfConstruct" + }, + { + "id": "0x55ddae6df520-IfConstruct", + "Statement": "0x55ddae6df5f0-Statement", + "ExecutionPartConstruct": [ + "0x55ddae6cc720-ExecutionPartConstruct", + "0x55ddae6cd590-ExecutionPartConstruct", + "0x55ddae6cc610-ExecutionPartConstruct", + "0x55ddae6cb5c0-ExecutionPartConstruct" + ], + "Statement": "0x55ddae6df520-Statement" + }, + { + "id": "0x55ddae6df5f0-Statement", + "statement": "0x55ddae6df600-IfThenStmt", + "source": "if(b(i).ne.1)then" + }, + { + "id": "0x55ddae6df600-IfThenStmt", + "Expr": "0x55ddae6deb10-Expr" + }, + { + "id": "0x55ddae6deb10-Expr", + "variantKey": "NE", + "NE": "0x55ddae6deb30-NE" + }, + { + "id": "0x55ddae6deb30-NE", + "left": "0x55ddae6de760-Expr", + "right": "0x55ddae6dea30-Expr", + "op": "NE" + }, + { + "id": "0x55ddae6de760-Expr", + "variantKey": "Designator", + "Designator": "0x55ddae705f20-Designator" + }, + { + "id": "0x55ddae705f20-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae705f30-DataRef" + }, + { + "id": "0x55ddae705f30-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55ddae6cfd10-ArrayElement" + }, + { + "id": "0x55ddae6cfd10-ArrayElement", + "base": "0x55ddae6cfd10-DataRef", + "subscripts": [ + "0x55ddae6f6fc0-SectionSubscript" + ] + }, + { + "id": "0x55ddae6cfd10-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6cfd10-Name" + }, + { + "id": "0x55ddae6cfd10-Name", + "source": "b" + }, + { + "id": "0x55ddae6f6fc0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55ddae6cf8c0-Expr" + }, + { + "id": "0x55ddae6cf8c0-Expr", + "variantKey": "Designator", + "Designator": "0x55ddae6c8220-Designator" + }, + { + "id": "0x55ddae6c8220-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6c8230-DataRef" + }, + { + "id": "0x55ddae6c8230-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6c8230-Name" + }, + { + "id": "0x55ddae6c8230-Name", + "source": "i" + }, + { + "id": "0x55ddae6dea30-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6dea50-LiteralConstant" + }, + { + "id": "0x55ddae6dea50-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6dea50-IntLiteralConstant" + }, + { + "id": "0x55ddae6dea50-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55ddae6df5d8-ExecutionPartConstruct" + }, + { + "id": "0x55ddae6cc720-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6cc720-ExecutableConstruct" + }, + { + "id": "0x55ddae6cc720-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ddae6cc720-Statement" + }, + { + "id": "0x55ddae6cc720-Statement", + "statement": "0x55ddae6cc730-ActionStmt", + "source": "write(6,*)'NG'" + }, + { + "id": "0x55ddae6cc730-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x55ddae6deed0-WriteStmt" + }, + { + "id": "0x55ddae6deed0-WriteStmt", + "iounit": "0x55ddae6deed0-IoUnit", + "format": "0x55ddae6def00-Format", + "controls": [], + "items": [ + "0x55ddae6dedf0-OutputItem" + ] + }, + { + "id": "0x55ddae6deed0-IoUnit", + "variantKey": "Expr", + "Expr": "0x55ddae6ded00-Expr" + }, + { + "id": "0x55ddae6ded00-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6ded20-LiteralConstant" + }, + { + "id": "0x55ddae6ded20-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6ded20-IntLiteralConstant" + }, + { + "id": "0x55ddae6ded20-IntLiteralConstant", + "CharBlock": "6" + }, + { + "id": "0x55ddae6def00-Format", + "variantKey": "Star", + "Star": "0x55ddae6def00-Star" + }, + { + "id": "0x55ddae6def00-Star" + }, + { + "id": "0x55ddae6dedf0-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ddae6dedf0-Expr" + }, + { + "id": "0x55ddae6dedf0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6dee10-LiteralConstant" + }, + { + "id": "0x55ddae6dee10-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55ddae6dee10-CharLiteralConstant" + }, + { + "id": "0x55ddae6dee10-CharLiteralConstant", + "string": "NG" + }, + { + "id": "0x55ddae6cd590-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6cd590-ExecutableConstruct" + }, + { + "id": "0x55ddae6cd590-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ddae6cd590-Statement" + }, + { + "id": "0x55ddae6cd590-Statement", + "statement": "0x55ddae6cd5a0-ActionStmt", + "source": "write(6,*)'ELEMENT NUMBER = B(',i,')'" + }, + { + "id": "0x55ddae6cd5a0-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x55ddae6df3d0-WriteStmt" + }, + { + "id": "0x55ddae6df3d0-WriteStmt", + "iounit": "0x55ddae6df3d0-IoUnit", + "format": "0x55ddae6df400-Format", + "controls": [], + "items": [ + "0x55ddae6df2f0-OutputItem", + "0x55ddae6df110-OutputItem", + "0x55ddae6df200-OutputItem" + ] + }, + { + "id": "0x55ddae6df3d0-IoUnit", + "variantKey": "Expr", + "Expr": "0x55ddae6df020-Expr" + }, + { + "id": "0x55ddae6df020-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6df040-LiteralConstant" + }, + { + "id": "0x55ddae6df040-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6df040-IntLiteralConstant" + }, + { + "id": "0x55ddae6df040-IntLiteralConstant", + "CharBlock": "6" + }, + { + "id": "0x55ddae6df400-Format", + "variantKey": "Star", + "Star": "0x55ddae6df400-Star" + }, + { + "id": "0x55ddae6df400-Star" + }, + { + "id": "0x55ddae6df2f0-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ddae6df2f0-Expr" + }, + { + "id": "0x55ddae6df2f0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6df310-LiteralConstant" + }, + { + "id": "0x55ddae6df310-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55ddae6df310-CharLiteralConstant" + }, + { + "id": "0x55ddae6df310-CharLiteralConstant", + "string": "ELEMENT NUMBER = B(" + }, + { + "id": "0x55ddae6df110-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ddae6df110-Expr" + }, + { + "id": "0x55ddae6df110-Expr", + "variantKey": "Designator", + "Designator": "0x55ddae6cc0b0-Designator" + }, + { + "id": "0x55ddae6cc0b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6cc0c0-DataRef" + }, + { + "id": "0x55ddae6cc0c0-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6cc0c0-Name" + }, + { + "id": "0x55ddae6cc0c0-Name", + "source": "i" + }, + { + "id": "0x55ddae6df200-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ddae6df200-Expr" + }, + { + "id": "0x55ddae6df200-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6df220-LiteralConstant" + }, + { + "id": "0x55ddae6df220-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55ddae6df220-CharLiteralConstant" + }, + { + "id": "0x55ddae6df220-CharLiteralConstant", + "string": ")" + }, + { + "id": "0x55ddae6cc610-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6cc610-ExecutableConstruct" + }, + { + "id": "0x55ddae6cc610-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ddae6cc610-Statement" + }, + { + "id": "0x55ddae6cc610-Statement", + "statement": "0x55ddae6cc620-ActionStmt", + "source": "code=1" + }, + { + "id": "0x55ddae6cc620-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55ddae6de840-AssignmentStmt" + }, + { + "id": "0x55ddae6de840-AssignmentStmt", + "Variable": "0x55ddae6de920-Variable", + "Expr": "0x55ddae6de850-Expr" + }, + { + "id": "0x55ddae6de920-Variable", + "variantKey": "Designator", + "Designator": "0x55ddae6cec20-Designator" + }, + { + "id": "0x55ddae6cec20-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6cec30-DataRef" + }, + { + "id": "0x55ddae6cec30-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6cec30-Name" + }, + { + "id": "0x55ddae6cec30-Name", + "source": "code" + }, + { + "id": "0x55ddae6de850-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6de870-LiteralConstant" + }, + { + "id": "0x55ddae6de870-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6de870-IntLiteralConstant" + }, + { + "id": "0x55ddae6de870-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55ddae6cb5c0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6cb5c0-ExecutableConstruct" + }, + { + "id": "0x55ddae6cb5c0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ddae6cb5c0-Statement" + }, + { + "id": "0x55ddae6cb5c0-Statement", + "statement": "0x55ddae6cb5d0-ActionStmt", + "source": "goto40" + }, + { + "id": "0x55ddae6cb5d0-ActionStmt", + "variantKey": "GotoStmt", + "GotoStmt": "0x55ddae6d8b40-GotoStmt" + }, + { + "id": "0x55ddae6d8b40-GotoStmt", + "uint64_t": "40" + }, + { + "id": "0x55ddae6df520-Statement", + "statement": "0x55ddae6df530-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55ddae6df530-EndIfStmt" + }, + { + "id": "0x55ddae6cc830-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6cc830-ExecutableConstruct" + }, + { + "id": "0x55ddae6cc830-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ddae6cc830-Statement" + }, + { + "id": "0x55ddae6cc830-Statement", + "statement": "0x55ddae6cc840-ActionStmt", + "label": "30", + "source": "30continue" + }, + { + "id": "0x55ddae6cc840-ActionStmt", + "variantKey": "ContinueStmt", + "ContinueStmt": "0x55ddae6cc840-ContinueStmt" + }, + { + "id": "0x55ddae6cc840-ContinueStmt" + }, + { + "id": "0x55ddae6e11f0-Statement", + "statement": "0x55ddae6e1200-EndDoStmt", + "source": "" + }, + { + "id": "0x55ddae6e1200-EndDoStmt" + }, + { + "id": "0x55ddae6cd150-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6cd150-ExecutableConstruct" + }, + { + "id": "0x55ddae6cd150-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ddae6cd150-Statement" + }, + { + "id": "0x55ddae6cd150-Statement", + "statement": "0x55ddae6cd160-ActionStmt", + "label": "40", + "source": "40continue" + }, + { + "id": "0x55ddae6cd160-ActionStmt", + "variantKey": "ContinueStmt", + "ContinueStmt": "0x55ddae6cd160-ContinueStmt" + }, + { + "id": "0x55ddae6cd160-ContinueStmt" + }, + { + "id": "0x55ddae6cc1d0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6cc1d0-ExecutableConstruct" + }, + { + "id": "0x55ddae6cc1d0-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x55ddae6e1310-DoConstruct" + }, + { + "id": "0x55ddae6e1310-DoConstruct", + "Statement": "0x55ddae6e1368-Statement", + "ExecutionPartConstruct": [ + "0x55ddae6cdf30-ExecutionPartConstruct", + "0x55ddae6ccd90-ExecutionPartConstruct" + ], + "Statement": "0x55ddae6e1310-Statement" + }, + { + "id": "0x55ddae6e1368-Statement", + "statement": "0x55ddae6e1378-NonLabelDoStmt", + "source": "do50i=1,1000" + }, + { + "id": "0x55ddae6e1378-NonLabelDoStmt", + "LoopControl": "0x55ddae6e1378-LoopControl" + }, + { + "id": "0x55ddae6e1378-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x55ddae6e1378-LoopBounds" + }, + { + "id": "0x55ddae6e1378-LoopBounds", + "var": "0x55ddae6e1378-Name", + "lower": "0x55ddae6df640-Expr", + "upper": "0x55ddae6df720-Expr" + }, + { + "id": "0x55ddae6e1378-Name", + "source": "i" + }, + { + "id": "0x55ddae6df640-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6df660-LiteralConstant" + }, + { + "id": "0x55ddae6df660-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6df660-IntLiteralConstant" + }, + { + "id": "0x55ddae6df660-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55ddae6df720-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6df740-LiteralConstant" + }, + { + "id": "0x55ddae6df740-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6df740-IntLiteralConstant" + }, + { + "id": "0x55ddae6df740-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x55ddae6e1350-ExecutionPartConstruct" + }, + { + "id": "0x55ddae6cdf30-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6cdf30-ExecutableConstruct" + }, + { + "id": "0x55ddae6cdf30-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55ddae6e05c0-IfConstruct" + }, + { + "id": "0x55ddae6e05c0-IfConstruct", + "Statement": "0x55ddae6e0690-Statement", + "ExecutionPartConstruct": [ + "0x55ddae6cb8c0-ExecutionPartConstruct", + "0x55ddae6c7220-ExecutionPartConstruct", + "0x55ddae6cd6a0-ExecutionPartConstruct", + "0x55ddae6cf460-ExecutionPartConstruct" + ], + "Statement": "0x55ddae6e05c0-Statement" + }, + { + "id": "0x55ddae6e0690-Statement", + "statement": "0x55ddae6e06a0-IfThenStmt", + "source": "if(c(i).ne.1)then" + }, + { + "id": "0x55ddae6e06a0-IfThenStmt", + "Expr": "0x55ddae6dfbb0-Expr" + }, + { + "id": "0x55ddae6dfbb0-Expr", + "variantKey": "NE", + "NE": "0x55ddae6dfbd0-NE" + }, + { + "id": "0x55ddae6dfbd0-NE", + "left": "0x55ddae6df800-Expr", + "right": "0x55ddae6dfad0-Expr", + "op": "NE" + }, + { + "id": "0x55ddae6df800-Expr", + "variantKey": "Designator", + "Designator": "0x55ddae707260-Designator" + }, + { + "id": "0x55ddae707260-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae707270-DataRef" + }, + { + "id": "0x55ddae707270-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55ddae6cb870-ArrayElement" + }, + { + "id": "0x55ddae6cb870-ArrayElement", + "base": "0x55ddae6cb870-DataRef", + "subscripts": [ + "0x55ddae6eea40-SectionSubscript" + ] + }, + { + "id": "0x55ddae6cb870-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6cb870-Name" + }, + { + "id": "0x55ddae6cb870-Name", + "source": "c" + }, + { + "id": "0x55ddae6eea40-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55ddae6de950-Expr" + }, + { + "id": "0x55ddae6de950-Expr", + "variantKey": "Designator", + "Designator": "0x55ddae6c7500-Designator" + }, + { + "id": "0x55ddae6c7500-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6c7510-DataRef" + }, + { + "id": "0x55ddae6c7510-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6c7510-Name" + }, + { + "id": "0x55ddae6c7510-Name", + "source": "i" + }, + { + "id": "0x55ddae6dfad0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6dfaf0-LiteralConstant" + }, + { + "id": "0x55ddae6dfaf0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6dfaf0-IntLiteralConstant" + }, + { + "id": "0x55ddae6dfaf0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55ddae6e0678-ExecutionPartConstruct" + }, + { + "id": "0x55ddae6cb8c0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6cb8c0-ExecutableConstruct" + }, + { + "id": "0x55ddae6cb8c0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ddae6cb8c0-Statement" + }, + { + "id": "0x55ddae6cb8c0-Statement", + "statement": "0x55ddae6cb8d0-ActionStmt", + "source": "write(6,*)'NG'" + }, + { + "id": "0x55ddae6cb8d0-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x55ddae6dff70-WriteStmt" + }, + { + "id": "0x55ddae6dff70-WriteStmt", + "iounit": "0x55ddae6dff70-IoUnit", + "format": "0x55ddae6dffa0-Format", + "controls": [], + "items": [ + "0x55ddae6dfe90-OutputItem" + ] + }, + { + "id": "0x55ddae6dff70-IoUnit", + "variantKey": "Expr", + "Expr": "0x55ddae6dfda0-Expr" + }, + { + "id": "0x55ddae6dfda0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6dfdc0-LiteralConstant" + }, + { + "id": "0x55ddae6dfdc0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6dfdc0-IntLiteralConstant" + }, + { + "id": "0x55ddae6dfdc0-IntLiteralConstant", + "CharBlock": "6" + }, + { + "id": "0x55ddae6dffa0-Format", + "variantKey": "Star", + "Star": "0x55ddae6dffa0-Star" + }, + { + "id": "0x55ddae6dffa0-Star" + }, + { + "id": "0x55ddae6dfe90-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ddae6dfe90-Expr" + }, + { + "id": "0x55ddae6dfe90-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6dfeb0-LiteralConstant" + }, + { + "id": "0x55ddae6dfeb0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55ddae6dfeb0-CharLiteralConstant" + }, + { + "id": "0x55ddae6dfeb0-CharLiteralConstant", + "string": "NG" + }, + { + "id": "0x55ddae6c7220-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6c7220-ExecutableConstruct" + }, + { + "id": "0x55ddae6c7220-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ddae6c7220-Statement" + }, + { + "id": "0x55ddae6c7220-Statement", + "statement": "0x55ddae6c7230-ActionStmt", + "source": "write(6,*)'ELEMENT NUMBER = C(',i,')'" + }, + { + "id": "0x55ddae6c7230-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x55ddae6e0470-WriteStmt" + }, + { + "id": "0x55ddae6e0470-WriteStmt", + "iounit": "0x55ddae6e0470-IoUnit", + "format": "0x55ddae6e04a0-Format", + "controls": [], + "items": [ + "0x55ddae6e0390-OutputItem", + "0x55ddae6e01b0-OutputItem", + "0x55ddae6e02a0-OutputItem" + ] + }, + { + "id": "0x55ddae6e0470-IoUnit", + "variantKey": "Expr", + "Expr": "0x55ddae6e00c0-Expr" + }, + { + "id": "0x55ddae6e00c0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6e00e0-LiteralConstant" + }, + { + "id": "0x55ddae6e00e0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6e00e0-IntLiteralConstant" + }, + { + "id": "0x55ddae6e00e0-IntLiteralConstant", + "CharBlock": "6" + }, + { + "id": "0x55ddae6e04a0-Format", + "variantKey": "Star", + "Star": "0x55ddae6e04a0-Star" + }, + { + "id": "0x55ddae6e04a0-Star" + }, + { + "id": "0x55ddae6e0390-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ddae6e0390-Expr" + }, + { + "id": "0x55ddae6e0390-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6e03b0-LiteralConstant" + }, + { + "id": "0x55ddae6e03b0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55ddae6e03b0-CharLiteralConstant" + }, + { + "id": "0x55ddae6e03b0-CharLiteralConstant", + "string": "ELEMENT NUMBER = C(" + }, + { + "id": "0x55ddae6e01b0-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ddae6e01b0-Expr" + }, + { + "id": "0x55ddae6e01b0-Expr", + "variantKey": "Designator", + "Designator": "0x55ddae6cd030-Designator" + }, + { + "id": "0x55ddae6cd030-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6cd040-DataRef" + }, + { + "id": "0x55ddae6cd040-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6cd040-Name" + }, + { + "id": "0x55ddae6cd040-Name", + "source": "i" + }, + { + "id": "0x55ddae6e02a0-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ddae6e02a0-Expr" + }, + { + "id": "0x55ddae6e02a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6e02c0-LiteralConstant" + }, + { + "id": "0x55ddae6e02c0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55ddae6e02c0-CharLiteralConstant" + }, + { + "id": "0x55ddae6e02c0-CharLiteralConstant", + "string": ")" + }, + { + "id": "0x55ddae6cd6a0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6cd6a0-ExecutableConstruct" + }, + { + "id": "0x55ddae6cd6a0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ddae6cd6a0-Statement" + }, + { + "id": "0x55ddae6cd6a0-Statement", + "statement": "0x55ddae6cd6b0-ActionStmt", + "source": "code=1" + }, + { + "id": "0x55ddae6cd6b0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55ddae6df8e0-AssignmentStmt" + }, + { + "id": "0x55ddae6df8e0-AssignmentStmt", + "Variable": "0x55ddae6df9c0-Variable", + "Expr": "0x55ddae6df8f0-Expr" + }, + { + "id": "0x55ddae6df9c0-Variable", + "variantKey": "Designator", + "Designator": "0x55ddae6cd470-Designator" + }, + { + "id": "0x55ddae6cd470-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ddae6cd480-DataRef" + }, + { + "id": "0x55ddae6cd480-DataRef", + "variantKey": "Name", + "Name": "0x55ddae6cd480-Name" + }, + { + "id": "0x55ddae6cd480-Name", + "source": "code" + }, + { + "id": "0x55ddae6df8f0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ddae6df910-LiteralConstant" + }, + { + "id": "0x55ddae6df910-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ddae6df910-IntLiteralConstant" + }, + { + "id": "0x55ddae6df910-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55ddae6cf460-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6cf460-ExecutableConstruct" + }, + { + "id": "0x55ddae6cf460-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ddae6cf460-Statement" + }, + { + "id": "0x55ddae6cf460-Statement", + "statement": "0x55ddae6cf470-ActionStmt", + "source": "goto60" + }, + { + "id": "0x55ddae6cf470-ActionStmt", + "variantKey": "GotoStmt", + "GotoStmt": "0x55ddae6d5810-GotoStmt" + }, + { + "id": "0x55ddae6d5810-GotoStmt", + "uint64_t": "60" + }, + { + "id": "0x55ddae6e05c0-Statement", + "statement": "0x55ddae6e05d0-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55ddae6e05d0-EndIfStmt" + }, + { + "id": "0x55ddae6ccd90-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6ccd90-ExecutableConstruct" + }, + { + "id": "0x55ddae6ccd90-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ddae6ccd90-Statement" + }, + { + "id": "0x55ddae6ccd90-Statement", + "statement": "0x55ddae6ccda0-ActionStmt", + "label": "50", + "source": "50continue" + }, + { + "id": "0x55ddae6ccda0-ActionStmt", + "variantKey": "ContinueStmt", + "ContinueStmt": "0x55ddae6ccda0-ContinueStmt" + }, + { + "id": "0x55ddae6ccda0-ContinueStmt" + }, + { + "id": "0x55ddae6e1310-Statement", + "statement": "0x55ddae6e1320-EndDoStmt", + "source": "" + }, + { + "id": "0x55ddae6e1320-EndDoStmt" + }, + { + "id": "0x55ddae6c6fa0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6c6fa0-ExecutableConstruct" + }, + { + "id": "0x55ddae6c6fa0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ddae6c6fa0-Statement" + }, + { + "id": "0x55ddae6c6fa0-Statement", + "statement": "0x55ddae6c6fb0-ActionStmt", + "label": "60", + "source": "60continue" + }, + { + "id": "0x55ddae6c6fb0-ActionStmt", + "variantKey": "ContinueStmt", + "ContinueStmt": "0x55ddae6c6fb0-ContinueStmt" + }, + { + "id": "0x55ddae6c6fb0-ContinueStmt" + }, + { + "id": "0x55ddae6c7280-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ddae6c7280-ExecutableConstruct" + }, + { + "id": "0x55ddae6c7280-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ddae6c7280-Statement" + }, + { + "id": "0x55ddae6c7280-Statement", + "statement": "0x55ddae6c7290-ActionStmt", + "source": "return" + }, + { + "id": "0x55ddae6c7290-ActionStmt", + "variantKey": "ReturnStmt", + "ReturnStmt": "0x55ddae6d8e00-ReturnStmt" + }, + { + "id": "0x55ddae6d8e00-ReturnStmt" + }, + { + "id": "0x55ddae6e1df0-Statement", + "statement": "0x55ddae6e1e00-EndSubroutineStmt", + "source": "end" + }, + { + "id": "0x55ddae6e1e00-EndSubroutineStmt" + } + ], + "comments": [], + "enums": { + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "Fortran::common::ImportKind": [ + "Default", + "Only", + "None", + "All" + ], + "Fortran::common::OmpDependenceKind": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::common::OmpMemoryOrderType": [ + "Acq_Rel", + "Acquire", + "Relaxed", + "Release", + "Seq_Cst" + ], + "Fortran::common::OpenACCDeviceType": [ + "Star", + "Default", + "Nvidia", + "Radeon", + "Host", + "Multicore", + "None" + ], + "Fortran::parser::AccDataModifier::Modifier": [ + "ReadOnly", + "Zero" + ], + "Fortran::parser::AccessSpec::Kind": [ + "Public", + "Private" + ], + "Fortran::parser::BindEntity::Kind": [ + "Object", + "Common" + ], + "Fortran::parser::CompilerDirective::VectorLength::Kind": [ + "Auto", + "Fixed", + "Scalable" + ], + "Fortran::parser::ConnectSpec::CharExpr::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Encoding", + "Form", + "Pad", + "Position", + "Round", + "Sign", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::DefinedOperator::IntrinsicOperator": [ + "Power", + "Multiply", + "Divide", + "Add", + "Subtract", + "Concat", + "LT", + "LE", + "EQ", + "NE", + "GE", + "GT", + "NOT", + "AND", + "OR", + "EQV", + "NEQV" + ], + "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec": [ + "External", + "Type" + ], + "Fortran::parser::InquireSpec::CharVar::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Direct", + "Encoding", + "Form", + "Formatted", + "Iomsg", + "Name", + "Pad", + "Position", + "Read", + "Readwrite", + "Round", + "Sequential", + "Sign", + "Stream", + "Status", + "Unformatted", + "Write", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::InquireSpec::IntVar::Kind": [ + "Iostat", + "Nextrec", + "Number", + "Pos", + "Recl", + "Size" + ], + "Fortran::parser::InquireSpec::LogVar::Kind": [ + "Exist", + "Named", + "Opened", + "Pending" + ], + "Fortran::parser::IntentSpec::Intent": [ + "In", + "Out", + "InOut" + ], + "Fortran::parser::IoControlSpec::CharExpr::Kind": [ + "Advance", + "Blank", + "Decimal", + "Delim", + "Pad", + "Round", + "Sign" + ], + "Fortran::parser::ReductionOperator::Operator": [ + "Plus", + "Multiply", + "Max", + "Min", + "Iand", + "Ior", + "Ieor", + "And", + "Or", + "Eqv", + "Neqv" + ], + "Fortran::parser::OmpAccessGroup::Value": [ + "Cgroup" + ], + "Fortran::parser::OmpAdjustArgsClause::OmpAdjustOp::Value": [ + "Nothing", + "Need_Device_Ptr" + ], + "Fortran::parser::OmpAlwaysModifier::Value": [ + "Always" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpAttachModifier::Value": [ + "Always", + "Never", + "Auto" + ], + "Fortran::parser::OmpAutomapModifier::Value": [ + "Automap" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpCloseModifier::Value": [ + "Close" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default", + "Present" + ], + "Fortran::parser::OmpDeleteModifier::Value": [ + "Delete" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpDirectiveSpecification::Flag": [ + "DeprecatedSyntax", + "CrossesLabelDo" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpInteropType::Value": [ + "Target", + "Targetsync" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "Storage", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpObject::Invalid::Kind": [ + "BlankCommonBlock" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpPresentModifier::Value": [ + "Present" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpRefModifier::Value": [ + "Ref_Ptee", + "Ref_Ptr", + "Ref_Ptr_Ptee" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpSelfModifier::Value": [ + "Self" + ], + "Fortran::parser::OmpSeverityClause::SevLevel": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpThreadsetClause::ThreadsetPolicy": [ + "Omp_Pool", + "Omp_Team" + ], + "Fortran::parser::OmpTraitSelectorName::Value": [ + "Arch", + "Atomic_Default_Mem_Order", + "Condition", + "Device_Num", + "Extension", + "Isa", + "Kind", + "Requires", + "Simd", + "Uid", + "Vendor" + ], + "Fortran::parser::OmpTraitSetSelectorName::Value": [ + "Construct", + "Device", + "Implementation", + "Target_Device", + "User" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpxHoldModifier::Value": [ + "Ompx_Hold" + ], + "Fortran::parser::ProcedureStmt::Kind": [ + "ModuleProcedure", + "Procedure" + ], + "Fortran::parser::SavedEntity::Kind": [ + "Entity", + "Common" + ], + "Fortran::parser::StopStmt::Kind": [ + "Stop", + "ErrorStop" + ], + "Fortran::parser::UseStmt::ModuleNature": [ + "Intrinsic", + "Non_Intrinsic" + ] + } +} diff --git a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java index 611496b2..c71eada6 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -704,4 +704,16 @@ void testFujitsu0001_0000Native() { testNative("fujitsu/0001/0001_0000.f"); } } + + @Test + void testFujitsu0001_0007() { + testJson("fujitsu/0001/0001_0007.json"); + } + + @Test + void testFujitsu0001_0007Native() { + if (SpecsPlatforms.isLinux()) { + testNative("fujitsu/0001/0001_0007.f"); + } + } } From 6aec2bca2f7e3c3febba15e6906aafa07443800a Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 20 Jul 2026 17:38:40 +0100 Subject: [PATCH 043/260] Add return unit test --- .../fortran/parser/stmt/return.expected.f90 | 6 + .../fortran/parser/stmt/return.f90 | 6 + .../fortran/parser/stmt/return.json | 674 ++++++++++++++++++ .../fortran/parser/FortranParserTest.java | 12 + 4 files changed, 698 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/stmt/return.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/stmt/return.f90 create mode 100644 FortranParser/resources-test/fortran/parser/stmt/return.json diff --git a/FortranParser/resources-test/fortran/parser/stmt/return.expected.f90 b/FortranParser/resources-test/fortran/parser/stmt/return.expected.f90 new file mode 100644 index 00000000..be421a8d --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/stmt/return.expected.f90 @@ -0,0 +1,6 @@ +SUBROUTINE check_positive(n, *) + INTEGER, INTENT(IN) :: n + + IF (n < 0) RETURN 1 ! Exit and jump to 1st label argument (*) + RETURN ! Exit normally +END SUBROUTINE check_positive \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/stmt/return.f90 b/FortranParser/resources-test/fortran/parser/stmt/return.f90 new file mode 100644 index 00000000..3ca97627 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/stmt/return.f90 @@ -0,0 +1,6 @@ +subroutine check_positive(n, *) + integer, intent(in) :: n + + if (n < 0) return 1 ! Exit and jump to 1st label argument (*) + return ! Exit normally +end subroutine check_positive \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/stmt/return.json b/FortranParser/resources-test/fortran/parser/stmt/return.json new file mode 100644 index 00000000..f4641b91 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/stmt/return.json @@ -0,0 +1,674 @@ +{ + "fileExtension": "f90", + "nodes": [ + { + "id": "0x55710387af00-Program", + "ProgramUnit": [ + "0x5571038afca0-ProgramUnit" + ] + }, + { + "id": "0x5571038afca0-ProgramUnit", + "variantKey": "SubroutineSubprogram", + "SubroutineSubprogram": "0x5571038a75b0-SubroutineSubprogram" + }, + { + "id": "0x5571038a75b0-SubroutineSubprogram", + "Statement": "0x5571038a76f8-Statement", + "SpecificationPart": "0x5571038a7650-SpecificationPart", + "ExecutionPart": "0x5571038a7638-ExecutionPart", + "Statement": "0x5571038a75b0-Statement" + }, + { + "id": "0x5571038a76f8-Statement", + "statement": "0x5571038a7708-SubroutineStmt", + "source": "subroutine check_positive(n, *)" + }, + { + "id": "0x5571038a7708-SubroutineStmt", + "Name": "0x5571038a7740-Name", + "DummyArg": [ + "0x5571038bda10-DummyArg", + "0x5571038bd330-DummyArg" + ] + }, + { + "id": "0x5571038a7740-Name", + "source": "check_positive" + }, + { + "id": "0x5571038bda10-DummyArg", + "variantKey": "Name", + "Name": "0x5571038bda10-Name" + }, + { + "id": "0x5571038bda10-Name", + "source": "n" + }, + { + "id": "0x5571038bd330-DummyArg", + "variantKey": "Star", + "Star": "0x5571038bd330-Star" + }, + { + "id": "0x5571038bd330-Star" + }, + { + "id": "0x5571038a7650-SpecificationPart", + "ImplicitPart": "0x5571038a7668-ImplicitPart", + "DeclarationConstruct": [ + "0x5571038794e0-DeclarationConstruct" + ] + }, + { + "id": "0x5571038a7668-ImplicitPart", + "ImplicitPartStmt": [ + "0x5571038a2100-ImplicitPartStmt" + ] + }, + { + "id": "0x5571038a2100-ImplicitPartStmt", + "variantKey": "Statement", + "Statement": "0x5571038a2100-Statement" + }, + { + "id": "0x5571038a2100-Statement", + "statement": "0x5571038afc30-ImplicitStmt", + "source": "implicit none" + }, + { + "id": "0x5571038afc30-ImplicitStmt", + "variantKey": "list" + }, + { + "id": "0x5571038794e0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5571038794e0-SpecificationConstruct" + }, + { + "id": "0x5571038794e0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5571038794e0-Statement" + }, + { + "id": "0x5571038794e0-Statement", + "statement": "0x5571038b9d80-TypeDeclarationStmt", + "source": "integer, intent(in) :: n" + }, + { + "id": "0x5571038b9d80-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5571038b9db0-DeclarationTypeSpec", + "AttrSpec": [ + "0x5571038be820-AttrSpec" + ], + "EntityDecl": [ + "0x5571038ba130-EntityDecl" + ] + }, + { + "id": "0x5571038b9db0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5571038b9db0-IntrinsicTypeSpec" + }, + { + "id": "0x5571038b9db0-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x5571038b9db0-IntegerTypeSpec" + }, + { + "id": "0x5571038b9db0-IntegerTypeSpec" + }, + { + "id": "0x5571038be820-AttrSpec", + "variantKey": "IntentSpec", + "IntentSpec": "0x5571038be820-IntentSpec" + }, + { + "id": "0x5571038be820-IntentSpec", + "Intent = In": "0x5571038be820-Intent = In", + "intent": "In" + }, + { + "id": "0x5571038be820-Intent = In", + "disambiguation": "Fortran::parser::IntentSpec::Intent", + "value": "In" + }, + { + "id": "0x5571038ba130-EntityDecl", + "Name": "0x5571038ba1e8-Name" + }, + { + "id": "0x5571038ba1e8-Name", + "source": "n" + }, + { + "id": "0x5571038a7638-ExecutionPart", + "ExecutionPartConstruct": [ + "0x5571038a5b00-ExecutionPartConstruct", + "0x557103887da0-ExecutionPartConstruct" + ] + }, + { + "id": "0x5571038a7638-ExecutionPartConstruct" + }, + { + "id": "0x5571038a5b00-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5571038a5b00-ExecutableConstruct" + }, + { + "id": "0x5571038a5b00-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5571038a5b00-Statement" + }, + { + "id": "0x5571038a5b00-Statement", + "statement": "0x5571038a5b10-ActionStmt", + "source": "if(n < 0) return 1" + }, + { + "id": "0x5571038a5b10-ActionStmt", + "variantKey": "IfStmt", + "IfStmt": "0x5571038afc60-IfStmt" + }, + { + "id": "0x5571038afc60-IfStmt", + "Expr": "0x5571038ba620-Expr", + "UnlabeledStatement": "0x5571038afc60-UnlabeledStatement" + }, + { + "id": "0x5571038ba620-Expr", + "variantKey": "LT", + "LT": "0x5571038ba640-LT" + }, + { + "id": "0x5571038ba640-LT", + "left": "0x5571038a57e0-Expr", + "right": "0x5571038ba800-Expr", + "op": "LT" + }, + { + "id": "0x5571038a57e0-Expr", + "variantKey": "Designator", + "Designator": "0x5571038ba400-Designator" + }, + { + "id": "0x5571038ba400-Designator", + "variantKey": "DataRef", + "DataRef": "0x5571038ba410-DataRef" + }, + { + "id": "0x5571038ba410-DataRef", + "variantKey": "Name", + "Name": "0x5571038ba410-Name" + }, + { + "id": "0x5571038ba410-Name", + "source": "n" + }, + { + "id": "0x5571038ba800-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5571038ba820-LiteralConstant" + }, + { + "id": "0x5571038ba820-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5571038ba820-IntLiteralConstant" + }, + { + "id": "0x5571038ba820-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x5571038afc60-UnlabeledStatement", + "statement": "0x5571038afc70-ActionStmt", + "source": "return 1" + }, + { + "id": "0x5571038afc70-ActionStmt", + "variantKey": "ReturnStmt", + "ReturnStmt": "0x5571038afb90-ReturnStmt" + }, + { + "id": "0x5571038afb90-ReturnStmt", + "Expr": "0x55710381a790-Expr" + }, + { + "id": "0x55710381a790-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55710381a7b0-LiteralConstant" + }, + { + "id": "0x55710381a7b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55710381a7b0-IntLiteralConstant" + }, + { + "id": "0x55710381a7b0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x557103887da0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x557103887da0-ExecutableConstruct" + }, + { + "id": "0x557103887da0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x557103887da0-Statement" + }, + { + "id": "0x557103887da0-Statement", + "statement": "0x557103887db0-ActionStmt", + "source": "return" + }, + { + "id": "0x557103887db0-ActionStmt", + "variantKey": "ReturnStmt", + "ReturnStmt": "0x5571038bcd20-ReturnStmt" + }, + { + "id": "0x5571038bcd20-ReturnStmt" + }, + { + "id": "0x5571038a75b0-Statement", + "statement": "0x5571038a75c0-EndSubroutineStmt", + "source": "end subroutine check_positive" + }, + { + "id": "0x5571038a75c0-EndSubroutineStmt", + "Name": "0x5571038a75c0-Name" + }, + { + "id": "0x5571038a75c0-Name", + "source": "check_positive" + } + ], + "comments": [ + { + "text": "! Exit and jump to 1st label argument (*)", + "stmtId": "0x5571038a5b00-Statement", + "trailing": true + }, + { + "text": "! Exit normally", + "stmtId": "0x557103887da0-Statement", + "trailing": true + } + ], + "enums": { + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "Fortran::common::ImportKind": [ + "Default", + "Only", + "None", + "All" + ], + "Fortran::common::OmpDependenceKind": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::common::OmpMemoryOrderType": [ + "Acq_Rel", + "Acquire", + "Relaxed", + "Release", + "Seq_Cst" + ], + "Fortran::common::OpenACCDeviceType": [ + "Star", + "Default", + "Nvidia", + "Radeon", + "Host", + "Multicore", + "None" + ], + "Fortran::parser::AccDataModifier::Modifier": [ + "ReadOnly", + "Zero" + ], + "Fortran::parser::AccessSpec::Kind": [ + "Public", + "Private" + ], + "Fortran::parser::BindEntity::Kind": [ + "Object", + "Common" + ], + "Fortran::parser::CompilerDirective::VectorLength::Kind": [ + "Auto", + "Fixed", + "Scalable" + ], + "Fortran::parser::ConnectSpec::CharExpr::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Encoding", + "Form", + "Pad", + "Position", + "Round", + "Sign", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::DefinedOperator::IntrinsicOperator": [ + "Power", + "Multiply", + "Divide", + "Add", + "Subtract", + "Concat", + "LT", + "LE", + "EQ", + "NE", + "GE", + "GT", + "NOT", + "AND", + "OR", + "EQV", + "NEQV" + ], + "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec": [ + "External", + "Type" + ], + "Fortran::parser::InquireSpec::CharVar::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Direct", + "Encoding", + "Form", + "Formatted", + "Iomsg", + "Name", + "Pad", + "Position", + "Read", + "Readwrite", + "Round", + "Sequential", + "Sign", + "Stream", + "Status", + "Unformatted", + "Write", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::InquireSpec::IntVar::Kind": [ + "Iostat", + "Nextrec", + "Number", + "Pos", + "Recl", + "Size" + ], + "Fortran::parser::InquireSpec::LogVar::Kind": [ + "Exist", + "Named", + "Opened", + "Pending" + ], + "Fortran::parser::IntentSpec::Intent": [ + "In", + "Out", + "InOut" + ], + "Fortran::parser::IoControlSpec::CharExpr::Kind": [ + "Advance", + "Blank", + "Decimal", + "Delim", + "Pad", + "Round", + "Sign" + ], + "Fortran::parser::ReductionOperator::Operator": [ + "Plus", + "Multiply", + "Max", + "Min", + "Iand", + "Ior", + "Ieor", + "And", + "Or", + "Eqv", + "Neqv" + ], + "Fortran::parser::OmpAccessGroup::Value": [ + "Cgroup" + ], + "Fortran::parser::OmpAdjustArgsClause::OmpAdjustOp::Value": [ + "Nothing", + "Need_Device_Ptr" + ], + "Fortran::parser::OmpAlwaysModifier::Value": [ + "Always" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpAttachModifier::Value": [ + "Always", + "Never", + "Auto" + ], + "Fortran::parser::OmpAutomapModifier::Value": [ + "Automap" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpCloseModifier::Value": [ + "Close" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default", + "Present" + ], + "Fortran::parser::OmpDeleteModifier::Value": [ + "Delete" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpDirectiveSpecification::Flag": [ + "DeprecatedSyntax", + "CrossesLabelDo" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpInteropType::Value": [ + "Target", + "Targetsync" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "Storage", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpObject::Invalid::Kind": [ + "BlankCommonBlock" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpPresentModifier::Value": [ + "Present" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpRefModifier::Value": [ + "Ref_Ptee", + "Ref_Ptr", + "Ref_Ptr_Ptee" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpSelfModifier::Value": [ + "Self" + ], + "Fortran::parser::OmpSeverityClause::SevLevel": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpThreadsetClause::ThreadsetPolicy": [ + "Omp_Pool", + "Omp_Team" + ], + "Fortran::parser::OmpTraitSelectorName::Value": [ + "Arch", + "Atomic_Default_Mem_Order", + "Condition", + "Device_Num", + "Extension", + "Isa", + "Kind", + "Requires", + "Simd", + "Uid", + "Vendor" + ], + "Fortran::parser::OmpTraitSetSelectorName::Value": [ + "Construct", + "Device", + "Implementation", + "Target_Device", + "User" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpxHoldModifier::Value": [ + "Ompx_Hold" + ], + "Fortran::parser::ProcedureStmt::Kind": [ + "ModuleProcedure", + "Procedure" + ], + "Fortran::parser::SavedEntity::Kind": [ + "Entity", + "Common" + ], + "Fortran::parser::StopStmt::Kind": [ + "Stop", + "ErrorStop" + ], + "Fortran::parser::UseStmt::ModuleNature": [ + "Intrinsic", + "Non_Intrinsic" + ] + } +} diff --git a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java index c71eada6..7f71cdb6 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -548,6 +548,18 @@ void testLegacyDoNative() { } } + @Test + void testReturn() { + testJson("stmt/return.json"); + } + + @Test + void testReturnNative() { + if (SpecsPlatforms.isLinux()) { + testNative("stmt/return.f90"); + } + } + @Test void testFujitsu0000_0000() { testJson("fujitsu/0000/0000_0000.json"); From 6a89f96f99e1f05fe7925b6c407c96e5dd583f0c Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 20 Jul 2026 23:47:07 +0100 Subject: [PATCH 044/260] Refactor dummy argument node and improve architecture to handle node variants --- .../ast/nodes/decl/NamedParameter.java | 25 +++++++++++++++++++ ...{DummyArgumentDecl.java => Parameter.java} | 6 +++-- .../fortran/ast/nodes/decl/StarParameter.java | 17 +++++++++++++ .../fortran/ast/nodes/program/Subroutine.java | 5 ---- .../ast/nodes/program/SubroutineStmt.java | 10 ++++---- .../fe/specs/fortran/parser/FlangToClass.java | 22 ++++++++++++---- .../fortran/parser/FortranJsonParser.java | 2 +- .../parser/processors/DeclProcessors.java | 15 ++++++----- .../fortran/parser/processors/Nodes.java | 8 +++--- 9 files changed, 79 insertions(+), 31 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/NamedParameter.java rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/{DummyArgumentDecl.java => Parameter.java} (53%) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/StarParameter.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/NamedParameter.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/NamedParameter.java new file mode 100644 index 00000000..05ab3746 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/NamedParameter.java @@ -0,0 +1,25 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class NamedParameter extends Parameter { + public static final DataKey NAME = KeyFactory.string("name"); + + public NamedParameter(DataStore data, Collection children) { + super(data, children); + } + + public String getName() { + return get(NAME); + } + + @Override + public String getCode() { + return getName(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/DummyArgumentDecl.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/Parameter.java similarity index 53% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/DummyArgumentDecl.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/Parameter.java index 6138ebf3..92211e02 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/DummyArgumentDecl.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/Parameter.java @@ -5,8 +5,10 @@ import java.util.Collection; -public class DummyArgumentDecl extends EntityDecl { - public DummyArgumentDecl(DataStore data, Collection children) { +/// Maps to the DummyArg node in the Flang representation +public abstract class Parameter extends FortranNode { + public Parameter(DataStore data, Collection children) { super(data, children); } } + diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/StarParameter.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/StarParameter.java new file mode 100644 index 00000000..8c34d449 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/StarParameter.java @@ -0,0 +1,17 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class StarParameter extends Parameter { + public StarParameter(DataStore data, Collection children) { + super(data, children); + } + + @Override + public String getCode() { + return "*"; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Subroutine.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Subroutine.java index 440a3572..f246494a 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Subroutine.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Subroutine.java @@ -4,13 +4,8 @@ import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.decl.DummyArgumentDecl; import java.util.Collection; -import java.util.List; -import java.util.stream.Collectors; - -import static pt.up.fe.specs.fortran.ast.FortranKeyword.*; public class Subroutine extends ProgramUnit { diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/SubroutineStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/SubroutineStmt.java index 32d994a1..3ac2a80a 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/SubroutineStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/SubroutineStmt.java @@ -2,7 +2,7 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.decl.DummyArgumentDecl; +import pt.up.fe.specs.fortran.ast.nodes.decl.Parameter; import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; import java.util.Collection; @@ -16,16 +16,16 @@ public SubroutineStmt(DataStore data, Collection children super(data, children); } - public List getDummyArgs() { - return getChildrenOf(DummyArgumentDecl.class); + public List getParameters() { + return getChildrenOf(Parameter.class); } @Override public String getStmtCode() { var subroutineName = getAncestor(Subroutine.class).getName(); - var argCode = getDummyArgs().stream() - .map(DummyArgumentDecl::getCode) + var argCode = getParameters().stream() + .map(Parameter::getCode) .collect(Collectors.joining(", ", "(", ")")); return keyword(SUBROUTINE) + " " + subroutineName + argCode; diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index e42b4679..928f984f 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -3,10 +3,7 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.alloc.Allocation; import pt.up.fe.specs.fortran.ast.nodes.alloc.StatVariable; -import pt.up.fe.specs.fortran.ast.nodes.decl.DataStmtValue; -import pt.up.fe.specs.fortran.ast.nodes.decl.DummyArgumentDecl; -import pt.up.fe.specs.fortran.ast.nodes.decl.EntityDecl; -import pt.up.fe.specs.fortran.ast.nodes.decl.KindSelector; +import pt.up.fe.specs.fortran.ast.nodes.decl.*; import pt.up.fe.specs.fortran.ast.nodes.expr.*; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentLoopControl; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentRange; @@ -42,10 +39,12 @@ import java.util.HashMap; import java.util.Map; import java.util.Optional; +import java.util.function.Function; public class FlangToClass { private static final Map> NAME_TO_CLASS = new HashMap<>(); + private static final Map>> NAME_TO_CONCRETE_CLASS = new HashMap<>(); static { NAME_TO_CLASS.put(FlangName.PROGRAM, FortranFile.class); @@ -62,7 +61,8 @@ public class FlangToClass { /// DECLs NAME_TO_CLASS.put(FlangName.ENTITY_DECL, EntityDecl.class); - NAME_TO_CLASS.put(FlangName.DUMMY_ARG, DummyArgumentDecl.class); + NAME_TO_CLASS.put(FlangName.DUMMY_ARG, Parameter.class); + NAME_TO_CONCRETE_CLASS.put(FlangName.DUMMY_ARG, FlangToClass::chooseParameter); NAME_TO_CLASS.put(FlangName.DATA_STMT_VALUE, DataStmtValue.class); /// STMTs @@ -185,6 +185,10 @@ public class FlangToClass { NAME_TO_CLASS.put(FlangName.NOWAIT, OmpNowaitClause.class); } + private static Class chooseParameter(FlangAttributes attrs) { + return attrs.has("Name") ? NamedParameter.class : StarParameter.class; + } + public static boolean isClass(String type) { return FlangName.convertTry(type).map(NAME_TO_CLASS::containsKey).orElse(false); } @@ -193,4 +197,12 @@ public static Optional> getClass(String type) { return FlangName.convertTry(type).map(NAME_TO_CLASS::get); } + public static Optional> getConcreteClass(String type, FlangAttributes attrs) { + return FlangName.convertTry(type).map(name -> { + if (NAME_TO_CONCRETE_CLASS.containsKey(name)) { + return NAME_TO_CONCRETE_CLASS.get(name).apply(attrs); + } + return NAME_TO_CLASS.get(name); + }); + } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java index 69a37242..ff4331c9 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java @@ -148,7 +148,7 @@ private void processNodeData(Map nodeData) { // Get class corresponding to the kind - var fortranClassTry = FlangToClass.getClass(kind); + var fortranClassTry = FlangToClass.getConcreteClass(kind, new FlangAttributes(nodeData)); // If no class assume that kind is to be ignored // Otherwise, create node diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java index 999983ac..235d1ffc 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java @@ -1,9 +1,6 @@ package pt.up.fe.specs.fortran.parser.processors; -import pt.up.fe.specs.fortran.ast.nodes.decl.DataStmtValue; -import pt.up.fe.specs.fortran.ast.nodes.decl.DummyArgumentDecl; -import pt.up.fe.specs.fortran.ast.nodes.decl.EntityDecl; -import pt.up.fe.specs.fortran.ast.nodes.decl.Initialization; +import pt.up.fe.specs.fortran.ast.nodes.decl.*; import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; @@ -68,10 +65,12 @@ public void dataStmtValue(DataStmtValue dataStmtValue) { dataStmtValue.addChild(constant); } - public void dummyArgumentDecl(DummyArgumentDecl dummyArgumentDecl) { - var nameId = attributes(dummyArgumentDecl).getVariantString(); - var name = attributes().get(nameId).getString("source"); + public void namedParameter(NamedParameter namedParameter) { + var name = attributes().getString(namedParameter, "source", FlangName.NAME); + namedParameter.set(NamedParameter.NAME, name); + } + + public void starParameter(StarParameter starParameter) { - dummyArgumentDecl.set(DummyArgumentDecl.NAME, name); } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index e362dc9c..db74c2bb 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -3,10 +3,7 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.alloc.Allocation; import pt.up.fe.specs.fortran.ast.nodes.alloc.StatVariable; -import pt.up.fe.specs.fortran.ast.nodes.decl.DataStmtValue; -import pt.up.fe.specs.fortran.ast.nodes.decl.DummyArgumentDecl; -import pt.up.fe.specs.fortran.ast.nodes.decl.EntityDecl; -import pt.up.fe.specs.fortran.ast.nodes.decl.KindSelector; +import pt.up.fe.specs.fortran.ast.nodes.decl.*; import pt.up.fe.specs.fortran.ast.nodes.expr.*; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentLoopControl; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentRange; @@ -66,7 +63,8 @@ public Nodes(FortranJsonResult data) { var d = new DeclProcessors(data); processors.put(EntityDecl.class, d::entityDecl); processors.put(DataStmtValue.class, d::dataStmtValue); - processors.put(DummyArgumentDecl.class, d::dummyArgumentDecl); + processors.put(NamedParameter.class, d::namedParameter); + processors.put(StarParameter.class, d::starParameter); var v = new VariableProcessor(data); processors.put(DataRef.class, v::dataRefProcessor); From 4448052ea76fe660bcf1950eb93ad2eac41edd21 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 21 Jul 2026 00:02:57 +0100 Subject: [PATCH 045/260] Add return statement to AST --- .../fe/specs/fortran/ast/FortranKeyword.java | 1 + .../fortran/ast/nodes/stmt/ReturnStmt.java | 28 +++++++++++++++++++ .../up/fe/specs/fortran/parser/FlangName.java | 1 + 3 files changed, 30 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ReturnStmt.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java index 401141fb..456894da 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -22,6 +22,7 @@ public enum FortranKeyword { CONTAINS, ALLOCATE, DEALLOCATE, + RETURN, // Conditional statements IF, diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ReturnStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ReturnStmt.java new file mode 100644 index 00000000..ae0b47b5 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ReturnStmt.java @@ -0,0 +1,28 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.expr.IntLiteral; + +import java.util.Collection; +import java.util.Optional; + +import static pt.up.fe.specs.fortran.ast.FortranKeyword.RETURN; + +public class ReturnStmt extends ExecutableStmt { + public ReturnStmt(DataStore data, Collection children) { + super(data, children); + } + + public Optional getTarget() { + return getChildOf(IntLiteral.class); + } + + @Override + public String getStmtCode() { + var targetOpt = getTarget(); + var targetSuffix = targetOpt.map(target -> " " + target.getCode()).orElse(""); + + return keyword(RETURN) + targetSuffix; + } +} diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 422bede2..e73487cd 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -66,6 +66,7 @@ public enum FlangName implements StringProvider { COMMON_STMT, COMMON_STMT_BLOCK, COMMON_BLOCK_OBJECT, + RETURN_STMT, /// Conditional Statements IF_CONSTRUCT, From 466dba7127c257be714ca346714b7b5ea75856eb Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 21 Jul 2026 00:15:12 +0100 Subject: [PATCH 046/260] Refactor return statement node --- .../fe/specs/fortran/ast/nodes/stmt/ReturnStmt.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ReturnStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ReturnStmt.java index ae0b47b5..d6d95d5e 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ReturnStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ReturnStmt.java @@ -1,8 +1,9 @@ package pt.up.fe.specs.fortran.ast.nodes.stmt; +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.expr.IntLiteral; import java.util.Collection; import java.util.Optional; @@ -10,18 +11,20 @@ import static pt.up.fe.specs.fortran.ast.FortranKeyword.RETURN; public class ReturnStmt extends ExecutableStmt { + public static final DataKey> TARGET = KeyFactory.optional("target"); + public ReturnStmt(DataStore data, Collection children) { super(data, children); } - public Optional getTarget() { - return getChildOf(IntLiteral.class); + public Optional getTarget() { + return get(TARGET); } @Override public String getStmtCode() { var targetOpt = getTarget(); - var targetSuffix = targetOpt.map(target -> " " + target.getCode()).orElse(""); + var targetSuffix = targetOpt.map(target -> " " + target).orElse(""); return keyword(RETURN) + targetSuffix; } From 1941468afe32b90918f4bfb88fa85dca1497d15c Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 21 Jul 2026 00:45:42 +0100 Subject: [PATCH 047/260] Add return statement processing and do some adjustments to executable statement structure --- .../up/fe/specs/fortran/ast/FortranNodeFactory.java | 4 ++-- .../fortran/ast/nodes/omp/OmpBlockConstruct.java | 2 +- .../fe/specs/fortran/ast/nodes/omp/OmpConstruct.java | 4 ++-- .../specs/fortran/ast/nodes/omp/OmpLoopConstruct.java | 2 +- .../fe/specs/fortran/ast/nodes/program/Execution.java | 3 --- .../fortran/ast/nodes/stmt/CompilerDirective.java | 3 +-- .../fe/specs/fortran/ast/nodes/stmt/FormatStmt.java | 1 - .../fe/specs/fortran/ast/nodes/stmt/ReturnStmt.java | 2 +- .../fortran/ast/nodes/stmt/loop/DoConstruct.java | 1 - .../ast/nodes/stmt/selectcase/CaseConstruct.java | 1 - .../pt/up/fe/specs/fortran/parser/FlangToClass.java | 2 +- .../up/fe/specs/fortran/parser/processors/Nodes.java | 1 + .../fortran/parser/processors/OmpProcessors.java | 4 ---- .../fortran/parser/processors/StmtProcessors.java | 11 ++++++++++- 14 files changed, 20 insertions(+), 21 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java index d3ce0a06..bdb8d2f2 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java @@ -127,7 +127,7 @@ public FortranFile fortranFile(List units) { } - public MainProgram mainProgram(String programName, List execution) { + public MainProgram mainProgram(String programName, List execution) { DataStore data = newDataStore(MainProgram.class); data.set(MainProgram.NAME, Optional.ofNullable(programName)); @@ -138,7 +138,7 @@ public MainProgram mainProgram(String programName, List executio return new MainProgram(data, List.of(programStmt, executionBlock, endProgramStmt)); } - public Execution execution(List statements) { + public Execution execution(List statements) { DataStore data = newDataStore(Execution.class); return new Execution(data, statements); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpBlockConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpBlockConstruct.java index 054fece5..9f5268d0 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpBlockConstruct.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpBlockConstruct.java @@ -25,7 +25,7 @@ public Execution setBody(Execution body) { } @Override - public String getStmtCode() { + public String getCode() { var code = new StringBuilder(); String directive = get(KINDS).stream() .map(OmpDirectiveKind::getString) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpConstruct.java index 8ed25563..1c59f5e6 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpConstruct.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpConstruct.java @@ -6,13 +6,13 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpClause; import pt.up.fe.specs.fortran.ast.nodes.omp.enums.OmpDirectiveKind; -import pt.up.fe.specs.fortran.ast.nodes.stmt.ExecutableStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.ExecutableConstruct; import java.util.Collection; import java.util.List; import java.util.stream.Collectors; -abstract public class OmpConstruct extends ExecutableStmt { +abstract public class OmpConstruct extends ExecutableConstruct { public final static DataKey> KINDS = KeyFactory.enumerationMulti("kinds", OmpDirectiveKind.class); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpLoopConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpLoopConstruct.java index 53f5e94c..5fa2ba15 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpLoopConstruct.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpLoopConstruct.java @@ -43,7 +43,7 @@ public boolean hasNowait() { } @Override - public String getStmtCode() { + public String getCode() { var code = new StringBuilder(); String directive = get(KINDS).stream() .map(OmpDirectiveKind::getString) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Execution.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Execution.java index 1820c771..641ac2a3 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Execution.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Execution.java @@ -2,11 +2,8 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.decl.LabelDecl; -import pt.up.fe.specs.fortran.ast.nodes.stmt.ExecutableStmt; import java.util.Collection; -import java.util.List; /** diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CompilerDirective.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CompilerDirective.java index ecbe363a..4ea9d874 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CompilerDirective.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CompilerDirective.java @@ -8,8 +8,7 @@ import java.util.List; import java.util.stream.Collectors; -public class CompilerDirective extends ExecutableStmt { - +public class CompilerDirective extends Stmt { public CompilerDirective(DataStore data, Collection children) { super(data, children); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/FormatStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/FormatStmt.java index b26bc83f..d9db4a82 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/FormatStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/FormatStmt.java @@ -6,7 +6,6 @@ import java.util.Collection; public class FormatStmt extends ExecutableStmt { - public FormatStmt(DataStore data, Collection children) { super(data, children); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ReturnStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ReturnStmt.java index d6d95d5e..4c0a322c 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ReturnStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ReturnStmt.java @@ -10,7 +10,7 @@ import static pt.up.fe.specs.fortran.ast.FortranKeyword.RETURN; -public class ReturnStmt extends ExecutableStmt { +public class ReturnStmt extends ActionStmt { public static final DataKey> TARGET = KeyFactory.optional("target"); public ReturnStmt(DataStore data, Collection children) { diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java index ea17e640..a1c8739d 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java @@ -10,7 +10,6 @@ import pt.up.fe.specs.fortran.ast.nodes.program.Execution; import pt.up.fe.specs.fortran.ast.nodes.stmt.ContinueStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.ExecutableConstruct; -import pt.up.fe.specs.fortran.ast.nodes.stmt.ExecutableStmt; import java.util.Collection; import java.util.Optional; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/CaseConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/CaseConstruct.java index 7ade8740..af6fa581 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/CaseConstruct.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/CaseConstruct.java @@ -5,7 +5,6 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.stmt.ExecutableConstruct; -import pt.up.fe.specs.fortran.ast.nodes.stmt.ExecutableStmt; import java.util.Collection; import java.util.List; diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 928f984f..e8d2338d 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -103,9 +103,9 @@ public class FlangToClass { NAME_TO_CLASS.put(FlangName.CONTINUE_STMT, ContinueStmt.class); NAME_TO_CLASS.put(FlangName.PARAMETER_STMT, ParameterStmt.class); NAME_TO_CLASS.put(FlangName.NAMED_CONSTANT_DEF, NamedConstantDef.class); - NAME_TO_CLASS.put(FlangName.DATA_STMT, DataStmt.class); NAME_TO_CLASS.put(FlangName.DATA_STMT_SET, DataStmtSet.class); + NAME_TO_CLASS.put(FlangName.RETURN_STMT, ReturnStmt.class); /// Variables //NAME_TO_CLASS.put(FlangName.DATA_REF, DataRef.class); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index db74c2bb..3cbc93ef 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -115,6 +115,7 @@ public Nodes(FortranJsonResult data) { processors.put(EndProgramStmt.class, s::endProgramStmt); processors.put(SubroutineStmt.class, s::subroutineStmt); processors.put(EndSubroutineStmt.class, s::endSubroutineStmt); + processors.put(ReturnStmt.class, s::returnStmt); var e = new ExprProcessors(data); processors.put(StringLiteral.class, e::stringLiteral); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/OmpProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/OmpProcessors.java index 7608c1ef..1f23df81 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/OmpProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/OmpProcessors.java @@ -25,8 +25,6 @@ public OmpProcessors(FortranJsonResult data, StmtProcessors stmtProcessors) { } public void ompBlockConstruct(OmpBlockConstruct ompBlockConstruct) { - stmtProcessors.stmt(ompBlockConstruct); - String directive = attributes().getString(ompBlockConstruct, "directive", FlangName.OMP_BEGIN_DIRECTIVE, FlangName.OMP_DIRECTIVE_NAME); String clauseList = attributes().getString(ompBlockConstruct, "id", FlangName.OMP_BEGIN_DIRECTIVE, FlangName.OMP_CLAUSE_LIST); @@ -42,8 +40,6 @@ public void ompBlockConstruct(OmpBlockConstruct ompBlockConstruct) { } public void ompLoopConstruct(OmpLoopConstruct ompLoopConstruct) { - stmtProcessors.stmt(ompLoopConstruct); - String directive = attributes().getString(ompLoopConstruct, "directive", FlangName.OMP_BEGIN_LOOP_DIRECTIVE, FlangName.OMP_DIRECTIVE_NAME); String clauseList = attributes().getString(ompLoopConstruct, "id", FlangName.OMP_BEGIN_LOOP_DIRECTIVE, FlangName.OMP_CLAUSE_LIST); String endClauseList = attributes().getString(ompLoopConstruct, "id", FlangName.OMP_END_LOOP_DIRECTIVE, FlangName.OMP_CLAUSE_LIST); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 9dd220f9..c5432420 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -414,7 +414,7 @@ public void endDoStmt(EndDoStmt endDoStmt) { } public void compilerDirective(CompilerDirective compilerDirective) { - executableStmt(compilerDirective); + stmt(compilerDirective); var variantKey = attributes(compilerDirective).getVariantKey(); compilerDirective.addChildren(getChildren(compilerDirective, variantKey)); @@ -599,4 +599,13 @@ public void subroutineStmt(SubroutineStmt subroutineStmt) { public void endSubroutineStmt(EndSubroutineStmt endSubroutineStmt) { stmt(endSubroutineStmt); } + + public void returnStmt(ReturnStmt returnStmt) { + executableStmt(returnStmt); + + var target = attributes() + .getOptionalString(returnStmt, "CharBlock", FlangName.EXPR, FlangName.LITERAL_CONSTANT, FlangName.INT_LITERAL_CONSTANT) + .map(Integer::parseInt); + returnStmt.set(ReturnStmt.TARGET, target); + } } From 562c2dc131564d2714bbd60d63ec7576fb5d1e30 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 21 Jul 2026 00:57:39 +0100 Subject: [PATCH 048/260] Fix intent casing --- .../src/pt/up/fe/specs/fortran/ast/FortranKeyword.java | 1 + .../src/pt/up/fe/specs/fortran/ast/FortranKeywords.java | 3 +++ .../fortran/ast/nodes/type/attributes/IntentSpec.java | 8 +++++++- .../ast/nodes/type/attributes/enums/IntentKind.java | 4 ++++ 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java index 456894da..63d3302c 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -45,6 +45,7 @@ public enum FortranKeyword { PARAMETER, DATA, COMMON, + INTENT, OMP; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeywords.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeywords.java index 81eb999c..da0dd78b 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeywords.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeywords.java @@ -20,4 +20,7 @@ public String get(FortranKeyword keyword) { return keyword.getKeyword(lowercase); } + public boolean isLowercase() { + return lowercase; + } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/IntentSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/IntentSpec.java index 9255db1f..1701955e 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/IntentSpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/IntentSpec.java @@ -3,11 +3,14 @@ import org.suikasoft.jOptions.Datakey.DataKey; import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranContext; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.enums.IntentKind; import java.util.Collection; +import static pt.up.fe.specs.fortran.ast.FortranKeyword.INTENT; + public class IntentSpec extends AttributeSpecifier { public final static DataKey KIND = KeyFactory.enumeration("kind", IntentKind.class); @@ -22,6 +25,9 @@ public IntentKind getKind() { @Override public String getCode() { - return "intent(" + getKind().getString().toLowerCase() + ")"; + var kind = getKind(); + var lowercase = getContext().get(FortranContext.FORTRAN_KEYWORDS).isLowercase(); + + return keyword(INTENT) + "(" + kind.getCode(lowercase) + ")"; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/enums/IntentKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/enums/IntentKind.java index 184076f3..909edb9a 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/enums/IntentKind.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/enums/IntentKind.java @@ -28,4 +28,8 @@ public static Optional convertTry(String name) { public String getString() { return this.string; } + + public String getCode(boolean lowercase) { + return lowercase ? name().toLowerCase() : name(); + } } From 3d2a52263623f1b3402311f87e3eca9e2361533c Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 21 Jul 2026 01:00:35 +0100 Subject: [PATCH 049/260] Fix subroutine test with fixed intent kind casing --- .../fortran/ast/nodes/type/attributes/enums/IntentKind.java | 2 +- .../resources-test/fortran/parser/subroutine.expected.f90 | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/enums/IntentKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/enums/IntentKind.java index 909edb9a..13d05e29 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/enums/IntentKind.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/enums/IntentKind.java @@ -30,6 +30,6 @@ public String getString() { } public String getCode(boolean lowercase) { - return lowercase ? name().toLowerCase() : name(); + return lowercase ? string.toLowerCase() : string.toUpperCase(); } } diff --git a/FortranParser/resources-test/fortran/parser/subroutine.expected.f90 b/FortranParser/resources-test/fortran/parser/subroutine.expected.f90 index 4043bc3c..fb5650c7 100644 --- a/FortranParser/resources-test/fortran/parser/subroutine.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/subroutine.expected.f90 @@ -1,7 +1,7 @@ SUBROUTINE add_numbers(a, b, result, useless) - INTEGER, intent(in) :: a, b - INTEGER, intent(out) :: result - INTEGER, intent(inout) :: useless + INTEGER, INTENT(IN) :: a, b + INTEGER, INTENT(OUT) :: result + INTEGER, INTENT(INOUT) :: useless result = a + b END SUBROUTINE add_numbers From f28132572c28ecf0cdf888df8934bedb6a0bfede Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 21 Jul 2026 01:07:49 +0100 Subject: [PATCH 050/260] Correct Fujitsu test expected code --- .../fortran/ast/nodes/stmt/ifstmt/IfStmt.java | 2 +- .../parser/fujitsu/0001/0001_0007.expected.f | 52 +++++++++---------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfStmt.java index 485c0e8e..0444fe32 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfStmt.java @@ -30,7 +30,7 @@ public String getStmtCode() { "%s (%s) %s", keyword(FortranKeyword.IF), condition.getCode(), - thenAction.getCode() + thenAction.getStmtCode() ); } } diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.expected.f b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.expected.f index b8e996fe..b144a4f5 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.expected.f +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.expected.f @@ -1,50 +1,50 @@ - INTEGER :: A(1000), B(1000), C(1000), CODE - DATA A/1000*0/, B/1000*0/, C/1000*0/ + INTEGER :: a(1000), b(1000), c(1000), code + DATA a / 1000*0 /, B / 1000*0 /, C / 1000*0 / C - CODE = 0 - CALL SUB1(A, B, C, 1000, CODE) + code = 0 + CALL sub1(a, b, c, 1000, code) C - IF (CODE == 0) WRITE(6,*) 'OK' + IF (code == 0) WRITE(6,*) "OK" C STOP END PROGRAM C - SUBROUTINE SUB1(A, B, C, N, CODE) - INTEGER A(N), B(N), C(N), CODE + SUBROUTINE sub1(a, b, c, n, code) + INTEGER a(n), b(n), c(n), code C - A(1:N) = B(1:N) + 1 - B(1:N) = B(1:N) + 1 - C(1:N) = C(1:N) + 1 + a(1:n) = b(1:n) + 1 + b(1:n) = b(1:n) + 1 + c(1:n) = c(1:n) + 1 C - DO 10 I = 1,1000 - IF(A(I) /= 1) THEN - WRITE(6,*) 'NG' - WRITE(6,*) 'ELEMENT NUMBER = A(',I,')' - CODE = 1 + DO 10 i = 1, 1000 + IF (a(i) /= 1) THEN + WRITE(6, *) "NG" + WRITE(6, *) "ELEMENT NUMBER = a(", i, ")" + code = 1 GO TO 20 END IF 10 CONTINUE C 20 CONTINUE - DO 30 I=1,1000 - IF (B(I) /= 1) THEN - WRITE(6,*) 'NG' - WRITE(6,*) 'ELEMENT NUMBER = B(',I,')' - CODE = 1 + DO 30 i = 1, 1000 + IF (b(i) /= 1) THEN + WRITE(6, *) "NG" + WRITE(6, *) "ELEMENT NUMBER = B(", i, ")" + code = 1 GO TO 40 ENDIF 30 CONTINUE C 40 CONTINUE - DO 50 I=1,1000 - IF(C(I).NE.1) THEN - WRITE(6,*) 'NG' - WRITE(6,*) 'ELEMENT NUMBER = C(',I,')' - CODE = 1 + DO 50 i = 1, 1000 + IF (c(i) /= 1) THEN + WRITE(6, *) "NG" + WRITE(6, *) "ELEMENT NUMBER = C(", i, ")" + code = 1 GO TO 60 END IF 50 CONTINUE C 60 CONTINUE RETURN - END SUBROUTINE \ No newline at end of file + END SUBROUTINE sub1 \ No newline at end of file From a3672ab869cc92686fb6ff28f75ddb1c7cc37cea Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 21 Jul 2026 16:26:16 +0100 Subject: [PATCH 051/260] Regenerate dump --- .../parser/fujitsu/0001/0001_0007.expected.f | 4 +- .../parser/fujitsu/0001/0001_0007.json | 2694 +++++++++-------- 2 files changed, 1372 insertions(+), 1326 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.expected.f b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.expected.f index b144a4f5..6bcbe151 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.expected.f +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.expected.f @@ -1,5 +1,5 @@ INTEGER :: a(1000), b(1000), c(1000), code - DATA a / 1000*0 /, B / 1000*0 /, C / 1000*0 / + DATA a / 1000*0 /, b / 1000*0 /, c / 1000*0 / C code = 0 CALL sub1(a, b, c, 1000, code) @@ -19,7 +19,7 @@ SUBROUTINE sub1(a, b, c, n, code) DO 10 i = 1, 1000 IF (a(i) /= 1) THEN WRITE(6, *) "NG" - WRITE(6, *) "ELEMENT NUMBER = a(", i, ")" + WRITE(6, *) "ELEMENT NUMBER = A(", i, ")" code = 1 GO TO 20 END IF diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.json b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.json index 172c2a13..d246710a 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.json +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.json @@ -2,3306 +2,3352 @@ "fileExtension": "f", "nodes": [ { - "id": "0x55ddae699f00-Program", + "id": "0x557b1f343f00-Program", "ProgramUnit": [ - "0x55ddae6d60a0-ProgramUnit", - "0x55ddae6d5f10-ProgramUnit" + "0x557b1f3800a0-ProgramUnit", + "0x557b1f37ff10-ProgramUnit" ] }, { - "id": "0x55ddae6d60a0-ProgramUnit", + "id": "0x557b1f3800a0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x55ddae6d6cd0-MainProgram" + "MainProgram": "0x557b1f380cd0-MainProgram" }, { - "id": "0x55ddae6d6cd0-MainProgram", - "SpecificationPart": "0x55ddae6d6d70-SpecificationPart", - "ExecutionPart": "0x55ddae6d6d58-ExecutionPart", - "Statement": "0x55ddae6d6cd0-Statement" + "id": "0x557b1f380cd0-MainProgram", + "SpecificationPart": "0x557b1f380d70-SpecificationPart", + "ExecutionPart": "0x557b1f380d58-ExecutionPart", + "Statement": "0x557b1f380cd0-Statement" }, { - "id": "0x55ddae6d6d70-SpecificationPart", - "ImplicitPart": "0x55ddae6d6d88-ImplicitPart", + "id": "0x557b1f380d70-SpecificationPart", + "ImplicitPart": "0x557b1f380d88-ImplicitPart", "DeclarationConstruct": [ - "0x55ddae6c6010-DeclarationConstruct", - "0x55ddae6c7aa0-DeclarationConstruct" + "0x557b1f370010-DeclarationConstruct", + "0x557b1f371aa0-DeclarationConstruct" ] }, { - "id": "0x55ddae6d6d88-ImplicitPart" + "id": "0x557b1f380d88-ImplicitPart" }, { - "id": "0x55ddae6c6010-DeclarationConstruct", + "id": "0x557b1f370010-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55ddae6c6010-SpecificationConstruct" + "SpecificationConstruct": "0x557b1f370010-SpecificationConstruct" }, { - "id": "0x55ddae6c6010-SpecificationConstruct", + "id": "0x557b1f370010-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55ddae6c6010-Statement" + "Statement": "0x557b1f370010-Statement" }, { - "id": "0x55ddae6c6010-Statement", - "statement": "0x55ddae6d6b40-TypeDeclarationStmt", + "id": "0x557b1f370010-Statement", + "statement": "0x557b1f380b40-TypeDeclarationStmt", "source": "integera(1000),b(1000),c(1000),code" }, { - "id": "0x55ddae6d6b40-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55ddae6d6b70-DeclarationTypeSpec", + "id": "0x557b1f380b40-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x557b1f380b70-DeclarationTypeSpec", "EntityDecl": [ - "0x55ddae6c5e40-EntityDecl", - "0x55ddae6c6620-EntityDecl", - "0x55ddae6d67b0-EntityDecl", - "0x55ddae6c5d50-EntityDecl" + "0x557b1f36fe40-EntityDecl", + "0x557b1f370620-EntityDecl", + "0x557b1f3807b0-EntityDecl", + "0x557b1f36fd50-EntityDecl" ] }, { - "id": "0x55ddae6d6b70-DeclarationTypeSpec", + "id": "0x557b1f380b70-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55ddae6d6b70-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x557b1f380b70-IntrinsicTypeSpec" }, { - "id": "0x55ddae6d6b70-IntrinsicTypeSpec", + "id": "0x557b1f380b70-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55ddae6d6b70-IntegerTypeSpec" + "IntegerTypeSpec": "0x557b1f380b70-IntegerTypeSpec" }, { - "id": "0x55ddae6d6b70-IntegerTypeSpec" + "id": "0x557b1f380b70-IntegerTypeSpec" }, { - "id": "0x55ddae6c5e40-EntityDecl", - "Name": "0x55ddae6c5ef8-Name", - "ArraySpec": "0x55ddae6c5ec0-ArraySpec" + "id": "0x557b1f36fe40-EntityDecl", + "Name": "0x557b1f36fef8-Name", + "ArraySpec": "0x557b1f36fec0-ArraySpec" }, { - "id": "0x55ddae6c5ef8-Name", + "id": "0x557b1f36fef8-Name", "source": "a" }, { - "id": "0x55ddae6c5ec0-ArraySpec", + "id": "0x557b1f36fec0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55ddae6d8ba0-ExplicitShapeSpec" + "0x557b1f382ba0-ExplicitShapeSpec" ] }, { - "id": "0x55ddae6d8ba0-ExplicitShapeSpec", - "upper_bound": "0x55ddae6d8ba0-SpecificationExpr" + "id": "0x557b1f382ba0-ExplicitShapeSpec", + "upper_bound": "0x557b1f382ba0-SpecificationExpr" }, { - "id": "0x55ddae6d8ba0-SpecificationExpr", - "Expr": "0x55ddae639790-Expr" + "id": "0x557b1f382ba0-SpecificationExpr", + "Expr": "0x557b1f2e3790-Expr" }, { - "id": "0x55ddae639790-Expr", + "id": "0x557b1f2e3790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6397b0-LiteralConstant" + "LiteralConstant": "0x557b1f2e37b0-LiteralConstant" }, { - "id": "0x55ddae6397b0-LiteralConstant", + "id": "0x557b1f2e37b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6397b0-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f2e37b0-IntLiteralConstant" }, { - "id": "0x55ddae6397b0-IntLiteralConstant", + "id": "0x557b1f2e37b0-IntLiteralConstant", "CharBlock": "1000" }, { - "id": "0x55ddae6c6620-EntityDecl", - "Name": "0x55ddae6c66d8-Name", - "ArraySpec": "0x55ddae6c66a0-ArraySpec" + "id": "0x557b1f370620-EntityDecl", + "Name": "0x557b1f3706d8-Name", + "ArraySpec": "0x557b1f3706a0-ArraySpec" }, { - "id": "0x55ddae6c66d8-Name", + "id": "0x557b1f3706d8-Name", "source": "b" }, { - "id": "0x55ddae6c66a0-ArraySpec", + "id": "0x557b1f3706a0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55ddae6d8bd0-ExplicitShapeSpec" + "0x557b1f382bd0-ExplicitShapeSpec" ] }, { - "id": "0x55ddae6d8bd0-ExplicitShapeSpec", - "upper_bound": "0x55ddae6d8bd0-SpecificationExpr" + "id": "0x557b1f382bd0-ExplicitShapeSpec", + "upper_bound": "0x557b1f382bd0-SpecificationExpr" }, { - "id": "0x55ddae6d8bd0-SpecificationExpr", - "Expr": "0x55ddae64f1d0-Expr" + "id": "0x557b1f382bd0-SpecificationExpr", + "Expr": "0x557b1f2f91d0-Expr" }, { - "id": "0x55ddae64f1d0-Expr", + "id": "0x557b1f2f91d0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae64f1f0-LiteralConstant" + "LiteralConstant": "0x557b1f2f91f0-LiteralConstant" }, { - "id": "0x55ddae64f1f0-LiteralConstant", + "id": "0x557b1f2f91f0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae64f1f0-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f2f91f0-IntLiteralConstant" }, { - "id": "0x55ddae64f1f0-IntLiteralConstant", + "id": "0x557b1f2f91f0-IntLiteralConstant", "CharBlock": "1000" }, { - "id": "0x55ddae6d67b0-EntityDecl", - "Name": "0x55ddae6d6868-Name", - "ArraySpec": "0x55ddae6d6830-ArraySpec" + "id": "0x557b1f3807b0-EntityDecl", + "Name": "0x557b1f380868-Name", + "ArraySpec": "0x557b1f380830-ArraySpec" }, { - "id": "0x55ddae6d6868-Name", + "id": "0x557b1f380868-Name", "source": "c" }, { - "id": "0x55ddae6d6830-ArraySpec", + "id": "0x557b1f380830-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55ddae6d8c00-ExplicitShapeSpec" + "0x557b1f382c00-ExplicitShapeSpec" ] }, { - "id": "0x55ddae6d8c00-ExplicitShapeSpec", - "upper_bound": "0x55ddae6d8c00-SpecificationExpr" + "id": "0x557b1f382c00-ExplicitShapeSpec", + "upper_bound": "0x557b1f382c00-SpecificationExpr" }, { - "id": "0x55ddae6d8c00-SpecificationExpr", - "Expr": "0x55ddae6d66c0-Expr" + "id": "0x557b1f382c00-SpecificationExpr", + "Expr": "0x557b1f3806c0-Expr" }, { - "id": "0x55ddae6d66c0-Expr", + "id": "0x557b1f3806c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6d66e0-LiteralConstant" + "LiteralConstant": "0x557b1f3806e0-LiteralConstant" }, { - "id": "0x55ddae6d66e0-LiteralConstant", + "id": "0x557b1f3806e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6d66e0-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f3806e0-IntLiteralConstant" }, { - "id": "0x55ddae6d66e0-IntLiteralConstant", + "id": "0x557b1f3806e0-IntLiteralConstant", "CharBlock": "1000" }, { - "id": "0x55ddae6c5d50-EntityDecl", - "Name": "0x55ddae6c5e08-Name" + "id": "0x557b1f36fd50-EntityDecl", + "Name": "0x557b1f36fe08-Name" }, { - "id": "0x55ddae6c5e08-Name", + "id": "0x557b1f36fe08-Name", "source": "code" }, { - "id": "0x55ddae6c7aa0-DeclarationConstruct", + "id": "0x557b1f371aa0-DeclarationConstruct", "variantKey": "Statement", - "Statement": "0x55ddae6c7aa0-Statement" + "Statement": "0x557b1f371aa0-Statement" }, { - "id": "0x55ddae6c7aa0-Statement", - "statement": "0x55ddae6d8af0-DataStmt", + "id": "0x557b1f371aa0-Statement", + "statement": "0x557b1f382af0-DataStmt", "source": "dataa/1000*0/,b/1000*0/,c/1000*0/" }, { - "id": "0x55ddae6d8af0-DataStmt", + "id": "0x557b1f382af0-DataStmt", "DataStmtSet": [ - "0x55ddae6d6ac0-DataStmtSet", - "0x55ddae6d01e0-DataStmtSet", - "0x55ddae6ddb30-DataStmtSet" + "0x557b1f380ac0-DataStmtSet", + "0x557b1f37a1e0-DataStmtSet", + "0x557b1f387b30-DataStmtSet" ] }, { - "id": "0x55ddae6d6ac0-DataStmtSet", + "id": "0x557b1f380ac0-DataStmtSet", "DataStmtObject": [ - "0x55ddae6c70b0-DataStmtObject" + "0x557b1f3710b0-DataStmtObject" ], "DataStmtValue": [ - "0x55ddae6c6170-DataStmtValue" + "0x557b1f370170-DataStmtValue" ] }, { - "id": "0x55ddae6c70b0-DataStmtObject", + "id": "0x557b1f3710b0-DataStmtObject", "variantKey": "Variable", - "Variable": "0x55ddae6d8c40-Variable" + "Variable": "0x557b1f382c40-Variable" }, { - "id": "0x55ddae6d8c40-Variable", + "id": "0x557b1f382c40-Variable", "variantKey": "Designator", - "Designator": "0x55ddae6984d0-Designator" + "Designator": "0x557b1f3424d0-Designator" }, { - "id": "0x55ddae6984d0-Designator", + "id": "0x557b1f3424d0-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6984e0-DataRef" + "DataRef": "0x557b1f3424e0-DataRef" }, { - "id": "0x55ddae6984e0-DataRef", + "id": "0x557b1f3424e0-DataRef", "variantKey": "Name", - "Name": "0x55ddae6984e0-Name" + "Name": "0x557b1f3424e0-Name" }, { - "id": "0x55ddae6984e0-Name", + "id": "0x557b1f3424e0-Name", "source": "a" }, { - "id": "0x55ddae6c6170-DataStmtValue", - "DataStmtRepeat": "0x55ddae6c6248-DataStmtRepeat", - "DataStmtConstant": "0x55ddae6c6178-DataStmtConstant" + "id": "0x557b1f370170-DataStmtValue", + "DataStmtRepeat": "0x557b1f370248-DataStmtRepeat", + "DataStmtConstant": "0x557b1f370178-DataStmtConstant" }, { - "id": "0x55ddae6c6248-DataStmtRepeat", + "id": "0x557b1f370248-DataStmtRepeat", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6c6248-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f370248-IntLiteralConstant" }, { - "id": "0x55ddae6c6248-IntLiteralConstant", + "id": "0x557b1f370248-IntLiteralConstant", "CharBlock": "1000" }, { - "id": "0x55ddae6c6178-DataStmtConstant", + "id": "0x557b1f370178-DataStmtConstant", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6c6198-LiteralConstant" + "LiteralConstant": "0x557b1f370198-LiteralConstant" }, { - "id": "0x55ddae6c6198-LiteralConstant", + "id": "0x557b1f370198-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6c6198-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f370198-IntLiteralConstant" }, { - "id": "0x55ddae6c6198-IntLiteralConstant", + "id": "0x557b1f370198-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55ddae6d01e0-DataStmtSet", + "id": "0x557b1f37a1e0-DataStmtSet", "DataStmtObject": [ - "0x55ddae6c6840-DataStmtObject" + "0x557b1f370840-DataStmtObject" ], "DataStmtValue": [ - "0x55ddae6c6960-DataStmtValue" + "0x557b1f370960-DataStmtValue" ] }, { - "id": "0x55ddae6c6840-DataStmtObject", + "id": "0x557b1f370840-DataStmtObject", "variantKey": "Variable", - "Variable": "0x55ddae6d8d50-Variable" + "Variable": "0x557b1f382d50-Variable" }, { - "id": "0x55ddae6d8d50-Variable", + "id": "0x557b1f382d50-Variable", "variantKey": "Designator", - "Designator": "0x55ddae6c6300-Designator" + "Designator": "0x557b1f370300-Designator" }, { - "id": "0x55ddae6c6300-Designator", + "id": "0x557b1f370300-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6c6310-DataRef" + "DataRef": "0x557b1f370310-DataRef" }, { - "id": "0x55ddae6c6310-DataRef", + "id": "0x557b1f370310-DataRef", "variantKey": "Name", - "Name": "0x55ddae6c6310-Name" + "Name": "0x557b1f370310-Name" }, { - "id": "0x55ddae6c6310-Name", + "id": "0x557b1f370310-Name", "source": "b" }, { - "id": "0x55ddae6c6960-DataStmtValue", - "DataStmtRepeat": "0x55ddae6c6a38-DataStmtRepeat", - "DataStmtConstant": "0x55ddae6c6968-DataStmtConstant" + "id": "0x557b1f370960-DataStmtValue", + "DataStmtRepeat": "0x557b1f370a38-DataStmtRepeat", + "DataStmtConstant": "0x557b1f370968-DataStmtConstant" }, { - "id": "0x55ddae6c6a38-DataStmtRepeat", + "id": "0x557b1f370a38-DataStmtRepeat", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6c6a38-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f370a38-IntLiteralConstant" }, { - "id": "0x55ddae6c6a38-IntLiteralConstant", + "id": "0x557b1f370a38-IntLiteralConstant", "CharBlock": "1000" }, { - "id": "0x55ddae6c6968-DataStmtConstant", + "id": "0x557b1f370968-DataStmtConstant", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6c6988-LiteralConstant" + "LiteralConstant": "0x557b1f370988-LiteralConstant" }, { - "id": "0x55ddae6c6988-LiteralConstant", + "id": "0x557b1f370988-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6c6988-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f370988-IntLiteralConstant" }, { - "id": "0x55ddae6c6988-IntLiteralConstant", + "id": "0x557b1f370988-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55ddae6ddb30-DataStmtSet", + "id": "0x557b1f387b30-DataStmtSet", "DataStmtObject": [ - "0x55ddae6c68d0-DataStmtObject" + "0x557b1f3708d0-DataStmtObject" ], "DataStmtValue": [ - "0x55ddae6c75a0-DataStmtValue" + "0x557b1f3715a0-DataStmtValue" ] }, { - "id": "0x55ddae6c68d0-DataStmtObject", + "id": "0x557b1f3708d0-DataStmtObject", "variantKey": "Variable", - "Variable": "0x55ddae6d8d80-Variable" + "Variable": "0x557b1f382d80-Variable" }, { - "id": "0x55ddae6d8d80-Variable", + "id": "0x557b1f382d80-Variable", "variantKey": "Designator", - "Designator": "0x55ddae6c6d10-Designator" + "Designator": "0x557b1f370d10-Designator" }, { - "id": "0x55ddae6c6d10-Designator", + "id": "0x557b1f370d10-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6c6d20-DataRef" + "DataRef": "0x557b1f370d20-DataRef" }, { - "id": "0x55ddae6c6d20-DataRef", + "id": "0x557b1f370d20-DataRef", "variantKey": "Name", - "Name": "0x55ddae6c6d20-Name" + "Name": "0x557b1f370d20-Name" }, { - "id": "0x55ddae6c6d20-Name", + "id": "0x557b1f370d20-Name", "source": "c" }, { - "id": "0x55ddae6c75a0-DataStmtValue", - "DataStmtRepeat": "0x55ddae6c7678-DataStmtRepeat", - "DataStmtConstant": "0x55ddae6c75a8-DataStmtConstant" + "id": "0x557b1f3715a0-DataStmtValue", + "DataStmtRepeat": "0x557b1f371678-DataStmtRepeat", + "DataStmtConstant": "0x557b1f3715a8-DataStmtConstant" }, { - "id": "0x55ddae6c7678-DataStmtRepeat", + "id": "0x557b1f371678-DataStmtRepeat", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6c7678-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f371678-IntLiteralConstant" }, { - "id": "0x55ddae6c7678-IntLiteralConstant", + "id": "0x557b1f371678-IntLiteralConstant", "CharBlock": "1000" }, { - "id": "0x55ddae6c75a8-DataStmtConstant", + "id": "0x557b1f3715a8-DataStmtConstant", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6c75c8-LiteralConstant" + "LiteralConstant": "0x557b1f3715c8-LiteralConstant" }, { - "id": "0x55ddae6c75c8-LiteralConstant", + "id": "0x557b1f3715c8-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6c75c8-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f3715c8-IntLiteralConstant" }, { - "id": "0x55ddae6c75c8-IntLiteralConstant", + "id": "0x557b1f3715c8-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55ddae6d6d58-ExecutionPart", + "id": "0x557b1f380d58-ExecutionPart", "ExecutionPartConstruct": [ - "0x55ddae6c6df0-ExecutionPartConstruct", - "0x55ddae6c94a0-ExecutionPartConstruct", - "0x55ddae6c8150-ExecutionPartConstruct", - "0x55ddae6c89d0-ExecutionPartConstruct" + "0x557b1f370df0-ExecutionPartConstruct", + "0x557b1f3734a0-ExecutionPartConstruct", + "0x557b1f372150-ExecutionPartConstruct", + "0x557b1f3729d0-ExecutionPartConstruct" ] }, { - "id": "0x55ddae6d6d58-ExecutionPartConstruct" + "id": "0x557b1f380d58-ExecutionPartConstruct" }, { - "id": "0x55ddae6c6df0-ExecutionPartConstruct", + "id": "0x557b1f370df0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6c6df0-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f370df0-ExecutableConstruct" }, { - "id": "0x55ddae6c6df0-ExecutableConstruct", + "id": "0x557b1f370df0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ddae6c6df0-Statement" + "Statement": "0x557b1f370df0-Statement" }, { - "id": "0x55ddae6c6df0-Statement", - "statement": "0x55ddae6c6e00-ActionStmt", + "id": "0x557b1f370df0-Statement", + "statement": "0x557b1f370e00-ActionStmt", "source": "code=0" }, { - "id": "0x55ddae6c6e00-ActionStmt", + "id": "0x557b1f370e00-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55ddae6a7cf0-AssignmentStmt" + "AssignmentStmt": "0x557b1f351cf0-AssignmentStmt" }, { - "id": "0x55ddae6a7cf0-AssignmentStmt", - "Variable": "0x55ddae6a7dd0-Variable", - "Expr": "0x55ddae6a7d00-Expr" + "id": "0x557b1f351cf0-AssignmentStmt", + "Variable": "0x557b1f351dd0-Variable", + "Expr": "0x557b1f351d00-Expr" }, { - "id": "0x55ddae6a7dd0-Variable", + "id": "0x557b1f351dd0-Variable", "variantKey": "Designator", - "Designator": "0x55ddae6a7100-Designator" + "Designator": "0x557b1f351100-Designator" }, { - "id": "0x55ddae6a7100-Designator", + "id": "0x557b1f351100-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6a7110-DataRef" + "DataRef": "0x557b1f351110-DataRef" }, { - "id": "0x55ddae6a7110-DataRef", + "id": "0x557b1f351110-DataRef", "variantKey": "Name", - "Name": "0x55ddae6a7110-Name" + "Name": "0x557b1f351110-Name" }, { - "id": "0x55ddae6a7110-Name", + "id": "0x557b1f351110-Name", "source": "code" }, { - "id": "0x55ddae6a7d00-Expr", + "id": "0x557b1f351d00-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6a7d20-LiteralConstant" + "LiteralConstant": "0x557b1f351d20-LiteralConstant" }, { - "id": "0x55ddae6a7d20-LiteralConstant", + "id": "0x557b1f351d20-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6a7d20-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f351d20-IntLiteralConstant" }, { - "id": "0x55ddae6a7d20-IntLiteralConstant", + "id": "0x557b1f351d20-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55ddae6c94a0-ExecutionPartConstruct", + "id": "0x557b1f3734a0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6c94a0-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f3734a0-ExecutableConstruct" }, { - "id": "0x55ddae6c94a0-ExecutableConstruct", + "id": "0x557b1f3734a0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ddae6c94a0-Statement" + "Statement": "0x557b1f3734a0-Statement" }, { - "id": "0x55ddae6c94a0-Statement", - "statement": "0x55ddae6c94b0-ActionStmt", + "id": "0x557b1f3734a0-Statement", + "statement": "0x557b1f3734b0-ActionStmt", "source": "callsub1(a,b,c,1000,code)" }, { - "id": "0x55ddae6c94b0-ActionStmt", + "id": "0x557b1f3734b0-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x55ddae6d0e70-CallStmt" + "CallStmt": "0x557b1f37ae70-CallStmt" }, { - "id": "0x55ddae6d0e70-CallStmt", - "call": "0x55ddae6d0e70-Call" + "id": "0x557b1f37ae70-CallStmt", + "call": "0x557b1f37ae70-Call" }, { - "id": "0x55ddae6d0e70-Call", - "ProcedureDesignator": "0x55ddae6d0e88-ProcedureDesignator", + "id": "0x557b1f37ae70-Call", + "ProcedureDesignator": "0x557b1f37ae88-ProcedureDesignator", "ActualArgSpec": [ - "0x55ddae6c8f50-ActualArgSpec", - "0x55ddae6c8e40-ActualArgSpec", - "0x55ddae6c8d30-ActualArgSpec", - "0x55ddae6c8c20-ActualArgSpec", - "0x55ddae6c8b10-ActualArgSpec" + "0x557b1f372f50-ActualArgSpec", + "0x557b1f372e40-ActualArgSpec", + "0x557b1f372d30-ActualArgSpec", + "0x557b1f372c20-ActualArgSpec", + "0x557b1f372b10-ActualArgSpec" ] }, { - "id": "0x55ddae6d0e88-ProcedureDesignator", + "id": "0x557b1f37ae88-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55ddae6d0e88-Name" + "Name": "0x557b1f37ae88-Name" }, { - "id": "0x55ddae6d0e88-Name", + "id": "0x557b1f37ae88-Name", "source": "sub1" }, { - "id": "0x55ddae6c8f50-ActualArgSpec", - "ActualArg": "0x55ddae6c8f50-ActualArg" + "id": "0x557b1f372f50-ActualArgSpec", + "ActualArg": "0x557b1f372f50-ActualArg" }, { - "id": "0x55ddae6c8f50-ActualArg", + "id": "0x557b1f372f50-ActualArg", "variantKey": "Expr", - "Expr": "0x55ddae6c88e0-Expr" + "Expr": "0x557b1f3728e0-Expr" }, { - "id": "0x55ddae6c88e0-Expr", + "id": "0x557b1f3728e0-Expr", "variantKey": "Designator", - "Designator": "0x55ddae6c78f0-Designator" + "Designator": "0x557b1f3718f0-Designator" }, { - "id": "0x55ddae6c78f0-Designator", + "id": "0x557b1f3718f0-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6c7900-DataRef" + "DataRef": "0x557b1f371900-DataRef" }, { - "id": "0x55ddae6c7900-DataRef", + "id": "0x557b1f371900-DataRef", "variantKey": "Name", - "Name": "0x55ddae6c7900-Name" + "Name": "0x557b1f371900-Name" }, { - "id": "0x55ddae6c7900-Name", + "id": "0x557b1f371900-Name", "source": "a" }, { - "id": "0x55ddae6c8e40-ActualArgSpec", - "ActualArg": "0x55ddae6c8e40-ActualArg" + "id": "0x557b1f372e40-ActualArgSpec", + "ActualArg": "0x557b1f372e40-ActualArg" }, { - "id": "0x55ddae6c8e40-ActualArg", + "id": "0x557b1f372e40-ActualArg", "variantKey": "Expr", - "Expr": "0x55ddae6c7c90-Expr" + "Expr": "0x557b1f371c90-Expr" }, { - "id": "0x55ddae6c7c90-Expr", + "id": "0x557b1f371c90-Expr", "variantKey": "Designator", - "Designator": "0x55ddae6a6d90-Designator" + "Designator": "0x557b1f350d90-Designator" }, { - "id": "0x55ddae6a6d90-Designator", + "id": "0x557b1f350d90-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6a6da0-DataRef" + "DataRef": "0x557b1f350da0-DataRef" }, { - "id": "0x55ddae6a6da0-DataRef", + "id": "0x557b1f350da0-DataRef", "variantKey": "Name", - "Name": "0x55ddae6a6da0-Name" + "Name": "0x557b1f350da0-Name" }, { - "id": "0x55ddae6a6da0-Name", + "id": "0x557b1f350da0-Name", "source": "b" }, { - "id": "0x55ddae6c8d30-ActualArgSpec", - "ActualArg": "0x55ddae6c8d30-ActualArg" + "id": "0x557b1f372d30-ActualArgSpec", + "ActualArg": "0x557b1f372d30-ActualArg" }, { - "id": "0x55ddae6c8d30-ActualArg", + "id": "0x557b1f372d30-ActualArg", "variantKey": "Expr", - "Expr": "0x55ddae6c8330-Expr" + "Expr": "0x557b1f372330-Expr" }, { - "id": "0x55ddae6c8330-Expr", + "id": "0x557b1f372330-Expr", "variantKey": "Designator", - "Designator": "0x55ddae6c6b60-Designator" + "Designator": "0x557b1f370b60-Designator" }, { - "id": "0x55ddae6c6b60-Designator", + "id": "0x557b1f370b60-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6c6b70-DataRef" + "DataRef": "0x557b1f370b70-DataRef" }, { - "id": "0x55ddae6c6b70-DataRef", + "id": "0x557b1f370b70-DataRef", "variantKey": "Name", - "Name": "0x55ddae6c6b70-Name" + "Name": "0x557b1f370b70-Name" }, { - "id": "0x55ddae6c6b70-Name", + "id": "0x557b1f370b70-Name", "source": "c" }, { - "id": "0x55ddae6c8c20-ActualArgSpec", - "ActualArg": "0x55ddae6c8c20-ActualArg" + "id": "0x557b1f372c20-ActualArgSpec", + "ActualArg": "0x557b1f372c20-ActualArg" }, { - "id": "0x55ddae6c8c20-ActualArg", + "id": "0x557b1f372c20-ActualArg", "variantKey": "Expr", - "Expr": "0x55ddae6c7130-Expr" + "Expr": "0x557b1f371130-Expr" }, { - "id": "0x55ddae6c7130-Expr", + "id": "0x557b1f371130-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6c7150-LiteralConstant" + "LiteralConstant": "0x557b1f371150-LiteralConstant" }, { - "id": "0x55ddae6c7150-LiteralConstant", + "id": "0x557b1f371150-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6c7150-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f371150-IntLiteralConstant" }, { - "id": "0x55ddae6c7150-IntLiteralConstant", + "id": "0x557b1f371150-IntLiteralConstant", "CharBlock": "1000" }, { - "id": "0x55ddae6c8b10-ActualArgSpec", - "ActualArg": "0x55ddae6c8b10-ActualArg" + "id": "0x557b1f372b10-ActualArgSpec", + "ActualArg": "0x557b1f372b10-ActualArg" }, { - "id": "0x55ddae6c8b10-ActualArg", + "id": "0x557b1f372b10-ActualArg", "variantKey": "Expr", - "Expr": "0x55ddae6c86a0-Expr" + "Expr": "0x557b1f3726a0-Expr" }, { - "id": "0x55ddae6c86a0-Expr", + "id": "0x557b1f3726a0-Expr", "variantKey": "Designator", - "Designator": "0x55ddae6c92f0-Designator" + "Designator": "0x557b1f3732f0-Designator" }, { - "id": "0x55ddae6c92f0-Designator", + "id": "0x557b1f3732f0-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6c9300-DataRef" + "DataRef": "0x557b1f373300-DataRef" }, { - "id": "0x55ddae6c9300-DataRef", + "id": "0x557b1f373300-DataRef", "variantKey": "Name", - "Name": "0x55ddae6c9300-Name" + "Name": "0x557b1f373300-Name" }, { - "id": "0x55ddae6c9300-Name", + "id": "0x557b1f373300-Name", "source": "code" }, { - "id": "0x55ddae6c8150-ExecutionPartConstruct", + "id": "0x557b1f372150-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6c8150-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f372150-ExecutableConstruct" }, { - "id": "0x55ddae6c8150-ExecutableConstruct", + "id": "0x557b1f372150-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ddae6c8150-Statement" + "Statement": "0x557b1f372150-Statement" }, { - "id": "0x55ddae6c8150-Statement", - "statement": "0x55ddae6c8160-ActionStmt", + "id": "0x557b1f372150-Statement", + "statement": "0x557b1f372160-ActionStmt", "source": "if(code.eq.0)write(6,*)'OK'" }, { - "id": "0x55ddae6c8160-ActionStmt", + "id": "0x557b1f372160-ActionStmt", "variantKey": "IfStmt", - "IfStmt": "0x55ddae6d8dd0-IfStmt" + "IfStmt": "0x557b1f382dd0-IfStmt" }, { - "id": "0x55ddae6d8dd0-IfStmt", - "Expr": "0x55ddae6c95d0-Expr", - "UnlabeledStatement": "0x55ddae6d8dd0-UnlabeledStatement" + "id": "0x557b1f382dd0-IfStmt", + "Expr": "0x557b1f3735d0-Expr", + "UnlabeledStatement": "0x557b1f382dd0-UnlabeledStatement" }, { - "id": "0x55ddae6c95d0-Expr", + "id": "0x557b1f3735d0-Expr", "variantKey": "EQ", - "EQ": "0x55ddae6c95f0-EQ" + "EQ": "0x557b1f3735f0-EQ" }, { - "id": "0x55ddae6c95f0-EQ", - "left": "0x55ddae6c94f0-Expr", - "right": "0x55ddae6c96b0-Expr", + "id": "0x557b1f3735f0-EQ", + "left": "0x557b1f3734f0-Expr", + "right": "0x557b1f3736b0-Expr", "op": "EQ" }, { - "id": "0x55ddae6c94f0-Expr", + "id": "0x557b1f3734f0-Expr", "variantKey": "Designator", - "Designator": "0x55ddae6c8410-Designator" + "Designator": "0x557b1f372410-Designator" }, { - "id": "0x55ddae6c8410-Designator", + "id": "0x557b1f372410-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6c8420-DataRef" + "DataRef": "0x557b1f372420-DataRef" }, { - "id": "0x55ddae6c8420-DataRef", + "id": "0x557b1f372420-DataRef", "variantKey": "Name", - "Name": "0x55ddae6c8420-Name" + "Name": "0x557b1f372420-Name" }, { - "id": "0x55ddae6c8420-Name", + "id": "0x557b1f372420-Name", "source": "code" }, { - "id": "0x55ddae6c96b0-Expr", + "id": "0x557b1f3736b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6c96d0-LiteralConstant" + "LiteralConstant": "0x557b1f3736d0-LiteralConstant" }, { - "id": "0x55ddae6c96d0-LiteralConstant", + "id": "0x557b1f3736d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6c96d0-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f3736d0-IntLiteralConstant" }, { - "id": "0x55ddae6c96d0-IntLiteralConstant", + "id": "0x557b1f3736d0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55ddae6d8dd0-UnlabeledStatement", - "statement": "0x55ddae6d8de0-ActionStmt", + "id": "0x557b1f382dd0-UnlabeledStatement", + "statement": "0x557b1f382de0-ActionStmt", "source": "write(6,*)'OK'" }, { - "id": "0x55ddae6d8de0-ActionStmt", + "id": "0x557b1f382de0-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x55ddae6cacd0-WriteStmt" + "WriteStmt": "0x557b1f374cd0-WriteStmt" }, { - "id": "0x55ddae6cacd0-WriteStmt", - "iounit": "0x55ddae6cacd0-IoUnit", - "format": "0x55ddae6cad00-Format", + "id": "0x557b1f374cd0-WriteStmt", + "iounit": "0x557b1f374cd0-IoUnit", + "format": "0x557b1f374d00-Format", "controls": [], "items": [ - "0x55ddae6cab80-OutputItem" + "0x557b1f374b80-OutputItem" ] }, { - "id": "0x55ddae6cacd0-IoUnit", + "id": "0x557b1f374cd0-IoUnit", "variantKey": "Expr", - "Expr": "0x55ddae6c98a0-Expr" + "Expr": "0x557b1f3738a0-Expr" }, { - "id": "0x55ddae6c98a0-Expr", + "id": "0x557b1f3738a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6c98c0-LiteralConstant" + "LiteralConstant": "0x557b1f3738c0-LiteralConstant" }, { - "id": "0x55ddae6c98c0-LiteralConstant", + "id": "0x557b1f3738c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6c98c0-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f3738c0-IntLiteralConstant" }, { - "id": "0x55ddae6c98c0-IntLiteralConstant", + "id": "0x557b1f3738c0-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x55ddae6cad00-Format", + "id": "0x557b1f374d00-Format", "variantKey": "Star", - "Star": "0x55ddae6cad00-Star" + "Star": "0x557b1f374d00-Star" }, { - "id": "0x55ddae6cad00-Star" + "id": "0x557b1f374d00-Star" }, { - "id": "0x55ddae6cab80-OutputItem", + "id": "0x557b1f374b80-OutputItem", "variantKey": "Expr", - "Expr": "0x55ddae6cab80-Expr" + "Expr": "0x557b1f374b80-Expr" }, { - "id": "0x55ddae6cab80-Expr", + "id": "0x557b1f374b80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6caba0-LiteralConstant" + "LiteralConstant": "0x557b1f374ba0-LiteralConstant" }, { - "id": "0x55ddae6caba0-LiteralConstant", + "id": "0x557b1f374ba0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55ddae6caba0-CharLiteralConstant" + "CharLiteralConstant": "0x557b1f374ba0-CharLiteralConstant" }, { - "id": "0x55ddae6caba0-CharLiteralConstant", + "id": "0x557b1f374ba0-CharLiteralConstant", "string": "OK" }, { - "id": "0x55ddae6c89d0-ExecutionPartConstruct", + "id": "0x557b1f3729d0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6c89d0-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f3729d0-ExecutableConstruct" }, { - "id": "0x55ddae6c89d0-ExecutableConstruct", + "id": "0x557b1f3729d0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ddae6c89d0-Statement" + "Statement": "0x557b1f3729d0-Statement" }, { - "id": "0x55ddae6c89d0-Statement", - "statement": "0x55ddae6c89e0-ActionStmt", + "id": "0x557b1f3729d0-Statement", + "statement": "0x557b1f3729e0-ActionStmt", "source": "stop" }, { - "id": "0x55ddae6c89e0-ActionStmt", + "id": "0x557b1f3729e0-ActionStmt", "variantKey": "StopStmt", - "StopStmt": "0x55ddae6caf00-StopStmt" + "StopStmt": "0x557b1f374f00-StopStmt" }, { - "id": "0x55ddae6caf00-StopStmt", - "kind": "0x55ddae6cafe8-Kind = Stop" + "id": "0x557b1f374f00-StopStmt", + "kind": "0x557b1f374fe8-Kind = Stop" }, { - "id": "0x55ddae6cafe8-Kind = Stop", + "id": "0x557b1f374fe8-Kind = Stop", "disambiguation": "Fortran::parser::StopStmt::Kind", "value": "Stop" }, { - "id": "0x55ddae6d6cd0-Statement", - "statement": "0x55ddae6d6ce0-EndProgramStmt", + "id": "0x557b1f380cd0-Statement", + "statement": "0x557b1f380ce0-EndProgramStmt", "source": "end" }, { - "id": "0x55ddae6d6ce0-EndProgramStmt" + "id": "0x557b1f380ce0-EndProgramStmt" }, { - "id": "0x55ddae6d5f10-ProgramUnit", + "id": "0x557b1f37ff10-ProgramUnit", "variantKey": "SubroutineSubprogram", - "SubroutineSubprogram": "0x55ddae6e1df0-SubroutineSubprogram" + "SubroutineSubprogram": "0x557b1f38bdf0-SubroutineSubprogram" }, { - "id": "0x55ddae6e1df0-SubroutineSubprogram", - "Statement": "0x55ddae6e1f38-Statement", - "SpecificationPart": "0x55ddae6e1e90-SpecificationPart", - "ExecutionPart": "0x55ddae6e1e78-ExecutionPart", - "Statement": "0x55ddae6e1df0-Statement" + "id": "0x557b1f38bdf0-SubroutineSubprogram", + "Statement": "0x557b1f38bf38-Statement", + "SpecificationPart": "0x557b1f38be90-SpecificationPart", + "ExecutionPart": "0x557b1f38be78-ExecutionPart", + "Statement": "0x557b1f38bdf0-Statement" }, { - "id": "0x55ddae6e1f38-Statement", - "statement": "0x55ddae6e1f48-SubroutineStmt", + "id": "0x557b1f38bf38-Statement", + "statement": "0x557b1f38bf48-SubroutineStmt", "source": "subroutinesub1(a,b,c,n,code)" }, { - "id": "0x55ddae6e1f48-SubroutineStmt", - "Name": "0x55ddae6e1f80-Name", + "id": "0x557b1f38bf48-SubroutineStmt", + "Name": "0x557b1f38bf80-Name", "DummyArg": [ - "0x55ddae6d8c80-DummyArg", - "0x55ddae6d6310-DummyArg", - "0x55ddae6d7f90-DummyArg", - "0x55ddae6d8050-DummyArg", - "0x55ddae6d8450-DummyArg" + "0x557b1f382c80-DummyArg", + "0x557b1f380310-DummyArg", + "0x557b1f381f90-DummyArg", + "0x557b1f382050-DummyArg", + "0x557b1f382450-DummyArg" ] }, { - "id": "0x55ddae6e1f80-Name", + "id": "0x557b1f38bf80-Name", "source": "sub1" }, { - "id": "0x55ddae6d8c80-DummyArg", + "id": "0x557b1f382c80-DummyArg", "variantKey": "Name", - "Name": "0x55ddae6d8c80-Name" + "Name": "0x557b1f382c80-Name" }, { - "id": "0x55ddae6d8c80-Name", + "id": "0x557b1f382c80-Name", "source": "a" }, { - "id": "0x55ddae6d6310-DummyArg", + "id": "0x557b1f380310-DummyArg", "variantKey": "Name", - "Name": "0x55ddae6d6310-Name" + "Name": "0x557b1f380310-Name" }, { - "id": "0x55ddae6d6310-Name", + "id": "0x557b1f380310-Name", "source": "b" }, { - "id": "0x55ddae6d7f90-DummyArg", + "id": "0x557b1f381f90-DummyArg", "variantKey": "Name", - "Name": "0x55ddae6d7f90-Name" + "Name": "0x557b1f381f90-Name" }, { - "id": "0x55ddae6d7f90-Name", + "id": "0x557b1f381f90-Name", "source": "c" }, { - "id": "0x55ddae6d8050-DummyArg", + "id": "0x557b1f382050-DummyArg", "variantKey": "Name", - "Name": "0x55ddae6d8050-Name" + "Name": "0x557b1f382050-Name" }, { - "id": "0x55ddae6d8050-Name", + "id": "0x557b1f382050-Name", "source": "n" }, { - "id": "0x55ddae6d8450-DummyArg", + "id": "0x557b1f382450-DummyArg", "variantKey": "Name", - "Name": "0x55ddae6d8450-Name" + "Name": "0x557b1f382450-Name" }, { - "id": "0x55ddae6d8450-Name", + "id": "0x557b1f382450-Name", "source": "code" }, { - "id": "0x55ddae6e1e90-SpecificationPart", - "ImplicitPart": "0x55ddae6e1ea8-ImplicitPart", + "id": "0x557b1f38be90-SpecificationPart", + "ImplicitPart": "0x557b1f38bea8-ImplicitPart", "DeclarationConstruct": [ - "0x55ddae6cd8a0-DeclarationConstruct" + "0x557b1f3778a0-DeclarationConstruct" ] }, { - "id": "0x55ddae6e1ea8-ImplicitPart" + "id": "0x557b1f38bea8-ImplicitPart" }, { - "id": "0x55ddae6cd8a0-DeclarationConstruct", + "id": "0x557b1f3778a0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55ddae6cd8a0-SpecificationConstruct" + "SpecificationConstruct": "0x557b1f3778a0-SpecificationConstruct" }, { - "id": "0x55ddae6cd8a0-SpecificationConstruct", + "id": "0x557b1f3778a0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55ddae6cd8a0-Statement" + "Statement": "0x557b1f3778a0-Statement" }, { - "id": "0x55ddae6cd8a0-Statement", - "statement": "0x55ddae6cb240-TypeDeclarationStmt", + "id": "0x557b1f3778a0-Statement", + "statement": "0x557b1f375240-TypeDeclarationStmt", "source": "integera(n),b(n),c(n),code" }, { - "id": "0x55ddae6cb240-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55ddae6cb270-DeclarationTypeSpec", + "id": "0x557b1f375240-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x557b1f375270-DeclarationTypeSpec", "EntityDecl": [ - "0x55ddae6cd7b0-EntityDecl", - "0x55ddae6c8790-EntityDecl", - "0x55ddae6cb3e0-EntityDecl", - "0x55ddae6cb4d0-EntityDecl" + "0x557b1f3777b0-EntityDecl", + "0x557b1f372790-EntityDecl", + "0x557b1f3753e0-EntityDecl", + "0x557b1f3754d0-EntityDecl" ] }, { - "id": "0x55ddae6cb270-DeclarationTypeSpec", + "id": "0x557b1f375270-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55ddae6cb270-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x557b1f375270-IntrinsicTypeSpec" }, { - "id": "0x55ddae6cb270-IntrinsicTypeSpec", + "id": "0x557b1f375270-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55ddae6cb270-IntegerTypeSpec" + "IntegerTypeSpec": "0x557b1f375270-IntegerTypeSpec" }, { - "id": "0x55ddae6cb270-IntegerTypeSpec" + "id": "0x557b1f375270-IntegerTypeSpec" }, { - "id": "0x55ddae6cd7b0-EntityDecl", - "Name": "0x55ddae6cd868-Name", - "ArraySpec": "0x55ddae6cd830-ArraySpec" + "id": "0x557b1f3777b0-EntityDecl", + "Name": "0x557b1f377868-Name", + "ArraySpec": "0x557b1f377830-ArraySpec" }, { - "id": "0x55ddae6cd868-Name", + "id": "0x557b1f377868-Name", "source": "a" }, { - "id": "0x55ddae6cd830-ArraySpec", + "id": "0x557b1f377830-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55ddae6d56f0-ExplicitShapeSpec" + "0x557b1f37f6f0-ExplicitShapeSpec" ] }, { - "id": "0x55ddae6d56f0-ExplicitShapeSpec", - "upper_bound": "0x55ddae6d56f0-SpecificationExpr" + "id": "0x557b1f37f6f0-ExplicitShapeSpec", + "upper_bound": "0x557b1f37f6f0-SpecificationExpr" }, { - "id": "0x55ddae6d56f0-SpecificationExpr", - "Expr": "0x55ddae6cbbe0-Expr" + "id": "0x557b1f37f6f0-SpecificationExpr", + "Expr": "0x557b1f375be0-Expr" }, { - "id": "0x55ddae6cbbe0-Expr", + "id": "0x557b1f375be0-Expr", "variantKey": "Designator", - "Designator": "0x55ddae6c93c0-Designator" + "Designator": "0x557b1f3733c0-Designator" }, { - "id": "0x55ddae6c93c0-Designator", + "id": "0x557b1f3733c0-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6c93d0-DataRef" + "DataRef": "0x557b1f3733d0-DataRef" }, { - "id": "0x55ddae6c93d0-DataRef", + "id": "0x557b1f3733d0-DataRef", "variantKey": "Name", - "Name": "0x55ddae6c93d0-Name" + "Name": "0x557b1f3733d0-Name" }, { - "id": "0x55ddae6c93d0-Name", + "id": "0x557b1f3733d0-Name", "source": "n" }, { - "id": "0x55ddae6c8790-EntityDecl", - "Name": "0x55ddae6c8848-Name", - "ArraySpec": "0x55ddae6c8810-ArraySpec" + "id": "0x557b1f372790-EntityDecl", + "Name": "0x557b1f372848-Name", + "ArraySpec": "0x557b1f372810-ArraySpec" }, { - "id": "0x55ddae6c8848-Name", + "id": "0x557b1f372848-Name", "source": "b" }, { - "id": "0x55ddae6c8810-ArraySpec", + "id": "0x557b1f372810-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55ddae6d58e0-ExplicitShapeSpec" + "0x557b1f37f8e0-ExplicitShapeSpec" ] }, { - "id": "0x55ddae6d58e0-ExplicitShapeSpec", - "upper_bound": "0x55ddae6d58e0-SpecificationExpr" + "id": "0x557b1f37f8e0-ExplicitShapeSpec", + "upper_bound": "0x557b1f37f8e0-SpecificationExpr" }, { - "id": "0x55ddae6d58e0-SpecificationExpr", - "Expr": "0x55ddae64f0b0-Expr" + "id": "0x557b1f37f8e0-SpecificationExpr", + "Expr": "0x557b1f2f90b0-Expr" }, { - "id": "0x55ddae64f0b0-Expr", + "id": "0x557b1f2f90b0-Expr", "variantKey": "Designator", - "Designator": "0x55ddae6c6a90-Designator" + "Designator": "0x557b1f370a90-Designator" }, { - "id": "0x55ddae6c6a90-Designator", + "id": "0x557b1f370a90-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6c6aa0-DataRef" + "DataRef": "0x557b1f370aa0-DataRef" }, { - "id": "0x55ddae6c6aa0-DataRef", + "id": "0x557b1f370aa0-DataRef", "variantKey": "Name", - "Name": "0x55ddae6c6aa0-Name" + "Name": "0x557b1f370aa0-Name" }, { - "id": "0x55ddae6c6aa0-Name", + "id": "0x557b1f370aa0-Name", "source": "n" }, { - "id": "0x55ddae6cb3e0-EntityDecl", - "Name": "0x55ddae6cb498-Name", - "ArraySpec": "0x55ddae6cb460-ArraySpec" + "id": "0x557b1f3753e0-EntityDecl", + "Name": "0x557b1f375498-Name", + "ArraySpec": "0x557b1f375460-ArraySpec" }, { - "id": "0x55ddae6cb498-Name", + "id": "0x557b1f375498-Name", "source": "c" }, { - "id": "0x55ddae6cb460-ArraySpec", + "id": "0x557b1f375460-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55ddae6d5990-ExplicitShapeSpec" + "0x557b1f37f990-ExplicitShapeSpec" ] }, { - "id": "0x55ddae6d5990-ExplicitShapeSpec", - "upper_bound": "0x55ddae6d5990-SpecificationExpr" + "id": "0x557b1f37f990-ExplicitShapeSpec", + "upper_bound": "0x557b1f37f990-SpecificationExpr" }, { - "id": "0x55ddae6d5990-SpecificationExpr", - "Expr": "0x55ddae6cb090-Expr" + "id": "0x557b1f37f990-SpecificationExpr", + "Expr": "0x557b1f375090-Expr" }, { - "id": "0x55ddae6cb090-Expr", + "id": "0x557b1f375090-Expr", "variantKey": "Designator", - "Designator": "0x55ddae6a7160-Designator" + "Designator": "0x557b1f351160-Designator" }, { - "id": "0x55ddae6a7160-Designator", + "id": "0x557b1f351160-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6a7170-DataRef" + "DataRef": "0x557b1f351170-DataRef" }, { - "id": "0x55ddae6a7170-DataRef", + "id": "0x557b1f351170-DataRef", "variantKey": "Name", - "Name": "0x55ddae6a7170-Name" + "Name": "0x557b1f351170-Name" }, { - "id": "0x55ddae6a7170-Name", + "id": "0x557b1f351170-Name", "source": "n" }, { - "id": "0x55ddae6cb4d0-EntityDecl", - "Name": "0x55ddae6cb588-Name" + "id": "0x557b1f3754d0-EntityDecl", + "Name": "0x557b1f375588-Name" }, { - "id": "0x55ddae6cb588-Name", + "id": "0x557b1f375588-Name", "source": "code" }, { - "id": "0x55ddae6e1e78-ExecutionPart", + "id": "0x557b1f38be78-ExecutionPart", "ExecutionPartConstruct": [ - "0x55ddae6ce460-ExecutionPartConstruct", - "0x55ddae6cec90-ExecutionPartConstruct", - "0x55ddae6cf4c0-ExecutionPartConstruct", - "0x55ddae6cf180-ExecutionPartConstruct", - "0x55ddae6cf240-ExecutionPartConstruct", - "0x55ddae6cbfb0-ExecutionPartConstruct", - "0x55ddae6cd150-ExecutionPartConstruct", - "0x55ddae6cc1d0-ExecutionPartConstruct", - "0x55ddae6c6fa0-ExecutionPartConstruct", - "0x55ddae6c7280-ExecutionPartConstruct" + "0x557b1f378460-ExecutionPartConstruct", + "0x557b1f378c90-ExecutionPartConstruct", + "0x557b1f3794c0-ExecutionPartConstruct", + "0x557b1f379180-ExecutionPartConstruct", + "0x557b1f379240-ExecutionPartConstruct", + "0x557b1f375fb0-ExecutionPartConstruct", + "0x557b1f377150-ExecutionPartConstruct", + "0x557b1f3761d0-ExecutionPartConstruct", + "0x557b1f370fa0-ExecutionPartConstruct", + "0x557b1f371280-ExecutionPartConstruct" ] }, { - "id": "0x55ddae6e1e78-ExecutionPartConstruct" + "id": "0x557b1f38be78-ExecutionPartConstruct" }, { - "id": "0x55ddae6ce460-ExecutionPartConstruct", + "id": "0x557b1f378460-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6ce460-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f378460-ExecutableConstruct" }, { - "id": "0x55ddae6ce460-ExecutableConstruct", + "id": "0x557b1f378460-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ddae6ce460-Statement" + "Statement": "0x557b1f378460-Statement" }, { - "id": "0x55ddae6ce460-Statement", - "statement": "0x55ddae6ce470-ActionStmt", + "id": "0x557b1f378460-Statement", + "statement": "0x557b1f378470-ActionStmt", "source": "a(1:n)=b(1:n)+1" }, { - "id": "0x55ddae6ce470-ActionStmt", + "id": "0x557b1f378470-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55ddae6c9790-AssignmentStmt" + "AssignmentStmt": "0x557b1f373790-AssignmentStmt" }, { - "id": "0x55ddae6c9790-AssignmentStmt", - "Variable": "0x55ddae6c9870-Variable", - "Expr": "0x55ddae6c97a0-Expr" + "id": "0x557b1f373790-AssignmentStmt", + "Variable": "0x557b1f373870-Variable", + "Expr": "0x557b1f3737a0-Expr" }, { - "id": "0x55ddae6c9870-Variable", + "id": "0x557b1f373870-Variable", "variantKey": "Designator", - "Designator": "0x55ddae6c62a0-Designator" + "Designator": "0x557b1f3702a0-Designator" }, { - "id": "0x55ddae6c62a0-Designator", + "id": "0x557b1f3702a0-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6c62b0-DataRef" + "DataRef": "0x557b1f3702b0-DataRef" }, { - "id": "0x55ddae6c62b0-DataRef", + "id": "0x557b1f3702b0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55ddae6d8d10-ArrayElement" + "ArrayElement": "0x557b1f382d10-ArrayElement" }, { - "id": "0x55ddae6d8d10-ArrayElement", - "base": "0x55ddae6d8d10-DataRef", + "id": "0x557b1f382d10-ArrayElement", + "base": "0x557b1f382d10-DataRef", "subscripts": [ - "0x55ddae6d0c50-SectionSubscript" + "0x557b1f37ac50-SectionSubscript" ] }, { - "id": "0x55ddae6d8d10-DataRef", + "id": "0x557b1f382d10-DataRef", "variantKey": "Name", - "Name": "0x55ddae6d8d10-Name" + "Name": "0x557b1f382d10-Name" }, { - "id": "0x55ddae6d8d10-Name", + "id": "0x557b1f382d10-Name", "source": "a" }, { - "id": "0x55ddae6d0c50-SectionSubscript", + "id": "0x557b1f37ac50-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x55ddae6d0c50-SubscriptTriplet" + "SubscriptTriplet": "0x557b1f37ac50-SubscriptTriplet" }, { - "id": "0x55ddae6d0c50-SubscriptTriplet", - "start": "0x55ddae6ce230-Expr", - "end": "0x55ddae6ce310-Expr" + "id": "0x557b1f37ac50-SubscriptTriplet", + "start": "0x557b1f378230-Expr", + "end": "0x557b1f378310-Expr" }, { - "id": "0x55ddae6ce230-Expr", + "id": "0x557b1f378230-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6ce250-LiteralConstant" + "LiteralConstant": "0x557b1f378250-LiteralConstant" }, { - "id": "0x55ddae6ce250-LiteralConstant", + "id": "0x557b1f378250-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6ce250-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f378250-IntLiteralConstant" }, { - "id": "0x55ddae6ce250-IntLiteralConstant", + "id": "0x557b1f378250-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55ddae6ce310-Expr", + "id": "0x557b1f378310-Expr", "variantKey": "Designator", - "Designator": "0x55ddae6ccd20-Designator" + "Designator": "0x557b1f376d20-Designator" }, { - "id": "0x55ddae6ccd20-Designator", + "id": "0x557b1f376d20-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6ccd30-DataRef" + "DataRef": "0x557b1f376d30-DataRef" }, { - "id": "0x55ddae6ccd30-DataRef", + "id": "0x557b1f376d30-DataRef", "variantKey": "Name", - "Name": "0x55ddae6ccd30-Name" + "Name": "0x557b1f376d30-Name" }, { - "id": "0x55ddae6ccd30-Name", + "id": "0x557b1f376d30-Name", "source": "n" }, { - "id": "0x55ddae6c97a0-Expr", + "id": "0x557b1f3737a0-Expr", "variantKey": "Add", - "Add": "0x55ddae6c97c0-Add" + "Add": "0x557b1f3737c0-Add" }, { - "id": "0x55ddae6c97c0-Add", - "left": "0x55ddae6cd8f0-Expr", - "right": "0x55ddae6cca40-Expr", + "id": "0x557b1f3737c0-Add", + "left": "0x557b1f3778f0-Expr", + "right": "0x557b1f376a40-Expr", "op": "ADD" }, { - "id": "0x55ddae6cd8f0-Expr", + "id": "0x557b1f3778f0-Expr", "variantKey": "Designator", - "Designator": "0x55ddae6c76d0-Designator" + "Designator": "0x557b1f3716d0-Designator" }, { - "id": "0x55ddae6c76d0-Designator", + "id": "0x557b1f3716d0-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6c76e0-DataRef" + "DataRef": "0x557b1f3716e0-DataRef" }, { - "id": "0x55ddae6c76e0-DataRef", + "id": "0x557b1f3716e0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55ddae6d8cd0-ArrayElement" + "ArrayElement": "0x557b1f382cd0-ArrayElement" }, { - "id": "0x55ddae6d8cd0-ArrayElement", - "base": "0x55ddae6d8cd0-DataRef", + "id": "0x557b1f382cd0-ArrayElement", + "base": "0x557b1f382cd0-DataRef", "subscripts": [ - "0x55ddae6d6a30-SectionSubscript" + "0x557b1f380a30-SectionSubscript" ] }, { - "id": "0x55ddae6d8cd0-DataRef", + "id": "0x557b1f382cd0-DataRef", "variantKey": "Name", - "Name": "0x55ddae6d8cd0-Name" + "Name": "0x557b1f382cd0-Name" }, { - "id": "0x55ddae6d8cd0-Name", + "id": "0x557b1f382cd0-Name", "source": "b" }, { - "id": "0x55ddae6d6a30-SectionSubscript", + "id": "0x557b1f380a30-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x55ddae6d6a30-SubscriptTriplet" + "SubscriptTriplet": "0x557b1f380a30-SubscriptTriplet" }, { - "id": "0x55ddae6d6a30-SubscriptTriplet", - "start": "0x55ddae6ce030-Expr", - "end": "0x55ddae6ccb80-Expr" + "id": "0x557b1f380a30-SubscriptTriplet", + "start": "0x557b1f378030-Expr", + "end": "0x557b1f376b80-Expr" }, { - "id": "0x55ddae6ce030-Expr", + "id": "0x557b1f378030-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6ce050-LiteralConstant" + "LiteralConstant": "0x557b1f378050-LiteralConstant" }, { - "id": "0x55ddae6ce050-LiteralConstant", + "id": "0x557b1f378050-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6ce050-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f378050-IntLiteralConstant" }, { - "id": "0x55ddae6ce050-IntLiteralConstant", + "id": "0x557b1f378050-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55ddae6ccb80-Expr", + "id": "0x557b1f376b80-Expr", "variantKey": "Designator", - "Designator": "0x55ddae6d6890-Designator" + "Designator": "0x557b1f380890-Designator" }, { - "id": "0x55ddae6d6890-Designator", + "id": "0x557b1f380890-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6d68a0-DataRef" + "DataRef": "0x557b1f3808a0-DataRef" }, { - "id": "0x55ddae6d68a0-DataRef", + "id": "0x557b1f3808a0-DataRef", "variantKey": "Name", - "Name": "0x55ddae6d68a0-Name" + "Name": "0x557b1f3808a0-Name" }, { - "id": "0x55ddae6d68a0-Name", + "id": "0x557b1f3808a0-Name", "source": "n" }, { - "id": "0x55ddae6cca40-Expr", + "id": "0x557b1f376a40-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6cca60-LiteralConstant" + "LiteralConstant": "0x557b1f376a60-LiteralConstant" }, { - "id": "0x55ddae6cca60-LiteralConstant", + "id": "0x557b1f376a60-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6cca60-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f376a60-IntLiteralConstant" }, { - "id": "0x55ddae6cca60-IntLiteralConstant", + "id": "0x557b1f376a60-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55ddae6cec90-ExecutionPartConstruct", + "id": "0x557b1f378c90-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6cec90-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f378c90-ExecutableConstruct" }, { - "id": "0x55ddae6cec90-ExecutableConstruct", + "id": "0x557b1f378c90-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ddae6cec90-Statement" + "Statement": "0x557b1f378c90-Statement" }, { - "id": "0x55ddae6cec90-Statement", - "statement": "0x55ddae6ceca0-ActionStmt", + "id": "0x557b1f378c90-Statement", + "statement": "0x557b1f378ca0-ActionStmt", "source": "b(1:n)=b(1:n)+1" }, { - "id": "0x55ddae6ceca0-ActionStmt", + "id": "0x557b1f378ca0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55ddae6ce670-AssignmentStmt" + "AssignmentStmt": "0x557b1f378670-AssignmentStmt" }, { - "id": "0x55ddae6ce670-AssignmentStmt", - "Variable": "0x55ddae6ce750-Variable", - "Expr": "0x55ddae6ce680-Expr" + "id": "0x557b1f378670-AssignmentStmt", + "Variable": "0x557b1f378750-Variable", + "Expr": "0x557b1f378680-Expr" }, { - "id": "0x55ddae6ce750-Variable", + "id": "0x557b1f378750-Variable", "variantKey": "Designator", - "Designator": "0x55ddae6c7f90-Designator" + "Designator": "0x557b1f371f90-Designator" }, { - "id": "0x55ddae6c7f90-Designator", + "id": "0x557b1f371f90-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6c7fa0-DataRef" + "DataRef": "0x557b1f371fa0-DataRef" }, { - "id": "0x55ddae6c7fa0-DataRef", + "id": "0x557b1f371fa0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55ddae6d6050-ArrayElement" + "ArrayElement": "0x557b1f380050-ArrayElement" }, { - "id": "0x55ddae6d6050-ArrayElement", - "base": "0x55ddae6d6050-DataRef", + "id": "0x557b1f380050-ArrayElement", + "base": "0x557b1f380050-DataRef", "subscripts": [ - "0x55ddae6d0fd0-SectionSubscript" + "0x557b1f37afd0-SectionSubscript" ] }, { - "id": "0x55ddae6d6050-DataRef", + "id": "0x557b1f380050-DataRef", "variantKey": "Name", - "Name": "0x55ddae6d6050-Name" + "Name": "0x557b1f380050-Name" }, { - "id": "0x55ddae6d6050-Name", + "id": "0x557b1f380050-Name", "source": "b" }, { - "id": "0x55ddae6d0fd0-SectionSubscript", + "id": "0x557b1f37afd0-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x55ddae6d0fd0-SubscriptTriplet" + "SubscriptTriplet": "0x557b1f37afd0-SubscriptTriplet" }, { - "id": "0x55ddae6d0fd0-SubscriptTriplet", - "start": "0x55ddae6ce4b0-Expr", - "end": "0x55ddae6ce590-Expr" + "id": "0x557b1f37afd0-SubscriptTriplet", + "start": "0x557b1f3784b0-Expr", + "end": "0x557b1f378590-Expr" }, { - "id": "0x55ddae6ce4b0-Expr", + "id": "0x557b1f3784b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6ce4d0-LiteralConstant" + "LiteralConstant": "0x557b1f3784d0-LiteralConstant" }, { - "id": "0x55ddae6ce4d0-LiteralConstant", + "id": "0x557b1f3784d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6ce4d0-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f3784d0-IntLiteralConstant" }, { - "id": "0x55ddae6ce4d0-IntLiteralConstant", + "id": "0x557b1f3784d0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55ddae6ce590-Expr", + "id": "0x557b1f378590-Expr", "variantKey": "Designator", - "Designator": "0x55ddae64f320-Designator" + "Designator": "0x557b1f2f9320-Designator" }, { - "id": "0x55ddae64f320-Designator", + "id": "0x557b1f2f9320-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae64f330-DataRef" + "DataRef": "0x557b1f2f9330-DataRef" }, { - "id": "0x55ddae64f330-DataRef", + "id": "0x557b1f2f9330-DataRef", "variantKey": "Name", - "Name": "0x55ddae64f330-Name" + "Name": "0x557b1f2f9330-Name" }, { - "id": "0x55ddae64f330-Name", + "id": "0x557b1f2f9330-Name", "source": "n" }, { - "id": "0x55ddae6ce680-Expr", + "id": "0x557b1f378680-Expr", "variantKey": "Add", - "Add": "0x55ddae6ce6a0-Add" + "Add": "0x557b1f3786a0-Add" }, { - "id": "0x55ddae6ce6a0-Add", - "left": "0x55ddae6ceb40-Expr", - "right": "0x55ddae6cea60-Expr", + "id": "0x557b1f3786a0-Add", + "left": "0x557b1f378b40-Expr", + "right": "0x557b1f378a60-Expr", "op": "ADD" }, { - "id": "0x55ddae6ceb40-Expr", + "id": "0x557b1f378b40-Expr", "variantKey": "Designator", - "Designator": "0x55ddae6ce9a0-Designator" + "Designator": "0x557b1f3789a0-Designator" }, { - "id": "0x55ddae6ce9a0-Designator", + "id": "0x557b1f3789a0-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6ce9b0-DataRef" + "DataRef": "0x557b1f3789b0-DataRef" }, { - "id": "0x55ddae6ce9b0-DataRef", + "id": "0x557b1f3789b0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55ddae6d6100-ArrayElement" + "ArrayElement": "0x557b1f380100-ArrayElement" }, { - "id": "0x55ddae6d6100-ArrayElement", - "base": "0x55ddae6d6100-DataRef", + "id": "0x557b1f380100-ArrayElement", + "base": "0x557b1f380100-DataRef", "subscripts": [ - "0x55ddae6d0e30-SectionSubscript" + "0x557b1f37ae30-SectionSubscript" ] }, { - "id": "0x55ddae6d6100-DataRef", + "id": "0x557b1f380100-DataRef", "variantKey": "Name", - "Name": "0x55ddae6d6100-Name" + "Name": "0x557b1f380100-Name" }, { - "id": "0x55ddae6d6100-Name", + "id": "0x557b1f380100-Name", "source": "b" }, { - "id": "0x55ddae6d0e30-SectionSubscript", + "id": "0x557b1f37ae30-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x55ddae6d0e30-SubscriptTriplet" + "SubscriptTriplet": "0x557b1f37ae30-SubscriptTriplet" }, { - "id": "0x55ddae6d0e30-SubscriptTriplet", - "start": "0x55ddae6ce780-Expr", - "end": "0x55ddae6ce860-Expr" + "id": "0x557b1f37ae30-SubscriptTriplet", + "start": "0x557b1f378780-Expr", + "end": "0x557b1f378860-Expr" }, { - "id": "0x55ddae6ce780-Expr", + "id": "0x557b1f378780-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6ce7a0-LiteralConstant" + "LiteralConstant": "0x557b1f3787a0-LiteralConstant" }, { - "id": "0x55ddae6ce7a0-LiteralConstant", + "id": "0x557b1f3787a0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6ce7a0-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f3787a0-IntLiteralConstant" }, { - "id": "0x55ddae6ce7a0-IntLiteralConstant", + "id": "0x557b1f3787a0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55ddae6ce860-Expr", + "id": "0x557b1f378860-Expr", "variantKey": "Designator", - "Designator": "0x55ddae6cccc0-Designator" + "Designator": "0x557b1f376cc0-Designator" }, { - "id": "0x55ddae6cccc0-Designator", + "id": "0x557b1f376cc0-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6cccd0-DataRef" + "DataRef": "0x557b1f376cd0-DataRef" }, { - "id": "0x55ddae6cccd0-DataRef", + "id": "0x557b1f376cd0-DataRef", "variantKey": "Name", - "Name": "0x55ddae6cccd0-Name" + "Name": "0x557b1f376cd0-Name" }, { - "id": "0x55ddae6cccd0-Name", + "id": "0x557b1f376cd0-Name", "source": "n" }, { - "id": "0x55ddae6cea60-Expr", + "id": "0x557b1f378a60-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6cea80-LiteralConstant" + "LiteralConstant": "0x557b1f378a80-LiteralConstant" }, { - "id": "0x55ddae6cea80-LiteralConstant", + "id": "0x557b1f378a80-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6cea80-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f378a80-IntLiteralConstant" }, { - "id": "0x55ddae6cea80-IntLiteralConstant", + "id": "0x557b1f378a80-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55ddae6cf4c0-ExecutionPartConstruct", + "id": "0x557b1f3794c0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6cf4c0-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f3794c0-ExecutableConstruct" }, { - "id": "0x55ddae6cf4c0-ExecutableConstruct", + "id": "0x557b1f3794c0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ddae6cf4c0-Statement" + "Statement": "0x557b1f3794c0-Statement" }, { - "id": "0x55ddae6cf4c0-Statement", - "statement": "0x55ddae6cf4d0-ActionStmt", + "id": "0x557b1f3794c0-Statement", + "statement": "0x557b1f3794d0-ActionStmt", "source": "c(1:n)=c(1:n)+1" }, { - "id": "0x55ddae6cf4d0-ActionStmt", + "id": "0x557b1f3794d0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55ddae6ceea0-AssignmentStmt" + "AssignmentStmt": "0x557b1f378ea0-AssignmentStmt" }, { - "id": "0x55ddae6ceea0-AssignmentStmt", - "Variable": "0x55ddae6cef80-Variable", - "Expr": "0x55ddae6ceeb0-Expr" + "id": "0x557b1f378ea0-AssignmentStmt", + "Variable": "0x557b1f378f80-Variable", + "Expr": "0x557b1f378eb0-Expr" }, { - "id": "0x55ddae6cef80-Variable", + "id": "0x557b1f378f80-Variable", "variantKey": "Designator", - "Designator": "0x55ddae6cea00-Designator" + "Designator": "0x557b1f378a00-Designator" }, { - "id": "0x55ddae6cea00-Designator", + "id": "0x557b1f378a00-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6cea10-DataRef" + "DataRef": "0x557b1f378a10-DataRef" }, { - "id": "0x55ddae6cea10-DataRef", + "id": "0x557b1f378a10-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55ddae6d60c0-ArrayElement" + "ArrayElement": "0x557b1f3800c0-ArrayElement" }, { - "id": "0x55ddae6d60c0-ArrayElement", - "base": "0x55ddae6d60c0-DataRef", + "id": "0x557b1f3800c0-ArrayElement", + "base": "0x557b1f3800c0-DataRef", "subscripts": [ - "0x55ddae6c85d0-SectionSubscript" + "0x557b1f3725d0-SectionSubscript" ] }, { - "id": "0x55ddae6d60c0-DataRef", + "id": "0x557b1f3800c0-DataRef", "variantKey": "Name", - "Name": "0x55ddae6d60c0-Name" + "Name": "0x557b1f3800c0-Name" }, { - "id": "0x55ddae6d60c0-Name", + "id": "0x557b1f3800c0-Name", "source": "c" }, { - "id": "0x55ddae6c85d0-SectionSubscript", + "id": "0x557b1f3725d0-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x55ddae6c85d0-SubscriptTriplet" + "SubscriptTriplet": "0x557b1f3725d0-SubscriptTriplet" }, { - "id": "0x55ddae6c85d0-SubscriptTriplet", - "start": "0x55ddae6cece0-Expr", - "end": "0x55ddae6cedc0-Expr" + "id": "0x557b1f3725d0-SubscriptTriplet", + "start": "0x557b1f378ce0-Expr", + "end": "0x557b1f378dc0-Expr" }, { - "id": "0x55ddae6cece0-Expr", + "id": "0x557b1f378ce0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6ced00-LiteralConstant" + "LiteralConstant": "0x557b1f378d00-LiteralConstant" }, { - "id": "0x55ddae6ced00-LiteralConstant", + "id": "0x557b1f378d00-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6ced00-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f378d00-IntLiteralConstant" }, { - "id": "0x55ddae6ced00-IntLiteralConstant", + "id": "0x557b1f378d00-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55ddae6cedc0-Expr", + "id": "0x557b1f378dc0-Expr", "variantKey": "Designator", - "Designator": "0x55ddae6ccc60-Designator" + "Designator": "0x557b1f376c60-Designator" }, { - "id": "0x55ddae6ccc60-Designator", + "id": "0x557b1f376c60-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6ccc70-DataRef" + "DataRef": "0x557b1f376c70-DataRef" }, { - "id": "0x55ddae6ccc70-DataRef", + "id": "0x557b1f376c70-DataRef", "variantKey": "Name", - "Name": "0x55ddae6ccc70-Name" + "Name": "0x557b1f376c70-Name" }, { - "id": "0x55ddae6ccc70-Name", + "id": "0x557b1f376c70-Name", "source": "n" }, { - "id": "0x55ddae6ceeb0-Expr", + "id": "0x557b1f378eb0-Expr", "variantKey": "Add", - "Add": "0x55ddae6ceed0-Add" + "Add": "0x557b1f378ed0-Add" }, { - "id": "0x55ddae6ceed0-Add", - "left": "0x55ddae6cf370-Expr", - "right": "0x55ddae6cf290-Expr", + "id": "0x557b1f378ed0-Add", + "left": "0x557b1f379370-Expr", + "right": "0x557b1f379290-Expr", "op": "ADD" }, { - "id": "0x55ddae6cf370-Expr", + "id": "0x557b1f379370-Expr", "variantKey": "Designator", - "Designator": "0x55ddae6cf1d0-Designator" + "Designator": "0x557b1f3791d0-Designator" }, { - "id": "0x55ddae6cf1d0-Designator", + "id": "0x557b1f3791d0-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6cf1e0-DataRef" + "DataRef": "0x557b1f3791e0-DataRef" }, { - "id": "0x55ddae6cf1e0-DataRef", + "id": "0x557b1f3791e0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55ddae6d6140-ArrayElement" + "ArrayElement": "0x557b1f380140-ArrayElement" }, { - "id": "0x55ddae6d6140-ArrayElement", - "base": "0x55ddae6d6140-DataRef", + "id": "0x557b1f380140-ArrayElement", + "base": "0x557b1f380140-DataRef", "subscripts": [ - "0x55ddae6d6900-SectionSubscript" + "0x557b1f380900-SectionSubscript" ] }, { - "id": "0x55ddae6d6140-DataRef", + "id": "0x557b1f380140-DataRef", "variantKey": "Name", - "Name": "0x55ddae6d6140-Name" + "Name": "0x557b1f380140-Name" }, { - "id": "0x55ddae6d6140-Name", + "id": "0x557b1f380140-Name", "source": "c" }, { - "id": "0x55ddae6d6900-SectionSubscript", + "id": "0x557b1f380900-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x55ddae6d6900-SubscriptTriplet" + "SubscriptTriplet": "0x557b1f380900-SubscriptTriplet" }, { - "id": "0x55ddae6d6900-SubscriptTriplet", - "start": "0x55ddae6cefb0-Expr", - "end": "0x55ddae6cf090-Expr" + "id": "0x557b1f380900-SubscriptTriplet", + "start": "0x557b1f378fb0-Expr", + "end": "0x557b1f379090-Expr" }, { - "id": "0x55ddae6cefb0-Expr", + "id": "0x557b1f378fb0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6cefd0-LiteralConstant" + "LiteralConstant": "0x557b1f378fd0-LiteralConstant" }, { - "id": "0x55ddae6cefd0-LiteralConstant", + "id": "0x557b1f378fd0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6cefd0-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f378fd0-IntLiteralConstant" }, { - "id": "0x55ddae6cefd0-IntLiteralConstant", + "id": "0x557b1f378fd0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55ddae6cf090-Expr", + "id": "0x557b1f379090-Expr", "variantKey": "Designator", - "Designator": "0x55ddae6ce170-Designator" + "Designator": "0x557b1f378170-Designator" }, { - "id": "0x55ddae6ce170-Designator", + "id": "0x557b1f378170-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6ce180-DataRef" + "DataRef": "0x557b1f378180-DataRef" }, { - "id": "0x55ddae6ce180-DataRef", + "id": "0x557b1f378180-DataRef", "variantKey": "Name", - "Name": "0x55ddae6ce180-Name" + "Name": "0x557b1f378180-Name" }, { - "id": "0x55ddae6ce180-Name", + "id": "0x557b1f378180-Name", "source": "n" }, { - "id": "0x55ddae6cf290-Expr", + "id": "0x557b1f379290-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6cf2b0-LiteralConstant" + "LiteralConstant": "0x557b1f3792b0-LiteralConstant" }, { - "id": "0x55ddae6cf2b0-LiteralConstant", + "id": "0x557b1f3792b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6cf2b0-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f3792b0-IntLiteralConstant" }, { - "id": "0x55ddae6cf2b0-IntLiteralConstant", + "id": "0x557b1f3792b0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55ddae6cf180-ExecutionPartConstruct", + "id": "0x557b1f379180-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6cf180-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f379180-ExecutableConstruct" }, { - "id": "0x55ddae6cf180-ExecutableConstruct", + "id": "0x557b1f379180-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55ddae6e10d0-DoConstruct" + "DoConstruct": "0x557b1f38b0d0-DoConstruct" }, { - "id": "0x55ddae6e10d0-DoConstruct", - "Statement": "0x55ddae6e1128-Statement", + "id": "0x557b1f38b0d0-DoConstruct", + "Statement": "0x557b1f38b128-Statement", "ExecutionPartConstruct": [ - "0x55ddae6c7d80-ExecutionPartConstruct", - "0x55ddae6cc500-ExecutionPartConstruct" + "0x557b1f371d80-ExecutionPartConstruct", + "0x557b1f376500-ExecutionPartConstruct" ], - "Statement": "0x55ddae6e10d0-Statement" + "Statement": "0x557b1f38b0d0-Statement" }, { - "id": "0x55ddae6e1128-Statement", - "statement": "0x55ddae6e1138-NonLabelDoStmt", + "id": "0x557b1f38b128-Statement", + "statement": "0x557b1f38b138-NonLabelDoStmt", "source": "do10i=1,1000" }, { - "id": "0x55ddae6e1138-NonLabelDoStmt", - "LoopControl": "0x55ddae6e1138-LoopControl" + "id": "0x557b1f38b138-NonLabelDoStmt", + "LoopControl": "0x557b1f38b138-LoopControl" }, { - "id": "0x55ddae6e1138-LoopControl", + "id": "0x557b1f38b138-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55ddae6e1138-LoopBounds" + "LoopBounds": "0x557b1f38b138-LoopBounds" }, { - "id": "0x55ddae6e1138-LoopBounds", - "var": "0x55ddae6e1138-Name", - "lower": "0x55ddae6cf510-Expr", - "upper": "0x55ddae6cf5f0-Expr" + "id": "0x557b1f38b138-LoopBounds", + "var": "0x557b1f38b138-Name", + "lower": "0x557b1f379510-Expr", + "upper": "0x557b1f3795f0-Expr" }, { - "id": "0x55ddae6e1138-Name", + "id": "0x557b1f38b138-Name", "source": "i" }, { - "id": "0x55ddae6cf510-Expr", + "id": "0x557b1f379510-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6cf530-LiteralConstant" + "LiteralConstant": "0x557b1f379530-LiteralConstant" }, { - "id": "0x55ddae6cf530-LiteralConstant", + "id": "0x557b1f379530-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6cf530-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f379530-IntLiteralConstant" }, { - "id": "0x55ddae6cf530-IntLiteralConstant", + "id": "0x557b1f379530-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55ddae6cf5f0-Expr", + "id": "0x557b1f3795f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6cf610-LiteralConstant" + "LiteralConstant": "0x557b1f379610-LiteralConstant" }, { - "id": "0x55ddae6cf610-LiteralConstant", + "id": "0x557b1f379610-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6cf610-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f379610-IntLiteralConstant" }, { - "id": "0x55ddae6cf610-IntLiteralConstant", + "id": "0x557b1f379610-IntLiteralConstant", "CharBlock": "1000" }, { - "id": "0x55ddae6e1110-ExecutionPartConstruct" + "id": "0x557b1f38b110-ExecutionPartConstruct" }, { - "id": "0x55ddae6c7d80-ExecutionPartConstruct", + "id": "0x557b1f371d80-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6c7d80-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f371d80-ExecutableConstruct" }, { - "id": "0x55ddae6c7d80-ExecutableConstruct", + "id": "0x557b1f371d80-ExecutableConstruct", "variantKey": "IfConstruct", - "IfConstruct": "0x55ddae66f780-IfConstruct" + "IfConstruct": "0x557b1f319780-IfConstruct" }, { - "id": "0x55ddae66f780-IfConstruct", - "Statement": "0x55ddae66f850-Statement", + "id": "0x557b1f319780-IfConstruct", + "Statement": "0x557b1f319850-Statement", "ExecutionPartConstruct": [ - "0x55ddae6ccb30-ExecutionPartConstruct", - "0x55ddae6cc2e0-ExecutionPartConstruct", - "0x55ddae6c79d0-ExecutionPartConstruct", - "0x55ddae6ce950-ExecutionPartConstruct" + "0x557b1f376b30-ExecutionPartConstruct", + "0x557b1f3762e0-ExecutionPartConstruct", + "0x557b1f3719d0-ExecutionPartConstruct", + "0x557b1f378950-ExecutionPartConstruct" ], - "Statement": "0x55ddae66f780-Statement" + "Statement": "0x557b1f319780-Statement" }, { - "id": "0x55ddae66f850-Statement", - "statement": "0x55ddae66f860-IfThenStmt", + "id": "0x557b1f319850-Statement", + "statement": "0x557b1f319860-IfThenStmt", "source": "if(a(i).ne.1)then" }, { - "id": "0x55ddae66f860-IfThenStmt", - "Expr": "0x55ddae6cfa80-Expr" + "id": "0x557b1f319860-IfThenStmt", + "Expr": "0x557b1f379a80-Expr" }, { - "id": "0x55ddae6cfa80-Expr", + "id": "0x557b1f379a80-Expr", "variantKey": "NE", - "NE": "0x55ddae6cfaa0-NE" + "NE": "0x557b1f379aa0-NE" }, { - "id": "0x55ddae6cfaa0-NE", - "left": "0x55ddae6cf6d0-Expr", - "right": "0x55ddae6cf9a0-Expr", + "id": "0x557b1f379aa0-NE", + "left": "0x557b1f3796d0-Expr", + "right": "0x557b1f3799a0-Expr", "op": "NE" }, { - "id": "0x55ddae6cf6d0-Expr", + "id": "0x557b1f3796d0-Expr", "variantKey": "Designator", - "Designator": "0x55ddae7068c0-Designator" + "Designator": "0x557b1f3b08c0-Designator" }, { - "id": "0x55ddae7068c0-Designator", + "id": "0x557b1f3b08c0-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae7068d0-DataRef" + "DataRef": "0x557b1f3b08d0-DataRef" }, { - "id": "0x55ddae7068d0-DataRef", + "id": "0x557b1f3b08d0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55ddae6d5a50-ArrayElement" + "ArrayElement": "0x557b1f37fa50-ArrayElement" }, { - "id": "0x55ddae6d5a50-ArrayElement", - "base": "0x55ddae6d5a50-DataRef", + "id": "0x557b1f37fa50-ArrayElement", + "base": "0x557b1f37fa50-DataRef", "subscripts": [ - "0x55ddae6da140-SectionSubscript" + "0x557b1f384140-SectionSubscript" ] }, { - "id": "0x55ddae6d5a50-DataRef", + "id": "0x557b1f37fa50-DataRef", "variantKey": "Name", - "Name": "0x55ddae6d5a50-Name" + "Name": "0x557b1f37fa50-Name" }, { - "id": "0x55ddae6d5a50-Name", + "id": "0x557b1f37fa50-Name", "source": "a" }, { - "id": "0x55ddae6da140-SectionSubscript", + "id": "0x557b1f384140-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55ddae7813c0-Expr" + "Expr": "0x557b1f42b3c0-Expr" }, { - "id": "0x55ddae7813c0-Expr", + "id": "0x557b1f42b3c0-Expr", "variantKey": "Designator", - "Designator": "0x55ddae6ce1d0-Designator" + "Designator": "0x557b1f3781d0-Designator" }, { - "id": "0x55ddae6ce1d0-Designator", + "id": "0x557b1f3781d0-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6ce1e0-DataRef" + "DataRef": "0x557b1f3781e0-DataRef" }, { - "id": "0x55ddae6ce1e0-DataRef", + "id": "0x557b1f3781e0-DataRef", "variantKey": "Name", - "Name": "0x55ddae6ce1e0-Name" + "Name": "0x557b1f3781e0-Name" }, { - "id": "0x55ddae6ce1e0-Name", + "id": "0x557b1f3781e0-Name", "source": "i" }, { - "id": "0x55ddae6cf9a0-Expr", + "id": "0x557b1f3799a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6cf9c0-LiteralConstant" + "LiteralConstant": "0x557b1f3799c0-LiteralConstant" }, { - "id": "0x55ddae6cf9c0-LiteralConstant", + "id": "0x557b1f3799c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6cf9c0-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f3799c0-IntLiteralConstant" }, { - "id": "0x55ddae6cf9c0-IntLiteralConstant", + "id": "0x557b1f3799c0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55ddae66f838-ExecutionPartConstruct" + "id": "0x557b1f319838-ExecutionPartConstruct" }, { - "id": "0x55ddae6ccb30-ExecutionPartConstruct", + "id": "0x557b1f376b30-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6ccb30-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f376b30-ExecutableConstruct" }, { - "id": "0x55ddae6ccb30-ExecutableConstruct", + "id": "0x557b1f376b30-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ddae6ccb30-Statement" + "Statement": "0x557b1f376b30-Statement" }, { - "id": "0x55ddae6ccb30-Statement", - "statement": "0x55ddae6ccb40-ActionStmt", + "id": "0x557b1f376b30-Statement", + "statement": "0x557b1f376b40-ActionStmt", "source": "write(6,*)'NG'" }, { - "id": "0x55ddae6ccb40-ActionStmt", + "id": "0x557b1f376b40-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x55ddae6ddf50-WriteStmt" + "WriteStmt": "0x557b1f387f50-WriteStmt" }, { - "id": "0x55ddae6ddf50-WriteStmt", - "iounit": "0x55ddae6ddf50-IoUnit", - "format": "0x55ddae6ddf80-Format", + "id": "0x557b1f387f50-WriteStmt", + "iounit": "0x557b1f387f50-IoUnit", + "format": "0x557b1f387f80-Format", "controls": [], "items": [ - "0x55ddae6dde70-OutputItem" + "0x557b1f387e70-OutputItem" ] }, { - "id": "0x55ddae6ddf50-IoUnit", + "id": "0x557b1f387f50-IoUnit", "variantKey": "Expr", - "Expr": "0x55ddae6ddd80-Expr" + "Expr": "0x557b1f387d80-Expr" }, { - "id": "0x55ddae6ddd80-Expr", + "id": "0x557b1f387d80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6ddda0-LiteralConstant" + "LiteralConstant": "0x557b1f387da0-LiteralConstant" }, { - "id": "0x55ddae6ddda0-LiteralConstant", + "id": "0x557b1f387da0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6ddda0-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f387da0-IntLiteralConstant" }, { - "id": "0x55ddae6ddda0-IntLiteralConstant", + "id": "0x557b1f387da0-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x55ddae6ddf80-Format", + "id": "0x557b1f387f80-Format", "variantKey": "Star", - "Star": "0x55ddae6ddf80-Star" + "Star": "0x557b1f387f80-Star" }, { - "id": "0x55ddae6ddf80-Star" + "id": "0x557b1f387f80-Star" }, { - "id": "0x55ddae6dde70-OutputItem", + "id": "0x557b1f387e70-OutputItem", "variantKey": "Expr", - "Expr": "0x55ddae6dde70-Expr" + "Expr": "0x557b1f387e70-Expr" }, { - "id": "0x55ddae6dde70-Expr", + "id": "0x557b1f387e70-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6dde90-LiteralConstant" + "LiteralConstant": "0x557b1f387e90-LiteralConstant" }, { - "id": "0x55ddae6dde90-LiteralConstant", + "id": "0x557b1f387e90-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55ddae6dde90-CharLiteralConstant" + "CharLiteralConstant": "0x557b1f387e90-CharLiteralConstant" }, { - "id": "0x55ddae6dde90-CharLiteralConstant", + "id": "0x557b1f387e90-CharLiteralConstant", "string": "NG" }, { - "id": "0x55ddae6cc2e0-ExecutionPartConstruct", + "id": "0x557b1f3762e0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6cc2e0-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f3762e0-ExecutableConstruct" }, { - "id": "0x55ddae6cc2e0-ExecutableConstruct", + "id": "0x557b1f3762e0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ddae6cc2e0-Statement" + "Statement": "0x557b1f3762e0-Statement" }, { - "id": "0x55ddae6cc2e0-Statement", - "statement": "0x55ddae6cc2f0-ActionStmt", + "id": "0x557b1f3762e0-Statement", + "statement": "0x557b1f3762f0-ActionStmt", "source": "write(6,*)'ELEMENT NUMBER = A(',i,')'" }, { - "id": "0x55ddae6cc2f0-ActionStmt", + "id": "0x557b1f3762f0-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x55ddae6de450-WriteStmt" + "WriteStmt": "0x557b1f388450-WriteStmt" }, { - "id": "0x55ddae6de450-WriteStmt", - "iounit": "0x55ddae6de450-IoUnit", - "format": "0x55ddae6de480-Format", + "id": "0x557b1f388450-WriteStmt", + "iounit": "0x557b1f388450-IoUnit", + "format": "0x557b1f388480-Format", "controls": [], "items": [ - "0x55ddae6de370-OutputItem", - "0x55ddae6de190-OutputItem", - "0x55ddae6de280-OutputItem" + "0x557b1f388370-OutputItem", + "0x557b1f388190-OutputItem", + "0x557b1f388280-OutputItem" ] }, { - "id": "0x55ddae6de450-IoUnit", + "id": "0x557b1f388450-IoUnit", "variantKey": "Expr", - "Expr": "0x55ddae6de0a0-Expr" + "Expr": "0x557b1f3880a0-Expr" }, { - "id": "0x55ddae6de0a0-Expr", + "id": "0x557b1f3880a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6de0c0-LiteralConstant" + "LiteralConstant": "0x557b1f3880c0-LiteralConstant" }, { - "id": "0x55ddae6de0c0-LiteralConstant", + "id": "0x557b1f3880c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6de0c0-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f3880c0-IntLiteralConstant" }, { - "id": "0x55ddae6de0c0-IntLiteralConstant", + "id": "0x557b1f3880c0-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x55ddae6de480-Format", + "id": "0x557b1f388480-Format", "variantKey": "Star", - "Star": "0x55ddae6de480-Star" + "Star": "0x557b1f388480-Star" }, { - "id": "0x55ddae6de480-Star" + "id": "0x557b1f388480-Star" }, { - "id": "0x55ddae6de370-OutputItem", + "id": "0x557b1f388370-OutputItem", "variantKey": "Expr", - "Expr": "0x55ddae6de370-Expr" + "Expr": "0x557b1f388370-Expr" }, { - "id": "0x55ddae6de370-Expr", + "id": "0x557b1f388370-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6de390-LiteralConstant" + "LiteralConstant": "0x557b1f388390-LiteralConstant" }, { - "id": "0x55ddae6de390-LiteralConstant", + "id": "0x557b1f388390-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55ddae6de390-CharLiteralConstant" + "CharLiteralConstant": "0x557b1f388390-CharLiteralConstant" }, { - "id": "0x55ddae6de390-CharLiteralConstant", + "id": "0x557b1f388390-CharLiteralConstant", "string": "ELEMENT NUMBER = A(" }, { - "id": "0x55ddae6de190-OutputItem", + "id": "0x557b1f388190-OutputItem", "variantKey": "Expr", - "Expr": "0x55ddae6de190-Expr" + "Expr": "0x557b1f388190-Expr" }, { - "id": "0x55ddae6de190-Expr", + "id": "0x557b1f388190-Expr", "variantKey": "Designator", - "Designator": "0x55ddae6ce3f0-Designator" + "Designator": "0x557b1f3783f0-Designator" }, { - "id": "0x55ddae6ce3f0-Designator", + "id": "0x557b1f3783f0-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6ce400-DataRef" + "DataRef": "0x557b1f378400-DataRef" }, { - "id": "0x55ddae6ce400-DataRef", + "id": "0x557b1f378400-DataRef", "variantKey": "Name", - "Name": "0x55ddae6ce400-Name" + "Name": "0x557b1f378400-Name" }, { - "id": "0x55ddae6ce400-Name", + "id": "0x557b1f378400-Name", "source": "i" }, { - "id": "0x55ddae6de280-OutputItem", + "id": "0x557b1f388280-OutputItem", "variantKey": "Expr", - "Expr": "0x55ddae6de280-Expr" + "Expr": "0x557b1f388280-Expr" }, { - "id": "0x55ddae6de280-Expr", + "id": "0x557b1f388280-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6de2a0-LiteralConstant" + "LiteralConstant": "0x557b1f3882a0-LiteralConstant" }, { - "id": "0x55ddae6de2a0-LiteralConstant", + "id": "0x557b1f3882a0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55ddae6de2a0-CharLiteralConstant" + "CharLiteralConstant": "0x557b1f3882a0-CharLiteralConstant" }, { - "id": "0x55ddae6de2a0-CharLiteralConstant", + "id": "0x557b1f3882a0-CharLiteralConstant", "string": ")" }, { - "id": "0x55ddae6c79d0-ExecutionPartConstruct", + "id": "0x557b1f3719d0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6c79d0-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f3719d0-ExecutableConstruct" }, { - "id": "0x55ddae6c79d0-ExecutableConstruct", + "id": "0x557b1f3719d0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ddae6c79d0-Statement" + "Statement": "0x557b1f3719d0-Statement" }, { - "id": "0x55ddae6c79d0-Statement", - "statement": "0x55ddae6c79e0-ActionStmt", + "id": "0x557b1f3719d0-Statement", + "statement": "0x557b1f3719e0-ActionStmt", "source": "code=1" }, { - "id": "0x55ddae6c79e0-ActionStmt", + "id": "0x557b1f3719e0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55ddae6cf7b0-AssignmentStmt" + "AssignmentStmt": "0x557b1f3797b0-AssignmentStmt" }, { - "id": "0x55ddae6cf7b0-AssignmentStmt", - "Variable": "0x55ddae6cf890-Variable", - "Expr": "0x55ddae6cf7c0-Expr" + "id": "0x557b1f3797b0-AssignmentStmt", + "Variable": "0x557b1f379890-Variable", + "Expr": "0x557b1f3797c0-Expr" }, { - "id": "0x55ddae6cf890-Variable", + "id": "0x557b1f379890-Variable", "variantKey": "Designator", - "Designator": "0x55ddae6ce110-Designator" + "Designator": "0x557b1f378110-Designator" }, { - "id": "0x55ddae6ce110-Designator", + "id": "0x557b1f378110-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6ce120-DataRef" + "DataRef": "0x557b1f378120-DataRef" }, { - "id": "0x55ddae6ce120-DataRef", + "id": "0x557b1f378120-DataRef", "variantKey": "Name", - "Name": "0x55ddae6ce120-Name" + "Name": "0x557b1f378120-Name" }, { - "id": "0x55ddae6ce120-Name", + "id": "0x557b1f378120-Name", "source": "code" }, { - "id": "0x55ddae6cf7c0-Expr", + "id": "0x557b1f3797c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6cf7e0-LiteralConstant" + "LiteralConstant": "0x557b1f3797e0-LiteralConstant" }, { - "id": "0x55ddae6cf7e0-LiteralConstant", + "id": "0x557b1f3797e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6cf7e0-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f3797e0-IntLiteralConstant" }, { - "id": "0x55ddae6cf7e0-IntLiteralConstant", + "id": "0x557b1f3797e0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55ddae6ce950-ExecutionPartConstruct", + "id": "0x557b1f378950-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6ce950-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f378950-ExecutableConstruct" }, { - "id": "0x55ddae6ce950-ExecutableConstruct", + "id": "0x557b1f378950-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ddae6ce950-Statement" + "Statement": "0x557b1f378950-Statement" }, { - "id": "0x55ddae6ce950-Statement", - "statement": "0x55ddae6ce960-ActionStmt", + "id": "0x557b1f378950-Statement", + "statement": "0x557b1f378960-ActionStmt", "source": "goto20" }, { - "id": "0x55ddae6ce960-ActionStmt", + "id": "0x557b1f378960-ActionStmt", "variantKey": "GotoStmt", - "GotoStmt": "0x55ddae6d6180-GotoStmt" + "GotoStmt": "0x557b1f380180-GotoStmt" }, { - "id": "0x55ddae6d6180-GotoStmt", + "id": "0x557b1f380180-GotoStmt", "uint64_t": "20" }, { - "id": "0x55ddae66f780-Statement", - "statement": "0x55ddae66f790-EndIfStmt", + "id": "0x557b1f319780-Statement", + "statement": "0x557b1f319790-EndIfStmt", "source": "endif" }, { - "id": "0x55ddae66f790-EndIfStmt" + "id": "0x557b1f319790-EndIfStmt" }, { - "id": "0x55ddae6cc500-ExecutionPartConstruct", + "id": "0x557b1f376500-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6cc500-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f376500-ExecutableConstruct" }, { - "id": "0x55ddae6cc500-ExecutableConstruct", + "id": "0x557b1f376500-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ddae6cc500-Statement" + "Statement": "0x557b1f376500-Statement" }, { - "id": "0x55ddae6cc500-Statement", - "statement": "0x55ddae6cc510-ActionStmt", + "id": "0x557b1f376500-Statement", + "statement": "0x557b1f376510-ActionStmt", "label": "10", "source": "10continue" }, { - "id": "0x55ddae6cc510-ActionStmt", + "id": "0x557b1f376510-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x55ddae6cc510-ContinueStmt" + "ContinueStmt": "0x557b1f376510-ContinueStmt" }, { - "id": "0x55ddae6cc510-ContinueStmt" + "id": "0x557b1f376510-ContinueStmt" }, { - "id": "0x55ddae6e10d0-Statement", - "statement": "0x55ddae6e10e0-EndDoStmt", + "id": "0x557b1f38b0d0-Statement", + "statement": "0x557b1f38b0e0-EndDoStmt", "source": "" }, { - "id": "0x55ddae6e10e0-EndDoStmt" + "id": "0x557b1f38b0e0-EndDoStmt" }, { - "id": "0x55ddae6cf240-ExecutionPartConstruct", + "id": "0x557b1f379240-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6cf240-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f379240-ExecutableConstruct" }, { - "id": "0x55ddae6cf240-ExecutableConstruct", + "id": "0x557b1f379240-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ddae6cf240-Statement" + "Statement": "0x557b1f379240-Statement" }, { - "id": "0x55ddae6cf240-Statement", - "statement": "0x55ddae6cf250-ActionStmt", + "id": "0x557b1f379240-Statement", + "statement": "0x557b1f379250-ActionStmt", "label": "20", "source": "20continue" }, { - "id": "0x55ddae6cf250-ActionStmt", + "id": "0x557b1f379250-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x55ddae6cf250-ContinueStmt" + "ContinueStmt": "0x557b1f379250-ContinueStmt" }, { - "id": "0x55ddae6cf250-ContinueStmt" + "id": "0x557b1f379250-ContinueStmt" }, { - "id": "0x55ddae6cbfb0-ExecutionPartConstruct", + "id": "0x557b1f375fb0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6cbfb0-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f375fb0-ExecutableConstruct" }, { - "id": "0x55ddae6cbfb0-ExecutableConstruct", + "id": "0x557b1f375fb0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55ddae6e11f0-DoConstruct" + "DoConstruct": "0x557b1f38b1f0-DoConstruct" }, { - "id": "0x55ddae6e11f0-DoConstruct", - "Statement": "0x55ddae6e1248-Statement", + "id": "0x557b1f38b1f0-DoConstruct", + "Statement": "0x557b1f38b248-Statement", "ExecutionPartConstruct": [ - "0x55ddae6cde20-ExecutionPartConstruct", - "0x55ddae6cc830-ExecutionPartConstruct" + "0x557b1f377e20-ExecutionPartConstruct", + "0x557b1f376830-ExecutionPartConstruct" ], - "Statement": "0x55ddae6e11f0-Statement" + "Statement": "0x557b1f38b1f0-Statement" }, { - "id": "0x55ddae6e1248-Statement", - "statement": "0x55ddae6e1258-NonLabelDoStmt", + "id": "0x557b1f38b248-Statement", + "statement": "0x557b1f38b258-NonLabelDoStmt", "source": "do30i=1,1000" }, { - "id": "0x55ddae6e1258-NonLabelDoStmt", - "LoopControl": "0x55ddae6e1258-LoopControl" + "id": "0x557b1f38b258-NonLabelDoStmt", + "LoopControl": "0x557b1f38b258-LoopControl" }, { - "id": "0x55ddae6e1258-LoopControl", + "id": "0x557b1f38b258-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55ddae6e1258-LoopBounds" + "LoopBounds": "0x557b1f38b258-LoopBounds" }, { - "id": "0x55ddae6e1258-LoopBounds", - "var": "0x55ddae6e1258-Name", - "lower": "0x55ddae6de5a0-Expr", - "upper": "0x55ddae6de680-Expr" + "id": "0x557b1f38b258-LoopBounds", + "var": "0x557b1f38b258-Name", + "lower": "0x557b1f3885a0-Expr", + "upper": "0x557b1f388680-Expr" }, { - "id": "0x55ddae6e1258-Name", + "id": "0x557b1f38b258-Name", "source": "i" }, { - "id": "0x55ddae6de5a0-Expr", + "id": "0x557b1f3885a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6de5c0-LiteralConstant" + "LiteralConstant": "0x557b1f3885c0-LiteralConstant" }, { - "id": "0x55ddae6de5c0-LiteralConstant", + "id": "0x557b1f3885c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6de5c0-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f3885c0-IntLiteralConstant" }, { - "id": "0x55ddae6de5c0-IntLiteralConstant", + "id": "0x557b1f3885c0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55ddae6de680-Expr", + "id": "0x557b1f388680-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6de6a0-LiteralConstant" + "LiteralConstant": "0x557b1f3886a0-LiteralConstant" }, { - "id": "0x55ddae6de6a0-LiteralConstant", + "id": "0x557b1f3886a0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6de6a0-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f3886a0-IntLiteralConstant" }, { - "id": "0x55ddae6de6a0-IntLiteralConstant", + "id": "0x557b1f3886a0-IntLiteralConstant", "CharBlock": "1000" }, { - "id": "0x55ddae6e1230-ExecutionPartConstruct" + "id": "0x557b1f38b230-ExecutionPartConstruct" }, { - "id": "0x55ddae6cde20-ExecutionPartConstruct", + "id": "0x557b1f377e20-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6cde20-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f377e20-ExecutableConstruct" }, { - "id": "0x55ddae6cde20-ExecutableConstruct", + "id": "0x557b1f377e20-ExecutableConstruct", "variantKey": "IfConstruct", - "IfConstruct": "0x55ddae6df520-IfConstruct" + "IfConstruct": "0x557b1f389520-IfConstruct" }, { - "id": "0x55ddae6df520-IfConstruct", - "Statement": "0x55ddae6df5f0-Statement", + "id": "0x557b1f389520-IfConstruct", + "Statement": "0x557b1f3895f0-Statement", "ExecutionPartConstruct": [ - "0x55ddae6cc720-ExecutionPartConstruct", - "0x55ddae6cd590-ExecutionPartConstruct", - "0x55ddae6cc610-ExecutionPartConstruct", - "0x55ddae6cb5c0-ExecutionPartConstruct" + "0x557b1f376720-ExecutionPartConstruct", + "0x557b1f377590-ExecutionPartConstruct", + "0x557b1f376610-ExecutionPartConstruct", + "0x557b1f3755c0-ExecutionPartConstruct" ], - "Statement": "0x55ddae6df520-Statement" + "Statement": "0x557b1f389520-Statement" }, { - "id": "0x55ddae6df5f0-Statement", - "statement": "0x55ddae6df600-IfThenStmt", + "id": "0x557b1f3895f0-Statement", + "statement": "0x557b1f389600-IfThenStmt", "source": "if(b(i).ne.1)then" }, { - "id": "0x55ddae6df600-IfThenStmt", - "Expr": "0x55ddae6deb10-Expr" + "id": "0x557b1f389600-IfThenStmt", + "Expr": "0x557b1f388b10-Expr" }, { - "id": "0x55ddae6deb10-Expr", + "id": "0x557b1f388b10-Expr", "variantKey": "NE", - "NE": "0x55ddae6deb30-NE" + "NE": "0x557b1f388b30-NE" }, { - "id": "0x55ddae6deb30-NE", - "left": "0x55ddae6de760-Expr", - "right": "0x55ddae6dea30-Expr", + "id": "0x557b1f388b30-NE", + "left": "0x557b1f388760-Expr", + "right": "0x557b1f388a30-Expr", "op": "NE" }, { - "id": "0x55ddae6de760-Expr", + "id": "0x557b1f388760-Expr", "variantKey": "Designator", - "Designator": "0x55ddae705f20-Designator" + "Designator": "0x557b1f3aff20-Designator" }, { - "id": "0x55ddae705f20-Designator", + "id": "0x557b1f3aff20-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae705f30-DataRef" + "DataRef": "0x557b1f3aff30-DataRef" }, { - "id": "0x55ddae705f30-DataRef", + "id": "0x557b1f3aff30-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55ddae6cfd10-ArrayElement" + "ArrayElement": "0x557b1f379d10-ArrayElement" }, { - "id": "0x55ddae6cfd10-ArrayElement", - "base": "0x55ddae6cfd10-DataRef", + "id": "0x557b1f379d10-ArrayElement", + "base": "0x557b1f379d10-DataRef", "subscripts": [ - "0x55ddae6f6fc0-SectionSubscript" + "0x557b1f3a0fc0-SectionSubscript" ] }, { - "id": "0x55ddae6cfd10-DataRef", + "id": "0x557b1f379d10-DataRef", "variantKey": "Name", - "Name": "0x55ddae6cfd10-Name" + "Name": "0x557b1f379d10-Name" }, { - "id": "0x55ddae6cfd10-Name", + "id": "0x557b1f379d10-Name", "source": "b" }, { - "id": "0x55ddae6f6fc0-SectionSubscript", + "id": "0x557b1f3a0fc0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55ddae6cf8c0-Expr" + "Expr": "0x557b1f3798c0-Expr" }, { - "id": "0x55ddae6cf8c0-Expr", + "id": "0x557b1f3798c0-Expr", "variantKey": "Designator", - "Designator": "0x55ddae6c8220-Designator" + "Designator": "0x557b1f372220-Designator" }, { - "id": "0x55ddae6c8220-Designator", + "id": "0x557b1f372220-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6c8230-DataRef" + "DataRef": "0x557b1f372230-DataRef" }, { - "id": "0x55ddae6c8230-DataRef", + "id": "0x557b1f372230-DataRef", "variantKey": "Name", - "Name": "0x55ddae6c8230-Name" + "Name": "0x557b1f372230-Name" }, { - "id": "0x55ddae6c8230-Name", + "id": "0x557b1f372230-Name", "source": "i" }, { - "id": "0x55ddae6dea30-Expr", + "id": "0x557b1f388a30-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6dea50-LiteralConstant" + "LiteralConstant": "0x557b1f388a50-LiteralConstant" }, { - "id": "0x55ddae6dea50-LiteralConstant", + "id": "0x557b1f388a50-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6dea50-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f388a50-IntLiteralConstant" }, { - "id": "0x55ddae6dea50-IntLiteralConstant", + "id": "0x557b1f388a50-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55ddae6df5d8-ExecutionPartConstruct" + "id": "0x557b1f3895d8-ExecutionPartConstruct" }, { - "id": "0x55ddae6cc720-ExecutionPartConstruct", + "id": "0x557b1f376720-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6cc720-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f376720-ExecutableConstruct" }, { - "id": "0x55ddae6cc720-ExecutableConstruct", + "id": "0x557b1f376720-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ddae6cc720-Statement" + "Statement": "0x557b1f376720-Statement" }, { - "id": "0x55ddae6cc720-Statement", - "statement": "0x55ddae6cc730-ActionStmt", + "id": "0x557b1f376720-Statement", + "statement": "0x557b1f376730-ActionStmt", "source": "write(6,*)'NG'" }, { - "id": "0x55ddae6cc730-ActionStmt", + "id": "0x557b1f376730-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x55ddae6deed0-WriteStmt" + "WriteStmt": "0x557b1f388ed0-WriteStmt" }, { - "id": "0x55ddae6deed0-WriteStmt", - "iounit": "0x55ddae6deed0-IoUnit", - "format": "0x55ddae6def00-Format", + "id": "0x557b1f388ed0-WriteStmt", + "iounit": "0x557b1f388ed0-IoUnit", + "format": "0x557b1f388f00-Format", "controls": [], "items": [ - "0x55ddae6dedf0-OutputItem" + "0x557b1f388df0-OutputItem" ] }, { - "id": "0x55ddae6deed0-IoUnit", + "id": "0x557b1f388ed0-IoUnit", "variantKey": "Expr", - "Expr": "0x55ddae6ded00-Expr" + "Expr": "0x557b1f388d00-Expr" }, { - "id": "0x55ddae6ded00-Expr", + "id": "0x557b1f388d00-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6ded20-LiteralConstant" + "LiteralConstant": "0x557b1f388d20-LiteralConstant" }, { - "id": "0x55ddae6ded20-LiteralConstant", + "id": "0x557b1f388d20-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6ded20-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f388d20-IntLiteralConstant" }, { - "id": "0x55ddae6ded20-IntLiteralConstant", + "id": "0x557b1f388d20-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x55ddae6def00-Format", + "id": "0x557b1f388f00-Format", "variantKey": "Star", - "Star": "0x55ddae6def00-Star" + "Star": "0x557b1f388f00-Star" }, { - "id": "0x55ddae6def00-Star" + "id": "0x557b1f388f00-Star" }, { - "id": "0x55ddae6dedf0-OutputItem", + "id": "0x557b1f388df0-OutputItem", "variantKey": "Expr", - "Expr": "0x55ddae6dedf0-Expr" + "Expr": "0x557b1f388df0-Expr" }, { - "id": "0x55ddae6dedf0-Expr", + "id": "0x557b1f388df0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6dee10-LiteralConstant" + "LiteralConstant": "0x557b1f388e10-LiteralConstant" }, { - "id": "0x55ddae6dee10-LiteralConstant", + "id": "0x557b1f388e10-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55ddae6dee10-CharLiteralConstant" + "CharLiteralConstant": "0x557b1f388e10-CharLiteralConstant" }, { - "id": "0x55ddae6dee10-CharLiteralConstant", + "id": "0x557b1f388e10-CharLiteralConstant", "string": "NG" }, { - "id": "0x55ddae6cd590-ExecutionPartConstruct", + "id": "0x557b1f377590-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6cd590-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f377590-ExecutableConstruct" }, { - "id": "0x55ddae6cd590-ExecutableConstruct", + "id": "0x557b1f377590-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ddae6cd590-Statement" + "Statement": "0x557b1f377590-Statement" }, { - "id": "0x55ddae6cd590-Statement", - "statement": "0x55ddae6cd5a0-ActionStmt", + "id": "0x557b1f377590-Statement", + "statement": "0x557b1f3775a0-ActionStmt", "source": "write(6,*)'ELEMENT NUMBER = B(',i,')'" }, { - "id": "0x55ddae6cd5a0-ActionStmt", + "id": "0x557b1f3775a0-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x55ddae6df3d0-WriteStmt" + "WriteStmt": "0x557b1f3893d0-WriteStmt" }, { - "id": "0x55ddae6df3d0-WriteStmt", - "iounit": "0x55ddae6df3d0-IoUnit", - "format": "0x55ddae6df400-Format", + "id": "0x557b1f3893d0-WriteStmt", + "iounit": "0x557b1f3893d0-IoUnit", + "format": "0x557b1f389400-Format", "controls": [], "items": [ - "0x55ddae6df2f0-OutputItem", - "0x55ddae6df110-OutputItem", - "0x55ddae6df200-OutputItem" + "0x557b1f3892f0-OutputItem", + "0x557b1f389110-OutputItem", + "0x557b1f389200-OutputItem" ] }, { - "id": "0x55ddae6df3d0-IoUnit", + "id": "0x557b1f3893d0-IoUnit", "variantKey": "Expr", - "Expr": "0x55ddae6df020-Expr" + "Expr": "0x557b1f389020-Expr" }, { - "id": "0x55ddae6df020-Expr", + "id": "0x557b1f389020-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6df040-LiteralConstant" + "LiteralConstant": "0x557b1f389040-LiteralConstant" }, { - "id": "0x55ddae6df040-LiteralConstant", + "id": "0x557b1f389040-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6df040-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f389040-IntLiteralConstant" }, { - "id": "0x55ddae6df040-IntLiteralConstant", + "id": "0x557b1f389040-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x55ddae6df400-Format", + "id": "0x557b1f389400-Format", "variantKey": "Star", - "Star": "0x55ddae6df400-Star" + "Star": "0x557b1f389400-Star" }, { - "id": "0x55ddae6df400-Star" + "id": "0x557b1f389400-Star" }, { - "id": "0x55ddae6df2f0-OutputItem", + "id": "0x557b1f3892f0-OutputItem", "variantKey": "Expr", - "Expr": "0x55ddae6df2f0-Expr" + "Expr": "0x557b1f3892f0-Expr" }, { - "id": "0x55ddae6df2f0-Expr", + "id": "0x557b1f3892f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6df310-LiteralConstant" + "LiteralConstant": "0x557b1f389310-LiteralConstant" }, { - "id": "0x55ddae6df310-LiteralConstant", + "id": "0x557b1f389310-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55ddae6df310-CharLiteralConstant" + "CharLiteralConstant": "0x557b1f389310-CharLiteralConstant" }, { - "id": "0x55ddae6df310-CharLiteralConstant", + "id": "0x557b1f389310-CharLiteralConstant", "string": "ELEMENT NUMBER = B(" }, { - "id": "0x55ddae6df110-OutputItem", + "id": "0x557b1f389110-OutputItem", "variantKey": "Expr", - "Expr": "0x55ddae6df110-Expr" + "Expr": "0x557b1f389110-Expr" }, { - "id": "0x55ddae6df110-Expr", + "id": "0x557b1f389110-Expr", "variantKey": "Designator", - "Designator": "0x55ddae6cc0b0-Designator" + "Designator": "0x557b1f3760b0-Designator" }, { - "id": "0x55ddae6cc0b0-Designator", + "id": "0x557b1f3760b0-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6cc0c0-DataRef" + "DataRef": "0x557b1f3760c0-DataRef" }, { - "id": "0x55ddae6cc0c0-DataRef", + "id": "0x557b1f3760c0-DataRef", "variantKey": "Name", - "Name": "0x55ddae6cc0c0-Name" + "Name": "0x557b1f3760c0-Name" }, { - "id": "0x55ddae6cc0c0-Name", + "id": "0x557b1f3760c0-Name", "source": "i" }, { - "id": "0x55ddae6df200-OutputItem", + "id": "0x557b1f389200-OutputItem", "variantKey": "Expr", - "Expr": "0x55ddae6df200-Expr" + "Expr": "0x557b1f389200-Expr" }, { - "id": "0x55ddae6df200-Expr", + "id": "0x557b1f389200-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6df220-LiteralConstant" + "LiteralConstant": "0x557b1f389220-LiteralConstant" }, { - "id": "0x55ddae6df220-LiteralConstant", + "id": "0x557b1f389220-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55ddae6df220-CharLiteralConstant" + "CharLiteralConstant": "0x557b1f389220-CharLiteralConstant" }, { - "id": "0x55ddae6df220-CharLiteralConstant", + "id": "0x557b1f389220-CharLiteralConstant", "string": ")" }, { - "id": "0x55ddae6cc610-ExecutionPartConstruct", + "id": "0x557b1f376610-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6cc610-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f376610-ExecutableConstruct" }, { - "id": "0x55ddae6cc610-ExecutableConstruct", + "id": "0x557b1f376610-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ddae6cc610-Statement" + "Statement": "0x557b1f376610-Statement" }, { - "id": "0x55ddae6cc610-Statement", - "statement": "0x55ddae6cc620-ActionStmt", + "id": "0x557b1f376610-Statement", + "statement": "0x557b1f376620-ActionStmt", "source": "code=1" }, { - "id": "0x55ddae6cc620-ActionStmt", + "id": "0x557b1f376620-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55ddae6de840-AssignmentStmt" + "AssignmentStmt": "0x557b1f388840-AssignmentStmt" }, { - "id": "0x55ddae6de840-AssignmentStmt", - "Variable": "0x55ddae6de920-Variable", - "Expr": "0x55ddae6de850-Expr" + "id": "0x557b1f388840-AssignmentStmt", + "Variable": "0x557b1f388920-Variable", + "Expr": "0x557b1f388850-Expr" }, { - "id": "0x55ddae6de920-Variable", + "id": "0x557b1f388920-Variable", "variantKey": "Designator", - "Designator": "0x55ddae6cec20-Designator" + "Designator": "0x557b1f378c20-Designator" }, { - "id": "0x55ddae6cec20-Designator", + "id": "0x557b1f378c20-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6cec30-DataRef" + "DataRef": "0x557b1f378c30-DataRef" }, { - "id": "0x55ddae6cec30-DataRef", + "id": "0x557b1f378c30-DataRef", "variantKey": "Name", - "Name": "0x55ddae6cec30-Name" + "Name": "0x557b1f378c30-Name" }, { - "id": "0x55ddae6cec30-Name", + "id": "0x557b1f378c30-Name", "source": "code" }, { - "id": "0x55ddae6de850-Expr", + "id": "0x557b1f388850-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6de870-LiteralConstant" + "LiteralConstant": "0x557b1f388870-LiteralConstant" }, { - "id": "0x55ddae6de870-LiteralConstant", + "id": "0x557b1f388870-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6de870-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f388870-IntLiteralConstant" }, { - "id": "0x55ddae6de870-IntLiteralConstant", + "id": "0x557b1f388870-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55ddae6cb5c0-ExecutionPartConstruct", + "id": "0x557b1f3755c0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6cb5c0-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f3755c0-ExecutableConstruct" }, { - "id": "0x55ddae6cb5c0-ExecutableConstruct", + "id": "0x557b1f3755c0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ddae6cb5c0-Statement" + "Statement": "0x557b1f3755c0-Statement" }, { - "id": "0x55ddae6cb5c0-Statement", - "statement": "0x55ddae6cb5d0-ActionStmt", + "id": "0x557b1f3755c0-Statement", + "statement": "0x557b1f3755d0-ActionStmt", "source": "goto40" }, { - "id": "0x55ddae6cb5d0-ActionStmt", + "id": "0x557b1f3755d0-ActionStmt", "variantKey": "GotoStmt", - "GotoStmt": "0x55ddae6d8b40-GotoStmt" + "GotoStmt": "0x557b1f382b40-GotoStmt" }, { - "id": "0x55ddae6d8b40-GotoStmt", + "id": "0x557b1f382b40-GotoStmt", "uint64_t": "40" }, { - "id": "0x55ddae6df520-Statement", - "statement": "0x55ddae6df530-EndIfStmt", + "id": "0x557b1f389520-Statement", + "statement": "0x557b1f389530-EndIfStmt", "source": "endif" }, { - "id": "0x55ddae6df530-EndIfStmt" + "id": "0x557b1f389530-EndIfStmt" }, { - "id": "0x55ddae6cc830-ExecutionPartConstruct", + "id": "0x557b1f376830-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6cc830-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f376830-ExecutableConstruct" }, { - "id": "0x55ddae6cc830-ExecutableConstruct", + "id": "0x557b1f376830-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ddae6cc830-Statement" + "Statement": "0x557b1f376830-Statement" }, { - "id": "0x55ddae6cc830-Statement", - "statement": "0x55ddae6cc840-ActionStmt", + "id": "0x557b1f376830-Statement", + "statement": "0x557b1f376840-ActionStmt", "label": "30", "source": "30continue" }, { - "id": "0x55ddae6cc840-ActionStmt", + "id": "0x557b1f376840-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x55ddae6cc840-ContinueStmt" + "ContinueStmt": "0x557b1f376840-ContinueStmt" }, { - "id": "0x55ddae6cc840-ContinueStmt" + "id": "0x557b1f376840-ContinueStmt" }, { - "id": "0x55ddae6e11f0-Statement", - "statement": "0x55ddae6e1200-EndDoStmt", + "id": "0x557b1f38b1f0-Statement", + "statement": "0x557b1f38b200-EndDoStmt", "source": "" }, { - "id": "0x55ddae6e1200-EndDoStmt" + "id": "0x557b1f38b200-EndDoStmt" }, { - "id": "0x55ddae6cd150-ExecutionPartConstruct", + "id": "0x557b1f377150-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6cd150-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f377150-ExecutableConstruct" }, { - "id": "0x55ddae6cd150-ExecutableConstruct", + "id": "0x557b1f377150-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ddae6cd150-Statement" + "Statement": "0x557b1f377150-Statement" }, { - "id": "0x55ddae6cd150-Statement", - "statement": "0x55ddae6cd160-ActionStmt", + "id": "0x557b1f377150-Statement", + "statement": "0x557b1f377160-ActionStmt", "label": "40", "source": "40continue" }, { - "id": "0x55ddae6cd160-ActionStmt", + "id": "0x557b1f377160-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x55ddae6cd160-ContinueStmt" + "ContinueStmt": "0x557b1f377160-ContinueStmt" }, { - "id": "0x55ddae6cd160-ContinueStmt" + "id": "0x557b1f377160-ContinueStmt" }, { - "id": "0x55ddae6cc1d0-ExecutionPartConstruct", + "id": "0x557b1f3761d0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6cc1d0-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f3761d0-ExecutableConstruct" }, { - "id": "0x55ddae6cc1d0-ExecutableConstruct", + "id": "0x557b1f3761d0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55ddae6e1310-DoConstruct" + "DoConstruct": "0x557b1f38b310-DoConstruct" }, { - "id": "0x55ddae6e1310-DoConstruct", - "Statement": "0x55ddae6e1368-Statement", + "id": "0x557b1f38b310-DoConstruct", + "Statement": "0x557b1f38b368-Statement", "ExecutionPartConstruct": [ - "0x55ddae6cdf30-ExecutionPartConstruct", - "0x55ddae6ccd90-ExecutionPartConstruct" + "0x557b1f377f30-ExecutionPartConstruct", + "0x557b1f376d90-ExecutionPartConstruct" ], - "Statement": "0x55ddae6e1310-Statement" + "Statement": "0x557b1f38b310-Statement" }, { - "id": "0x55ddae6e1368-Statement", - "statement": "0x55ddae6e1378-NonLabelDoStmt", + "id": "0x557b1f38b368-Statement", + "statement": "0x557b1f38b378-NonLabelDoStmt", "source": "do50i=1,1000" }, { - "id": "0x55ddae6e1378-NonLabelDoStmt", - "LoopControl": "0x55ddae6e1378-LoopControl" + "id": "0x557b1f38b378-NonLabelDoStmt", + "LoopControl": "0x557b1f38b378-LoopControl" }, { - "id": "0x55ddae6e1378-LoopControl", + "id": "0x557b1f38b378-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55ddae6e1378-LoopBounds" + "LoopBounds": "0x557b1f38b378-LoopBounds" }, { - "id": "0x55ddae6e1378-LoopBounds", - "var": "0x55ddae6e1378-Name", - "lower": "0x55ddae6df640-Expr", - "upper": "0x55ddae6df720-Expr" + "id": "0x557b1f38b378-LoopBounds", + "var": "0x557b1f38b378-Name", + "lower": "0x557b1f389640-Expr", + "upper": "0x557b1f389720-Expr" }, { - "id": "0x55ddae6e1378-Name", + "id": "0x557b1f38b378-Name", "source": "i" }, { - "id": "0x55ddae6df640-Expr", + "id": "0x557b1f389640-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6df660-LiteralConstant" + "LiteralConstant": "0x557b1f389660-LiteralConstant" }, { - "id": "0x55ddae6df660-LiteralConstant", + "id": "0x557b1f389660-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6df660-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f389660-IntLiteralConstant" }, { - "id": "0x55ddae6df660-IntLiteralConstant", + "id": "0x557b1f389660-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55ddae6df720-Expr", + "id": "0x557b1f389720-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6df740-LiteralConstant" + "LiteralConstant": "0x557b1f389740-LiteralConstant" }, { - "id": "0x55ddae6df740-LiteralConstant", + "id": "0x557b1f389740-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6df740-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f389740-IntLiteralConstant" }, { - "id": "0x55ddae6df740-IntLiteralConstant", + "id": "0x557b1f389740-IntLiteralConstant", "CharBlock": "1000" }, { - "id": "0x55ddae6e1350-ExecutionPartConstruct" + "id": "0x557b1f38b350-ExecutionPartConstruct" }, { - "id": "0x55ddae6cdf30-ExecutionPartConstruct", + "id": "0x557b1f377f30-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6cdf30-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f377f30-ExecutableConstruct" }, { - "id": "0x55ddae6cdf30-ExecutableConstruct", + "id": "0x557b1f377f30-ExecutableConstruct", "variantKey": "IfConstruct", - "IfConstruct": "0x55ddae6e05c0-IfConstruct" + "IfConstruct": "0x557b1f38a5c0-IfConstruct" }, { - "id": "0x55ddae6e05c0-IfConstruct", - "Statement": "0x55ddae6e0690-Statement", + "id": "0x557b1f38a5c0-IfConstruct", + "Statement": "0x557b1f38a690-Statement", "ExecutionPartConstruct": [ - "0x55ddae6cb8c0-ExecutionPartConstruct", - "0x55ddae6c7220-ExecutionPartConstruct", - "0x55ddae6cd6a0-ExecutionPartConstruct", - "0x55ddae6cf460-ExecutionPartConstruct" + "0x557b1f3758c0-ExecutionPartConstruct", + "0x557b1f371220-ExecutionPartConstruct", + "0x557b1f3776a0-ExecutionPartConstruct", + "0x557b1f379460-ExecutionPartConstruct" ], - "Statement": "0x55ddae6e05c0-Statement" + "Statement": "0x557b1f38a5c0-Statement" }, { - "id": "0x55ddae6e0690-Statement", - "statement": "0x55ddae6e06a0-IfThenStmt", + "id": "0x557b1f38a690-Statement", + "statement": "0x557b1f38a6a0-IfThenStmt", "source": "if(c(i).ne.1)then" }, { - "id": "0x55ddae6e06a0-IfThenStmt", - "Expr": "0x55ddae6dfbb0-Expr" + "id": "0x557b1f38a6a0-IfThenStmt", + "Expr": "0x557b1f389bb0-Expr" }, { - "id": "0x55ddae6dfbb0-Expr", + "id": "0x557b1f389bb0-Expr", "variantKey": "NE", - "NE": "0x55ddae6dfbd0-NE" + "NE": "0x557b1f389bd0-NE" }, { - "id": "0x55ddae6dfbd0-NE", - "left": "0x55ddae6df800-Expr", - "right": "0x55ddae6dfad0-Expr", + "id": "0x557b1f389bd0-NE", + "left": "0x557b1f389800-Expr", + "right": "0x557b1f389ad0-Expr", "op": "NE" }, { - "id": "0x55ddae6df800-Expr", + "id": "0x557b1f389800-Expr", "variantKey": "Designator", - "Designator": "0x55ddae707260-Designator" + "Designator": "0x557b1f3b1260-Designator" }, { - "id": "0x55ddae707260-Designator", + "id": "0x557b1f3b1260-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae707270-DataRef" + "DataRef": "0x557b1f3b1270-DataRef" }, { - "id": "0x55ddae707270-DataRef", + "id": "0x557b1f3b1270-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55ddae6cb870-ArrayElement" + "ArrayElement": "0x557b1f375870-ArrayElement" }, { - "id": "0x55ddae6cb870-ArrayElement", - "base": "0x55ddae6cb870-DataRef", + "id": "0x557b1f375870-ArrayElement", + "base": "0x557b1f375870-DataRef", "subscripts": [ - "0x55ddae6eea40-SectionSubscript" + "0x557b1f398a40-SectionSubscript" ] }, { - "id": "0x55ddae6cb870-DataRef", + "id": "0x557b1f375870-DataRef", "variantKey": "Name", - "Name": "0x55ddae6cb870-Name" + "Name": "0x557b1f375870-Name" }, { - "id": "0x55ddae6cb870-Name", + "id": "0x557b1f375870-Name", "source": "c" }, { - "id": "0x55ddae6eea40-SectionSubscript", + "id": "0x557b1f398a40-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55ddae6de950-Expr" + "Expr": "0x557b1f388950-Expr" }, { - "id": "0x55ddae6de950-Expr", + "id": "0x557b1f388950-Expr", "variantKey": "Designator", - "Designator": "0x55ddae6c7500-Designator" + "Designator": "0x557b1f371500-Designator" }, { - "id": "0x55ddae6c7500-Designator", + "id": "0x557b1f371500-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6c7510-DataRef" + "DataRef": "0x557b1f371510-DataRef" }, { - "id": "0x55ddae6c7510-DataRef", + "id": "0x557b1f371510-DataRef", "variantKey": "Name", - "Name": "0x55ddae6c7510-Name" + "Name": "0x557b1f371510-Name" }, { - "id": "0x55ddae6c7510-Name", + "id": "0x557b1f371510-Name", "source": "i" }, { - "id": "0x55ddae6dfad0-Expr", + "id": "0x557b1f389ad0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6dfaf0-LiteralConstant" + "LiteralConstant": "0x557b1f389af0-LiteralConstant" }, { - "id": "0x55ddae6dfaf0-LiteralConstant", + "id": "0x557b1f389af0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6dfaf0-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f389af0-IntLiteralConstant" }, { - "id": "0x55ddae6dfaf0-IntLiteralConstant", + "id": "0x557b1f389af0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55ddae6e0678-ExecutionPartConstruct" + "id": "0x557b1f38a678-ExecutionPartConstruct" }, { - "id": "0x55ddae6cb8c0-ExecutionPartConstruct", + "id": "0x557b1f3758c0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6cb8c0-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f3758c0-ExecutableConstruct" }, { - "id": "0x55ddae6cb8c0-ExecutableConstruct", + "id": "0x557b1f3758c0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ddae6cb8c0-Statement" + "Statement": "0x557b1f3758c0-Statement" }, { - "id": "0x55ddae6cb8c0-Statement", - "statement": "0x55ddae6cb8d0-ActionStmt", + "id": "0x557b1f3758c0-Statement", + "statement": "0x557b1f3758d0-ActionStmt", "source": "write(6,*)'NG'" }, { - "id": "0x55ddae6cb8d0-ActionStmt", + "id": "0x557b1f3758d0-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x55ddae6dff70-WriteStmt" + "WriteStmt": "0x557b1f389f70-WriteStmt" }, { - "id": "0x55ddae6dff70-WriteStmt", - "iounit": "0x55ddae6dff70-IoUnit", - "format": "0x55ddae6dffa0-Format", + "id": "0x557b1f389f70-WriteStmt", + "iounit": "0x557b1f389f70-IoUnit", + "format": "0x557b1f389fa0-Format", "controls": [], "items": [ - "0x55ddae6dfe90-OutputItem" + "0x557b1f389e90-OutputItem" ] }, { - "id": "0x55ddae6dff70-IoUnit", + "id": "0x557b1f389f70-IoUnit", "variantKey": "Expr", - "Expr": "0x55ddae6dfda0-Expr" + "Expr": "0x557b1f389da0-Expr" }, { - "id": "0x55ddae6dfda0-Expr", + "id": "0x557b1f389da0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6dfdc0-LiteralConstant" + "LiteralConstant": "0x557b1f389dc0-LiteralConstant" }, { - "id": "0x55ddae6dfdc0-LiteralConstant", + "id": "0x557b1f389dc0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6dfdc0-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f389dc0-IntLiteralConstant" }, { - "id": "0x55ddae6dfdc0-IntLiteralConstant", + "id": "0x557b1f389dc0-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x55ddae6dffa0-Format", + "id": "0x557b1f389fa0-Format", "variantKey": "Star", - "Star": "0x55ddae6dffa0-Star" + "Star": "0x557b1f389fa0-Star" }, { - "id": "0x55ddae6dffa0-Star" + "id": "0x557b1f389fa0-Star" }, { - "id": "0x55ddae6dfe90-OutputItem", + "id": "0x557b1f389e90-OutputItem", "variantKey": "Expr", - "Expr": "0x55ddae6dfe90-Expr" + "Expr": "0x557b1f389e90-Expr" }, { - "id": "0x55ddae6dfe90-Expr", + "id": "0x557b1f389e90-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6dfeb0-LiteralConstant" + "LiteralConstant": "0x557b1f389eb0-LiteralConstant" }, { - "id": "0x55ddae6dfeb0-LiteralConstant", + "id": "0x557b1f389eb0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55ddae6dfeb0-CharLiteralConstant" + "CharLiteralConstant": "0x557b1f389eb0-CharLiteralConstant" }, { - "id": "0x55ddae6dfeb0-CharLiteralConstant", + "id": "0x557b1f389eb0-CharLiteralConstant", "string": "NG" }, { - "id": "0x55ddae6c7220-ExecutionPartConstruct", + "id": "0x557b1f371220-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6c7220-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f371220-ExecutableConstruct" }, { - "id": "0x55ddae6c7220-ExecutableConstruct", + "id": "0x557b1f371220-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ddae6c7220-Statement" + "Statement": "0x557b1f371220-Statement" }, { - "id": "0x55ddae6c7220-Statement", - "statement": "0x55ddae6c7230-ActionStmt", + "id": "0x557b1f371220-Statement", + "statement": "0x557b1f371230-ActionStmt", "source": "write(6,*)'ELEMENT NUMBER = C(',i,')'" }, { - "id": "0x55ddae6c7230-ActionStmt", + "id": "0x557b1f371230-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x55ddae6e0470-WriteStmt" + "WriteStmt": "0x557b1f38a470-WriteStmt" }, { - "id": "0x55ddae6e0470-WriteStmt", - "iounit": "0x55ddae6e0470-IoUnit", - "format": "0x55ddae6e04a0-Format", + "id": "0x557b1f38a470-WriteStmt", + "iounit": "0x557b1f38a470-IoUnit", + "format": "0x557b1f38a4a0-Format", "controls": [], "items": [ - "0x55ddae6e0390-OutputItem", - "0x55ddae6e01b0-OutputItem", - "0x55ddae6e02a0-OutputItem" + "0x557b1f38a390-OutputItem", + "0x557b1f38a1b0-OutputItem", + "0x557b1f38a2a0-OutputItem" ] }, { - "id": "0x55ddae6e0470-IoUnit", + "id": "0x557b1f38a470-IoUnit", "variantKey": "Expr", - "Expr": "0x55ddae6e00c0-Expr" + "Expr": "0x557b1f38a0c0-Expr" }, { - "id": "0x55ddae6e00c0-Expr", + "id": "0x557b1f38a0c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6e00e0-LiteralConstant" + "LiteralConstant": "0x557b1f38a0e0-LiteralConstant" }, { - "id": "0x55ddae6e00e0-LiteralConstant", + "id": "0x557b1f38a0e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6e00e0-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f38a0e0-IntLiteralConstant" }, { - "id": "0x55ddae6e00e0-IntLiteralConstant", + "id": "0x557b1f38a0e0-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x55ddae6e04a0-Format", + "id": "0x557b1f38a4a0-Format", "variantKey": "Star", - "Star": "0x55ddae6e04a0-Star" + "Star": "0x557b1f38a4a0-Star" }, { - "id": "0x55ddae6e04a0-Star" + "id": "0x557b1f38a4a0-Star" }, { - "id": "0x55ddae6e0390-OutputItem", + "id": "0x557b1f38a390-OutputItem", "variantKey": "Expr", - "Expr": "0x55ddae6e0390-Expr" + "Expr": "0x557b1f38a390-Expr" }, { - "id": "0x55ddae6e0390-Expr", + "id": "0x557b1f38a390-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6e03b0-LiteralConstant" + "LiteralConstant": "0x557b1f38a3b0-LiteralConstant" }, { - "id": "0x55ddae6e03b0-LiteralConstant", + "id": "0x557b1f38a3b0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55ddae6e03b0-CharLiteralConstant" + "CharLiteralConstant": "0x557b1f38a3b0-CharLiteralConstant" }, { - "id": "0x55ddae6e03b0-CharLiteralConstant", + "id": "0x557b1f38a3b0-CharLiteralConstant", "string": "ELEMENT NUMBER = C(" }, { - "id": "0x55ddae6e01b0-OutputItem", + "id": "0x557b1f38a1b0-OutputItem", "variantKey": "Expr", - "Expr": "0x55ddae6e01b0-Expr" + "Expr": "0x557b1f38a1b0-Expr" }, { - "id": "0x55ddae6e01b0-Expr", + "id": "0x557b1f38a1b0-Expr", "variantKey": "Designator", - "Designator": "0x55ddae6cd030-Designator" + "Designator": "0x557b1f377030-Designator" }, { - "id": "0x55ddae6cd030-Designator", + "id": "0x557b1f377030-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6cd040-DataRef" + "DataRef": "0x557b1f377040-DataRef" }, { - "id": "0x55ddae6cd040-DataRef", + "id": "0x557b1f377040-DataRef", "variantKey": "Name", - "Name": "0x55ddae6cd040-Name" + "Name": "0x557b1f377040-Name" }, { - "id": "0x55ddae6cd040-Name", + "id": "0x557b1f377040-Name", "source": "i" }, { - "id": "0x55ddae6e02a0-OutputItem", + "id": "0x557b1f38a2a0-OutputItem", "variantKey": "Expr", - "Expr": "0x55ddae6e02a0-Expr" + "Expr": "0x557b1f38a2a0-Expr" }, { - "id": "0x55ddae6e02a0-Expr", + "id": "0x557b1f38a2a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6e02c0-LiteralConstant" + "LiteralConstant": "0x557b1f38a2c0-LiteralConstant" }, { - "id": "0x55ddae6e02c0-LiteralConstant", + "id": "0x557b1f38a2c0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55ddae6e02c0-CharLiteralConstant" + "CharLiteralConstant": "0x557b1f38a2c0-CharLiteralConstant" }, { - "id": "0x55ddae6e02c0-CharLiteralConstant", + "id": "0x557b1f38a2c0-CharLiteralConstant", "string": ")" }, { - "id": "0x55ddae6cd6a0-ExecutionPartConstruct", + "id": "0x557b1f3776a0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6cd6a0-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f3776a0-ExecutableConstruct" }, { - "id": "0x55ddae6cd6a0-ExecutableConstruct", + "id": "0x557b1f3776a0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ddae6cd6a0-Statement" + "Statement": "0x557b1f3776a0-Statement" }, { - "id": "0x55ddae6cd6a0-Statement", - "statement": "0x55ddae6cd6b0-ActionStmt", + "id": "0x557b1f3776a0-Statement", + "statement": "0x557b1f3776b0-ActionStmt", "source": "code=1" }, { - "id": "0x55ddae6cd6b0-ActionStmt", + "id": "0x557b1f3776b0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55ddae6df8e0-AssignmentStmt" + "AssignmentStmt": "0x557b1f3898e0-AssignmentStmt" }, { - "id": "0x55ddae6df8e0-AssignmentStmt", - "Variable": "0x55ddae6df9c0-Variable", - "Expr": "0x55ddae6df8f0-Expr" + "id": "0x557b1f3898e0-AssignmentStmt", + "Variable": "0x557b1f3899c0-Variable", + "Expr": "0x557b1f3898f0-Expr" }, { - "id": "0x55ddae6df9c0-Variable", + "id": "0x557b1f3899c0-Variable", "variantKey": "Designator", - "Designator": "0x55ddae6cd470-Designator" + "Designator": "0x557b1f377470-Designator" }, { - "id": "0x55ddae6cd470-Designator", + "id": "0x557b1f377470-Designator", "variantKey": "DataRef", - "DataRef": "0x55ddae6cd480-DataRef" + "DataRef": "0x557b1f377480-DataRef" }, { - "id": "0x55ddae6cd480-DataRef", + "id": "0x557b1f377480-DataRef", "variantKey": "Name", - "Name": "0x55ddae6cd480-Name" + "Name": "0x557b1f377480-Name" }, { - "id": "0x55ddae6cd480-Name", + "id": "0x557b1f377480-Name", "source": "code" }, { - "id": "0x55ddae6df8f0-Expr", + "id": "0x557b1f3898f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ddae6df910-LiteralConstant" + "LiteralConstant": "0x557b1f389910-LiteralConstant" }, { - "id": "0x55ddae6df910-LiteralConstant", + "id": "0x557b1f389910-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ddae6df910-IntLiteralConstant" + "IntLiteralConstant": "0x557b1f389910-IntLiteralConstant" }, { - "id": "0x55ddae6df910-IntLiteralConstant", + "id": "0x557b1f389910-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55ddae6cf460-ExecutionPartConstruct", + "id": "0x557b1f379460-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6cf460-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f379460-ExecutableConstruct" }, { - "id": "0x55ddae6cf460-ExecutableConstruct", + "id": "0x557b1f379460-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ddae6cf460-Statement" + "Statement": "0x557b1f379460-Statement" }, { - "id": "0x55ddae6cf460-Statement", - "statement": "0x55ddae6cf470-ActionStmt", + "id": "0x557b1f379460-Statement", + "statement": "0x557b1f379470-ActionStmt", "source": "goto60" }, { - "id": "0x55ddae6cf470-ActionStmt", + "id": "0x557b1f379470-ActionStmt", "variantKey": "GotoStmt", - "GotoStmt": "0x55ddae6d5810-GotoStmt" + "GotoStmt": "0x557b1f37f810-GotoStmt" }, { - "id": "0x55ddae6d5810-GotoStmt", + "id": "0x557b1f37f810-GotoStmt", "uint64_t": "60" }, { - "id": "0x55ddae6e05c0-Statement", - "statement": "0x55ddae6e05d0-EndIfStmt", + "id": "0x557b1f38a5c0-Statement", + "statement": "0x557b1f38a5d0-EndIfStmt", "source": "endif" }, { - "id": "0x55ddae6e05d0-EndIfStmt" + "id": "0x557b1f38a5d0-EndIfStmt" }, { - "id": "0x55ddae6ccd90-ExecutionPartConstruct", + "id": "0x557b1f376d90-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6ccd90-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f376d90-ExecutableConstruct" }, { - "id": "0x55ddae6ccd90-ExecutableConstruct", + "id": "0x557b1f376d90-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ddae6ccd90-Statement" + "Statement": "0x557b1f376d90-Statement" }, { - "id": "0x55ddae6ccd90-Statement", - "statement": "0x55ddae6ccda0-ActionStmt", + "id": "0x557b1f376d90-Statement", + "statement": "0x557b1f376da0-ActionStmt", "label": "50", "source": "50continue" }, { - "id": "0x55ddae6ccda0-ActionStmt", + "id": "0x557b1f376da0-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x55ddae6ccda0-ContinueStmt" + "ContinueStmt": "0x557b1f376da0-ContinueStmt" }, { - "id": "0x55ddae6ccda0-ContinueStmt" + "id": "0x557b1f376da0-ContinueStmt" }, { - "id": "0x55ddae6e1310-Statement", - "statement": "0x55ddae6e1320-EndDoStmt", + "id": "0x557b1f38b310-Statement", + "statement": "0x557b1f38b320-EndDoStmt", "source": "" }, { - "id": "0x55ddae6e1320-EndDoStmt" + "id": "0x557b1f38b320-EndDoStmt" }, { - "id": "0x55ddae6c6fa0-ExecutionPartConstruct", + "id": "0x557b1f370fa0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6c6fa0-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f370fa0-ExecutableConstruct" }, { - "id": "0x55ddae6c6fa0-ExecutableConstruct", + "id": "0x557b1f370fa0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ddae6c6fa0-Statement" + "Statement": "0x557b1f370fa0-Statement" }, { - "id": "0x55ddae6c6fa0-Statement", - "statement": "0x55ddae6c6fb0-ActionStmt", + "id": "0x557b1f370fa0-Statement", + "statement": "0x557b1f370fb0-ActionStmt", "label": "60", "source": "60continue" }, { - "id": "0x55ddae6c6fb0-ActionStmt", + "id": "0x557b1f370fb0-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x55ddae6c6fb0-ContinueStmt" + "ContinueStmt": "0x557b1f370fb0-ContinueStmt" }, { - "id": "0x55ddae6c6fb0-ContinueStmt" + "id": "0x557b1f370fb0-ContinueStmt" }, { - "id": "0x55ddae6c7280-ExecutionPartConstruct", + "id": "0x557b1f371280-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ddae6c7280-ExecutableConstruct" + "ExecutableConstruct": "0x557b1f371280-ExecutableConstruct" }, { - "id": "0x55ddae6c7280-ExecutableConstruct", + "id": "0x557b1f371280-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ddae6c7280-Statement" + "Statement": "0x557b1f371280-Statement" }, { - "id": "0x55ddae6c7280-Statement", - "statement": "0x55ddae6c7290-ActionStmt", + "id": "0x557b1f371280-Statement", + "statement": "0x557b1f371290-ActionStmt", "source": "return" }, { - "id": "0x55ddae6c7290-ActionStmt", + "id": "0x557b1f371290-ActionStmt", "variantKey": "ReturnStmt", - "ReturnStmt": "0x55ddae6d8e00-ReturnStmt" + "ReturnStmt": "0x557b1f382e00-ReturnStmt" }, { - "id": "0x55ddae6d8e00-ReturnStmt" + "id": "0x557b1f382e00-ReturnStmt" }, { - "id": "0x55ddae6e1df0-Statement", - "statement": "0x55ddae6e1e00-EndSubroutineStmt", + "id": "0x557b1f38bdf0-Statement", + "statement": "0x557b1f38be00-EndSubroutineStmt", "source": "end" }, { - "id": "0x55ddae6e1e00-EndSubroutineStmt" + "id": "0x557b1f38be00-EndSubroutineStmt" + } + ], + "comments": [ + { + "text": "", + "stmtId": "0x557b1f370df0-Statement", + "trailing": false + }, + { + "text": "", + "stmtId": "0x557b1f372150-Statement", + "trailing": false + }, + { + "text": "", + "stmtId": "0x557b1f3729d0-Statement", + "trailing": false + }, + { + "text": "", + "stmtId": "0x557b1f38bf38-Statement", + "trailing": false + }, + { + "text": "", + "stmtId": "0x557b1f378460-Statement", + "trailing": false + }, + { + "text": "", + "stmtId": "0x557b1f38b128-Statement", + "trailing": false + }, + { + "text": "", + "stmtId": "0x557b1f379240-Statement", + "trailing": false + }, + { + "text": "", + "stmtId": "0x557b1f377150-Statement", + "trailing": false + }, + { + "text": "", + "stmtId": "0x557b1f370fa0-Statement", + "trailing": false } ], - "comments": [], "enums": { "Fortran::common::CUDADataAttr": [ "Constant", From 0cea2f8a3f5241419f4e839e9605546280471ef9 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 21 Jul 2026 16:58:08 +0100 Subject: [PATCH 052/260] Support fixed-form comments --- .../fe/specs/fortran/ast/nodes/FortranNode.java | 5 +++++ .../fortran/ast/nodes/program/FortranFile.java | 3 ++- .../up/fe/specs/fortran/ast/nodes/stmt/Stmt.java | 16 +++++++++------- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java index c4d381e8..2b73f70d 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java @@ -208,4 +208,9 @@ public Optional getRight() { return Optional.of(siblings.get(rightIndex)); } + + protected String getCommentStarter() { + var fixedForm = getContext().get(FortranContext.FIXED_FORM); + return fixedForm ? "C" : "!"; + } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java index a5a5750f..597201bc 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java @@ -58,8 +58,9 @@ public String getCode() { getContext().set(FortranContext.FIXED_FORM, fixedForm); var finalComments = getFinalComments(); + var commentSuffix = finalComments.stream() - .map(comment -> comment + ln()) + .map(comment -> getCommentStarter() + comment + ln()) .collect(Collectors.joining()); var programUnitsCode = getProgramUnits().stream() diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java index 5f4d0355..ad56bf01 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/Stmt.java @@ -44,26 +44,28 @@ public String getStmtCode() { @Override public final String getCode() { - var labelPrefix = getLabelPrefix(); + var fixedForm = getContext().get(FortranContext.FIXED_FORM); + var labelPrefix = getLabelPrefix(fixedForm); var leadingComments = getLeadingComments(); SpecsCheck.checkArgument(leadingComments != null, () -> "Leading comment array not initialized in " + "node of class \"" + getClass() + "\". Make sure you call the method StmtProcessors::stmt() on the " + "processor for this node kind to initialize comments and labels."); - var trailingComment = getTrailingComment(); - + var commentStarter = getCommentStarter(); var commentPrefix = leadingComments.stream() - .map(comment -> comment + ln()) + .map(comment -> commentStarter + comment + ln()) .collect(Collectors.joining()); - var commentSuffix = trailingComment.map(comment -> " " + comment).orElse(""); + + var commentSuffix = !fixedForm + ? getTrailingComment().map(comment -> " !" + comment).orElse("") + : ""; return commentPrefix + labelPrefix + getStmtCode() + commentSuffix; } - private String getLabelPrefix() { + private String getLabelPrefix(boolean fixedForm) { var labelOpt = getLabel(); - var fixedForm = getContext().get(FortranContext.FIXED_FORM); if (!fixedForm) { // Free form (AKA modern Fortran) return labelOpt.map(label -> label.getCode() + " ").orElse(""); From 7d09b5a145bb2586ac10343837ed44509f8a2c83 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 21 Jul 2026 17:33:00 +0100 Subject: [PATCH 053/260] Regenerate dumps --- .../parser/arrays/array_implied_do.json | 1429 +-- .../fortran/parser/comment.json | 201 +- .../fortran/parser/declaration.json | 121 +- .../resources-test/fortran/parser/do.json | 545 +- .../parser/fujitsu/0001/0001_0007.json | 2664 +++--- .../resources-test/fortran/parser/hello.json | 261 +- .../fortran/parser/polybench/3mm.json | 8483 +++++++++-------- .../fortran/parser/stmt/legacy_do.json | 325 +- .../fortran/parser/stmt/return.json | 237 +- 9 files changed, 7128 insertions(+), 7138 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/arrays/array_implied_do.json b/FortranParser/resources-test/fortran/parser/arrays/array_implied_do.json index 8ffdf375..0bdfb36f 100644 --- a/FortranParser/resources-test/fortran/parser/arrays/array_implied_do.json +++ b/FortranParser/resources-test/fortran/parser/arrays/array_implied_do.json @@ -1,1774 +1,1775 @@ { + "fileExtension": "f90", "nodes": [ { - "id": "0x555653744f00-Program", + "id": "0x5586ec7b9f00-Program", "ProgramUnit": [ - "0x555653780e90-ProgramUnit" + "0x5586ec7f5dc0-ProgramUnit" ] }, { - "id": "0x555653780e90-ProgramUnit", + "id": "0x5586ec7f5dc0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x555653779800-MainProgram" + "MainProgram": "0x5586ec7ee850-MainProgram" }, { - "id": "0x555653779800-MainProgram", - "Statement": "0x555653779948-Statement", - "SpecificationPart": "0x5556537798a0-SpecificationPart", - "ExecutionPart": "0x555653779888-ExecutionPart", - "Statement": "0x555653779800-Statement" + "id": "0x5586ec7ee850-MainProgram", + "Statement": "0x5586ec7ee998-Statement", + "SpecificationPart": "0x5586ec7ee8f0-SpecificationPart", + "ExecutionPart": "0x5586ec7ee8d8-ExecutionPart", + "Statement": "0x5586ec7ee850-Statement" }, { - "id": "0x555653779948-Statement", - "statement": "0x555653779958-ProgramStmt", + "id": "0x5586ec7ee998-Statement", + "statement": "0x5586ec7ee9a8-ProgramStmt", "source": "program TEST_IMPLIED_DO" }, { - "id": "0x555653779958-ProgramStmt", - "Name": "0x555653779958-Name" + "id": "0x5586ec7ee9a8-ProgramStmt", + "Name": "0x5586ec7ee9a8-Name" }, { - "id": "0x555653779958-Name", + "id": "0x5586ec7ee9a8-Name", "source": "TEST_IMPLIED_DO" }, { - "id": "0x5556537798a0-SpecificationPart", - "ImplicitPart": "0x5556537798b8-ImplicitPart", + "id": "0x5586ec7ee8f0-SpecificationPart", + "ImplicitPart": "0x5586ec7ee908-ImplicitPart", "DeclarationConstruct": [ - "0x555653752170-DeclarationConstruct", - "0x555653751da0-DeclarationConstruct", - "0x5556537701d0-DeclarationConstruct", - "0x555653770480-DeclarationConstruct", - "0x555653770730-DeclarationConstruct" + "0x5586ec7c7170-DeclarationConstruct", + "0x5586ec7c6da0-DeclarationConstruct", + "0x5586ec7e5060-DeclarationConstruct", + "0x5586ec7e5310-DeclarationConstruct", + "0x5586ec7e55c0-DeclarationConstruct" ] }, { - "id": "0x5556537798b8-ImplicitPart" + "id": "0x5586ec7ee908-ImplicitPart" }, { - "id": "0x555653752170-DeclarationConstruct", + "id": "0x5586ec7c7170-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x555653752170-SpecificationConstruct" + "SpecificationConstruct": "0x5586ec7c7170-SpecificationConstruct" }, { - "id": "0x555653752170-SpecificationConstruct", + "id": "0x5586ec7c7170-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x555653752170-Statement" + "Statement": "0x5586ec7c7170-Statement" }, { - "id": "0x555653752170-Statement", - "statement": "0x555653781570-TypeDeclarationStmt", + "id": "0x5586ec7c7170-Statement", + "statement": "0x5586ec7f63e0-TypeDeclarationStmt", "source": "integer :: i, j" }, { - "id": "0x555653781570-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5556537815a0-DeclarationTypeSpec", + "id": "0x5586ec7f63e0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5586ec7f6410-DeclarationTypeSpec", "EntityDecl": [ - "0x55565376f880-EntityDecl", - "0x55565376f790-EntityDecl" + "0x5586ec7e4790-EntityDecl", + "0x5586ec76f270-EntityDecl" ] }, { - "id": "0x5556537815a0-DeclarationTypeSpec", + "id": "0x5586ec7f6410-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5556537815a0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5586ec7f6410-IntrinsicTypeSpec" }, { - "id": "0x5556537815a0-IntrinsicTypeSpec", + "id": "0x5586ec7f6410-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x5556537815a0-IntegerTypeSpec" + "IntegerTypeSpec": "0x5586ec7f6410-IntegerTypeSpec" }, { - "id": "0x5556537815a0-IntegerTypeSpec" + "id": "0x5586ec7f6410-IntegerTypeSpec" }, { - "id": "0x55565376f880-EntityDecl", - "Name": "0x55565376f938-Name" + "id": "0x5586ec7e4790-EntityDecl", + "Name": "0x5586ec7e4848-Name" }, { - "id": "0x55565376f938-Name", + "id": "0x5586ec7e4848-Name", "source": "i" }, { - "id": "0x55565376f790-EntityDecl", - "Name": "0x55565376f848-Name" + "id": "0x5586ec76f270-EntityDecl", + "Name": "0x5586ec76f328-Name" }, { - "id": "0x55565376f848-Name", + "id": "0x5586ec76f328-Name", "source": "j" }, { - "id": "0x555653751da0-DeclarationConstruct", + "id": "0x5586ec7c6da0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x555653751da0-SpecificationConstruct" + "SpecificationConstruct": "0x5586ec7c6da0-SpecificationConstruct" }, { - "id": "0x555653751da0-SpecificationConstruct", + "id": "0x5586ec7c6da0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x555653751da0-Statement" + "Statement": "0x5586ec7c6da0-Statement" }, { - "id": "0x555653751da0-Statement", - "statement": "0x55565376f960-TypeDeclarationStmt", + "id": "0x5586ec7c6da0-Statement", + "statement": "0x5586ec7f6460-TypeDeclarationStmt", "source": "integer, dimension(5) :: arr1, arr2, arr3" }, { - "id": "0x55565376f960-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55565376f990-DeclarationTypeSpec", + "id": "0x5586ec7f6460-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5586ec7f6490-DeclarationTypeSpec", "AttrSpec": [ - "0x555653788a00-AttrSpec" + "0x5586ec7fd990-AttrSpec" ], "EntityDecl": [ - "0x55565376fcc0-EntityDecl", - "0x55565376fae0-EntityDecl", - "0x55565376fbd0-EntityDecl" + "0x5586ec7e4b50-EntityDecl", + "0x5586ec7e4970-EntityDecl", + "0x5586ec7e4a60-EntityDecl" ] }, { - "id": "0x55565376f990-DeclarationTypeSpec", + "id": "0x5586ec7f6490-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55565376f990-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5586ec7f6490-IntrinsicTypeSpec" }, { - "id": "0x55565376f990-IntrinsicTypeSpec", + "id": "0x5586ec7f6490-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55565376f990-IntegerTypeSpec" + "IntegerTypeSpec": "0x5586ec7f6490-IntegerTypeSpec" }, { - "id": "0x55565376f990-IntegerTypeSpec" + "id": "0x5586ec7f6490-IntegerTypeSpec" }, { - "id": "0x555653788a00-AttrSpec", + "id": "0x5586ec7fd990-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x555653788a00-ArraySpec" + "ArraySpec": "0x5586ec7fd990-ArraySpec" }, { - "id": "0x555653788a00-ArraySpec", + "id": "0x5586ec7fd990-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x555653780cd0-ExplicitShapeSpec" + "0x5586ec7f5c00-ExplicitShapeSpec" ] }, { - "id": "0x555653780cd0-ExplicitShapeSpec", - "upper_bound": "0x555653780cd0-SpecificationExpr" + "id": "0x5586ec7f5c00-ExplicitShapeSpec", + "upper_bound": "0x5586ec7f5c00-SpecificationExpr" }, { - "id": "0x555653780cd0-SpecificationExpr", - "Expr": "0x5556536e4790-Expr" + "id": "0x5586ec7f5c00-SpecificationExpr", + "Expr": "0x5586ec759790-Expr" }, { - "id": "0x5556536e4790-Expr", + "id": "0x5586ec759790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5556536e47b0-LiteralConstant" + "LiteralConstant": "0x5586ec7597b0-LiteralConstant" }, { - "id": "0x5556536e47b0-LiteralConstant", + "id": "0x5586ec7597b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5556536e47b0-IntLiteralConstant" + "IntLiteralConstant": "0x5586ec7597b0-IntLiteralConstant" }, { - "id": "0x5556536e47b0-IntLiteralConstant", + "id": "0x5586ec7597b0-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x55565376fcc0-EntityDecl", - "Name": "0x55565376fd78-Name" + "id": "0x5586ec7e4b50-EntityDecl", + "Name": "0x5586ec7e4c08-Name" }, { - "id": "0x55565376fd78-Name", + "id": "0x5586ec7e4c08-Name", "source": "arr1" }, { - "id": "0x55565376fae0-EntityDecl", - "Name": "0x55565376fb98-Name" + "id": "0x5586ec7e4970-EntityDecl", + "Name": "0x5586ec7e4a28-Name" }, { - "id": "0x55565376fb98-Name", + "id": "0x5586ec7e4a28-Name", "source": "arr2" }, { - "id": "0x55565376fbd0-EntityDecl", - "Name": "0x55565376fc88-Name" + "id": "0x5586ec7e4a60-EntityDecl", + "Name": "0x5586ec7e4b18-Name" }, { - "id": "0x55565376fc88-Name", + "id": "0x5586ec7e4b18-Name", "source": "arr3" }, { - "id": "0x5556537701d0-DeclarationConstruct", + "id": "0x5586ec7e5060-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5556537701d0-SpecificationConstruct" + "SpecificationConstruct": "0x5586ec7e5060-SpecificationConstruct" }, { - "id": "0x5556537701d0-SpecificationConstruct", + "id": "0x5586ec7e5060-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5556537701d0-Statement" + "Statement": "0x5586ec7e5060-Statement" }, { - "id": "0x5556537701d0-Statement", - "statement": "0x55565376f9e0-TypeDeclarationStmt", + "id": "0x5586ec7e5060-Statement", + "statement": "0x5586ec7e4870-TypeDeclarationStmt", "source": "integer, dimension(10) :: arr4, arr5" }, { - "id": "0x55565376f9e0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55565376fa10-DeclarationTypeSpec", + "id": "0x5586ec7e4870-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5586ec7e48a0-DeclarationTypeSpec", "AttrSpec": [ - "0x555653781990-AttrSpec" + "0x5586ec7f6920-AttrSpec" ], "EntityDecl": [ - "0x5556537700e0-EntityDecl", - "0x55565376fff0-EntityDecl" + "0x5586ec7e4f70-EntityDecl", + "0x5586ec7e4e80-EntityDecl" ] }, { - "id": "0x55565376fa10-DeclarationTypeSpec", + "id": "0x5586ec7e48a0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55565376fa10-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5586ec7e48a0-IntrinsicTypeSpec" }, { - "id": "0x55565376fa10-IntrinsicTypeSpec", + "id": "0x5586ec7e48a0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55565376fa10-IntegerTypeSpec" + "IntegerTypeSpec": "0x5586ec7e48a0-IntegerTypeSpec" }, { - "id": "0x55565376fa10-IntegerTypeSpec" + "id": "0x5586ec7e48a0-IntegerTypeSpec" }, { - "id": "0x555653781990-AttrSpec", + "id": "0x5586ec7f6920-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x555653781990-ArraySpec" + "ArraySpec": "0x5586ec7f6920-ArraySpec" }, { - "id": "0x555653781990-ArraySpec", + "id": "0x5586ec7f6920-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x555653780d00-ExplicitShapeSpec" + "0x5586ec7f5c30-ExplicitShapeSpec" ] }, { - "id": "0x555653780d00-ExplicitShapeSpec", - "upper_bound": "0x555653780d00-SpecificationExpr" + "id": "0x5586ec7f5c30-ExplicitShapeSpec", + "upper_bound": "0x5586ec7f5c30-SpecificationExpr" }, { - "id": "0x555653780d00-SpecificationExpr", - "Expr": "0x55565376ff00-Expr" + "id": "0x5586ec7f5c30-SpecificationExpr", + "Expr": "0x5586ec7e4d90-Expr" }, { - "id": "0x55565376ff00-Expr", + "id": "0x5586ec7e4d90-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55565376ff20-LiteralConstant" + "LiteralConstant": "0x5586ec7e4db0-LiteralConstant" }, { - "id": "0x55565376ff20-LiteralConstant", + "id": "0x5586ec7e4db0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55565376ff20-IntLiteralConstant" + "IntLiteralConstant": "0x5586ec7e4db0-IntLiteralConstant" }, { - "id": "0x55565376ff20-IntLiteralConstant", + "id": "0x5586ec7e4db0-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x5556537700e0-EntityDecl", - "Name": "0x555653770198-Name" + "id": "0x5586ec7e4f70-EntityDecl", + "Name": "0x5586ec7e5028-Name" }, { - "id": "0x555653770198-Name", + "id": "0x5586ec7e5028-Name", "source": "arr4" }, { - "id": "0x55565376fff0-EntityDecl", - "Name": "0x5556537700a8-Name" + "id": "0x5586ec7e4e80-EntityDecl", + "Name": "0x5586ec7e4f38-Name" }, { - "id": "0x5556537700a8-Name", + "id": "0x5586ec7e4f38-Name", "source": "arr5" }, { - "id": "0x555653770480-DeclarationConstruct", + "id": "0x5586ec7e5310-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x555653770480-SpecificationConstruct" + "SpecificationConstruct": "0x5586ec7e5310-SpecificationConstruct" }, { - "id": "0x555653770480-SpecificationConstruct", + "id": "0x5586ec7e5310-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x555653770480-Statement" + "Statement": "0x5586ec7e5310-Statement" }, { - "id": "0x555653770480-Statement", - "statement": "0x55565376fe80-TypeDeclarationStmt", + "id": "0x5586ec7e5310-Statement", + "statement": "0x5586ec7e4d10-TypeDeclarationStmt", "source": "integer, dimension(9) :: arr6" }, { - "id": "0x55565376fe80-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55565376feb0-DeclarationTypeSpec", + "id": "0x5586ec7e4d10-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5586ec7e4d40-DeclarationTypeSpec", "AttrSpec": [ - "0x555653782500-AttrSpec" + "0x5586ec7f7490-AttrSpec" ], "EntityDecl": [ - "0x555653770390-EntityDecl" + "0x5586ec7e5220-EntityDecl" ] }, { - "id": "0x55565376feb0-DeclarationTypeSpec", + "id": "0x5586ec7e4d40-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55565376feb0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5586ec7e4d40-IntrinsicTypeSpec" }, { - "id": "0x55565376feb0-IntrinsicTypeSpec", + "id": "0x5586ec7e4d40-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55565376feb0-IntegerTypeSpec" + "IntegerTypeSpec": "0x5586ec7e4d40-IntegerTypeSpec" }, { - "id": "0x55565376feb0-IntegerTypeSpec" + "id": "0x5586ec7e4d40-IntegerTypeSpec" }, { - "id": "0x555653782500-AttrSpec", + "id": "0x5586ec7f7490-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x555653782500-ArraySpec" + "ArraySpec": "0x5586ec7f7490-ArraySpec" }, { - "id": "0x555653782500-ArraySpec", + "id": "0x5586ec7f7490-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x555653780d30-ExplicitShapeSpec" + "0x5586ec7f5c60-ExplicitShapeSpec" ] }, { - "id": "0x555653780d30-ExplicitShapeSpec", - "upper_bound": "0x555653780d30-SpecificationExpr" + "id": "0x5586ec7f5c60-ExplicitShapeSpec", + "upper_bound": "0x5586ec7f5c60-SpecificationExpr" }, { - "id": "0x555653780d30-SpecificationExpr", - "Expr": "0x5556537702a0-Expr" + "id": "0x5586ec7f5c60-SpecificationExpr", + "Expr": "0x5586ec7e5130-Expr" }, { - "id": "0x5556537702a0-Expr", + "id": "0x5586ec7e5130-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5556537702c0-LiteralConstant" + "LiteralConstant": "0x5586ec7e5150-LiteralConstant" }, { - "id": "0x5556537702c0-LiteralConstant", + "id": "0x5586ec7e5150-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5556537702c0-IntLiteralConstant" + "IntLiteralConstant": "0x5586ec7e5150-IntLiteralConstant" }, { - "id": "0x5556537702c0-IntLiteralConstant", + "id": "0x5586ec7e5150-IntLiteralConstant", "CharBlock": "9" }, { - "id": "0x555653770390-EntityDecl", - "Name": "0x555653770448-Name" + "id": "0x5586ec7e5220-EntityDecl", + "Name": "0x5586ec7e52d8-Name" }, { - "id": "0x555653770448-Name", + "id": "0x5586ec7e52d8-Name", "source": "arr6" }, { - "id": "0x555653770730-DeclarationConstruct", + "id": "0x5586ec7e55c0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x555653770730-SpecificationConstruct" + "SpecificationConstruct": "0x5586ec7e55c0-SpecificationConstruct" }, { - "id": "0x555653770730-SpecificationConstruct", + "id": "0x5586ec7e55c0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x555653770730-Statement" + "Statement": "0x5586ec7e55c0-Statement" }, { - "id": "0x555653770730-Statement", - "statement": "0x555653770220-TypeDeclarationStmt", + "id": "0x5586ec7e55c0-Statement", + "statement": "0x5586ec7e50b0-TypeDeclarationStmt", "source": "integer, dimension(15) :: arr7" }, { - "id": "0x555653770220-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x555653770250-DeclarationTypeSpec", + "id": "0x5586ec7e50b0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5586ec7e50e0-DeclarationTypeSpec", "AttrSpec": [ - "0x55565377bcc0-AttrSpec" + "0x5586ec7f0c50-AttrSpec" ], "EntityDecl": [ - "0x555653770640-EntityDecl" + "0x5586ec7e54d0-EntityDecl" ] }, { - "id": "0x555653770250-DeclarationTypeSpec", + "id": "0x5586ec7e50e0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x555653770250-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5586ec7e50e0-IntrinsicTypeSpec" }, { - "id": "0x555653770250-IntrinsicTypeSpec", + "id": "0x5586ec7e50e0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x555653770250-IntegerTypeSpec" + "IntegerTypeSpec": "0x5586ec7e50e0-IntegerTypeSpec" }, { - "id": "0x555653770250-IntegerTypeSpec" + "id": "0x5586ec7e50e0-IntegerTypeSpec" }, { - "id": "0x55565377bcc0-AttrSpec", + "id": "0x5586ec7f0c50-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x55565377bcc0-ArraySpec" + "ArraySpec": "0x5586ec7f0c50-ArraySpec" }, { - "id": "0x55565377bcc0-ArraySpec", + "id": "0x5586ec7f0c50-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x555653780d80-ExplicitShapeSpec" + "0x5586ec7f5cb0-ExplicitShapeSpec" ] }, { - "id": "0x555653780d80-ExplicitShapeSpec", - "upper_bound": "0x555653780d80-SpecificationExpr" + "id": "0x5586ec7f5cb0-ExplicitShapeSpec", + "upper_bound": "0x5586ec7f5cb0-SpecificationExpr" }, { - "id": "0x555653780d80-SpecificationExpr", - "Expr": "0x555653770550-Expr" + "id": "0x5586ec7f5cb0-SpecificationExpr", + "Expr": "0x5586ec7e53e0-Expr" }, { - "id": "0x555653770550-Expr", + "id": "0x5586ec7e53e0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x555653770570-LiteralConstant" + "LiteralConstant": "0x5586ec7e5400-LiteralConstant" }, { - "id": "0x555653770570-LiteralConstant", + "id": "0x5586ec7e5400-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x555653770570-IntLiteralConstant" + "IntLiteralConstant": "0x5586ec7e5400-IntLiteralConstant" }, { - "id": "0x555653770570-IntLiteralConstant", + "id": "0x5586ec7e5400-IntLiteralConstant", "CharBlock": "15" }, { - "id": "0x555653770640-EntityDecl", - "Name": "0x5556537706f8-Name" + "id": "0x5586ec7e54d0-EntityDecl", + "Name": "0x5586ec7e5588-Name" }, { - "id": "0x5556537706f8-Name", + "id": "0x5586ec7e5588-Name", "source": "arr7" }, { - "id": "0x555653779888-ExecutionPart", + "id": "0x5586ec7ee8d8-ExecutionPart", "ExecutionPartConstruct": [ - "0x555653772670-ExecutionPartConstruct", - "0x555653772e40-ExecutionPartConstruct", - "0x5556537733f0-ExecutionPartConstruct", - "0x555653773ca0-ExecutionPartConstruct", - "0x555653774330-ExecutionPartConstruct", - "0x555653775a10-ExecutionPartConstruct", - "0x555653776500-ExecutionPartConstruct" + "0x5586ec7e75f0-ExecutionPartConstruct", + "0x5586ec7e7ea0-ExecutionPartConstruct", + "0x5586ec7e8450-ExecutionPartConstruct", + "0x5586ec7e8d00-ExecutionPartConstruct", + "0x5586ec7e9390-ExecutionPartConstruct", + "0x5586ec7eaaf0-ExecutionPartConstruct", + "0x5586ec7eb5e0-ExecutionPartConstruct" ] }, { - "id": "0x555653779888-ExecutionPartConstruct" + "id": "0x5586ec7ee8d8-ExecutionPartConstruct" }, { - "id": "0x555653772670-ExecutionPartConstruct", + "id": "0x5586ec7e75f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x555653772670-ExecutableConstruct" + "ExecutableConstruct": "0x5586ec7e75f0-ExecutableConstruct" }, { - "id": "0x555653772670-ExecutableConstruct", + "id": "0x5586ec7e75f0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x555653772670-Statement" + "Statement": "0x5586ec7e75f0-Statement" }, { - "id": "0x555653772670-Statement", - "statement": "0x555653772680-ActionStmt", + "id": "0x5586ec7e75f0-Statement", + "statement": "0x5586ec7e7600-ActionStmt", "source": "arr1 = [(i, i = 1, 5)]" }, { - "id": "0x555653772680-ActionStmt", + "id": "0x5586ec7e7600-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x555653781ad0-AssignmentStmt" + "AssignmentStmt": "0x5586ec7f6a60-AssignmentStmt" }, { - "id": "0x555653781ad0-AssignmentStmt", - "Variable": "0x555653781bb0-Variable", - "Expr": "0x555653781ae0-Expr" + "id": "0x5586ec7f6a60-AssignmentStmt", + "Variable": "0x5586ec7f6b40-Variable", + "Expr": "0x5586ec7f6a70-Expr" }, { - "id": "0x555653781bb0-Variable", + "id": "0x5586ec7f6b40-Variable", "variantKey": "Designator", - "Designator": "0x555653770ec0-Designator" + "Designator": "0x5586ec7e5a30-Designator" }, { - "id": "0x555653770ec0-Designator", + "id": "0x5586ec7e5a30-Designator", "variantKey": "DataRef", - "DataRef": "0x555653770ed0-DataRef" + "DataRef": "0x5586ec7e5a40-DataRef" }, { - "id": "0x555653770ed0-DataRef", + "id": "0x5586ec7e5a40-DataRef", "variantKey": "Name", - "Name": "0x555653770ed0-Name" + "Name": "0x5586ec7e5a40-Name" }, { - "id": "0x555653770ed0-Name", + "id": "0x5586ec7e5a40-Name", "source": "arr1" }, { - "id": "0x555653781ae0-Expr", + "id": "0x5586ec7f6a70-Expr", "variantKey": "ArrayConstructor", - "ArrayConstructor": "0x555653781b00-ArrayConstructor" + "ArrayConstructor": "0x5586ec7f6a90-ArrayConstructor" }, { - "id": "0x555653781b00-ArrayConstructor", - "AcSpec": "0x555653781b00-AcSpec" + "id": "0x5586ec7f6a90-ArrayConstructor", + "AcSpec": "0x5586ec7f6a90-AcSpec" }, { - "id": "0x555653781b00-AcSpec", + "id": "0x5586ec7f6a90-AcSpec", "values": [ - "0x55565377f9e0-AcValue" + "0x5586ec7f4910-AcValue" ] }, { - "id": "0x55565377f9e0-AcValue", + "id": "0x5586ec7f4910-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x5556537704d0-AcImpliedDo" + "AcImpliedDo": "0x5586ec7e5690-AcImpliedDo" }, { - "id": "0x5556537704d0-AcImpliedDo", + "id": "0x5586ec7e5690-AcImpliedDo", "AcValue": [ - "0x5556537800c0-AcValue" + "0x5586ec7f4ff0-AcValue" ], - "AcImpliedDoControl": "0x5556537704d0-AcImpliedDoControl" + "AcImpliedDoControl": "0x5586ec7e5690-AcImpliedDoControl" }, { - "id": "0x5556537800c0-AcValue", + "id": "0x5586ec7f4ff0-AcValue", "variantKey": "Expr", - "Expr": "0x555653771e20-Expr" + "Expr": "0x5586ec7e6e10-Expr" }, { - "id": "0x555653771e20-Expr", + "id": "0x5586ec7e6e10-Expr", "variantKey": "Designator", - "Designator": "0x555653752100-Designator" + "Designator": "0x5586ec7c7100-Designator" }, { - "id": "0x555653752100-Designator", + "id": "0x5586ec7c7100-Designator", "variantKey": "DataRef", - "DataRef": "0x555653752110-DataRef" + "DataRef": "0x5586ec7c7110-DataRef" }, { - "id": "0x555653752110-DataRef", + "id": "0x5586ec7c7110-DataRef", "variantKey": "Name", - "Name": "0x555653752110-Name" + "Name": "0x5586ec7c7110-Name" }, { - "id": "0x555653752110-Name", + "id": "0x5586ec7c7110-Name", "source": "i" }, { - "id": "0x5556537704d0-AcImpliedDoControl", - "value": "0x5556537704d0-LoopBounds" + "id": "0x5586ec7e5690-AcImpliedDoControl", + "value": "0x5586ec7e5690-LoopBounds" }, { - "id": "0x5556537704d0-LoopBounds", - "var": "0x5556537704d0-Name", - "lower": "0x555653772350-Expr", - "upper": "0x555653771d40-Expr" + "id": "0x5586ec7e5690-LoopBounds", + "var": "0x5586ec7e5690-Name", + "lower": "0x5586ec7e7340-Expr", + "upper": "0x5586ec7e6d30-Expr" }, { - "id": "0x5556537704d0-Name", + "id": "0x5586ec7e5690-Name", "source": "i" }, { - "id": "0x555653772350-Expr", + "id": "0x5586ec7e7340-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x555653772370-LiteralConstant" + "LiteralConstant": "0x5586ec7e7360-LiteralConstant" }, { - "id": "0x555653772370-LiteralConstant", + "id": "0x5586ec7e7360-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x555653772370-IntLiteralConstant" + "IntLiteralConstant": "0x5586ec7e7360-IntLiteralConstant" }, { - "id": "0x555653772370-IntLiteralConstant", + "id": "0x5586ec7e7360-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x555653771d40-Expr", + "id": "0x5586ec7e6d30-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x555653771d60-LiteralConstant" + "LiteralConstant": "0x5586ec7e6d50-LiteralConstant" }, { - "id": "0x555653771d60-LiteralConstant", + "id": "0x5586ec7e6d50-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x555653771d60-IntLiteralConstant" + "IntLiteralConstant": "0x5586ec7e6d50-IntLiteralConstant" }, { - "id": "0x555653771d60-IntLiteralConstant", + "id": "0x5586ec7e6d50-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x555653772e40-ExecutionPartConstruct", + "id": "0x5586ec7e7ea0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x555653772e40-ExecutableConstruct" + "ExecutableConstruct": "0x5586ec7e7ea0-ExecutableConstruct" }, { - "id": "0x555653772e40-ExecutableConstruct", + "id": "0x5586ec7e7ea0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x555653772e40-Statement" + "Statement": "0x5586ec7e7ea0-Statement" }, { - "id": "0x555653772e40-Statement", - "statement": "0x555653772e50-ActionStmt", + "id": "0x5586ec7e7ea0-Statement", + "statement": "0x5586ec7e7eb0-ActionStmt", "source": "arr2 = [(i * 10, i = 1, 5)]" }, { - "id": "0x555653772e50-ActionStmt", + "id": "0x5586ec7e7eb0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x555653772cb0-AssignmentStmt" + "AssignmentStmt": "0x5586ec7e7d10-AssignmentStmt" }, { - "id": "0x555653772cb0-AssignmentStmt", - "Variable": "0x555653772d90-Variable", - "Expr": "0x555653772cc0-Expr" + "id": "0x5586ec7e7d10-AssignmentStmt", + "Variable": "0x5586ec7e7df0-Variable", + "Expr": "0x5586ec7e7d20-Expr" }, { - "id": "0x555653772d90-Variable", + "id": "0x5586ec7e7df0-Variable", "variantKey": "Designator", - "Designator": "0x555653771c70-Designator" + "Designator": "0x5586ec7e6c60-Designator" }, { - "id": "0x555653771c70-Designator", + "id": "0x5586ec7e6c60-Designator", "variantKey": "DataRef", - "DataRef": "0x555653771c80-DataRef" + "DataRef": "0x5586ec7e6c70-DataRef" }, { - "id": "0x555653771c80-DataRef", + "id": "0x5586ec7e6c70-DataRef", "variantKey": "Name", - "Name": "0x555653771c80-Name" + "Name": "0x5586ec7e6c70-Name" }, { - "id": "0x555653771c80-Name", + "id": "0x5586ec7e6c70-Name", "source": "arr2" }, { - "id": "0x555653772cc0-Expr", + "id": "0x5586ec7e7d20-Expr", "variantKey": "ArrayConstructor", - "ArrayConstructor": "0x555653772ce0-ArrayConstructor" + "ArrayConstructor": "0x5586ec7e7d40-ArrayConstructor" }, { - "id": "0x555653772ce0-ArrayConstructor", - "AcSpec": "0x555653772ce0-AcSpec" + "id": "0x5586ec7e7d40-ArrayConstructor", + "AcSpec": "0x5586ec7e7d40-AcSpec" }, { - "id": "0x555653772ce0-AcSpec", + "id": "0x5586ec7e7d40-AcSpec", "values": [ - "0x555653780580-AcValue" + "0x5586ec7f54b0-AcValue" ] }, { - "id": "0x555653780580-AcValue", + "id": "0x5586ec7f54b0-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x555653770800-AcImpliedDo" + "AcImpliedDo": "0x5586ec7e5e20-AcImpliedDo" }, { - "id": "0x555653770800-AcImpliedDo", + "id": "0x5586ec7e5e20-AcImpliedDo", "AcValue": [ - "0x555653780180-AcValue" + "0x5586ec7f50b0-AcValue" ], - "AcImpliedDoControl": "0x555653770800-AcImpliedDoControl" + "AcImpliedDoControl": "0x5586ec7e5e20-AcImpliedDoControl" }, { - "id": "0x555653780180-AcValue", + "id": "0x5586ec7f50b0-AcValue", "variantKey": "Expr", - "Expr": "0x555653772940-Expr" + "Expr": "0x5586ec7e79a0-Expr" }, { - "id": "0x555653772940-Expr", + "id": "0x5586ec7e79a0-Expr", "variantKey": "Multiply", - "Multiply": "0x555653772960-Multiply" + "Multiply": "0x5586ec7e79c0-Multiply" }, { - "id": "0x555653772960-Multiply", - "left": "0x555653772860-Expr", - "right": "0x5556537713d0-Expr", + "id": "0x5586ec7e79c0-Multiply", + "left": "0x5586ec7e78c0-Expr", + "right": "0x5586ec7e7640-Expr", "op": "MULTIPLY" }, { - "id": "0x555653772860-Expr", + "id": "0x5586ec7e78c0-Expr", "variantKey": "Designator", - "Designator": "0x555653772800-Designator" + "Designator": "0x5586ec7e7860-Designator" }, { - "id": "0x555653772800-Designator", + "id": "0x5586ec7e7860-Designator", "variantKey": "DataRef", - "DataRef": "0x555653772810-DataRef" + "DataRef": "0x5586ec7e7870-DataRef" }, { - "id": "0x555653772810-DataRef", + "id": "0x5586ec7e7870-DataRef", "variantKey": "Name", - "Name": "0x555653772810-Name" + "Name": "0x5586ec7e7870-Name" }, { - "id": "0x555653772810-Name", + "id": "0x5586ec7e7870-Name", "source": "i" }, { - "id": "0x5556537713d0-Expr", + "id": "0x5586ec7e7640-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5556537713f0-LiteralConstant" + "LiteralConstant": "0x5586ec7e7660-LiteralConstant" }, { - "id": "0x5556537713f0-LiteralConstant", + "id": "0x5586ec7e7660-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5556537713f0-IntLiteralConstant" + "IntLiteralConstant": "0x5586ec7e7660-IntLiteralConstant" }, { - "id": "0x5556537713f0-IntLiteralConstant", + "id": "0x5586ec7e7660-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x555653770800-AcImpliedDoControl", - "value": "0x555653770800-LoopBounds" + "id": "0x5586ec7e5e20-AcImpliedDoControl", + "value": "0x5586ec7e5e20-LoopBounds" }, { - "id": "0x555653770800-LoopBounds", - "var": "0x555653770800-Name", - "lower": "0x5556537726c0-Expr", - "upper": "0x555653772a80-Expr" + "id": "0x5586ec7e5e20-LoopBounds", + "var": "0x5586ec7e5e20-Name", + "lower": "0x5586ec7e7720-Expr", + "upper": "0x5586ec7e7ae0-Expr" }, { - "id": "0x555653770800-Name", + "id": "0x5586ec7e5e20-Name", "source": "i" }, { - "id": "0x5556537726c0-Expr", + "id": "0x5586ec7e7720-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5556537726e0-LiteralConstant" + "LiteralConstant": "0x5586ec7e7740-LiteralConstant" }, { - "id": "0x5556537726e0-LiteralConstant", + "id": "0x5586ec7e7740-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5556537726e0-IntLiteralConstant" + "IntLiteralConstant": "0x5586ec7e7740-IntLiteralConstant" }, { - "id": "0x5556537726e0-IntLiteralConstant", + "id": "0x5586ec7e7740-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x555653772a80-Expr", + "id": "0x5586ec7e7ae0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x555653772aa0-LiteralConstant" + "LiteralConstant": "0x5586ec7e7b00-LiteralConstant" }, { - "id": "0x555653772aa0-LiteralConstant", + "id": "0x5586ec7e7b00-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x555653772aa0-IntLiteralConstant" + "IntLiteralConstant": "0x5586ec7e7b00-IntLiteralConstant" }, { - "id": "0x555653772aa0-IntLiteralConstant", + "id": "0x5586ec7e7b00-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x5556537733f0-ExecutionPartConstruct", + "id": "0x5586ec7e8450-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5556537733f0-ExecutableConstruct" + "ExecutableConstruct": "0x5586ec7e8450-ExecutableConstruct" }, { - "id": "0x5556537733f0-ExecutableConstruct", + "id": "0x5586ec7e8450-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5556537733f0-Statement" + "Statement": "0x5586ec7e8450-Statement" }, { - "id": "0x5556537733f0-Statement", - "statement": "0x555653773400-ActionStmt", + "id": "0x5586ec7e8450-Statement", + "statement": "0x5586ec7e8460-ActionStmt", "source": "arr3 = [(i, i = 1, 9, 2)]" }, { - "id": "0x555653773400-ActionStmt", + "id": "0x5586ec7e8460-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5556537732d0-AssignmentStmt" + "AssignmentStmt": "0x5586ec7e8330-AssignmentStmt" }, { - "id": "0x5556537732d0-AssignmentStmt", - "Variable": "0x5556537733b0-Variable", - "Expr": "0x5556537732e0-Expr" + "id": "0x5586ec7e8330-AssignmentStmt", + "Variable": "0x5586ec7e8410-Variable", + "Expr": "0x5586ec7e8340-Expr" }, { - "id": "0x5556537733b0-Variable", + "id": "0x5586ec7e8410-Variable", "variantKey": "Designator", - "Designator": "0x555653771a50-Designator" + "Designator": "0x5586ec7e6a40-Designator" }, { - "id": "0x555653771a50-Designator", + "id": "0x5586ec7e6a40-Designator", "variantKey": "DataRef", - "DataRef": "0x555653771a60-DataRef" + "DataRef": "0x5586ec7e6a50-DataRef" }, { - "id": "0x555653771a60-DataRef", + "id": "0x5586ec7e6a50-DataRef", "variantKey": "Name", - "Name": "0x555653771a60-Name" + "Name": "0x5586ec7e6a50-Name" }, { - "id": "0x555653771a60-Name", + "id": "0x5586ec7e6a50-Name", "source": "arr3" }, { - "id": "0x5556537732e0-Expr", + "id": "0x5586ec7e8340-Expr", "variantKey": "ArrayConstructor", - "ArrayConstructor": "0x555653773300-ArrayConstructor" + "ArrayConstructor": "0x5586ec7e8360-ArrayConstructor" }, { - "id": "0x555653773300-ArrayConstructor", - "AcSpec": "0x555653773300-AcSpec" + "id": "0x5586ec7e8360-ArrayConstructor", + "AcSpec": "0x5586ec7e8360-AcSpec" }, { - "id": "0x555653773300-AcSpec", + "id": "0x5586ec7e8360-AcSpec", "values": [ - "0x555653780e10-AcValue" + "0x5586ec7f5d40-AcValue" ] }, { - "id": "0x555653780e10-AcValue", + "id": "0x5586ec7f5d40-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x555653771650-AcImpliedDo" + "AcImpliedDo": "0x5586ec7fd610-AcImpliedDo" }, { - "id": "0x555653771650-AcImpliedDo", + "id": "0x5586ec7fd610-AcImpliedDo", "AcValue": [ - "0x555653780db0-AcValue" + "0x5586ec7f5ce0-AcValue" ], - "AcImpliedDoControl": "0x555653771650-AcImpliedDoControl" + "AcImpliedDoControl": "0x5586ec7fd610-AcImpliedDoControl" }, { - "id": "0x555653780db0-AcValue", + "id": "0x5586ec7f5ce0-AcValue", "variantKey": "Expr", - "Expr": "0x555653772e90-Expr" + "Expr": "0x5586ec7e7ef0-Expr" }, { - "id": "0x555653772e90-Expr", + "id": "0x5586ec7e7ef0-Expr", "variantKey": "Designator", - "Designator": "0x555653772130-Designator" + "Designator": "0x5586ec7e7120-Designator" }, { - "id": "0x555653772130-Designator", + "id": "0x5586ec7e7120-Designator", "variantKey": "DataRef", - "DataRef": "0x555653772140-DataRef" + "DataRef": "0x5586ec7e7130-DataRef" }, { - "id": "0x555653772140-DataRef", + "id": "0x5586ec7e7130-DataRef", "variantKey": "Name", - "Name": "0x555653772140-Name" + "Name": "0x5586ec7e7130-Name" }, { - "id": "0x555653772140-Name", + "id": "0x5586ec7e7130-Name", "source": "i" }, { - "id": "0x555653771650-AcImpliedDoControl", - "value": "0x555653771650-LoopBounds" + "id": "0x5586ec7fd610-AcImpliedDoControl", + "value": "0x5586ec7fd610-LoopBounds" }, { - "id": "0x555653771650-LoopBounds", - "var": "0x555653771650-Name", - "lower": "0x555653772f70-Expr", - "upper": "0x5556537730b0-Expr", - "step": "0x5556537731f0-Expr" + "id": "0x5586ec7fd610-LoopBounds", + "var": "0x5586ec7fd610-Name", + "lower": "0x5586ec7e7fd0-Expr", + "upper": "0x5586ec7e8110-Expr", + "step": "0x5586ec7e8250-Expr" }, { - "id": "0x555653771650-Name", + "id": "0x5586ec7fd610-Name", "source": "i" }, { - "id": "0x555653772f70-Expr", + "id": "0x5586ec7e7fd0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x555653772f90-LiteralConstant" + "LiteralConstant": "0x5586ec7e7ff0-LiteralConstant" }, { - "id": "0x555653772f90-LiteralConstant", + "id": "0x5586ec7e7ff0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x555653772f90-IntLiteralConstant" + "IntLiteralConstant": "0x5586ec7e7ff0-IntLiteralConstant" }, { - "id": "0x555653772f90-IntLiteralConstant", + "id": "0x5586ec7e7ff0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5556537730b0-Expr", + "id": "0x5586ec7e8110-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5556537730d0-LiteralConstant" + "LiteralConstant": "0x5586ec7e8130-LiteralConstant" }, { - "id": "0x5556537730d0-LiteralConstant", + "id": "0x5586ec7e8130-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5556537730d0-IntLiteralConstant" + "IntLiteralConstant": "0x5586ec7e8130-IntLiteralConstant" }, { - "id": "0x5556537730d0-IntLiteralConstant", + "id": "0x5586ec7e8130-IntLiteralConstant", "CharBlock": "9" }, { - "id": "0x5556537731f0-Expr", + "id": "0x5586ec7e8250-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x555653773210-LiteralConstant" + "LiteralConstant": "0x5586ec7e8270-LiteralConstant" }, { - "id": "0x555653773210-LiteralConstant", + "id": "0x5586ec7e8270-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x555653773210-IntLiteralConstant" + "IntLiteralConstant": "0x5586ec7e8270-IntLiteralConstant" }, { - "id": "0x555653773210-IntLiteralConstant", + "id": "0x5586ec7e8270-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x555653773ca0-ExecutionPartConstruct", + "id": "0x5586ec7e8d00-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x555653773ca0-ExecutableConstruct" + "ExecutableConstruct": "0x5586ec7e8d00-ExecutableConstruct" }, { - "id": "0x555653773ca0-ExecutableConstruct", + "id": "0x5586ec7e8d00-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x555653773ca0-Statement" + "Statement": "0x5586ec7e8d00-Statement" }, { - "id": "0x555653773ca0-Statement", - "statement": "0x555653773cb0-ActionStmt", + "id": "0x5586ec7e8d00-Statement", + "statement": "0x5586ec7e8d10-ActionStmt", "source": "arr4 = [0,(i, i = 1, 8), 99]" }, { - "id": "0x555653773cb0-ActionStmt", + "id": "0x5586ec7e8d10-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x555653773b10-AssignmentStmt" + "AssignmentStmt": "0x5586ec7e8b70-AssignmentStmt" }, { - "id": "0x555653773b10-AssignmentStmt", - "Variable": "0x555653773bf0-Variable", - "Expr": "0x555653773b20-Expr" + "id": "0x5586ec7e8b70-AssignmentStmt", + "Variable": "0x5586ec7e8c50-Variable", + "Expr": "0x5586ec7e8b80-Expr" }, { - "id": "0x555653773bf0-Variable", + "id": "0x5586ec7e8c50-Variable", "variantKey": "Designator", - "Designator": "0x555653772a20-Designator" + "Designator": "0x5586ec7e7a80-Designator" }, { - "id": "0x555653772a20-Designator", + "id": "0x5586ec7e7a80-Designator", "variantKey": "DataRef", - "DataRef": "0x555653772a30-DataRef" + "DataRef": "0x5586ec7e7a90-DataRef" }, { - "id": "0x555653772a30-DataRef", + "id": "0x5586ec7e7a90-DataRef", "variantKey": "Name", - "Name": "0x555653772a30-Name" + "Name": "0x5586ec7e7a90-Name" }, { - "id": "0x555653772a30-Name", + "id": "0x5586ec7e7a90-Name", "source": "arr4" }, { - "id": "0x555653773b20-Expr", + "id": "0x5586ec7e8b80-Expr", "variantKey": "ArrayConstructor", - "ArrayConstructor": "0x555653773b40-ArrayConstructor" + "ArrayConstructor": "0x5586ec7e8ba0-ArrayConstructor" }, { - "id": "0x555653773b40-ArrayConstructor", - "AcSpec": "0x555653773b40-AcSpec" + "id": "0x5586ec7e8ba0-ArrayConstructor", + "AcSpec": "0x5586ec7e8ba0-AcSpec" }, { - "id": "0x555653773b40-AcSpec", + "id": "0x5586ec7e8ba0-AcSpec", "values": [ - "0x55565377f7e0-AcValue", - "0x55565377f960-AcValue", - "0x55565377f730-AcValue" + "0x5586ec7f4710-AcValue", + "0x5586ec7f4890-AcValue", + "0x5586ec7f4660-AcValue" ] }, { - "id": "0x55565377f7e0-AcValue", + "id": "0x5586ec7f4710-AcValue", "variantKey": "Expr", - "Expr": "0x555653773440-Expr" + "Expr": "0x5586ec7e84a0-Expr" }, { - "id": "0x555653773440-Expr", + "id": "0x5586ec7e84a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x555653773460-LiteralConstant" + "LiteralConstant": "0x5586ec7e84c0-LiteralConstant" }, { - "id": "0x555653773460-LiteralConstant", + "id": "0x5586ec7e84c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x555653773460-IntLiteralConstant" + "IntLiteralConstant": "0x5586ec7e84c0-IntLiteralConstant" }, { - "id": "0x555653773460-IntLiteralConstant", + "id": "0x5586ec7e84c0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55565377f960-AcValue", + "id": "0x5586ec7f4890-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x5556537886f0-AcImpliedDo" + "AcImpliedDo": "0x5586ec7e5610-AcImpliedDo" }, { - "id": "0x5556537886f0-AcImpliedDo", + "id": "0x5586ec7e5610-AcImpliedDo", "AcValue": [ - "0x555653780e50-AcValue" + "0x5586ec7f5d80-AcValue" ], - "AcImpliedDoControl": "0x5556537886f0-AcImpliedDoControl" + "AcImpliedDoControl": "0x5586ec7e5610-AcImpliedDoControl" }, { - "id": "0x555653780e50-AcValue", + "id": "0x5586ec7f5d80-AcValue", "variantKey": "Expr", - "Expr": "0x555653773580-Expr" + "Expr": "0x5586ec7e85e0-Expr" }, { - "id": "0x555653773580-Expr", + "id": "0x5586ec7e85e0-Expr", "variantKey": "Designator", - "Designator": "0x555653773520-Designator" + "Designator": "0x5586ec7e8580-Designator" }, { - "id": "0x555653773520-Designator", + "id": "0x5586ec7e8580-Designator", "variantKey": "DataRef", - "DataRef": "0x555653773530-DataRef" + "DataRef": "0x5586ec7e8590-DataRef" }, { - "id": "0x555653773530-DataRef", + "id": "0x5586ec7e8590-DataRef", "variantKey": "Name", - "Name": "0x555653773530-Name" + "Name": "0x5586ec7e8590-Name" }, { - "id": "0x555653773530-Name", + "id": "0x5586ec7e8590-Name", "source": "i" }, { - "id": "0x5556537886f0-AcImpliedDoControl", - "value": "0x5556537886f0-LoopBounds" + "id": "0x5586ec7e5610-AcImpliedDoControl", + "value": "0x5586ec7e5610-LoopBounds" }, { - "id": "0x5556537886f0-LoopBounds", - "var": "0x5556537886f0-Name", - "lower": "0x555653773660-Expr", - "upper": "0x5556537737a0-Expr" + "id": "0x5586ec7e5610-LoopBounds", + "var": "0x5586ec7e5610-Name", + "lower": "0x5586ec7e86c0-Expr", + "upper": "0x5586ec7e8800-Expr" }, { - "id": "0x5556537886f0-Name", + "id": "0x5586ec7e5610-Name", "source": "i" }, { - "id": "0x555653773660-Expr", + "id": "0x5586ec7e86c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x555653773680-LiteralConstant" + "LiteralConstant": "0x5586ec7e86e0-LiteralConstant" }, { - "id": "0x555653773680-LiteralConstant", + "id": "0x5586ec7e86e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x555653773680-IntLiteralConstant" + "IntLiteralConstant": "0x5586ec7e86e0-IntLiteralConstant" }, { - "id": "0x555653773680-IntLiteralConstant", + "id": "0x5586ec7e86e0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5556537737a0-Expr", + "id": "0x5586ec7e8800-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5556537737c0-LiteralConstant" + "LiteralConstant": "0x5586ec7e8820-LiteralConstant" }, { - "id": "0x5556537737c0-LiteralConstant", + "id": "0x5586ec7e8820-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5556537737c0-IntLiteralConstant" + "IntLiteralConstant": "0x5586ec7e8820-IntLiteralConstant" }, { - "id": "0x5556537737c0-IntLiteralConstant", + "id": "0x5586ec7e8820-IntLiteralConstant", "CharBlock": "8" }, { - "id": "0x55565377f730-AcValue", + "id": "0x5586ec7f4660-AcValue", "variantKey": "Expr", - "Expr": "0x5556537738e0-Expr" + "Expr": "0x5586ec7e8940-Expr" }, { - "id": "0x5556537738e0-Expr", + "id": "0x5586ec7e8940-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x555653773900-LiteralConstant" + "LiteralConstant": "0x5586ec7e8960-LiteralConstant" }, { - "id": "0x555653773900-LiteralConstant", + "id": "0x5586ec7e8960-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x555653773900-IntLiteralConstant" + "IntLiteralConstant": "0x5586ec7e8960-IntLiteralConstant" }, { - "id": "0x555653773900-IntLiteralConstant", + "id": "0x5586ec7e8960-IntLiteralConstant", "CharBlock": "99" }, { - "id": "0x555653774330-ExecutionPartConstruct", + "id": "0x5586ec7e9390-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x555653774330-ExecutableConstruct" + "ExecutableConstruct": "0x5586ec7e9390-ExecutableConstruct" }, { - "id": "0x555653774330-ExecutableConstruct", + "id": "0x5586ec7e9390-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x555653774330-Statement" + "Statement": "0x5586ec7e9390-Statement" }, { - "id": "0x555653774330-Statement", - "statement": "0x555653774340-ActionStmt", + "id": "0x5586ec7e9390-Statement", + "statement": "0x5586ec7e93a0-ActionStmt", "source": "arr5 = [integer ::(i * 2, i = 1, 10)]" }, { - "id": "0x555653774340-ActionStmt", + "id": "0x5586ec7e93a0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x555653774210-AssignmentStmt" + "AssignmentStmt": "0x5586ec7e9270-AssignmentStmt" }, { - "id": "0x555653774210-AssignmentStmt", - "Variable": "0x5556537742f0-Variable", - "Expr": "0x555653774220-Expr" + "id": "0x5586ec7e9270-AssignmentStmt", + "Variable": "0x5586ec7e9350-Variable", + "Expr": "0x5586ec7e9280-Expr" }, { - "id": "0x5556537742f0-Variable", + "id": "0x5586ec7e9350-Variable", "variantKey": "Designator", - "Designator": "0x555653770ad0-Designator" + "Designator": "0x5586ec7e5f80-Designator" }, { - "id": "0x555653770ad0-Designator", + "id": "0x5586ec7e5f80-Designator", "variantKey": "DataRef", - "DataRef": "0x555653770ae0-DataRef" + "DataRef": "0x5586ec7e5f90-DataRef" }, { - "id": "0x555653770ae0-DataRef", + "id": "0x5586ec7e5f90-DataRef", "variantKey": "Name", - "Name": "0x555653770ae0-Name" + "Name": "0x5586ec7e5f90-Name" }, { - "id": "0x555653770ae0-Name", + "id": "0x5586ec7e5f90-Name", "source": "arr5" }, { - "id": "0x555653774220-Expr", + "id": "0x5586ec7e9280-Expr", "variantKey": "ArrayConstructor", - "ArrayConstructor": "0x555653774240-ArrayConstructor" + "ArrayConstructor": "0x5586ec7e92a0-ArrayConstructor" }, { - "id": "0x555653774240-ArrayConstructor", - "AcSpec": "0x555653774240-AcSpec" + "id": "0x5586ec7e92a0-ArrayConstructor", + "AcSpec": "0x5586ec7e92a0-AcSpec" }, { - "id": "0x555653774240-AcSpec", - "type": "0x555653774258-TypeSpec", + "id": "0x5586ec7e92a0-AcSpec", + "type": "0x5586ec7e92b8-TypeSpec", "values": [ - "0x55565377f820-AcValue" + "0x5586ec7f4750-AcValue" ] }, { - "id": "0x555653774258-TypeSpec", + "id": "0x5586ec7e92b8-TypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x555653774260-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5586ec7e92c0-IntrinsicTypeSpec" }, { - "id": "0x555653774260-IntrinsicTypeSpec", + "id": "0x5586ec7e92c0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x555653774260-IntegerTypeSpec" + "IntegerTypeSpec": "0x5586ec7e92c0-IntegerTypeSpec" }, { - "id": "0x555653774260-IntegerTypeSpec" + "id": "0x5586ec7e92c0-IntegerTypeSpec" }, { - "id": "0x55565377f820-AcValue", + "id": "0x5586ec7f4750-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x555653770780-AcImpliedDo" + "AcImpliedDo": "0x5586ec7e0aa0-AcImpliedDo" }, { - "id": "0x555653770780-AcImpliedDo", + "id": "0x5586ec7e0aa0-AcImpliedDo", "AcValue": [ - "0x55565377f7a0-AcValue" + "0x5586ec7f46d0-AcValue" ], - "AcImpliedDoControl": "0x555653770780-AcImpliedDoControl" + "AcImpliedDoControl": "0x5586ec7e0aa0-AcImpliedDoControl" }, { - "id": "0x55565377f7a0-AcValue", + "id": "0x5586ec7f46d0-AcValue", "variantKey": "Expr", - "Expr": "0x555653773ff0-Expr" + "Expr": "0x5586ec7e9050-Expr" }, { - "id": "0x555653773ff0-Expr", + "id": "0x5586ec7e9050-Expr", "variantKey": "Multiply", - "Multiply": "0x555653774010-Multiply" + "Multiply": "0x5586ec7e9070-Multiply" }, { - "id": "0x555653774010-Multiply", - "left": "0x555653773f10-Expr", - "right": "0x555653773cf0-Expr", + "id": "0x5586ec7e9070-Multiply", + "left": "0x5586ec7e8f70-Expr", + "right": "0x5586ec7e8d50-Expr", "op": "MULTIPLY" }, { - "id": "0x555653773f10-Expr", + "id": "0x5586ec7e8f70-Expr", "variantKey": "Designator", - "Designator": "0x555653773eb0-Designator" + "Designator": "0x5586ec7e8f10-Designator" }, { - "id": "0x555653773eb0-Designator", + "id": "0x5586ec7e8f10-Designator", "variantKey": "DataRef", - "DataRef": "0x555653773ec0-DataRef" + "DataRef": "0x5586ec7e8f20-DataRef" }, { - "id": "0x555653773ec0-DataRef", + "id": "0x5586ec7e8f20-DataRef", "variantKey": "Name", - "Name": "0x555653773ec0-Name" + "Name": "0x5586ec7e8f20-Name" }, { - "id": "0x555653773ec0-Name", + "id": "0x5586ec7e8f20-Name", "source": "i" }, { - "id": "0x555653773cf0-Expr", + "id": "0x5586ec7e8d50-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x555653773d10-LiteralConstant" + "LiteralConstant": "0x5586ec7e8d70-LiteralConstant" }, { - "id": "0x555653773d10-LiteralConstant", + "id": "0x5586ec7e8d70-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x555653773d10-IntLiteralConstant" + "IntLiteralConstant": "0x5586ec7e8d70-IntLiteralConstant" }, { - "id": "0x555653773d10-IntLiteralConstant", + "id": "0x5586ec7e8d70-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x555653770780-AcImpliedDoControl", - "value": "0x555653770780-LoopBounds" + "id": "0x5586ec7e0aa0-AcImpliedDoControl", + "value": "0x5586ec7e0aa0-LoopBounds" }, { - "id": "0x555653770780-LoopBounds", - "var": "0x555653770780-Name", - "lower": "0x555653773dd0-Expr", - "upper": "0x555653774130-Expr" + "id": "0x5586ec7e0aa0-LoopBounds", + "var": "0x5586ec7e0aa0-Name", + "lower": "0x5586ec7e8e30-Expr", + "upper": "0x5586ec7e9190-Expr" }, { - "id": "0x555653770780-Name", + "id": "0x5586ec7e0aa0-Name", "source": "i" }, { - "id": "0x555653773dd0-Expr", + "id": "0x5586ec7e8e30-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x555653773df0-LiteralConstant" + "LiteralConstant": "0x5586ec7e8e50-LiteralConstant" }, { - "id": "0x555653773df0-LiteralConstant", + "id": "0x5586ec7e8e50-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x555653773df0-IntLiteralConstant" + "IntLiteralConstant": "0x5586ec7e8e50-IntLiteralConstant" }, { - "id": "0x555653773df0-IntLiteralConstant", + "id": "0x5586ec7e8e50-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x555653774130-Expr", + "id": "0x5586ec7e9190-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x555653774150-LiteralConstant" + "LiteralConstant": "0x5586ec7e91b0-LiteralConstant" }, { - "id": "0x555653774150-LiteralConstant", + "id": "0x5586ec7e91b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x555653774150-IntLiteralConstant" + "IntLiteralConstant": "0x5586ec7e91b0-IntLiteralConstant" }, { - "id": "0x555653774150-IntLiteralConstant", + "id": "0x5586ec7e91b0-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x555653775a10-ExecutionPartConstruct", + "id": "0x5586ec7eaaf0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x555653775a10-ExecutableConstruct" + "ExecutableConstruct": "0x5586ec7eaaf0-ExecutableConstruct" }, { - "id": "0x555653775a10-ExecutableConstruct", + "id": "0x5586ec7eaaf0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x555653775a10-Statement" + "Statement": "0x5586ec7eaaf0-Statement" }, { - "id": "0x555653775a10-Statement", - "statement": "0x555653775a20-ActionStmt", + "id": "0x5586ec7eaaf0-Statement", + "statement": "0x5586ec7eab00-ActionStmt", "source": "arr6 = [((i + j, i = 1, 3), j = 1, 3)]" }, { - "id": "0x555653775a20-ActionStmt", + "id": "0x5586ec7eab00-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x555653775880-AssignmentStmt" + "AssignmentStmt": "0x5586ec7ea960-AssignmentStmt" }, { - "id": "0x555653775880-AssignmentStmt", - "Variable": "0x555653775960-Variable", - "Expr": "0x555653775890-Expr" + "id": "0x5586ec7ea960-AssignmentStmt", + "Variable": "0x5586ec7eaa40-Variable", + "Expr": "0x5586ec7ea970-Expr" }, { - "id": "0x555653775960-Variable", + "id": "0x5586ec7eaa40-Variable", "variantKey": "Designator", - "Designator": "0x5556537815f0-Designator" + "Designator": "0x5586ec7f6680-Designator" }, { - "id": "0x5556537815f0-Designator", + "id": "0x5586ec7f6680-Designator", "variantKey": "DataRef", - "DataRef": "0x555653781600-DataRef" + "DataRef": "0x5586ec7f6690-DataRef" }, { - "id": "0x555653781600-DataRef", + "id": "0x5586ec7f6690-DataRef", "variantKey": "Name", - "Name": "0x555653781600-Name" + "Name": "0x5586ec7f6690-Name" }, { - "id": "0x555653781600-Name", + "id": "0x5586ec7f6690-Name", "source": "arr6" }, { - "id": "0x555653775890-Expr", + "id": "0x5586ec7ea970-Expr", "variantKey": "ArrayConstructor", - "ArrayConstructor": "0x5556537758b0-ArrayConstructor" + "ArrayConstructor": "0x5586ec7ea990-ArrayConstructor" }, { - "id": "0x5556537758b0-ArrayConstructor", - "AcSpec": "0x5556537758b0-AcSpec" + "id": "0x5586ec7ea990-ArrayConstructor", + "AcSpec": "0x5586ec7ea990-AcSpec" }, { - "id": "0x5556537758b0-AcSpec", + "id": "0x5586ec7ea990-AcSpec", "values": [ - "0x55565377f920-AcValue" + "0x5586ec7f4850-AcValue" ] }, { - "id": "0x55565377f920-AcValue", + "id": "0x5586ec7f4850-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x555653770880-AcImpliedDo" + "AcImpliedDo": "0x5586ec7e5da0-AcImpliedDo" }, { - "id": "0x555653770880-AcImpliedDo", + "id": "0x5586ec7e5da0-AcImpliedDo", "AcValue": [ - "0x55565377f8c0-AcValue" + "0x5586ec7f47f0-AcValue" ], - "AcImpliedDoControl": "0x555653770880-AcImpliedDoControl" + "AcImpliedDoControl": "0x5586ec7e5da0-AcImpliedDoControl" }, { - "id": "0x55565377f8c0-AcValue", + "id": "0x5586ec7f47f0-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x55565376baf0-AcImpliedDo" + "AcImpliedDo": "0x5586ec7e5710-AcImpliedDo" }, { - "id": "0x55565376baf0-AcImpliedDo", + "id": "0x5586ec7e5710-AcImpliedDo", "AcValue": [ - "0x55565377f880-AcValue" + "0x5586ec7f47b0-AcValue" ], - "AcImpliedDoControl": "0x55565376baf0-AcImpliedDoControl" + "AcImpliedDoControl": "0x5586ec7e5710-AcImpliedDoControl" }, { - "id": "0x55565377f880-AcValue", + "id": "0x5586ec7f47b0-AcValue", "variantKey": "Expr", - "Expr": "0x555653774740-Expr" + "Expr": "0x5586ec7e9820-Expr" }, { - "id": "0x555653774740-Expr", + "id": "0x5586ec7e9820-Expr", "variantKey": "Add", - "Add": "0x555653774760-Add" + "Add": "0x5586ec7e9840-Add" }, { - "id": "0x555653774760-Add", - "left": "0x555653774660-Expr", - "right": "0x555653774380-Expr", + "id": "0x5586ec7e9840-Add", + "left": "0x5586ec7e9740-Expr", + "right": "0x5586ec7e9460-Expr", "op": "ADD" }, { - "id": "0x555653774660-Expr", + "id": "0x5586ec7e9740-Expr", "variantKey": "Designator", - "Designator": "0x555653773740-Designator" + "Designator": "0x5586ec7e87a0-Designator" }, { - "id": "0x555653773740-Designator", + "id": "0x5586ec7e87a0-Designator", "variantKey": "DataRef", - "DataRef": "0x555653773750-DataRef" + "DataRef": "0x5586ec7e87b0-DataRef" }, { - "id": "0x555653773750-DataRef", + "id": "0x5586ec7e87b0-DataRef", "variantKey": "Name", - "Name": "0x555653773750-Name" + "Name": "0x5586ec7e87b0-Name" }, { - "id": "0x555653773750-Name", + "id": "0x5586ec7e87b0-Name", "source": "i" }, { - "id": "0x555653774380-Expr", + "id": "0x5586ec7e9460-Expr", "variantKey": "Designator", - "Designator": "0x555653774600-Designator" + "Designator": "0x5586ec7e96e0-Designator" }, { - "id": "0x555653774600-Designator", + "id": "0x5586ec7e96e0-Designator", "variantKey": "DataRef", - "DataRef": "0x555653774610-DataRef" + "DataRef": "0x5586ec7e96f0-DataRef" }, { - "id": "0x555653774610-DataRef", + "id": "0x5586ec7e96f0-DataRef", "variantKey": "Name", - "Name": "0x555653774610-Name" + "Name": "0x5586ec7e96f0-Name" }, { - "id": "0x555653774610-Name", + "id": "0x5586ec7e96f0-Name", "source": "j" }, { - "id": "0x55565376baf0-AcImpliedDoControl", - "value": "0x55565376baf0-LoopBounds" + "id": "0x5586ec7e5710-AcImpliedDoControl", + "value": "0x5586ec7e5710-LoopBounds" }, { - "id": "0x55565376baf0-LoopBounds", - "var": "0x55565376baf0-Name", - "lower": "0x555653774460-Expr", - "upper": "0x555653774b20-Expr" + "id": "0x5586ec7e5710-LoopBounds", + "var": "0x5586ec7e5710-Name", + "lower": "0x5586ec7e9540-Expr", + "upper": "0x5586ec7e9c00-Expr" }, { - "id": "0x55565376baf0-Name", + "id": "0x5586ec7e5710-Name", "source": "i" }, { - "id": "0x555653774460-Expr", + "id": "0x5586ec7e9540-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x555653774480-LiteralConstant" + "LiteralConstant": "0x5586ec7e9560-LiteralConstant" }, { - "id": "0x555653774480-LiteralConstant", + "id": "0x5586ec7e9560-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x555653774480-IntLiteralConstant" + "IntLiteralConstant": "0x5586ec7e9560-IntLiteralConstant" }, { - "id": "0x555653774480-IntLiteralConstant", + "id": "0x5586ec7e9560-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x555653774b20-Expr", + "id": "0x5586ec7e9c00-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x555653774b40-LiteralConstant" + "LiteralConstant": "0x5586ec7e9c20-LiteralConstant" }, { - "id": "0x555653774b40-LiteralConstant", + "id": "0x5586ec7e9c20-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x555653774b40-IntLiteralConstant" + "IntLiteralConstant": "0x5586ec7e9c20-IntLiteralConstant" }, { - "id": "0x555653774b40-IntLiteralConstant", + "id": "0x5586ec7e9c20-IntLiteralConstant", "CharBlock": "3" }, { - "id": "0x555653770880-AcImpliedDoControl", - "value": "0x555653770880-LoopBounds" + "id": "0x5586ec7e5da0-AcImpliedDoControl", + "value": "0x5586ec7e5da0-LoopBounds" }, { - "id": "0x555653770880-LoopBounds", - "var": "0x555653770880-Name", - "lower": "0x555653775190-Expr", - "upper": "0x555653775650-Expr" + "id": "0x5586ec7e5da0-LoopBounds", + "var": "0x5586ec7e5da0-Name", + "lower": "0x5586ec7ea270-Expr", + "upper": "0x5586ec7ea730-Expr" }, { - "id": "0x555653770880-Name", + "id": "0x5586ec7e5da0-Name", "source": "j" }, { - "id": "0x555653775190-Expr", + "id": "0x5586ec7ea270-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5556537751b0-LiteralConstant" + "LiteralConstant": "0x5586ec7ea290-LiteralConstant" }, { - "id": "0x5556537751b0-LiteralConstant", + "id": "0x5586ec7ea290-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5556537751b0-IntLiteralConstant" + "IntLiteralConstant": "0x5586ec7ea290-IntLiteralConstant" }, { - "id": "0x5556537751b0-IntLiteralConstant", + "id": "0x5586ec7ea290-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x555653775650-Expr", + "id": "0x5586ec7ea730-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x555653775670-LiteralConstant" + "LiteralConstant": "0x5586ec7ea750-LiteralConstant" }, { - "id": "0x555653775670-LiteralConstant", + "id": "0x5586ec7ea750-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x555653775670-IntLiteralConstant" + "IntLiteralConstant": "0x5586ec7ea750-IntLiteralConstant" }, { - "id": "0x555653775670-IntLiteralConstant", + "id": "0x5586ec7ea750-IntLiteralConstant", "CharBlock": "3" }, { - "id": "0x555653776500-ExecutionPartConstruct", + "id": "0x5586ec7eb5e0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x555653776500-ExecutableConstruct" + "ExecutableConstruct": "0x5586ec7eb5e0-ExecutableConstruct" }, { - "id": "0x555653776500-ExecutableConstruct", + "id": "0x5586ec7eb5e0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x555653776500-Statement" + "Statement": "0x5586ec7eb5e0-Statement" }, { - "id": "0x555653776500-Statement", - "statement": "0x555653776510-ActionStmt", + "id": "0x5586ec7eb5e0-Statement", + "statement": "0x5586ec7eb5f0-ActionStmt", "source": "arr7 = [(i, i * 10, i * 100, i = 1, 5)]" }, { - "id": "0x555653776510-ActionStmt", + "id": "0x5586ec7eb5f0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5556537763e0-AssignmentStmt" + "AssignmentStmt": "0x5586ec7eb4c0-AssignmentStmt" }, { - "id": "0x5556537763e0-AssignmentStmt", - "Variable": "0x5556537764c0-Variable", - "Expr": "0x5556537763f0-Expr" + "id": "0x5586ec7eb4c0-AssignmentStmt", + "Variable": "0x5586ec7eb5a0-Variable", + "Expr": "0x5586ec7eb4d0-Expr" }, { - "id": "0x5556537764c0-Variable", + "id": "0x5586ec7eb5a0-Variable", "variantKey": "Designator", - "Designator": "0x555653774900-Designator" + "Designator": "0x5586ec7e99e0-Designator" }, { - "id": "0x555653774900-Designator", + "id": "0x5586ec7e99e0-Designator", "variantKey": "DataRef", - "DataRef": "0x555653774910-DataRef" + "DataRef": "0x5586ec7e99f0-DataRef" }, { - "id": "0x555653774910-DataRef", + "id": "0x5586ec7e99f0-DataRef", "variantKey": "Name", - "Name": "0x555653774910-Name" + "Name": "0x5586ec7e99f0-Name" }, { - "id": "0x555653774910-Name", + "id": "0x5586ec7e99f0-Name", "source": "arr7" }, { - "id": "0x5556537763f0-Expr", + "id": "0x5586ec7eb4d0-Expr", "variantKey": "ArrayConstructor", - "ArrayConstructor": "0x555653776410-ArrayConstructor" + "ArrayConstructor": "0x5586ec7eb4f0-ArrayConstructor" }, { - "id": "0x555653776410-ArrayConstructor", - "AcSpec": "0x555653776410-AcSpec" + "id": "0x5586ec7eb4f0-ArrayConstructor", + "AcSpec": "0x5586ec7eb4f0-AcSpec" }, { - "id": "0x555653776410-AcSpec", + "id": "0x5586ec7eb4f0-AcSpec", "values": [ - "0x55565377f560-AcValue" + "0x5586ec7f4490-AcValue" ] }, { - "id": "0x55565377f560-AcValue", + "id": "0x5586ec7f4490-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x5556537715d0-AcImpliedDo" + "AcImpliedDo": "0x5586ec7e93e0-AcImpliedDo" }, { - "id": "0x5556537715d0-AcImpliedDo", + "id": "0x5586ec7e93e0-AcImpliedDo", "AcValue": [ - "0x55565377f500-AcValue", - "0x55565377f6f0-AcValue", - "0x55565377f4c0-AcValue" + "0x5586ec7f4430-AcValue", + "0x5586ec7f4620-AcValue", + "0x5586ec7f43f0-AcValue" ], - "AcImpliedDoControl": "0x5556537715d0-AcImpliedDoControl" + "AcImpliedDoControl": "0x5586ec7e93e0-AcImpliedDoControl" }, { - "id": "0x55565377f500-AcValue", + "id": "0x5586ec7f4430-AcValue", "variantKey": "Expr", - "Expr": "0x555653775ca0-Expr" + "Expr": "0x5586ec7ead80-Expr" }, { - "id": "0x555653775ca0-Expr", + "id": "0x5586ec7ead80-Expr", "variantKey": "Designator", - "Designator": "0x5556537740d0-Designator" + "Designator": "0x5586ec7e9130-Designator" }, { - "id": "0x5556537740d0-Designator", + "id": "0x5586ec7e9130-Designator", "variantKey": "DataRef", - "DataRef": "0x5556537740e0-DataRef" + "DataRef": "0x5586ec7e9140-DataRef" }, { - "id": "0x5556537740e0-DataRef", + "id": "0x5586ec7e9140-DataRef", "variantKey": "Name", - "Name": "0x5556537740e0-Name" + "Name": "0x5586ec7e9140-Name" }, { - "id": "0x5556537740e0-Name", + "id": "0x5586ec7e9140-Name", "source": "i" }, { - "id": "0x55565377f6f0-AcValue", + "id": "0x5586ec7f4620-AcValue", "variantKey": "Expr", - "Expr": "0x555653775bc0-Expr" + "Expr": "0x5586ec7eaca0-Expr" }, { - "id": "0x555653775bc0-Expr", + "id": "0x5586ec7eaca0-Expr", "variantKey": "Multiply", - "Multiply": "0x555653775be0-Multiply" + "Multiply": "0x5586ec7eacc0-Multiply" }, { - "id": "0x555653775be0-Multiply", - "left": "0x555653775ae0-Expr", - "right": "0x555653775d80-Expr", + "id": "0x5586ec7eacc0-Multiply", + "left": "0x5586ec7eabc0-Expr", + "right": "0x5586ec7eae60-Expr", "op": "MULTIPLY" }, { - "id": "0x555653775ae0-Expr", + "id": "0x5586ec7eabc0-Expr", "variantKey": "Designator", - "Designator": "0x555653771150-Designator" + "Designator": "0x5586ec7e6440-Designator" }, { - "id": "0x555653771150-Designator", + "id": "0x5586ec7e6440-Designator", "variantKey": "DataRef", - "DataRef": "0x555653771160-DataRef" + "DataRef": "0x5586ec7e6450-DataRef" }, { - "id": "0x555653771160-DataRef", + "id": "0x5586ec7e6450-DataRef", "variantKey": "Name", - "Name": "0x555653771160-Name" + "Name": "0x5586ec7e6450-Name" }, { - "id": "0x555653771160-Name", + "id": "0x5586ec7e6450-Name", "source": "i" }, { - "id": "0x555653775d80-Expr", + "id": "0x5586ec7eae60-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x555653775da0-LiteralConstant" + "LiteralConstant": "0x5586ec7eae80-LiteralConstant" }, { - "id": "0x555653775da0-LiteralConstant", + "id": "0x5586ec7eae80-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x555653775da0-IntLiteralConstant" + "IntLiteralConstant": "0x5586ec7eae80-IntLiteralConstant" }, { - "id": "0x555653775da0-IntLiteralConstant", + "id": "0x5586ec7eae80-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x55565377f4c0-AcValue", + "id": "0x5586ec7f43f0-AcValue", "variantKey": "Expr", - "Expr": "0x555653775f40-Expr" + "Expr": "0x5586ec7eb020-Expr" }, { - "id": "0x555653775f40-Expr", + "id": "0x5586ec7eb020-Expr", "variantKey": "Multiply", - "Multiply": "0x555653775f60-Multiply" + "Multiply": "0x5586ec7eb040-Multiply" }, { - "id": "0x555653775f60-Multiply", - "left": "0x555653775e60-Expr", - "right": "0x555653776020-Expr", + "id": "0x5586ec7eb040-Multiply", + "left": "0x5586ec7eaf40-Expr", + "right": "0x5586ec7eb100-Expr", "op": "MULTIPLY" }, { - "id": "0x555653775e60-Expr", + "id": "0x5586ec7eaf40-Expr", "variantKey": "Designator", - "Designator": "0x555653770df0-Designator" + "Designator": "0x5586ec7e5960-Designator" }, { - "id": "0x555653770df0-Designator", + "id": "0x5586ec7e5960-Designator", "variantKey": "DataRef", - "DataRef": "0x555653770e00-DataRef" + "DataRef": "0x5586ec7e5970-DataRef" }, { - "id": "0x555653770e00-DataRef", + "id": "0x5586ec7e5970-DataRef", "variantKey": "Name", - "Name": "0x555653770e00-Name" + "Name": "0x5586ec7e5970-Name" }, { - "id": "0x555653770e00-Name", + "id": "0x5586ec7e5970-Name", "source": "i" }, { - "id": "0x555653776020-Expr", + "id": "0x5586ec7eb100-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x555653776040-LiteralConstant" + "LiteralConstant": "0x5586ec7eb120-LiteralConstant" }, { - "id": "0x555653776040-LiteralConstant", + "id": "0x5586ec7eb120-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x555653776040-IntLiteralConstant" + "IntLiteralConstant": "0x5586ec7eb120-IntLiteralConstant" }, { - "id": "0x555653776040-IntLiteralConstant", + "id": "0x5586ec7eb120-IntLiteralConstant", "CharBlock": "100" }, { - "id": "0x5556537715d0-AcImpliedDoControl", - "value": "0x5556537715d0-LoopBounds" + "id": "0x5586ec7e93e0-AcImpliedDoControl", + "value": "0x5586ec7e93e0-LoopBounds" }, { - "id": "0x5556537715d0-LoopBounds", - "var": "0x5556537715d0-Name", - "lower": "0x5556537761c0-Expr", - "upper": "0x555653776300-Expr" + "id": "0x5586ec7e93e0-LoopBounds", + "var": "0x5586ec7e93e0-Name", + "lower": "0x5586ec7eb2a0-Expr", + "upper": "0x5586ec7eb3e0-Expr" }, { - "id": "0x5556537715d0-Name", + "id": "0x5586ec7e93e0-Name", "source": "i" }, { - "id": "0x5556537761c0-Expr", + "id": "0x5586ec7eb2a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5556537761e0-LiteralConstant" + "LiteralConstant": "0x5586ec7eb2c0-LiteralConstant" }, { - "id": "0x5556537761e0-LiteralConstant", + "id": "0x5586ec7eb2c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5556537761e0-IntLiteralConstant" + "IntLiteralConstant": "0x5586ec7eb2c0-IntLiteralConstant" }, { - "id": "0x5556537761e0-IntLiteralConstant", + "id": "0x5586ec7eb2c0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x555653776300-Expr", + "id": "0x5586ec7eb3e0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x555653776320-LiteralConstant" + "LiteralConstant": "0x5586ec7eb400-LiteralConstant" }, { - "id": "0x555653776320-LiteralConstant", + "id": "0x5586ec7eb400-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x555653776320-IntLiteralConstant" + "IntLiteralConstant": "0x5586ec7eb400-IntLiteralConstant" }, { - "id": "0x555653776320-IntLiteralConstant", + "id": "0x5586ec7eb400-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x555653779800-Statement", - "statement": "0x555653779810-EndProgramStmt", + "id": "0x5586ec7ee850-Statement", + "statement": "0x5586ec7ee860-EndProgramStmt", "source": "end program TEST_IMPLIED_DO" }, { - "id": "0x555653779810-EndProgramStmt", - "Name": "0x555653779810-Name" + "id": "0x5586ec7ee860-EndProgramStmt", + "Name": "0x5586ec7ee860-Name" }, { - "id": "0x555653779810-Name", + "id": "0x5586ec7ee860-Name", "source": "TEST_IMPLIED_DO" } ], "comments": [ { - "text": "! Basic implied-do", - "stmtId": "0x555653772670-Statement", + "text": " Basic implied-do", + "stmtId": "0x5586ec7e75f0-Statement", "trailing": false }, { - "text": "! With expression", - "stmtId": "0x555653772e40-Statement", + "text": " With expression", + "stmtId": "0x5586ec7e7ea0-Statement", "trailing": false }, { - "text": "! With step", - "stmtId": "0x5556537733f0-Statement", + "text": " With step", + "stmtId": "0x5586ec7e8450-Statement", "trailing": false }, { - "text": "! Mixed values and implied-do", - "stmtId": "0x555653773ca0-Statement", + "text": " Mixed values and implied-do", + "stmtId": "0x5586ec7e8d00-Statement", "trailing": false }, { - "text": "! With type-spec", - "stmtId": "0x555653774330-Statement", + "text": " With type-spec", + "stmtId": "0x5586ec7e9390-Statement", "trailing": false }, { - "text": "! Nested implied-do", - "stmtId": "0x555653775a10-Statement", + "text": " Nested implied-do", + "stmtId": "0x5586ec7eaaf0-Statement", "trailing": false }, { - "text": "! Multiple values per iteration", - "stmtId": "0x555653776500-Statement", + "text": " Multiple values per iteration", + "stmtId": "0x5586ec7eb5e0-Statement", "trailing": false } ], diff --git a/FortranParser/resources-test/fortran/parser/comment.json b/FortranParser/resources-test/fortran/parser/comment.json index 90897cb2..6186ba9e 100644 --- a/FortranParser/resources-test/fortran/parser/comment.json +++ b/FortranParser/resources-test/fortran/parser/comment.json @@ -1,254 +1,255 @@ { + "fileExtension": "f90", "nodes": [ { - "id": "0x5611007d4f00-Program", + "id": "0x562236921f00-Program", "ProgramUnit": [ - "0x561100809c90-ProgramUnit" + "0x562236956be0-ProgramUnit" ] }, { - "id": "0x561100809c90-ProgramUnit", + "id": "0x562236956be0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x561100802090-MainProgram" + "MainProgram": "0x56223694f120-MainProgram" }, { - "id": "0x561100802090-MainProgram", - "Statement": "0x5611008021d8-Statement", - "SpecificationPart": "0x561100802130-SpecificationPart", - "ExecutionPart": "0x561100802118-ExecutionPart", - "Statement": "0x561100802090-Statement" + "id": "0x56223694f120-MainProgram", + "Statement": "0x56223694f268-Statement", + "SpecificationPart": "0x56223694f1c0-SpecificationPart", + "ExecutionPart": "0x56223694f1a8-ExecutionPart", + "Statement": "0x56223694f120-Statement" }, { - "id": "0x5611008021d8-Statement", - "statement": "0x5611008021e8-ProgramStmt", + "id": "0x56223694f268-Statement", + "statement": "0x56223694f278-ProgramStmt", "source": "program HELLO" }, { - "id": "0x5611008021e8-ProgramStmt", - "Name": "0x5611008021e8-Name" + "id": "0x56223694f278-ProgramStmt", + "Name": "0x56223694f278-Name" }, { - "id": "0x5611008021e8-Name", + "id": "0x56223694f278-Name", "source": "HELLO" }, { - "id": "0x561100802130-SpecificationPart", - "ImplicitPart": "0x561100802148-ImplicitPart" + "id": "0x56223694f1c0-SpecificationPart", + "ImplicitPart": "0x56223694f1d8-ImplicitPart" }, { - "id": "0x561100802148-ImplicitPart" + "id": "0x56223694f1d8-ImplicitPart" }, { - "id": "0x561100802118-ExecutionPart", + "id": "0x56223694f1a8-ExecutionPart", "ExecutionPartConstruct": [ - "0x561100814a20-ExecutionPartConstruct", - "0x561100811470-ExecutionPartConstruct", - "0x5611008142c0-ExecutionPartConstruct" + "0x562236961d00-ExecutionPartConstruct", + "0x562236960df0-ExecutionPartConstruct", + "0x56223695e660-ExecutionPartConstruct" ] }, { - "id": "0x561100802118-ExecutionPartConstruct" + "id": "0x56223694f1a8-ExecutionPartConstruct" }, { - "id": "0x561100814a20-ExecutionPartConstruct", + "id": "0x562236961d00-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561100814a20-ExecutableConstruct" + "ExecutableConstruct": "0x562236961d00-ExecutableConstruct" }, { - "id": "0x561100814a20-ExecutableConstruct", + "id": "0x562236961d00-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561100814a20-Statement" + "Statement": "0x562236961d00-Statement" }, { - "id": "0x561100814a20-Statement", - "statement": "0x561100814a30-ActionStmt", + "id": "0x562236961d00-Statement", + "statement": "0x562236961d10-ActionStmt", "source": "print *, \"Hello, \"\"World!\"\"\"" }, { - "id": "0x561100814a30-ActionStmt", + "id": "0x562236961d10-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x56110078a260-PrintStmt" + "PrintStmt": "0x5622368d7260-PrintStmt" }, { - "id": "0x56110078a260-PrintStmt", - "Format": "0x56110078a278-Format", + "id": "0x5622368d7260-PrintStmt", + "Format": "0x5622368d7278-Format", "OutputItem": [ - "0x561100815e60-OutputItem" + "0x562236962f20-OutputItem" ] }, { - "id": "0x56110078a278-Format", + "id": "0x5622368d7278-Format", "variantKey": "Star", - "Star": "0x56110078a278-Star" + "Star": "0x5622368d7278-Star" }, { - "id": "0x56110078a278-Star" + "id": "0x5622368d7278-Star" }, { - "id": "0x561100815e60-OutputItem", + "id": "0x562236962f20-OutputItem", "variantKey": "Expr", - "Expr": "0x561100815e60-Expr" + "Expr": "0x562236962f20-Expr" }, { - "id": "0x561100815e60-Expr", + "id": "0x562236962f20-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561100815e80-LiteralConstant" + "LiteralConstant": "0x562236962f40-LiteralConstant" }, { - "id": "0x561100815e80-LiteralConstant", + "id": "0x562236962f40-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x561100815e80-CharLiteralConstant" + "CharLiteralConstant": "0x562236962f40-CharLiteralConstant" }, { - "id": "0x561100815e80-CharLiteralConstant", + "id": "0x562236962f40-CharLiteralConstant", "string": "Hello, \"World!\"" }, { - "id": "0x561100811470-ExecutionPartConstruct", + "id": "0x562236960df0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561100811470-ExecutableConstruct" + "ExecutableConstruct": "0x562236960df0-ExecutableConstruct" }, { - "id": "0x561100811470-ExecutableConstruct", + "id": "0x562236960df0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561100811470-Statement" + "Statement": "0x562236960df0-Statement" }, { - "id": "0x561100811470-Statement", - "statement": "0x561100811480-ActionStmt", + "id": "0x562236960df0-Statement", + "statement": "0x562236960e00-ActionStmt", "source": "print *, \"Some\"" }, { - "id": "0x561100811480-ActionStmt", + "id": "0x562236960e00-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x561100811360-PrintStmt" + "PrintStmt": "0x562236960ce0-PrintStmt" }, { - "id": "0x561100811360-PrintStmt", - "Format": "0x561100811378-Format", + "id": "0x562236960ce0-PrintStmt", + "Format": "0x562236960cf8-Format", "OutputItem": [ - "0x561100813c30-OutputItem" + "0x562236961ae0-OutputItem" ] }, { - "id": "0x561100811378-Format", + "id": "0x562236960cf8-Format", "variantKey": "Star", - "Star": "0x561100811378-Star" + "Star": "0x562236960cf8-Star" }, { - "id": "0x561100811378-Star" + "id": "0x562236960cf8-Star" }, { - "id": "0x561100813c30-OutputItem", + "id": "0x562236961ae0-OutputItem", "variantKey": "Expr", - "Expr": "0x561100813c30-Expr" + "Expr": "0x562236961ae0-Expr" }, { - "id": "0x561100813c30-Expr", + "id": "0x562236961ae0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561100813c50-LiteralConstant" + "LiteralConstant": "0x562236961b00-LiteralConstant" }, { - "id": "0x561100813c50-LiteralConstant", + "id": "0x562236961b00-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x561100813c50-CharLiteralConstant" + "CharLiteralConstant": "0x562236961b00-CharLiteralConstant" }, { - "id": "0x561100813c50-CharLiteralConstant", + "id": "0x562236961b00-CharLiteralConstant", "string": "Some" }, { - "id": "0x5611008142c0-ExecutionPartConstruct", + "id": "0x56223695e660-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5611008142c0-ExecutableConstruct" + "ExecutableConstruct": "0x56223695e660-ExecutableConstruct" }, { - "id": "0x5611008142c0-ExecutableConstruct", + "id": "0x56223695e660-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5611008142c0-Statement" + "Statement": "0x56223695e660-Statement" }, { - "id": "0x5611008142c0-Statement", - "statement": "0x5611008142d0-ActionStmt", + "id": "0x56223695e660-Statement", + "statement": "0x56223695e670-ActionStmt", "source": "print *, \"thing\"" }, { - "id": "0x5611008142d0-ActionStmt", + "id": "0x56223695e670-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x5611008141b0-PrintStmt" + "PrintStmt": "0x56223695e550-PrintStmt" }, { - "id": "0x5611008141b0-PrintStmt", - "Format": "0x5611008141c8-Format", + "id": "0x56223695e550-PrintStmt", + "Format": "0x56223695e568-Format", "OutputItem": [ - "0x5611008114d0-OutputItem" + "0x56223695e470-OutputItem" ] }, { - "id": "0x5611008141c8-Format", + "id": "0x56223695e568-Format", "variantKey": "Star", - "Star": "0x5611008141c8-Star" + "Star": "0x56223695e568-Star" }, { - "id": "0x5611008141c8-Star" + "id": "0x56223695e568-Star" }, { - "id": "0x5611008114d0-OutputItem", + "id": "0x56223695e470-OutputItem", "variantKey": "Expr", - "Expr": "0x5611008114d0-Expr" + "Expr": "0x56223695e470-Expr" }, { - "id": "0x5611008114d0-Expr", + "id": "0x56223695e470-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5611008114f0-LiteralConstant" + "LiteralConstant": "0x56223695e490-LiteralConstant" }, { - "id": "0x5611008114f0-LiteralConstant", + "id": "0x56223695e490-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x5611008114f0-CharLiteralConstant" + "CharLiteralConstant": "0x56223695e490-CharLiteralConstant" }, { - "id": "0x5611008114f0-CharLiteralConstant", + "id": "0x56223695e490-CharLiteralConstant", "string": "thing" }, { - "id": "0x561100802090-Statement", - "statement": "0x5611008020a0-EndProgramStmt", + "id": "0x56223694f120-Statement", + "statement": "0x56223694f130-EndProgramStmt", "source": "end program HELLO" }, { - "id": "0x5611008020a0-EndProgramStmt", - "Name": "0x5611008020a0-Name" + "id": "0x56223694f130-EndProgramStmt", + "Name": "0x56223694f130-Name" }, { - "id": "0x5611008020a0-Name", + "id": "0x56223694f130-Name", "source": "HELLO" } ], "comments": [ { - "text": "! This is a \\comment", - "stmtId": "0x5611008021d8-Statement", + "text": " This is a \\comment", + "stmtId": "0x56223694f268-Statement", "trailing": false }, { - "text": "! This is \"another comment\"", - "stmtId": "0x561100814a20-Statement", + "text": " This is \"another comment\"", + "stmtId": "0x562236961d00-Statement", "trailing": false }, { - "text": "! This is a trailing comment", - "stmtId": "0x561100814a20-Statement", + "text": " This is a trailing comment", + "stmtId": "0x562236961d00-Statement", "trailing": true }, { - "text": "! This is a comment after a semicolon", - "stmtId": "0x5611008142c0-Statement", + "text": " This is a comment after a semicolon", + "stmtId": "0x56223695e660-Statement", "trailing": true }, { - "text": "! This is a final comment", - "stmtId": "0x5611007d4f00-Program", + "text": " This is a final comment", + "stmtId": "0x562236921f00-Program", "trailing": false } ], diff --git a/FortranParser/resources-test/fortran/parser/declaration.json b/FortranParser/resources-test/fortran/parser/declaration.json index a5bffe01..a1c10a98 100644 --- a/FortranParser/resources-test/fortran/parser/declaration.json +++ b/FortranParser/resources-test/fortran/parser/declaration.json @@ -1,152 +1,153 @@ { + "fileExtension": "f90", "nodes": [ { - "id": "0x55f217ee8f00-Program", + "id": "0x56474332af00-Program", "ProgramUnit": [ - "0x55f217f1ee20-ProgramUnit" + "0x564743360d80-ProgramUnit" ] }, { - "id": "0x55f217f1ee20-ProgramUnit", + "id": "0x564743360d80-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x55f217f23890-MainProgram" + "MainProgram": "0x564743365820-MainProgram" }, { - "id": "0x55f217f23890-MainProgram", - "Statement": "0x55f217f239d8-Statement", - "SpecificationPart": "0x55f217f23930-SpecificationPart", - "ExecutionPart": "0x55f217f23918-ExecutionPart", - "Statement": "0x55f217f23890-Statement" + "id": "0x564743365820-MainProgram", + "Statement": "0x564743365968-Statement", + "SpecificationPart": "0x5647433658c0-SpecificationPart", + "ExecutionPart": "0x5647433658a8-ExecutionPart", + "Statement": "0x564743365820-Statement" }, { - "id": "0x55f217f239d8-Statement", - "statement": "0x55f217f239e8-ProgramStmt", + "id": "0x564743365968-Statement", + "statement": "0x564743365978-ProgramStmt", "source": "program DECLARATION" }, { - "id": "0x55f217f239e8-ProgramStmt", - "Name": "0x55f217f239e8-Name" + "id": "0x564743365978-ProgramStmt", + "Name": "0x564743365978-Name" }, { - "id": "0x55f217f239e8-Name", + "id": "0x564743365978-Name", "source": "DECLARATION" }, { - "id": "0x55f217f23930-SpecificationPart", - "ImplicitPart": "0x55f217f23948-ImplicitPart", + "id": "0x5647433658c0-SpecificationPart", + "ImplicitPart": "0x5647433658d8-ImplicitPart", "DeclarationConstruct": [ - "0x55f217ef6110-DeclarationConstruct" + "0x564743338110-DeclarationConstruct" ] }, { - "id": "0x55f217f23948-ImplicitPart" + "id": "0x5647433658d8-ImplicitPart" }, { - "id": "0x55f217ef6110-DeclarationConstruct", + "id": "0x564743338110-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55f217ef6110-SpecificationConstruct" + "SpecificationConstruct": "0x564743338110-SpecificationConstruct" }, { - "id": "0x55f217ef6110-SpecificationConstruct", + "id": "0x564743338110-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55f217ef6110-Statement" + "Statement": "0x564743338110-Statement" }, { - "id": "0x55f217ef6110-Statement", - "statement": "0x55f217f1c320-TypeDeclarationStmt", + "id": "0x564743338110-Statement", + "statement": "0x56474335e290-TypeDeclarationStmt", "source": "integer :: a, b = 1" }, { - "id": "0x55f217f1c320-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55f217f1c350-DeclarationTypeSpec", + "id": "0x56474335e290-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x56474335e2c0-DeclarationTypeSpec", "EntityDecl": [ - "0x55f217f1c590-EntityDecl", - "0x55f217f1c4a0-EntityDecl" + "0x56474335e500-EntityDecl", + "0x56474335e410-EntityDecl" ] }, { - "id": "0x55f217f1c350-DeclarationTypeSpec", + "id": "0x56474335e2c0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55f217f1c350-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x56474335e2c0-IntrinsicTypeSpec" }, { - "id": "0x55f217f1c350-IntrinsicTypeSpec", + "id": "0x56474335e2c0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55f217f1c350-IntegerTypeSpec" + "IntegerTypeSpec": "0x56474335e2c0-IntegerTypeSpec" }, { - "id": "0x55f217f1c350-IntegerTypeSpec" + "id": "0x56474335e2c0-IntegerTypeSpec" }, { - "id": "0x55f217f1c590-EntityDecl", - "Name": "0x55f217f1c648-Name" + "id": "0x56474335e500-EntityDecl", + "Name": "0x56474335e5b8-Name" }, { - "id": "0x55f217f1c648-Name", + "id": "0x56474335e5b8-Name", "source": "a" }, { - "id": "0x55f217f1c4a0-EntityDecl", - "Name": "0x55f217f1c558-Name", - "Initialization": "0x55f217f1c4a0-Initialization" + "id": "0x56474335e410-EntityDecl", + "Name": "0x56474335e4c8-Name", + "Initialization": "0x56474335e410-Initialization" }, { - "id": "0x55f217f1c558-Name", + "id": "0x56474335e4c8-Name", "source": "b" }, { - "id": "0x55f217f1c4a0-Initialization", + "id": "0x56474335e410-Initialization", "variantKey": "Expr", - "Expr": "0x55f217e88790-Expr" + "Expr": "0x5647432ca790-Expr" }, { - "id": "0x55f217e88790-Expr", + "id": "0x5647432ca790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55f217e887b0-LiteralConstant" + "LiteralConstant": "0x5647432ca7b0-LiteralConstant" }, { - "id": "0x55f217e887b0-LiteralConstant", + "id": "0x5647432ca7b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55f217e887b0-IntLiteralConstant" + "IntLiteralConstant": "0x5647432ca7b0-IntLiteralConstant" }, { - "id": "0x55f217e887b0-IntLiteralConstant", + "id": "0x5647432ca7b0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55f217f23918-ExecutionPart" + "id": "0x5647433658a8-ExecutionPart" }, { - "id": "0x55f217f23918-list" + "id": "0x5647433658a8-list" }, { - "id": "0x55f217f23890-Statement", - "statement": "0x55f217f238a0-EndProgramStmt", + "id": "0x564743365820-Statement", + "statement": "0x564743365830-EndProgramStmt", "source": "end program DECLARATION" }, { - "id": "0x55f217f238a0-EndProgramStmt", - "Name": "0x55f217f238a0-Name" + "id": "0x564743365830-EndProgramStmt", + "Name": "0x564743365830-Name" }, { - "id": "0x55f217f238a0-Name", + "id": "0x564743365830-Name", "source": "DECLARATION" } ], "comments": [ { - "text": "!integer i;", - "stmtId": "0x55f217f23890-Statement", + "text": "integer i;", + "stmtId": "0x564743365820-Statement", "trailing": false }, { - "text": "! i = 1", - "stmtId": "0x55f217f23890-Statement", + "text": " i = 1", + "stmtId": "0x564743365820-Statement", "trailing": false }, { - "text": "! a = 5", - "stmtId": "0x55f217f23890-Statement", + "text": " a = 5", + "stmtId": "0x564743365820-Statement", "trailing": false } ], diff --git a/FortranParser/resources-test/fortran/parser/do.json b/FortranParser/resources-test/fortran/parser/do.json index 5fe12f36..072c333b 100644 --- a/FortranParser/resources-test/fortran/parser/do.json +++ b/FortranParser/resources-test/fortran/parser/do.json @@ -1,671 +1,672 @@ { + "fileExtension": "f90", "nodes": [ { - "id": "0x55fc72d1ef00-Program", + "id": "0x562ea03d9f00-Program", "ProgramUnit": [ - "0x55fc72d58c70-ProgramUnit" + "0x562ea0413cc0-ProgramUnit" ] }, { - "id": "0x55fc72d58c70-ProgramUnit", + "id": "0x562ea0413cc0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x55fc72d4ab90-MainProgram" + "MainProgram": "0x562ea0405b40-MainProgram" }, { - "id": "0x55fc72d4ab90-MainProgram", - "Statement": "0x55fc72d4acd8-Statement", - "SpecificationPart": "0x55fc72d4ac30-SpecificationPart", - "ExecutionPart": "0x55fc72d4ac18-ExecutionPart", - "Statement": "0x55fc72d4ab90-Statement" + "id": "0x562ea0405b40-MainProgram", + "Statement": "0x562ea0405c88-Statement", + "SpecificationPart": "0x562ea0405be0-SpecificationPart", + "ExecutionPart": "0x562ea0405bc8-ExecutionPart", + "Statement": "0x562ea0405b40-Statement" }, { - "id": "0x55fc72d4acd8-Statement", - "statement": "0x55fc72d4ace8-ProgramStmt", + "id": "0x562ea0405c88-Statement", + "statement": "0x562ea0405c98-ProgramStmt", "source": "program SIMPLE_LOOP" }, { - "id": "0x55fc72d4ace8-ProgramStmt", - "Name": "0x55fc72d4ace8-Name" + "id": "0x562ea0405c98-ProgramStmt", + "Name": "0x562ea0405c98-Name" }, { - "id": "0x55fc72d4ace8-Name", + "id": "0x562ea0405c98-Name", "source": "SIMPLE_LOOP" }, { - "id": "0x55fc72d4ac30-SpecificationPart", - "ImplicitPart": "0x55fc72d4ac48-ImplicitPart", + "id": "0x562ea0405be0-SpecificationPart", + "ImplicitPart": "0x562ea0405bf8-ImplicitPart", "DeclarationConstruct": [ - "0x55fc72d2c110-DeclarationConstruct" + "0x562ea03e7110-DeclarationConstruct" ] }, { - "id": "0x55fc72d4ac48-ImplicitPart" + "id": "0x562ea0405bf8-ImplicitPart" }, { - "id": "0x55fc72d2c110-DeclarationConstruct", + "id": "0x562ea03e7110-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55fc72d2c110-SpecificationConstruct" + "SpecificationConstruct": "0x562ea03e7110-SpecificationConstruct" }, { - "id": "0x55fc72d2c110-SpecificationConstruct", + "id": "0x562ea03e7110-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55fc72d2c110-Statement" + "Statement": "0x562ea03e7110-Statement" }, { - "id": "0x55fc72d2c110-Statement", - "statement": "0x55fc72d58f10-TypeDeclarationStmt", + "id": "0x562ea03e7110-Statement", + "statement": "0x562ea0413fc0-TypeDeclarationStmt", "source": "integer :: i, dummy, a = 2" }, { - "id": "0x55fc72d58f10-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55fc72d58f40-DeclarationTypeSpec", + "id": "0x562ea0413fc0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x562ea0413ff0-DeclarationTypeSpec", "EntityDecl": [ - "0x55fc72d59270-EntityDecl", - "0x55fc72d59020-EntityDecl", - "0x55fc72d59180-EntityDecl" + "0x562ea0414320-EntityDecl", + "0x562ea04140d0-EntityDecl", + "0x562ea0414230-EntityDecl" ] }, { - "id": "0x55fc72d58f40-DeclarationTypeSpec", + "id": "0x562ea0413ff0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55fc72d58f40-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x562ea0413ff0-IntrinsicTypeSpec" }, { - "id": "0x55fc72d58f40-IntrinsicTypeSpec", + "id": "0x562ea0413ff0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55fc72d58f40-IntegerTypeSpec" + "IntegerTypeSpec": "0x562ea0413ff0-IntegerTypeSpec" }, { - "id": "0x55fc72d58f40-IntegerTypeSpec" + "id": "0x562ea0413ff0-IntegerTypeSpec" }, { - "id": "0x55fc72d59270-EntityDecl", - "Name": "0x55fc72d59328-Name" + "id": "0x562ea0414320-EntityDecl", + "Name": "0x562ea04143d8-Name" }, { - "id": "0x55fc72d59328-Name", + "id": "0x562ea04143d8-Name", "source": "i" }, { - "id": "0x55fc72d59020-EntityDecl", - "Name": "0x55fc72d590d8-Name" + "id": "0x562ea04140d0-EntityDecl", + "Name": "0x562ea0414188-Name" }, { - "id": "0x55fc72d590d8-Name", + "id": "0x562ea0414188-Name", "source": "dummy" }, { - "id": "0x55fc72d59180-EntityDecl", - "Name": "0x55fc72d59238-Name", - "Initialization": "0x55fc72d59180-Initialization" + "id": "0x562ea0414230-EntityDecl", + "Name": "0x562ea04142e8-Name", + "Initialization": "0x562ea0414230-Initialization" }, { - "id": "0x55fc72d59238-Name", + "id": "0x562ea04142e8-Name", "source": "a" }, { - "id": "0x55fc72d59180-Initialization", + "id": "0x562ea0414230-Initialization", "variantKey": "Expr", - "Expr": "0x55fc72cbe790-Expr" + "Expr": "0x562ea0379790-Expr" }, { - "id": "0x55fc72cbe790-Expr", + "id": "0x562ea0379790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55fc72cbe7b0-LiteralConstant" + "LiteralConstant": "0x562ea03797b0-LiteralConstant" }, { - "id": "0x55fc72cbe7b0-LiteralConstant", + "id": "0x562ea03797b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55fc72cbe7b0-IntLiteralConstant" + "IntLiteralConstant": "0x562ea03797b0-IntLiteralConstant" }, { - "id": "0x55fc72cbe7b0-IntLiteralConstant", + "id": "0x562ea03797b0-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x55fc72d4ac18-ExecutionPart", + "id": "0x562ea0405bc8-ExecutionPart", "ExecutionPartConstruct": [ - "0x55fc72d59ec0-ExecutionPartConstruct", - "0x55fc72d5a5c0-ExecutionPartConstruct", - "0x55fc72d5ac70-ExecutionPartConstruct" + "0x562ea0413e10-ExecutionPartConstruct", + "0x562ea0415620-ExecutionPartConstruct", + "0x562ea0415cd0-ExecutionPartConstruct" ] }, { - "id": "0x55fc72d4ac18-ExecutionPartConstruct" + "id": "0x562ea0405bc8-ExecutionPartConstruct" }, { - "id": "0x55fc72d59ec0-ExecutionPartConstruct", + "id": "0x562ea0413e10-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55fc72d59ec0-ExecutableConstruct" + "ExecutableConstruct": "0x562ea0413e10-ExecutableConstruct" }, { - "id": "0x55fc72d59ec0-ExecutableConstruct", + "id": "0x562ea0413e10-ExecutableConstruct", "variantKey": "OpenMPConstruct", - "OpenMPConstruct": "0x55fc72d5a400-OpenMPConstruct" + "OpenMPConstruct": "0x562ea0415460-OpenMPConstruct" }, { - "id": "0x55fc72d5a400-OpenMPConstruct", + "id": "0x562ea0415460-OpenMPConstruct", "variantKey": "OpenMPLoopConstruct", - "OpenMPLoopConstruct": "0x55fc72d5a400-OpenMPLoopConstruct" + "OpenMPLoopConstruct": "0x562ea0415460-OpenMPLoopConstruct" }, { - "id": "0x55fc72d5a400-OpenMPLoopConstruct", - "OmpBeginLoopDirective": "0x55fc72d5a4c0-OmpBeginLoopDirective", + "id": "0x562ea0415460-OpenMPLoopConstruct", + "OmpBeginLoopDirective": "0x562ea0415520-OmpBeginLoopDirective", "ExecutionPartConstruct": [ - "0x55fc72d5b280-ExecutionPartConstruct" + "0x562ea04163a0-ExecutionPartConstruct" ], - "OmpEndLoopDirective": "0x55fc72d5a410-OmpEndLoopDirective" + "OmpEndLoopDirective": "0x562ea0415470-OmpEndLoopDirective" }, { - "id": "0x55fc72d5a4c0-OmpBeginLoopDirective", - "OmpDirectiveName": "0x55fc72d5a538-OmpDirectiveName", - "OmpClauseList": "0x55fc72d5a4d8-OmpClauseList", - "Flags = {}": "0x55fc72d5a4d0-Flags = {}" + "id": "0x562ea0415520-OmpBeginLoopDirective", + "OmpDirectiveName": "0x562ea0415598-OmpDirectiveName", + "OmpClauseList": "0x562ea0415538-OmpClauseList", + "Flags = {}": "0x562ea0415530-Flags = {}" }, { - "id": "0x55fc72d5a538-OmpDirectiveName", + "id": "0x562ea0415598-OmpDirectiveName", "directive": "parallel do" }, { - "id": "0x55fc72d5a4d8-OmpClauseList" + "id": "0x562ea0415538-OmpClauseList" }, { - "id": "0x55fc72d5a4a8-ExecutionPartConstruct" + "id": "0x562ea0415508-ExecutionPartConstruct" }, { - "id": "0x55fc72d5b280-ExecutionPartConstruct", + "id": "0x562ea04163a0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55fc72d5b280-ExecutableConstruct" + "ExecutableConstruct": "0x562ea04163a0-ExecutableConstruct" }, { - "id": "0x55fc72d5b280-ExecutableConstruct", + "id": "0x562ea04163a0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55fc72cf4780-DoConstruct" + "DoConstruct": "0x562ea03af780-DoConstruct" }, { - "id": "0x55fc72cf4780-DoConstruct", - "Statement": "0x55fc72cf47d8-Statement", + "id": "0x562ea03af780-DoConstruct", + "Statement": "0x562ea03af7d8-Statement", "ExecutionPartConstruct": [ - "0x55fc72d537e0-ExecutionPartConstruct", - "0x55fc72d5a060-ExecutionPartConstruct" + "0x562ea0416980-ExecutionPartConstruct", + "0x562ea04150c0-ExecutionPartConstruct" ], - "Statement": "0x55fc72cf4780-Statement" + "Statement": "0x562ea03af780-Statement" }, { - "id": "0x55fc72cf47d8-Statement", - "statement": "0x55fc72cf47e8-NonLabelDoStmt", + "id": "0x562ea03af7d8-Statement", + "statement": "0x562ea03af7e8-NonLabelDoStmt", "source": "do i = 1, 5, a" }, { - "id": "0x55fc72cf47e8-NonLabelDoStmt", - "LoopControl": "0x55fc72cf47e8-LoopControl" + "id": "0x562ea03af7e8-NonLabelDoStmt", + "LoopControl": "0x562ea03af7e8-LoopControl" }, { - "id": "0x55fc72cf47e8-LoopControl", + "id": "0x562ea03af7e8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55fc72cf47e8-LoopBounds" + "LoopBounds": "0x562ea03af7e8-LoopBounds" }, { - "id": "0x55fc72cf47e8-LoopBounds", - "var": "0x55fc72cf47e8-Name", - "lower": "0x55fc72d594b0-Expr", - "upper": "0x55fc72d59dd0-Expr", - "step": "0x55fc72d59f70-Expr" + "id": "0x562ea03af7e8-LoopBounds", + "var": "0x562ea03af7e8-Name", + "lower": "0x562ea0414560-Expr", + "upper": "0x562ea0414ef0-Expr", + "step": "0x562ea0414fd0-Expr" }, { - "id": "0x55fc72cf47e8-Name", + "id": "0x562ea03af7e8-Name", "source": "i" }, { - "id": "0x55fc72d594b0-Expr", + "id": "0x562ea0414560-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55fc72d594d0-LiteralConstant" + "LiteralConstant": "0x562ea0414580-LiteralConstant" }, { - "id": "0x55fc72d594d0-LiteralConstant", + "id": "0x562ea0414580-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55fc72d594d0-IntLiteralConstant" + "IntLiteralConstant": "0x562ea0414580-IntLiteralConstant" }, { - "id": "0x55fc72d594d0-IntLiteralConstant", + "id": "0x562ea0414580-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55fc72d59dd0-Expr", + "id": "0x562ea0414ef0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55fc72d59df0-LiteralConstant" + "LiteralConstant": "0x562ea0414f10-LiteralConstant" }, { - "id": "0x55fc72d59df0-LiteralConstant", + "id": "0x562ea0414f10-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55fc72d59df0-IntLiteralConstant" + "IntLiteralConstant": "0x562ea0414f10-IntLiteralConstant" }, { - "id": "0x55fc72d59df0-IntLiteralConstant", + "id": "0x562ea0414f10-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x55fc72d59f70-Expr", + "id": "0x562ea0414fd0-Expr", "variantKey": "Designator", - "Designator": "0x55fc72d5b410-Designator" + "Designator": "0x562ea0410b20-Designator" }, { - "id": "0x55fc72d5b410-Designator", + "id": "0x562ea0410b20-Designator", "variantKey": "DataRef", - "DataRef": "0x55fc72d5b420-DataRef" + "DataRef": "0x562ea0410b30-DataRef" }, { - "id": "0x55fc72d5b420-DataRef", + "id": "0x562ea0410b30-DataRef", "variantKey": "Name", - "Name": "0x55fc72d5b420-Name" + "Name": "0x562ea0410b30-Name" }, { - "id": "0x55fc72d5b420-Name", + "id": "0x562ea0410b30-Name", "source": "a" }, { - "id": "0x55fc72cf47c0-ExecutionPartConstruct" + "id": "0x562ea03af7c0-ExecutionPartConstruct" }, { - "id": "0x55fc72d537e0-ExecutionPartConstruct", + "id": "0x562ea0416980-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55fc72d537e0-ExecutableConstruct" + "ExecutableConstruct": "0x562ea0416980-ExecutableConstruct" }, { - "id": "0x55fc72d537e0-ExecutableConstruct", + "id": "0x562ea0416980-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55fc72d537e0-Statement" + "Statement": "0x562ea0416980-Statement" }, { - "id": "0x55fc72d537e0-Statement", - "statement": "0x55fc72d537f0-ActionStmt", + "id": "0x562ea0416980-Statement", + "statement": "0x562ea0416990-ActionStmt", "source": "dummy = 3" }, { - "id": "0x55fc72d537f0-ActionStmt", + "id": "0x562ea0416990-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55fc72d5a220-AssignmentStmt" + "AssignmentStmt": "0x562ea0415280-AssignmentStmt" }, { - "id": "0x55fc72d5a220-AssignmentStmt", - "Variable": "0x55fc72d5a300-Variable", - "Expr": "0x55fc72d5a230-Expr" + "id": "0x562ea0415280-AssignmentStmt", + "Variable": "0x562ea0415360-Variable", + "Expr": "0x562ea0415290-Expr" }, { - "id": "0x55fc72d5a300-Variable", + "id": "0x562ea0415360-Variable", "variantKey": "Designator", - "Designator": "0x55fc72d5a0b0-Designator" + "Designator": "0x562ea0415110-Designator" }, { - "id": "0x55fc72d5a0b0-Designator", + "id": "0x562ea0415110-Designator", "variantKey": "DataRef", - "DataRef": "0x55fc72d5a0c0-DataRef" + "DataRef": "0x562ea0415120-DataRef" }, { - "id": "0x55fc72d5a0c0-DataRef", + "id": "0x562ea0415120-DataRef", "variantKey": "Name", - "Name": "0x55fc72d5a0c0-Name" + "Name": "0x562ea0415120-Name" }, { - "id": "0x55fc72d5a0c0-Name", + "id": "0x562ea0415120-Name", "source": "dummy" }, { - "id": "0x55fc72d5a230-Expr", + "id": "0x562ea0415290-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55fc72d5a250-LiteralConstant" + "LiteralConstant": "0x562ea04152b0-LiteralConstant" }, { - "id": "0x55fc72d5a250-LiteralConstant", + "id": "0x562ea04152b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55fc72d5a250-IntLiteralConstant" + "IntLiteralConstant": "0x562ea04152b0-IntLiteralConstant" }, { - "id": "0x55fc72d5a250-IntLiteralConstant", + "id": "0x562ea04152b0-IntLiteralConstant", "CharBlock": "3" }, { - "id": "0x55fc72d5a060-ExecutionPartConstruct", + "id": "0x562ea04150c0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55fc72d5a060-ExecutableConstruct" + "ExecutableConstruct": "0x562ea04150c0-ExecutableConstruct" }, { - "id": "0x55fc72d5a060-ExecutableConstruct", + "id": "0x562ea04150c0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55fc72d5a060-Statement" + "Statement": "0x562ea04150c0-Statement" }, { - "id": "0x55fc72d5a060-Statement", - "statement": "0x55fc72d5a070-ActionStmt", + "id": "0x562ea04150c0-Statement", + "statement": "0x562ea04150d0-ActionStmt", "source": "dummy = 4" }, { - "id": "0x55fc72d5a070-ActionStmt", + "id": "0x562ea04150d0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55fc72d5a110-AssignmentStmt" + "AssignmentStmt": "0x562ea0415170-AssignmentStmt" }, { - "id": "0x55fc72d5a110-AssignmentStmt", - "Variable": "0x55fc72d5a1f0-Variable", - "Expr": "0x55fc72d5a120-Expr" + "id": "0x562ea0415170-AssignmentStmt", + "Variable": "0x562ea0415250-Variable", + "Expr": "0x562ea0415180-Expr" }, { - "id": "0x55fc72d5a1f0-Variable", + "id": "0x562ea0415250-Variable", "variantKey": "Designator", - "Designator": "0x55fc72d5a330-Designator" + "Designator": "0x562ea0415390-Designator" }, { - "id": "0x55fc72d5a330-Designator", + "id": "0x562ea0415390-Designator", "variantKey": "DataRef", - "DataRef": "0x55fc72d5a340-DataRef" + "DataRef": "0x562ea04153a0-DataRef" }, { - "id": "0x55fc72d5a340-DataRef", + "id": "0x562ea04153a0-DataRef", "variantKey": "Name", - "Name": "0x55fc72d5a340-Name" + "Name": "0x562ea04153a0-Name" }, { - "id": "0x55fc72d5a340-Name", + "id": "0x562ea04153a0-Name", "source": "dummy" }, { - "id": "0x55fc72d5a120-Expr", + "id": "0x562ea0415180-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55fc72d5a140-LiteralConstant" + "LiteralConstant": "0x562ea04151a0-LiteralConstant" }, { - "id": "0x55fc72d5a140-LiteralConstant", + "id": "0x562ea04151a0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55fc72d5a140-IntLiteralConstant" + "IntLiteralConstant": "0x562ea04151a0-IntLiteralConstant" }, { - "id": "0x55fc72d5a140-IntLiteralConstant", + "id": "0x562ea04151a0-IntLiteralConstant", "CharBlock": "4" }, { - "id": "0x55fc72cf4780-Statement", - "statement": "0x55fc72cf4790-EndDoStmt", + "id": "0x562ea03af780-Statement", + "statement": "0x562ea03af790-EndDoStmt", "source": "end do" }, { - "id": "0x55fc72cf4790-EndDoStmt" + "id": "0x562ea03af790-EndDoStmt" }, { - "id": "0x55fc72d5a410-OmpEndLoopDirective", - "OmpDirectiveName": "0x55fc72d5a488-OmpDirectiveName", - "OmpClauseList": "0x55fc72d5a428-OmpClauseList", - "Flags = {}": "0x55fc72d5a420-Flags = {}" + "id": "0x562ea0415470-OmpEndLoopDirective", + "OmpDirectiveName": "0x562ea04154e8-OmpDirectiveName", + "OmpClauseList": "0x562ea0415488-OmpClauseList", + "Flags = {}": "0x562ea0415480-Flags = {}" }, { - "id": "0x55fc72d5a488-OmpDirectiveName", + "id": "0x562ea04154e8-OmpDirectiveName", "directive": "parallel do" }, { - "id": "0x55fc72d5a428-OmpClauseList" + "id": "0x562ea0415488-OmpClauseList" }, { - "id": "0x55fc72d5a5c0-ExecutionPartConstruct", + "id": "0x562ea0415620-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55fc72d5a5c0-ExecutableConstruct" + "ExecutableConstruct": "0x562ea0415620-ExecutableConstruct" }, { - "id": "0x55fc72d5a5c0-ExecutableConstruct", + "id": "0x562ea0415620-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55fc72d5aae0-DoConstruct" + "DoConstruct": "0x562ea0415b40-DoConstruct" }, { - "id": "0x55fc72d5aae0-DoConstruct", - "Statement": "0x55fc72d5ab38-Statement", + "id": "0x562ea0415b40-DoConstruct", + "Statement": "0x562ea0415b98-Statement", "ExecutionPartConstruct": [ - "0x55fc72d5aa90-ExecutionPartConstruct" + "0x562ea0415af0-ExecutionPartConstruct" ], - "Statement": "0x55fc72d5aae0-Statement" + "Statement": "0x562ea0415b40-Statement" }, { - "id": "0x55fc72d5ab38-Statement", - "statement": "0x55fc72d5ab48-NonLabelDoStmt", + "id": "0x562ea0415b98-Statement", + "statement": "0x562ea0415ba8-NonLabelDoStmt", "source": "do while(2 > 0)" }, { - "id": "0x55fc72d5ab48-NonLabelDoStmt", - "LoopControl": "0x55fc72d5ab48-LoopControl" + "id": "0x562ea0415ba8-NonLabelDoStmt", + "LoopControl": "0x562ea0415ba8-LoopControl" }, { - "id": "0x55fc72d5ab48-LoopControl", + "id": "0x562ea0415ba8-LoopControl", "variantKey": "Expr", - "Expr": "0x55fc72d5a7d0-Expr" + "Expr": "0x562ea0415830-Expr" }, { - "id": "0x55fc72d5a7d0-Expr", + "id": "0x562ea0415830-Expr", "variantKey": "GT", - "GT": "0x55fc72d5a7f0-GT" + "GT": "0x562ea0415850-GT" }, { - "id": "0x55fc72d5a7f0-GT", - "left": "0x55fc72d5a6f0-Expr", - "right": "0x55fc72d5a610-Expr", + "id": "0x562ea0415850-GT", + "left": "0x562ea0415750-Expr", + "right": "0x562ea0415670-Expr", "op": "GT" }, { - "id": "0x55fc72d5a6f0-Expr", + "id": "0x562ea0415750-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55fc72d5a710-LiteralConstant" + "LiteralConstant": "0x562ea0415770-LiteralConstant" }, { - "id": "0x55fc72d5a710-LiteralConstant", + "id": "0x562ea0415770-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55fc72d5a710-IntLiteralConstant" + "IntLiteralConstant": "0x562ea0415770-IntLiteralConstant" }, { - "id": "0x55fc72d5a710-IntLiteralConstant", + "id": "0x562ea0415770-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x55fc72d5a610-Expr", + "id": "0x562ea0415670-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55fc72d5a630-LiteralConstant" + "LiteralConstant": "0x562ea0415690-LiteralConstant" }, { - "id": "0x55fc72d5a630-LiteralConstant", + "id": "0x562ea0415690-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55fc72d5a630-IntLiteralConstant" + "IntLiteralConstant": "0x562ea0415690-IntLiteralConstant" }, { - "id": "0x55fc72d5a630-IntLiteralConstant", + "id": "0x562ea0415690-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55fc72d5ab20-ExecutionPartConstruct" + "id": "0x562ea0415b80-ExecutionPartConstruct" }, { - "id": "0x55fc72d5aa90-ExecutionPartConstruct", + "id": "0x562ea0415af0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55fc72d5aa90-ExecutableConstruct" + "ExecutableConstruct": "0x562ea0415af0-ExecutableConstruct" }, { - "id": "0x55fc72d5aa90-ExecutableConstruct", + "id": "0x562ea0415af0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55fc72d5aa90-Statement" + "Statement": "0x562ea0415af0-Statement" }, { - "id": "0x55fc72d5aa90-Statement", - "statement": "0x55fc72d5aaa0-ActionStmt", + "id": "0x562ea0415af0-Statement", + "statement": "0x562ea0415b00-ActionStmt", "source": "dummy = 2" }, { - "id": "0x55fc72d5aaa0-ActionStmt", + "id": "0x562ea0415b00-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55fc72d5a970-AssignmentStmt" + "AssignmentStmt": "0x562ea04159d0-AssignmentStmt" }, { - "id": "0x55fc72d5a970-AssignmentStmt", - "Variable": "0x55fc72d5aa50-Variable", - "Expr": "0x55fc72d5a980-Expr" + "id": "0x562ea04159d0-AssignmentStmt", + "Variable": "0x562ea0415ab0-Variable", + "Expr": "0x562ea04159e0-Expr" }, { - "id": "0x55fc72d5aa50-Variable", + "id": "0x562ea0415ab0-Variable", "variantKey": "Designator", - "Designator": "0x55fc72d59f10-Designator" + "Designator": "0x562ea040e730-Designator" }, { - "id": "0x55fc72d59f10-Designator", + "id": "0x562ea040e730-Designator", "variantKey": "DataRef", - "DataRef": "0x55fc72d59f20-DataRef" + "DataRef": "0x562ea040e740-DataRef" }, { - "id": "0x55fc72d59f20-DataRef", + "id": "0x562ea040e740-DataRef", "variantKey": "Name", - "Name": "0x55fc72d59f20-Name" + "Name": "0x562ea040e740-Name" }, { - "id": "0x55fc72d59f20-Name", + "id": "0x562ea040e740-Name", "source": "dummy" }, { - "id": "0x55fc72d5a980-Expr", + "id": "0x562ea04159e0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55fc72d5a9a0-LiteralConstant" + "LiteralConstant": "0x562ea0415a00-LiteralConstant" }, { - "id": "0x55fc72d5a9a0-LiteralConstant", + "id": "0x562ea0415a00-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55fc72d5a9a0-IntLiteralConstant" + "IntLiteralConstant": "0x562ea0415a00-IntLiteralConstant" }, { - "id": "0x55fc72d5a9a0-IntLiteralConstant", + "id": "0x562ea0415a00-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x55fc72d5aae0-Statement", - "statement": "0x55fc72d5aaf0-EndDoStmt", + "id": "0x562ea0415b40-Statement", + "statement": "0x562ea0415b50-EndDoStmt", "source": "end do" }, { - "id": "0x55fc72d5aaf0-EndDoStmt" + "id": "0x562ea0415b50-EndDoStmt" }, { - "id": "0x55fc72d5ac70-ExecutionPartConstruct", + "id": "0x562ea0415cd0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55fc72d5ac70-ExecutableConstruct" + "ExecutableConstruct": "0x562ea0415cd0-ExecutableConstruct" }, { - "id": "0x55fc72d5ac70-ExecutableConstruct", + "id": "0x562ea0415cd0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55fc72d5ff30-DoConstruct" + "DoConstruct": "0x562ea041aee0-DoConstruct" }, { - "id": "0x55fc72d5ff30-DoConstruct", - "Statement": "0x55fc72d5ff88-Statement", + "id": "0x562ea041aee0-DoConstruct", + "Statement": "0x562ea041af38-Statement", "ExecutionPartConstruct": [ - "0x55fc72d5fee0-ExecutionPartConstruct" + "0x562ea0415e40-ExecutionPartConstruct" ], - "Statement": "0x55fc72d5ff30-Statement" + "Statement": "0x562ea041aee0-Statement" }, { - "id": "0x55fc72d5ff88-Statement", - "statement": "0x55fc72d5ff98-NonLabelDoStmt", + "id": "0x562ea041af38-Statement", + "statement": "0x562ea041af48-NonLabelDoStmt", "source": "name: do" }, { - "id": "0x55fc72d5ff98-NonLabelDoStmt", - "Name": "0x55fc72d60018-Name" + "id": "0x562ea041af48-NonLabelDoStmt", + "Name": "0x562ea041afc8-Name" }, { - "id": "0x55fc72d60018-Name", + "id": "0x562ea041afc8-Name", "source": "name" }, { - "id": "0x55fc72d5ff70-ExecutionPartConstruct" + "id": "0x562ea041af20-ExecutionPartConstruct" }, { - "id": "0x55fc72d5fee0-ExecutionPartConstruct", + "id": "0x562ea0415e40-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55fc72d5fee0-ExecutableConstruct" + "ExecutableConstruct": "0x562ea0415e40-ExecutableConstruct" }, { - "id": "0x55fc72d5fee0-ExecutableConstruct", + "id": "0x562ea0415e40-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55fc72d5fee0-Statement" + "Statement": "0x562ea0415e40-Statement" }, { - "id": "0x55fc72d5fee0-Statement", - "statement": "0x55fc72d5fef0-ActionStmt", + "id": "0x562ea0415e40-Statement", + "statement": "0x562ea0415e50-ActionStmt", "source": "dummy = 4" }, { - "id": "0x55fc72d5fef0-ActionStmt", + "id": "0x562ea0415e50-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55fc72d5fdc0-AssignmentStmt" + "AssignmentStmt": "0x562ea0415d20-AssignmentStmt" }, { - "id": "0x55fc72d5fdc0-AssignmentStmt", - "Variable": "0x55fc72d5fea0-Variable", - "Expr": "0x55fc72d5fdd0-Expr" + "id": "0x562ea0415d20-AssignmentStmt", + "Variable": "0x562ea0415e00-Variable", + "Expr": "0x562ea0415d30-Expr" }, { - "id": "0x55fc72d5fea0-Variable", + "id": "0x562ea0415e00-Variable", "variantKey": "Designator", - "Designator": "0x55fc72d5ac00-Designator" + "Designator": "0x562ea0415c60-Designator" }, { - "id": "0x55fc72d5ac00-Designator", + "id": "0x562ea0415c60-Designator", "variantKey": "DataRef", - "DataRef": "0x55fc72d5ac10-DataRef" + "DataRef": "0x562ea0415c70-DataRef" }, { - "id": "0x55fc72d5ac10-DataRef", + "id": "0x562ea0415c70-DataRef", "variantKey": "Name", - "Name": "0x55fc72d5ac10-Name" + "Name": "0x562ea0415c70-Name" }, { - "id": "0x55fc72d5ac10-Name", + "id": "0x562ea0415c70-Name", "source": "dummy" }, { - "id": "0x55fc72d5fdd0-Expr", + "id": "0x562ea0415d30-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55fc72d5fdf0-LiteralConstant" + "LiteralConstant": "0x562ea0415d50-LiteralConstant" }, { - "id": "0x55fc72d5fdf0-LiteralConstant", + "id": "0x562ea0415d50-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55fc72d5fdf0-IntLiteralConstant" + "IntLiteralConstant": "0x562ea0415d50-IntLiteralConstant" }, { - "id": "0x55fc72d5fdf0-IntLiteralConstant", + "id": "0x562ea0415d50-IntLiteralConstant", "CharBlock": "4" }, { - "id": "0x55fc72d5ff30-Statement", - "statement": "0x55fc72d5ff40-EndDoStmt", + "id": "0x562ea041aee0-Statement", + "statement": "0x562ea041aef0-EndDoStmt", "source": "end do name" }, { - "id": "0x55fc72d5ff40-EndDoStmt", - "Name": "0x55fc72d5ff40-Name" + "id": "0x562ea041aef0-EndDoStmt", + "Name": "0x562ea041aef0-Name" }, { - "id": "0x55fc72d5ff40-Name", + "id": "0x562ea041aef0-Name", "source": "name" }, { - "id": "0x55fc72d4ab90-Statement", - "statement": "0x55fc72d4aba0-EndProgramStmt", + "id": "0x562ea0405b40-Statement", + "statement": "0x562ea0405b50-EndProgramStmt", "source": "end program SIMPLE_LOOP" }, { - "id": "0x55fc72d4aba0-EndProgramStmt", - "Name": "0x55fc72d4aba0-Name" + "id": "0x562ea0405b50-EndProgramStmt", + "Name": "0x562ea0405b50-Name" }, { - "id": "0x55fc72d4aba0-Name", + "id": "0x562ea0405b50-Name", "source": "SIMPLE_LOOP" } ], "comments": [ { - "text": "!use omp_lib", - "stmtId": "0x55fc72d2c110-Statement", + "text": "use omp_lib", + "stmtId": "0x562ea03e7110-Statement", "trailing": false } ], diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.json b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.json index d246710a..4e4535be 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.json +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.json @@ -2,3349 +2,3349 @@ "fileExtension": "f", "nodes": [ { - "id": "0x557b1f343f00-Program", + "id": "0x55e99eca5f00-Program", "ProgramUnit": [ - "0x557b1f3800a0-ProgramUnit", - "0x557b1f37ff10-ProgramUnit" + "0x55e99ece20a0-ProgramUnit", + "0x55e99ece1f10-ProgramUnit" ] }, { - "id": "0x557b1f3800a0-ProgramUnit", + "id": "0x55e99ece20a0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x557b1f380cd0-MainProgram" + "MainProgram": "0x55e99ece2cd0-MainProgram" }, { - "id": "0x557b1f380cd0-MainProgram", - "SpecificationPart": "0x557b1f380d70-SpecificationPart", - "ExecutionPart": "0x557b1f380d58-ExecutionPart", - "Statement": "0x557b1f380cd0-Statement" + "id": "0x55e99ece2cd0-MainProgram", + "SpecificationPart": "0x55e99ece2d70-SpecificationPart", + "ExecutionPart": "0x55e99ece2d58-ExecutionPart", + "Statement": "0x55e99ece2cd0-Statement" }, { - "id": "0x557b1f380d70-SpecificationPart", - "ImplicitPart": "0x557b1f380d88-ImplicitPart", + "id": "0x55e99ece2d70-SpecificationPart", + "ImplicitPart": "0x55e99ece2d88-ImplicitPart", "DeclarationConstruct": [ - "0x557b1f370010-DeclarationConstruct", - "0x557b1f371aa0-DeclarationConstruct" + "0x55e99ecd2010-DeclarationConstruct", + "0x55e99ecd3aa0-DeclarationConstruct" ] }, { - "id": "0x557b1f380d88-ImplicitPart" + "id": "0x55e99ece2d88-ImplicitPart" }, { - "id": "0x557b1f370010-DeclarationConstruct", + "id": "0x55e99ecd2010-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x557b1f370010-SpecificationConstruct" + "SpecificationConstruct": "0x55e99ecd2010-SpecificationConstruct" }, { - "id": "0x557b1f370010-SpecificationConstruct", + "id": "0x55e99ecd2010-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x557b1f370010-Statement" + "Statement": "0x55e99ecd2010-Statement" }, { - "id": "0x557b1f370010-Statement", - "statement": "0x557b1f380b40-TypeDeclarationStmt", + "id": "0x55e99ecd2010-Statement", + "statement": "0x55e99ece2b40-TypeDeclarationStmt", "source": "integera(1000),b(1000),c(1000),code" }, { - "id": "0x557b1f380b40-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x557b1f380b70-DeclarationTypeSpec", + "id": "0x55e99ece2b40-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e99ece2b70-DeclarationTypeSpec", "EntityDecl": [ - "0x557b1f36fe40-EntityDecl", - "0x557b1f370620-EntityDecl", - "0x557b1f3807b0-EntityDecl", - "0x557b1f36fd50-EntityDecl" + "0x55e99ecd1e40-EntityDecl", + "0x55e99ecd2620-EntityDecl", + "0x55e99ece27b0-EntityDecl", + "0x55e99ecd1d50-EntityDecl" ] }, { - "id": "0x557b1f380b70-DeclarationTypeSpec", + "id": "0x55e99ece2b70-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x557b1f380b70-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55e99ece2b70-IntrinsicTypeSpec" }, { - "id": "0x557b1f380b70-IntrinsicTypeSpec", + "id": "0x55e99ece2b70-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x557b1f380b70-IntegerTypeSpec" + "IntegerTypeSpec": "0x55e99ece2b70-IntegerTypeSpec" }, { - "id": "0x557b1f380b70-IntegerTypeSpec" + "id": "0x55e99ece2b70-IntegerTypeSpec" }, { - "id": "0x557b1f36fe40-EntityDecl", - "Name": "0x557b1f36fef8-Name", - "ArraySpec": "0x557b1f36fec0-ArraySpec" + "id": "0x55e99ecd1e40-EntityDecl", + "Name": "0x55e99ecd1ef8-Name", + "ArraySpec": "0x55e99ecd1ec0-ArraySpec" }, { - "id": "0x557b1f36fef8-Name", + "id": "0x55e99ecd1ef8-Name", "source": "a" }, { - "id": "0x557b1f36fec0-ArraySpec", + "id": "0x55e99ecd1ec0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x557b1f382ba0-ExplicitShapeSpec" + "0x55e99ece4ba0-ExplicitShapeSpec" ] }, { - "id": "0x557b1f382ba0-ExplicitShapeSpec", - "upper_bound": "0x557b1f382ba0-SpecificationExpr" + "id": "0x55e99ece4ba0-ExplicitShapeSpec", + "upper_bound": "0x55e99ece4ba0-SpecificationExpr" }, { - "id": "0x557b1f382ba0-SpecificationExpr", - "Expr": "0x557b1f2e3790-Expr" + "id": "0x55e99ece4ba0-SpecificationExpr", + "Expr": "0x55e99ec45790-Expr" }, { - "id": "0x557b1f2e3790-Expr", + "id": "0x55e99ec45790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f2e37b0-LiteralConstant" + "LiteralConstant": "0x55e99ec457b0-LiteralConstant" }, { - "id": "0x557b1f2e37b0-LiteralConstant", + "id": "0x55e99ec457b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f2e37b0-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ec457b0-IntLiteralConstant" }, { - "id": "0x557b1f2e37b0-IntLiteralConstant", + "id": "0x55e99ec457b0-IntLiteralConstant", "CharBlock": "1000" }, { - "id": "0x557b1f370620-EntityDecl", - "Name": "0x557b1f3706d8-Name", - "ArraySpec": "0x557b1f3706a0-ArraySpec" + "id": "0x55e99ecd2620-EntityDecl", + "Name": "0x55e99ecd26d8-Name", + "ArraySpec": "0x55e99ecd26a0-ArraySpec" }, { - "id": "0x557b1f3706d8-Name", + "id": "0x55e99ecd26d8-Name", "source": "b" }, { - "id": "0x557b1f3706a0-ArraySpec", + "id": "0x55e99ecd26a0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x557b1f382bd0-ExplicitShapeSpec" + "0x55e99ece4bd0-ExplicitShapeSpec" ] }, { - "id": "0x557b1f382bd0-ExplicitShapeSpec", - "upper_bound": "0x557b1f382bd0-SpecificationExpr" + "id": "0x55e99ece4bd0-ExplicitShapeSpec", + "upper_bound": "0x55e99ece4bd0-SpecificationExpr" }, { - "id": "0x557b1f382bd0-SpecificationExpr", - "Expr": "0x557b1f2f91d0-Expr" + "id": "0x55e99ece4bd0-SpecificationExpr", + "Expr": "0x55e99ec5b1d0-Expr" }, { - "id": "0x557b1f2f91d0-Expr", + "id": "0x55e99ec5b1d0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f2f91f0-LiteralConstant" + "LiteralConstant": "0x55e99ec5b1f0-LiteralConstant" }, { - "id": "0x557b1f2f91f0-LiteralConstant", + "id": "0x55e99ec5b1f0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f2f91f0-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ec5b1f0-IntLiteralConstant" }, { - "id": "0x557b1f2f91f0-IntLiteralConstant", + "id": "0x55e99ec5b1f0-IntLiteralConstant", "CharBlock": "1000" }, { - "id": "0x557b1f3807b0-EntityDecl", - "Name": "0x557b1f380868-Name", - "ArraySpec": "0x557b1f380830-ArraySpec" + "id": "0x55e99ece27b0-EntityDecl", + "Name": "0x55e99ece2868-Name", + "ArraySpec": "0x55e99ece2830-ArraySpec" }, { - "id": "0x557b1f380868-Name", + "id": "0x55e99ece2868-Name", "source": "c" }, { - "id": "0x557b1f380830-ArraySpec", + "id": "0x55e99ece2830-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x557b1f382c00-ExplicitShapeSpec" + "0x55e99ece4c00-ExplicitShapeSpec" ] }, { - "id": "0x557b1f382c00-ExplicitShapeSpec", - "upper_bound": "0x557b1f382c00-SpecificationExpr" + "id": "0x55e99ece4c00-ExplicitShapeSpec", + "upper_bound": "0x55e99ece4c00-SpecificationExpr" }, { - "id": "0x557b1f382c00-SpecificationExpr", - "Expr": "0x557b1f3806c0-Expr" + "id": "0x55e99ece4c00-SpecificationExpr", + "Expr": "0x55e99ece26c0-Expr" }, { - "id": "0x557b1f3806c0-Expr", + "id": "0x55e99ece26c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f3806e0-LiteralConstant" + "LiteralConstant": "0x55e99ece26e0-LiteralConstant" }, { - "id": "0x557b1f3806e0-LiteralConstant", + "id": "0x55e99ece26e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f3806e0-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ece26e0-IntLiteralConstant" }, { - "id": "0x557b1f3806e0-IntLiteralConstant", + "id": "0x55e99ece26e0-IntLiteralConstant", "CharBlock": "1000" }, { - "id": "0x557b1f36fd50-EntityDecl", - "Name": "0x557b1f36fe08-Name" + "id": "0x55e99ecd1d50-EntityDecl", + "Name": "0x55e99ecd1e08-Name" }, { - "id": "0x557b1f36fe08-Name", + "id": "0x55e99ecd1e08-Name", "source": "code" }, { - "id": "0x557b1f371aa0-DeclarationConstruct", + "id": "0x55e99ecd3aa0-DeclarationConstruct", "variantKey": "Statement", - "Statement": "0x557b1f371aa0-Statement" + "Statement": "0x55e99ecd3aa0-Statement" }, { - "id": "0x557b1f371aa0-Statement", - "statement": "0x557b1f382af0-DataStmt", + "id": "0x55e99ecd3aa0-Statement", + "statement": "0x55e99ece4af0-DataStmt", "source": "dataa/1000*0/,b/1000*0/,c/1000*0/" }, { - "id": "0x557b1f382af0-DataStmt", + "id": "0x55e99ece4af0-DataStmt", "DataStmtSet": [ - "0x557b1f380ac0-DataStmtSet", - "0x557b1f37a1e0-DataStmtSet", - "0x557b1f387b30-DataStmtSet" + "0x55e99ece2ac0-DataStmtSet", + "0x55e99ecdc1e0-DataStmtSet", + "0x55e99ece9b30-DataStmtSet" ] }, { - "id": "0x557b1f380ac0-DataStmtSet", + "id": "0x55e99ece2ac0-DataStmtSet", "DataStmtObject": [ - "0x557b1f3710b0-DataStmtObject" + "0x55e99ecd30b0-DataStmtObject" ], "DataStmtValue": [ - "0x557b1f370170-DataStmtValue" + "0x55e99ecd2170-DataStmtValue" ] }, { - "id": "0x557b1f3710b0-DataStmtObject", + "id": "0x55e99ecd30b0-DataStmtObject", "variantKey": "Variable", - "Variable": "0x557b1f382c40-Variable" + "Variable": "0x55e99ece4c40-Variable" }, { - "id": "0x557b1f382c40-Variable", + "id": "0x55e99ece4c40-Variable", "variantKey": "Designator", - "Designator": "0x557b1f3424d0-Designator" + "Designator": "0x55e99eca44d0-Designator" }, { - "id": "0x557b1f3424d0-Designator", + "id": "0x55e99eca44d0-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f3424e0-DataRef" + "DataRef": "0x55e99eca44e0-DataRef" }, { - "id": "0x557b1f3424e0-DataRef", + "id": "0x55e99eca44e0-DataRef", "variantKey": "Name", - "Name": "0x557b1f3424e0-Name" + "Name": "0x55e99eca44e0-Name" }, { - "id": "0x557b1f3424e0-Name", + "id": "0x55e99eca44e0-Name", "source": "a" }, { - "id": "0x557b1f370170-DataStmtValue", - "DataStmtRepeat": "0x557b1f370248-DataStmtRepeat", - "DataStmtConstant": "0x557b1f370178-DataStmtConstant" + "id": "0x55e99ecd2170-DataStmtValue", + "DataStmtRepeat": "0x55e99ecd2248-DataStmtRepeat", + "DataStmtConstant": "0x55e99ecd2178-DataStmtConstant" }, { - "id": "0x557b1f370248-DataStmtRepeat", + "id": "0x55e99ecd2248-DataStmtRepeat", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f370248-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecd2248-IntLiteralConstant" }, { - "id": "0x557b1f370248-IntLiteralConstant", + "id": "0x55e99ecd2248-IntLiteralConstant", "CharBlock": "1000" }, { - "id": "0x557b1f370178-DataStmtConstant", + "id": "0x55e99ecd2178-DataStmtConstant", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f370198-LiteralConstant" + "LiteralConstant": "0x55e99ecd2198-LiteralConstant" }, { - "id": "0x557b1f370198-LiteralConstant", + "id": "0x55e99ecd2198-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f370198-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecd2198-IntLiteralConstant" }, { - "id": "0x557b1f370198-IntLiteralConstant", + "id": "0x55e99ecd2198-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x557b1f37a1e0-DataStmtSet", + "id": "0x55e99ecdc1e0-DataStmtSet", "DataStmtObject": [ - "0x557b1f370840-DataStmtObject" + "0x55e99ecd2840-DataStmtObject" ], "DataStmtValue": [ - "0x557b1f370960-DataStmtValue" + "0x55e99ecd2960-DataStmtValue" ] }, { - "id": "0x557b1f370840-DataStmtObject", + "id": "0x55e99ecd2840-DataStmtObject", "variantKey": "Variable", - "Variable": "0x557b1f382d50-Variable" + "Variable": "0x55e99ece4d50-Variable" }, { - "id": "0x557b1f382d50-Variable", + "id": "0x55e99ece4d50-Variable", "variantKey": "Designator", - "Designator": "0x557b1f370300-Designator" + "Designator": "0x55e99ecd2300-Designator" }, { - "id": "0x557b1f370300-Designator", + "id": "0x55e99ecd2300-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f370310-DataRef" + "DataRef": "0x55e99ecd2310-DataRef" }, { - "id": "0x557b1f370310-DataRef", + "id": "0x55e99ecd2310-DataRef", "variantKey": "Name", - "Name": "0x557b1f370310-Name" + "Name": "0x55e99ecd2310-Name" }, { - "id": "0x557b1f370310-Name", + "id": "0x55e99ecd2310-Name", "source": "b" }, { - "id": "0x557b1f370960-DataStmtValue", - "DataStmtRepeat": "0x557b1f370a38-DataStmtRepeat", - "DataStmtConstant": "0x557b1f370968-DataStmtConstant" + "id": "0x55e99ecd2960-DataStmtValue", + "DataStmtRepeat": "0x55e99ecd2a38-DataStmtRepeat", + "DataStmtConstant": "0x55e99ecd2968-DataStmtConstant" }, { - "id": "0x557b1f370a38-DataStmtRepeat", + "id": "0x55e99ecd2a38-DataStmtRepeat", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f370a38-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecd2a38-IntLiteralConstant" }, { - "id": "0x557b1f370a38-IntLiteralConstant", + "id": "0x55e99ecd2a38-IntLiteralConstant", "CharBlock": "1000" }, { - "id": "0x557b1f370968-DataStmtConstant", + "id": "0x55e99ecd2968-DataStmtConstant", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f370988-LiteralConstant" + "LiteralConstant": "0x55e99ecd2988-LiteralConstant" }, { - "id": "0x557b1f370988-LiteralConstant", + "id": "0x55e99ecd2988-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f370988-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecd2988-IntLiteralConstant" }, { - "id": "0x557b1f370988-IntLiteralConstant", + "id": "0x55e99ecd2988-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x557b1f387b30-DataStmtSet", + "id": "0x55e99ece9b30-DataStmtSet", "DataStmtObject": [ - "0x557b1f3708d0-DataStmtObject" + "0x55e99ecd28d0-DataStmtObject" ], "DataStmtValue": [ - "0x557b1f3715a0-DataStmtValue" + "0x55e99ecd35a0-DataStmtValue" ] }, { - "id": "0x557b1f3708d0-DataStmtObject", + "id": "0x55e99ecd28d0-DataStmtObject", "variantKey": "Variable", - "Variable": "0x557b1f382d80-Variable" + "Variable": "0x55e99ece4d80-Variable" }, { - "id": "0x557b1f382d80-Variable", + "id": "0x55e99ece4d80-Variable", "variantKey": "Designator", - "Designator": "0x557b1f370d10-Designator" + "Designator": "0x55e99ecd2d10-Designator" }, { - "id": "0x557b1f370d10-Designator", + "id": "0x55e99ecd2d10-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f370d20-DataRef" + "DataRef": "0x55e99ecd2d20-DataRef" }, { - "id": "0x557b1f370d20-DataRef", + "id": "0x55e99ecd2d20-DataRef", "variantKey": "Name", - "Name": "0x557b1f370d20-Name" + "Name": "0x55e99ecd2d20-Name" }, { - "id": "0x557b1f370d20-Name", + "id": "0x55e99ecd2d20-Name", "source": "c" }, { - "id": "0x557b1f3715a0-DataStmtValue", - "DataStmtRepeat": "0x557b1f371678-DataStmtRepeat", - "DataStmtConstant": "0x557b1f3715a8-DataStmtConstant" + "id": "0x55e99ecd35a0-DataStmtValue", + "DataStmtRepeat": "0x55e99ecd3678-DataStmtRepeat", + "DataStmtConstant": "0x55e99ecd35a8-DataStmtConstant" }, { - "id": "0x557b1f371678-DataStmtRepeat", + "id": "0x55e99ecd3678-DataStmtRepeat", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f371678-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecd3678-IntLiteralConstant" }, { - "id": "0x557b1f371678-IntLiteralConstant", + "id": "0x55e99ecd3678-IntLiteralConstant", "CharBlock": "1000" }, { - "id": "0x557b1f3715a8-DataStmtConstant", + "id": "0x55e99ecd35a8-DataStmtConstant", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f3715c8-LiteralConstant" + "LiteralConstant": "0x55e99ecd35c8-LiteralConstant" }, { - "id": "0x557b1f3715c8-LiteralConstant", + "id": "0x55e99ecd35c8-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f3715c8-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecd35c8-IntLiteralConstant" }, { - "id": "0x557b1f3715c8-IntLiteralConstant", + "id": "0x55e99ecd35c8-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x557b1f380d58-ExecutionPart", + "id": "0x55e99ece2d58-ExecutionPart", "ExecutionPartConstruct": [ - "0x557b1f370df0-ExecutionPartConstruct", - "0x557b1f3734a0-ExecutionPartConstruct", - "0x557b1f372150-ExecutionPartConstruct", - "0x557b1f3729d0-ExecutionPartConstruct" + "0x55e99ecd2df0-ExecutionPartConstruct", + "0x55e99ecd54a0-ExecutionPartConstruct", + "0x55e99ecd4150-ExecutionPartConstruct", + "0x55e99ecd49d0-ExecutionPartConstruct" ] }, { - "id": "0x557b1f380d58-ExecutionPartConstruct" + "id": "0x55e99ece2d58-ExecutionPartConstruct" }, { - "id": "0x557b1f370df0-ExecutionPartConstruct", + "id": "0x55e99ecd2df0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f370df0-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecd2df0-ExecutableConstruct" }, { - "id": "0x557b1f370df0-ExecutableConstruct", + "id": "0x55e99ecd2df0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x557b1f370df0-Statement" + "Statement": "0x55e99ecd2df0-Statement" }, { - "id": "0x557b1f370df0-Statement", - "statement": "0x557b1f370e00-ActionStmt", + "id": "0x55e99ecd2df0-Statement", + "statement": "0x55e99ecd2e00-ActionStmt", "source": "code=0" }, { - "id": "0x557b1f370e00-ActionStmt", + "id": "0x55e99ecd2e00-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x557b1f351cf0-AssignmentStmt" + "AssignmentStmt": "0x55e99ecb3cf0-AssignmentStmt" }, { - "id": "0x557b1f351cf0-AssignmentStmt", - "Variable": "0x557b1f351dd0-Variable", - "Expr": "0x557b1f351d00-Expr" + "id": "0x55e99ecb3cf0-AssignmentStmt", + "Variable": "0x55e99ecb3dd0-Variable", + "Expr": "0x55e99ecb3d00-Expr" }, { - "id": "0x557b1f351dd0-Variable", + "id": "0x55e99ecb3dd0-Variable", "variantKey": "Designator", - "Designator": "0x557b1f351100-Designator" + "Designator": "0x55e99ecb3100-Designator" }, { - "id": "0x557b1f351100-Designator", + "id": "0x55e99ecb3100-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f351110-DataRef" + "DataRef": "0x55e99ecb3110-DataRef" }, { - "id": "0x557b1f351110-DataRef", + "id": "0x55e99ecb3110-DataRef", "variantKey": "Name", - "Name": "0x557b1f351110-Name" + "Name": "0x55e99ecb3110-Name" }, { - "id": "0x557b1f351110-Name", + "id": "0x55e99ecb3110-Name", "source": "code" }, { - "id": "0x557b1f351d00-Expr", + "id": "0x55e99ecb3d00-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f351d20-LiteralConstant" + "LiteralConstant": "0x55e99ecb3d20-LiteralConstant" }, { - "id": "0x557b1f351d20-LiteralConstant", + "id": "0x55e99ecb3d20-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f351d20-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecb3d20-IntLiteralConstant" }, { - "id": "0x557b1f351d20-IntLiteralConstant", + "id": "0x55e99ecb3d20-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x557b1f3734a0-ExecutionPartConstruct", + "id": "0x55e99ecd54a0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f3734a0-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecd54a0-ExecutableConstruct" }, { - "id": "0x557b1f3734a0-ExecutableConstruct", + "id": "0x55e99ecd54a0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x557b1f3734a0-Statement" + "Statement": "0x55e99ecd54a0-Statement" }, { - "id": "0x557b1f3734a0-Statement", - "statement": "0x557b1f3734b0-ActionStmt", + "id": "0x55e99ecd54a0-Statement", + "statement": "0x55e99ecd54b0-ActionStmt", "source": "callsub1(a,b,c,1000,code)" }, { - "id": "0x557b1f3734b0-ActionStmt", + "id": "0x55e99ecd54b0-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x557b1f37ae70-CallStmt" + "CallStmt": "0x55e99ecdce70-CallStmt" }, { - "id": "0x557b1f37ae70-CallStmt", - "call": "0x557b1f37ae70-Call" + "id": "0x55e99ecdce70-CallStmt", + "call": "0x55e99ecdce70-Call" }, { - "id": "0x557b1f37ae70-Call", - "ProcedureDesignator": "0x557b1f37ae88-ProcedureDesignator", + "id": "0x55e99ecdce70-Call", + "ProcedureDesignator": "0x55e99ecdce88-ProcedureDesignator", "ActualArgSpec": [ - "0x557b1f372f50-ActualArgSpec", - "0x557b1f372e40-ActualArgSpec", - "0x557b1f372d30-ActualArgSpec", - "0x557b1f372c20-ActualArgSpec", - "0x557b1f372b10-ActualArgSpec" + "0x55e99ecd4f50-ActualArgSpec", + "0x55e99ecd4e40-ActualArgSpec", + "0x55e99ecd4d30-ActualArgSpec", + "0x55e99ecd4c20-ActualArgSpec", + "0x55e99ecd4b10-ActualArgSpec" ] }, { - "id": "0x557b1f37ae88-ProcedureDesignator", + "id": "0x55e99ecdce88-ProcedureDesignator", "variantKey": "Name", - "Name": "0x557b1f37ae88-Name" + "Name": "0x55e99ecdce88-Name" }, { - "id": "0x557b1f37ae88-Name", + "id": "0x55e99ecdce88-Name", "source": "sub1" }, { - "id": "0x557b1f372f50-ActualArgSpec", - "ActualArg": "0x557b1f372f50-ActualArg" + "id": "0x55e99ecd4f50-ActualArgSpec", + "ActualArg": "0x55e99ecd4f50-ActualArg" }, { - "id": "0x557b1f372f50-ActualArg", + "id": "0x55e99ecd4f50-ActualArg", "variantKey": "Expr", - "Expr": "0x557b1f3728e0-Expr" + "Expr": "0x55e99ecd48e0-Expr" }, { - "id": "0x557b1f3728e0-Expr", + "id": "0x55e99ecd48e0-Expr", "variantKey": "Designator", - "Designator": "0x557b1f3718f0-Designator" + "Designator": "0x55e99ecd38f0-Designator" }, { - "id": "0x557b1f3718f0-Designator", + "id": "0x55e99ecd38f0-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f371900-DataRef" + "DataRef": "0x55e99ecd3900-DataRef" }, { - "id": "0x557b1f371900-DataRef", + "id": "0x55e99ecd3900-DataRef", "variantKey": "Name", - "Name": "0x557b1f371900-Name" + "Name": "0x55e99ecd3900-Name" }, { - "id": "0x557b1f371900-Name", + "id": "0x55e99ecd3900-Name", "source": "a" }, { - "id": "0x557b1f372e40-ActualArgSpec", - "ActualArg": "0x557b1f372e40-ActualArg" + "id": "0x55e99ecd4e40-ActualArgSpec", + "ActualArg": "0x55e99ecd4e40-ActualArg" }, { - "id": "0x557b1f372e40-ActualArg", + "id": "0x55e99ecd4e40-ActualArg", "variantKey": "Expr", - "Expr": "0x557b1f371c90-Expr" + "Expr": "0x55e99ecd3c90-Expr" }, { - "id": "0x557b1f371c90-Expr", + "id": "0x55e99ecd3c90-Expr", "variantKey": "Designator", - "Designator": "0x557b1f350d90-Designator" + "Designator": "0x55e99ecb2d90-Designator" }, { - "id": "0x557b1f350d90-Designator", + "id": "0x55e99ecb2d90-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f350da0-DataRef" + "DataRef": "0x55e99ecb2da0-DataRef" }, { - "id": "0x557b1f350da0-DataRef", + "id": "0x55e99ecb2da0-DataRef", "variantKey": "Name", - "Name": "0x557b1f350da0-Name" + "Name": "0x55e99ecb2da0-Name" }, { - "id": "0x557b1f350da0-Name", + "id": "0x55e99ecb2da0-Name", "source": "b" }, { - "id": "0x557b1f372d30-ActualArgSpec", - "ActualArg": "0x557b1f372d30-ActualArg" + "id": "0x55e99ecd4d30-ActualArgSpec", + "ActualArg": "0x55e99ecd4d30-ActualArg" }, { - "id": "0x557b1f372d30-ActualArg", + "id": "0x55e99ecd4d30-ActualArg", "variantKey": "Expr", - "Expr": "0x557b1f372330-Expr" + "Expr": "0x55e99ecd4330-Expr" }, { - "id": "0x557b1f372330-Expr", + "id": "0x55e99ecd4330-Expr", "variantKey": "Designator", - "Designator": "0x557b1f370b60-Designator" + "Designator": "0x55e99ecd2b60-Designator" }, { - "id": "0x557b1f370b60-Designator", + "id": "0x55e99ecd2b60-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f370b70-DataRef" + "DataRef": "0x55e99ecd2b70-DataRef" }, { - "id": "0x557b1f370b70-DataRef", + "id": "0x55e99ecd2b70-DataRef", "variantKey": "Name", - "Name": "0x557b1f370b70-Name" + "Name": "0x55e99ecd2b70-Name" }, { - "id": "0x557b1f370b70-Name", + "id": "0x55e99ecd2b70-Name", "source": "c" }, { - "id": "0x557b1f372c20-ActualArgSpec", - "ActualArg": "0x557b1f372c20-ActualArg" + "id": "0x55e99ecd4c20-ActualArgSpec", + "ActualArg": "0x55e99ecd4c20-ActualArg" }, { - "id": "0x557b1f372c20-ActualArg", + "id": "0x55e99ecd4c20-ActualArg", "variantKey": "Expr", - "Expr": "0x557b1f371130-Expr" + "Expr": "0x55e99ecd3130-Expr" }, { - "id": "0x557b1f371130-Expr", + "id": "0x55e99ecd3130-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f371150-LiteralConstant" + "LiteralConstant": "0x55e99ecd3150-LiteralConstant" }, { - "id": "0x557b1f371150-LiteralConstant", + "id": "0x55e99ecd3150-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f371150-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecd3150-IntLiteralConstant" }, { - "id": "0x557b1f371150-IntLiteralConstant", + "id": "0x55e99ecd3150-IntLiteralConstant", "CharBlock": "1000" }, { - "id": "0x557b1f372b10-ActualArgSpec", - "ActualArg": "0x557b1f372b10-ActualArg" + "id": "0x55e99ecd4b10-ActualArgSpec", + "ActualArg": "0x55e99ecd4b10-ActualArg" }, { - "id": "0x557b1f372b10-ActualArg", + "id": "0x55e99ecd4b10-ActualArg", "variantKey": "Expr", - "Expr": "0x557b1f3726a0-Expr" + "Expr": "0x55e99ecd46a0-Expr" }, { - "id": "0x557b1f3726a0-Expr", + "id": "0x55e99ecd46a0-Expr", "variantKey": "Designator", - "Designator": "0x557b1f3732f0-Designator" + "Designator": "0x55e99ecd52f0-Designator" }, { - "id": "0x557b1f3732f0-Designator", + "id": "0x55e99ecd52f0-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f373300-DataRef" + "DataRef": "0x55e99ecd5300-DataRef" }, { - "id": "0x557b1f373300-DataRef", + "id": "0x55e99ecd5300-DataRef", "variantKey": "Name", - "Name": "0x557b1f373300-Name" + "Name": "0x55e99ecd5300-Name" }, { - "id": "0x557b1f373300-Name", + "id": "0x55e99ecd5300-Name", "source": "code" }, { - "id": "0x557b1f372150-ExecutionPartConstruct", + "id": "0x55e99ecd4150-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f372150-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecd4150-ExecutableConstruct" }, { - "id": "0x557b1f372150-ExecutableConstruct", + "id": "0x55e99ecd4150-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x557b1f372150-Statement" + "Statement": "0x55e99ecd4150-Statement" }, { - "id": "0x557b1f372150-Statement", - "statement": "0x557b1f372160-ActionStmt", + "id": "0x55e99ecd4150-Statement", + "statement": "0x55e99ecd4160-ActionStmt", "source": "if(code.eq.0)write(6,*)'OK'" }, { - "id": "0x557b1f372160-ActionStmt", + "id": "0x55e99ecd4160-ActionStmt", "variantKey": "IfStmt", - "IfStmt": "0x557b1f382dd0-IfStmt" + "IfStmt": "0x55e99ece4dd0-IfStmt" }, { - "id": "0x557b1f382dd0-IfStmt", - "Expr": "0x557b1f3735d0-Expr", - "UnlabeledStatement": "0x557b1f382dd0-UnlabeledStatement" + "id": "0x55e99ece4dd0-IfStmt", + "Expr": "0x55e99ecd55d0-Expr", + "UnlabeledStatement": "0x55e99ece4dd0-UnlabeledStatement" }, { - "id": "0x557b1f3735d0-Expr", + "id": "0x55e99ecd55d0-Expr", "variantKey": "EQ", - "EQ": "0x557b1f3735f0-EQ" + "EQ": "0x55e99ecd55f0-EQ" }, { - "id": "0x557b1f3735f0-EQ", - "left": "0x557b1f3734f0-Expr", - "right": "0x557b1f3736b0-Expr", + "id": "0x55e99ecd55f0-EQ", + "left": "0x55e99ecd54f0-Expr", + "right": "0x55e99ecd56b0-Expr", "op": "EQ" }, { - "id": "0x557b1f3734f0-Expr", + "id": "0x55e99ecd54f0-Expr", "variantKey": "Designator", - "Designator": "0x557b1f372410-Designator" + "Designator": "0x55e99ecd4410-Designator" }, { - "id": "0x557b1f372410-Designator", + "id": "0x55e99ecd4410-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f372420-DataRef" + "DataRef": "0x55e99ecd4420-DataRef" }, { - "id": "0x557b1f372420-DataRef", + "id": "0x55e99ecd4420-DataRef", "variantKey": "Name", - "Name": "0x557b1f372420-Name" + "Name": "0x55e99ecd4420-Name" }, { - "id": "0x557b1f372420-Name", + "id": "0x55e99ecd4420-Name", "source": "code" }, { - "id": "0x557b1f3736b0-Expr", + "id": "0x55e99ecd56b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f3736d0-LiteralConstant" + "LiteralConstant": "0x55e99ecd56d0-LiteralConstant" }, { - "id": "0x557b1f3736d0-LiteralConstant", + "id": "0x55e99ecd56d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f3736d0-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecd56d0-IntLiteralConstant" }, { - "id": "0x557b1f3736d0-IntLiteralConstant", + "id": "0x55e99ecd56d0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x557b1f382dd0-UnlabeledStatement", - "statement": "0x557b1f382de0-ActionStmt", + "id": "0x55e99ece4dd0-UnlabeledStatement", + "statement": "0x55e99ece4de0-ActionStmt", "source": "write(6,*)'OK'" }, { - "id": "0x557b1f382de0-ActionStmt", + "id": "0x55e99ece4de0-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x557b1f374cd0-WriteStmt" + "WriteStmt": "0x55e99ecd6cd0-WriteStmt" }, { - "id": "0x557b1f374cd0-WriteStmt", - "iounit": "0x557b1f374cd0-IoUnit", - "format": "0x557b1f374d00-Format", + "id": "0x55e99ecd6cd0-WriteStmt", + "iounit": "0x55e99ecd6cd0-IoUnit", + "format": "0x55e99ecd6d00-Format", "controls": [], "items": [ - "0x557b1f374b80-OutputItem" + "0x55e99ecd6b80-OutputItem" ] }, { - "id": "0x557b1f374cd0-IoUnit", + "id": "0x55e99ecd6cd0-IoUnit", "variantKey": "Expr", - "Expr": "0x557b1f3738a0-Expr" + "Expr": "0x55e99ecd58a0-Expr" }, { - "id": "0x557b1f3738a0-Expr", + "id": "0x55e99ecd58a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f3738c0-LiteralConstant" + "LiteralConstant": "0x55e99ecd58c0-LiteralConstant" }, { - "id": "0x557b1f3738c0-LiteralConstant", + "id": "0x55e99ecd58c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f3738c0-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecd58c0-IntLiteralConstant" }, { - "id": "0x557b1f3738c0-IntLiteralConstant", + "id": "0x55e99ecd58c0-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x557b1f374d00-Format", + "id": "0x55e99ecd6d00-Format", "variantKey": "Star", - "Star": "0x557b1f374d00-Star" + "Star": "0x55e99ecd6d00-Star" }, { - "id": "0x557b1f374d00-Star" + "id": "0x55e99ecd6d00-Star" }, { - "id": "0x557b1f374b80-OutputItem", + "id": "0x55e99ecd6b80-OutputItem", "variantKey": "Expr", - "Expr": "0x557b1f374b80-Expr" + "Expr": "0x55e99ecd6b80-Expr" }, { - "id": "0x557b1f374b80-Expr", + "id": "0x55e99ecd6b80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f374ba0-LiteralConstant" + "LiteralConstant": "0x55e99ecd6ba0-LiteralConstant" }, { - "id": "0x557b1f374ba0-LiteralConstant", + "id": "0x55e99ecd6ba0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x557b1f374ba0-CharLiteralConstant" + "CharLiteralConstant": "0x55e99ecd6ba0-CharLiteralConstant" }, { - "id": "0x557b1f374ba0-CharLiteralConstant", + "id": "0x55e99ecd6ba0-CharLiteralConstant", "string": "OK" }, { - "id": "0x557b1f3729d0-ExecutionPartConstruct", + "id": "0x55e99ecd49d0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f3729d0-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecd49d0-ExecutableConstruct" }, { - "id": "0x557b1f3729d0-ExecutableConstruct", + "id": "0x55e99ecd49d0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x557b1f3729d0-Statement" + "Statement": "0x55e99ecd49d0-Statement" }, { - "id": "0x557b1f3729d0-Statement", - "statement": "0x557b1f3729e0-ActionStmt", + "id": "0x55e99ecd49d0-Statement", + "statement": "0x55e99ecd49e0-ActionStmt", "source": "stop" }, { - "id": "0x557b1f3729e0-ActionStmt", + "id": "0x55e99ecd49e0-ActionStmt", "variantKey": "StopStmt", - "StopStmt": "0x557b1f374f00-StopStmt" + "StopStmt": "0x55e99ecd6f00-StopStmt" }, { - "id": "0x557b1f374f00-StopStmt", - "kind": "0x557b1f374fe8-Kind = Stop" + "id": "0x55e99ecd6f00-StopStmt", + "kind": "0x55e99ecd6fe8-Kind = Stop" }, { - "id": "0x557b1f374fe8-Kind = Stop", + "id": "0x55e99ecd6fe8-Kind = Stop", "disambiguation": "Fortran::parser::StopStmt::Kind", "value": "Stop" }, { - "id": "0x557b1f380cd0-Statement", - "statement": "0x557b1f380ce0-EndProgramStmt", + "id": "0x55e99ece2cd0-Statement", + "statement": "0x55e99ece2ce0-EndProgramStmt", "source": "end" }, { - "id": "0x557b1f380ce0-EndProgramStmt" + "id": "0x55e99ece2ce0-EndProgramStmt" }, { - "id": "0x557b1f37ff10-ProgramUnit", + "id": "0x55e99ece1f10-ProgramUnit", "variantKey": "SubroutineSubprogram", - "SubroutineSubprogram": "0x557b1f38bdf0-SubroutineSubprogram" + "SubroutineSubprogram": "0x55e99eceddf0-SubroutineSubprogram" }, { - "id": "0x557b1f38bdf0-SubroutineSubprogram", - "Statement": "0x557b1f38bf38-Statement", - "SpecificationPart": "0x557b1f38be90-SpecificationPart", - "ExecutionPart": "0x557b1f38be78-ExecutionPart", - "Statement": "0x557b1f38bdf0-Statement" + "id": "0x55e99eceddf0-SubroutineSubprogram", + "Statement": "0x55e99ecedf38-Statement", + "SpecificationPart": "0x55e99ecede90-SpecificationPart", + "ExecutionPart": "0x55e99ecede78-ExecutionPart", + "Statement": "0x55e99eceddf0-Statement" }, { - "id": "0x557b1f38bf38-Statement", - "statement": "0x557b1f38bf48-SubroutineStmt", + "id": "0x55e99ecedf38-Statement", + "statement": "0x55e99ecedf48-SubroutineStmt", "source": "subroutinesub1(a,b,c,n,code)" }, { - "id": "0x557b1f38bf48-SubroutineStmt", - "Name": "0x557b1f38bf80-Name", + "id": "0x55e99ecedf48-SubroutineStmt", + "Name": "0x55e99ecedf80-Name", "DummyArg": [ - "0x557b1f382c80-DummyArg", - "0x557b1f380310-DummyArg", - "0x557b1f381f90-DummyArg", - "0x557b1f382050-DummyArg", - "0x557b1f382450-DummyArg" + "0x55e99ece4c80-DummyArg", + "0x55e99ece2310-DummyArg", + "0x55e99ece3f90-DummyArg", + "0x55e99ece4050-DummyArg", + "0x55e99ece4450-DummyArg" ] }, { - "id": "0x557b1f38bf80-Name", + "id": "0x55e99ecedf80-Name", "source": "sub1" }, { - "id": "0x557b1f382c80-DummyArg", + "id": "0x55e99ece4c80-DummyArg", "variantKey": "Name", - "Name": "0x557b1f382c80-Name" + "Name": "0x55e99ece4c80-Name" }, { - "id": "0x557b1f382c80-Name", + "id": "0x55e99ece4c80-Name", "source": "a" }, { - "id": "0x557b1f380310-DummyArg", + "id": "0x55e99ece2310-DummyArg", "variantKey": "Name", - "Name": "0x557b1f380310-Name" + "Name": "0x55e99ece2310-Name" }, { - "id": "0x557b1f380310-Name", + "id": "0x55e99ece2310-Name", "source": "b" }, { - "id": "0x557b1f381f90-DummyArg", + "id": "0x55e99ece3f90-DummyArg", "variantKey": "Name", - "Name": "0x557b1f381f90-Name" + "Name": "0x55e99ece3f90-Name" }, { - "id": "0x557b1f381f90-Name", + "id": "0x55e99ece3f90-Name", "source": "c" }, { - "id": "0x557b1f382050-DummyArg", + "id": "0x55e99ece4050-DummyArg", "variantKey": "Name", - "Name": "0x557b1f382050-Name" + "Name": "0x55e99ece4050-Name" }, { - "id": "0x557b1f382050-Name", + "id": "0x55e99ece4050-Name", "source": "n" }, { - "id": "0x557b1f382450-DummyArg", + "id": "0x55e99ece4450-DummyArg", "variantKey": "Name", - "Name": "0x557b1f382450-Name" + "Name": "0x55e99ece4450-Name" }, { - "id": "0x557b1f382450-Name", + "id": "0x55e99ece4450-Name", "source": "code" }, { - "id": "0x557b1f38be90-SpecificationPart", - "ImplicitPart": "0x557b1f38bea8-ImplicitPart", + "id": "0x55e99ecede90-SpecificationPart", + "ImplicitPart": "0x55e99ecedea8-ImplicitPart", "DeclarationConstruct": [ - "0x557b1f3778a0-DeclarationConstruct" + "0x55e99ecd98a0-DeclarationConstruct" ] }, { - "id": "0x557b1f38bea8-ImplicitPart" + "id": "0x55e99ecedea8-ImplicitPart" }, { - "id": "0x557b1f3778a0-DeclarationConstruct", + "id": "0x55e99ecd98a0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x557b1f3778a0-SpecificationConstruct" + "SpecificationConstruct": "0x55e99ecd98a0-SpecificationConstruct" }, { - "id": "0x557b1f3778a0-SpecificationConstruct", + "id": "0x55e99ecd98a0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x557b1f3778a0-Statement" + "Statement": "0x55e99ecd98a0-Statement" }, { - "id": "0x557b1f3778a0-Statement", - "statement": "0x557b1f375240-TypeDeclarationStmt", + "id": "0x55e99ecd98a0-Statement", + "statement": "0x55e99ecd7240-TypeDeclarationStmt", "source": "integera(n),b(n),c(n),code" }, { - "id": "0x557b1f375240-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x557b1f375270-DeclarationTypeSpec", + "id": "0x55e99ecd7240-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e99ecd7270-DeclarationTypeSpec", "EntityDecl": [ - "0x557b1f3777b0-EntityDecl", - "0x557b1f372790-EntityDecl", - "0x557b1f3753e0-EntityDecl", - "0x557b1f3754d0-EntityDecl" + "0x55e99ecd97b0-EntityDecl", + "0x55e99ecd4790-EntityDecl", + "0x55e99ecd73e0-EntityDecl", + "0x55e99ecd74d0-EntityDecl" ] }, { - "id": "0x557b1f375270-DeclarationTypeSpec", + "id": "0x55e99ecd7270-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x557b1f375270-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55e99ecd7270-IntrinsicTypeSpec" }, { - "id": "0x557b1f375270-IntrinsicTypeSpec", + "id": "0x55e99ecd7270-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x557b1f375270-IntegerTypeSpec" + "IntegerTypeSpec": "0x55e99ecd7270-IntegerTypeSpec" }, { - "id": "0x557b1f375270-IntegerTypeSpec" + "id": "0x55e99ecd7270-IntegerTypeSpec" }, { - "id": "0x557b1f3777b0-EntityDecl", - "Name": "0x557b1f377868-Name", - "ArraySpec": "0x557b1f377830-ArraySpec" + "id": "0x55e99ecd97b0-EntityDecl", + "Name": "0x55e99ecd9868-Name", + "ArraySpec": "0x55e99ecd9830-ArraySpec" }, { - "id": "0x557b1f377868-Name", + "id": "0x55e99ecd9868-Name", "source": "a" }, { - "id": "0x557b1f377830-ArraySpec", + "id": "0x55e99ecd9830-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x557b1f37f6f0-ExplicitShapeSpec" + "0x55e99ece16f0-ExplicitShapeSpec" ] }, { - "id": "0x557b1f37f6f0-ExplicitShapeSpec", - "upper_bound": "0x557b1f37f6f0-SpecificationExpr" + "id": "0x55e99ece16f0-ExplicitShapeSpec", + "upper_bound": "0x55e99ece16f0-SpecificationExpr" }, { - "id": "0x557b1f37f6f0-SpecificationExpr", - "Expr": "0x557b1f375be0-Expr" + "id": "0x55e99ece16f0-SpecificationExpr", + "Expr": "0x55e99ecd7be0-Expr" }, { - "id": "0x557b1f375be0-Expr", + "id": "0x55e99ecd7be0-Expr", "variantKey": "Designator", - "Designator": "0x557b1f3733c0-Designator" + "Designator": "0x55e99ecd53c0-Designator" }, { - "id": "0x557b1f3733c0-Designator", + "id": "0x55e99ecd53c0-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f3733d0-DataRef" + "DataRef": "0x55e99ecd53d0-DataRef" }, { - "id": "0x557b1f3733d0-DataRef", + "id": "0x55e99ecd53d0-DataRef", "variantKey": "Name", - "Name": "0x557b1f3733d0-Name" + "Name": "0x55e99ecd53d0-Name" }, { - "id": "0x557b1f3733d0-Name", + "id": "0x55e99ecd53d0-Name", "source": "n" }, { - "id": "0x557b1f372790-EntityDecl", - "Name": "0x557b1f372848-Name", - "ArraySpec": "0x557b1f372810-ArraySpec" + "id": "0x55e99ecd4790-EntityDecl", + "Name": "0x55e99ecd4848-Name", + "ArraySpec": "0x55e99ecd4810-ArraySpec" }, { - "id": "0x557b1f372848-Name", + "id": "0x55e99ecd4848-Name", "source": "b" }, { - "id": "0x557b1f372810-ArraySpec", + "id": "0x55e99ecd4810-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x557b1f37f8e0-ExplicitShapeSpec" + "0x55e99ece18e0-ExplicitShapeSpec" ] }, { - "id": "0x557b1f37f8e0-ExplicitShapeSpec", - "upper_bound": "0x557b1f37f8e0-SpecificationExpr" + "id": "0x55e99ece18e0-ExplicitShapeSpec", + "upper_bound": "0x55e99ece18e0-SpecificationExpr" }, { - "id": "0x557b1f37f8e0-SpecificationExpr", - "Expr": "0x557b1f2f90b0-Expr" + "id": "0x55e99ece18e0-SpecificationExpr", + "Expr": "0x55e99ec5b0b0-Expr" }, { - "id": "0x557b1f2f90b0-Expr", + "id": "0x55e99ec5b0b0-Expr", "variantKey": "Designator", - "Designator": "0x557b1f370a90-Designator" + "Designator": "0x55e99ecd2a90-Designator" }, { - "id": "0x557b1f370a90-Designator", + "id": "0x55e99ecd2a90-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f370aa0-DataRef" + "DataRef": "0x55e99ecd2aa0-DataRef" }, { - "id": "0x557b1f370aa0-DataRef", + "id": "0x55e99ecd2aa0-DataRef", "variantKey": "Name", - "Name": "0x557b1f370aa0-Name" + "Name": "0x55e99ecd2aa0-Name" }, { - "id": "0x557b1f370aa0-Name", + "id": "0x55e99ecd2aa0-Name", "source": "n" }, { - "id": "0x557b1f3753e0-EntityDecl", - "Name": "0x557b1f375498-Name", - "ArraySpec": "0x557b1f375460-ArraySpec" + "id": "0x55e99ecd73e0-EntityDecl", + "Name": "0x55e99ecd7498-Name", + "ArraySpec": "0x55e99ecd7460-ArraySpec" }, { - "id": "0x557b1f375498-Name", + "id": "0x55e99ecd7498-Name", "source": "c" }, { - "id": "0x557b1f375460-ArraySpec", + "id": "0x55e99ecd7460-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x557b1f37f990-ExplicitShapeSpec" + "0x55e99ece1990-ExplicitShapeSpec" ] }, { - "id": "0x557b1f37f990-ExplicitShapeSpec", - "upper_bound": "0x557b1f37f990-SpecificationExpr" + "id": "0x55e99ece1990-ExplicitShapeSpec", + "upper_bound": "0x55e99ece1990-SpecificationExpr" }, { - "id": "0x557b1f37f990-SpecificationExpr", - "Expr": "0x557b1f375090-Expr" + "id": "0x55e99ece1990-SpecificationExpr", + "Expr": "0x55e99ecd7090-Expr" }, { - "id": "0x557b1f375090-Expr", + "id": "0x55e99ecd7090-Expr", "variantKey": "Designator", - "Designator": "0x557b1f351160-Designator" + "Designator": "0x55e99ecb3160-Designator" }, { - "id": "0x557b1f351160-Designator", + "id": "0x55e99ecb3160-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f351170-DataRef" + "DataRef": "0x55e99ecb3170-DataRef" }, { - "id": "0x557b1f351170-DataRef", + "id": "0x55e99ecb3170-DataRef", "variantKey": "Name", - "Name": "0x557b1f351170-Name" + "Name": "0x55e99ecb3170-Name" }, { - "id": "0x557b1f351170-Name", + "id": "0x55e99ecb3170-Name", "source": "n" }, { - "id": "0x557b1f3754d0-EntityDecl", - "Name": "0x557b1f375588-Name" + "id": "0x55e99ecd74d0-EntityDecl", + "Name": "0x55e99ecd7588-Name" }, { - "id": "0x557b1f375588-Name", + "id": "0x55e99ecd7588-Name", "source": "code" }, { - "id": "0x557b1f38be78-ExecutionPart", + "id": "0x55e99ecede78-ExecutionPart", "ExecutionPartConstruct": [ - "0x557b1f378460-ExecutionPartConstruct", - "0x557b1f378c90-ExecutionPartConstruct", - "0x557b1f3794c0-ExecutionPartConstruct", - "0x557b1f379180-ExecutionPartConstruct", - "0x557b1f379240-ExecutionPartConstruct", - "0x557b1f375fb0-ExecutionPartConstruct", - "0x557b1f377150-ExecutionPartConstruct", - "0x557b1f3761d0-ExecutionPartConstruct", - "0x557b1f370fa0-ExecutionPartConstruct", - "0x557b1f371280-ExecutionPartConstruct" + "0x55e99ecda460-ExecutionPartConstruct", + "0x55e99ecdac90-ExecutionPartConstruct", + "0x55e99ecdb4c0-ExecutionPartConstruct", + "0x55e99ecdb180-ExecutionPartConstruct", + "0x55e99ecdb240-ExecutionPartConstruct", + "0x55e99ecd7fb0-ExecutionPartConstruct", + "0x55e99ecd9150-ExecutionPartConstruct", + "0x55e99ecd81d0-ExecutionPartConstruct", + "0x55e99ecd2fa0-ExecutionPartConstruct", + "0x55e99ecd3280-ExecutionPartConstruct" ] }, { - "id": "0x557b1f38be78-ExecutionPartConstruct" + "id": "0x55e99ecede78-ExecutionPartConstruct" }, { - "id": "0x557b1f378460-ExecutionPartConstruct", + "id": "0x55e99ecda460-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f378460-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecda460-ExecutableConstruct" }, { - "id": "0x557b1f378460-ExecutableConstruct", + "id": "0x55e99ecda460-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x557b1f378460-Statement" + "Statement": "0x55e99ecda460-Statement" }, { - "id": "0x557b1f378460-Statement", - "statement": "0x557b1f378470-ActionStmt", + "id": "0x55e99ecda460-Statement", + "statement": "0x55e99ecda470-ActionStmt", "source": "a(1:n)=b(1:n)+1" }, { - "id": "0x557b1f378470-ActionStmt", + "id": "0x55e99ecda470-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x557b1f373790-AssignmentStmt" + "AssignmentStmt": "0x55e99ecd5790-AssignmentStmt" }, { - "id": "0x557b1f373790-AssignmentStmt", - "Variable": "0x557b1f373870-Variable", - "Expr": "0x557b1f3737a0-Expr" + "id": "0x55e99ecd5790-AssignmentStmt", + "Variable": "0x55e99ecd5870-Variable", + "Expr": "0x55e99ecd57a0-Expr" }, { - "id": "0x557b1f373870-Variable", + "id": "0x55e99ecd5870-Variable", "variantKey": "Designator", - "Designator": "0x557b1f3702a0-Designator" + "Designator": "0x55e99ecd22a0-Designator" }, { - "id": "0x557b1f3702a0-Designator", + "id": "0x55e99ecd22a0-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f3702b0-DataRef" + "DataRef": "0x55e99ecd22b0-DataRef" }, { - "id": "0x557b1f3702b0-DataRef", + "id": "0x55e99ecd22b0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x557b1f382d10-ArrayElement" + "ArrayElement": "0x55e99ece4d10-ArrayElement" }, { - "id": "0x557b1f382d10-ArrayElement", - "base": "0x557b1f382d10-DataRef", + "id": "0x55e99ece4d10-ArrayElement", + "base": "0x55e99ece4d10-DataRef", "subscripts": [ - "0x557b1f37ac50-SectionSubscript" + "0x55e99ecdcc50-SectionSubscript" ] }, { - "id": "0x557b1f382d10-DataRef", + "id": "0x55e99ece4d10-DataRef", "variantKey": "Name", - "Name": "0x557b1f382d10-Name" + "Name": "0x55e99ece4d10-Name" }, { - "id": "0x557b1f382d10-Name", + "id": "0x55e99ece4d10-Name", "source": "a" }, { - "id": "0x557b1f37ac50-SectionSubscript", + "id": "0x55e99ecdcc50-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x557b1f37ac50-SubscriptTriplet" + "SubscriptTriplet": "0x55e99ecdcc50-SubscriptTriplet" }, { - "id": "0x557b1f37ac50-SubscriptTriplet", - "start": "0x557b1f378230-Expr", - "end": "0x557b1f378310-Expr" + "id": "0x55e99ecdcc50-SubscriptTriplet", + "start": "0x55e99ecda230-Expr", + "end": "0x55e99ecda310-Expr" }, { - "id": "0x557b1f378230-Expr", + "id": "0x55e99ecda230-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f378250-LiteralConstant" + "LiteralConstant": "0x55e99ecda250-LiteralConstant" }, { - "id": "0x557b1f378250-LiteralConstant", + "id": "0x55e99ecda250-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f378250-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecda250-IntLiteralConstant" }, { - "id": "0x557b1f378250-IntLiteralConstant", + "id": "0x55e99ecda250-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x557b1f378310-Expr", + "id": "0x55e99ecda310-Expr", "variantKey": "Designator", - "Designator": "0x557b1f376d20-Designator" + "Designator": "0x55e99ecd8d20-Designator" }, { - "id": "0x557b1f376d20-Designator", + "id": "0x55e99ecd8d20-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f376d30-DataRef" + "DataRef": "0x55e99ecd8d30-DataRef" }, { - "id": "0x557b1f376d30-DataRef", + "id": "0x55e99ecd8d30-DataRef", "variantKey": "Name", - "Name": "0x557b1f376d30-Name" + "Name": "0x55e99ecd8d30-Name" }, { - "id": "0x557b1f376d30-Name", + "id": "0x55e99ecd8d30-Name", "source": "n" }, { - "id": "0x557b1f3737a0-Expr", + "id": "0x55e99ecd57a0-Expr", "variantKey": "Add", - "Add": "0x557b1f3737c0-Add" + "Add": "0x55e99ecd57c0-Add" }, { - "id": "0x557b1f3737c0-Add", - "left": "0x557b1f3778f0-Expr", - "right": "0x557b1f376a40-Expr", + "id": "0x55e99ecd57c0-Add", + "left": "0x55e99ecd98f0-Expr", + "right": "0x55e99ecd8a40-Expr", "op": "ADD" }, { - "id": "0x557b1f3778f0-Expr", + "id": "0x55e99ecd98f0-Expr", "variantKey": "Designator", - "Designator": "0x557b1f3716d0-Designator" + "Designator": "0x55e99ecd36d0-Designator" }, { - "id": "0x557b1f3716d0-Designator", + "id": "0x55e99ecd36d0-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f3716e0-DataRef" + "DataRef": "0x55e99ecd36e0-DataRef" }, { - "id": "0x557b1f3716e0-DataRef", + "id": "0x55e99ecd36e0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x557b1f382cd0-ArrayElement" + "ArrayElement": "0x55e99ece4cd0-ArrayElement" }, { - "id": "0x557b1f382cd0-ArrayElement", - "base": "0x557b1f382cd0-DataRef", + "id": "0x55e99ece4cd0-ArrayElement", + "base": "0x55e99ece4cd0-DataRef", "subscripts": [ - "0x557b1f380a30-SectionSubscript" + "0x55e99ece2a30-SectionSubscript" ] }, { - "id": "0x557b1f382cd0-DataRef", + "id": "0x55e99ece4cd0-DataRef", "variantKey": "Name", - "Name": "0x557b1f382cd0-Name" + "Name": "0x55e99ece4cd0-Name" }, { - "id": "0x557b1f382cd0-Name", + "id": "0x55e99ece4cd0-Name", "source": "b" }, { - "id": "0x557b1f380a30-SectionSubscript", + "id": "0x55e99ece2a30-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x557b1f380a30-SubscriptTriplet" + "SubscriptTriplet": "0x55e99ece2a30-SubscriptTriplet" }, { - "id": "0x557b1f380a30-SubscriptTriplet", - "start": "0x557b1f378030-Expr", - "end": "0x557b1f376b80-Expr" + "id": "0x55e99ece2a30-SubscriptTriplet", + "start": "0x55e99ecda030-Expr", + "end": "0x55e99ecd8b80-Expr" }, { - "id": "0x557b1f378030-Expr", + "id": "0x55e99ecda030-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f378050-LiteralConstant" + "LiteralConstant": "0x55e99ecda050-LiteralConstant" }, { - "id": "0x557b1f378050-LiteralConstant", + "id": "0x55e99ecda050-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f378050-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecda050-IntLiteralConstant" }, { - "id": "0x557b1f378050-IntLiteralConstant", + "id": "0x55e99ecda050-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x557b1f376b80-Expr", + "id": "0x55e99ecd8b80-Expr", "variantKey": "Designator", - "Designator": "0x557b1f380890-Designator" + "Designator": "0x55e99ece2890-Designator" }, { - "id": "0x557b1f380890-Designator", + "id": "0x55e99ece2890-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f3808a0-DataRef" + "DataRef": "0x55e99ece28a0-DataRef" }, { - "id": "0x557b1f3808a0-DataRef", + "id": "0x55e99ece28a0-DataRef", "variantKey": "Name", - "Name": "0x557b1f3808a0-Name" + "Name": "0x55e99ece28a0-Name" }, { - "id": "0x557b1f3808a0-Name", + "id": "0x55e99ece28a0-Name", "source": "n" }, { - "id": "0x557b1f376a40-Expr", + "id": "0x55e99ecd8a40-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f376a60-LiteralConstant" + "LiteralConstant": "0x55e99ecd8a60-LiteralConstant" }, { - "id": "0x557b1f376a60-LiteralConstant", + "id": "0x55e99ecd8a60-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f376a60-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecd8a60-IntLiteralConstant" }, { - "id": "0x557b1f376a60-IntLiteralConstant", + "id": "0x55e99ecd8a60-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x557b1f378c90-ExecutionPartConstruct", + "id": "0x55e99ecdac90-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f378c90-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecdac90-ExecutableConstruct" }, { - "id": "0x557b1f378c90-ExecutableConstruct", + "id": "0x55e99ecdac90-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x557b1f378c90-Statement" + "Statement": "0x55e99ecdac90-Statement" }, { - "id": "0x557b1f378c90-Statement", - "statement": "0x557b1f378ca0-ActionStmt", + "id": "0x55e99ecdac90-Statement", + "statement": "0x55e99ecdaca0-ActionStmt", "source": "b(1:n)=b(1:n)+1" }, { - "id": "0x557b1f378ca0-ActionStmt", + "id": "0x55e99ecdaca0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x557b1f378670-AssignmentStmt" + "AssignmentStmt": "0x55e99ecda670-AssignmentStmt" }, { - "id": "0x557b1f378670-AssignmentStmt", - "Variable": "0x557b1f378750-Variable", - "Expr": "0x557b1f378680-Expr" + "id": "0x55e99ecda670-AssignmentStmt", + "Variable": "0x55e99ecda750-Variable", + "Expr": "0x55e99ecda680-Expr" }, { - "id": "0x557b1f378750-Variable", + "id": "0x55e99ecda750-Variable", "variantKey": "Designator", - "Designator": "0x557b1f371f90-Designator" + "Designator": "0x55e99ecd3f90-Designator" }, { - "id": "0x557b1f371f90-Designator", + "id": "0x55e99ecd3f90-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f371fa0-DataRef" + "DataRef": "0x55e99ecd3fa0-DataRef" }, { - "id": "0x557b1f371fa0-DataRef", + "id": "0x55e99ecd3fa0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x557b1f380050-ArrayElement" + "ArrayElement": "0x55e99ece2050-ArrayElement" }, { - "id": "0x557b1f380050-ArrayElement", - "base": "0x557b1f380050-DataRef", + "id": "0x55e99ece2050-ArrayElement", + "base": "0x55e99ece2050-DataRef", "subscripts": [ - "0x557b1f37afd0-SectionSubscript" + "0x55e99ecdcfd0-SectionSubscript" ] }, { - "id": "0x557b1f380050-DataRef", + "id": "0x55e99ece2050-DataRef", "variantKey": "Name", - "Name": "0x557b1f380050-Name" + "Name": "0x55e99ece2050-Name" }, { - "id": "0x557b1f380050-Name", + "id": "0x55e99ece2050-Name", "source": "b" }, { - "id": "0x557b1f37afd0-SectionSubscript", + "id": "0x55e99ecdcfd0-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x557b1f37afd0-SubscriptTriplet" + "SubscriptTriplet": "0x55e99ecdcfd0-SubscriptTriplet" }, { - "id": "0x557b1f37afd0-SubscriptTriplet", - "start": "0x557b1f3784b0-Expr", - "end": "0x557b1f378590-Expr" + "id": "0x55e99ecdcfd0-SubscriptTriplet", + "start": "0x55e99ecda4b0-Expr", + "end": "0x55e99ecda590-Expr" }, { - "id": "0x557b1f3784b0-Expr", + "id": "0x55e99ecda4b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f3784d0-LiteralConstant" + "LiteralConstant": "0x55e99ecda4d0-LiteralConstant" }, { - "id": "0x557b1f3784d0-LiteralConstant", + "id": "0x55e99ecda4d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f3784d0-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecda4d0-IntLiteralConstant" }, { - "id": "0x557b1f3784d0-IntLiteralConstant", + "id": "0x55e99ecda4d0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x557b1f378590-Expr", + "id": "0x55e99ecda590-Expr", "variantKey": "Designator", - "Designator": "0x557b1f2f9320-Designator" + "Designator": "0x55e99ec5b320-Designator" }, { - "id": "0x557b1f2f9320-Designator", + "id": "0x55e99ec5b320-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f2f9330-DataRef" + "DataRef": "0x55e99ec5b330-DataRef" }, { - "id": "0x557b1f2f9330-DataRef", + "id": "0x55e99ec5b330-DataRef", "variantKey": "Name", - "Name": "0x557b1f2f9330-Name" + "Name": "0x55e99ec5b330-Name" }, { - "id": "0x557b1f2f9330-Name", + "id": "0x55e99ec5b330-Name", "source": "n" }, { - "id": "0x557b1f378680-Expr", + "id": "0x55e99ecda680-Expr", "variantKey": "Add", - "Add": "0x557b1f3786a0-Add" + "Add": "0x55e99ecda6a0-Add" }, { - "id": "0x557b1f3786a0-Add", - "left": "0x557b1f378b40-Expr", - "right": "0x557b1f378a60-Expr", + "id": "0x55e99ecda6a0-Add", + "left": "0x55e99ecdab40-Expr", + "right": "0x55e99ecdaa60-Expr", "op": "ADD" }, { - "id": "0x557b1f378b40-Expr", + "id": "0x55e99ecdab40-Expr", "variantKey": "Designator", - "Designator": "0x557b1f3789a0-Designator" + "Designator": "0x55e99ecda9a0-Designator" }, { - "id": "0x557b1f3789a0-Designator", + "id": "0x55e99ecda9a0-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f3789b0-DataRef" + "DataRef": "0x55e99ecda9b0-DataRef" }, { - "id": "0x557b1f3789b0-DataRef", + "id": "0x55e99ecda9b0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x557b1f380100-ArrayElement" + "ArrayElement": "0x55e99ece2100-ArrayElement" }, { - "id": "0x557b1f380100-ArrayElement", - "base": "0x557b1f380100-DataRef", + "id": "0x55e99ece2100-ArrayElement", + "base": "0x55e99ece2100-DataRef", "subscripts": [ - "0x557b1f37ae30-SectionSubscript" + "0x55e99ecdce30-SectionSubscript" ] }, { - "id": "0x557b1f380100-DataRef", + "id": "0x55e99ece2100-DataRef", "variantKey": "Name", - "Name": "0x557b1f380100-Name" + "Name": "0x55e99ece2100-Name" }, { - "id": "0x557b1f380100-Name", + "id": "0x55e99ece2100-Name", "source": "b" }, { - "id": "0x557b1f37ae30-SectionSubscript", + "id": "0x55e99ecdce30-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x557b1f37ae30-SubscriptTriplet" + "SubscriptTriplet": "0x55e99ecdce30-SubscriptTriplet" }, { - "id": "0x557b1f37ae30-SubscriptTriplet", - "start": "0x557b1f378780-Expr", - "end": "0x557b1f378860-Expr" + "id": "0x55e99ecdce30-SubscriptTriplet", + "start": "0x55e99ecda780-Expr", + "end": "0x55e99ecda860-Expr" }, { - "id": "0x557b1f378780-Expr", + "id": "0x55e99ecda780-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f3787a0-LiteralConstant" + "LiteralConstant": "0x55e99ecda7a0-LiteralConstant" }, { - "id": "0x557b1f3787a0-LiteralConstant", + "id": "0x55e99ecda7a0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f3787a0-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecda7a0-IntLiteralConstant" }, { - "id": "0x557b1f3787a0-IntLiteralConstant", + "id": "0x55e99ecda7a0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x557b1f378860-Expr", + "id": "0x55e99ecda860-Expr", "variantKey": "Designator", - "Designator": "0x557b1f376cc0-Designator" + "Designator": "0x55e99ecd8cc0-Designator" }, { - "id": "0x557b1f376cc0-Designator", + "id": "0x55e99ecd8cc0-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f376cd0-DataRef" + "DataRef": "0x55e99ecd8cd0-DataRef" }, { - "id": "0x557b1f376cd0-DataRef", + "id": "0x55e99ecd8cd0-DataRef", "variantKey": "Name", - "Name": "0x557b1f376cd0-Name" + "Name": "0x55e99ecd8cd0-Name" }, { - "id": "0x557b1f376cd0-Name", + "id": "0x55e99ecd8cd0-Name", "source": "n" }, { - "id": "0x557b1f378a60-Expr", + "id": "0x55e99ecdaa60-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f378a80-LiteralConstant" + "LiteralConstant": "0x55e99ecdaa80-LiteralConstant" }, { - "id": "0x557b1f378a80-LiteralConstant", + "id": "0x55e99ecdaa80-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f378a80-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecdaa80-IntLiteralConstant" }, { - "id": "0x557b1f378a80-IntLiteralConstant", + "id": "0x55e99ecdaa80-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x557b1f3794c0-ExecutionPartConstruct", + "id": "0x55e99ecdb4c0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f3794c0-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecdb4c0-ExecutableConstruct" }, { - "id": "0x557b1f3794c0-ExecutableConstruct", + "id": "0x55e99ecdb4c0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x557b1f3794c0-Statement" + "Statement": "0x55e99ecdb4c0-Statement" }, { - "id": "0x557b1f3794c0-Statement", - "statement": "0x557b1f3794d0-ActionStmt", + "id": "0x55e99ecdb4c0-Statement", + "statement": "0x55e99ecdb4d0-ActionStmt", "source": "c(1:n)=c(1:n)+1" }, { - "id": "0x557b1f3794d0-ActionStmt", + "id": "0x55e99ecdb4d0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x557b1f378ea0-AssignmentStmt" + "AssignmentStmt": "0x55e99ecdaea0-AssignmentStmt" }, { - "id": "0x557b1f378ea0-AssignmentStmt", - "Variable": "0x557b1f378f80-Variable", - "Expr": "0x557b1f378eb0-Expr" + "id": "0x55e99ecdaea0-AssignmentStmt", + "Variable": "0x55e99ecdaf80-Variable", + "Expr": "0x55e99ecdaeb0-Expr" }, { - "id": "0x557b1f378f80-Variable", + "id": "0x55e99ecdaf80-Variable", "variantKey": "Designator", - "Designator": "0x557b1f378a00-Designator" + "Designator": "0x55e99ecdaa00-Designator" }, { - "id": "0x557b1f378a00-Designator", + "id": "0x55e99ecdaa00-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f378a10-DataRef" + "DataRef": "0x55e99ecdaa10-DataRef" }, { - "id": "0x557b1f378a10-DataRef", + "id": "0x55e99ecdaa10-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x557b1f3800c0-ArrayElement" + "ArrayElement": "0x55e99ece20c0-ArrayElement" }, { - "id": "0x557b1f3800c0-ArrayElement", - "base": "0x557b1f3800c0-DataRef", + "id": "0x55e99ece20c0-ArrayElement", + "base": "0x55e99ece20c0-DataRef", "subscripts": [ - "0x557b1f3725d0-SectionSubscript" + "0x55e99ecd45d0-SectionSubscript" ] }, { - "id": "0x557b1f3800c0-DataRef", + "id": "0x55e99ece20c0-DataRef", "variantKey": "Name", - "Name": "0x557b1f3800c0-Name" + "Name": "0x55e99ece20c0-Name" }, { - "id": "0x557b1f3800c0-Name", + "id": "0x55e99ece20c0-Name", "source": "c" }, { - "id": "0x557b1f3725d0-SectionSubscript", + "id": "0x55e99ecd45d0-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x557b1f3725d0-SubscriptTriplet" + "SubscriptTriplet": "0x55e99ecd45d0-SubscriptTriplet" }, { - "id": "0x557b1f3725d0-SubscriptTriplet", - "start": "0x557b1f378ce0-Expr", - "end": "0x557b1f378dc0-Expr" + "id": "0x55e99ecd45d0-SubscriptTriplet", + "start": "0x55e99ecdace0-Expr", + "end": "0x55e99ecdadc0-Expr" }, { - "id": "0x557b1f378ce0-Expr", + "id": "0x55e99ecdace0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f378d00-LiteralConstant" + "LiteralConstant": "0x55e99ecdad00-LiteralConstant" }, { - "id": "0x557b1f378d00-LiteralConstant", + "id": "0x55e99ecdad00-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f378d00-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecdad00-IntLiteralConstant" }, { - "id": "0x557b1f378d00-IntLiteralConstant", + "id": "0x55e99ecdad00-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x557b1f378dc0-Expr", + "id": "0x55e99ecdadc0-Expr", "variantKey": "Designator", - "Designator": "0x557b1f376c60-Designator" + "Designator": "0x55e99ecd8c60-Designator" }, { - "id": "0x557b1f376c60-Designator", + "id": "0x55e99ecd8c60-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f376c70-DataRef" + "DataRef": "0x55e99ecd8c70-DataRef" }, { - "id": "0x557b1f376c70-DataRef", + "id": "0x55e99ecd8c70-DataRef", "variantKey": "Name", - "Name": "0x557b1f376c70-Name" + "Name": "0x55e99ecd8c70-Name" }, { - "id": "0x557b1f376c70-Name", + "id": "0x55e99ecd8c70-Name", "source": "n" }, { - "id": "0x557b1f378eb0-Expr", + "id": "0x55e99ecdaeb0-Expr", "variantKey": "Add", - "Add": "0x557b1f378ed0-Add" + "Add": "0x55e99ecdaed0-Add" }, { - "id": "0x557b1f378ed0-Add", - "left": "0x557b1f379370-Expr", - "right": "0x557b1f379290-Expr", + "id": "0x55e99ecdaed0-Add", + "left": "0x55e99ecdb370-Expr", + "right": "0x55e99ecdb290-Expr", "op": "ADD" }, { - "id": "0x557b1f379370-Expr", + "id": "0x55e99ecdb370-Expr", "variantKey": "Designator", - "Designator": "0x557b1f3791d0-Designator" + "Designator": "0x55e99ecdb1d0-Designator" }, { - "id": "0x557b1f3791d0-Designator", + "id": "0x55e99ecdb1d0-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f3791e0-DataRef" + "DataRef": "0x55e99ecdb1e0-DataRef" }, { - "id": "0x557b1f3791e0-DataRef", + "id": "0x55e99ecdb1e0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x557b1f380140-ArrayElement" + "ArrayElement": "0x55e99ece2140-ArrayElement" }, { - "id": "0x557b1f380140-ArrayElement", - "base": "0x557b1f380140-DataRef", + "id": "0x55e99ece2140-ArrayElement", + "base": "0x55e99ece2140-DataRef", "subscripts": [ - "0x557b1f380900-SectionSubscript" + "0x55e99ece2900-SectionSubscript" ] }, { - "id": "0x557b1f380140-DataRef", + "id": "0x55e99ece2140-DataRef", "variantKey": "Name", - "Name": "0x557b1f380140-Name" + "Name": "0x55e99ece2140-Name" }, { - "id": "0x557b1f380140-Name", + "id": "0x55e99ece2140-Name", "source": "c" }, { - "id": "0x557b1f380900-SectionSubscript", + "id": "0x55e99ece2900-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x557b1f380900-SubscriptTriplet" + "SubscriptTriplet": "0x55e99ece2900-SubscriptTriplet" }, { - "id": "0x557b1f380900-SubscriptTriplet", - "start": "0x557b1f378fb0-Expr", - "end": "0x557b1f379090-Expr" + "id": "0x55e99ece2900-SubscriptTriplet", + "start": "0x55e99ecdafb0-Expr", + "end": "0x55e99ecdb090-Expr" }, { - "id": "0x557b1f378fb0-Expr", + "id": "0x55e99ecdafb0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f378fd0-LiteralConstant" + "LiteralConstant": "0x55e99ecdafd0-LiteralConstant" }, { - "id": "0x557b1f378fd0-LiteralConstant", + "id": "0x55e99ecdafd0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f378fd0-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecdafd0-IntLiteralConstant" }, { - "id": "0x557b1f378fd0-IntLiteralConstant", + "id": "0x55e99ecdafd0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x557b1f379090-Expr", + "id": "0x55e99ecdb090-Expr", "variantKey": "Designator", - "Designator": "0x557b1f378170-Designator" + "Designator": "0x55e99ecda170-Designator" }, { - "id": "0x557b1f378170-Designator", + "id": "0x55e99ecda170-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f378180-DataRef" + "DataRef": "0x55e99ecda180-DataRef" }, { - "id": "0x557b1f378180-DataRef", + "id": "0x55e99ecda180-DataRef", "variantKey": "Name", - "Name": "0x557b1f378180-Name" + "Name": "0x55e99ecda180-Name" }, { - "id": "0x557b1f378180-Name", + "id": "0x55e99ecda180-Name", "source": "n" }, { - "id": "0x557b1f379290-Expr", + "id": "0x55e99ecdb290-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f3792b0-LiteralConstant" + "LiteralConstant": "0x55e99ecdb2b0-LiteralConstant" }, { - "id": "0x557b1f3792b0-LiteralConstant", + "id": "0x55e99ecdb2b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f3792b0-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecdb2b0-IntLiteralConstant" }, { - "id": "0x557b1f3792b0-IntLiteralConstant", + "id": "0x55e99ecdb2b0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x557b1f379180-ExecutionPartConstruct", + "id": "0x55e99ecdb180-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f379180-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecdb180-ExecutableConstruct" }, { - "id": "0x557b1f379180-ExecutableConstruct", + "id": "0x55e99ecdb180-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x557b1f38b0d0-DoConstruct" + "DoConstruct": "0x55e99eced0d0-DoConstruct" }, { - "id": "0x557b1f38b0d0-DoConstruct", - "Statement": "0x557b1f38b128-Statement", + "id": "0x55e99eced0d0-DoConstruct", + "Statement": "0x55e99eced128-Statement", "ExecutionPartConstruct": [ - "0x557b1f371d80-ExecutionPartConstruct", - "0x557b1f376500-ExecutionPartConstruct" + "0x55e99ecd3d80-ExecutionPartConstruct", + "0x55e99ecd8500-ExecutionPartConstruct" ], - "Statement": "0x557b1f38b0d0-Statement" + "Statement": "0x55e99eced0d0-Statement" }, { - "id": "0x557b1f38b128-Statement", - "statement": "0x557b1f38b138-NonLabelDoStmt", + "id": "0x55e99eced128-Statement", + "statement": "0x55e99eced138-NonLabelDoStmt", "source": "do10i=1,1000" }, { - "id": "0x557b1f38b138-NonLabelDoStmt", - "LoopControl": "0x557b1f38b138-LoopControl" + "id": "0x55e99eced138-NonLabelDoStmt", + "LoopControl": "0x55e99eced138-LoopControl" }, { - "id": "0x557b1f38b138-LoopControl", + "id": "0x55e99eced138-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x557b1f38b138-LoopBounds" + "LoopBounds": "0x55e99eced138-LoopBounds" }, { - "id": "0x557b1f38b138-LoopBounds", - "var": "0x557b1f38b138-Name", - "lower": "0x557b1f379510-Expr", - "upper": "0x557b1f3795f0-Expr" + "id": "0x55e99eced138-LoopBounds", + "var": "0x55e99eced138-Name", + "lower": "0x55e99ecdb510-Expr", + "upper": "0x55e99ecdb5f0-Expr" }, { - "id": "0x557b1f38b138-Name", + "id": "0x55e99eced138-Name", "source": "i" }, { - "id": "0x557b1f379510-Expr", + "id": "0x55e99ecdb510-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f379530-LiteralConstant" + "LiteralConstant": "0x55e99ecdb530-LiteralConstant" }, { - "id": "0x557b1f379530-LiteralConstant", + "id": "0x55e99ecdb530-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f379530-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecdb530-IntLiteralConstant" }, { - "id": "0x557b1f379530-IntLiteralConstant", + "id": "0x55e99ecdb530-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x557b1f3795f0-Expr", + "id": "0x55e99ecdb5f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f379610-LiteralConstant" + "LiteralConstant": "0x55e99ecdb610-LiteralConstant" }, { - "id": "0x557b1f379610-LiteralConstant", + "id": "0x55e99ecdb610-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f379610-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecdb610-IntLiteralConstant" }, { - "id": "0x557b1f379610-IntLiteralConstant", + "id": "0x55e99ecdb610-IntLiteralConstant", "CharBlock": "1000" }, { - "id": "0x557b1f38b110-ExecutionPartConstruct" + "id": "0x55e99eced110-ExecutionPartConstruct" }, { - "id": "0x557b1f371d80-ExecutionPartConstruct", + "id": "0x55e99ecd3d80-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f371d80-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecd3d80-ExecutableConstruct" }, { - "id": "0x557b1f371d80-ExecutableConstruct", + "id": "0x55e99ecd3d80-ExecutableConstruct", "variantKey": "IfConstruct", - "IfConstruct": "0x557b1f319780-IfConstruct" + "IfConstruct": "0x55e99ec7b780-IfConstruct" }, { - "id": "0x557b1f319780-IfConstruct", - "Statement": "0x557b1f319850-Statement", + "id": "0x55e99ec7b780-IfConstruct", + "Statement": "0x55e99ec7b850-Statement", "ExecutionPartConstruct": [ - "0x557b1f376b30-ExecutionPartConstruct", - "0x557b1f3762e0-ExecutionPartConstruct", - "0x557b1f3719d0-ExecutionPartConstruct", - "0x557b1f378950-ExecutionPartConstruct" + "0x55e99ecd8b30-ExecutionPartConstruct", + "0x55e99ecd82e0-ExecutionPartConstruct", + "0x55e99ecd39d0-ExecutionPartConstruct", + "0x55e99ecda950-ExecutionPartConstruct" ], - "Statement": "0x557b1f319780-Statement" + "Statement": "0x55e99ec7b780-Statement" }, { - "id": "0x557b1f319850-Statement", - "statement": "0x557b1f319860-IfThenStmt", + "id": "0x55e99ec7b850-Statement", + "statement": "0x55e99ec7b860-IfThenStmt", "source": "if(a(i).ne.1)then" }, { - "id": "0x557b1f319860-IfThenStmt", - "Expr": "0x557b1f379a80-Expr" + "id": "0x55e99ec7b860-IfThenStmt", + "Expr": "0x55e99ecdba80-Expr" }, { - "id": "0x557b1f379a80-Expr", + "id": "0x55e99ecdba80-Expr", "variantKey": "NE", - "NE": "0x557b1f379aa0-NE" + "NE": "0x55e99ecdbaa0-NE" }, { - "id": "0x557b1f379aa0-NE", - "left": "0x557b1f3796d0-Expr", - "right": "0x557b1f3799a0-Expr", + "id": "0x55e99ecdbaa0-NE", + "left": "0x55e99ecdb6d0-Expr", + "right": "0x55e99ecdb9a0-Expr", "op": "NE" }, { - "id": "0x557b1f3796d0-Expr", + "id": "0x55e99ecdb6d0-Expr", "variantKey": "Designator", - "Designator": "0x557b1f3b08c0-Designator" + "Designator": "0x55e99ed128c0-Designator" }, { - "id": "0x557b1f3b08c0-Designator", + "id": "0x55e99ed128c0-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f3b08d0-DataRef" + "DataRef": "0x55e99ed128d0-DataRef" }, { - "id": "0x557b1f3b08d0-DataRef", + "id": "0x55e99ed128d0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x557b1f37fa50-ArrayElement" + "ArrayElement": "0x55e99ece1a50-ArrayElement" }, { - "id": "0x557b1f37fa50-ArrayElement", - "base": "0x557b1f37fa50-DataRef", + "id": "0x55e99ece1a50-ArrayElement", + "base": "0x55e99ece1a50-DataRef", "subscripts": [ - "0x557b1f384140-SectionSubscript" + "0x55e99ece6140-SectionSubscript" ] }, { - "id": "0x557b1f37fa50-DataRef", + "id": "0x55e99ece1a50-DataRef", "variantKey": "Name", - "Name": "0x557b1f37fa50-Name" + "Name": "0x55e99ece1a50-Name" }, { - "id": "0x557b1f37fa50-Name", + "id": "0x55e99ece1a50-Name", "source": "a" }, { - "id": "0x557b1f384140-SectionSubscript", + "id": "0x55e99ece6140-SectionSubscript", "variantKey": "Expr", - "Expr": "0x557b1f42b3c0-Expr" + "Expr": "0x55e99ed8d3c0-Expr" }, { - "id": "0x557b1f42b3c0-Expr", + "id": "0x55e99ed8d3c0-Expr", "variantKey": "Designator", - "Designator": "0x557b1f3781d0-Designator" + "Designator": "0x55e99ecda1d0-Designator" }, { - "id": "0x557b1f3781d0-Designator", + "id": "0x55e99ecda1d0-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f3781e0-DataRef" + "DataRef": "0x55e99ecda1e0-DataRef" }, { - "id": "0x557b1f3781e0-DataRef", + "id": "0x55e99ecda1e0-DataRef", "variantKey": "Name", - "Name": "0x557b1f3781e0-Name" + "Name": "0x55e99ecda1e0-Name" }, { - "id": "0x557b1f3781e0-Name", + "id": "0x55e99ecda1e0-Name", "source": "i" }, { - "id": "0x557b1f3799a0-Expr", + "id": "0x55e99ecdb9a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f3799c0-LiteralConstant" + "LiteralConstant": "0x55e99ecdb9c0-LiteralConstant" }, { - "id": "0x557b1f3799c0-LiteralConstant", + "id": "0x55e99ecdb9c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f3799c0-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecdb9c0-IntLiteralConstant" }, { - "id": "0x557b1f3799c0-IntLiteralConstant", + "id": "0x55e99ecdb9c0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x557b1f319838-ExecutionPartConstruct" + "id": "0x55e99ec7b838-ExecutionPartConstruct" }, { - "id": "0x557b1f376b30-ExecutionPartConstruct", + "id": "0x55e99ecd8b30-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f376b30-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecd8b30-ExecutableConstruct" }, { - "id": "0x557b1f376b30-ExecutableConstruct", + "id": "0x55e99ecd8b30-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x557b1f376b30-Statement" + "Statement": "0x55e99ecd8b30-Statement" }, { - "id": "0x557b1f376b30-Statement", - "statement": "0x557b1f376b40-ActionStmt", + "id": "0x55e99ecd8b30-Statement", + "statement": "0x55e99ecd8b40-ActionStmt", "source": "write(6,*)'NG'" }, { - "id": "0x557b1f376b40-ActionStmt", + "id": "0x55e99ecd8b40-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x557b1f387f50-WriteStmt" + "WriteStmt": "0x55e99ece9f50-WriteStmt" }, { - "id": "0x557b1f387f50-WriteStmt", - "iounit": "0x557b1f387f50-IoUnit", - "format": "0x557b1f387f80-Format", + "id": "0x55e99ece9f50-WriteStmt", + "iounit": "0x55e99ece9f50-IoUnit", + "format": "0x55e99ece9f80-Format", "controls": [], "items": [ - "0x557b1f387e70-OutputItem" + "0x55e99ece9e70-OutputItem" ] }, { - "id": "0x557b1f387f50-IoUnit", + "id": "0x55e99ece9f50-IoUnit", "variantKey": "Expr", - "Expr": "0x557b1f387d80-Expr" + "Expr": "0x55e99ece9d80-Expr" }, { - "id": "0x557b1f387d80-Expr", + "id": "0x55e99ece9d80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f387da0-LiteralConstant" + "LiteralConstant": "0x55e99ece9da0-LiteralConstant" }, { - "id": "0x557b1f387da0-LiteralConstant", + "id": "0x55e99ece9da0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f387da0-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ece9da0-IntLiteralConstant" }, { - "id": "0x557b1f387da0-IntLiteralConstant", + "id": "0x55e99ece9da0-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x557b1f387f80-Format", + "id": "0x55e99ece9f80-Format", "variantKey": "Star", - "Star": "0x557b1f387f80-Star" + "Star": "0x55e99ece9f80-Star" }, { - "id": "0x557b1f387f80-Star" + "id": "0x55e99ece9f80-Star" }, { - "id": "0x557b1f387e70-OutputItem", + "id": "0x55e99ece9e70-OutputItem", "variantKey": "Expr", - "Expr": "0x557b1f387e70-Expr" + "Expr": "0x55e99ece9e70-Expr" }, { - "id": "0x557b1f387e70-Expr", + "id": "0x55e99ece9e70-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f387e90-LiteralConstant" + "LiteralConstant": "0x55e99ece9e90-LiteralConstant" }, { - "id": "0x557b1f387e90-LiteralConstant", + "id": "0x55e99ece9e90-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x557b1f387e90-CharLiteralConstant" + "CharLiteralConstant": "0x55e99ece9e90-CharLiteralConstant" }, { - "id": "0x557b1f387e90-CharLiteralConstant", + "id": "0x55e99ece9e90-CharLiteralConstant", "string": "NG" }, { - "id": "0x557b1f3762e0-ExecutionPartConstruct", + "id": "0x55e99ecd82e0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f3762e0-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecd82e0-ExecutableConstruct" }, { - "id": "0x557b1f3762e0-ExecutableConstruct", + "id": "0x55e99ecd82e0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x557b1f3762e0-Statement" + "Statement": "0x55e99ecd82e0-Statement" }, { - "id": "0x557b1f3762e0-Statement", - "statement": "0x557b1f3762f0-ActionStmt", + "id": "0x55e99ecd82e0-Statement", + "statement": "0x55e99ecd82f0-ActionStmt", "source": "write(6,*)'ELEMENT NUMBER = A(',i,')'" }, { - "id": "0x557b1f3762f0-ActionStmt", + "id": "0x55e99ecd82f0-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x557b1f388450-WriteStmt" + "WriteStmt": "0x55e99ecea450-WriteStmt" }, { - "id": "0x557b1f388450-WriteStmt", - "iounit": "0x557b1f388450-IoUnit", - "format": "0x557b1f388480-Format", + "id": "0x55e99ecea450-WriteStmt", + "iounit": "0x55e99ecea450-IoUnit", + "format": "0x55e99ecea480-Format", "controls": [], "items": [ - "0x557b1f388370-OutputItem", - "0x557b1f388190-OutputItem", - "0x557b1f388280-OutputItem" + "0x55e99ecea370-OutputItem", + "0x55e99ecea190-OutputItem", + "0x55e99ecea280-OutputItem" ] }, { - "id": "0x557b1f388450-IoUnit", + "id": "0x55e99ecea450-IoUnit", "variantKey": "Expr", - "Expr": "0x557b1f3880a0-Expr" + "Expr": "0x55e99ecea0a0-Expr" }, { - "id": "0x557b1f3880a0-Expr", + "id": "0x55e99ecea0a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f3880c0-LiteralConstant" + "LiteralConstant": "0x55e99ecea0c0-LiteralConstant" }, { - "id": "0x557b1f3880c0-LiteralConstant", + "id": "0x55e99ecea0c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f3880c0-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecea0c0-IntLiteralConstant" }, { - "id": "0x557b1f3880c0-IntLiteralConstant", + "id": "0x55e99ecea0c0-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x557b1f388480-Format", + "id": "0x55e99ecea480-Format", "variantKey": "Star", - "Star": "0x557b1f388480-Star" + "Star": "0x55e99ecea480-Star" }, { - "id": "0x557b1f388480-Star" + "id": "0x55e99ecea480-Star" }, { - "id": "0x557b1f388370-OutputItem", + "id": "0x55e99ecea370-OutputItem", "variantKey": "Expr", - "Expr": "0x557b1f388370-Expr" + "Expr": "0x55e99ecea370-Expr" }, { - "id": "0x557b1f388370-Expr", + "id": "0x55e99ecea370-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f388390-LiteralConstant" + "LiteralConstant": "0x55e99ecea390-LiteralConstant" }, { - "id": "0x557b1f388390-LiteralConstant", + "id": "0x55e99ecea390-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x557b1f388390-CharLiteralConstant" + "CharLiteralConstant": "0x55e99ecea390-CharLiteralConstant" }, { - "id": "0x557b1f388390-CharLiteralConstant", + "id": "0x55e99ecea390-CharLiteralConstant", "string": "ELEMENT NUMBER = A(" }, { - "id": "0x557b1f388190-OutputItem", + "id": "0x55e99ecea190-OutputItem", "variantKey": "Expr", - "Expr": "0x557b1f388190-Expr" + "Expr": "0x55e99ecea190-Expr" }, { - "id": "0x557b1f388190-Expr", + "id": "0x55e99ecea190-Expr", "variantKey": "Designator", - "Designator": "0x557b1f3783f0-Designator" + "Designator": "0x55e99ecda3f0-Designator" }, { - "id": "0x557b1f3783f0-Designator", + "id": "0x55e99ecda3f0-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f378400-DataRef" + "DataRef": "0x55e99ecda400-DataRef" }, { - "id": "0x557b1f378400-DataRef", + "id": "0x55e99ecda400-DataRef", "variantKey": "Name", - "Name": "0x557b1f378400-Name" + "Name": "0x55e99ecda400-Name" }, { - "id": "0x557b1f378400-Name", + "id": "0x55e99ecda400-Name", "source": "i" }, { - "id": "0x557b1f388280-OutputItem", + "id": "0x55e99ecea280-OutputItem", "variantKey": "Expr", - "Expr": "0x557b1f388280-Expr" + "Expr": "0x55e99ecea280-Expr" }, { - "id": "0x557b1f388280-Expr", + "id": "0x55e99ecea280-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f3882a0-LiteralConstant" + "LiteralConstant": "0x55e99ecea2a0-LiteralConstant" }, { - "id": "0x557b1f3882a0-LiteralConstant", + "id": "0x55e99ecea2a0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x557b1f3882a0-CharLiteralConstant" + "CharLiteralConstant": "0x55e99ecea2a0-CharLiteralConstant" }, { - "id": "0x557b1f3882a0-CharLiteralConstant", + "id": "0x55e99ecea2a0-CharLiteralConstant", "string": ")" }, { - "id": "0x557b1f3719d0-ExecutionPartConstruct", + "id": "0x55e99ecd39d0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f3719d0-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecd39d0-ExecutableConstruct" }, { - "id": "0x557b1f3719d0-ExecutableConstruct", + "id": "0x55e99ecd39d0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x557b1f3719d0-Statement" + "Statement": "0x55e99ecd39d0-Statement" }, { - "id": "0x557b1f3719d0-Statement", - "statement": "0x557b1f3719e0-ActionStmt", + "id": "0x55e99ecd39d0-Statement", + "statement": "0x55e99ecd39e0-ActionStmt", "source": "code=1" }, { - "id": "0x557b1f3719e0-ActionStmt", + "id": "0x55e99ecd39e0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x557b1f3797b0-AssignmentStmt" + "AssignmentStmt": "0x55e99ecdb7b0-AssignmentStmt" }, { - "id": "0x557b1f3797b0-AssignmentStmt", - "Variable": "0x557b1f379890-Variable", - "Expr": "0x557b1f3797c0-Expr" + "id": "0x55e99ecdb7b0-AssignmentStmt", + "Variable": "0x55e99ecdb890-Variable", + "Expr": "0x55e99ecdb7c0-Expr" }, { - "id": "0x557b1f379890-Variable", + "id": "0x55e99ecdb890-Variable", "variantKey": "Designator", - "Designator": "0x557b1f378110-Designator" + "Designator": "0x55e99ecda110-Designator" }, { - "id": "0x557b1f378110-Designator", + "id": "0x55e99ecda110-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f378120-DataRef" + "DataRef": "0x55e99ecda120-DataRef" }, { - "id": "0x557b1f378120-DataRef", + "id": "0x55e99ecda120-DataRef", "variantKey": "Name", - "Name": "0x557b1f378120-Name" + "Name": "0x55e99ecda120-Name" }, { - "id": "0x557b1f378120-Name", + "id": "0x55e99ecda120-Name", "source": "code" }, { - "id": "0x557b1f3797c0-Expr", + "id": "0x55e99ecdb7c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f3797e0-LiteralConstant" + "LiteralConstant": "0x55e99ecdb7e0-LiteralConstant" }, { - "id": "0x557b1f3797e0-LiteralConstant", + "id": "0x55e99ecdb7e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f3797e0-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecdb7e0-IntLiteralConstant" }, { - "id": "0x557b1f3797e0-IntLiteralConstant", + "id": "0x55e99ecdb7e0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x557b1f378950-ExecutionPartConstruct", + "id": "0x55e99ecda950-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f378950-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecda950-ExecutableConstruct" }, { - "id": "0x557b1f378950-ExecutableConstruct", + "id": "0x55e99ecda950-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x557b1f378950-Statement" + "Statement": "0x55e99ecda950-Statement" }, { - "id": "0x557b1f378950-Statement", - "statement": "0x557b1f378960-ActionStmt", + "id": "0x55e99ecda950-Statement", + "statement": "0x55e99ecda960-ActionStmt", "source": "goto20" }, { - "id": "0x557b1f378960-ActionStmt", + "id": "0x55e99ecda960-ActionStmt", "variantKey": "GotoStmt", - "GotoStmt": "0x557b1f380180-GotoStmt" + "GotoStmt": "0x55e99ece2180-GotoStmt" }, { - "id": "0x557b1f380180-GotoStmt", + "id": "0x55e99ece2180-GotoStmt", "uint64_t": "20" }, { - "id": "0x557b1f319780-Statement", - "statement": "0x557b1f319790-EndIfStmt", + "id": "0x55e99ec7b780-Statement", + "statement": "0x55e99ec7b790-EndIfStmt", "source": "endif" }, { - "id": "0x557b1f319790-EndIfStmt" + "id": "0x55e99ec7b790-EndIfStmt" }, { - "id": "0x557b1f376500-ExecutionPartConstruct", + "id": "0x55e99ecd8500-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f376500-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecd8500-ExecutableConstruct" }, { - "id": "0x557b1f376500-ExecutableConstruct", + "id": "0x55e99ecd8500-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x557b1f376500-Statement" + "Statement": "0x55e99ecd8500-Statement" }, { - "id": "0x557b1f376500-Statement", - "statement": "0x557b1f376510-ActionStmt", + "id": "0x55e99ecd8500-Statement", + "statement": "0x55e99ecd8510-ActionStmt", "label": "10", "source": "10continue" }, { - "id": "0x557b1f376510-ActionStmt", + "id": "0x55e99ecd8510-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x557b1f376510-ContinueStmt" + "ContinueStmt": "0x55e99ecd8510-ContinueStmt" }, { - "id": "0x557b1f376510-ContinueStmt" + "id": "0x55e99ecd8510-ContinueStmt" }, { - "id": "0x557b1f38b0d0-Statement", - "statement": "0x557b1f38b0e0-EndDoStmt", + "id": "0x55e99eced0d0-Statement", + "statement": "0x55e99eced0e0-EndDoStmt", "source": "" }, { - "id": "0x557b1f38b0e0-EndDoStmt" + "id": "0x55e99eced0e0-EndDoStmt" }, { - "id": "0x557b1f379240-ExecutionPartConstruct", + "id": "0x55e99ecdb240-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f379240-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecdb240-ExecutableConstruct" }, { - "id": "0x557b1f379240-ExecutableConstruct", + "id": "0x55e99ecdb240-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x557b1f379240-Statement" + "Statement": "0x55e99ecdb240-Statement" }, { - "id": "0x557b1f379240-Statement", - "statement": "0x557b1f379250-ActionStmt", + "id": "0x55e99ecdb240-Statement", + "statement": "0x55e99ecdb250-ActionStmt", "label": "20", "source": "20continue" }, { - "id": "0x557b1f379250-ActionStmt", + "id": "0x55e99ecdb250-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x557b1f379250-ContinueStmt" + "ContinueStmt": "0x55e99ecdb250-ContinueStmt" }, { - "id": "0x557b1f379250-ContinueStmt" + "id": "0x55e99ecdb250-ContinueStmt" }, { - "id": "0x557b1f375fb0-ExecutionPartConstruct", + "id": "0x55e99ecd7fb0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f375fb0-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecd7fb0-ExecutableConstruct" }, { - "id": "0x557b1f375fb0-ExecutableConstruct", + "id": "0x55e99ecd7fb0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x557b1f38b1f0-DoConstruct" + "DoConstruct": "0x55e99eced1f0-DoConstruct" }, { - "id": "0x557b1f38b1f0-DoConstruct", - "Statement": "0x557b1f38b248-Statement", + "id": "0x55e99eced1f0-DoConstruct", + "Statement": "0x55e99eced248-Statement", "ExecutionPartConstruct": [ - "0x557b1f377e20-ExecutionPartConstruct", - "0x557b1f376830-ExecutionPartConstruct" + "0x55e99ecd9e20-ExecutionPartConstruct", + "0x55e99ecd8830-ExecutionPartConstruct" ], - "Statement": "0x557b1f38b1f0-Statement" + "Statement": "0x55e99eced1f0-Statement" }, { - "id": "0x557b1f38b248-Statement", - "statement": "0x557b1f38b258-NonLabelDoStmt", + "id": "0x55e99eced248-Statement", + "statement": "0x55e99eced258-NonLabelDoStmt", "source": "do30i=1,1000" }, { - "id": "0x557b1f38b258-NonLabelDoStmt", - "LoopControl": "0x557b1f38b258-LoopControl" + "id": "0x55e99eced258-NonLabelDoStmt", + "LoopControl": "0x55e99eced258-LoopControl" }, { - "id": "0x557b1f38b258-LoopControl", + "id": "0x55e99eced258-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x557b1f38b258-LoopBounds" + "LoopBounds": "0x55e99eced258-LoopBounds" }, { - "id": "0x557b1f38b258-LoopBounds", - "var": "0x557b1f38b258-Name", - "lower": "0x557b1f3885a0-Expr", - "upper": "0x557b1f388680-Expr" + "id": "0x55e99eced258-LoopBounds", + "var": "0x55e99eced258-Name", + "lower": "0x55e99ecea5a0-Expr", + "upper": "0x55e99ecea680-Expr" }, { - "id": "0x557b1f38b258-Name", + "id": "0x55e99eced258-Name", "source": "i" }, { - "id": "0x557b1f3885a0-Expr", + "id": "0x55e99ecea5a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f3885c0-LiteralConstant" + "LiteralConstant": "0x55e99ecea5c0-LiteralConstant" }, { - "id": "0x557b1f3885c0-LiteralConstant", + "id": "0x55e99ecea5c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f3885c0-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecea5c0-IntLiteralConstant" }, { - "id": "0x557b1f3885c0-IntLiteralConstant", + "id": "0x55e99ecea5c0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x557b1f388680-Expr", + "id": "0x55e99ecea680-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f3886a0-LiteralConstant" + "LiteralConstant": "0x55e99ecea6a0-LiteralConstant" }, { - "id": "0x557b1f3886a0-LiteralConstant", + "id": "0x55e99ecea6a0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f3886a0-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecea6a0-IntLiteralConstant" }, { - "id": "0x557b1f3886a0-IntLiteralConstant", + "id": "0x55e99ecea6a0-IntLiteralConstant", "CharBlock": "1000" }, { - "id": "0x557b1f38b230-ExecutionPartConstruct" + "id": "0x55e99eced230-ExecutionPartConstruct" }, { - "id": "0x557b1f377e20-ExecutionPartConstruct", + "id": "0x55e99ecd9e20-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f377e20-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecd9e20-ExecutableConstruct" }, { - "id": "0x557b1f377e20-ExecutableConstruct", + "id": "0x55e99ecd9e20-ExecutableConstruct", "variantKey": "IfConstruct", - "IfConstruct": "0x557b1f389520-IfConstruct" + "IfConstruct": "0x55e99eceb520-IfConstruct" }, { - "id": "0x557b1f389520-IfConstruct", - "Statement": "0x557b1f3895f0-Statement", + "id": "0x55e99eceb520-IfConstruct", + "Statement": "0x55e99eceb5f0-Statement", "ExecutionPartConstruct": [ - "0x557b1f376720-ExecutionPartConstruct", - "0x557b1f377590-ExecutionPartConstruct", - "0x557b1f376610-ExecutionPartConstruct", - "0x557b1f3755c0-ExecutionPartConstruct" + "0x55e99ecd8720-ExecutionPartConstruct", + "0x55e99ecd9590-ExecutionPartConstruct", + "0x55e99ecd8610-ExecutionPartConstruct", + "0x55e99ecd75c0-ExecutionPartConstruct" ], - "Statement": "0x557b1f389520-Statement" + "Statement": "0x55e99eceb520-Statement" }, { - "id": "0x557b1f3895f0-Statement", - "statement": "0x557b1f389600-IfThenStmt", + "id": "0x55e99eceb5f0-Statement", + "statement": "0x55e99eceb600-IfThenStmt", "source": "if(b(i).ne.1)then" }, { - "id": "0x557b1f389600-IfThenStmt", - "Expr": "0x557b1f388b10-Expr" + "id": "0x55e99eceb600-IfThenStmt", + "Expr": "0x55e99eceab10-Expr" }, { - "id": "0x557b1f388b10-Expr", + "id": "0x55e99eceab10-Expr", "variantKey": "NE", - "NE": "0x557b1f388b30-NE" + "NE": "0x55e99eceab30-NE" }, { - "id": "0x557b1f388b30-NE", - "left": "0x557b1f388760-Expr", - "right": "0x557b1f388a30-Expr", + "id": "0x55e99eceab30-NE", + "left": "0x55e99ecea760-Expr", + "right": "0x55e99eceaa30-Expr", "op": "NE" }, { - "id": "0x557b1f388760-Expr", + "id": "0x55e99ecea760-Expr", "variantKey": "Designator", - "Designator": "0x557b1f3aff20-Designator" + "Designator": "0x55e99ed11f20-Designator" }, { - "id": "0x557b1f3aff20-Designator", + "id": "0x55e99ed11f20-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f3aff30-DataRef" + "DataRef": "0x55e99ed11f30-DataRef" }, { - "id": "0x557b1f3aff30-DataRef", + "id": "0x55e99ed11f30-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x557b1f379d10-ArrayElement" + "ArrayElement": "0x55e99ecdbd10-ArrayElement" }, { - "id": "0x557b1f379d10-ArrayElement", - "base": "0x557b1f379d10-DataRef", + "id": "0x55e99ecdbd10-ArrayElement", + "base": "0x55e99ecdbd10-DataRef", "subscripts": [ - "0x557b1f3a0fc0-SectionSubscript" + "0x55e99ed02fc0-SectionSubscript" ] }, { - "id": "0x557b1f379d10-DataRef", + "id": "0x55e99ecdbd10-DataRef", "variantKey": "Name", - "Name": "0x557b1f379d10-Name" + "Name": "0x55e99ecdbd10-Name" }, { - "id": "0x557b1f379d10-Name", + "id": "0x55e99ecdbd10-Name", "source": "b" }, { - "id": "0x557b1f3a0fc0-SectionSubscript", + "id": "0x55e99ed02fc0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x557b1f3798c0-Expr" + "Expr": "0x55e99ecdb8c0-Expr" }, { - "id": "0x557b1f3798c0-Expr", + "id": "0x55e99ecdb8c0-Expr", "variantKey": "Designator", - "Designator": "0x557b1f372220-Designator" + "Designator": "0x55e99ecd4220-Designator" }, { - "id": "0x557b1f372220-Designator", + "id": "0x55e99ecd4220-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f372230-DataRef" + "DataRef": "0x55e99ecd4230-DataRef" }, { - "id": "0x557b1f372230-DataRef", + "id": "0x55e99ecd4230-DataRef", "variantKey": "Name", - "Name": "0x557b1f372230-Name" + "Name": "0x55e99ecd4230-Name" }, { - "id": "0x557b1f372230-Name", + "id": "0x55e99ecd4230-Name", "source": "i" }, { - "id": "0x557b1f388a30-Expr", + "id": "0x55e99eceaa30-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f388a50-LiteralConstant" + "LiteralConstant": "0x55e99eceaa50-LiteralConstant" }, { - "id": "0x557b1f388a50-LiteralConstant", + "id": "0x55e99eceaa50-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f388a50-IntLiteralConstant" + "IntLiteralConstant": "0x55e99eceaa50-IntLiteralConstant" }, { - "id": "0x557b1f388a50-IntLiteralConstant", + "id": "0x55e99eceaa50-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x557b1f3895d8-ExecutionPartConstruct" + "id": "0x55e99eceb5d8-ExecutionPartConstruct" }, { - "id": "0x557b1f376720-ExecutionPartConstruct", + "id": "0x55e99ecd8720-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f376720-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecd8720-ExecutableConstruct" }, { - "id": "0x557b1f376720-ExecutableConstruct", + "id": "0x55e99ecd8720-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x557b1f376720-Statement" + "Statement": "0x55e99ecd8720-Statement" }, { - "id": "0x557b1f376720-Statement", - "statement": "0x557b1f376730-ActionStmt", + "id": "0x55e99ecd8720-Statement", + "statement": "0x55e99ecd8730-ActionStmt", "source": "write(6,*)'NG'" }, { - "id": "0x557b1f376730-ActionStmt", + "id": "0x55e99ecd8730-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x557b1f388ed0-WriteStmt" + "WriteStmt": "0x55e99eceaed0-WriteStmt" }, { - "id": "0x557b1f388ed0-WriteStmt", - "iounit": "0x557b1f388ed0-IoUnit", - "format": "0x557b1f388f00-Format", + "id": "0x55e99eceaed0-WriteStmt", + "iounit": "0x55e99eceaed0-IoUnit", + "format": "0x55e99eceaf00-Format", "controls": [], "items": [ - "0x557b1f388df0-OutputItem" + "0x55e99eceadf0-OutputItem" ] }, { - "id": "0x557b1f388ed0-IoUnit", + "id": "0x55e99eceaed0-IoUnit", "variantKey": "Expr", - "Expr": "0x557b1f388d00-Expr" + "Expr": "0x55e99ecead00-Expr" }, { - "id": "0x557b1f388d00-Expr", + "id": "0x55e99ecead00-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f388d20-LiteralConstant" + "LiteralConstant": "0x55e99ecead20-LiteralConstant" }, { - "id": "0x557b1f388d20-LiteralConstant", + "id": "0x55e99ecead20-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f388d20-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecead20-IntLiteralConstant" }, { - "id": "0x557b1f388d20-IntLiteralConstant", + "id": "0x55e99ecead20-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x557b1f388f00-Format", + "id": "0x55e99eceaf00-Format", "variantKey": "Star", - "Star": "0x557b1f388f00-Star" + "Star": "0x55e99eceaf00-Star" }, { - "id": "0x557b1f388f00-Star" + "id": "0x55e99eceaf00-Star" }, { - "id": "0x557b1f388df0-OutputItem", + "id": "0x55e99eceadf0-OutputItem", "variantKey": "Expr", - "Expr": "0x557b1f388df0-Expr" + "Expr": "0x55e99eceadf0-Expr" }, { - "id": "0x557b1f388df0-Expr", + "id": "0x55e99eceadf0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f388e10-LiteralConstant" + "LiteralConstant": "0x55e99eceae10-LiteralConstant" }, { - "id": "0x557b1f388e10-LiteralConstant", + "id": "0x55e99eceae10-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x557b1f388e10-CharLiteralConstant" + "CharLiteralConstant": "0x55e99eceae10-CharLiteralConstant" }, { - "id": "0x557b1f388e10-CharLiteralConstant", + "id": "0x55e99eceae10-CharLiteralConstant", "string": "NG" }, { - "id": "0x557b1f377590-ExecutionPartConstruct", + "id": "0x55e99ecd9590-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f377590-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecd9590-ExecutableConstruct" }, { - "id": "0x557b1f377590-ExecutableConstruct", + "id": "0x55e99ecd9590-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x557b1f377590-Statement" + "Statement": "0x55e99ecd9590-Statement" }, { - "id": "0x557b1f377590-Statement", - "statement": "0x557b1f3775a0-ActionStmt", + "id": "0x55e99ecd9590-Statement", + "statement": "0x55e99ecd95a0-ActionStmt", "source": "write(6,*)'ELEMENT NUMBER = B(',i,')'" }, { - "id": "0x557b1f3775a0-ActionStmt", + "id": "0x55e99ecd95a0-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x557b1f3893d0-WriteStmt" + "WriteStmt": "0x55e99eceb3d0-WriteStmt" }, { - "id": "0x557b1f3893d0-WriteStmt", - "iounit": "0x557b1f3893d0-IoUnit", - "format": "0x557b1f389400-Format", + "id": "0x55e99eceb3d0-WriteStmt", + "iounit": "0x55e99eceb3d0-IoUnit", + "format": "0x55e99eceb400-Format", "controls": [], "items": [ - "0x557b1f3892f0-OutputItem", - "0x557b1f389110-OutputItem", - "0x557b1f389200-OutputItem" + "0x55e99eceb2f0-OutputItem", + "0x55e99eceb110-OutputItem", + "0x55e99eceb200-OutputItem" ] }, { - "id": "0x557b1f3893d0-IoUnit", + "id": "0x55e99eceb3d0-IoUnit", "variantKey": "Expr", - "Expr": "0x557b1f389020-Expr" + "Expr": "0x55e99eceb020-Expr" }, { - "id": "0x557b1f389020-Expr", + "id": "0x55e99eceb020-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f389040-LiteralConstant" + "LiteralConstant": "0x55e99eceb040-LiteralConstant" }, { - "id": "0x557b1f389040-LiteralConstant", + "id": "0x55e99eceb040-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f389040-IntLiteralConstant" + "IntLiteralConstant": "0x55e99eceb040-IntLiteralConstant" }, { - "id": "0x557b1f389040-IntLiteralConstant", + "id": "0x55e99eceb040-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x557b1f389400-Format", + "id": "0x55e99eceb400-Format", "variantKey": "Star", - "Star": "0x557b1f389400-Star" + "Star": "0x55e99eceb400-Star" }, { - "id": "0x557b1f389400-Star" + "id": "0x55e99eceb400-Star" }, { - "id": "0x557b1f3892f0-OutputItem", + "id": "0x55e99eceb2f0-OutputItem", "variantKey": "Expr", - "Expr": "0x557b1f3892f0-Expr" + "Expr": "0x55e99eceb2f0-Expr" }, { - "id": "0x557b1f3892f0-Expr", + "id": "0x55e99eceb2f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f389310-LiteralConstant" + "LiteralConstant": "0x55e99eceb310-LiteralConstant" }, { - "id": "0x557b1f389310-LiteralConstant", + "id": "0x55e99eceb310-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x557b1f389310-CharLiteralConstant" + "CharLiteralConstant": "0x55e99eceb310-CharLiteralConstant" }, { - "id": "0x557b1f389310-CharLiteralConstant", + "id": "0x55e99eceb310-CharLiteralConstant", "string": "ELEMENT NUMBER = B(" }, { - "id": "0x557b1f389110-OutputItem", + "id": "0x55e99eceb110-OutputItem", "variantKey": "Expr", - "Expr": "0x557b1f389110-Expr" + "Expr": "0x55e99eceb110-Expr" }, { - "id": "0x557b1f389110-Expr", + "id": "0x55e99eceb110-Expr", "variantKey": "Designator", - "Designator": "0x557b1f3760b0-Designator" + "Designator": "0x55e99ecd80b0-Designator" }, { - "id": "0x557b1f3760b0-Designator", + "id": "0x55e99ecd80b0-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f3760c0-DataRef" + "DataRef": "0x55e99ecd80c0-DataRef" }, { - "id": "0x557b1f3760c0-DataRef", + "id": "0x55e99ecd80c0-DataRef", "variantKey": "Name", - "Name": "0x557b1f3760c0-Name" + "Name": "0x55e99ecd80c0-Name" }, { - "id": "0x557b1f3760c0-Name", + "id": "0x55e99ecd80c0-Name", "source": "i" }, { - "id": "0x557b1f389200-OutputItem", + "id": "0x55e99eceb200-OutputItem", "variantKey": "Expr", - "Expr": "0x557b1f389200-Expr" + "Expr": "0x55e99eceb200-Expr" }, { - "id": "0x557b1f389200-Expr", + "id": "0x55e99eceb200-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f389220-LiteralConstant" + "LiteralConstant": "0x55e99eceb220-LiteralConstant" }, { - "id": "0x557b1f389220-LiteralConstant", + "id": "0x55e99eceb220-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x557b1f389220-CharLiteralConstant" + "CharLiteralConstant": "0x55e99eceb220-CharLiteralConstant" }, { - "id": "0x557b1f389220-CharLiteralConstant", + "id": "0x55e99eceb220-CharLiteralConstant", "string": ")" }, { - "id": "0x557b1f376610-ExecutionPartConstruct", + "id": "0x55e99ecd8610-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f376610-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecd8610-ExecutableConstruct" }, { - "id": "0x557b1f376610-ExecutableConstruct", + "id": "0x55e99ecd8610-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x557b1f376610-Statement" + "Statement": "0x55e99ecd8610-Statement" }, { - "id": "0x557b1f376610-Statement", - "statement": "0x557b1f376620-ActionStmt", + "id": "0x55e99ecd8610-Statement", + "statement": "0x55e99ecd8620-ActionStmt", "source": "code=1" }, { - "id": "0x557b1f376620-ActionStmt", + "id": "0x55e99ecd8620-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x557b1f388840-AssignmentStmt" + "AssignmentStmt": "0x55e99ecea840-AssignmentStmt" }, { - "id": "0x557b1f388840-AssignmentStmt", - "Variable": "0x557b1f388920-Variable", - "Expr": "0x557b1f388850-Expr" + "id": "0x55e99ecea840-AssignmentStmt", + "Variable": "0x55e99ecea920-Variable", + "Expr": "0x55e99ecea850-Expr" }, { - "id": "0x557b1f388920-Variable", + "id": "0x55e99ecea920-Variable", "variantKey": "Designator", - "Designator": "0x557b1f378c20-Designator" + "Designator": "0x55e99ecdac20-Designator" }, { - "id": "0x557b1f378c20-Designator", + "id": "0x55e99ecdac20-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f378c30-DataRef" + "DataRef": "0x55e99ecdac30-DataRef" }, { - "id": "0x557b1f378c30-DataRef", + "id": "0x55e99ecdac30-DataRef", "variantKey": "Name", - "Name": "0x557b1f378c30-Name" + "Name": "0x55e99ecdac30-Name" }, { - "id": "0x557b1f378c30-Name", + "id": "0x55e99ecdac30-Name", "source": "code" }, { - "id": "0x557b1f388850-Expr", + "id": "0x55e99ecea850-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f388870-LiteralConstant" + "LiteralConstant": "0x55e99ecea870-LiteralConstant" }, { - "id": "0x557b1f388870-LiteralConstant", + "id": "0x55e99ecea870-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f388870-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecea870-IntLiteralConstant" }, { - "id": "0x557b1f388870-IntLiteralConstant", + "id": "0x55e99ecea870-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x557b1f3755c0-ExecutionPartConstruct", + "id": "0x55e99ecd75c0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f3755c0-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecd75c0-ExecutableConstruct" }, { - "id": "0x557b1f3755c0-ExecutableConstruct", + "id": "0x55e99ecd75c0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x557b1f3755c0-Statement" + "Statement": "0x55e99ecd75c0-Statement" }, { - "id": "0x557b1f3755c0-Statement", - "statement": "0x557b1f3755d0-ActionStmt", + "id": "0x55e99ecd75c0-Statement", + "statement": "0x55e99ecd75d0-ActionStmt", "source": "goto40" }, { - "id": "0x557b1f3755d0-ActionStmt", + "id": "0x55e99ecd75d0-ActionStmt", "variantKey": "GotoStmt", - "GotoStmt": "0x557b1f382b40-GotoStmt" + "GotoStmt": "0x55e99ece4b40-GotoStmt" }, { - "id": "0x557b1f382b40-GotoStmt", + "id": "0x55e99ece4b40-GotoStmt", "uint64_t": "40" }, { - "id": "0x557b1f389520-Statement", - "statement": "0x557b1f389530-EndIfStmt", + "id": "0x55e99eceb520-Statement", + "statement": "0x55e99eceb530-EndIfStmt", "source": "endif" }, { - "id": "0x557b1f389530-EndIfStmt" + "id": "0x55e99eceb530-EndIfStmt" }, { - "id": "0x557b1f376830-ExecutionPartConstruct", + "id": "0x55e99ecd8830-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f376830-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecd8830-ExecutableConstruct" }, { - "id": "0x557b1f376830-ExecutableConstruct", + "id": "0x55e99ecd8830-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x557b1f376830-Statement" + "Statement": "0x55e99ecd8830-Statement" }, { - "id": "0x557b1f376830-Statement", - "statement": "0x557b1f376840-ActionStmt", + "id": "0x55e99ecd8830-Statement", + "statement": "0x55e99ecd8840-ActionStmt", "label": "30", "source": "30continue" }, { - "id": "0x557b1f376840-ActionStmt", + "id": "0x55e99ecd8840-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x557b1f376840-ContinueStmt" + "ContinueStmt": "0x55e99ecd8840-ContinueStmt" }, { - "id": "0x557b1f376840-ContinueStmt" + "id": "0x55e99ecd8840-ContinueStmt" }, { - "id": "0x557b1f38b1f0-Statement", - "statement": "0x557b1f38b200-EndDoStmt", + "id": "0x55e99eced1f0-Statement", + "statement": "0x55e99eced200-EndDoStmt", "source": "" }, { - "id": "0x557b1f38b200-EndDoStmt" + "id": "0x55e99eced200-EndDoStmt" }, { - "id": "0x557b1f377150-ExecutionPartConstruct", + "id": "0x55e99ecd9150-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f377150-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecd9150-ExecutableConstruct" }, { - "id": "0x557b1f377150-ExecutableConstruct", + "id": "0x55e99ecd9150-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x557b1f377150-Statement" + "Statement": "0x55e99ecd9150-Statement" }, { - "id": "0x557b1f377150-Statement", - "statement": "0x557b1f377160-ActionStmt", + "id": "0x55e99ecd9150-Statement", + "statement": "0x55e99ecd9160-ActionStmt", "label": "40", "source": "40continue" }, { - "id": "0x557b1f377160-ActionStmt", + "id": "0x55e99ecd9160-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x557b1f377160-ContinueStmt" + "ContinueStmt": "0x55e99ecd9160-ContinueStmt" }, { - "id": "0x557b1f377160-ContinueStmt" + "id": "0x55e99ecd9160-ContinueStmt" }, { - "id": "0x557b1f3761d0-ExecutionPartConstruct", + "id": "0x55e99ecd81d0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f3761d0-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecd81d0-ExecutableConstruct" }, { - "id": "0x557b1f3761d0-ExecutableConstruct", + "id": "0x55e99ecd81d0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x557b1f38b310-DoConstruct" + "DoConstruct": "0x55e99eced310-DoConstruct" }, { - "id": "0x557b1f38b310-DoConstruct", - "Statement": "0x557b1f38b368-Statement", + "id": "0x55e99eced310-DoConstruct", + "Statement": "0x55e99eced368-Statement", "ExecutionPartConstruct": [ - "0x557b1f377f30-ExecutionPartConstruct", - "0x557b1f376d90-ExecutionPartConstruct" + "0x55e99ecd9f30-ExecutionPartConstruct", + "0x55e99ecd8d90-ExecutionPartConstruct" ], - "Statement": "0x557b1f38b310-Statement" + "Statement": "0x55e99eced310-Statement" }, { - "id": "0x557b1f38b368-Statement", - "statement": "0x557b1f38b378-NonLabelDoStmt", + "id": "0x55e99eced368-Statement", + "statement": "0x55e99eced378-NonLabelDoStmt", "source": "do50i=1,1000" }, { - "id": "0x557b1f38b378-NonLabelDoStmt", - "LoopControl": "0x557b1f38b378-LoopControl" + "id": "0x55e99eced378-NonLabelDoStmt", + "LoopControl": "0x55e99eced378-LoopControl" }, { - "id": "0x557b1f38b378-LoopControl", + "id": "0x55e99eced378-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x557b1f38b378-LoopBounds" + "LoopBounds": "0x55e99eced378-LoopBounds" }, { - "id": "0x557b1f38b378-LoopBounds", - "var": "0x557b1f38b378-Name", - "lower": "0x557b1f389640-Expr", - "upper": "0x557b1f389720-Expr" + "id": "0x55e99eced378-LoopBounds", + "var": "0x55e99eced378-Name", + "lower": "0x55e99eceb640-Expr", + "upper": "0x55e99eceb720-Expr" }, { - "id": "0x557b1f38b378-Name", + "id": "0x55e99eced378-Name", "source": "i" }, { - "id": "0x557b1f389640-Expr", + "id": "0x55e99eceb640-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f389660-LiteralConstant" + "LiteralConstant": "0x55e99eceb660-LiteralConstant" }, { - "id": "0x557b1f389660-LiteralConstant", + "id": "0x55e99eceb660-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f389660-IntLiteralConstant" + "IntLiteralConstant": "0x55e99eceb660-IntLiteralConstant" }, { - "id": "0x557b1f389660-IntLiteralConstant", + "id": "0x55e99eceb660-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x557b1f389720-Expr", + "id": "0x55e99eceb720-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f389740-LiteralConstant" + "LiteralConstant": "0x55e99eceb740-LiteralConstant" }, { - "id": "0x557b1f389740-LiteralConstant", + "id": "0x55e99eceb740-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f389740-IntLiteralConstant" + "IntLiteralConstant": "0x55e99eceb740-IntLiteralConstant" }, { - "id": "0x557b1f389740-IntLiteralConstant", + "id": "0x55e99eceb740-IntLiteralConstant", "CharBlock": "1000" }, { - "id": "0x557b1f38b350-ExecutionPartConstruct" + "id": "0x55e99eced350-ExecutionPartConstruct" }, { - "id": "0x557b1f377f30-ExecutionPartConstruct", + "id": "0x55e99ecd9f30-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f377f30-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecd9f30-ExecutableConstruct" }, { - "id": "0x557b1f377f30-ExecutableConstruct", + "id": "0x55e99ecd9f30-ExecutableConstruct", "variantKey": "IfConstruct", - "IfConstruct": "0x557b1f38a5c0-IfConstruct" + "IfConstruct": "0x55e99ecec5c0-IfConstruct" }, { - "id": "0x557b1f38a5c0-IfConstruct", - "Statement": "0x557b1f38a690-Statement", + "id": "0x55e99ecec5c0-IfConstruct", + "Statement": "0x55e99ecec690-Statement", "ExecutionPartConstruct": [ - "0x557b1f3758c0-ExecutionPartConstruct", - "0x557b1f371220-ExecutionPartConstruct", - "0x557b1f3776a0-ExecutionPartConstruct", - "0x557b1f379460-ExecutionPartConstruct" + "0x55e99ecd78c0-ExecutionPartConstruct", + "0x55e99ecd3220-ExecutionPartConstruct", + "0x55e99ecd96a0-ExecutionPartConstruct", + "0x55e99ecdb460-ExecutionPartConstruct" ], - "Statement": "0x557b1f38a5c0-Statement" + "Statement": "0x55e99ecec5c0-Statement" }, { - "id": "0x557b1f38a690-Statement", - "statement": "0x557b1f38a6a0-IfThenStmt", + "id": "0x55e99ecec690-Statement", + "statement": "0x55e99ecec6a0-IfThenStmt", "source": "if(c(i).ne.1)then" }, { - "id": "0x557b1f38a6a0-IfThenStmt", - "Expr": "0x557b1f389bb0-Expr" + "id": "0x55e99ecec6a0-IfThenStmt", + "Expr": "0x55e99ecebbb0-Expr" }, { - "id": "0x557b1f389bb0-Expr", + "id": "0x55e99ecebbb0-Expr", "variantKey": "NE", - "NE": "0x557b1f389bd0-NE" + "NE": "0x55e99ecebbd0-NE" }, { - "id": "0x557b1f389bd0-NE", - "left": "0x557b1f389800-Expr", - "right": "0x557b1f389ad0-Expr", + "id": "0x55e99ecebbd0-NE", + "left": "0x55e99eceb800-Expr", + "right": "0x55e99ecebad0-Expr", "op": "NE" }, { - "id": "0x557b1f389800-Expr", + "id": "0x55e99eceb800-Expr", "variantKey": "Designator", - "Designator": "0x557b1f3b1260-Designator" + "Designator": "0x55e99ed13260-Designator" }, { - "id": "0x557b1f3b1260-Designator", + "id": "0x55e99ed13260-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f3b1270-DataRef" + "DataRef": "0x55e99ed13270-DataRef" }, { - "id": "0x557b1f3b1270-DataRef", + "id": "0x55e99ed13270-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x557b1f375870-ArrayElement" + "ArrayElement": "0x55e99ecd7870-ArrayElement" }, { - "id": "0x557b1f375870-ArrayElement", - "base": "0x557b1f375870-DataRef", + "id": "0x55e99ecd7870-ArrayElement", + "base": "0x55e99ecd7870-DataRef", "subscripts": [ - "0x557b1f398a40-SectionSubscript" + "0x55e99ecfaa40-SectionSubscript" ] }, { - "id": "0x557b1f375870-DataRef", + "id": "0x55e99ecd7870-DataRef", "variantKey": "Name", - "Name": "0x557b1f375870-Name" + "Name": "0x55e99ecd7870-Name" }, { - "id": "0x557b1f375870-Name", + "id": "0x55e99ecd7870-Name", "source": "c" }, { - "id": "0x557b1f398a40-SectionSubscript", + "id": "0x55e99ecfaa40-SectionSubscript", "variantKey": "Expr", - "Expr": "0x557b1f388950-Expr" + "Expr": "0x55e99ecea950-Expr" }, { - "id": "0x557b1f388950-Expr", + "id": "0x55e99ecea950-Expr", "variantKey": "Designator", - "Designator": "0x557b1f371500-Designator" + "Designator": "0x55e99ecd3500-Designator" }, { - "id": "0x557b1f371500-Designator", + "id": "0x55e99ecd3500-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f371510-DataRef" + "DataRef": "0x55e99ecd3510-DataRef" }, { - "id": "0x557b1f371510-DataRef", + "id": "0x55e99ecd3510-DataRef", "variantKey": "Name", - "Name": "0x557b1f371510-Name" + "Name": "0x55e99ecd3510-Name" }, { - "id": "0x557b1f371510-Name", + "id": "0x55e99ecd3510-Name", "source": "i" }, { - "id": "0x557b1f389ad0-Expr", + "id": "0x55e99ecebad0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f389af0-LiteralConstant" + "LiteralConstant": "0x55e99ecebaf0-LiteralConstant" }, { - "id": "0x557b1f389af0-LiteralConstant", + "id": "0x55e99ecebaf0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f389af0-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecebaf0-IntLiteralConstant" }, { - "id": "0x557b1f389af0-IntLiteralConstant", + "id": "0x55e99ecebaf0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x557b1f38a678-ExecutionPartConstruct" + "id": "0x55e99ecec678-ExecutionPartConstruct" }, { - "id": "0x557b1f3758c0-ExecutionPartConstruct", + "id": "0x55e99ecd78c0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f3758c0-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecd78c0-ExecutableConstruct" }, { - "id": "0x557b1f3758c0-ExecutableConstruct", + "id": "0x55e99ecd78c0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x557b1f3758c0-Statement" + "Statement": "0x55e99ecd78c0-Statement" }, { - "id": "0x557b1f3758c0-Statement", - "statement": "0x557b1f3758d0-ActionStmt", + "id": "0x55e99ecd78c0-Statement", + "statement": "0x55e99ecd78d0-ActionStmt", "source": "write(6,*)'NG'" }, { - "id": "0x557b1f3758d0-ActionStmt", + "id": "0x55e99ecd78d0-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x557b1f389f70-WriteStmt" + "WriteStmt": "0x55e99ecebf70-WriteStmt" }, { - "id": "0x557b1f389f70-WriteStmt", - "iounit": "0x557b1f389f70-IoUnit", - "format": "0x557b1f389fa0-Format", + "id": "0x55e99ecebf70-WriteStmt", + "iounit": "0x55e99ecebf70-IoUnit", + "format": "0x55e99ecebfa0-Format", "controls": [], "items": [ - "0x557b1f389e90-OutputItem" + "0x55e99ecebe90-OutputItem" ] }, { - "id": "0x557b1f389f70-IoUnit", + "id": "0x55e99ecebf70-IoUnit", "variantKey": "Expr", - "Expr": "0x557b1f389da0-Expr" + "Expr": "0x55e99ecebda0-Expr" }, { - "id": "0x557b1f389da0-Expr", + "id": "0x55e99ecebda0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f389dc0-LiteralConstant" + "LiteralConstant": "0x55e99ecebdc0-LiteralConstant" }, { - "id": "0x557b1f389dc0-LiteralConstant", + "id": "0x55e99ecebdc0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f389dc0-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecebdc0-IntLiteralConstant" }, { - "id": "0x557b1f389dc0-IntLiteralConstant", + "id": "0x55e99ecebdc0-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x557b1f389fa0-Format", + "id": "0x55e99ecebfa0-Format", "variantKey": "Star", - "Star": "0x557b1f389fa0-Star" + "Star": "0x55e99ecebfa0-Star" }, { - "id": "0x557b1f389fa0-Star" + "id": "0x55e99ecebfa0-Star" }, { - "id": "0x557b1f389e90-OutputItem", + "id": "0x55e99ecebe90-OutputItem", "variantKey": "Expr", - "Expr": "0x557b1f389e90-Expr" + "Expr": "0x55e99ecebe90-Expr" }, { - "id": "0x557b1f389e90-Expr", + "id": "0x55e99ecebe90-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f389eb0-LiteralConstant" + "LiteralConstant": "0x55e99ecebeb0-LiteralConstant" }, { - "id": "0x557b1f389eb0-LiteralConstant", + "id": "0x55e99ecebeb0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x557b1f389eb0-CharLiteralConstant" + "CharLiteralConstant": "0x55e99ecebeb0-CharLiteralConstant" }, { - "id": "0x557b1f389eb0-CharLiteralConstant", + "id": "0x55e99ecebeb0-CharLiteralConstant", "string": "NG" }, { - "id": "0x557b1f371220-ExecutionPartConstruct", + "id": "0x55e99ecd3220-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f371220-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecd3220-ExecutableConstruct" }, { - "id": "0x557b1f371220-ExecutableConstruct", + "id": "0x55e99ecd3220-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x557b1f371220-Statement" + "Statement": "0x55e99ecd3220-Statement" }, { - "id": "0x557b1f371220-Statement", - "statement": "0x557b1f371230-ActionStmt", + "id": "0x55e99ecd3220-Statement", + "statement": "0x55e99ecd3230-ActionStmt", "source": "write(6,*)'ELEMENT NUMBER = C(',i,')'" }, { - "id": "0x557b1f371230-ActionStmt", + "id": "0x55e99ecd3230-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x557b1f38a470-WriteStmt" + "WriteStmt": "0x55e99ecec470-WriteStmt" }, { - "id": "0x557b1f38a470-WriteStmt", - "iounit": "0x557b1f38a470-IoUnit", - "format": "0x557b1f38a4a0-Format", + "id": "0x55e99ecec470-WriteStmt", + "iounit": "0x55e99ecec470-IoUnit", + "format": "0x55e99ecec4a0-Format", "controls": [], "items": [ - "0x557b1f38a390-OutputItem", - "0x557b1f38a1b0-OutputItem", - "0x557b1f38a2a0-OutputItem" + "0x55e99ecec390-OutputItem", + "0x55e99ecec1b0-OutputItem", + "0x55e99ecec2a0-OutputItem" ] }, { - "id": "0x557b1f38a470-IoUnit", + "id": "0x55e99ecec470-IoUnit", "variantKey": "Expr", - "Expr": "0x557b1f38a0c0-Expr" + "Expr": "0x55e99ecec0c0-Expr" }, { - "id": "0x557b1f38a0c0-Expr", + "id": "0x55e99ecec0c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f38a0e0-LiteralConstant" + "LiteralConstant": "0x55e99ecec0e0-LiteralConstant" }, { - "id": "0x557b1f38a0e0-LiteralConstant", + "id": "0x55e99ecec0e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f38a0e0-IntLiteralConstant" + "IntLiteralConstant": "0x55e99ecec0e0-IntLiteralConstant" }, { - "id": "0x557b1f38a0e0-IntLiteralConstant", + "id": "0x55e99ecec0e0-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x557b1f38a4a0-Format", + "id": "0x55e99ecec4a0-Format", "variantKey": "Star", - "Star": "0x557b1f38a4a0-Star" + "Star": "0x55e99ecec4a0-Star" }, { - "id": "0x557b1f38a4a0-Star" + "id": "0x55e99ecec4a0-Star" }, { - "id": "0x557b1f38a390-OutputItem", + "id": "0x55e99ecec390-OutputItem", "variantKey": "Expr", - "Expr": "0x557b1f38a390-Expr" + "Expr": "0x55e99ecec390-Expr" }, { - "id": "0x557b1f38a390-Expr", + "id": "0x55e99ecec390-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f38a3b0-LiteralConstant" + "LiteralConstant": "0x55e99ecec3b0-LiteralConstant" }, { - "id": "0x557b1f38a3b0-LiteralConstant", + "id": "0x55e99ecec3b0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x557b1f38a3b0-CharLiteralConstant" + "CharLiteralConstant": "0x55e99ecec3b0-CharLiteralConstant" }, { - "id": "0x557b1f38a3b0-CharLiteralConstant", + "id": "0x55e99ecec3b0-CharLiteralConstant", "string": "ELEMENT NUMBER = C(" }, { - "id": "0x557b1f38a1b0-OutputItem", + "id": "0x55e99ecec1b0-OutputItem", "variantKey": "Expr", - "Expr": "0x557b1f38a1b0-Expr" + "Expr": "0x55e99ecec1b0-Expr" }, { - "id": "0x557b1f38a1b0-Expr", + "id": "0x55e99ecec1b0-Expr", "variantKey": "Designator", - "Designator": "0x557b1f377030-Designator" + "Designator": "0x55e99ecd9030-Designator" }, { - "id": "0x557b1f377030-Designator", + "id": "0x55e99ecd9030-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f377040-DataRef" + "DataRef": "0x55e99ecd9040-DataRef" }, { - "id": "0x557b1f377040-DataRef", + "id": "0x55e99ecd9040-DataRef", "variantKey": "Name", - "Name": "0x557b1f377040-Name" + "Name": "0x55e99ecd9040-Name" }, { - "id": "0x557b1f377040-Name", + "id": "0x55e99ecd9040-Name", "source": "i" }, { - "id": "0x557b1f38a2a0-OutputItem", + "id": "0x55e99ecec2a0-OutputItem", "variantKey": "Expr", - "Expr": "0x557b1f38a2a0-Expr" + "Expr": "0x55e99ecec2a0-Expr" }, { - "id": "0x557b1f38a2a0-Expr", + "id": "0x55e99ecec2a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f38a2c0-LiteralConstant" + "LiteralConstant": "0x55e99ecec2c0-LiteralConstant" }, { - "id": "0x557b1f38a2c0-LiteralConstant", + "id": "0x55e99ecec2c0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x557b1f38a2c0-CharLiteralConstant" + "CharLiteralConstant": "0x55e99ecec2c0-CharLiteralConstant" }, { - "id": "0x557b1f38a2c0-CharLiteralConstant", + "id": "0x55e99ecec2c0-CharLiteralConstant", "string": ")" }, { - "id": "0x557b1f3776a0-ExecutionPartConstruct", + "id": "0x55e99ecd96a0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f3776a0-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecd96a0-ExecutableConstruct" }, { - "id": "0x557b1f3776a0-ExecutableConstruct", + "id": "0x55e99ecd96a0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x557b1f3776a0-Statement" + "Statement": "0x55e99ecd96a0-Statement" }, { - "id": "0x557b1f3776a0-Statement", - "statement": "0x557b1f3776b0-ActionStmt", + "id": "0x55e99ecd96a0-Statement", + "statement": "0x55e99ecd96b0-ActionStmt", "source": "code=1" }, { - "id": "0x557b1f3776b0-ActionStmt", + "id": "0x55e99ecd96b0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x557b1f3898e0-AssignmentStmt" + "AssignmentStmt": "0x55e99eceb8e0-AssignmentStmt" }, { - "id": "0x557b1f3898e0-AssignmentStmt", - "Variable": "0x557b1f3899c0-Variable", - "Expr": "0x557b1f3898f0-Expr" + "id": "0x55e99eceb8e0-AssignmentStmt", + "Variable": "0x55e99eceb9c0-Variable", + "Expr": "0x55e99eceb8f0-Expr" }, { - "id": "0x557b1f3899c0-Variable", + "id": "0x55e99eceb9c0-Variable", "variantKey": "Designator", - "Designator": "0x557b1f377470-Designator" + "Designator": "0x55e99ecd9470-Designator" }, { - "id": "0x557b1f377470-Designator", + "id": "0x55e99ecd9470-Designator", "variantKey": "DataRef", - "DataRef": "0x557b1f377480-DataRef" + "DataRef": "0x55e99ecd9480-DataRef" }, { - "id": "0x557b1f377480-DataRef", + "id": "0x55e99ecd9480-DataRef", "variantKey": "Name", - "Name": "0x557b1f377480-Name" + "Name": "0x55e99ecd9480-Name" }, { - "id": "0x557b1f377480-Name", + "id": "0x55e99ecd9480-Name", "source": "code" }, { - "id": "0x557b1f3898f0-Expr", + "id": "0x55e99eceb8f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557b1f389910-LiteralConstant" + "LiteralConstant": "0x55e99eceb910-LiteralConstant" }, { - "id": "0x557b1f389910-LiteralConstant", + "id": "0x55e99eceb910-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557b1f389910-IntLiteralConstant" + "IntLiteralConstant": "0x55e99eceb910-IntLiteralConstant" }, { - "id": "0x557b1f389910-IntLiteralConstant", + "id": "0x55e99eceb910-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x557b1f379460-ExecutionPartConstruct", + "id": "0x55e99ecdb460-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f379460-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecdb460-ExecutableConstruct" }, { - "id": "0x557b1f379460-ExecutableConstruct", + "id": "0x55e99ecdb460-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x557b1f379460-Statement" + "Statement": "0x55e99ecdb460-Statement" }, { - "id": "0x557b1f379460-Statement", - "statement": "0x557b1f379470-ActionStmt", + "id": "0x55e99ecdb460-Statement", + "statement": "0x55e99ecdb470-ActionStmt", "source": "goto60" }, { - "id": "0x557b1f379470-ActionStmt", + "id": "0x55e99ecdb470-ActionStmt", "variantKey": "GotoStmt", - "GotoStmt": "0x557b1f37f810-GotoStmt" + "GotoStmt": "0x55e99ece1810-GotoStmt" }, { - "id": "0x557b1f37f810-GotoStmt", + "id": "0x55e99ece1810-GotoStmt", "uint64_t": "60" }, { - "id": "0x557b1f38a5c0-Statement", - "statement": "0x557b1f38a5d0-EndIfStmt", + "id": "0x55e99ecec5c0-Statement", + "statement": "0x55e99ecec5d0-EndIfStmt", "source": "endif" }, { - "id": "0x557b1f38a5d0-EndIfStmt" + "id": "0x55e99ecec5d0-EndIfStmt" }, { - "id": "0x557b1f376d90-ExecutionPartConstruct", + "id": "0x55e99ecd8d90-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f376d90-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecd8d90-ExecutableConstruct" }, { - "id": "0x557b1f376d90-ExecutableConstruct", + "id": "0x55e99ecd8d90-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x557b1f376d90-Statement" + "Statement": "0x55e99ecd8d90-Statement" }, { - "id": "0x557b1f376d90-Statement", - "statement": "0x557b1f376da0-ActionStmt", + "id": "0x55e99ecd8d90-Statement", + "statement": "0x55e99ecd8da0-ActionStmt", "label": "50", "source": "50continue" }, { - "id": "0x557b1f376da0-ActionStmt", + "id": "0x55e99ecd8da0-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x557b1f376da0-ContinueStmt" + "ContinueStmt": "0x55e99ecd8da0-ContinueStmt" }, { - "id": "0x557b1f376da0-ContinueStmt" + "id": "0x55e99ecd8da0-ContinueStmt" }, { - "id": "0x557b1f38b310-Statement", - "statement": "0x557b1f38b320-EndDoStmt", + "id": "0x55e99eced310-Statement", + "statement": "0x55e99eced320-EndDoStmt", "source": "" }, { - "id": "0x557b1f38b320-EndDoStmt" + "id": "0x55e99eced320-EndDoStmt" }, { - "id": "0x557b1f370fa0-ExecutionPartConstruct", + "id": "0x55e99ecd2fa0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f370fa0-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecd2fa0-ExecutableConstruct" }, { - "id": "0x557b1f370fa0-ExecutableConstruct", + "id": "0x55e99ecd2fa0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x557b1f370fa0-Statement" + "Statement": "0x55e99ecd2fa0-Statement" }, { - "id": "0x557b1f370fa0-Statement", - "statement": "0x557b1f370fb0-ActionStmt", + "id": "0x55e99ecd2fa0-Statement", + "statement": "0x55e99ecd2fb0-ActionStmt", "label": "60", "source": "60continue" }, { - "id": "0x557b1f370fb0-ActionStmt", + "id": "0x55e99ecd2fb0-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x557b1f370fb0-ContinueStmt" + "ContinueStmt": "0x55e99ecd2fb0-ContinueStmt" }, { - "id": "0x557b1f370fb0-ContinueStmt" + "id": "0x55e99ecd2fb0-ContinueStmt" }, { - "id": "0x557b1f371280-ExecutionPartConstruct", + "id": "0x55e99ecd3280-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557b1f371280-ExecutableConstruct" + "ExecutableConstruct": "0x55e99ecd3280-ExecutableConstruct" }, { - "id": "0x557b1f371280-ExecutableConstruct", + "id": "0x55e99ecd3280-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x557b1f371280-Statement" + "Statement": "0x55e99ecd3280-Statement" }, { - "id": "0x557b1f371280-Statement", - "statement": "0x557b1f371290-ActionStmt", + "id": "0x55e99ecd3280-Statement", + "statement": "0x55e99ecd3290-ActionStmt", "source": "return" }, { - "id": "0x557b1f371290-ActionStmt", + "id": "0x55e99ecd3290-ActionStmt", "variantKey": "ReturnStmt", - "ReturnStmt": "0x557b1f382e00-ReturnStmt" + "ReturnStmt": "0x55e99ece4e00-ReturnStmt" }, { - "id": "0x557b1f382e00-ReturnStmt" + "id": "0x55e99ece4e00-ReturnStmt" }, { - "id": "0x557b1f38bdf0-Statement", - "statement": "0x557b1f38be00-EndSubroutineStmt", + "id": "0x55e99eceddf0-Statement", + "statement": "0x55e99ecede00-EndSubroutineStmt", "source": "end" }, { - "id": "0x557b1f38be00-EndSubroutineStmt" + "id": "0x55e99ecede00-EndSubroutineStmt" } ], "comments": [ { "text": "", - "stmtId": "0x557b1f370df0-Statement", + "stmtId": "0x55e99ecd2df0-Statement", "trailing": false }, { "text": "", - "stmtId": "0x557b1f372150-Statement", + "stmtId": "0x55e99ecd4150-Statement", "trailing": false }, { "text": "", - "stmtId": "0x557b1f3729d0-Statement", + "stmtId": "0x55e99ecd49d0-Statement", "trailing": false }, { "text": "", - "stmtId": "0x557b1f38bf38-Statement", + "stmtId": "0x55e99ecedf38-Statement", "trailing": false }, { "text": "", - "stmtId": "0x557b1f378460-Statement", + "stmtId": "0x55e99ecda460-Statement", "trailing": false }, { "text": "", - "stmtId": "0x557b1f38b128-Statement", + "stmtId": "0x55e99eced128-Statement", "trailing": false }, { "text": "", - "stmtId": "0x557b1f379240-Statement", + "stmtId": "0x55e99ecdb240-Statement", "trailing": false }, { "text": "", - "stmtId": "0x557b1f377150-Statement", + "stmtId": "0x55e99ecd9150-Statement", "trailing": false }, { "text": "", - "stmtId": "0x557b1f370fa0-Statement", + "stmtId": "0x55e99ecd2fa0-Statement", "trailing": false } ], diff --git a/FortranParser/resources-test/fortran/parser/hello.json b/FortranParser/resources-test/fortran/parser/hello.json index 2a1cef6a..9c207b2d 100644 --- a/FortranParser/resources-test/fortran/parser/hello.json +++ b/FortranParser/resources-test/fortran/parser/hello.json @@ -1,332 +1,333 @@ { + "fileExtension": "f90", "nodes": [ { - "id": "0x561cfdde3f00-Program", + "id": "0x55c6aab29f00-Program", "ProgramUnit": [ - "0x561cfde18cb0-ProgramUnit" + "0x55c6aab5ec20-ProgramUnit" ] }, { - "id": "0x561cfde18cb0-ProgramUnit", + "id": "0x55c6aab5ec20-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x561cfde11d00-MainProgram" + "MainProgram": "0x55c6aab57c80-MainProgram" }, { - "id": "0x561cfde11d00-MainProgram", - "Statement": "0x561cfde11e48-Statement", - "SpecificationPart": "0x561cfde11da0-SpecificationPart", - "ExecutionPart": "0x561cfde11d88-ExecutionPart", - "Statement": "0x561cfde11d00-Statement" + "id": "0x55c6aab57c80-MainProgram", + "Statement": "0x55c6aab57dc8-Statement", + "SpecificationPart": "0x55c6aab57d20-SpecificationPart", + "ExecutionPart": "0x55c6aab57d08-ExecutionPart", + "Statement": "0x55c6aab57c80-Statement" }, { - "id": "0x561cfde11e48-Statement", - "statement": "0x561cfde11e58-ProgramStmt", + "id": "0x55c6aab57dc8-Statement", + "statement": "0x55c6aab57dd8-ProgramStmt", "source": "program HELLO" }, { - "id": "0x561cfde11e58-ProgramStmt", - "Name": "0x561cfde11e58-Name" + "id": "0x55c6aab57dd8-ProgramStmt", + "Name": "0x55c6aab57dd8-Name" }, { - "id": "0x561cfde11e58-Name", + "id": "0x55c6aab57dd8-Name", "source": "HELLO" }, { - "id": "0x561cfde11da0-SpecificationPart", - "ImplicitPart": "0x561cfde11db8-ImplicitPart" + "id": "0x55c6aab57d20-SpecificationPart", + "ImplicitPart": "0x55c6aab57d38-ImplicitPart" }, { - "id": "0x561cfde11db8-ImplicitPart" + "id": "0x55c6aab57d38-ImplicitPart" }, { - "id": "0x561cfde11d88-ExecutionPart", + "id": "0x55c6aab57d08-ExecutionPart", "ExecutionPartConstruct": [ - "0x561cfde23c10-ExecutionPartConstruct", - "0x561cfde20560-ExecutionPartConstruct", - "0x561cfde23c70-ExecutionPartConstruct", - "0x561cfddf1170-ExecutionPartConstruct" + "0x55c6aab699b0-ExecutionPartConstruct", + "0x55c6aab664f0-ExecutionPartConstruct", + "0x55c6aab69a10-ExecutionPartConstruct", + "0x55c6aab37170-ExecutionPartConstruct" ] }, { - "id": "0x561cfde11d88-ExecutionPartConstruct" + "id": "0x55c6aab57d08-ExecutionPartConstruct" }, { - "id": "0x561cfde23c10-ExecutionPartConstruct", + "id": "0x55c6aab699b0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561cfde23c10-ExecutableConstruct" + "ExecutableConstruct": "0x55c6aab699b0-ExecutableConstruct" }, { - "id": "0x561cfde23c10-ExecutableConstruct", + "id": "0x55c6aab699b0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561cfde23c10-Statement" + "Statement": "0x55c6aab699b0-Statement" }, { - "id": "0x561cfde23c10-Statement", - "statement": "0x561cfde23c20-ActionStmt", + "id": "0x55c6aab699b0-Statement", + "statement": "0x55c6aab699c0-ActionStmt", "source": "print *, 'Hello, World!'" }, { - "id": "0x561cfde23c20-ActionStmt", + "id": "0x55c6aab699c0-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x561cfdd99260-PrintStmt" + "PrintStmt": "0x55c6aaadf260-PrintStmt" }, { - "id": "0x561cfdd99260-PrintStmt", - "Format": "0x561cfdd99278-Format", + "id": "0x55c6aaadf260-PrintStmt", + "Format": "0x55c6aaadf278-Format", "OutputItem": [ - "0x561cfde24ea0-OutputItem" + "0x55c6aab6adf0-OutputItem" ] }, { - "id": "0x561cfdd99278-Format", + "id": "0x55c6aaadf278-Format", "variantKey": "Star", - "Star": "0x561cfdd99278-Star" + "Star": "0x55c6aaadf278-Star" }, { - "id": "0x561cfdd99278-Star" + "id": "0x55c6aaadf278-Star" }, { - "id": "0x561cfde24ea0-OutputItem", + "id": "0x55c6aab6adf0-OutputItem", "variantKey": "Expr", - "Expr": "0x561cfde24ea0-Expr" + "Expr": "0x55c6aab6adf0-Expr" }, { - "id": "0x561cfde24ea0-Expr", + "id": "0x55c6aab6adf0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561cfde24ec0-LiteralConstant" + "LiteralConstant": "0x55c6aab6ae10-LiteralConstant" }, { - "id": "0x561cfde24ec0-LiteralConstant", + "id": "0x55c6aab6ae10-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x561cfde24ec0-CharLiteralConstant" + "CharLiteralConstant": "0x55c6aab6ae10-CharLiteralConstant" }, { - "id": "0x561cfde24ec0-CharLiteralConstant", + "id": "0x55c6aab6ae10-CharLiteralConstant", "string": "Hello, World!" }, { - "id": "0x561cfde20560-ExecutionPartConstruct", + "id": "0x55c6aab664f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561cfde20560-ExecutableConstruct" + "ExecutableConstruct": "0x55c6aab664f0-ExecutableConstruct" }, { - "id": "0x561cfde20560-ExecutableConstruct", + "id": "0x55c6aab664f0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561cfde20560-Statement" + "Statement": "0x55c6aab664f0-Statement" }, { - "id": "0x561cfde20560-Statement", - "statement": "0x561cfde20570-ActionStmt", + "id": "0x55c6aab664f0-Statement", + "statement": "0x55c6aab66500-ActionStmt", "source": "print 100, 'Hello, World!', 2" }, { - "id": "0x561cfde20570-ActionStmt", + "id": "0x55c6aab66500-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x561cfde20450-PrintStmt" + "PrintStmt": "0x55c6aab663e0-PrintStmt" }, { - "id": "0x561cfde20450-PrintStmt", - "Format": "0x561cfde20468-Format", + "id": "0x55c6aab663e0-PrintStmt", + "Format": "0x55c6aab663f8-Format", "OutputItem": [ - "0x561cfde20370-OutputItem", - "0x561cfde22c70-OutputItem" + "0x55c6aab66300-OutputItem", + "0x55c6aab68bc0-OutputItem" ] }, { - "id": "0x561cfde20468-Format", + "id": "0x55c6aab663f8-Format", "variantKey": "uint64_t", "uint64_t": "100" }, { - "id": "0x561cfde20370-OutputItem", + "id": "0x55c6aab66300-OutputItem", "variantKey": "Expr", - "Expr": "0x561cfde20370-Expr" + "Expr": "0x55c6aab66300-Expr" }, { - "id": "0x561cfde20370-Expr", + "id": "0x55c6aab66300-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561cfde20390-LiteralConstant" + "LiteralConstant": "0x55c6aab66320-LiteralConstant" }, { - "id": "0x561cfde20390-LiteralConstant", + "id": "0x55c6aab66320-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x561cfde20390-CharLiteralConstant" + "CharLiteralConstant": "0x55c6aab66320-CharLiteralConstant" }, { - "id": "0x561cfde20390-CharLiteralConstant", + "id": "0x55c6aab66320-CharLiteralConstant", "string": "Hello, World!" }, { - "id": "0x561cfde22c70-OutputItem", + "id": "0x55c6aab68bc0-OutputItem", "variantKey": "Expr", - "Expr": "0x561cfde22c70-Expr" + "Expr": "0x55c6aab68bc0-Expr" }, { - "id": "0x561cfde22c70-Expr", + "id": "0x55c6aab68bc0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561cfde22c90-LiteralConstant" + "LiteralConstant": "0x55c6aab68be0-LiteralConstant" }, { - "id": "0x561cfde22c90-LiteralConstant", + "id": "0x55c6aab68be0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561cfde22c90-IntLiteralConstant" + "IntLiteralConstant": "0x55c6aab68be0-IntLiteralConstant" }, { - "id": "0x561cfde22c90-IntLiteralConstant", + "id": "0x55c6aab68be0-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x561cfde23c70-ExecutionPartConstruct", + "id": "0x55c6aab69a10-ExecutionPartConstruct", "variantKey": "Statement", - "Statement": "0x561cfde23c70-Statement" + "Statement": "0x55c6aab69a10-Statement" }, { - "id": "0x561cfde23c70-Statement", - "statement": "0x561cfde26380-FormatStmt", + "id": "0x55c6aab69a10-Statement", + "statement": "0x55c6aab6c2f0-FormatStmt", "label": "100", "source": "100 format(a, i3)" }, { - "id": "0x561cfde26380-FormatStmt", - "FormatSpecification": "0x561cfde26380-FormatSpecification" + "id": "0x55c6aab6c2f0-FormatStmt", + "FormatSpecification": "0x55c6aab6c2f0-FormatSpecification" }, { - "id": "0x561cfde26380-FormatSpecification", + "id": "0x55c6aab6c2f0-FormatSpecification", "items": [ - "0x561cfde24810-FormatItem", - "0x561cfde24e30-FormatItem" + "0x55c6aab6a760-FormatItem", + "0x55c6aab6ad80-FormatItem" ], "unlimitedItems": [] }, { - "id": "0x561cfde24810-FormatItem", + "id": "0x55c6aab6a760-FormatItem", "variantKey": "IntrinsicTypeDataEditDesc", - "IntrinsicTypeDataEditDesc": "0x561cfde24820-IntrinsicTypeDataEditDesc" + "IntrinsicTypeDataEditDesc": "0x55c6aab6a770-IntrinsicTypeDataEditDesc" }, { - "id": "0x561cfde24820-IntrinsicTypeDataEditDesc", - "kind": "0x561cfde24820-Kind" + "id": "0x55c6aab6a770-IntrinsicTypeDataEditDesc", + "kind": "0x55c6aab6a770-Kind" }, { - "id": "0x561cfde24820-Kind" + "id": "0x55c6aab6a770-Kind" }, { - "id": "0x561cfde24e30-FormatItem", + "id": "0x55c6aab6ad80-FormatItem", "variantKey": "IntrinsicTypeDataEditDesc", - "IntrinsicTypeDataEditDesc": "0x561cfde24e40-IntrinsicTypeDataEditDesc" + "IntrinsicTypeDataEditDesc": "0x55c6aab6ad90-IntrinsicTypeDataEditDesc" }, { - "id": "0x561cfde24e40-IntrinsicTypeDataEditDesc", - "kind": "0x561cfde24e40-Kind", + "id": "0x55c6aab6ad90-IntrinsicTypeDataEditDesc", + "kind": "0x55c6aab6ad90-Kind", "width": "3" }, { - "id": "0x561cfde24e40-Kind" + "id": "0x55c6aab6ad90-Kind" }, { - "id": "0x561cfddf1170-ExecutionPartConstruct", + "id": "0x55c6aab37170-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561cfddf1170-ExecutableConstruct" + "ExecutableConstruct": "0x55c6aab37170-ExecutableConstruct" }, { - "id": "0x561cfddf1170-ExecutableConstruct", + "id": "0x55c6aab37170-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561cfddf1170-Statement" + "Statement": "0x55c6aab37170-Statement" }, { - "id": "0x561cfddf1170-Statement", - "statement": "0x561cfddf1180-ActionStmt", + "id": "0x55c6aab37170-Statement", + "statement": "0x55c6aab37180-ActionStmt", "label": "20", "source": "20 print '(A, F6.3)', 'Value = ', 3" }, { - "id": "0x561cfddf1180-ActionStmt", + "id": "0x55c6aab37180-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x561cfde0ebd0-PrintStmt" + "PrintStmt": "0x55c6aab54bd0-PrintStmt" }, { - "id": "0x561cfde0ebd0-PrintStmt", - "Format": "0x561cfde0ebe8-Format", + "id": "0x55c6aab54bd0-PrintStmt", + "Format": "0x55c6aab54be8-Format", "OutputItem": [ - "0x561cfde0eaf0-OutputItem", - "0x561cfde0ea00-OutputItem" + "0x55c6aab54af0-OutputItem", + "0x55c6aab54a00-OutputItem" ] }, { - "id": "0x561cfde0ebe8-Format", + "id": "0x55c6aab54be8-Format", "variantKey": "Expr", - "Expr": "0x561cfde0ebe8-Expr" + "Expr": "0x55c6aab54be8-Expr" }, { - "id": "0x561cfde0ebe8-Expr", + "id": "0x55c6aab54be8-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561cfde0ec08-LiteralConstant" + "LiteralConstant": "0x55c6aab54c08-LiteralConstant" }, { - "id": "0x561cfde0ec08-LiteralConstant", + "id": "0x55c6aab54c08-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x561cfde0ec08-CharLiteralConstant" + "CharLiteralConstant": "0x55c6aab54c08-CharLiteralConstant" }, { - "id": "0x561cfde0ec08-CharLiteralConstant", + "id": "0x55c6aab54c08-CharLiteralConstant", "string": "(A, F6.3)" }, { - "id": "0x561cfde0eaf0-OutputItem", + "id": "0x55c6aab54af0-OutputItem", "variantKey": "Expr", - "Expr": "0x561cfde0eaf0-Expr" + "Expr": "0x55c6aab54af0-Expr" }, { - "id": "0x561cfde0eaf0-Expr", + "id": "0x55c6aab54af0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561cfde0eb10-LiteralConstant" + "LiteralConstant": "0x55c6aab54b10-LiteralConstant" }, { - "id": "0x561cfde0eb10-LiteralConstant", + "id": "0x55c6aab54b10-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x561cfde0eb10-CharLiteralConstant" + "CharLiteralConstant": "0x55c6aab54b10-CharLiteralConstant" }, { - "id": "0x561cfde0eb10-CharLiteralConstant", + "id": "0x55c6aab54b10-CharLiteralConstant", "string": "Value = " }, { - "id": "0x561cfde0ea00-OutputItem", + "id": "0x55c6aab54a00-OutputItem", "variantKey": "Expr", - "Expr": "0x561cfde0ea00-Expr" + "Expr": "0x55c6aab54a00-Expr" }, { - "id": "0x561cfde0ea00-Expr", + "id": "0x55c6aab54a00-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561cfde0ea20-LiteralConstant" + "LiteralConstant": "0x55c6aab54a20-LiteralConstant" }, { - "id": "0x561cfde0ea20-LiteralConstant", + "id": "0x55c6aab54a20-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561cfde0ea20-IntLiteralConstant" + "IntLiteralConstant": "0x55c6aab54a20-IntLiteralConstant" }, { - "id": "0x561cfde0ea20-IntLiteralConstant", + "id": "0x55c6aab54a20-IntLiteralConstant", "CharBlock": "3" }, { - "id": "0x561cfde11d00-Statement", - "statement": "0x561cfde11d10-EndProgramStmt", + "id": "0x55c6aab57c80-Statement", + "statement": "0x55c6aab57c90-EndProgramStmt", "source": "end program HELLO" }, { - "id": "0x561cfde11d10-EndProgramStmt", - "Name": "0x561cfde11d10-Name" + "id": "0x55c6aab57c90-EndProgramStmt", + "Name": "0x55c6aab57c90-Name" }, { - "id": "0x561cfde11d10-Name", + "id": "0x55c6aab57c90-Name", "source": "HELLO" } ], "comments": [ { - "text": "! This is a comment line; it is ignored by the compiler", - "stmtId": "0x561cfde23c10-Statement", + "text": " This is a comment line; it is ignored by the compiler", + "stmtId": "0x55c6aab699b0-Statement", "trailing": false } ], diff --git a/FortranParser/resources-test/fortran/parser/polybench/3mm.json b/FortranParser/resources-test/fortran/parser/polybench/3mm.json index e47f66e4..ba455bbe 100644 --- a/FortranParser/resources-test/fortran/parser/polybench/3mm.json +++ b/FortranParser/resources-test/fortran/parser/polybench/3mm.json @@ -1,10534 +1,10535 @@ { + "fileExtension": "f90", "nodes": [ { - "id": "0x55eadb461f00-Program", + "id": "0x558d739a5f00-Program", "ProgramUnit": [ - "0x55eadb4aef80-ProgramUnit" + "0x558d739f36c0-ProgramUnit" ] }, { - "id": "0x55eadb4aef80-ProgramUnit", + "id": "0x558d739f36c0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x55eadb4a00a0-MainProgram" + "MainProgram": "0x558d739e4030-MainProgram" }, { - "id": "0x55eadb4a00a0-MainProgram", - "Statement": "0x55eadb4a01e8-Statement", - "SpecificationPart": "0x55eadb4a0140-SpecificationPart", - "ExecutionPart": "0x55eadb4a0128-ExecutionPart", - "InternalSubprogramPart": "0x55eadb4a00e0-InternalSubprogramPart", - "Statement": "0x55eadb4a00a0-Statement" + "id": "0x558d739e4030-MainProgram", + "Statement": "0x558d739e4178-Statement", + "SpecificationPart": "0x558d739e40d0-SpecificationPart", + "ExecutionPart": "0x558d739e40b8-ExecutionPart", + "InternalSubprogramPart": "0x558d739e4070-InternalSubprogramPart", + "Statement": "0x558d739e4030-Statement" }, { - "id": "0x55eadb4a01e8-Statement", - "statement": "0x55eadb4a01f8-ProgramStmt", + "id": "0x558d739e4178-Statement", + "statement": "0x558d739e4188-ProgramStmt", "source": "program THREE_MM" }, { - "id": "0x55eadb4a01f8-ProgramStmt", - "Name": "0x55eadb4a01f8-Name" + "id": "0x558d739e4188-ProgramStmt", + "Name": "0x558d739e4188-Name" }, { - "id": "0x55eadb4a01f8-Name", + "id": "0x558d739e4188-Name", "source": "THREE_MM" }, { - "id": "0x55eadb4a0140-SpecificationPart", - "ImplicitPart": "0x55eadb4a0158-ImplicitPart", + "id": "0x558d739e40d0-SpecificationPart", + "ImplicitPart": "0x558d739e40e8-ImplicitPart", "DeclarationConstruct": [ - "0x55eadb46f110-DeclarationConstruct", - "0x55eadb46eda0-DeclarationConstruct", - "0x55eadb4a47b0-DeclarationConstruct", - "0x55eadb4172e0-DeclarationConstruct", - "0x55eadb48c9c0-DeclarationConstruct", - "0x55eadb48cc30-DeclarationConstruct", - "0x55eadb48cea0-DeclarationConstruct", - "0x55eadb46f170-DeclarationConstruct" + "0x558d739b3110-DeclarationConstruct", + "0x558d739b2da0-DeclarationConstruct", + "0x558d739e8700-DeclarationConstruct", + "0x558d739e8760-DeclarationConstruct", + "0x558d739d0870-DeclarationConstruct", + "0x558d739d0b60-DeclarationConstruct", + "0x558d739d0dd0-DeclarationConstruct", + "0x558d739b3170-DeclarationConstruct" ] }, { - "id": "0x55eadb4a0158-ImplicitPart" + "id": "0x558d739e40e8-ImplicitPart" }, { - "id": "0x55eadb46f110-DeclarationConstruct", + "id": "0x558d739b3110-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55eadb46f110-SpecificationConstruct" + "SpecificationConstruct": "0x558d739b3110-SpecificationConstruct" }, { - "id": "0x55eadb46f110-SpecificationConstruct", + "id": "0x558d739b3110-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55eadb46f110-Statement" + "Statement": "0x558d739b3110-Statement" }, { - "id": "0x55eadb46f110-Statement", - "statement": "0x55eadb4a3f50-TypeDeclarationStmt", + "id": "0x558d739b3110-Statement", + "statement": "0x558d739e7ea0-TypeDeclarationStmt", "source": "double precision, dimension(:, :), allocatable :: a" }, { - "id": "0x55eadb4a3f50-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55eadb4a3f80-DeclarationTypeSpec", + "id": "0x558d739e7ea0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558d739e7ed0-DeclarationTypeSpec", "AttrSpec": [ - "0x55eadb4a6ff0-AttrSpec", - "0x55eadb496460-AttrSpec" + "0x558d739e3e20-AttrSpec", + "0x558d739eaf80-AttrSpec" ], "EntityDecl": [ - "0x55eadb4a4300-EntityDecl" + "0x558d739e8250-EntityDecl" ] }, { - "id": "0x55eadb4a3f80-DeclarationTypeSpec", + "id": "0x558d739e7ed0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55eadb4a3f80-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x558d739e7ed0-IntrinsicTypeSpec" }, { - "id": "0x55eadb4a3f80-IntrinsicTypeSpec", + "id": "0x558d739e7ed0-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x55eadb4a3f80-DoublePrecision" + "DoublePrecision": "0x558d739e7ed0-DoublePrecision" }, { - "id": "0x55eadb4a3f80-DoublePrecision" + "id": "0x558d739e7ed0-DoublePrecision" }, { - "id": "0x55eadb4a6ff0-AttrSpec", + "id": "0x558d739e3e20-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x55eadb4a6ff0-ArraySpec" + "ArraySpec": "0x558d739e3e20-ArraySpec" }, { - "id": "0x55eadb4a6ff0-ArraySpec", + "id": "0x558d739e3e20-ArraySpec", "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x55eadb4a6ff0-DeferredShapeSpecList" + "DeferredShapeSpecList": "0x558d739e3e20-DeferredShapeSpecList" }, { - "id": "0x55eadb4a6ff0-DeferredShapeSpecList", + "id": "0x558d739e3e20-DeferredShapeSpecList", "int": "2" }, { - "id": "0x55eadb496460-AttrSpec", + "id": "0x558d739eaf80-AttrSpec", "variantKey": "Allocatable", - "Allocatable": "0x55eadb496460-Allocatable" + "Allocatable": "0x558d739eaf80-Allocatable" }, { - "id": "0x55eadb496460-Allocatable", + "id": "0x558d739eaf80-Allocatable", "keyword": "Allocatable" }, { - "id": "0x55eadb4a4300-EntityDecl", - "Name": "0x55eadb4a43b8-Name" + "id": "0x558d739e8250-EntityDecl", + "Name": "0x558d739e8308-Name" }, { - "id": "0x55eadb4a43b8-Name", + "id": "0x558d739e8308-Name", "source": "a" }, { - "id": "0x55eadb46eda0-DeclarationConstruct", + "id": "0x558d739b2da0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55eadb46eda0-SpecificationConstruct" + "SpecificationConstruct": "0x558d739b2da0-SpecificationConstruct" }, { - "id": "0x55eadb46eda0-SpecificationConstruct", + "id": "0x558d739b2da0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55eadb46eda0-Statement" + "Statement": "0x558d739b2da0-Statement" }, { - "id": "0x55eadb46eda0-Statement", - "statement": "0x55eadb4a3fd0-TypeDeclarationStmt", + "id": "0x558d739b2da0-Statement", + "statement": "0x558d739e7f20-TypeDeclarationStmt", "source": "double precision, dimension(:, :), allocatable :: b" }, { - "id": "0x55eadb4a3fd0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55eadb4a4000-DeclarationTypeSpec", + "id": "0x558d739e7f20-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558d739e7f50-DeclarationTypeSpec", "AttrSpec": [ - "0x55eadb498210-AttrSpec", - "0x55eadb49fe90-AttrSpec" + "0x558d739dc1a0-AttrSpec", + "0x558d739bec80-AttrSpec" ], "EntityDecl": [ - "0x55eadb4a4550-EntityDecl" + "0x558d739e84a0-EntityDecl" ] }, { - "id": "0x55eadb4a4000-DeclarationTypeSpec", + "id": "0x558d739e7f50-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55eadb4a4000-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x558d739e7f50-IntrinsicTypeSpec" }, { - "id": "0x55eadb4a4000-IntrinsicTypeSpec", + "id": "0x558d739e7f50-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x55eadb4a4000-DoublePrecision" + "DoublePrecision": "0x558d739e7f50-DoublePrecision" }, { - "id": "0x55eadb4a4000-DoublePrecision" + "id": "0x558d739e7f50-DoublePrecision" }, { - "id": "0x55eadb498210-AttrSpec", + "id": "0x558d739dc1a0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x55eadb498210-ArraySpec" + "ArraySpec": "0x558d739dc1a0-ArraySpec" }, { - "id": "0x55eadb498210-ArraySpec", + "id": "0x558d739dc1a0-ArraySpec", "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x55eadb498210-DeferredShapeSpecList" + "DeferredShapeSpecList": "0x558d739dc1a0-DeferredShapeSpecList" }, { - "id": "0x55eadb498210-DeferredShapeSpecList", + "id": "0x558d739dc1a0-DeferredShapeSpecList", "int": "2" }, { - "id": "0x55eadb49fe90-AttrSpec", + "id": "0x558d739bec80-AttrSpec", "variantKey": "Allocatable", - "Allocatable": "0x55eadb49fe90-Allocatable" + "Allocatable": "0x558d739bec80-Allocatable" }, { - "id": "0x55eadb49fe90-Allocatable", + "id": "0x558d739bec80-Allocatable", "keyword": "Allocatable" }, { - "id": "0x55eadb4a4550-EntityDecl", - "Name": "0x55eadb4a4608-Name" + "id": "0x558d739e84a0-EntityDecl", + "Name": "0x558d739e8558-Name" }, { - "id": "0x55eadb4a4608-Name", + "id": "0x558d739e8558-Name", "source": "b" }, { - "id": "0x55eadb4a47b0-DeclarationConstruct", + "id": "0x558d739e8700-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55eadb4a47b0-SpecificationConstruct" + "SpecificationConstruct": "0x558d739e8700-SpecificationConstruct" }, { - "id": "0x55eadb4a47b0-SpecificationConstruct", + "id": "0x558d739e8700-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4a47b0-Statement" + "Statement": "0x558d739e8700-Statement" }, { - "id": "0x55eadb4a47b0-Statement", - "statement": "0x55eadb4a44c0-TypeDeclarationStmt", + "id": "0x558d739e8700-Statement", + "statement": "0x558d739e8410-TypeDeclarationStmt", "source": "double precision, dimension(:, :), allocatable :: c" }, { - "id": "0x55eadb4a44c0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55eadb4a44f0-DeclarationTypeSpec", + "id": "0x558d739e8410-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558d739e8440-DeclarationTypeSpec", "AttrSpec": [ - "0x55eadb49a330-AttrSpec", - "0x55eadb4a65f0-AttrSpec" + "0x558d739de2c0-AttrSpec", + "0x558d739ea580-AttrSpec" ], "EntityDecl": [ - "0x55eadb4a46c0-EntityDecl" + "0x558d739e8610-EntityDecl" ] }, { - "id": "0x55eadb4a44f0-DeclarationTypeSpec", + "id": "0x558d739e8440-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55eadb4a44f0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x558d739e8440-IntrinsicTypeSpec" }, { - "id": "0x55eadb4a44f0-IntrinsicTypeSpec", + "id": "0x558d739e8440-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x55eadb4a44f0-DoublePrecision" + "DoublePrecision": "0x558d739e8440-DoublePrecision" }, { - "id": "0x55eadb4a44f0-DoublePrecision" + "id": "0x558d739e8440-DoublePrecision" }, { - "id": "0x55eadb49a330-AttrSpec", + "id": "0x558d739de2c0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x55eadb49a330-ArraySpec" + "ArraySpec": "0x558d739de2c0-ArraySpec" }, { - "id": "0x55eadb49a330-ArraySpec", + "id": "0x558d739de2c0-ArraySpec", "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x55eadb49a330-DeferredShapeSpecList" + "DeferredShapeSpecList": "0x558d739de2c0-DeferredShapeSpecList" }, { - "id": "0x55eadb49a330-DeferredShapeSpecList", + "id": "0x558d739de2c0-DeferredShapeSpecList", "int": "2" }, { - "id": "0x55eadb4a65f0-AttrSpec", + "id": "0x558d739ea580-AttrSpec", "variantKey": "Allocatable", - "Allocatable": "0x55eadb4a65f0-Allocatable" + "Allocatable": "0x558d739ea580-Allocatable" }, { - "id": "0x55eadb4a65f0-Allocatable", + "id": "0x558d739ea580-Allocatable", "keyword": "Allocatable" }, { - "id": "0x55eadb4a46c0-EntityDecl", - "Name": "0x55eadb4a4778-Name" + "id": "0x558d739e8610-EntityDecl", + "Name": "0x558d739e86c8-Name" }, { - "id": "0x55eadb4a4778-Name", + "id": "0x558d739e86c8-Name", "source": "c" }, { - "id": "0x55eadb4172e0-DeclarationConstruct", + "id": "0x558d739e8760-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55eadb4172e0-SpecificationConstruct" + "SpecificationConstruct": "0x558d739e8760-SpecificationConstruct" }, { - "id": "0x55eadb4172e0-SpecificationConstruct", + "id": "0x558d739e8760-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4172e0-Statement" + "Statement": "0x558d739e8760-Statement" }, { - "id": "0x55eadb4172e0-Statement", - "statement": "0x55eadb4a4630-TypeDeclarationStmt", + "id": "0x558d739e8760-Statement", + "statement": "0x558d739e8580-TypeDeclarationStmt", "source": "double precision, dimension(:, :), allocatable :: d" }, { - "id": "0x55eadb4a4630-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55eadb4a4660-DeclarationTypeSpec", + "id": "0x558d739e8580-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558d739e85b0-DeclarationTypeSpec", "AttrSpec": [ - "0x55eadb4a3cd0-AttrSpec", - "0x55eadb4a0380-AttrSpec" + "0x558d739ea530-AttrSpec", + "0x558d739e4310-AttrSpec" ], "EntityDecl": [ - "0x55eadb49fc70-EntityDecl" + "0x558d739e3c00-EntityDecl" ] }, { - "id": "0x55eadb4a4660-DeclarationTypeSpec", + "id": "0x558d739e85b0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55eadb4a4660-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x558d739e85b0-IntrinsicTypeSpec" }, { - "id": "0x55eadb4a4660-IntrinsicTypeSpec", + "id": "0x558d739e85b0-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x55eadb4a4660-DoublePrecision" + "DoublePrecision": "0x558d739e85b0-DoublePrecision" }, { - "id": "0x55eadb4a4660-DoublePrecision" + "id": "0x558d739e85b0-DoublePrecision" }, { - "id": "0x55eadb4a3cd0-AttrSpec", + "id": "0x558d739ea530-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x55eadb4a3cd0-ArraySpec" + "ArraySpec": "0x558d739ea530-ArraySpec" }, { - "id": "0x55eadb4a3cd0-ArraySpec", + "id": "0x558d739ea530-ArraySpec", "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x55eadb4a3cd0-DeferredShapeSpecList" + "DeferredShapeSpecList": "0x558d739ea530-DeferredShapeSpecList" }, { - "id": "0x55eadb4a3cd0-DeferredShapeSpecList", + "id": "0x558d739ea530-DeferredShapeSpecList", "int": "2" }, { - "id": "0x55eadb4a0380-AttrSpec", + "id": "0x558d739e4310-AttrSpec", "variantKey": "Allocatable", - "Allocatable": "0x55eadb4a0380-Allocatable" + "Allocatable": "0x558d739e4310-Allocatable" }, { - "id": "0x55eadb4a0380-Allocatable", + "id": "0x558d739e4310-Allocatable", "keyword": "Allocatable" }, { - "id": "0x55eadb49fc70-EntityDecl", - "Name": "0x55eadb49fd28-Name" + "id": "0x558d739e3c00-EntityDecl", + "Name": "0x558d739e3cb8-Name" }, { - "id": "0x55eadb49fd28-Name", + "id": "0x558d739e3cb8-Name", "source": "d" }, { - "id": "0x55eadb48c9c0-DeclarationConstruct", + "id": "0x558d739d0870-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55eadb48c9c0-SpecificationConstruct" + "SpecificationConstruct": "0x558d739d0870-SpecificationConstruct" }, { - "id": "0x55eadb48c9c0-SpecificationConstruct", + "id": "0x558d739d0870-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55eadb48c9c0-Statement" + "Statement": "0x558d739d0870-Statement" }, { - "id": "0x55eadb48c9c0-Statement", - "statement": "0x55eadb48c770-TypeDeclarationStmt", + "id": "0x558d739d0870-Statement", + "statement": "0x558d7395b2d0-TypeDeclarationStmt", "source": "double precision, dimension(:, :), allocatable :: e" }, { - "id": "0x55eadb48c770-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55eadb48c7a0-DeclarationTypeSpec", + "id": "0x558d7395b2d0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558d7395b300-DeclarationTypeSpec", "AttrSpec": [ - "0x55eadb48c880-AttrSpec", - "0x55eadb417340-AttrSpec" + "0x558d739da3f0-AttrSpec", + "0x558d739cd100-AttrSpec" ], "EntityDecl": [ - "0x55eadb48c8d0-EntityDecl" + "0x558d739d0780-EntityDecl" ] }, { - "id": "0x55eadb48c7a0-DeclarationTypeSpec", + "id": "0x558d7395b300-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55eadb48c7a0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x558d7395b300-IntrinsicTypeSpec" }, { - "id": "0x55eadb48c7a0-IntrinsicTypeSpec", + "id": "0x558d7395b300-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x55eadb48c7a0-DoublePrecision" + "DoublePrecision": "0x558d7395b300-DoublePrecision" }, { - "id": "0x55eadb48c7a0-DoublePrecision" + "id": "0x558d7395b300-DoublePrecision" }, { - "id": "0x55eadb48c880-AttrSpec", + "id": "0x558d739da3f0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x55eadb48c880-ArraySpec" + "ArraySpec": "0x558d739da3f0-ArraySpec" }, { - "id": "0x55eadb48c880-ArraySpec", + "id": "0x558d739da3f0-ArraySpec", "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x55eadb48c880-DeferredShapeSpecList" + "DeferredShapeSpecList": "0x558d739da3f0-DeferredShapeSpecList" }, { - "id": "0x55eadb48c880-DeferredShapeSpecList", + "id": "0x558d739da3f0-DeferredShapeSpecList", "int": "2" }, { - "id": "0x55eadb417340-AttrSpec", + "id": "0x558d739cd100-AttrSpec", "variantKey": "Allocatable", - "Allocatable": "0x55eadb417340-Allocatable" + "Allocatable": "0x558d739cd100-Allocatable" }, { - "id": "0x55eadb417340-Allocatable", + "id": "0x558d739cd100-Allocatable", "keyword": "Allocatable" }, { - "id": "0x55eadb48c8d0-EntityDecl", - "Name": "0x55eadb48c988-Name" + "id": "0x558d739d0780-EntityDecl", + "Name": "0x558d739d0838-Name" }, { - "id": "0x55eadb48c988-Name", + "id": "0x558d739d0838-Name", "source": "e" }, { - "id": "0x55eadb48cc30-DeclarationConstruct", + "id": "0x558d739d0b60-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55eadb48cc30-SpecificationConstruct" + "SpecificationConstruct": "0x558d739d0b60-SpecificationConstruct" }, { - "id": "0x55eadb48cc30-SpecificationConstruct", + "id": "0x558d739d0b60-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55eadb48cc30-Statement" + "Statement": "0x558d739d0b60-Statement" }, { - "id": "0x55eadb48cc30-Statement", - "statement": "0x55eadb48c7f0-TypeDeclarationStmt", + "id": "0x558d739d0b60-Statement", + "statement": "0x558d739d08c0-TypeDeclarationStmt", "source": "double precision, dimension(:, :), allocatable :: f" }, { - "id": "0x55eadb48c7f0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55eadb48c820-DeclarationTypeSpec", + "id": "0x558d739d08c0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558d739d08f0-DeclarationTypeSpec", "AttrSpec": [ - "0x55eadb48caf0-AttrSpec", - "0x55eadb48caa0-AttrSpec" + "0x558d739d0a20-AttrSpec", + "0x558d739d09d0-AttrSpec" ], "EntityDecl": [ - "0x55eadb48cb40-EntityDecl" + "0x558d739d0a70-EntityDecl" ] }, { - "id": "0x55eadb48c820-DeclarationTypeSpec", + "id": "0x558d739d08f0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55eadb48c820-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x558d739d08f0-IntrinsicTypeSpec" }, { - "id": "0x55eadb48c820-IntrinsicTypeSpec", + "id": "0x558d739d08f0-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x55eadb48c820-DoublePrecision" + "DoublePrecision": "0x558d739d08f0-DoublePrecision" }, { - "id": "0x55eadb48c820-DoublePrecision" + "id": "0x558d739d08f0-DoublePrecision" }, { - "id": "0x55eadb48caf0-AttrSpec", + "id": "0x558d739d0a20-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x55eadb48caf0-ArraySpec" + "ArraySpec": "0x558d739d0a20-ArraySpec" }, { - "id": "0x55eadb48caf0-ArraySpec", + "id": "0x558d739d0a20-ArraySpec", "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x55eadb48caf0-DeferredShapeSpecList" + "DeferredShapeSpecList": "0x558d739d0a20-DeferredShapeSpecList" }, { - "id": "0x55eadb48caf0-DeferredShapeSpecList", + "id": "0x558d739d0a20-DeferredShapeSpecList", "int": "2" }, { - "id": "0x55eadb48caa0-AttrSpec", + "id": "0x558d739d09d0-AttrSpec", "variantKey": "Allocatable", - "Allocatable": "0x55eadb48caa0-Allocatable" + "Allocatable": "0x558d739d09d0-Allocatable" }, { - "id": "0x55eadb48caa0-Allocatable", + "id": "0x558d739d09d0-Allocatable", "keyword": "Allocatable" }, { - "id": "0x55eadb48cb40-EntityDecl", - "Name": "0x55eadb48cbf8-Name" + "id": "0x558d739d0a70-EntityDecl", + "Name": "0x558d739d0b28-Name" }, { - "id": "0x55eadb48cbf8-Name", + "id": "0x558d739d0b28-Name", "source": "f" }, { - "id": "0x55eadb48cea0-DeclarationConstruct", + "id": "0x558d739d0dd0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55eadb48cea0-SpecificationConstruct" + "SpecificationConstruct": "0x558d739d0dd0-SpecificationConstruct" }, { - "id": "0x55eadb48cea0-SpecificationConstruct", + "id": "0x558d739d0dd0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55eadb48cea0-Statement" + "Statement": "0x558d739d0dd0-Statement" }, { - "id": "0x55eadb48cea0-Statement", - "statement": "0x55eadb48ca10-TypeDeclarationStmt", + "id": "0x558d739d0dd0-Statement", + "statement": "0x558d739d0940-TypeDeclarationStmt", "source": "double precision, dimension(:, :), allocatable :: g" }, { - "id": "0x55eadb48ca10-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55eadb48ca40-DeclarationTypeSpec", + "id": "0x558d739d0940-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558d739d0970-DeclarationTypeSpec", "AttrSpec": [ - "0x55eadb48cd60-AttrSpec", - "0x55eadb48cd10-AttrSpec" + "0x558d739d0c90-AttrSpec", + "0x558d739d0c40-AttrSpec" ], "EntityDecl": [ - "0x55eadb48cdb0-EntityDecl" + "0x558d739d0ce0-EntityDecl" ] }, { - "id": "0x55eadb48ca40-DeclarationTypeSpec", + "id": "0x558d739d0970-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55eadb48ca40-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x558d739d0970-IntrinsicTypeSpec" }, { - "id": "0x55eadb48ca40-IntrinsicTypeSpec", + "id": "0x558d739d0970-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x55eadb48ca40-DoublePrecision" + "DoublePrecision": "0x558d739d0970-DoublePrecision" }, { - "id": "0x55eadb48ca40-DoublePrecision" + "id": "0x558d739d0970-DoublePrecision" }, { - "id": "0x55eadb48cd60-AttrSpec", + "id": "0x558d739d0c90-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x55eadb48cd60-ArraySpec" + "ArraySpec": "0x558d739d0c90-ArraySpec" }, { - "id": "0x55eadb48cd60-ArraySpec", + "id": "0x558d739d0c90-ArraySpec", "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x55eadb48cd60-DeferredShapeSpecList" + "DeferredShapeSpecList": "0x558d739d0c90-DeferredShapeSpecList" }, { - "id": "0x55eadb48cd60-DeferredShapeSpecList", + "id": "0x558d739d0c90-DeferredShapeSpecList", "int": "2" }, { - "id": "0x55eadb48cd10-AttrSpec", + "id": "0x558d739d0c40-AttrSpec", "variantKey": "Allocatable", - "Allocatable": "0x55eadb48cd10-Allocatable" + "Allocatable": "0x558d739d0c40-Allocatable" }, { - "id": "0x55eadb48cd10-Allocatable", + "id": "0x558d739d0c40-Allocatable", "keyword": "Allocatable" }, { - "id": "0x55eadb48cdb0-EntityDecl", - "Name": "0x55eadb48ce68-Name" + "id": "0x558d739d0ce0-EntityDecl", + "Name": "0x558d739d0d98-Name" }, { - "id": "0x55eadb48ce68-Name", + "id": "0x558d739d0d98-Name", "source": "g" }, { - "id": "0x55eadb46f170-DeclarationConstruct", + "id": "0x558d739b3170-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55eadb46f170-SpecificationConstruct" + "SpecificationConstruct": "0x558d739b3170-SpecificationConstruct" }, { - "id": "0x55eadb46f170-SpecificationConstruct", + "id": "0x558d739b3170-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55eadb46f170-Statement" + "Statement": "0x558d739b3170-Statement" }, { - "id": "0x55eadb46f170-Statement", - "statement": "0x55eadb48cc80-TypeDeclarationStmt", + "id": "0x558d739b3170-Statement", + "statement": "0x558d739d0bb0-TypeDeclarationStmt", "source": "integer :: i" }, { - "id": "0x55eadb48cc80-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55eadb48ccb0-DeclarationTypeSpec", + "id": "0x558d739d0bb0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558d739d0be0-DeclarationTypeSpec", "EntityDecl": [ - "0x55eadb48cf80-EntityDecl" + "0x558d739d0eb0-EntityDecl" ] }, { - "id": "0x55eadb48ccb0-DeclarationTypeSpec", + "id": "0x558d739d0be0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55eadb48ccb0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x558d739d0be0-IntrinsicTypeSpec" }, { - "id": "0x55eadb48ccb0-IntrinsicTypeSpec", + "id": "0x558d739d0be0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55eadb48ccb0-IntegerTypeSpec" + "IntegerTypeSpec": "0x558d739d0be0-IntegerTypeSpec" }, { - "id": "0x55eadb48ccb0-IntegerTypeSpec" + "id": "0x558d739d0be0-IntegerTypeSpec" }, { - "id": "0x55eadb48cf80-EntityDecl", - "Name": "0x55eadb48d038-Name" + "id": "0x558d739d0eb0-EntityDecl", + "Name": "0x558d739d0f68-Name" }, { - "id": "0x55eadb48d038-Name", + "id": "0x558d739d0f68-Name", "source": "i" }, { - "id": "0x55eadb4a0128-ExecutionPart", + "id": "0x558d739e40b8-ExecutionPart", "ExecutionPartConstruct": [ - "0x55eadb48e510-ExecutionPartConstruct", - "0x55eadb48e3d0-ExecutionPartConstruct", - "0x55eadb48edb0-ExecutionPartConstruct", - "0x55eadb48ed50-ExecutionPartConstruct", - "0x55eadb48f820-ExecutionPartConstruct", - "0x55eadb48f7c0-ExecutionPartConstruct", - "0x55eadb490290-ExecutionPartConstruct", - "0x55eadb490230-ExecutionPartConstruct", - "0x55eadb490d00-ExecutionPartConstruct", - "0x55eadb490ca0-ExecutionPartConstruct", - "0x55eadb491770-ExecutionPartConstruct", - "0x55eadb491710-ExecutionPartConstruct", - "0x55eadb4921e0-ExecutionPartConstruct", - "0x55eadb492180-ExecutionPartConstruct", - "0x55eadb494fa0-ExecutionPartConstruct", - "0x55eadb493e60-ExecutionPartConstruct", - "0x55eadb4a8720-ExecutionPartConstruct", - "0x55eadb4a72a0-ExecutionPartConstruct", - "0x55eadb4a7710-ExecutionPartConstruct", - "0x55eadb493820-ExecutionPartConstruct", - "0x55eadb4a74c0-ExecutionPartConstruct", - "0x55eadb492fc0-ExecutionPartConstruct", - "0x55eadb493c40-ExecutionPartConstruct", - "0x55eadb490be0-ExecutionPartConstruct", - "0x55eadb48d9e0-ExecutionPartConstruct", - "0x55eadb495df0-ExecutionPartConstruct", - "0x55eadb48e080-ExecutionPartConstruct" + "0x558d739d3030-ExecutionPartConstruct", + "0x558d739d2ef0-ExecutionPartConstruct", + "0x558d739d38d0-ExecutionPartConstruct", + "0x558d739d3870-ExecutionPartConstruct", + "0x558d739d4340-ExecutionPartConstruct", + "0x558d739d42e0-ExecutionPartConstruct", + "0x558d739d4db0-ExecutionPartConstruct", + "0x558d739d4d50-ExecutionPartConstruct", + "0x558d739d5820-ExecutionPartConstruct", + "0x558d739d57c0-ExecutionPartConstruct", + "0x558d739d6290-ExecutionPartConstruct", + "0x558d739d6230-ExecutionPartConstruct", + "0x558d739d6d00-ExecutionPartConstruct", + "0x558d739d6ca0-ExecutionPartConstruct", + "0x558d739d9ac0-ExecutionPartConstruct", + "0x558d739d8980-ExecutionPartConstruct", + "0x558d739ec6f0-ExecutionPartConstruct", + "0x558d739eb2c0-ExecutionPartConstruct", + "0x558d739eb6e0-ExecutionPartConstruct", + "0x558d739d8340-ExecutionPartConstruct", + "0x558d739eb4e0-ExecutionPartConstruct", + "0x558d739d7ae0-ExecutionPartConstruct", + "0x558d739d8760-ExecutionPartConstruct", + "0x558d739d5700-ExecutionPartConstruct", + "0x558d739d2290-ExecutionPartConstruct", + "0x558d739d1280-ExecutionPartConstruct", + "0x558d739d2ba0-ExecutionPartConstruct" ] }, { - "id": "0x55eadb4a0128-ExecutionPartConstruct" + "id": "0x558d739e40b8-ExecutionPartConstruct" }, { - "id": "0x55eadb48e510-ExecutionPartConstruct", + "id": "0x558d739d3030-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb48e510-ExecutableConstruct" + "ExecutableConstruct": "0x558d739d3030-ExecutableConstruct" }, { - "id": "0x55eadb48e510-ExecutableConstruct", + "id": "0x558d739d3030-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb48e510-Statement" + "Statement": "0x558d739d3030-Statement" }, { - "id": "0x55eadb48e510-Statement", - "statement": "0x55eadb48e520-ActionStmt", + "id": "0x558d739d3030-Statement", + "statement": "0x558d739d3040-ActionStmt", "source": "allocate(a(32 + 0, 32 + 0), stat = i)" }, { - "id": "0x55eadb48e520-ActionStmt", + "id": "0x558d739d3040-ActionStmt", "variantKey": "AllocateStmt", - "AllocateStmt": "0x55eadb4a3d10-AllocateStmt" + "AllocateStmt": "0x558d739d1de0-AllocateStmt" }, { - "id": "0x55eadb4a3d10-AllocateStmt", + "id": "0x558d739d1de0-AllocateStmt", "Allocation": [ - "0x55eadb3feb10-Allocation" + "0x558d73942b10-Allocation" ], "AllocOpt": [ - "0x55eadb48db10-AllocOpt" + "0x558d739d27b0-AllocOpt" ] }, { - "id": "0x55eadb3feb10-Allocation", - "AllocateObject": "0x55eadb3feb58-AllocateObject", + "id": "0x558d73942b10-Allocation", + "AllocateObject": "0x558d73942b58-AllocateObject", "AllocateShapeSpec": [ - "0x55eadb4980c0-AllocateShapeSpec", - "0x55eadb498090-AllocateShapeSpec" + "0x558d739dc010-AllocateShapeSpec", + "0x558d739dbfe0-AllocateShapeSpec" ] }, { - "id": "0x55eadb3feb58-AllocateObject", + "id": "0x558d73942b58-AllocateObject", "variantKey": "Name", - "Name": "0x55eadb3feb68-Name" + "Name": "0x558d73942b68-Name" }, { - "id": "0x55eadb3feb68-Name", + "id": "0x558d73942b68-Name", "source": "a" }, { - "id": "0x55eadb4980c0-AllocateShapeSpec", - "upper_bound": "0x55eadb48d500-Expr" + "id": "0x558d739dc010-AllocateShapeSpec", + "upper_bound": "0x558d739d26c0-Expr" }, { - "id": "0x55eadb48d500-Expr", + "id": "0x558d739d26c0-Expr", "variantKey": "Add", - "Add": "0x55eadb48d520-Add" + "Add": "0x558d739d26e0-Add" }, { - "id": "0x55eadb48d520-Add", - "left": "0x55eadb48d420-Expr", - "right": "0x55eadb48d340-Expr", + "id": "0x558d739d26e0-Add", + "left": "0x558d739d25e0-Expr", + "right": "0x558d739d2500-Expr", "op": "ADD" }, { - "id": "0x55eadb48d420-Expr", + "id": "0x558d739d25e0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb48d440-LiteralConstant" + "LiteralConstant": "0x558d739d2600-LiteralConstant" }, { - "id": "0x55eadb48d440-LiteralConstant", + "id": "0x558d739d2600-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb48d440-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d2600-IntLiteralConstant" }, { - "id": "0x55eadb48d440-IntLiteralConstant", + "id": "0x558d739d2600-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x55eadb48d340-Expr", + "id": "0x558d739d2500-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb48d360-LiteralConstant" + "LiteralConstant": "0x558d739d2520-LiteralConstant" }, { - "id": "0x55eadb48d360-LiteralConstant", + "id": "0x558d739d2520-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb48d360-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d2520-IntLiteralConstant" }, { - "id": "0x55eadb48d360-IntLiteralConstant", + "id": "0x558d739d2520-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55eadb498090-AllocateShapeSpec", - "upper_bound": "0x55eadb48d8f0-Expr" + "id": "0x558d739dbfe0-AllocateShapeSpec", + "upper_bound": "0x558d739d21a0-Expr" }, { - "id": "0x55eadb48d8f0-Expr", + "id": "0x558d739d21a0-Expr", "variantKey": "Add", - "Add": "0x55eadb48d910-Add" + "Add": "0x558d739d21c0-Add" }, { - "id": "0x55eadb48d910-Add", - "left": "0x55eadb49fb40-Expr", - "right": "0x55eadb401790-Expr", + "id": "0x558d739d21c0-Add", + "left": "0x558d739d20c0-Expr", + "right": "0x558d73945790-Expr", "op": "ADD" }, { - "id": "0x55eadb49fb40-Expr", + "id": "0x558d739d20c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb49fb60-LiteralConstant" + "LiteralConstant": "0x558d739d20e0-LiteralConstant" }, { - "id": "0x55eadb49fb60-LiteralConstant", + "id": "0x558d739d20e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb49fb60-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d20e0-IntLiteralConstant" }, { - "id": "0x55eadb49fb60-IntLiteralConstant", + "id": "0x558d739d20e0-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x55eadb401790-Expr", + "id": "0x558d73945790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4017b0-LiteralConstant" + "LiteralConstant": "0x558d739457b0-LiteralConstant" }, { - "id": "0x55eadb4017b0-LiteralConstant", + "id": "0x558d739457b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4017b0-IntLiteralConstant" + "IntLiteralConstant": "0x558d739457b0-IntLiteralConstant" }, { - "id": "0x55eadb4017b0-IntLiteralConstant", + "id": "0x558d739457b0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55eadb48db10-AllocOpt", + "id": "0x558d739d27b0-AllocOpt", "variantKey": "StatOrErrmsg", - "StatOrErrmsg": "0x55eadb48db10-StatOrErrmsg" + "StatOrErrmsg": "0x558d739d27b0-StatOrErrmsg" }, { - "id": "0x55eadb48db10-StatOrErrmsg", + "id": "0x558d739d27b0-StatOrErrmsg", "variantKey": "StatVariable", - "StatVariable": "0x55eadb48db10-StatVariable" + "StatVariable": "0x558d739d27b0-StatVariable" }, { - "id": "0x55eadb48db10-StatVariable", - "Expr": "0x55eadb48db10-Variable" + "id": "0x558d739d27b0-StatVariable", + "Expr": "0x558d739d27b0-Variable" }, { - "id": "0x55eadb48db10-Variable", + "id": "0x558d739d27b0-Variable", "variantKey": "Designator", - "Designator": "0x55eadb4604d0-Designator" + "Designator": "0x558d739a44d0-Designator" }, { - "id": "0x55eadb4604d0-Designator", + "id": "0x558d739a44d0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4604e0-DataRef" + "DataRef": "0x558d739a44e0-DataRef" }, { - "id": "0x55eadb4604e0-DataRef", + "id": "0x558d739a44e0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4604e0-Name" + "Name": "0x558d739a44e0-Name" }, { - "id": "0x55eadb4604e0-Name", + "id": "0x558d739a44e0-Name", "source": "i" }, { - "id": "0x55eadb48e3d0-ExecutionPartConstruct", + "id": "0x558d739d2ef0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb48e3d0-ExecutableConstruct" + "ExecutableConstruct": "0x558d739d2ef0-ExecutableConstruct" }, { - "id": "0x55eadb48e3d0-ExecutableConstruct", + "id": "0x558d739d2ef0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb48e3d0-Statement" + "Statement": "0x558d739d2ef0-Statement" }, { - "id": "0x55eadb48e3d0-Statement", - "statement": "0x55eadb48e3e0-ActionStmt", + "id": "0x558d739d2ef0-Statement", + "statement": "0x558d739d2f00-ActionStmt", "source": "call check_err(i)" }, { - "id": "0x55eadb48e3e0-ActionStmt", + "id": "0x558d739d2f00-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x55eadb498e90-CallStmt" + "CallStmt": "0x558d739dce20-CallStmt" }, { - "id": "0x55eadb498e90-CallStmt", - "call": "0x55eadb498e90-Call" + "id": "0x558d739dce20-CallStmt", + "call": "0x558d739dce20-Call" }, { - "id": "0x55eadb498e90-Call", - "ProcedureDesignator": "0x55eadb498ea8-ProcedureDesignator", + "id": "0x558d739dce20-Call", + "ProcedureDesignator": "0x558d739dce38-ProcedureDesignator", "ActualArgSpec": [ - "0x55eadb46fcf0-ActualArgSpec" + "0x558d739b3cf0-ActualArgSpec" ] }, { - "id": "0x55eadb498ea8-ProcedureDesignator", + "id": "0x558d739dce38-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55eadb498ea8-Name" + "Name": "0x558d739dce38-Name" }, { - "id": "0x55eadb498ea8-Name", + "id": "0x558d739dce38-Name", "source": "check_err" }, { - "id": "0x55eadb46fcf0-ActualArgSpec", - "ActualArg": "0x55eadb46fcf0-ActualArg" + "id": "0x558d739b3cf0-ActualArgSpec", + "ActualArg": "0x558d739b3cf0-ActualArg" }, { - "id": "0x55eadb46fcf0-ActualArg", + "id": "0x558d739b3cf0-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb48e560-Expr" + "Expr": "0x558d739d3080-Expr" }, { - "id": "0x55eadb48e560-Expr", + "id": "0x558d739d3080-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4a3da0-Designator" + "Designator": "0x558d739d2060-Designator" }, { - "id": "0x55eadb4a3da0-Designator", + "id": "0x558d739d2060-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4a3db0-DataRef" + "DataRef": "0x558d739d2070-DataRef" }, { - "id": "0x55eadb4a3db0-DataRef", + "id": "0x558d739d2070-DataRef", "variantKey": "Name", - "Name": "0x55eadb4a3db0-Name" + "Name": "0x558d739d2070-Name" }, { - "id": "0x55eadb4a3db0-Name", + "id": "0x558d739d2070-Name", "source": "i" }, { - "id": "0x55eadb48edb0-ExecutionPartConstruct", + "id": "0x558d739d38d0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb48edb0-ExecutableConstruct" + "ExecutableConstruct": "0x558d739d38d0-ExecutableConstruct" }, { - "id": "0x55eadb48edb0-ExecutableConstruct", + "id": "0x558d739d38d0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb48edb0-Statement" + "Statement": "0x558d739d38d0-Statement" }, { - "id": "0x55eadb48edb0-Statement", - "statement": "0x55eadb48edc0-ActionStmt", + "id": "0x558d739d38d0-Statement", + "statement": "0x558d739d38e0-ActionStmt", "source": "allocate(b(32 + 0, 32 + 0), stat = i)" }, { - "id": "0x55eadb48edc0-ActionStmt", + "id": "0x558d739d38e0-ActionStmt", "variantKey": "AllocateStmt", - "AllocateStmt": "0x55eadb48dd00-AllocateStmt" + "AllocateStmt": "0x558d739d19f0-AllocateStmt" }, { - "id": "0x55eadb48dd00-AllocateStmt", + "id": "0x558d739d19f0-AllocateStmt", "Allocation": [ - "0x55eadb48ebe0-Allocation" + "0x558d739d3700-Allocation" ], "AllocOpt": [ - "0x55eadb48d5f0-AllocOpt" + "0x558d739d2800-AllocOpt" ] }, { - "id": "0x55eadb48ebe0-Allocation", - "AllocateObject": "0x55eadb48ec28-AllocateObject", + "id": "0x558d739d3700-Allocation", + "AllocateObject": "0x558d739d3748-AllocateObject", "AllocateShapeSpec": [ - "0x55eadb498140-AllocateShapeSpec", - "0x55eadb4980f0-AllocateShapeSpec" + "0x558d739dc090-AllocateShapeSpec", + "0x558d739dc040-AllocateShapeSpec" ] }, { - "id": "0x55eadb48ec28-AllocateObject", + "id": "0x558d739d3748-AllocateObject", "variantKey": "Name", - "Name": "0x55eadb48ec38-Name" + "Name": "0x558d739d3758-Name" }, { - "id": "0x55eadb48ec38-Name", + "id": "0x558d739d3758-Name", "source": "b" }, { - "id": "0x55eadb498140-AllocateShapeSpec", - "upper_bound": "0x55eadb48e720-Expr" + "id": "0x558d739dc090-AllocateShapeSpec", + "upper_bound": "0x558d739d3240-Expr" }, { - "id": "0x55eadb48e720-Expr", + "id": "0x558d739d3240-Expr", "variantKey": "Add", - "Add": "0x55eadb48e740-Add" + "Add": "0x558d739d3260-Add" }, { - "id": "0x55eadb48e740-Add", - "left": "0x55eadb48e640-Expr", - "right": "0x55eadb48e800-Expr", + "id": "0x558d739d3260-Add", + "left": "0x558d739d3160-Expr", + "right": "0x558d739d3320-Expr", "op": "ADD" }, { - "id": "0x55eadb48e640-Expr", + "id": "0x558d739d3160-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb48e660-LiteralConstant" + "LiteralConstant": "0x558d739d3180-LiteralConstant" }, { - "id": "0x55eadb48e660-LiteralConstant", + "id": "0x558d739d3180-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb48e660-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d3180-IntLiteralConstant" }, { - "id": "0x55eadb48e660-IntLiteralConstant", + "id": "0x558d739d3180-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x55eadb48e800-Expr", + "id": "0x558d739d3320-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb48e820-LiteralConstant" + "LiteralConstant": "0x558d739d3340-LiteralConstant" }, { - "id": "0x55eadb48e820-LiteralConstant", + "id": "0x558d739d3340-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb48e820-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d3340-IntLiteralConstant" }, { - "id": "0x55eadb48e820-IntLiteralConstant", + "id": "0x558d739d3340-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55eadb4980f0-AllocateShapeSpec", - "upper_bound": "0x55eadb48e9c0-Expr" + "id": "0x558d739dc040-AllocateShapeSpec", + "upper_bound": "0x558d739d34e0-Expr" }, { - "id": "0x55eadb48e9c0-Expr", + "id": "0x558d739d34e0-Expr", "variantKey": "Add", - "Add": "0x55eadb48e9e0-Add" + "Add": "0x558d739d3500-Add" }, { - "id": "0x55eadb48e9e0-Add", - "left": "0x55eadb48e8e0-Expr", - "right": "0x55eadb48eaa0-Expr", + "id": "0x558d739d3500-Add", + "left": "0x558d739d3400-Expr", + "right": "0x558d739d35c0-Expr", "op": "ADD" }, { - "id": "0x55eadb48e8e0-Expr", + "id": "0x558d739d3400-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb48e900-LiteralConstant" + "LiteralConstant": "0x558d739d3420-LiteralConstant" }, { - "id": "0x55eadb48e900-LiteralConstant", + "id": "0x558d739d3420-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb48e900-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d3420-IntLiteralConstant" }, { - "id": "0x55eadb48e900-IntLiteralConstant", + "id": "0x558d739d3420-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x55eadb48eaa0-Expr", + "id": "0x558d739d35c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb48eac0-LiteralConstant" + "LiteralConstant": "0x558d739d35e0-LiteralConstant" }, { - "id": "0x55eadb48eac0-LiteralConstant", + "id": "0x558d739d35e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb48eac0-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d35e0-IntLiteralConstant" }, { - "id": "0x55eadb48eac0-IntLiteralConstant", + "id": "0x558d739d35e0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55eadb48d5f0-AllocOpt", + "id": "0x558d739d2800-AllocOpt", "variantKey": "StatOrErrmsg", - "StatOrErrmsg": "0x55eadb48d5f0-StatOrErrmsg" + "StatOrErrmsg": "0x558d739d2800-StatOrErrmsg" }, { - "id": "0x55eadb48d5f0-StatOrErrmsg", + "id": "0x558d739d2800-StatOrErrmsg", "variantKey": "StatVariable", - "StatVariable": "0x55eadb48d5f0-StatVariable" + "StatVariable": "0x558d739d2800-StatVariable" }, { - "id": "0x55eadb48d5f0-StatVariable", - "Expr": "0x55eadb48d5f0-Variable" + "id": "0x558d739d2800-StatVariable", + "Expr": "0x558d739d2800-Variable" }, { - "id": "0x55eadb48d5f0-Variable", + "id": "0x558d739d2800-Variable", "variantKey": "Designator", - "Designator": "0x55eadb48ece0-Designator" + "Designator": "0x558d739d3800-Designator" }, { - "id": "0x55eadb48ece0-Designator", + "id": "0x558d739d3800-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb48ecf0-DataRef" + "DataRef": "0x558d739d3810-DataRef" }, { - "id": "0x55eadb48ecf0-DataRef", + "id": "0x558d739d3810-DataRef", "variantKey": "Name", - "Name": "0x55eadb48ecf0-Name" + "Name": "0x558d739d3810-Name" }, { - "id": "0x55eadb48ecf0-Name", + "id": "0x558d739d3810-Name", "source": "i" }, { - "id": "0x55eadb48ed50-ExecutionPartConstruct", + "id": "0x558d739d3870-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb48ed50-ExecutableConstruct" + "ExecutableConstruct": "0x558d739d3870-ExecutableConstruct" }, { - "id": "0x55eadb48ed50-ExecutableConstruct", + "id": "0x558d739d3870-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb48ed50-Statement" + "Statement": "0x558d739d3870-Statement" }, { - "id": "0x55eadb48ed50-Statement", - "statement": "0x55eadb48ed60-ActionStmt", + "id": "0x558d739d3870-Statement", + "statement": "0x558d739d3880-ActionStmt", "source": "call check_err(i)" }, { - "id": "0x55eadb48ed60-ActionStmt", + "id": "0x558d739d3880-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x55eadb48eff0-CallStmt" + "CallStmt": "0x558d739d3b10-CallStmt" }, { - "id": "0x55eadb48eff0-CallStmt", - "call": "0x55eadb48eff0-Call" + "id": "0x558d739d3b10-CallStmt", + "call": "0x558d739d3b10-Call" }, { - "id": "0x55eadb48eff0-Call", - "ProcedureDesignator": "0x55eadb48f008-ProcedureDesignator", + "id": "0x558d739d3b10-Call", + "ProcedureDesignator": "0x558d739d3b28-ProcedureDesignator", "ActualArgSpec": [ - "0x55eadb48eef0-ActualArgSpec" + "0x558d739d3a10-ActualArgSpec" ] }, { - "id": "0x55eadb48f008-ProcedureDesignator", + "id": "0x558d739d3b28-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55eadb48f008-Name" + "Name": "0x558d739d3b28-Name" }, { - "id": "0x55eadb48f008-Name", + "id": "0x558d739d3b28-Name", "source": "check_err" }, { - "id": "0x55eadb48eef0-ActualArgSpec", - "ActualArg": "0x55eadb48eef0-ActualArg" + "id": "0x558d739d3a10-ActualArgSpec", + "ActualArg": "0x558d739d3a10-ActualArg" }, { - "id": "0x55eadb48eef0-ActualArg", + "id": "0x558d739d3a10-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb48ee00-Expr" + "Expr": "0x558d739d3920-Expr" }, { - "id": "0x55eadb48ee00-Expr", + "id": "0x558d739d3920-Expr", "variantKey": "Designator", - "Designator": "0x55eadb48ded0-Designator" + "Designator": "0x558d739d29f0-Designator" }, { - "id": "0x55eadb48ded0-Designator", + "id": "0x558d739d29f0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb48dee0-DataRef" + "DataRef": "0x558d739d2a00-DataRef" }, { - "id": "0x55eadb48dee0-DataRef", + "id": "0x558d739d2a00-DataRef", "variantKey": "Name", - "Name": "0x55eadb48dee0-Name" + "Name": "0x558d739d2a00-Name" }, { - "id": "0x55eadb48dee0-Name", + "id": "0x558d739d2a00-Name", "source": "i" }, { - "id": "0x55eadb48f820-ExecutionPartConstruct", + "id": "0x558d739d4340-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb48f820-ExecutableConstruct" + "ExecutableConstruct": "0x558d739d4340-ExecutableConstruct" }, { - "id": "0x55eadb48f820-ExecutableConstruct", + "id": "0x558d739d4340-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb48f820-Statement" + "Statement": "0x558d739d4340-Statement" }, { - "id": "0x55eadb48f820-Statement", - "statement": "0x55eadb48f830-ActionStmt", + "id": "0x558d739d4340-Statement", + "statement": "0x558d739d4350-ActionStmt", "source": "allocate(c(32 + 0, 32 + 0), stat = i)" }, { - "id": "0x55eadb48f830-ActionStmt", + "id": "0x558d739d4350-ActionStmt", "variantKey": "AllocateStmt", - "AllocateStmt": "0x55eadb48db50-AllocateStmt" + "AllocateStmt": "0x558d739d1e70-AllocateStmt" }, { - "id": "0x55eadb48db50-AllocateStmt", + "id": "0x558d739d1e70-AllocateStmt", "Allocation": [ - "0x55eadb48f650-Allocation" + "0x558d739d4170-Allocation" ], "AllocOpt": [ - "0x55eadb48eb90-AllocOpt" + "0x558d739d36b0-AllocOpt" ] }, { - "id": "0x55eadb48f650-Allocation", - "AllocateObject": "0x55eadb48f698-AllocateObject", + "id": "0x558d739d4170-Allocation", + "AllocateObject": "0x558d739d41b8-AllocateObject", "AllocateShapeSpec": [ - "0x55eadb49c440-AllocateShapeSpec", - "0x55eadb49c410-AllocateShapeSpec" + "0x558d739e0390-AllocateShapeSpec", + "0x558d739e0360-AllocateShapeSpec" ] }, { - "id": "0x55eadb48f698-AllocateObject", + "id": "0x558d739d41b8-AllocateObject", "variantKey": "Name", - "Name": "0x55eadb48f6a8-Name" + "Name": "0x558d739d41c8-Name" }, { - "id": "0x55eadb48f6a8-Name", + "id": "0x558d739d41c8-Name", "source": "c" }, { - "id": "0x55eadb49c440-AllocateShapeSpec", - "upper_bound": "0x55eadb48f190-Expr" + "id": "0x558d739e0390-AllocateShapeSpec", + "upper_bound": "0x558d739d3cb0-Expr" }, { - "id": "0x55eadb48f190-Expr", + "id": "0x558d739d3cb0-Expr", "variantKey": "Add", - "Add": "0x55eadb48f1b0-Add" + "Add": "0x558d739d3cd0-Add" }, { - "id": "0x55eadb48f1b0-Add", - "left": "0x55eadb48f0b0-Expr", - "right": "0x55eadb48f270-Expr", + "id": "0x558d739d3cd0-Add", + "left": "0x558d739d3bd0-Expr", + "right": "0x558d739d3d90-Expr", "op": "ADD" }, { - "id": "0x55eadb48f0b0-Expr", + "id": "0x558d739d3bd0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb48f0d0-LiteralConstant" + "LiteralConstant": "0x558d739d3bf0-LiteralConstant" }, { - "id": "0x55eadb48f0d0-LiteralConstant", + "id": "0x558d739d3bf0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb48f0d0-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d3bf0-IntLiteralConstant" }, { - "id": "0x55eadb48f0d0-IntLiteralConstant", + "id": "0x558d739d3bf0-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x55eadb48f270-Expr", + "id": "0x558d739d3d90-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb48f290-LiteralConstant" + "LiteralConstant": "0x558d739d3db0-LiteralConstant" }, { - "id": "0x55eadb48f290-LiteralConstant", + "id": "0x558d739d3db0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb48f290-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d3db0-IntLiteralConstant" }, { - "id": "0x55eadb48f290-IntLiteralConstant", + "id": "0x558d739d3db0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55eadb49c410-AllocateShapeSpec", - "upper_bound": "0x55eadb48f430-Expr" + "id": "0x558d739e0360-AllocateShapeSpec", + "upper_bound": "0x558d739d3f50-Expr" }, { - "id": "0x55eadb48f430-Expr", + "id": "0x558d739d3f50-Expr", "variantKey": "Add", - "Add": "0x55eadb48f450-Add" + "Add": "0x558d739d3f70-Add" }, { - "id": "0x55eadb48f450-Add", - "left": "0x55eadb48f350-Expr", - "right": "0x55eadb48f510-Expr", + "id": "0x558d739d3f70-Add", + "left": "0x558d739d3e70-Expr", + "right": "0x558d739d4030-Expr", "op": "ADD" }, { - "id": "0x55eadb48f350-Expr", + "id": "0x558d739d3e70-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb48f370-LiteralConstant" + "LiteralConstant": "0x558d739d3e90-LiteralConstant" }, { - "id": "0x55eadb48f370-LiteralConstant", + "id": "0x558d739d3e90-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb48f370-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d3e90-IntLiteralConstant" }, { - "id": "0x55eadb48f370-IntLiteralConstant", + "id": "0x558d739d3e90-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x55eadb48f510-Expr", + "id": "0x558d739d4030-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb48f530-LiteralConstant" + "LiteralConstant": "0x558d739d4050-LiteralConstant" }, { - "id": "0x55eadb48f530-LiteralConstant", + "id": "0x558d739d4050-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb48f530-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d4050-IntLiteralConstant" }, { - "id": "0x55eadb48f530-IntLiteralConstant", + "id": "0x558d739d4050-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55eadb48eb90-AllocOpt", + "id": "0x558d739d36b0-AllocOpt", "variantKey": "StatOrErrmsg", - "StatOrErrmsg": "0x55eadb48eb90-StatOrErrmsg" + "StatOrErrmsg": "0x558d739d36b0-StatOrErrmsg" }, { - "id": "0x55eadb48eb90-StatOrErrmsg", + "id": "0x558d739d36b0-StatOrErrmsg", "variantKey": "StatVariable", - "StatVariable": "0x55eadb48eb90-StatVariable" + "StatVariable": "0x558d739d36b0-StatVariable" }, { - "id": "0x55eadb48eb90-StatVariable", - "Expr": "0x55eadb48eb90-Variable" + "id": "0x558d739d36b0-StatVariable", + "Expr": "0x558d739d36b0-Variable" }, { - "id": "0x55eadb48eb90-Variable", + "id": "0x558d739d36b0-Variable", "variantKey": "Designator", - "Designator": "0x55eadb48f750-Designator" + "Designator": "0x558d739d4270-Designator" }, { - "id": "0x55eadb48f750-Designator", + "id": "0x558d739d4270-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb48f760-DataRef" + "DataRef": "0x558d739d4280-DataRef" }, { - "id": "0x55eadb48f760-DataRef", + "id": "0x558d739d4280-DataRef", "variantKey": "Name", - "Name": "0x55eadb48f760-Name" + "Name": "0x558d739d4280-Name" }, { - "id": "0x55eadb48f760-Name", + "id": "0x558d739d4280-Name", "source": "i" }, { - "id": "0x55eadb48f7c0-ExecutionPartConstruct", + "id": "0x558d739d42e0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb48f7c0-ExecutableConstruct" + "ExecutableConstruct": "0x558d739d42e0-ExecutableConstruct" }, { - "id": "0x55eadb48f7c0-ExecutableConstruct", + "id": "0x558d739d42e0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb48f7c0-Statement" + "Statement": "0x558d739d42e0-Statement" }, { - "id": "0x55eadb48f7c0-Statement", - "statement": "0x55eadb48f7d0-ActionStmt", + "id": "0x558d739d42e0-Statement", + "statement": "0x558d739d42f0-ActionStmt", "source": "call check_err(i)" }, { - "id": "0x55eadb48f7d0-ActionStmt", + "id": "0x558d739d42f0-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x55eadb48fa60-CallStmt" + "CallStmt": "0x558d739d4580-CallStmt" }, { - "id": "0x55eadb48fa60-CallStmt", - "call": "0x55eadb48fa60-Call" + "id": "0x558d739d4580-CallStmt", + "call": "0x558d739d4580-Call" }, { - "id": "0x55eadb48fa60-Call", - "ProcedureDesignator": "0x55eadb48fa78-ProcedureDesignator", + "id": "0x558d739d4580-Call", + "ProcedureDesignator": "0x558d739d4598-ProcedureDesignator", "ActualArgSpec": [ - "0x55eadb48f960-ActualArgSpec" + "0x558d739d4480-ActualArgSpec" ] }, { - "id": "0x55eadb48fa78-ProcedureDesignator", + "id": "0x558d739d4598-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55eadb48fa78-Name" + "Name": "0x558d739d4598-Name" }, { - "id": "0x55eadb48fa78-Name", + "id": "0x558d739d4598-Name", "source": "check_err" }, { - "id": "0x55eadb48f960-ActualArgSpec", - "ActualArg": "0x55eadb48f960-ActualArg" + "id": "0x558d739d4480-ActualArgSpec", + "ActualArg": "0x558d739d4480-ActualArg" }, { - "id": "0x55eadb48f960-ActualArg", + "id": "0x558d739d4480-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb48f870-Expr" + "Expr": "0x558d739d4390-Expr" }, { - "id": "0x55eadb48f870-Expr", + "id": "0x558d739d4390-Expr", "variantKey": "Designator", - "Designator": "0x55eadb48dd90-Designator" + "Designator": "0x558d739d28b0-Designator" }, { - "id": "0x55eadb48dd90-Designator", + "id": "0x558d739d28b0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb48dda0-DataRef" + "DataRef": "0x558d739d28c0-DataRef" }, { - "id": "0x55eadb48dda0-DataRef", + "id": "0x558d739d28c0-DataRef", "variantKey": "Name", - "Name": "0x55eadb48dda0-Name" + "Name": "0x558d739d28c0-Name" }, { - "id": "0x55eadb48dda0-Name", + "id": "0x558d739d28c0-Name", "source": "i" }, { - "id": "0x55eadb490290-ExecutionPartConstruct", + "id": "0x558d739d4db0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb490290-ExecutableConstruct" + "ExecutableConstruct": "0x558d739d4db0-ExecutableConstruct" }, { - "id": "0x55eadb490290-ExecutableConstruct", + "id": "0x558d739d4db0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb490290-Statement" + "Statement": "0x558d739d4db0-Statement" }, { - "id": "0x55eadb490290-Statement", - "statement": "0x55eadb4902a0-ActionStmt", + "id": "0x558d739d4db0-Statement", + "statement": "0x558d739d4dc0-ActionStmt", "source": "allocate(d(32 + 0, 32 + 0), stat = i)" }, { - "id": "0x55eadb4902a0-ActionStmt", + "id": "0x558d739d4dc0-ActionStmt", "variantKey": "AllocateStmt", - "AllocateStmt": "0x55eadb48d760-AllocateStmt" + "AllocateStmt": "0x558d739e39b0-AllocateStmt" }, { - "id": "0x55eadb48d760-AllocateStmt", + "id": "0x558d739e39b0-AllocateStmt", "Allocation": [ - "0x55eadb4900c0-Allocation" + "0x558d739d4be0-Allocation" ], "AllocOpt": [ - "0x55eadb48f600-AllocOpt" + "0x558d739d4120-AllocOpt" ] }, { - "id": "0x55eadb4900c0-Allocation", - "AllocateObject": "0x55eadb490108-AllocateObject", + "id": "0x558d739d4be0-Allocation", + "AllocateObject": "0x558d739d4c28-AllocateObject", "AllocateShapeSpec": [ - "0x55eadb496b30-AllocateShapeSpec", - "0x55eadb49c490-AllocateShapeSpec" + "0x558d739daa80-AllocateShapeSpec", + "0x558d739e03e0-AllocateShapeSpec" ] }, { - "id": "0x55eadb490108-AllocateObject", + "id": "0x558d739d4c28-AllocateObject", "variantKey": "Name", - "Name": "0x55eadb490118-Name" + "Name": "0x558d739d4c38-Name" }, { - "id": "0x55eadb490118-Name", + "id": "0x558d739d4c38-Name", "source": "d" }, { - "id": "0x55eadb496b30-AllocateShapeSpec", - "upper_bound": "0x55eadb48fc00-Expr" + "id": "0x558d739daa80-AllocateShapeSpec", + "upper_bound": "0x558d739d4720-Expr" }, { - "id": "0x55eadb48fc00-Expr", + "id": "0x558d739d4720-Expr", "variantKey": "Add", - "Add": "0x55eadb48fc20-Add" + "Add": "0x558d739d4740-Add" }, { - "id": "0x55eadb48fc20-Add", - "left": "0x55eadb48fb20-Expr", - "right": "0x55eadb48fce0-Expr", + "id": "0x558d739d4740-Add", + "left": "0x558d739d4640-Expr", + "right": "0x558d739d4800-Expr", "op": "ADD" }, { - "id": "0x55eadb48fb20-Expr", + "id": "0x558d739d4640-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb48fb40-LiteralConstant" + "LiteralConstant": "0x558d739d4660-LiteralConstant" }, { - "id": "0x55eadb48fb40-LiteralConstant", + "id": "0x558d739d4660-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb48fb40-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d4660-IntLiteralConstant" }, { - "id": "0x55eadb48fb40-IntLiteralConstant", + "id": "0x558d739d4660-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x55eadb48fce0-Expr", + "id": "0x558d739d4800-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb48fd00-LiteralConstant" + "LiteralConstant": "0x558d739d4820-LiteralConstant" }, { - "id": "0x55eadb48fd00-LiteralConstant", + "id": "0x558d739d4820-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb48fd00-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d4820-IntLiteralConstant" }, { - "id": "0x55eadb48fd00-IntLiteralConstant", + "id": "0x558d739d4820-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55eadb49c490-AllocateShapeSpec", - "upper_bound": "0x55eadb48fea0-Expr" + "id": "0x558d739e03e0-AllocateShapeSpec", + "upper_bound": "0x558d739d49c0-Expr" }, { - "id": "0x55eadb48fea0-Expr", + "id": "0x558d739d49c0-Expr", "variantKey": "Add", - "Add": "0x55eadb48fec0-Add" + "Add": "0x558d739d49e0-Add" }, { - "id": "0x55eadb48fec0-Add", - "left": "0x55eadb48fdc0-Expr", - "right": "0x55eadb48ff80-Expr", + "id": "0x558d739d49e0-Add", + "left": "0x558d739d48e0-Expr", + "right": "0x558d739d4aa0-Expr", "op": "ADD" }, { - "id": "0x55eadb48fdc0-Expr", + "id": "0x558d739d48e0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb48fde0-LiteralConstant" + "LiteralConstant": "0x558d739d4900-LiteralConstant" }, { - "id": "0x55eadb48fde0-LiteralConstant", + "id": "0x558d739d4900-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb48fde0-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d4900-IntLiteralConstant" }, { - "id": "0x55eadb48fde0-IntLiteralConstant", + "id": "0x558d739d4900-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x55eadb48ff80-Expr", + "id": "0x558d739d4aa0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb48ffa0-LiteralConstant" + "LiteralConstant": "0x558d739d4ac0-LiteralConstant" }, { - "id": "0x55eadb48ffa0-LiteralConstant", + "id": "0x558d739d4ac0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb48ffa0-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d4ac0-IntLiteralConstant" }, { - "id": "0x55eadb48ffa0-IntLiteralConstant", + "id": "0x558d739d4ac0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55eadb48f600-AllocOpt", + "id": "0x558d739d4120-AllocOpt", "variantKey": "StatOrErrmsg", - "StatOrErrmsg": "0x55eadb48f600-StatOrErrmsg" + "StatOrErrmsg": "0x558d739d4120-StatOrErrmsg" }, { - "id": "0x55eadb48f600-StatOrErrmsg", + "id": "0x558d739d4120-StatOrErrmsg", "variantKey": "StatVariable", - "StatVariable": "0x55eadb48f600-StatVariable" + "StatVariable": "0x558d739d4120-StatVariable" }, { - "id": "0x55eadb48f600-StatVariable", - "Expr": "0x55eadb48f600-Variable" + "id": "0x558d739d4120-StatVariable", + "Expr": "0x558d739d4120-Variable" }, { - "id": "0x55eadb48f600-Variable", + "id": "0x558d739d4120-Variable", "variantKey": "Designator", - "Designator": "0x55eadb4901c0-Designator" + "Designator": "0x558d739d4ce0-Designator" }, { - "id": "0x55eadb4901c0-Designator", + "id": "0x558d739d4ce0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4901d0-DataRef" + "DataRef": "0x558d739d4cf0-DataRef" }, { - "id": "0x55eadb4901d0-DataRef", + "id": "0x558d739d4cf0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4901d0-Name" + "Name": "0x558d739d4cf0-Name" }, { - "id": "0x55eadb4901d0-Name", + "id": "0x558d739d4cf0-Name", "source": "i" }, { - "id": "0x55eadb490230-ExecutionPartConstruct", + "id": "0x558d739d4d50-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb490230-ExecutableConstruct" + "ExecutableConstruct": "0x558d739d4d50-ExecutableConstruct" }, { - "id": "0x55eadb490230-ExecutableConstruct", + "id": "0x558d739d4d50-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb490230-Statement" + "Statement": "0x558d739d4d50-Statement" }, { - "id": "0x55eadb490230-Statement", - "statement": "0x55eadb490240-ActionStmt", + "id": "0x558d739d4d50-Statement", + "statement": "0x558d739d4d60-ActionStmt", "source": "call check_err(i)" }, { - "id": "0x55eadb490240-ActionStmt", + "id": "0x558d739d4d60-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x55eadb4904d0-CallStmt" + "CallStmt": "0x558d739d4ff0-CallStmt" }, { - "id": "0x55eadb4904d0-CallStmt", - "call": "0x55eadb4904d0-Call" + "id": "0x558d739d4ff0-CallStmt", + "call": "0x558d739d4ff0-Call" }, { - "id": "0x55eadb4904d0-Call", - "ProcedureDesignator": "0x55eadb4904e8-ProcedureDesignator", + "id": "0x558d739d4ff0-Call", + "ProcedureDesignator": "0x558d739d5008-ProcedureDesignator", "ActualArgSpec": [ - "0x55eadb4903d0-ActualArgSpec" + "0x558d739d4ef0-ActualArgSpec" ] }, { - "id": "0x55eadb4904e8-ProcedureDesignator", + "id": "0x558d739d5008-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55eadb4904e8-Name" + "Name": "0x558d739d5008-Name" }, { - "id": "0x55eadb4904e8-Name", + "id": "0x558d739d5008-Name", "source": "check_err" }, { - "id": "0x55eadb4903d0-ActualArgSpec", - "ActualArg": "0x55eadb4903d0-ActualArg" + "id": "0x558d739d4ef0-ActualArgSpec", + "ActualArg": "0x558d739d4ef0-ActualArg" }, { - "id": "0x55eadb4903d0-ActualArg", + "id": "0x558d739d4ef0-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb4902e0-Expr" + "Expr": "0x558d739d4e00-Expr" }, { - "id": "0x55eadb4902e0-Expr", + "id": "0x558d739d4e00-Expr", "variantKey": "Designator", - "Designator": "0x55eadb48e2f0-Designator" + "Designator": "0x558d739d2e10-Designator" }, { - "id": "0x55eadb48e2f0-Designator", + "id": "0x558d739d2e10-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb48e300-DataRef" + "DataRef": "0x558d739d2e20-DataRef" }, { - "id": "0x55eadb48e300-DataRef", + "id": "0x558d739d2e20-DataRef", "variantKey": "Name", - "Name": "0x55eadb48e300-Name" + "Name": "0x558d739d2e20-Name" }, { - "id": "0x55eadb48e300-Name", + "id": "0x558d739d2e20-Name", "source": "i" }, { - "id": "0x55eadb490d00-ExecutionPartConstruct", + "id": "0x558d739d5820-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb490d00-ExecutableConstruct" + "ExecutableConstruct": "0x558d739d5820-ExecutableConstruct" }, { - "id": "0x55eadb490d00-ExecutableConstruct", + "id": "0x558d739d5820-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb490d00-Statement" + "Statement": "0x558d739d5820-Statement" }, { - "id": "0x55eadb490d00-Statement", - "statement": "0x55eadb490d10-ActionStmt", + "id": "0x558d739d5820-Statement", + "statement": "0x558d739d5830-ActionStmt", "source": "allocate(e(32 + 0, 32 + 0), stat = i)" }, { - "id": "0x55eadb490d10-ActionStmt", + "id": "0x558d739d5830-ActionStmt", "variantKey": "AllocateStmt", - "AllocateStmt": "0x55eadb49fa20-AllocateStmt" + "AllocateStmt": "0x558d739d1d50-AllocateStmt" }, { - "id": "0x55eadb49fa20-AllocateStmt", + "id": "0x558d739d1d50-AllocateStmt", "Allocation": [ - "0x55eadb490b30-Allocation" + "0x558d739d5650-Allocation" ], "AllocOpt": [ - "0x55eadb490070-AllocOpt" + "0x558d739d4b90-AllocOpt" ] }, { - "id": "0x55eadb490b30-Allocation", - "AllocateObject": "0x55eadb490b78-AllocateObject", + "id": "0x558d739d5650-Allocation", + "AllocateObject": "0x558d739d5698-AllocateObject", "AllocateShapeSpec": [ - "0x55eadb4a6550-AllocateShapeSpec", - "0x55eadb4a64a0-AllocateShapeSpec" + "0x558d739ea3f0-AllocateShapeSpec", + "0x558d739ea200-AllocateShapeSpec" ] }, { - "id": "0x55eadb490b78-AllocateObject", + "id": "0x558d739d5698-AllocateObject", "variantKey": "Name", - "Name": "0x55eadb490b88-Name" + "Name": "0x558d739d56a8-Name" }, { - "id": "0x55eadb490b88-Name", + "id": "0x558d739d56a8-Name", "source": "e" }, { - "id": "0x55eadb4a6550-AllocateShapeSpec", - "upper_bound": "0x55eadb490670-Expr" + "id": "0x558d739ea3f0-AllocateShapeSpec", + "upper_bound": "0x558d739d5190-Expr" }, { - "id": "0x55eadb490670-Expr", + "id": "0x558d739d5190-Expr", "variantKey": "Add", - "Add": "0x55eadb490690-Add" + "Add": "0x558d739d51b0-Add" }, { - "id": "0x55eadb490690-Add", - "left": "0x55eadb490590-Expr", - "right": "0x55eadb490750-Expr", + "id": "0x558d739d51b0-Add", + "left": "0x558d739d50b0-Expr", + "right": "0x558d739d5270-Expr", "op": "ADD" }, { - "id": "0x55eadb490590-Expr", + "id": "0x558d739d50b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4905b0-LiteralConstant" + "LiteralConstant": "0x558d739d50d0-LiteralConstant" }, { - "id": "0x55eadb4905b0-LiteralConstant", + "id": "0x558d739d50d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4905b0-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d50d0-IntLiteralConstant" }, { - "id": "0x55eadb4905b0-IntLiteralConstant", + "id": "0x558d739d50d0-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x55eadb490750-Expr", + "id": "0x558d739d5270-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb490770-LiteralConstant" + "LiteralConstant": "0x558d739d5290-LiteralConstant" }, { - "id": "0x55eadb490770-LiteralConstant", + "id": "0x558d739d5290-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb490770-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d5290-IntLiteralConstant" }, { - "id": "0x55eadb490770-IntLiteralConstant", + "id": "0x558d739d5290-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55eadb4a64a0-AllocateShapeSpec", - "upper_bound": "0x55eadb490910-Expr" + "id": "0x558d739ea200-AllocateShapeSpec", + "upper_bound": "0x558d739d5430-Expr" }, { - "id": "0x55eadb490910-Expr", + "id": "0x558d739d5430-Expr", "variantKey": "Add", - "Add": "0x55eadb490930-Add" + "Add": "0x558d739d5450-Add" }, { - "id": "0x55eadb490930-Add", - "left": "0x55eadb490830-Expr", - "right": "0x55eadb4909f0-Expr", + "id": "0x558d739d5450-Add", + "left": "0x558d739d5350-Expr", + "right": "0x558d739d5510-Expr", "op": "ADD" }, { - "id": "0x55eadb490830-Expr", + "id": "0x558d739d5350-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb490850-LiteralConstant" + "LiteralConstant": "0x558d739d5370-LiteralConstant" }, { - "id": "0x55eadb490850-LiteralConstant", + "id": "0x558d739d5370-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb490850-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d5370-IntLiteralConstant" }, { - "id": "0x55eadb490850-IntLiteralConstant", + "id": "0x558d739d5370-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x55eadb4909f0-Expr", + "id": "0x558d739d5510-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb490a10-LiteralConstant" + "LiteralConstant": "0x558d739d5530-LiteralConstant" }, { - "id": "0x55eadb490a10-LiteralConstant", + "id": "0x558d739d5530-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb490a10-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d5530-IntLiteralConstant" }, { - "id": "0x55eadb490a10-IntLiteralConstant", + "id": "0x558d739d5530-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55eadb490070-AllocOpt", + "id": "0x558d739d4b90-AllocOpt", "variantKey": "StatOrErrmsg", - "StatOrErrmsg": "0x55eadb490070-StatOrErrmsg" + "StatOrErrmsg": "0x558d739d4b90-StatOrErrmsg" }, { - "id": "0x55eadb490070-StatOrErrmsg", + "id": "0x558d739d4b90-StatOrErrmsg", "variantKey": "StatVariable", - "StatVariable": "0x55eadb490070-StatVariable" + "StatVariable": "0x558d739d4b90-StatVariable" }, { - "id": "0x55eadb490070-StatVariable", - "Expr": "0x55eadb490070-Variable" + "id": "0x558d739d4b90-StatVariable", + "Expr": "0x558d739d4b90-Variable" }, { - "id": "0x55eadb490070-Variable", + "id": "0x558d739d4b90-Variable", "variantKey": "Designator", - "Designator": "0x55eadb490c30-Designator" + "Designator": "0x558d739d5750-Designator" }, { - "id": "0x55eadb490c30-Designator", + "id": "0x558d739d5750-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb490c40-DataRef" + "DataRef": "0x558d739d5760-DataRef" }, { - "id": "0x55eadb490c40-DataRef", + "id": "0x558d739d5760-DataRef", "variantKey": "Name", - "Name": "0x55eadb490c40-Name" + "Name": "0x558d739d5760-Name" }, { - "id": "0x55eadb490c40-Name", + "id": "0x558d739d5760-Name", "source": "i" }, { - "id": "0x55eadb490ca0-ExecutionPartConstruct", + "id": "0x558d739d57c0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb490ca0-ExecutableConstruct" + "ExecutableConstruct": "0x558d739d57c0-ExecutableConstruct" }, { - "id": "0x55eadb490ca0-ExecutableConstruct", + "id": "0x558d739d57c0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb490ca0-Statement" + "Statement": "0x558d739d57c0-Statement" }, { - "id": "0x55eadb490ca0-Statement", - "statement": "0x55eadb490cb0-ActionStmt", + "id": "0x558d739d57c0-Statement", + "statement": "0x558d739d57d0-ActionStmt", "source": "call check_err(i)" }, { - "id": "0x55eadb490cb0-ActionStmt", + "id": "0x558d739d57d0-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x55eadb490f40-CallStmt" + "CallStmt": "0x558d739d5a60-CallStmt" }, { - "id": "0x55eadb490f40-CallStmt", - "call": "0x55eadb490f40-Call" + "id": "0x558d739d5a60-CallStmt", + "call": "0x558d739d5a60-Call" }, { - "id": "0x55eadb490f40-Call", - "ProcedureDesignator": "0x55eadb490f58-ProcedureDesignator", + "id": "0x558d739d5a60-Call", + "ProcedureDesignator": "0x558d739d5a78-ProcedureDesignator", "ActualArgSpec": [ - "0x55eadb490e40-ActualArgSpec" + "0x558d739d5960-ActualArgSpec" ] }, { - "id": "0x55eadb490f58-ProcedureDesignator", + "id": "0x558d739d5a78-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55eadb490f58-Name" + "Name": "0x558d739d5a78-Name" }, { - "id": "0x55eadb490f58-Name", + "id": "0x558d739d5a78-Name", "source": "check_err" }, { - "id": "0x55eadb490e40-ActualArgSpec", - "ActualArg": "0x55eadb490e40-ActualArg" + "id": "0x558d739d5960-ActualArgSpec", + "ActualArg": "0x558d739d5960-ActualArg" }, { - "id": "0x55eadb490e40-ActualArg", + "id": "0x558d739d5960-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb490d50-Expr" + "Expr": "0x558d739d5870-Expr" }, { - "id": "0x55eadb490d50-Expr", + "id": "0x558d739d5870-Expr", "variantKey": "Designator", - "Designator": "0x55eadb48dfa0-Designator" + "Designator": "0x558d739d2ac0-Designator" }, { - "id": "0x55eadb48dfa0-Designator", + "id": "0x558d739d2ac0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb48dfb0-DataRef" + "DataRef": "0x558d739d2ad0-DataRef" }, { - "id": "0x55eadb48dfb0-DataRef", + "id": "0x558d739d2ad0-DataRef", "variantKey": "Name", - "Name": "0x55eadb48dfb0-Name" + "Name": "0x558d739d2ad0-Name" }, { - "id": "0x55eadb48dfb0-Name", + "id": "0x558d739d2ad0-Name", "source": "i" }, { - "id": "0x55eadb491770-ExecutionPartConstruct", + "id": "0x558d739d6290-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb491770-ExecutableConstruct" + "ExecutableConstruct": "0x558d739d6290-ExecutableConstruct" }, { - "id": "0x55eadb491770-ExecutableConstruct", + "id": "0x558d739d6290-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb491770-Statement" + "Statement": "0x558d739d6290-Statement" }, { - "id": "0x55eadb491770-Statement", - "statement": "0x55eadb491780-ActionStmt", + "id": "0x558d739d6290-Statement", + "statement": "0x558d739d62a0-ActionStmt", "source": "allocate(f(32 + 0, 32 + 0), stat = i)" }, { - "id": "0x55eadb491780-ActionStmt", + "id": "0x558d739d62a0-ActionStmt", "variantKey": "AllocateStmt", - "AllocateStmt": "0x55eadb4171d0-AllocateStmt" + "AllocateStmt": "0x558d7395b0b0-AllocateStmt" }, { - "id": "0x55eadb4171d0-AllocateStmt", + "id": "0x558d7395b0b0-AllocateStmt", "Allocation": [ - "0x55eadb4915a0-Allocation" + "0x558d739d60c0-Allocation" ], "AllocOpt": [ - "0x55eadb490ae0-AllocOpt" + "0x558d739d5600-AllocOpt" ] }, { - "id": "0x55eadb4915a0-Allocation", - "AllocateObject": "0x55eadb4915e8-AllocateObject", + "id": "0x558d739d60c0-Allocation", + "AllocateObject": "0x558d739d6108-AllocateObject", "AllocateShapeSpec": [ - "0x55eadb496530-AllocateShapeSpec", - "0x55eadb4a65c0-AllocateShapeSpec" + "0x558d739da480-AllocateShapeSpec", + "0x558d739ea4a0-AllocateShapeSpec" ] }, { - "id": "0x55eadb4915e8-AllocateObject", + "id": "0x558d739d6108-AllocateObject", "variantKey": "Name", - "Name": "0x55eadb4915f8-Name" + "Name": "0x558d739d6118-Name" }, { - "id": "0x55eadb4915f8-Name", + "id": "0x558d739d6118-Name", "source": "f" }, { - "id": "0x55eadb496530-AllocateShapeSpec", - "upper_bound": "0x55eadb4910e0-Expr" + "id": "0x558d739da480-AllocateShapeSpec", + "upper_bound": "0x558d739d5c00-Expr" }, { - "id": "0x55eadb4910e0-Expr", + "id": "0x558d739d5c00-Expr", "variantKey": "Add", - "Add": "0x55eadb491100-Add" + "Add": "0x558d739d5c20-Add" }, { - "id": "0x55eadb491100-Add", - "left": "0x55eadb491000-Expr", - "right": "0x55eadb4911c0-Expr", + "id": "0x558d739d5c20-Add", + "left": "0x558d739d5b20-Expr", + "right": "0x558d739d5ce0-Expr", "op": "ADD" }, { - "id": "0x55eadb491000-Expr", + "id": "0x558d739d5b20-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb491020-LiteralConstant" + "LiteralConstant": "0x558d739d5b40-LiteralConstant" }, { - "id": "0x55eadb491020-LiteralConstant", + "id": "0x558d739d5b40-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb491020-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d5b40-IntLiteralConstant" }, { - "id": "0x55eadb491020-IntLiteralConstant", + "id": "0x558d739d5b40-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x55eadb4911c0-Expr", + "id": "0x558d739d5ce0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4911e0-LiteralConstant" + "LiteralConstant": "0x558d739d5d00-LiteralConstant" }, { - "id": "0x55eadb4911e0-LiteralConstant", + "id": "0x558d739d5d00-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4911e0-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d5d00-IntLiteralConstant" }, { - "id": "0x55eadb4911e0-IntLiteralConstant", + "id": "0x558d739d5d00-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55eadb4a65c0-AllocateShapeSpec", - "upper_bound": "0x55eadb491380-Expr" + "id": "0x558d739ea4a0-AllocateShapeSpec", + "upper_bound": "0x558d739d5ea0-Expr" }, { - "id": "0x55eadb491380-Expr", + "id": "0x558d739d5ea0-Expr", "variantKey": "Add", - "Add": "0x55eadb4913a0-Add" + "Add": "0x558d739d5ec0-Add" }, { - "id": "0x55eadb4913a0-Add", - "left": "0x55eadb4912a0-Expr", - "right": "0x55eadb491460-Expr", + "id": "0x558d739d5ec0-Add", + "left": "0x558d739d5dc0-Expr", + "right": "0x558d739d5f80-Expr", "op": "ADD" }, { - "id": "0x55eadb4912a0-Expr", + "id": "0x558d739d5dc0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4912c0-LiteralConstant" + "LiteralConstant": "0x558d739d5de0-LiteralConstant" }, { - "id": "0x55eadb4912c0-LiteralConstant", + "id": "0x558d739d5de0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4912c0-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d5de0-IntLiteralConstant" }, { - "id": "0x55eadb4912c0-IntLiteralConstant", + "id": "0x558d739d5de0-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x55eadb491460-Expr", + "id": "0x558d739d5f80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb491480-LiteralConstant" + "LiteralConstant": "0x558d739d5fa0-LiteralConstant" }, { - "id": "0x55eadb491480-LiteralConstant", + "id": "0x558d739d5fa0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb491480-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d5fa0-IntLiteralConstant" }, { - "id": "0x55eadb491480-IntLiteralConstant", + "id": "0x558d739d5fa0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55eadb490ae0-AllocOpt", + "id": "0x558d739d5600-AllocOpt", "variantKey": "StatOrErrmsg", - "StatOrErrmsg": "0x55eadb490ae0-StatOrErrmsg" + "StatOrErrmsg": "0x558d739d5600-StatOrErrmsg" }, { - "id": "0x55eadb490ae0-StatOrErrmsg", + "id": "0x558d739d5600-StatOrErrmsg", "variantKey": "StatVariable", - "StatVariable": "0x55eadb490ae0-StatVariable" + "StatVariable": "0x558d739d5600-StatVariable" }, { - "id": "0x55eadb490ae0-StatVariable", - "Expr": "0x55eadb490ae0-Variable" + "id": "0x558d739d5600-StatVariable", + "Expr": "0x558d739d5600-Variable" }, { - "id": "0x55eadb490ae0-Variable", + "id": "0x558d739d5600-Variable", "variantKey": "Designator", - "Designator": "0x55eadb4916a0-Designator" + "Designator": "0x558d739d61c0-Designator" }, { - "id": "0x55eadb4916a0-Designator", + "id": "0x558d739d61c0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4916b0-DataRef" + "DataRef": "0x558d739d61d0-DataRef" }, { - "id": "0x55eadb4916b0-DataRef", + "id": "0x558d739d61d0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4916b0-Name" + "Name": "0x558d739d61d0-Name" }, { - "id": "0x55eadb4916b0-Name", + "id": "0x558d739d61d0-Name", "source": "i" }, { - "id": "0x55eadb491710-ExecutionPartConstruct", + "id": "0x558d739d6230-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb491710-ExecutableConstruct" + "ExecutableConstruct": "0x558d739d6230-ExecutableConstruct" }, { - "id": "0x55eadb491710-ExecutableConstruct", + "id": "0x558d739d6230-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb491710-Statement" + "Statement": "0x558d739d6230-Statement" }, { - "id": "0x55eadb491710-Statement", - "statement": "0x55eadb491720-ActionStmt", + "id": "0x558d739d6230-Statement", + "statement": "0x558d739d6240-ActionStmt", "source": "call check_err(i)" }, { - "id": "0x55eadb491720-ActionStmt", + "id": "0x558d739d6240-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x55eadb4919b0-CallStmt" + "CallStmt": "0x558d739d64d0-CallStmt" }, { - "id": "0x55eadb4919b0-CallStmt", - "call": "0x55eadb4919b0-Call" + "id": "0x558d739d64d0-CallStmt", + "call": "0x558d739d64d0-Call" }, { - "id": "0x55eadb4919b0-Call", - "ProcedureDesignator": "0x55eadb4919c8-ProcedureDesignator", + "id": "0x558d739d64d0-Call", + "ProcedureDesignator": "0x558d739d64e8-ProcedureDesignator", "ActualArgSpec": [ - "0x55eadb4918b0-ActualArgSpec" + "0x558d739d63d0-ActualArgSpec" ] }, { - "id": "0x55eadb4919c8-ProcedureDesignator", + "id": "0x558d739d64e8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55eadb4919c8-Name" + "Name": "0x558d739d64e8-Name" }, { - "id": "0x55eadb4919c8-Name", + "id": "0x558d739d64e8-Name", "source": "check_err" }, { - "id": "0x55eadb4918b0-ActualArgSpec", - "ActualArg": "0x55eadb4918b0-ActualArg" + "id": "0x558d739d63d0-ActualArgSpec", + "ActualArg": "0x558d739d63d0-ActualArg" }, { - "id": "0x55eadb4918b0-ActualArg", + "id": "0x558d739d63d0-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb4917c0-Expr" + "Expr": "0x558d739d62e0-Expr" }, { - "id": "0x55eadb4917c0-Expr", + "id": "0x558d739d62e0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb48dc70-Designator" + "Designator": "0x558d739d2000-Designator" }, { - "id": "0x55eadb48dc70-Designator", + "id": "0x558d739d2000-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb48dc80-DataRef" + "DataRef": "0x558d739d2010-DataRef" }, { - "id": "0x55eadb48dc80-DataRef", + "id": "0x558d739d2010-DataRef", "variantKey": "Name", - "Name": "0x55eadb48dc80-Name" + "Name": "0x558d739d2010-Name" }, { - "id": "0x55eadb48dc80-Name", + "id": "0x558d739d2010-Name", "source": "i" }, { - "id": "0x55eadb4921e0-ExecutionPartConstruct", + "id": "0x558d739d6d00-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4921e0-ExecutableConstruct" + "ExecutableConstruct": "0x558d739d6d00-ExecutableConstruct" }, { - "id": "0x55eadb4921e0-ExecutableConstruct", + "id": "0x558d739d6d00-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4921e0-Statement" + "Statement": "0x558d739d6d00-Statement" }, { - "id": "0x55eadb4921e0-Statement", - "statement": "0x55eadb4921f0-ActionStmt", + "id": "0x558d739d6d00-Statement", + "statement": "0x558d739d6d10-ActionStmt", "source": "allocate(g(32 + 0, 32 + 0), stat = i)" }, { - "id": "0x55eadb4921f0-ActionStmt", + "id": "0x558d739d6d10-ActionStmt", "variantKey": "AllocateStmt", - "AllocateStmt": "0x55eadb4170b0-AllocateStmt" + "AllocateStmt": "0x558d7395b1d0-AllocateStmt" }, { - "id": "0x55eadb4170b0-AllocateStmt", + "id": "0x558d7395b1d0-AllocateStmt", "Allocation": [ - "0x55eadb492010-Allocation" + "0x558d739d6b30-Allocation" ], "AllocOpt": [ - "0x55eadb491550-AllocOpt" + "0x558d739d6070-AllocOpt" ] }, { - "id": "0x55eadb492010-Allocation", - "AllocateObject": "0x55eadb492058-AllocateObject", + "id": "0x558d739d6b30-Allocation", + "AllocateObject": "0x558d739d6b78-AllocateObject", "AllocateShapeSpec": [ - "0x55eadb496730-AllocateShapeSpec", - "0x55eadb4966c0-AllocateShapeSpec" + "0x558d739da680-AllocateShapeSpec", + "0x558d739da610-AllocateShapeSpec" ] }, { - "id": "0x55eadb492058-AllocateObject", + "id": "0x558d739d6b78-AllocateObject", "variantKey": "Name", - "Name": "0x55eadb492068-Name" + "Name": "0x558d739d6b88-Name" }, { - "id": "0x55eadb492068-Name", + "id": "0x558d739d6b88-Name", "source": "g" }, { - "id": "0x55eadb496730-AllocateShapeSpec", - "upper_bound": "0x55eadb491b50-Expr" + "id": "0x558d739da680-AllocateShapeSpec", + "upper_bound": "0x558d739d6670-Expr" }, { - "id": "0x55eadb491b50-Expr", + "id": "0x558d739d6670-Expr", "variantKey": "Add", - "Add": "0x55eadb491b70-Add" + "Add": "0x558d739d6690-Add" }, { - "id": "0x55eadb491b70-Add", - "left": "0x55eadb491a70-Expr", - "right": "0x55eadb491c30-Expr", + "id": "0x558d739d6690-Add", + "left": "0x558d739d6590-Expr", + "right": "0x558d739d6750-Expr", "op": "ADD" }, { - "id": "0x55eadb491a70-Expr", + "id": "0x558d739d6590-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb491a90-LiteralConstant" + "LiteralConstant": "0x558d739d65b0-LiteralConstant" }, { - "id": "0x55eadb491a90-LiteralConstant", + "id": "0x558d739d65b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb491a90-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d65b0-IntLiteralConstant" }, { - "id": "0x55eadb491a90-IntLiteralConstant", + "id": "0x558d739d65b0-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x55eadb491c30-Expr", + "id": "0x558d739d6750-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb491c50-LiteralConstant" + "LiteralConstant": "0x558d739d6770-LiteralConstant" }, { - "id": "0x55eadb491c50-LiteralConstant", + "id": "0x558d739d6770-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb491c50-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d6770-IntLiteralConstant" }, { - "id": "0x55eadb491c50-IntLiteralConstant", + "id": "0x558d739d6770-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55eadb4966c0-AllocateShapeSpec", - "upper_bound": "0x55eadb491df0-Expr" + "id": "0x558d739da610-AllocateShapeSpec", + "upper_bound": "0x558d739d6910-Expr" }, { - "id": "0x55eadb491df0-Expr", + "id": "0x558d739d6910-Expr", "variantKey": "Add", - "Add": "0x55eadb491e10-Add" + "Add": "0x558d739d6930-Add" }, { - "id": "0x55eadb491e10-Add", - "left": "0x55eadb491d10-Expr", - "right": "0x55eadb491ed0-Expr", + "id": "0x558d739d6930-Add", + "left": "0x558d739d6830-Expr", + "right": "0x558d739d69f0-Expr", "op": "ADD" }, { - "id": "0x55eadb491d10-Expr", + "id": "0x558d739d6830-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb491d30-LiteralConstant" + "LiteralConstant": "0x558d739d6850-LiteralConstant" }, { - "id": "0x55eadb491d30-LiteralConstant", + "id": "0x558d739d6850-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb491d30-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d6850-IntLiteralConstant" }, { - "id": "0x55eadb491d30-IntLiteralConstant", + "id": "0x558d739d6850-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x55eadb491ed0-Expr", + "id": "0x558d739d69f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb491ef0-LiteralConstant" + "LiteralConstant": "0x558d739d6a10-LiteralConstant" }, { - "id": "0x55eadb491ef0-LiteralConstant", + "id": "0x558d739d6a10-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb491ef0-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d6a10-IntLiteralConstant" }, { - "id": "0x55eadb491ef0-IntLiteralConstant", + "id": "0x558d739d6a10-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55eadb491550-AllocOpt", + "id": "0x558d739d6070-AllocOpt", "variantKey": "StatOrErrmsg", - "StatOrErrmsg": "0x55eadb491550-StatOrErrmsg" + "StatOrErrmsg": "0x558d739d6070-StatOrErrmsg" }, { - "id": "0x55eadb491550-StatOrErrmsg", + "id": "0x558d739d6070-StatOrErrmsg", "variantKey": "StatVariable", - "StatVariable": "0x55eadb491550-StatVariable" + "StatVariable": "0x558d739d6070-StatVariable" }, { - "id": "0x55eadb491550-StatVariable", - "Expr": "0x55eadb491550-Variable" + "id": "0x558d739d6070-StatVariable", + "Expr": "0x558d739d6070-Variable" }, { - "id": "0x55eadb491550-Variable", + "id": "0x558d739d6070-Variable", "variantKey": "Designator", - "Designator": "0x55eadb492110-Designator" + "Designator": "0x558d739d6c30-Designator" }, { - "id": "0x55eadb492110-Designator", + "id": "0x558d739d6c30-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb492120-DataRef" + "DataRef": "0x558d739d6c40-DataRef" }, { - "id": "0x55eadb492120-DataRef", + "id": "0x558d739d6c40-DataRef", "variantKey": "Name", - "Name": "0x55eadb492120-Name" + "Name": "0x558d739d6c40-Name" }, { - "id": "0x55eadb492120-Name", + "id": "0x558d739d6c40-Name", "source": "i" }, { - "id": "0x55eadb492180-ExecutionPartConstruct", + "id": "0x558d739d6ca0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb492180-ExecutableConstruct" + "ExecutableConstruct": "0x558d739d6ca0-ExecutableConstruct" }, { - "id": "0x55eadb492180-ExecutableConstruct", + "id": "0x558d739d6ca0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb492180-Statement" + "Statement": "0x558d739d6ca0-Statement" }, { - "id": "0x55eadb492180-Statement", - "statement": "0x55eadb492190-ActionStmt", + "id": "0x558d739d6ca0-Statement", + "statement": "0x558d739d6cb0-ActionStmt", "source": "call check_err(i)" }, { - "id": "0x55eadb492190-ActionStmt", + "id": "0x558d739d6cb0-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x55eadb492420-CallStmt" + "CallStmt": "0x558d739d6f40-CallStmt" }, { - "id": "0x55eadb492420-CallStmt", - "call": "0x55eadb492420-Call" + "id": "0x558d739d6f40-CallStmt", + "call": "0x558d739d6f40-Call" }, { - "id": "0x55eadb492420-Call", - "ProcedureDesignator": "0x55eadb492438-ProcedureDesignator", + "id": "0x558d739d6f40-Call", + "ProcedureDesignator": "0x558d739d6f58-ProcedureDesignator", "ActualArgSpec": [ - "0x55eadb492320-ActualArgSpec" + "0x558d739d6e40-ActualArgSpec" ] }, { - "id": "0x55eadb492438-ProcedureDesignator", + "id": "0x558d739d6f58-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55eadb492438-Name" + "Name": "0x558d739d6f58-Name" }, { - "id": "0x55eadb492438-Name", + "id": "0x558d739d6f58-Name", "source": "check_err" }, { - "id": "0x55eadb492320-ActualArgSpec", - "ActualArg": "0x55eadb492320-ActualArg" + "id": "0x558d739d6e40-ActualArgSpec", + "ActualArg": "0x558d739d6e40-ActualArg" }, { - "id": "0x55eadb492320-ActualArg", + "id": "0x558d739d6e40-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb492230-Expr" + "Expr": "0x558d739d6d50-Expr" }, { - "id": "0x55eadb492230-Expr", + "id": "0x558d739d6d50-Expr", "variantKey": "Designator", - "Designator": "0x55eadb48ec80-Designator" + "Designator": "0x558d739d37a0-Designator" }, { - "id": "0x55eadb48ec80-Designator", + "id": "0x558d739d37a0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb48ec90-DataRef" + "DataRef": "0x558d739d37b0-DataRef" }, { - "id": "0x55eadb48ec90-DataRef", + "id": "0x558d739d37b0-DataRef", "variantKey": "Name", - "Name": "0x55eadb48ec90-Name" + "Name": "0x558d739d37b0-Name" }, { - "id": "0x55eadb48ec90-Name", + "id": "0x558d739d37b0-Name", "source": "i" }, { - "id": "0x55eadb494fa0-ExecutionPartConstruct", + "id": "0x558d739d9ac0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb494fa0-ExecutableConstruct" + "ExecutableConstruct": "0x558d739d9ac0-ExecutableConstruct" }, { - "id": "0x55eadb494fa0-ExecutableConstruct", + "id": "0x558d739d9ac0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb494fa0-Statement" + "Statement": "0x558d739d9ac0-Statement" }, { - "id": "0x55eadb494fa0-Statement", - "statement": "0x55eadb494fb0-ActionStmt", + "id": "0x558d739d9ac0-Statement", + "statement": "0x558d739d9ad0-ActionStmt", "source": "call init_array(32, 32, 32, 32, 32, a, b, c, d)" }, { - "id": "0x55eadb494fb0-ActionStmt", + "id": "0x558d739d9ad0-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x55eadb494e60-CallStmt" + "CallStmt": "0x558d739d9980-CallStmt" }, { - "id": "0x55eadb494e60-CallStmt", - "call": "0x55eadb494e60-Call" + "id": "0x558d739d9980-CallStmt", + "call": "0x558d739d9980-Call" }, { - "id": "0x55eadb494e60-Call", - "ProcedureDesignator": "0x55eadb494e78-ProcedureDesignator", + "id": "0x558d739d9980-Call", + "ProcedureDesignator": "0x558d739d9998-ProcedureDesignator", "ActualArgSpec": [ - "0x55eadb494cf0-ActualArgSpec", - "0x55eadb494410-ActualArgSpec", - "0x55eadb494520-ActualArgSpec", - "0x55eadb494630-ActualArgSpec", - "0x55eadb494740-ActualArgSpec", - "0x55eadb494850-ActualArgSpec", - "0x55eadb494960-ActualArgSpec", - "0x55eadb494a70-ActualArgSpec", - "0x55eadb494be0-ActualArgSpec" + "0x558d739d9810-ActualArgSpec", + "0x558d739d8f30-ActualArgSpec", + "0x558d739d9040-ActualArgSpec", + "0x558d739d9150-ActualArgSpec", + "0x558d739d9260-ActualArgSpec", + "0x558d739d9370-ActualArgSpec", + "0x558d739d9480-ActualArgSpec", + "0x558d739d9590-ActualArgSpec", + "0x558d739d9700-ActualArgSpec" ] }, { - "id": "0x55eadb494e78-ProcedureDesignator", + "id": "0x558d739d9998-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55eadb494e78-Name" + "Name": "0x558d739d9998-Name" }, { - "id": "0x55eadb494e78-Name", + "id": "0x558d739d9998-Name", "source": "init_array" }, { - "id": "0x55eadb494cf0-ActualArgSpec", - "ActualArg": "0x55eadb494cf0-ActualArg" + "id": "0x558d739d9810-ActualArgSpec", + "ActualArg": "0x558d739d9810-ActualArg" }, { - "id": "0x55eadb494cf0-ActualArg", + "id": "0x558d739d9810-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb4934c0-Expr" + "Expr": "0x558d739d7fe0-Expr" }, { - "id": "0x55eadb4934c0-Expr", + "id": "0x558d739d7fe0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4934e0-LiteralConstant" + "LiteralConstant": "0x558d739d8000-LiteralConstant" }, { - "id": "0x55eadb4934e0-LiteralConstant", + "id": "0x558d739d8000-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4934e0-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d8000-IntLiteralConstant" }, { - "id": "0x55eadb4934e0-IntLiteralConstant", + "id": "0x558d739d8000-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x55eadb494410-ActualArgSpec", - "ActualArg": "0x55eadb494410-ActualArg" + "id": "0x558d739d8f30-ActualArgSpec", + "ActualArg": "0x558d739d8f30-ActualArg" }, { - "id": "0x55eadb494410-ActualArg", + "id": "0x558d739d8f30-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb492e80-Expr" + "Expr": "0x558d739d79a0-Expr" }, { - "id": "0x55eadb492e80-Expr", + "id": "0x558d739d79a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb492ea0-LiteralConstant" + "LiteralConstant": "0x558d739d79c0-LiteralConstant" }, { - "id": "0x55eadb492ea0-LiteralConstant", + "id": "0x558d739d79c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb492ea0-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d79c0-IntLiteralConstant" }, { - "id": "0x55eadb492ea0-IntLiteralConstant", + "id": "0x558d739d79c0-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x55eadb494520-ActualArgSpec", - "ActualArg": "0x55eadb494520-ActualArg" + "id": "0x558d739d9040-ActualArgSpec", + "ActualArg": "0x558d739d9040-ActualArg" }, { - "id": "0x55eadb494520-ActualArg", + "id": "0x558d739d9040-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb492900-Expr" + "Expr": "0x558d739d7420-Expr" }, { - "id": "0x55eadb492900-Expr", + "id": "0x558d739d7420-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb492920-LiteralConstant" + "LiteralConstant": "0x558d739d7440-LiteralConstant" }, { - "id": "0x55eadb492920-LiteralConstant", + "id": "0x558d739d7440-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb492920-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d7440-IntLiteralConstant" }, { - "id": "0x55eadb492920-IntLiteralConstant", + "id": "0x558d739d7440-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x55eadb494630-ActualArgSpec", - "ActualArg": "0x55eadb494630-ActualArg" + "id": "0x558d739d9150-ActualArgSpec", + "ActualArg": "0x558d739d9150-ActualArg" }, { - "id": "0x55eadb494630-ActualArg", + "id": "0x558d739d9150-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb4927d0-Expr" + "Expr": "0x558d739d72f0-Expr" }, { - "id": "0x55eadb4927d0-Expr", + "id": "0x558d739d72f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4927f0-LiteralConstant" + "LiteralConstant": "0x558d739d7310-LiteralConstant" }, { - "id": "0x55eadb4927f0-LiteralConstant", + "id": "0x558d739d7310-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4927f0-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d7310-IntLiteralConstant" }, { - "id": "0x55eadb4927f0-IntLiteralConstant", + "id": "0x558d739d7310-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x55eadb494740-ActualArgSpec", - "ActualArg": "0x55eadb494740-ActualArg" + "id": "0x558d739d9260-ActualArgSpec", + "ActualArg": "0x558d739d9260-ActualArg" }, { - "id": "0x55eadb494740-ActualArg", + "id": "0x558d739d9260-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb4926a0-Expr" + "Expr": "0x558d739d71c0-Expr" }, { - "id": "0x55eadb4926a0-Expr", + "id": "0x558d739d71c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4926c0-LiteralConstant" + "LiteralConstant": "0x558d739d71e0-LiteralConstant" }, { - "id": "0x55eadb4926c0-LiteralConstant", + "id": "0x558d739d71e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4926c0-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d71e0-IntLiteralConstant" }, { - "id": "0x55eadb4926c0-IntLiteralConstant", + "id": "0x558d739d71e0-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x55eadb494850-ActualArgSpec", - "ActualArg": "0x55eadb494850-ActualArg" + "id": "0x558d739d9370-ActualArgSpec", + "ActualArg": "0x558d739d9370-ActualArg" }, { - "id": "0x55eadb494850-ActualArg", + "id": "0x558d739d9370-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb4925c0-Expr" + "Expr": "0x558d739d70e0-Expr" }, { - "id": "0x55eadb4925c0-Expr", + "id": "0x558d739d70e0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb493a30-Designator" + "Designator": "0x558d739d8550-Designator" }, { - "id": "0x55eadb493a30-Designator", + "id": "0x558d739d8550-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb493a40-DataRef" + "DataRef": "0x558d739d8560-DataRef" }, { - "id": "0x55eadb493a40-DataRef", + "id": "0x558d739d8560-DataRef", "variantKey": "Name", - "Name": "0x55eadb493a40-Name" + "Name": "0x558d739d8560-Name" }, { - "id": "0x55eadb493a40-Name", + "id": "0x558d739d8560-Name", "source": "a" }, { - "id": "0x55eadb494960-ActualArgSpec", - "ActualArg": "0x55eadb494960-ActualArg" + "id": "0x558d739d9480-ActualArgSpec", + "ActualArg": "0x558d739d9480-ActualArg" }, { - "id": "0x55eadb494960-ActualArg", + "id": "0x558d739d9480-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb4924e0-Expr" + "Expr": "0x558d739d7000-Expr" }, { - "id": "0x55eadb4924e0-Expr", + "id": "0x558d739d7000-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4933f0-Designator" + "Designator": "0x558d739d7f10-Designator" }, { - "id": "0x55eadb4933f0-Designator", + "id": "0x558d739d7f10-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb493400-DataRef" + "DataRef": "0x558d739d7f20-DataRef" }, { - "id": "0x55eadb493400-DataRef", + "id": "0x558d739d7f20-DataRef", "variantKey": "Name", - "Name": "0x55eadb493400-Name" + "Name": "0x558d739d7f20-Name" }, { - "id": "0x55eadb493400-Name", + "id": "0x558d739d7f20-Name", "source": "b" }, { - "id": "0x55eadb494a70-ActualArgSpec", - "ActualArg": "0x55eadb494a70-ActualArg" + "id": "0x558d739d9590-ActualArgSpec", + "ActualArg": "0x558d739d9590-ActualArg" }, { - "id": "0x55eadb494a70-ActualArg", + "id": "0x558d739d9590-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb493b00-Expr" + "Expr": "0x558d739d8620-Expr" }, { - "id": "0x55eadb493b00-Expr", + "id": "0x558d739d8620-Expr", "variantKey": "Designator", - "Designator": "0x55eadb492db0-Designator" + "Designator": "0x558d739d78d0-Designator" }, { - "id": "0x55eadb492db0-Designator", + "id": "0x558d739d78d0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb492dc0-DataRef" + "DataRef": "0x558d739d78e0-DataRef" }, { - "id": "0x55eadb492dc0-DataRef", + "id": "0x558d739d78e0-DataRef", "variantKey": "Name", - "Name": "0x55eadb492dc0-Name" + "Name": "0x558d739d78e0-Name" }, { - "id": "0x55eadb492dc0-Name", + "id": "0x558d739d78e0-Name", "source": "c" }, { - "id": "0x55eadb494be0-ActualArgSpec", - "ActualArg": "0x55eadb494be0-ActualArg" + "id": "0x558d739d9700-ActualArgSpec", + "ActualArg": "0x558d739d9700-ActualArg" }, { - "id": "0x55eadb494be0-ActualArg", + "id": "0x558d739d9700-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb494140-Expr" + "Expr": "0x558d739d8c60-Expr" }, { - "id": "0x55eadb494140-Expr", + "id": "0x558d739d8c60-Expr", "variantKey": "Designator", - "Designator": "0x55eadb494b70-Designator" + "Designator": "0x558d739d9690-Designator" }, { - "id": "0x55eadb494b70-Designator", + "id": "0x558d739d9690-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb494b80-DataRef" + "DataRef": "0x558d739d96a0-DataRef" }, { - "id": "0x55eadb494b80-DataRef", + "id": "0x558d739d96a0-DataRef", "variantKey": "Name", - "Name": "0x55eadb494b80-Name" + "Name": "0x558d739d96a0-Name" }, { - "id": "0x55eadb494b80-Name", + "id": "0x558d739d96a0-Name", "source": "d" }, { - "id": "0x55eadb493e60-ExecutionPartConstruct", + "id": "0x558d739d8980-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb493e60-ExecutableConstruct" + "ExecutableConstruct": "0x558d739d8980-ExecutableConstruct" }, { - "id": "0x55eadb493e60-ExecutableConstruct", + "id": "0x558d739d8980-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb493e60-Statement" + "Statement": "0x558d739d8980-Statement" }, { - "id": "0x55eadb493e60-Statement", - "statement": "0x55eadb493e70-ActionStmt", + "id": "0x558d739d8980-Statement", + "statement": "0x558d739d8990-ActionStmt", "source": "call polybench_timer_start()" }, { - "id": "0x55eadb493e70-ActionStmt", + "id": "0x558d739d8990-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x55eadb494ff0-CallStmt" + "CallStmt": "0x558d739d9b10-CallStmt" }, { - "id": "0x55eadb494ff0-CallStmt", - "call": "0x55eadb494ff0-Call" + "id": "0x558d739d9b10-CallStmt", + "call": "0x558d739d9b10-Call" }, { - "id": "0x55eadb494ff0-Call", - "ProcedureDesignator": "0x55eadb495008-ProcedureDesignator" + "id": "0x558d739d9b10-Call", + "ProcedureDesignator": "0x558d739d9b28-ProcedureDesignator" }, { - "id": "0x55eadb495008-ProcedureDesignator", + "id": "0x558d739d9b28-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55eadb495008-Name" + "Name": "0x558d739d9b28-Name" }, { - "id": "0x55eadb495008-Name", + "id": "0x558d739d9b28-Name", "source": "polybench_timer_start" }, { - "id": "0x55eadb4a8720-ExecutionPartConstruct", + "id": "0x558d739ec6f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4a8720-ExecutableConstruct" + "ExecutableConstruct": "0x558d739ec6f0-ExecutableConstruct" }, { - "id": "0x55eadb4a8720-ExecutableConstruct", + "id": "0x558d739ec6f0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4a8720-Statement" + "Statement": "0x558d739ec6f0-Statement" }, { - "id": "0x55eadb4a8720-Statement", - "statement": "0x55eadb4a8730-ActionStmt", + "id": "0x558d739ec6f0-Statement", + "statement": "0x558d739ec700-ActionStmt", "source": "call kernel_3mm(32, 32, 32, 32, 32, e, a, b, f, c, d, g)" }, { - "id": "0x55eadb4a8730-ActionStmt", + "id": "0x558d739ec700-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x55eadb4a85e0-CallStmt" + "CallStmt": "0x558d739ec5b0-CallStmt" }, { - "id": "0x55eadb4a85e0-CallStmt", - "call": "0x55eadb4a85e0-Call" + "id": "0x558d739ec5b0-CallStmt", + "call": "0x558d739ec5b0-Call" }, { - "id": "0x55eadb4a85e0-Call", - "ProcedureDesignator": "0x55eadb4a85f8-ProcedureDesignator", + "id": "0x558d739ec5b0-Call", + "ProcedureDesignator": "0x558d739ec5c8-ProcedureDesignator", "ActualArgSpec": [ - "0x55eadb4a8470-ActualArgSpec", - "0x55eadb4a77e0-ActualArgSpec", - "0x55eadb4a78f0-ActualArgSpec", - "0x55eadb4a7a00-ActualArgSpec", - "0x55eadb4a7b10-ActualArgSpec", - "0x55eadb4a7c20-ActualArgSpec", - "0x55eadb4a7d30-ActualArgSpec", - "0x55eadb4a7e40-ActualArgSpec", - "0x55eadb4a7f50-ActualArgSpec", - "0x55eadb4a8060-ActualArgSpec", - "0x55eadb4a8170-ActualArgSpec", - "0x55eadb4a8360-ActualArgSpec" + "0x558d739ec440-ActualArgSpec", + "0x558d739eb7b0-ActualArgSpec", + "0x558d739eb8c0-ActualArgSpec", + "0x558d739eb9d0-ActualArgSpec", + "0x558d739ebae0-ActualArgSpec", + "0x558d739ebbf0-ActualArgSpec", + "0x558d739ebd00-ActualArgSpec", + "0x558d739ebe10-ActualArgSpec", + "0x558d739ebf20-ActualArgSpec", + "0x558d739ec030-ActualArgSpec", + "0x558d739ec140-ActualArgSpec", + "0x558d739ec330-ActualArgSpec" ] }, { - "id": "0x55eadb4a85f8-ProcedureDesignator", + "id": "0x558d739ec5c8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55eadb4a85f8-Name" + "Name": "0x558d739ec5c8-Name" }, { - "id": "0x55eadb4a85f8-Name", + "id": "0x558d739ec5c8-Name", "source": "kernel_3mm" }, { - "id": "0x55eadb4a8470-ActualArgSpec", - "ActualArg": "0x55eadb4a8470-ActualArg" + "id": "0x558d739ec440-ActualArgSpec", + "ActualArg": "0x558d739ec440-ActualArg" }, { - "id": "0x55eadb4a8470-ActualArg", + "id": "0x558d739ec440-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb4955f0-Expr" + "Expr": "0x558d739da110-Expr" }, { - "id": "0x55eadb4955f0-Expr", + "id": "0x558d739da110-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb495610-LiteralConstant" + "LiteralConstant": "0x558d739da130-LiteralConstant" }, { - "id": "0x55eadb495610-LiteralConstant", + "id": "0x558d739da130-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb495610-IntLiteralConstant" + "IntLiteralConstant": "0x558d739da130-IntLiteralConstant" }, { - "id": "0x55eadb495610-IntLiteralConstant", + "id": "0x558d739da130-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x55eadb4a77e0-ActualArgSpec", - "ActualArg": "0x55eadb4a77e0-ActualArg" + "id": "0x558d739eb7b0-ActualArgSpec", + "ActualArg": "0x558d739eb7b0-ActualArg" }, { - "id": "0x55eadb4a77e0-ActualArg", + "id": "0x558d739eb7b0-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb495510-Expr" + "Expr": "0x558d739da030-Expr" }, { - "id": "0x55eadb495510-Expr", + "id": "0x558d739da030-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb495530-LiteralConstant" + "LiteralConstant": "0x558d739da050-LiteralConstant" }, { - "id": "0x55eadb495530-LiteralConstant", + "id": "0x558d739da050-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb495530-IntLiteralConstant" + "IntLiteralConstant": "0x558d739da050-IntLiteralConstant" }, { - "id": "0x55eadb495530-IntLiteralConstant", + "id": "0x558d739da050-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x55eadb4a78f0-ActualArgSpec", - "ActualArg": "0x55eadb4a78f0-ActualArg" + "id": "0x558d739eb8c0-ActualArgSpec", + "ActualArg": "0x558d739eb8c0-ActualArg" }, { - "id": "0x55eadb4a78f0-ActualArg", + "id": "0x558d739eb8c0-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb495430-Expr" + "Expr": "0x558d739d9f50-Expr" }, { - "id": "0x55eadb495430-Expr", + "id": "0x558d739d9f50-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb495450-LiteralConstant" + "LiteralConstant": "0x558d739d9f70-LiteralConstant" }, { - "id": "0x55eadb495450-LiteralConstant", + "id": "0x558d739d9f70-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb495450-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d9f70-IntLiteralConstant" }, { - "id": "0x55eadb495450-IntLiteralConstant", + "id": "0x558d739d9f70-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x55eadb4a7a00-ActualArgSpec", - "ActualArg": "0x55eadb4a7a00-ActualArg" + "id": "0x558d739eb9d0-ActualArgSpec", + "ActualArg": "0x558d739eb9d0-ActualArg" }, { - "id": "0x55eadb4a7a00-ActualArg", + "id": "0x558d739eb9d0-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb495350-Expr" + "Expr": "0x558d739d9e70-Expr" }, { - "id": "0x55eadb495350-Expr", + "id": "0x558d739d9e70-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb495370-LiteralConstant" + "LiteralConstant": "0x558d739d9e90-LiteralConstant" }, { - "id": "0x55eadb495370-LiteralConstant", + "id": "0x558d739d9e90-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb495370-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d9e90-IntLiteralConstant" }, { - "id": "0x55eadb495370-IntLiteralConstant", + "id": "0x558d739d9e90-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x55eadb4a7b10-ActualArgSpec", - "ActualArg": "0x55eadb4a7b10-ActualArg" + "id": "0x558d739ebae0-ActualArgSpec", + "ActualArg": "0x558d739ebae0-ActualArg" }, { - "id": "0x55eadb4a7b10-ActualArg", + "id": "0x558d739ebae0-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb495270-Expr" + "Expr": "0x558d739d9d90-Expr" }, { - "id": "0x55eadb495270-Expr", + "id": "0x558d739d9d90-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb495290-LiteralConstant" + "LiteralConstant": "0x558d739d9db0-LiteralConstant" }, { - "id": "0x55eadb495290-LiteralConstant", + "id": "0x558d739d9db0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb495290-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d9db0-IntLiteralConstant" }, { - "id": "0x55eadb495290-IntLiteralConstant", + "id": "0x558d739d9db0-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x55eadb4a7c20-ActualArgSpec", - "ActualArg": "0x55eadb4a7c20-ActualArg" + "id": "0x558d739ebbf0-ActualArgSpec", + "ActualArg": "0x558d739ebbf0-ActualArg" }, { - "id": "0x55eadb4a7c20-ActualArg", + "id": "0x558d739ebbf0-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb495190-Expr" + "Expr": "0x558d739d9cb0-Expr" }, { - "id": "0x55eadb495190-Expr", + "id": "0x558d739d9cb0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb496220-Designator" + "Designator": "0x558d739d16e0-Designator" }, { - "id": "0x55eadb496220-Designator", + "id": "0x558d739d16e0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb496230-DataRef" + "DataRef": "0x558d739d16f0-DataRef" }, { - "id": "0x55eadb496230-DataRef", + "id": "0x558d739d16f0-DataRef", "variantKey": "Name", - "Name": "0x55eadb496230-Name" + "Name": "0x558d739d16f0-Name" }, { - "id": "0x55eadb496230-Name", + "id": "0x558d739d16f0-Name", "source": "e" }, { - "id": "0x55eadb4a7d30-ActualArgSpec", - "ActualArg": "0x55eadb4a7d30-ActualArg" + "id": "0x558d739ebd00-ActualArgSpec", + "ActualArg": "0x558d739ebd00-ActualArg" }, { - "id": "0x55eadb4a7d30-ActualArg", + "id": "0x558d739ebd00-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb4950b0-Expr" + "Expr": "0x558d739d9bd0-Expr" }, { - "id": "0x55eadb4950b0-Expr", + "id": "0x558d739d9bd0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb495c30-Designator" + "Designator": "0x558d739d1bd0-Designator" }, { - "id": "0x55eadb495c30-Designator", + "id": "0x558d739d1bd0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb495c40-DataRef" + "DataRef": "0x558d739d1be0-DataRef" }, { - "id": "0x55eadb495c40-DataRef", + "id": "0x558d739d1be0-DataRef", "variantKey": "Name", - "Name": "0x55eadb495c40-Name" + "Name": "0x558d739d1be0-Name" }, { - "id": "0x55eadb495c40-Name", + "id": "0x558d739d1be0-Name", "source": "a" }, { - "id": "0x55eadb4a7e40-ActualArgSpec", - "ActualArg": "0x55eadb4a7e40-ActualArg" + "id": "0x558d739ebe10-ActualArgSpec", + "ActualArg": "0x558d739ebe10-ActualArg" }, { - "id": "0x55eadb4a7e40-ActualArg", + "id": "0x558d739ebe10-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb4958d0-Expr" + "Expr": "0x558d739e7c10-Expr" }, { - "id": "0x55eadb4958d0-Expr", + "id": "0x558d739e7c10-Expr", "variantKey": "Designator", - "Designator": "0x55eadb495870-Designator" + "Designator": "0x558d739e3ad0-Designator" }, { - "id": "0x55eadb495870-Designator", + "id": "0x558d739e3ad0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb495880-DataRef" + "DataRef": "0x558d739e3ae0-DataRef" }, { - "id": "0x55eadb495880-DataRef", + "id": "0x558d739e3ae0-DataRef", "variantKey": "Name", - "Name": "0x55eadb495880-Name" + "Name": "0x558d739e3ae0-Name" }, { - "id": "0x55eadb495880-Name", + "id": "0x558d739e3ae0-Name", "source": "b" }, { - "id": "0x55eadb4a7f50-ActualArgSpec", - "ActualArg": "0x55eadb4a7f50-ActualArg" + "id": "0x558d739ebf20-ActualArgSpec", + "ActualArg": "0x558d739ebf20-ActualArg" }, { - "id": "0x55eadb4a7f50-ActualArg", + "id": "0x558d739ebf20-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb4a7580-Expr" + "Expr": "0x558d739eb5a0-Expr" }, { - "id": "0x55eadb4a7580-Expr", + "id": "0x558d739eb5a0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb48f6f0-Designator" + "Designator": "0x558d739d4210-Designator" }, { - "id": "0x55eadb48f6f0-Designator", + "id": "0x558d739d4210-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb48f700-DataRef" + "DataRef": "0x558d739d4220-DataRef" }, { - "id": "0x55eadb48f700-DataRef", + "id": "0x558d739d4220-DataRef", "variantKey": "Name", - "Name": "0x55eadb48f700-Name" + "Name": "0x558d739d4220-Name" }, { - "id": "0x55eadb48f700-Name", + "id": "0x558d739d4220-Name", "source": "f" }, { - "id": "0x55eadb4a8060-ActualArgSpec", - "ActualArg": "0x55eadb4a8060-ActualArg" + "id": "0x558d739ec030-ActualArgSpec", + "ActualArg": "0x558d739ec030-ActualArg" }, { - "id": "0x55eadb4a8060-ActualArg", + "id": "0x558d739ec030-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb4962f0-Expr" + "Expr": "0x558d739d17b0-Expr" }, { - "id": "0x55eadb4962f0-Expr", + "id": "0x558d739d17b0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb494070-Designator" + "Designator": "0x558d739d8b90-Designator" }, { - "id": "0x55eadb494070-Designator", + "id": "0x558d739d8b90-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb494080-DataRef" + "DataRef": "0x558d739d8ba0-DataRef" }, { - "id": "0x55eadb494080-DataRef", + "id": "0x558d739d8ba0-DataRef", "variantKey": "Name", - "Name": "0x55eadb494080-Name" + "Name": "0x558d739d8ba0-Name" }, { - "id": "0x55eadb494080-Name", + "id": "0x558d739d8ba0-Name", "source": "c" }, { - "id": "0x55eadb4a8170-ActualArgSpec", - "ActualArg": "0x55eadb4a8170-ActualArg" + "id": "0x558d739ec140-ActualArgSpec", + "ActualArg": "0x558d739ec140-ActualArg" }, { - "id": "0x55eadb4a8170-ActualArg", + "id": "0x558d739ec140-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb495d00-Expr" + "Expr": "0x558d739d1190-Expr" }, { - "id": "0x55eadb495d00-Expr", + "id": "0x558d739d1190-Expr", "variantKey": "Designator", - "Designator": "0x55eadb490160-Designator" + "Designator": "0x558d739d4c80-Designator" }, { - "id": "0x55eadb490160-Designator", + "id": "0x558d739d4c80-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb490170-DataRef" + "DataRef": "0x558d739d4c90-DataRef" }, { - "id": "0x55eadb490170-DataRef", + "id": "0x558d739d4c90-DataRef", "variantKey": "Name", - "Name": "0x55eadb490170-Name" + "Name": "0x558d739d4c90-Name" }, { - "id": "0x55eadb490170-Name", + "id": "0x558d739d4c90-Name", "source": "d" }, { - "id": "0x55eadb4a8360-ActualArgSpec", - "ActualArg": "0x55eadb4a8360-ActualArg" + "id": "0x558d739ec330-ActualArgSpec", + "ActualArg": "0x558d739ec330-ActualArg" }, { - "id": "0x55eadb4a8360-ActualArg", + "id": "0x558d739ec330-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb4a8270-Expr" + "Expr": "0x558d739ec240-Expr" }, { - "id": "0x55eadb4a8270-Expr", + "id": "0x558d739ec240-Expr", "variantKey": "Designator", - "Designator": "0x55eadb495740-Designator" + "Designator": "0x558d739da260-Designator" }, { - "id": "0x55eadb495740-Designator", + "id": "0x558d739da260-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb495750-DataRef" + "DataRef": "0x558d739da270-DataRef" }, { - "id": "0x55eadb495750-DataRef", + "id": "0x558d739da270-DataRef", "variantKey": "Name", - "Name": "0x55eadb495750-Name" + "Name": "0x558d739da270-Name" }, { - "id": "0x55eadb495750-Name", + "id": "0x558d739da270-Name", "source": "g" }, { - "id": "0x55eadb4a72a0-ExecutionPartConstruct", + "id": "0x558d739eb2c0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4a72a0-ExecutableConstruct" + "ExecutableConstruct": "0x558d739eb2c0-ExecutableConstruct" }, { - "id": "0x55eadb4a72a0-ExecutableConstruct", + "id": "0x558d739eb2c0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4a72a0-Statement" + "Statement": "0x558d739eb2c0-Statement" }, { - "id": "0x55eadb4a72a0-Statement", - "statement": "0x55eadb4a72b0-ActionStmt", + "id": "0x558d739eb2c0-Statement", + "statement": "0x558d739eb2d0-ActionStmt", "source": "call polybench_timer_stop()" }, { - "id": "0x55eadb4a72b0-ActionStmt", + "id": "0x558d739eb2d0-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x55eadb4a8770-CallStmt" + "CallStmt": "0x558d739ec740-CallStmt" }, { - "id": "0x55eadb4a8770-CallStmt", - "call": "0x55eadb4a8770-Call" + "id": "0x558d739ec740-CallStmt", + "call": "0x558d739ec740-Call" }, { - "id": "0x55eadb4a8770-Call", - "ProcedureDesignator": "0x55eadb4a8788-ProcedureDesignator" + "id": "0x558d739ec740-Call", + "ProcedureDesignator": "0x558d739ec758-ProcedureDesignator" }, { - "id": "0x55eadb4a8788-ProcedureDesignator", + "id": "0x558d739ec758-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55eadb4a8788-Name" + "Name": "0x558d739ec758-Name" }, { - "id": "0x55eadb4a8788-Name", + "id": "0x558d739ec758-Name", "source": "polybench_timer_stop" }, { - "id": "0x55eadb4a7710-ExecutionPartConstruct", + "id": "0x558d739eb6e0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4a7710-ExecutableConstruct" + "ExecutableConstruct": "0x558d739eb6e0-ExecutableConstruct" }, { - "id": "0x55eadb4a7710-ExecutableConstruct", + "id": "0x558d739eb6e0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4a7710-Statement" + "Statement": "0x558d739eb6e0-Statement" }, { - "id": "0x55eadb4a7710-Statement", - "statement": "0x55eadb4a7720-ActionStmt", + "id": "0x558d739eb6e0-Statement", + "statement": "0x558d739eb6f0-ActionStmt", "source": "call polybench_timer_print()" }, { - "id": "0x55eadb4a7720-ActionStmt", + "id": "0x558d739eb6f0-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x55eadb4a8830-CallStmt" + "CallStmt": "0x558d739ec800-CallStmt" }, { - "id": "0x55eadb4a8830-CallStmt", - "call": "0x55eadb4a8830-Call" + "id": "0x558d739ec800-CallStmt", + "call": "0x558d739ec800-Call" }, { - "id": "0x55eadb4a8830-Call", - "ProcedureDesignator": "0x55eadb4a8848-ProcedureDesignator" + "id": "0x558d739ec800-Call", + "ProcedureDesignator": "0x558d739ec818-ProcedureDesignator" }, { - "id": "0x55eadb4a8848-ProcedureDesignator", + "id": "0x558d739ec818-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55eadb4a8848-Name" + "Name": "0x558d739ec818-Name" }, { - "id": "0x55eadb4a8848-Name", + "id": "0x558d739ec818-Name", "source": "polybench_timer_print" }, { - "id": "0x55eadb493820-ExecutionPartConstruct", + "id": "0x558d739d8340-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb493820-ExecutableConstruct" + "ExecutableConstruct": "0x558d739d8340-ExecutableConstruct" }, { - "id": "0x55eadb493820-ExecutableConstruct", + "id": "0x558d739d8340-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb493820-Statement" + "Statement": "0x558d739d8340-Statement" }, { - "id": "0x55eadb493820-Statement", - "statement": "0x55eadb493830-ActionStmt", + "id": "0x558d739d8340-Statement", + "statement": "0x558d739d8350-ActionStmt", "source": "call print_array(32, 32, g)" }, { - "id": "0x55eadb493830-ActionStmt", + "id": "0x558d739d8350-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x55eadb4a8ec0-CallStmt" + "CallStmt": "0x558d739ece90-CallStmt" }, { - "id": "0x55eadb4a8ec0-CallStmt", - "call": "0x55eadb4a8ec0-Call" + "id": "0x558d739ece90-CallStmt", + "call": "0x558d739ece90-Call" }, { - "id": "0x55eadb4a8ec0-Call", - "ProcedureDesignator": "0x55eadb4a8ed8-ProcedureDesignator", + "id": "0x558d739ece90-Call", + "ProcedureDesignator": "0x558d739ecea8-ProcedureDesignator", "ActualArgSpec": [ - "0x55eadb4a8dc0-ActualArgSpec", - "0x55eadb4a8ba0-ActualArgSpec", - "0x55eadb4a8cb0-ActualArgSpec" + "0x558d739ecd90-ActualArgSpec", + "0x558d739ecb70-ActualArgSpec", + "0x558d739ecc80-ActualArgSpec" ] }, { - "id": "0x55eadb4a8ed8-ProcedureDesignator", + "id": "0x558d739ecea8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55eadb4a8ed8-Name" + "Name": "0x558d739ecea8-Name" }, { - "id": "0x55eadb4a8ed8-Name", + "id": "0x558d739ecea8-Name", "source": "print_array" }, { - "id": "0x55eadb4a8dc0-ActualArgSpec", - "ActualArg": "0x55eadb4a8dc0-ActualArg" + "id": "0x558d739ecd90-ActualArgSpec", + "ActualArg": "0x558d739ecd90-ActualArg" }, { - "id": "0x55eadb4a8dc0-ActualArg", + "id": "0x558d739ecd90-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb4a8ab0-Expr" + "Expr": "0x558d739eca80-Expr" }, { - "id": "0x55eadb4a8ab0-Expr", + "id": "0x558d739eca80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4a8ad0-LiteralConstant" + "LiteralConstant": "0x558d739ecaa0-LiteralConstant" }, { - "id": "0x55eadb4a8ad0-LiteralConstant", + "id": "0x558d739ecaa0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4a8ad0-IntLiteralConstant" + "IntLiteralConstant": "0x558d739ecaa0-IntLiteralConstant" }, { - "id": "0x55eadb4a8ad0-IntLiteralConstant", + "id": "0x558d739ecaa0-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x55eadb4a8ba0-ActualArgSpec", - "ActualArg": "0x55eadb4a8ba0-ActualArg" + "id": "0x558d739ecb70-ActualArgSpec", + "ActualArg": "0x558d739ecb70-ActualArg" }, { - "id": "0x55eadb4a8ba0-ActualArg", + "id": "0x558d739ecb70-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb4a89d0-Expr" + "Expr": "0x558d739ec9a0-Expr" }, { - "id": "0x55eadb4a89d0-Expr", + "id": "0x558d739ec9a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4a89f0-LiteralConstant" + "LiteralConstant": "0x558d739ec9c0-LiteralConstant" }, { - "id": "0x55eadb4a89f0-LiteralConstant", + "id": "0x558d739ec9c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4a89f0-IntLiteralConstant" + "IntLiteralConstant": "0x558d739ec9c0-IntLiteralConstant" }, { - "id": "0x55eadb4a89f0-IntLiteralConstant", + "id": "0x558d739ec9c0-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x55eadb4a8cb0-ActualArgSpec", - "ActualArg": "0x55eadb4a8cb0-ActualArg" + "id": "0x558d739ecc80-ActualArgSpec", + "ActualArg": "0x558d739ecc80-ActualArg" }, { - "id": "0x55eadb4a8cb0-ActualArg", + "id": "0x558d739ecc80-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb4a88f0-Expr" + "Expr": "0x558d739ec8c0-Expr" }, { - "id": "0x55eadb4a88f0-Expr", + "id": "0x558d739ec8c0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4935f0-Designator" + "Designator": "0x558d739d8110-Designator" }, { - "id": "0x55eadb4935f0-Designator", + "id": "0x558d739d8110-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb493600-DataRef" + "DataRef": "0x558d739d8120-DataRef" }, { - "id": "0x55eadb493600-DataRef", + "id": "0x558d739d8120-DataRef", "variantKey": "Name", - "Name": "0x55eadb493600-Name" + "Name": "0x558d739d8120-Name" }, { - "id": "0x55eadb493600-Name", + "id": "0x558d739d8120-Name", "source": "g" }, { - "id": "0x55eadb4a74c0-ExecutionPartConstruct", + "id": "0x558d739eb4e0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4a74c0-ExecutableConstruct" + "ExecutableConstruct": "0x558d739eb4e0-ExecutableConstruct" }, { - "id": "0x55eadb4a74c0-ExecutableConstruct", + "id": "0x558d739eb4e0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4a74c0-Statement" + "Statement": "0x558d739eb4e0-Statement" }, { - "id": "0x55eadb4a74c0-Statement", - "statement": "0x55eadb4a74d0-ActionStmt", + "id": "0x558d739eb4e0-Statement", + "statement": "0x558d739eb4f0-ActionStmt", "source": "deallocate(a)" }, { - "id": "0x55eadb4a74d0-ActionStmt", + "id": "0x558d739eb4f0-ActionStmt", "variantKey": "DeallocateStmt", - "DeallocateStmt": "0x55eadb496d90-DeallocateStmt" + "DeallocateStmt": "0x558d739dace0-DeallocateStmt" }, { - "id": "0x55eadb496d90-DeallocateStmt", + "id": "0x558d739dace0-DeallocateStmt", "AllocateObject": [ - "0x55eadb494e00-AllocateObject" + "0x558d739d9920-AllocateObject" ] }, { - "id": "0x55eadb494e00-AllocateObject", + "id": "0x558d739d9920-AllocateObject", "variantKey": "Name", - "Name": "0x55eadb494e10-Name" + "Name": "0x558d739d9930-Name" }, { - "id": "0x55eadb494e10-Name", + "id": "0x558d739d9930-Name", "source": "a" }, { - "id": "0x55eadb492fc0-ExecutionPartConstruct", + "id": "0x558d739d7ae0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb492fc0-ExecutableConstruct" + "ExecutableConstruct": "0x558d739d7ae0-ExecutableConstruct" }, { - "id": "0x55eadb492fc0-ExecutableConstruct", + "id": "0x558d739d7ae0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb492fc0-Statement" + "Statement": "0x558d739d7ae0-Statement" }, { - "id": "0x55eadb492fc0-Statement", - "statement": "0x55eadb492fd0-ActionStmt", + "id": "0x558d739d7ae0-Statement", + "statement": "0x558d739d7af0-ActionStmt", "source": "deallocate(b)" }, { - "id": "0x55eadb492fd0-ActionStmt", + "id": "0x558d739d7af0-ActionStmt", "variantKey": "DeallocateStmt", - "DeallocateStmt": "0x55eadb497470-DeallocateStmt" + "DeallocateStmt": "0x558d739db3c0-DeallocateStmt" }, { - "id": "0x55eadb497470-DeallocateStmt", + "id": "0x558d739db3c0-DeallocateStmt", "AllocateObject": [ - "0x55eadb48d270-AllocateObject" + "0x558d739d2430-AllocateObject" ] }, { - "id": "0x55eadb48d270-AllocateObject", + "id": "0x558d739d2430-AllocateObject", "variantKey": "Name", - "Name": "0x55eadb48d280-Name" + "Name": "0x558d739d2440-Name" }, { - "id": "0x55eadb48d280-Name", + "id": "0x558d739d2440-Name", "source": "b" }, { - "id": "0x55eadb493c40-ExecutionPartConstruct", + "id": "0x558d739d8760-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb493c40-ExecutableConstruct" + "ExecutableConstruct": "0x558d739d8760-ExecutableConstruct" }, { - "id": "0x55eadb493c40-ExecutableConstruct", + "id": "0x558d739d8760-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb493c40-Statement" + "Statement": "0x558d739d8760-Statement" }, { - "id": "0x55eadb493c40-Statement", - "statement": "0x55eadb493c50-ActionStmt", + "id": "0x558d739d8760-Statement", + "statement": "0x558d739d8770-ActionStmt", "source": "deallocate(c)" }, { - "id": "0x55eadb493c50-ActionStmt", + "id": "0x558d739d8770-ActionStmt", "variantKey": "DeallocateStmt", - "DeallocateStmt": "0x55eadb497530-DeallocateStmt" + "DeallocateStmt": "0x558d739db480-DeallocateStmt" }, { - "id": "0x55eadb497530-DeallocateStmt", + "id": "0x558d739db480-DeallocateStmt", "AllocateObject": [ - "0x55eadb494f30-AllocateObject" + "0x558d739d9a50-AllocateObject" ] }, { - "id": "0x55eadb494f30-AllocateObject", + "id": "0x558d739d9a50-AllocateObject", "variantKey": "Name", - "Name": "0x55eadb494f40-Name" + "Name": "0x558d739d9a60-Name" }, { - "id": "0x55eadb494f40-Name", + "id": "0x558d739d9a60-Name", "source": "c" }, { - "id": "0x55eadb490be0-ExecutionPartConstruct", + "id": "0x558d739d5700-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb490be0-ExecutableConstruct" + "ExecutableConstruct": "0x558d739d5700-ExecutableConstruct" }, { - "id": "0x55eadb490be0-ExecutableConstruct", + "id": "0x558d739d5700-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb490be0-Statement" + "Statement": "0x558d739d5700-Statement" }, { - "id": "0x55eadb490be0-Statement", - "statement": "0x55eadb490bf0-ActionStmt", + "id": "0x558d739d5700-Statement", + "statement": "0x558d739d5710-ActionStmt", "source": "deallocate(d)" }, { - "id": "0x55eadb490bf0-ActionStmt", + "id": "0x558d739d5710-ActionStmt", "variantKey": "DeallocateStmt", - "DeallocateStmt": "0x55eadb497930-DeallocateStmt" + "DeallocateStmt": "0x558d739db880-DeallocateStmt" }, { - "id": "0x55eadb497930-DeallocateStmt", + "id": "0x558d739db880-DeallocateStmt", "AllocateObject": [ - "0x55eadb4a3ef0-AllocateObject" + "0x558d739e7e40-AllocateObject" ] }, { - "id": "0x55eadb4a3ef0-AllocateObject", + "id": "0x558d739e7e40-AllocateObject", "variantKey": "Name", - "Name": "0x55eadb4a3f00-Name" + "Name": "0x558d739e7e50-Name" }, { - "id": "0x55eadb4a3f00-Name", + "id": "0x558d739e7e50-Name", "source": "d" }, { - "id": "0x55eadb48d9e0-ExecutionPartConstruct", + "id": "0x558d739d2290-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb48d9e0-ExecutableConstruct" + "ExecutableConstruct": "0x558d739d2290-ExecutableConstruct" }, { - "id": "0x55eadb48d9e0-ExecutableConstruct", + "id": "0x558d739d2290-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb48d9e0-Statement" + "Statement": "0x558d739d2290-Statement" }, { - "id": "0x55eadb48d9e0-Statement", - "statement": "0x55eadb48d9f0-ActionStmt", + "id": "0x558d739d2290-Statement", + "statement": "0x558d739d22a0-ActionStmt", "source": "deallocate(e)" }, { - "id": "0x55eadb48d9f0-ActionStmt", + "id": "0x558d739d22a0-ActionStmt", "variantKey": "DeallocateStmt", - "DeallocateStmt": "0x55eadb498160-DeallocateStmt" + "DeallocateStmt": "0x558d739dc0b0-DeallocateStmt" }, { - "id": "0x55eadb498160-DeallocateStmt", + "id": "0x558d739dc0b0-DeallocateStmt", "AllocateObject": [ - "0x55eadb493df0-AllocateObject" + "0x558d739d8910-AllocateObject" ] }, { - "id": "0x55eadb493df0-AllocateObject", + "id": "0x558d739d8910-AllocateObject", "variantKey": "Name", - "Name": "0x55eadb493e00-Name" + "Name": "0x558d739d8920-Name" }, { - "id": "0x55eadb493e00-Name", + "id": "0x558d739d8920-Name", "source": "e" }, { - "id": "0x55eadb495df0-ExecutionPartConstruct", + "id": "0x558d739d1280-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb495df0-ExecutableConstruct" + "ExecutableConstruct": "0x558d739d1280-ExecutableConstruct" }, { - "id": "0x55eadb495df0-ExecutableConstruct", + "id": "0x558d739d1280-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb495df0-Statement" + "Statement": "0x558d739d1280-Statement" }, { - "id": "0x55eadb495df0-Statement", - "statement": "0x55eadb495e00-ActionStmt", + "id": "0x558d739d1280-Statement", + "statement": "0x558d739d1290-ActionStmt", "source": "deallocate(f)" }, { - "id": "0x55eadb495e00-ActionStmt", + "id": "0x558d739d1290-ActionStmt", "variantKey": "DeallocateStmt", - "DeallocateStmt": "0x55eadb4981c0-DeallocateStmt" + "DeallocateStmt": "0x558d739dc110-DeallocateStmt" }, { - "id": "0x55eadb4981c0-DeallocateStmt", + "id": "0x558d739dc110-DeallocateStmt", "AllocateObject": [ - "0x55eadb493ec0-AllocateObject" + "0x558d739d89e0-AllocateObject" ] }, { - "id": "0x55eadb493ec0-AllocateObject", + "id": "0x558d739d89e0-AllocateObject", "variantKey": "Name", - "Name": "0x55eadb493ed0-Name" + "Name": "0x558d739d89f0-Name" }, { - "id": "0x55eadb493ed0-Name", + "id": "0x558d739d89f0-Name", "source": "f" }, { - "id": "0x55eadb48e080-ExecutionPartConstruct", + "id": "0x558d739d2ba0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb48e080-ExecutableConstruct" + "ExecutableConstruct": "0x558d739d2ba0-ExecutableConstruct" }, { - "id": "0x55eadb48e080-ExecutableConstruct", + "id": "0x558d739d2ba0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb48e080-Statement" + "Statement": "0x558d739d2ba0-Statement" }, { - "id": "0x55eadb48e080-Statement", - "statement": "0x55eadb48e090-ActionStmt", + "id": "0x558d739d2ba0-Statement", + "statement": "0x558d739d2bb0-ActionStmt", "source": "deallocate(g)" }, { - "id": "0x55eadb48e090-ActionStmt", + "id": "0x558d739d2bb0-ActionStmt", "variantKey": "DeallocateStmt", - "DeallocateStmt": "0x55eadb49c3c0-DeallocateStmt" + "DeallocateStmt": "0x558d739dc150-DeallocateStmt" }, { - "id": "0x55eadb49c3c0-DeallocateStmt", + "id": "0x558d739dc150-DeallocateStmt", "AllocateObject": [ - "0x55eadb4a7230-AllocateObject" + "0x558d739eb250-AllocateObject" ] }, { - "id": "0x55eadb4a7230-AllocateObject", + "id": "0x558d739eb250-AllocateObject", "variantKey": "Name", - "Name": "0x55eadb4a7240-Name" + "Name": "0x558d739eb260-Name" }, { - "id": "0x55eadb4a7240-Name", + "id": "0x558d739eb260-Name", "source": "g" }, { - "id": "0x55eadb4a00e0-InternalSubprogramPart", - "Statement": "0x55eadb4a00f8-Statement", + "id": "0x558d739e4070-InternalSubprogramPart", + "Statement": "0x558d739e4088-Statement", "InternalSubprogram": [ - "0x55eadb4a6200-InternalSubprogram", - "0x55eadb49a300-InternalSubprogram", - "0x55eadb4af2b0-InternalSubprogram" + "0x558d739e9de0-InternalSubprogram", + "0x558d739ea120-InternalSubprogram", + "0x558d739f9240-InternalSubprogram" ] }, { - "id": "0x55eadb4a00f8-Statement", - "statement": "0x55eadb4a0108-ContainsStmt", + "id": "0x558d739e4088-Statement", + "statement": "0x558d739e4098-ContainsStmt", "source": "contains" }, { - "id": "0x55eadb4a0108-ContainsStmt" + "id": "0x558d739e4098-ContainsStmt" }, { - "id": "0x55eadb4a6200-InternalSubprogram", + "id": "0x558d739e9de0-InternalSubprogram", "variantKey": "SubroutineSubprogram", - "SubroutineSubprogram": "0x55eadb4aeb50-SubroutineSubprogram" + "SubroutineSubprogram": "0x558d739f2bb0-SubroutineSubprogram" }, { - "id": "0x55eadb4aeb50-SubroutineSubprogram", - "Statement": "0x55eadb4aec98-Statement", - "SpecificationPart": "0x55eadb4aebf0-SpecificationPart", - "ExecutionPart": "0x55eadb4aebd8-ExecutionPart", - "Statement": "0x55eadb4aeb50-Statement" + "id": "0x558d739f2bb0-SubroutineSubprogram", + "Statement": "0x558d739f2cf8-Statement", + "SpecificationPart": "0x558d739f2c50-SpecificationPart", + "ExecutionPart": "0x558d739f2c38-ExecutionPart", + "Statement": "0x558d739f2bb0-Statement" }, { - "id": "0x55eadb4aec98-Statement", - "statement": "0x55eadb4aeca8-SubroutineStmt", + "id": "0x558d739f2cf8-Statement", + "statement": "0x558d739f2d08-SubroutineStmt", "source": "subroutine init_array(ni, nj, nk, nl, nm, a, b, c, d)" }, { - "id": "0x55eadb4aeca8-SubroutineStmt", - "Name": "0x55eadb4aece0-Name", + "id": "0x558d739f2d08-SubroutineStmt", + "Name": "0x558d739f2d40-Name", "DummyArg": [ - "0x55eadb496ab0-DummyArg", - "0x55eadb496d20-DummyArg", - "0x55eadb496af0-DummyArg", - "0x55eadb496ba0-DummyArg", - "0x55eadb496b60-DummyArg", - "0x55eadb496be0-DummyArg", - "0x55eadb496c40-DummyArg", - "0x55eadb496c80-DummyArg", - "0x55eadb496ce0-DummyArg" + "0x558d739daa00-DummyArg", + "0x558d739dac70-DummyArg", + "0x558d739daa40-DummyArg", + "0x558d739daaf0-DummyArg", + "0x558d739daab0-DummyArg", + "0x558d739dab30-DummyArg", + "0x558d739dab90-DummyArg", + "0x558d739dabd0-DummyArg", + "0x558d739dac30-DummyArg" ] }, { - "id": "0x55eadb4aece0-Name", + "id": "0x558d739f2d40-Name", "source": "init_array" }, { - "id": "0x55eadb496ab0-DummyArg", + "id": "0x558d739daa00-DummyArg", "variantKey": "Name", - "Name": "0x55eadb496ab0-Name" + "Name": "0x558d739daa00-Name" }, { - "id": "0x55eadb496ab0-Name", + "id": "0x558d739daa00-Name", "source": "ni" }, { - "id": "0x55eadb496d20-DummyArg", + "id": "0x558d739dac70-DummyArg", "variantKey": "Name", - "Name": "0x55eadb496d20-Name" + "Name": "0x558d739dac70-Name" }, { - "id": "0x55eadb496d20-Name", + "id": "0x558d739dac70-Name", "source": "nj" }, { - "id": "0x55eadb496af0-DummyArg", + "id": "0x558d739daa40-DummyArg", "variantKey": "Name", - "Name": "0x55eadb496af0-Name" + "Name": "0x558d739daa40-Name" }, { - "id": "0x55eadb496af0-Name", + "id": "0x558d739daa40-Name", "source": "nk" }, { - "id": "0x55eadb496ba0-DummyArg", + "id": "0x558d739daaf0-DummyArg", "variantKey": "Name", - "Name": "0x55eadb496ba0-Name" + "Name": "0x558d739daaf0-Name" }, { - "id": "0x55eadb496ba0-Name", + "id": "0x558d739daaf0-Name", "source": "nl" }, { - "id": "0x55eadb496b60-DummyArg", + "id": "0x558d739daab0-DummyArg", "variantKey": "Name", - "Name": "0x55eadb496b60-Name" + "Name": "0x558d739daab0-Name" }, { - "id": "0x55eadb496b60-Name", + "id": "0x558d739daab0-Name", "source": "nm" }, { - "id": "0x55eadb496be0-DummyArg", + "id": "0x558d739dab30-DummyArg", "variantKey": "Name", - "Name": "0x55eadb496be0-Name" + "Name": "0x558d739dab30-Name" }, { - "id": "0x55eadb496be0-Name", + "id": "0x558d739dab30-Name", "source": "a" }, { - "id": "0x55eadb496c40-DummyArg", + "id": "0x558d739dab90-DummyArg", "variantKey": "Name", - "Name": "0x55eadb496c40-Name" + "Name": "0x558d739dab90-Name" }, { - "id": "0x55eadb496c40-Name", + "id": "0x558d739dab90-Name", "source": "b" }, { - "id": "0x55eadb496c80-DummyArg", + "id": "0x558d739dabd0-DummyArg", "variantKey": "Name", - "Name": "0x55eadb496c80-Name" + "Name": "0x558d739dabd0-Name" }, { - "id": "0x55eadb496c80-Name", + "id": "0x558d739dabd0-Name", "source": "c" }, { - "id": "0x55eadb496ce0-DummyArg", + "id": "0x558d739dac30-DummyArg", "variantKey": "Name", - "Name": "0x55eadb496ce0-Name" + "Name": "0x558d739dac30-Name" }, { - "id": "0x55eadb496ce0-Name", + "id": "0x558d739dac30-Name", "source": "d" }, { - "id": "0x55eadb4aebf0-SpecificationPart", - "ImplicitPart": "0x55eadb4aec08-ImplicitPart", + "id": "0x558d739f2c50-SpecificationPart", + "ImplicitPart": "0x558d739f2c68-ImplicitPart", "DeclarationConstruct": [ - "0x55eadb491650-DeclarationConstruct", - "0x55eadb4959c0-DeclarationConstruct", - "0x55eadb4ab230-DeclarationConstruct", - "0x55eadb4a94f0-DeclarationConstruct", - "0x55eadb4942d0-DeclarationConstruct", - "0x55eadb495820-DeclarationConstruct" + "0x558d739d2c70-DeclarationConstruct", + "0x558d739da340-DeclarationConstruct", + "0x558d739ef260-DeclarationConstruct", + "0x558d739ed4c0-DeclarationConstruct", + "0x558d739d22f0-DeclarationConstruct", + "0x558d739d8df0-DeclarationConstruct" ] }, { - "id": "0x55eadb4aec08-ImplicitPart" + "id": "0x558d739f2c68-ImplicitPart" }, { - "id": "0x55eadb491650-DeclarationConstruct", + "id": "0x558d739d2c70-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55eadb491650-SpecificationConstruct" + "SpecificationConstruct": "0x558d739d2c70-SpecificationConstruct" }, { - "id": "0x55eadb491650-SpecificationConstruct", + "id": "0x558d739d2c70-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55eadb491650-Statement" + "Statement": "0x558d739d2c70-Statement" }, { - "id": "0x55eadb491650-Statement", - "statement": "0x55eadb4a97a0-TypeDeclarationStmt", + "id": "0x558d739d2c70-Statement", + "statement": "0x558d739ed770-TypeDeclarationStmt", "source": "double precision, dimension(nk, ni) :: a" }, { - "id": "0x55eadb4a97a0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55eadb4a97d0-DeclarationTypeSpec", + "id": "0x558d739ed770-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558d739ed7a0-DeclarationTypeSpec", "AttrSpec": [ - "0x55eadb492790-AttrSpec" + "0x558d739d72b0-AttrSpec" ], "EntityDecl": [ - "0x55eadb4a9940-EntityDecl" + "0x558d739ed910-EntityDecl" ] }, { - "id": "0x55eadb4a97d0-DeclarationTypeSpec", + "id": "0x558d739ed7a0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55eadb4a97d0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x558d739ed7a0-IntrinsicTypeSpec" }, { - "id": "0x55eadb4a97d0-IntrinsicTypeSpec", + "id": "0x558d739ed7a0-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x55eadb4a97d0-DoublePrecision" + "DoublePrecision": "0x558d739ed7a0-DoublePrecision" }, { - "id": "0x55eadb4a97d0-DoublePrecision" + "id": "0x558d739ed7a0-DoublePrecision" }, { - "id": "0x55eadb492790-AttrSpec", + "id": "0x558d739d72b0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x55eadb492790-ArraySpec" + "ArraySpec": "0x558d739d72b0-ArraySpec" }, { - "id": "0x55eadb492790-ArraySpec", + "id": "0x558d739d72b0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55eadb4a62b0-ExplicitShapeSpec", - "0x55eadb4969a0-ExplicitShapeSpec" + "0x558d739ea150-ExplicitShapeSpec", + "0x558d739da8f0-ExplicitShapeSpec" ] }, { - "id": "0x55eadb4a62b0-ExplicitShapeSpec", - "upper_bound": "0x55eadb4a62b0-SpecificationExpr" + "id": "0x558d739ea150-ExplicitShapeSpec", + "upper_bound": "0x558d739ea150-SpecificationExpr" }, { - "id": "0x55eadb4a62b0-SpecificationExpr", - "Expr": "0x55eadb4a8f80-Expr" + "id": "0x558d739ea150-SpecificationExpr", + "Expr": "0x558d739ecf50-Expr" }, { - "id": "0x55eadb4a8f80-Expr", + "id": "0x558d739ecf50-Expr", "variantKey": "Designator", - "Designator": "0x55eadb495a10-Designator" + "Designator": "0x558d739e7cf0-Designator" }, { - "id": "0x55eadb495a10-Designator", + "id": "0x558d739e7cf0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb495a20-DataRef" + "DataRef": "0x558d739e7d00-DataRef" }, { - "id": "0x55eadb495a20-DataRef", + "id": "0x558d739e7d00-DataRef", "variantKey": "Name", - "Name": "0x55eadb495a20-Name" + "Name": "0x558d739e7d00-Name" }, { - "id": "0x55eadb495a20-Name", + "id": "0x558d739e7d00-Name", "source": "nk" }, { - "id": "0x55eadb4969a0-ExplicitShapeSpec", - "upper_bound": "0x55eadb4969a0-SpecificationExpr" + "id": "0x558d739da8f0-ExplicitShapeSpec", + "upper_bound": "0x558d739da8f0-SpecificationExpr" }, { - "id": "0x55eadb4969a0-SpecificationExpr", - "Expr": "0x55eadb4ab480-Expr" + "id": "0x558d739da8f0-SpecificationExpr", + "Expr": "0x558d739ef450-Expr" }, { - "id": "0x55eadb4ab480-Expr", + "id": "0x558d739ef450-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4957b0-Designator" + "Designator": "0x558d739d6160-Designator" }, { - "id": "0x55eadb4957b0-Designator", + "id": "0x558d739d6160-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4957c0-DataRef" + "DataRef": "0x558d739d6170-DataRef" }, { - "id": "0x55eadb4957c0-DataRef", + "id": "0x558d739d6170-DataRef", "variantKey": "Name", - "Name": "0x55eadb4957c0-Name" + "Name": "0x558d739d6170-Name" }, { - "id": "0x55eadb4957c0-Name", + "id": "0x558d739d6170-Name", "source": "ni" }, { - "id": "0x55eadb4a9940-EntityDecl", - "Name": "0x55eadb4a99f8-Name" + "id": "0x558d739ed910-EntityDecl", + "Name": "0x558d739ed9c8-Name" }, { - "id": "0x55eadb4a99f8-Name", + "id": "0x558d739ed9c8-Name", "source": "a" }, { - "id": "0x55eadb4959c0-DeclarationConstruct", + "id": "0x558d739da340-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55eadb4959c0-SpecificationConstruct" + "SpecificationConstruct": "0x558d739da340-SpecificationConstruct" }, { - "id": "0x55eadb4959c0-SpecificationConstruct", + "id": "0x558d739da340-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4959c0-Statement" + "Statement": "0x558d739da340-Statement" }, { - "id": "0x55eadb4959c0-Statement", - "statement": "0x55eadb49ff10-TypeDeclarationStmt", + "id": "0x558d739da340-Statement", + "statement": "0x558d739e3ea0-TypeDeclarationStmt", "source": "double precision, dimension(nj, nk) :: b" }, { - "id": "0x55eadb49ff10-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55eadb49ff40-DeclarationTypeSpec", + "id": "0x558d739e3ea0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558d739e3ed0-DeclarationTypeSpec", "AttrSpec": [ - "0x55eadb491fc0-AttrSpec" + "0x558d739d6ae0-AttrSpec" ], "EntityDecl": [ - "0x55eadb4abed0-EntityDecl" + "0x558d739efea0-EntityDecl" ] }, { - "id": "0x55eadb49ff40-DeclarationTypeSpec", + "id": "0x558d739e3ed0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55eadb49ff40-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x558d739e3ed0-IntrinsicTypeSpec" }, { - "id": "0x55eadb49ff40-IntrinsicTypeSpec", + "id": "0x558d739e3ed0-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x55eadb49ff40-DoublePrecision" + "DoublePrecision": "0x558d739e3ed0-DoublePrecision" }, { - "id": "0x55eadb49ff40-DoublePrecision" + "id": "0x558d739e3ed0-DoublePrecision" }, { - "id": "0x55eadb491fc0-AttrSpec", + "id": "0x558d739d6ae0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x55eadb491fc0-ArraySpec" + "ArraySpec": "0x558d739d6ae0-ArraySpec" }, { - "id": "0x55eadb491fc0-ArraySpec", + "id": "0x558d739d6ae0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55eadb4a59b0-ExplicitShapeSpec", - "0x55eadb4a5760-ExplicitShapeSpec" + "0x558d739e96b0-ExplicitShapeSpec", + "0x558d739e9520-ExplicitShapeSpec" ] }, { - "id": "0x55eadb4a59b0-ExplicitShapeSpec", - "upper_bound": "0x55eadb4a59b0-SpecificationExpr" + "id": "0x558d739e96b0-ExplicitShapeSpec", + "upper_bound": "0x558d739e96b0-SpecificationExpr" }, { - "id": "0x55eadb4a59b0-SpecificationExpr", - "Expr": "0x55eadb4abd00-Expr" + "id": "0x558d739e96b0-SpecificationExpr", + "Expr": "0x558d739efcd0-Expr" }, { - "id": "0x55eadb4abd00-Expr", + "id": "0x558d739efcd0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb48e140-Designator" + "Designator": "0x558d739da2d0-Designator" }, { - "id": "0x55eadb48e140-Designator", + "id": "0x558d739da2d0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb48e150-DataRef" + "DataRef": "0x558d739da2e0-DataRef" }, { - "id": "0x55eadb48e150-DataRef", + "id": "0x558d739da2e0-DataRef", "variantKey": "Name", - "Name": "0x55eadb48e150-Name" + "Name": "0x558d739da2e0-Name" }, { - "id": "0x55eadb48e150-Name", + "id": "0x558d739da2e0-Name", "source": "nj" }, { - "id": "0x55eadb4a5760-ExplicitShapeSpec", - "upper_bound": "0x55eadb4a5760-SpecificationExpr" + "id": "0x558d739e9520-ExplicitShapeSpec", + "upper_bound": "0x558d739e9520-SpecificationExpr" }, { - "id": "0x55eadb4a5760-SpecificationExpr", - "Expr": "0x55eadb4abde0-Expr" + "id": "0x558d739e9520-SpecificationExpr", + "Expr": "0x558d739efdb0-Expr" }, { - "id": "0x55eadb4abde0-Expr", + "id": "0x558d739efdb0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb48dbe0-Designator" + "Designator": "0x558d739d1890-Designator" }, { - "id": "0x55eadb48dbe0-Designator", + "id": "0x558d739d1890-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb48dbf0-DataRef" + "DataRef": "0x558d739d18a0-DataRef" }, { - "id": "0x55eadb48dbf0-DataRef", + "id": "0x558d739d18a0-DataRef", "variantKey": "Name", - "Name": "0x55eadb48dbf0-Name" + "Name": "0x558d739d18a0-Name" }, { - "id": "0x55eadb48dbf0-Name", + "id": "0x558d739d18a0-Name", "source": "nk" }, { - "id": "0x55eadb4abed0-EntityDecl", - "Name": "0x55eadb4abf88-Name" + "id": "0x558d739efea0-EntityDecl", + "Name": "0x558d739eff58-Name" }, { - "id": "0x55eadb4abf88-Name", + "id": "0x558d739eff58-Name", "source": "b" }, { - "id": "0x55eadb4ab230-DeclarationConstruct", + "id": "0x558d739ef260-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55eadb4ab230-SpecificationConstruct" + "SpecificationConstruct": "0x558d739ef260-SpecificationConstruct" }, { - "id": "0x55eadb4ab230-SpecificationConstruct", + "id": "0x558d739ef260-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4ab230-Statement" + "Statement": "0x558d739ef260-Statement" }, { - "id": "0x55eadb4ab230-Statement", - "statement": "0x55eadb48d1e0-TypeDeclarationStmt", + "id": "0x558d739ef260-Statement", + "statement": "0x558d739d1110-TypeDeclarationStmt", "source": "double precision, dimension(nm, nj) :: c" }, { - "id": "0x55eadb48d1e0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55eadb48d210-DeclarationTypeSpec", + "id": "0x558d739d1110-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558d739d1140-DeclarationTypeSpec", "AttrSpec": [ - "0x55eadb4928c0-AttrSpec" + "0x558d739d73e0-AttrSpec" ], "EntityDecl": [ - "0x55eadb4ab140-EntityDecl" + "0x558d739ef170-EntityDecl" ] }, { - "id": "0x55eadb48d210-DeclarationTypeSpec", + "id": "0x558d739d1140-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55eadb48d210-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x558d739d1140-IntrinsicTypeSpec" }, { - "id": "0x55eadb48d210-IntrinsicTypeSpec", + "id": "0x558d739d1140-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x55eadb48d210-DoublePrecision" + "DoublePrecision": "0x558d739d1140-DoublePrecision" }, { - "id": "0x55eadb48d210-DoublePrecision" + "id": "0x558d739d1140-DoublePrecision" }, { - "id": "0x55eadb4928c0-AttrSpec", + "id": "0x558d739d73e0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x55eadb4928c0-ArraySpec" + "ArraySpec": "0x558d739d73e0-ArraySpec" }, { - "id": "0x55eadb4928c0-ArraySpec", + "id": "0x558d739d73e0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55eadb4a5b10-ExplicitShapeSpec", - "0x55eadb4a5aa0-ExplicitShapeSpec" + "0x558d739e99f0-ExplicitShapeSpec", + "0x558d739e9900-ExplicitShapeSpec" ] }, { - "id": "0x55eadb4a5b10-ExplicitShapeSpec", - "upper_bound": "0x55eadb4a5b10-SpecificationExpr" + "id": "0x558d739e99f0-ExplicitShapeSpec", + "upper_bound": "0x558d739e99f0-SpecificationExpr" }, { - "id": "0x55eadb4a5b10-SpecificationExpr", - "Expr": "0x55eadb4aaf10-Expr" + "id": "0x558d739e99f0-SpecificationExpr", + "Expr": "0x558d739eeee0-Expr" }, { - "id": "0x55eadb4aaf10-Expr", + "id": "0x558d739eeee0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4931d0-Designator" + "Designator": "0x558d739d7cf0-Designator" }, { - "id": "0x55eadb4931d0-Designator", + "id": "0x558d739d7cf0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4931e0-DataRef" + "DataRef": "0x558d739d7d00-DataRef" }, { - "id": "0x55eadb4931e0-DataRef", + "id": "0x558d739d7d00-DataRef", "variantKey": "Name", - "Name": "0x55eadb4931e0-Name" + "Name": "0x558d739d7d00-Name" }, { - "id": "0x55eadb4931e0-Name", + "id": "0x558d739d7d00-Name", "source": "nm" }, { - "id": "0x55eadb4a5aa0-ExplicitShapeSpec", - "upper_bound": "0x55eadb4a5aa0-SpecificationExpr" + "id": "0x558d739e9900-ExplicitShapeSpec", + "upper_bound": "0x558d739e9900-SpecificationExpr" }, { - "id": "0x55eadb4a5aa0-SpecificationExpr", - "Expr": "0x55eadb4ab050-Expr" + "id": "0x558d739e9900-SpecificationExpr", + "Expr": "0x558d739ef080-Expr" }, { - "id": "0x55eadb4ab050-Expr", + "id": "0x558d739ef080-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4aaff0-Designator" + "Designator": "0x558d739ef020-Designator" }, { - "id": "0x55eadb4aaff0-Designator", + "id": "0x558d739ef020-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4ab000-DataRef" + "DataRef": "0x558d739ef030-DataRef" }, { - "id": "0x55eadb4ab000-DataRef", + "id": "0x558d739ef030-DataRef", "variantKey": "Name", - "Name": "0x55eadb4ab000-Name" + "Name": "0x558d739ef030-Name" }, { - "id": "0x55eadb4ab000-Name", + "id": "0x558d739ef030-Name", "source": "nj" }, { - "id": "0x55eadb4ab140-EntityDecl", - "Name": "0x55eadb4ab1f8-Name" + "id": "0x558d739ef170-EntityDecl", + "Name": "0x558d739ef228-Name" }, { - "id": "0x55eadb4ab1f8-Name", + "id": "0x558d739ef228-Name", "source": "c" }, { - "id": "0x55eadb4a94f0-DeclarationConstruct", + "id": "0x558d739ed4c0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55eadb4a94f0-SpecificationConstruct" + "SpecificationConstruct": "0x558d739ed4c0-SpecificationConstruct" }, { - "id": "0x55eadb4a94f0-SpecificationConstruct", + "id": "0x558d739ed4c0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4a94f0-Statement" + "Statement": "0x558d739ed4c0-Statement" }, { - "id": "0x55eadb4a94f0-Statement", - "statement": "0x55eadb4ab5a0-TypeDeclarationStmt", + "id": "0x558d739ed4c0-Statement", + "statement": "0x558d739ef570-TypeDeclarationStmt", "source": "double precision, dimension(nl, nm) :: d" }, { - "id": "0x55eadb4ab5a0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55eadb4ab5d0-DeclarationTypeSpec", + "id": "0x558d739ef570-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558d739ef5a0-DeclarationTypeSpec", "AttrSpec": [ - "0x55eadb4929f0-AttrSpec" + "0x558d739d7510-AttrSpec" ], "EntityDecl": [ - "0x55eadb4a9400-EntityDecl" + "0x558d739ed3d0-EntityDecl" ] }, { - "id": "0x55eadb4ab5d0-DeclarationTypeSpec", + "id": "0x558d739ef5a0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55eadb4ab5d0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x558d739ef5a0-IntrinsicTypeSpec" }, { - "id": "0x55eadb4ab5d0-IntrinsicTypeSpec", + "id": "0x558d739ef5a0-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x55eadb4ab5d0-DoublePrecision" + "DoublePrecision": "0x558d739ef5a0-DoublePrecision" }, { - "id": "0x55eadb4ab5d0-DoublePrecision" + "id": "0x558d739ef5a0-DoublePrecision" }, { - "id": "0x55eadb4929f0-AttrSpec", + "id": "0x558d739d7510-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x55eadb4929f0-ArraySpec" + "ArraySpec": "0x558d739d7510-ArraySpec" }, { - "id": "0x55eadb4929f0-ArraySpec", + "id": "0x558d739d7510-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55eadb4a5e90-ExplicitShapeSpec", - "0x55eadb4a5c80-ExplicitShapeSpec" + "0x558d739e9bd0-ExplicitShapeSpec", + "0x558d739e9a60-ExplicitShapeSpec" ] }, { - "id": "0x55eadb4a5e90-ExplicitShapeSpec", - "upper_bound": "0x55eadb4a5e90-SpecificationExpr" + "id": "0x558d739e9bd0-ExplicitShapeSpec", + "upper_bound": "0x558d739e9bd0-SpecificationExpr" }, { - "id": "0x55eadb4a5e90-SpecificationExpr", - "Expr": "0x55eadb4a9170-Expr" + "id": "0x558d739e9bd0-SpecificationExpr", + "Expr": "0x558d739ed140-Expr" }, { - "id": "0x55eadb4a9170-Expr", + "id": "0x558d739ed140-Expr", "variantKey": "Designator", - "Designator": "0x55eadb496000-Designator" + "Designator": "0x558d739d1490-Designator" }, { - "id": "0x55eadb496000-Designator", + "id": "0x558d739d1490-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb496010-DataRef" + "DataRef": "0x558d739d14a0-DataRef" }, { - "id": "0x55eadb496010-DataRef", + "id": "0x558d739d14a0-DataRef", "variantKey": "Name", - "Name": "0x55eadb496010-Name" + "Name": "0x558d739d14a0-Name" }, { - "id": "0x55eadb496010-Name", + "id": "0x558d739d14a0-Name", "source": "nl" }, { - "id": "0x55eadb4a5c80-ExplicitShapeSpec", - "upper_bound": "0x55eadb4a5c80-SpecificationExpr" + "id": "0x558d739e9a60-ExplicitShapeSpec", + "upper_bound": "0x558d739e9a60-SpecificationExpr" }, { - "id": "0x55eadb4a5c80-SpecificationExpr", - "Expr": "0x55eadb4a9310-Expr" + "id": "0x558d739e9a60-SpecificationExpr", + "Expr": "0x558d739ed2e0-Expr" }, { - "id": "0x55eadb4a9310-Expr", + "id": "0x558d739ed2e0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4a92b0-Designator" + "Designator": "0x558d739ed280-Designator" }, { - "id": "0x55eadb4a92b0-Designator", + "id": "0x558d739ed280-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4a92c0-DataRef" + "DataRef": "0x558d739ed290-DataRef" }, { - "id": "0x55eadb4a92c0-DataRef", + "id": "0x558d739ed290-DataRef", "variantKey": "Name", - "Name": "0x55eadb4a92c0-Name" + "Name": "0x558d739ed290-Name" }, { - "id": "0x55eadb4a92c0-Name", + "id": "0x558d739ed290-Name", "source": "nm" }, { - "id": "0x55eadb4a9400-EntityDecl", - "Name": "0x55eadb4a94b8-Name" + "id": "0x558d739ed3d0-EntityDecl", + "Name": "0x558d739ed488-Name" }, { - "id": "0x55eadb4a94b8-Name", + "id": "0x558d739ed488-Name", "source": "d" }, { - "id": "0x55eadb4942d0-DeclarationConstruct", + "id": "0x558d739d22f0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55eadb4942d0-SpecificationConstruct" + "SpecificationConstruct": "0x558d739d22f0-SpecificationConstruct" }, { - "id": "0x55eadb4942d0-SpecificationConstruct", + "id": "0x558d739d22f0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4942d0-Statement" + "Statement": "0x558d739d22f0-Statement" }, { - "id": "0x55eadb4942d0-Statement", - "statement": "0x55eadb4aa610-TypeDeclarationStmt", + "id": "0x558d739d22f0-Statement", + "statement": "0x558d739ee5e0-TypeDeclarationStmt", "source": "integer :: ni, nj, nk, nl, nm" }, { - "id": "0x55eadb4aa610-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55eadb4aa640-DeclarationTypeSpec", + "id": "0x558d739ee5e0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558d739ee610-DeclarationTypeSpec", "EntityDecl": [ - "0x55eadb4ac780-EntityDecl", - "0x55eadb4a9550-EntityDecl", - "0x55eadb4a9640-EntityDecl", - "0x55eadb4ac5a0-EntityDecl", - "0x55eadb4ac690-EntityDecl" + "0x558d739f0750-EntityDecl", + "0x558d739ed520-EntityDecl", + "0x558d739ed610-EntityDecl", + "0x558d739f0570-EntityDecl", + "0x558d739f0660-EntityDecl" ] }, { - "id": "0x55eadb4aa640-DeclarationTypeSpec", + "id": "0x558d739ee610-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55eadb4aa640-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x558d739ee610-IntrinsicTypeSpec" }, { - "id": "0x55eadb4aa640-IntrinsicTypeSpec", + "id": "0x558d739ee610-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55eadb4aa640-IntegerTypeSpec" + "IntegerTypeSpec": "0x558d739ee610-IntegerTypeSpec" }, { - "id": "0x55eadb4aa640-IntegerTypeSpec" + "id": "0x558d739ee610-IntegerTypeSpec" }, { - "id": "0x55eadb4ac780-EntityDecl", - "Name": "0x55eadb4ac838-Name" + "id": "0x558d739f0750-EntityDecl", + "Name": "0x558d739f0808-Name" }, { - "id": "0x55eadb4ac838-Name", + "id": "0x558d739f0808-Name", "source": "ni" }, { - "id": "0x55eadb4a9550-EntityDecl", - "Name": "0x55eadb4a9608-Name" + "id": "0x558d739ed520-EntityDecl", + "Name": "0x558d739ed5d8-Name" }, { - "id": "0x55eadb4a9608-Name", + "id": "0x558d739ed5d8-Name", "source": "nj" }, { - "id": "0x55eadb4a9640-EntityDecl", - "Name": "0x55eadb4a96f8-Name" + "id": "0x558d739ed610-EntityDecl", + "Name": "0x558d739ed6c8-Name" }, { - "id": "0x55eadb4a96f8-Name", + "id": "0x558d739ed6c8-Name", "source": "nk" }, { - "id": "0x55eadb4ac5a0-EntityDecl", - "Name": "0x55eadb4ac658-Name" + "id": "0x558d739f0570-EntityDecl", + "Name": "0x558d739f0628-Name" }, { - "id": "0x55eadb4ac658-Name", + "id": "0x558d739f0628-Name", "source": "nl" }, { - "id": "0x55eadb4ac690-EntityDecl", - "Name": "0x55eadb4ac748-Name" + "id": "0x558d739f0660-EntityDecl", + "Name": "0x558d739f0718-Name" }, { - "id": "0x55eadb4ac748-Name", + "id": "0x558d739f0718-Name", "source": "nm" }, { - "id": "0x55eadb495820-DeclarationConstruct", + "id": "0x558d739d8df0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55eadb495820-SpecificationConstruct" + "SpecificationConstruct": "0x558d739d8df0-SpecificationConstruct" }, { - "id": "0x55eadb495820-SpecificationConstruct", + "id": "0x558d739d8df0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55eadb495820-Statement" + "Statement": "0x558d739d8df0-Statement" }, { - "id": "0x55eadb495820-Statement", - "statement": "0x55eadb4ab400-TypeDeclarationStmt", + "id": "0x558d739d8df0-Statement", + "statement": "0x558d739ef3d0-TypeDeclarationStmt", "source": "integer :: i, j" }, { - "id": "0x55eadb4ab400-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55eadb4ab430-DeclarationTypeSpec", + "id": "0x558d739ef3d0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558d739ef400-DeclarationTypeSpec", "EntityDecl": [ - "0x55eadb4ac960-EntityDecl", - "0x55eadb4ac870-EntityDecl" + "0x558d739f0930-EntityDecl", + "0x558d739f0840-EntityDecl" ] }, { - "id": "0x55eadb4ab430-DeclarationTypeSpec", + "id": "0x558d739ef400-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55eadb4ab430-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x558d739ef400-IntrinsicTypeSpec" }, { - "id": "0x55eadb4ab430-IntrinsicTypeSpec", + "id": "0x558d739ef400-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55eadb4ab430-IntegerTypeSpec" + "IntegerTypeSpec": "0x558d739ef400-IntegerTypeSpec" }, { - "id": "0x55eadb4ab430-IntegerTypeSpec" + "id": "0x558d739ef400-IntegerTypeSpec" }, { - "id": "0x55eadb4ac960-EntityDecl", - "Name": "0x55eadb4aca18-Name" + "id": "0x558d739f0930-EntityDecl", + "Name": "0x558d739f09e8-Name" }, { - "id": "0x55eadb4aca18-Name", + "id": "0x558d739f09e8-Name", "source": "i" }, { - "id": "0x55eadb4ac870-EntityDecl", - "Name": "0x55eadb4ac928-Name" + "id": "0x558d739f0840-EntityDecl", + "Name": "0x558d739f08f8-Name" }, { - "id": "0x55eadb4ac928-Name", + "id": "0x558d739f08f8-Name", "source": "j" }, { - "id": "0x55eadb4aebd8-ExecutionPart", + "id": "0x558d739f2c38-ExecutionPart", "ExecutionPartConstruct": [ - "0x55eadb4936d0-ExecutionPartConstruct", - "0x55eadb4aa870-ExecutionPartConstruct", - "0x55eadb4a6bd0-ExecutionPartConstruct", - "0x55eadb498bf0-ExecutionPartConstruct" + "0x558d739edb30-ExecutionPartConstruct", + "0x558d739ee070-ExecutionPartConstruct", + "0x558d739ea860-ExecutionPartConstruct", + "0x558d739e93f0-ExecutionPartConstruct" ] }, { - "id": "0x55eadb4aebd8-ExecutionPartConstruct" + "id": "0x558d739f2c38-ExecutionPartConstruct" }, { - "id": "0x55eadb4936d0-ExecutionPartConstruct", + "id": "0x558d739edb30-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4936d0-ExecutableConstruct" + "ExecutableConstruct": "0x558d739edb30-ExecutableConstruct" }, { - "id": "0x55eadb4936d0-ExecutableConstruct", + "id": "0x558d739edb30-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55eadb4a4050-DoConstruct" + "DoConstruct": "0x558d739d7710-DoConstruct" }, { - "id": "0x55eadb4a4050-DoConstruct", - "Statement": "0x55eadb4a40a8-Statement", + "id": "0x558d739d7710-DoConstruct", + "Statement": "0x558d739d7768-Statement", "ExecutionPartConstruct": [ - "0x55eadb493240-ExecutionPartConstruct" + "0x558d739e9630-ExecutionPartConstruct" ], - "Statement": "0x55eadb4a4050-Statement" + "Statement": "0x558d739d7710-Statement" }, { - "id": "0x55eadb4a40a8-Statement", - "statement": "0x55eadb4a40b8-NonLabelDoStmt", + "id": "0x558d739d7768-Statement", + "statement": "0x558d739d7778-NonLabelDoStmt", "source": "do i = 1, ni" }, { - "id": "0x55eadb4a40b8-NonLabelDoStmt", - "LoopControl": "0x55eadb4a40b8-LoopControl" + "id": "0x558d739d7778-NonLabelDoStmt", + "LoopControl": "0x558d739d7778-LoopControl" }, { - "id": "0x55eadb4a40b8-LoopControl", + "id": "0x558d739d7778-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55eadb4a40b8-LoopBounds" + "LoopBounds": "0x558d739d7778-LoopBounds" }, { - "id": "0x55eadb4a40b8-LoopBounds", - "var": "0x55eadb4a40b8-Name", - "lower": "0x55eadb494320-Expr", - "upper": "0x55eadb492a30-Expr" + "id": "0x558d739d7778-LoopBounds", + "var": "0x558d739d7778-Name", + "lower": "0x558d739d8e40-Expr", + "upper": "0x558d739d1600-Expr" }, { - "id": "0x55eadb4a40b8-Name", + "id": "0x558d739d7778-Name", "source": "i" }, { - "id": "0x55eadb494320-Expr", + "id": "0x558d739d8e40-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb494340-LiteralConstant" + "LiteralConstant": "0x558d739d8e60-LiteralConstant" }, { - "id": "0x55eadb494340-LiteralConstant", + "id": "0x558d739d8e60-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb494340-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d8e60-IntLiteralConstant" }, { - "id": "0x55eadb494340-IntLiteralConstant", + "id": "0x558d739d8e60-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55eadb492a30-Expr", + "id": "0x558d739d1600-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4ab620-Designator" + "Designator": "0x558d739ea4c0-Designator" }, { - "id": "0x55eadb4ab620-Designator", + "id": "0x558d739ea4c0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4ab630-DataRef" + "DataRef": "0x558d739ea4d0-DataRef" }, { - "id": "0x55eadb4ab630-DataRef", + "id": "0x558d739ea4d0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4ab630-Name" + "Name": "0x558d739ea4d0-Name" }, { - "id": "0x55eadb4ab630-Name", + "id": "0x558d739ea4d0-Name", "source": "ni" }, { - "id": "0x55eadb4a4090-ExecutionPartConstruct" + "id": "0x558d739d7750-ExecutionPartConstruct" }, { - "id": "0x55eadb493240-ExecutionPartConstruct", + "id": "0x558d739e9630-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb493240-ExecutableConstruct" + "ExecutableConstruct": "0x558d739e9630-ExecutableConstruct" }, { - "id": "0x55eadb493240-ExecutableConstruct", + "id": "0x558d739e9630-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55eadb437780-DoConstruct" + "DoConstruct": "0x558d7397b780-DoConstruct" }, { - "id": "0x55eadb437780-DoConstruct", - "Statement": "0x55eadb4377d8-Statement", + "id": "0x558d7397b780-DoConstruct", + "Statement": "0x558d7397b7d8-Statement", "ExecutionPartConstruct": [ - "0x55eadb4a6160-ExecutionPartConstruct" + "0x558d739e98a0-ExecutionPartConstruct" ], - "Statement": "0x55eadb437780-Statement" + "Statement": "0x558d7397b780-Statement" }, { - "id": "0x55eadb4377d8-Statement", - "statement": "0x55eadb4377e8-NonLabelDoStmt", + "id": "0x558d7397b7d8-Statement", + "statement": "0x558d7397b7e8-NonLabelDoStmt", "source": "do j = 1, nk" }, { - "id": "0x55eadb4377e8-NonLabelDoStmt", - "LoopControl": "0x55eadb4377e8-LoopControl" + "id": "0x558d7397b7e8-NonLabelDoStmt", + "LoopControl": "0x558d7397b7e8-LoopControl" }, { - "id": "0x55eadb4377e8-LoopControl", + "id": "0x558d7397b7e8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55eadb4377e8-LoopBounds" + "LoopBounds": "0x558d7397b7e8-LoopBounds" }, { - "id": "0x55eadb4377e8-LoopBounds", - "var": "0x55eadb4377e8-Name", - "lower": "0x55eadb48e210-Expr", - "upper": "0x55eadb48ddf0-Expr" + "id": "0x558d7397b7e8-LoopBounds", + "var": "0x558d7397b7e8-Name", + "lower": "0x558d739e7d50-Expr", + "upper": "0x558d739d7550-Expr" }, { - "id": "0x55eadb4377e8-Name", + "id": "0x558d7397b7e8-Name", "source": "j" }, { - "id": "0x55eadb48e210-Expr", + "id": "0x558d739e7d50-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb48e230-LiteralConstant" + "LiteralConstant": "0x558d739e7d70-LiteralConstant" }, { - "id": "0x55eadb48e230-LiteralConstant", + "id": "0x558d739e7d70-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb48e230-IntLiteralConstant" + "IntLiteralConstant": "0x558d739e7d70-IntLiteralConstant" }, { - "id": "0x55eadb48e230-IntLiteralConstant", + "id": "0x558d739e7d70-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55eadb48ddf0-Expr", + "id": "0x558d739d7550-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4920b0-Designator" + "Designator": "0x558d739eefc0-Designator" }, { - "id": "0x55eadb4920b0-Designator", + "id": "0x558d739eefc0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4920c0-DataRef" + "DataRef": "0x558d739eefd0-DataRef" }, { - "id": "0x55eadb4920c0-DataRef", + "id": "0x558d739eefd0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4920c0-Name" + "Name": "0x558d739eefd0-Name" }, { - "id": "0x55eadb4920c0-Name", + "id": "0x558d739eefd0-Name", "source": "nk" }, { - "id": "0x55eadb4377c0-ExecutionPartConstruct" + "id": "0x558d7397b7c0-ExecutionPartConstruct" }, { - "id": "0x55eadb4a6160-ExecutionPartConstruct", + "id": "0x558d739e98a0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4a6160-ExecutableConstruct" + "ExecutableConstruct": "0x558d739e98a0-ExecutableConstruct" }, { - "id": "0x55eadb4a6160-ExecutableConstruct", + "id": "0x558d739e98a0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4a6160-Statement" + "Statement": "0x558d739e98a0-Statement" }, { - "id": "0x55eadb4a6160-Statement", - "statement": "0x55eadb4a6170-ActionStmt", + "id": "0x558d739e98a0-Statement", + "statement": "0x558d739e98b0-ActionStmt", "source": "a(j, i) = dble(i - 1) * dble(j - 1) / ni" }, { - "id": "0x55eadb4a6170-ActionStmt", + "id": "0x558d739e98b0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55eadb4a9820-AssignmentStmt" + "AssignmentStmt": "0x558d739ed7f0-AssignmentStmt" }, { - "id": "0x55eadb4a9820-AssignmentStmt", - "Variable": "0x55eadb4a9900-Variable", - "Expr": "0x55eadb4a9830-Expr" + "id": "0x558d739ed7f0-AssignmentStmt", + "Variable": "0x558d739ed8d0-Variable", + "Expr": "0x558d739ed800-Expr" }, { - "id": "0x55eadb4a9900-Variable", + "id": "0x558d739ed8d0-Variable", "variantKey": "Designator", - "Designator": "0x55eadb49f510-Designator" + "Designator": "0x558d73a14030-Designator" }, { - "id": "0x55eadb49f510-Designator", + "id": "0x558d73a14030-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb49f520-DataRef" + "DataRef": "0x558d73a14040-DataRef" }, { - "id": "0x55eadb49f520-DataRef", + "id": "0x558d73a14040-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55eadb4c25a0-ArrayElement" + "ArrayElement": "0x558d73a06800-ArrayElement" }, { - "id": "0x55eadb4c25a0-ArrayElement", - "base": "0x55eadb4c25a0-DataRef", + "id": "0x558d73a06800-ArrayElement", + "base": "0x558d73a06800-DataRef", "subscripts": [ - "0x55eadb49f1d0-SectionSubscript", - "0x55eadb4d7830-SectionSubscript" + "0x558d739e3640-SectionSubscript", + "0x558d73a1ba90-SectionSubscript" ] }, { - "id": "0x55eadb4c25a0-DataRef", + "id": "0x558d73a06800-DataRef", "variantKey": "Name", - "Name": "0x55eadb4c25a0-Name" + "Name": "0x558d73a06800-Name" }, { - "id": "0x55eadb4c25a0-Name", + "id": "0x558d73a06800-Name", "source": "a" }, { - "id": "0x55eadb49f1d0-SectionSubscript", + "id": "0x558d739e3640-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4e4ac0-Expr" + "Expr": "0x558d73a28d20-Expr" }, { - "id": "0x55eadb4e4ac0-Expr", + "id": "0x558d73a28d20-Expr", "variantKey": "Designator", - "Designator": "0x55eadb49f7f0-Designator" + "Designator": "0x558d739e9980-Designator" }, { - "id": "0x55eadb49f7f0-Designator", + "id": "0x558d739e9980-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb49f800-DataRef" + "DataRef": "0x558d739e9990-DataRef" }, { - "id": "0x55eadb49f800-DataRef", + "id": "0x558d739e9990-DataRef", "variantKey": "Name", - "Name": "0x55eadb49f800-Name" + "Name": "0x558d739e9990-Name" }, { - "id": "0x55eadb49f800-Name", + "id": "0x558d739e9990-Name", "source": "j" }, { - "id": "0x55eadb4d7830-SectionSubscript", + "id": "0x558d73a1ba90-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4c0500-Expr" + "Expr": "0x558d73a047c0-Expr" }, { - "id": "0x55eadb4c0500-Expr", + "id": "0x558d73a047c0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb48d870-Designator" + "Designator": "0x558d739dcc50-Designator" }, { - "id": "0x55eadb48d870-Designator", + "id": "0x558d739dcc50-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb48d880-DataRef" + "DataRef": "0x558d739dcc60-DataRef" }, { - "id": "0x55eadb48d880-DataRef", + "id": "0x558d739dcc60-DataRef", "variantKey": "Name", - "Name": "0x55eadb48d880-Name" + "Name": "0x558d739dcc60-Name" }, { - "id": "0x55eadb48d880-Name", + "id": "0x558d739dcc60-Name", "source": "i" }, { - "id": "0x55eadb4a9830-Expr", + "id": "0x558d739ed800-Expr", "variantKey": "Divide", - "Divide": "0x55eadb4a9850-Divide" + "Divide": "0x558d739ed820-Divide" }, { - "id": "0x55eadb4a9850-Divide", - "left": "0x55eadb4a5f90-Expr", - "right": "0x55eadb492cc0-Expr", + "id": "0x558d739ed820-Divide", + "left": "0x558d739e97b0-Expr", + "right": "0x558d739e96d0-Expr", "op": "DIVIDE" }, { - "id": "0x55eadb4a5f90-Expr", + "id": "0x558d739e97b0-Expr", "variantKey": "Multiply", - "Multiply": "0x55eadb4a5fb0-Multiply" + "Multiply": "0x558d739e97d0-Multiply" }, { - "id": "0x55eadb4a5fb0-Multiply", - "left": "0x55eadb4aac70-Expr", - "right": "0x55eadb4a5d10-Expr", + "id": "0x558d739e97d0-Multiply", + "left": "0x558d739e9bf0-Expr", + "right": "0x558d739eb380-Expr", "op": "MULTIPLY" }, { - "id": "0x55eadb4aac70-Expr", + "id": "0x558d739e9bf0-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55eadb4a9b50-FunctionReference" + "FunctionReference": "0x558d739d1b60-FunctionReference" }, { - "id": "0x55eadb4a9b50-FunctionReference", - "Call": "0x55eadb4a9b50-Call" + "id": "0x558d739d1b60-FunctionReference", + "Call": "0x558d739d1b60-Call" }, { - "id": "0x55eadb4a9b50-Call", - "ProcedureDesignator": "0x55eadb4a9b68-ProcedureDesignator", + "id": "0x558d739d1b60-Call", + "ProcedureDesignator": "0x558d739d1b78-ProcedureDesignator", "ActualArgSpec": [ - "0x55eadb4aa1e0-ActualArgSpec" + "0x558d739ee1b0-ActualArgSpec" ] }, { - "id": "0x55eadb4a9b68-ProcedureDesignator", + "id": "0x558d739d1b78-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55eadb4a9b68-Name" + "Name": "0x558d739d1b78-Name" }, { - "id": "0x55eadb4a9b68-Name", + "id": "0x558d739d1b78-Name", "source": "dble" }, { - "id": "0x55eadb4aa1e0-ActualArgSpec", - "ActualArg": "0x55eadb4aa1e0-ActualArg" + "id": "0x558d739ee1b0-ActualArgSpec", + "ActualArg": "0x558d739ee1b0-ActualArg" }, { - "id": "0x55eadb4aa1e0-ActualArg", + "id": "0x558d739ee1b0-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb496550-Expr" + "Expr": "0x558d739d2910-Expr" }, { - "id": "0x55eadb496550-Expr", + "id": "0x558d739d2910-Expr", "variantKey": "Subtract", - "Subtract": "0x55eadb496570-Subtract" + "Subtract": "0x558d739d2930-Subtract" }, { - "id": "0x55eadb496570-Subtract", - "left": "0x55eadb4ab8c0-Expr", - "right": "0x55eadb4a6330-Expr", + "id": "0x558d739d2930-Subtract", + "left": "0x558d739d87b0-Expr", + "right": "0x558d739e41c0-Expr", "op": "SUBTRACT" }, { - "id": "0x55eadb4ab8c0-Expr", + "id": "0x558d739d87b0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4a5c10-Designator" + "Designator": "0x558d739ea0b0-Designator" }, { - "id": "0x55eadb4a5c10-Designator", + "id": "0x558d739ea0b0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4a5c20-DataRef" + "DataRef": "0x558d739ea0c0-DataRef" }, { - "id": "0x55eadb4a5c20-DataRef", + "id": "0x558d739ea0c0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4a5c20-Name" + "Name": "0x558d739ea0c0-Name" }, { - "id": "0x55eadb4a5c20-Name", + "id": "0x558d739ea0c0-Name", "source": "i" }, { - "id": "0x55eadb4a6330-Expr", + "id": "0x558d739e41c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4a6350-LiteralConstant" + "LiteralConstant": "0x558d739e41e0-LiteralConstant" }, { - "id": "0x55eadb4a6350-LiteralConstant", + "id": "0x558d739e41e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4a6350-IntLiteralConstant" + "IntLiteralConstant": "0x558d739e41e0-IntLiteralConstant" }, { - "id": "0x55eadb4a6350-IntLiteralConstant", + "id": "0x558d739e41e0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55eadb4a5d10-Expr", + "id": "0x558d739eb380-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55eadb4a7440-FunctionReference" + "FunctionReference": "0x558d739d1420-FunctionReference" }, { - "id": "0x55eadb4a7440-FunctionReference", - "Call": "0x55eadb4a7440-Call" + "id": "0x558d739d1420-FunctionReference", + "Call": "0x558d739d1420-Call" }, { - "id": "0x55eadb4a7440-Call", - "ProcedureDesignator": "0x55eadb4a7458-ProcedureDesignator", + "id": "0x558d739d1420-Call", + "ProcedureDesignator": "0x558d739d1438-ProcedureDesignator", "ActualArgSpec": [ - "0x55eadb4aa510-ActualArgSpec" + "0x558d739ee4e0-ActualArgSpec" ] }, { - "id": "0x55eadb4a7458-ProcedureDesignator", + "id": "0x558d739d1438-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55eadb4a7458-Name" + "Name": "0x558d739d1438-Name" }, { - "id": "0x55eadb4a7458-Name", + "id": "0x558d739d1438-Name", "source": "dble" }, { - "id": "0x55eadb4aa510-ActualArgSpec", - "ActualArg": "0x55eadb4aa510-ActualArg" + "id": "0x558d739ee4e0-ActualArgSpec", + "ActualArg": "0x558d739ee4e0-ActualArg" }, { - "id": "0x55eadb4aa510-ActualArg", + "id": "0x558d739ee4e0-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb495eb0-Expr" + "Expr": "0x558d739d81e0-Expr" }, { - "id": "0x55eadb495eb0-Expr", + "id": "0x558d739d81e0-Expr", "variantKey": "Subtract", - "Subtract": "0x55eadb495ed0-Subtract" + "Subtract": "0x558d739d8200-Subtract" }, { - "id": "0x55eadb495ed0-Subtract", - "left": "0x55eadb496140-Expr", - "right": "0x55eadb496060-Expr", + "id": "0x558d739d8200-Subtract", + "left": "0x558d739d8470-Expr", + "right": "0x558d739d8390-Expr", "op": "SUBTRACT" }, { - "id": "0x55eadb496140-Expr", + "id": "0x558d739d8470-Expr", "variantKey": "Designator", - "Designator": "0x55eadb493950-Designator" + "Designator": "0x558d739edbf0-Designator" }, { - "id": "0x55eadb493950-Designator", + "id": "0x558d739edbf0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb493960-DataRef" + "DataRef": "0x558d739edc00-DataRef" }, { - "id": "0x55eadb493960-DataRef", + "id": "0x558d739edc00-DataRef", "variantKey": "Name", - "Name": "0x55eadb493960-Name" + "Name": "0x558d739edc00-Name" }, { - "id": "0x55eadb493960-Name", + "id": "0x558d739edc00-Name", "source": "j" }, { - "id": "0x55eadb496060-Expr", + "id": "0x558d739d8390-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb496080-LiteralConstant" + "LiteralConstant": "0x558d739d83b0-LiteralConstant" }, { - "id": "0x55eadb496080-LiteralConstant", + "id": "0x558d739d83b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb496080-IntLiteralConstant" + "IntLiteralConstant": "0x558d739d83b0-IntLiteralConstant" }, { - "id": "0x55eadb496080-IntLiteralConstant", + "id": "0x558d739d83b0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55eadb492cc0-Expr", + "id": "0x558d739e96d0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb492bf0-Designator" + "Designator": "0x558d739e9ee0-Designator" }, { - "id": "0x55eadb492bf0-Designator", + "id": "0x558d739e9ee0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb492c00-DataRef" + "DataRef": "0x558d739e9ef0-DataRef" }, { - "id": "0x55eadb492c00-DataRef", + "id": "0x558d739e9ef0-DataRef", "variantKey": "Name", - "Name": "0x55eadb492c00-Name" + "Name": "0x558d739e9ef0-Name" }, { - "id": "0x55eadb492c00-Name", + "id": "0x558d739e9ef0-Name", "source": "ni" }, { - "id": "0x55eadb437780-Statement", - "statement": "0x55eadb437790-EndDoStmt", + "id": "0x558d7397b780-Statement", + "statement": "0x558d7397b790-EndDoStmt", "source": "end do" }, { - "id": "0x55eadb437790-EndDoStmt" + "id": "0x558d7397b790-EndDoStmt" }, { - "id": "0x55eadb4a4050-Statement", - "statement": "0x55eadb4a4060-EndDoStmt", + "id": "0x558d739d7710-Statement", + "statement": "0x558d739d7720-EndDoStmt", "source": "end do" }, { - "id": "0x55eadb4a4060-EndDoStmt" + "id": "0x558d739d7720-EndDoStmt" }, { - "id": "0x55eadb4aa870-ExecutionPartConstruct", + "id": "0x558d739ee070-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4aa870-ExecutableConstruct" + "ExecutableConstruct": "0x558d739ee070-ExecutableConstruct" }, { - "id": "0x55eadb4aa870-ExecutableConstruct", + "id": "0x558d739ee070-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55eadb497dc0-DoConstruct" + "DoConstruct": "0x558d739db9e0-DoConstruct" }, { - "id": "0x55eadb497dc0-DoConstruct", - "Statement": "0x55eadb497e18-Statement", + "id": "0x558d739db9e0-DoConstruct", + "Statement": "0x558d739dba38-Statement", "ExecutionPartConstruct": [ - "0x55eadb4aa810-ExecutionPartConstruct" + "0x558d739ee010-ExecutionPartConstruct" ], - "Statement": "0x55eadb497dc0-Statement" + "Statement": "0x558d739db9e0-Statement" }, { - "id": "0x55eadb497e18-Statement", - "statement": "0x55eadb497e28-NonLabelDoStmt", + "id": "0x558d739dba38-Statement", + "statement": "0x558d739dba48-NonLabelDoStmt", "source": "do i = 1, nk" }, { - "id": "0x55eadb497e28-NonLabelDoStmt", - "LoopControl": "0x55eadb497e28-LoopControl" + "id": "0x558d739dba48-NonLabelDoStmt", + "LoopControl": "0x558d739dba48-LoopControl" }, { - "id": "0x55eadb497e28-LoopControl", + "id": "0x558d739dba48-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55eadb497e28-LoopBounds" + "LoopBounds": "0x558d739dba48-LoopBounds" }, { - "id": "0x55eadb497e28-LoopBounds", - "var": "0x55eadb497e28-Name", - "lower": "0x55eadb4a4170-Expr", - "upper": "0x55eadb4ac0d0-Expr" + "id": "0x558d739dba48-LoopBounds", + "var": "0x558d739dba48-Name", + "lower": "0x558d739e7fa0-Expr", + "upper": "0x558d739e8080-Expr" }, { - "id": "0x55eadb497e28-Name", + "id": "0x558d739dba48-Name", "source": "i" }, { - "id": "0x55eadb4a4170-Expr", + "id": "0x558d739e7fa0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4a4190-LiteralConstant" + "LiteralConstant": "0x558d739e7fc0-LiteralConstant" }, { - "id": "0x55eadb4a4190-LiteralConstant", + "id": "0x558d739e7fc0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4a4190-IntLiteralConstant" + "IntLiteralConstant": "0x558d739e7fc0-IntLiteralConstant" }, { - "id": "0x55eadb4a4190-IntLiteralConstant", + "id": "0x558d739e7fc0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55eadb4ac0d0-Expr", + "id": "0x558d739e8080-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4aad50-Designator" + "Designator": "0x558d739e9cd0-Designator" }, { - "id": "0x55eadb4aad50-Designator", + "id": "0x558d739e9cd0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4aad60-DataRef" + "DataRef": "0x558d739e9ce0-DataRef" }, { - "id": "0x55eadb4aad60-DataRef", + "id": "0x558d739e9ce0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4aad60-Name" + "Name": "0x558d739e9ce0-Name" }, { - "id": "0x55eadb4aad60-Name", + "id": "0x558d739e9ce0-Name", "source": "nk" }, { - "id": "0x55eadb497e00-ExecutionPartConstruct" + "id": "0x558d739dba20-ExecutionPartConstruct" }, { - "id": "0x55eadb4aa810-ExecutionPartConstruct", + "id": "0x558d739ee010-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4aa810-ExecutableConstruct" + "ExecutableConstruct": "0x558d739ee010-ExecutableConstruct" }, { - "id": "0x55eadb4aa810-ExecutableConstruct", + "id": "0x558d739ee010-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55eadb497ca0-DoConstruct" + "DoConstruct": "0x558d739db8c0-DoConstruct" }, { - "id": "0x55eadb497ca0-DoConstruct", - "Statement": "0x55eadb497cf8-Statement", + "id": "0x558d739db8c0-DoConstruct", + "Statement": "0x558d739db918-Statement", "ExecutionPartConstruct": [ - "0x55eadb497c50-ExecutionPartConstruct" + "0x558d739e4c50-ExecutionPartConstruct" ], - "Statement": "0x55eadb497ca0-Statement" + "Statement": "0x558d739db8c0-Statement" }, { - "id": "0x55eadb497cf8-Statement", - "statement": "0x55eadb497d08-NonLabelDoStmt", + "id": "0x558d739db918-Statement", + "statement": "0x558d739db928-NonLabelDoStmt", "source": "do j = 1, nj" }, { - "id": "0x55eadb497d08-NonLabelDoStmt", - "LoopControl": "0x55eadb497d08-LoopControl" + "id": "0x558d739db928-NonLabelDoStmt", + "LoopControl": "0x558d739db928-LoopControl" }, { - "id": "0x55eadb497d08-LoopControl", + "id": "0x558d739db928-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55eadb497d08-LoopBounds" + "LoopBounds": "0x558d739db928-LoopBounds" }, { - "id": "0x55eadb497d08-LoopBounds", - "var": "0x55eadb497d08-Name", - "lower": "0x55eadb4ac1b0-Expr", - "upper": "0x55eadb4ac290-Expr" + "id": "0x558d739db928-LoopBounds", + "var": "0x558d739db928-Name", + "lower": "0x558d739e8160-Expr", + "upper": "0x558d739f00a0-Expr" }, { - "id": "0x55eadb497d08-Name", + "id": "0x558d739db928-Name", "source": "j" }, { - "id": "0x55eadb4ac1b0-Expr", + "id": "0x558d739e8160-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4ac1d0-LiteralConstant" + "LiteralConstant": "0x558d739e8180-LiteralConstant" }, { - "id": "0x55eadb4ac1d0-LiteralConstant", + "id": "0x558d739e8180-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4ac1d0-IntLiteralConstant" + "IntLiteralConstant": "0x558d739e8180-IntLiteralConstant" }, { - "id": "0x55eadb4ac1d0-IntLiteralConstant", + "id": "0x558d739e8180-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55eadb4ac290-Expr", + "id": "0x558d739f00a0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb48d630-Designator" + "Designator": "0x558d739e9920-Designator" }, { - "id": "0x55eadb48d630-Designator", + "id": "0x558d739e9920-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb48d640-DataRef" + "DataRef": "0x558d739e9930-DataRef" }, { - "id": "0x55eadb48d640-DataRef", + "id": "0x558d739e9930-DataRef", "variantKey": "Name", - "Name": "0x55eadb48d640-Name" + "Name": "0x558d739e9930-Name" }, { - "id": "0x55eadb48d640-Name", + "id": "0x558d739e9930-Name", "source": "nj" }, { - "id": "0x55eadb497ce0-ExecutionPartConstruct" + "id": "0x558d739db900-ExecutionPartConstruct" }, { - "id": "0x55eadb497c50-ExecutionPartConstruct", + "id": "0x558d739e4c50-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb497c50-ExecutableConstruct" + "ExecutableConstruct": "0x558d739e4c50-ExecutableConstruct" }, { - "id": "0x55eadb497c50-ExecutableConstruct", + "id": "0x558d739e4c50-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb497c50-Statement" + "Statement": "0x558d739e4c50-Statement" }, { - "id": "0x55eadb497c50-Statement", - "statement": "0x55eadb497c60-ActionStmt", + "id": "0x558d739e4c50-Statement", + "statement": "0x558d739e4c60-ActionStmt", "source": "b(j, i) =(dble(i - 1) * dble(j))/ nj" }, { - "id": "0x55eadb497c60-ActionStmt", + "id": "0x558d739e4c60-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55eadb497ac0-AssignmentStmt" + "AssignmentStmt": "0x558d739e4ac0-AssignmentStmt" }, { - "id": "0x55eadb497ac0-AssignmentStmt", - "Variable": "0x55eadb497ba0-Variable", - "Expr": "0x55eadb497ad0-Expr" + "id": "0x558d739e4ac0-AssignmentStmt", + "Variable": "0x558d739e4ba0-Variable", + "Expr": "0x558d739e4ad0-Expr" }, { - "id": "0x55eadb497ba0-Variable", + "id": "0x558d739e4ba0-Variable", "variantKey": "Designator", - "Designator": "0x55eadb4c9b10-Designator" + "Designator": "0x558d73a022a0-Designator" }, { - "id": "0x55eadb4c9b10-Designator", + "id": "0x558d73a022a0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4c9b20-DataRef" + "DataRef": "0x558d73a022b0-DataRef" }, { - "id": "0x55eadb4c9b20-DataRef", + "id": "0x558d73a022b0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55eadb4c1b30-ArrayElement" + "ArrayElement": "0x558d73a05d90-ArrayElement" }, { - "id": "0x55eadb4c1b30-ArrayElement", - "base": "0x55eadb4c1b30-DataRef", + "id": "0x558d73a05d90-ArrayElement", + "base": "0x558d73a05d90-DataRef", "subscripts": [ - "0x55eadb568220-SectionSubscript", - "0x55eadb568270-SectionSubscript" + "0x558d73aac2d0-SectionSubscript", + "0x558d73aac320-SectionSubscript" ] }, { - "id": "0x55eadb4c1b30-DataRef", + "id": "0x558d73a05d90-DataRef", "variantKey": "Name", - "Name": "0x55eadb4c1b30-Name" + "Name": "0x558d73a05d90-Name" }, { - "id": "0x55eadb4c1b30-Name", + "id": "0x558d73a05d90-Name", "source": "b" }, { - "id": "0x55eadb568220-SectionSubscript", + "id": "0x558d73aac2d0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4a3e00-Expr" + "Expr": "0x558d739d2340-Expr" }, { - "id": "0x55eadb4a3e00-Expr", + "id": "0x558d739d2340-Expr", "variantKey": "Designator", - "Designator": "0x55eadb494220-Designator" + "Designator": "0x558d739e3780-Designator" }, { - "id": "0x55eadb494220-Designator", + "id": "0x558d739e3780-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb494230-DataRef" + "DataRef": "0x558d739e3790-DataRef" }, { - "id": "0x55eadb494230-DataRef", + "id": "0x558d739e3790-DataRef", "variantKey": "Name", - "Name": "0x55eadb494230-Name" + "Name": "0x558d739e3790-Name" }, { - "id": "0x55eadb494230-Name", + "id": "0x558d739e3790-Name", "source": "j" }, { - "id": "0x55eadb568270-SectionSubscript", + "id": "0x558d73aac320-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb489040-Expr" + "Expr": "0x558d739d2d30-Expr" }, { - "id": "0x55eadb489040-Expr", + "id": "0x558d739d2d30-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4a5f10-Designator" + "Designator": "0x558d739cd090-Designator" }, { - "id": "0x55eadb4a5f10-Designator", + "id": "0x558d739cd090-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4a5f20-DataRef" + "DataRef": "0x558d739cd0a0-DataRef" }, { - "id": "0x55eadb4a5f20-DataRef", + "id": "0x558d739cd0a0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4a5f20-Name" + "Name": "0x558d739cd0a0-Name" }, { - "id": "0x55eadb4a5f20-Name", + "id": "0x558d739cd0a0-Name", "source": "i" }, { - "id": "0x55eadb497ad0-Expr", + "id": "0x558d739e4ad0-Expr", "variantKey": "Divide", - "Divide": "0x55eadb497af0-Divide" + "Divide": "0x558d739e4af0-Divide" }, { - "id": "0x55eadb497af0-Divide", - "left": "0x55eadb497970-Expr", - "right": "0x55eadb4a0c70-Expr", + "id": "0x558d739e4af0-Divide", + "left": "0x558d739e4970-Expr", + "right": "0x558d739e4890-Expr", "op": "DIVIDE" }, { - "id": "0x55eadb497970-Expr", + "id": "0x558d739e4970-Expr", "variantKey": "Parentheses", - "Parentheses": "0x55eadb497990-Parentheses" + "Parentheses": "0x558d739e4990-Parentheses" }, { - "id": "0x55eadb497990-Parentheses", - "Expr": "0x55eadb4a07d0-Expr", + "id": "0x558d739e4990-Parentheses", + "Expr": "0x558d739eea70-Expr", "op": "PARENTHESES" }, { - "id": "0x55eadb4a07d0-Expr", + "id": "0x558d739eea70-Expr", "variantKey": "Multiply", - "Multiply": "0x55eadb4a07f0-Multiply" + "Multiply": "0x558d739eea90-Multiply" }, { - "id": "0x55eadb4a07f0-Multiply", - "left": "0x55eadb4a06f0-Expr", - "right": "0x55eadb497840-Expr", + "id": "0x558d739eea90-Multiply", + "left": "0x558d739ee990-Expr", + "right": "0x558d739ee8b0-Expr", "op": "MULTIPLY" }, { - "id": "0x55eadb4a06f0-Expr", + "id": "0x558d739ee990-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55eadb4a5ca0-FunctionReference" + "FunctionReference": "0x558d739e9540-FunctionReference" }, { - "id": "0x55eadb4a5ca0-FunctionReference", - "Call": "0x55eadb4a5ca0-Call" + "id": "0x558d739e9540-FunctionReference", + "Call": "0x558d739e9540-Call" }, { - "id": "0x55eadb4a5ca0-Call", - "ProcedureDesignator": "0x55eadb4a5cb8-ProcedureDesignator", + "id": "0x558d739e9540-Call", + "ProcedureDesignator": "0x558d739e9558-ProcedureDesignator", "ActualArgSpec": [ - "0x55eadb4aa6a0-ActualArgSpec" + "0x558d739edea0-ActualArgSpec" ] }, { - "id": "0x55eadb4a5cb8-ProcedureDesignator", + "id": "0x558d739e9558-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55eadb4a5cb8-Name" + "Name": "0x558d739e9558-Name" }, { - "id": "0x55eadb4a5cb8-Name", + "id": "0x558d739e9558-Name", "source": "dble" }, { - "id": "0x55eadb4aa6a0-ActualArgSpec", - "ActualArg": "0x55eadb4aa6a0-ActualArg" + "id": "0x558d739edea0-ActualArgSpec", + "ActualArg": "0x558d739edea0-ActualArg" }, { - "id": "0x55eadb4aa6a0-ActualArg", + "id": "0x558d739edea0-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb4a9e70-Expr" + "Expr": "0x558d739db740-Expr" }, { - "id": "0x55eadb4a9e70-Expr", + "id": "0x558d739db740-Expr", "variantKey": "Subtract", - "Subtract": "0x55eadb4a9e90-Subtract" + "Subtract": "0x558d739db760-Subtract" }, { - "id": "0x55eadb4a9e90-Subtract", - "left": "0x55eadb4aa030-Expr", - "right": "0x55eadb4a9f50-Expr", + "id": "0x558d739db760-Subtract", + "left": "0x558d739eddb0-Expr", + "right": "0x558d739edcd0-Expr", "op": "SUBTRACT" }, { - "id": "0x55eadb4aa030-Expr", + "id": "0x558d739eddb0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4a57f0-Designator" + "Designator": "0x558d739eed20-Designator" }, { - "id": "0x55eadb4a57f0-Designator", + "id": "0x558d739eed20-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4a5800-DataRef" + "DataRef": "0x558d739eed30-DataRef" }, { - "id": "0x55eadb4a5800-DataRef", + "id": "0x558d739eed30-DataRef", "variantKey": "Name", - "Name": "0x55eadb4a5800-Name" + "Name": "0x558d739eed30-Name" }, { - "id": "0x55eadb4a5800-Name", + "id": "0x558d739eed30-Name", "source": "i" }, { - "id": "0x55eadb4a9f50-Expr", + "id": "0x558d739edcd0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4a9f70-LiteralConstant" + "LiteralConstant": "0x558d739edcf0-LiteralConstant" }, { - "id": "0x55eadb4a9f70-LiteralConstant", + "id": "0x558d739edcf0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4a9f70-IntLiteralConstant" + "IntLiteralConstant": "0x558d739edcf0-IntLiteralConstant" }, { - "id": "0x55eadb4a9f70-IntLiteralConstant", + "id": "0x558d739edcf0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55eadb497840-Expr", + "id": "0x558d739ee8b0-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55eadb4a72f0-FunctionReference" + "FunctionReference": "0x558d739d7db0-FunctionReference" }, { - "id": "0x55eadb4a72f0-FunctionReference", - "Call": "0x55eadb4a72f0-Call" + "id": "0x558d739d7db0-FunctionReference", + "Call": "0x558d739d7db0-Call" }, { - "id": "0x55eadb4a72f0-Call", - "ProcedureDesignator": "0x55eadb4a7308-ProcedureDesignator", + "id": "0x558d739d7db0-Call", + "ProcedureDesignator": "0x558d739d7dc8-ProcedureDesignator", "ActualArgSpec": [ - "0x55eadb4aaa70-ActualArgSpec" + "0x558d739ee7b0-ActualArgSpec" ] }, { - "id": "0x55eadb4a7308-ProcedureDesignator", + "id": "0x558d739d7dc8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55eadb4a7308-Name" + "Name": "0x558d739d7dc8-Name" }, { - "id": "0x55eadb4a7308-Name", + "id": "0x558d739d7dc8-Name", "source": "dble" }, { - "id": "0x55eadb4aaa70-ActualArgSpec", - "ActualArg": "0x55eadb4aaa70-ActualArg" + "id": "0x558d739ee7b0-ActualArgSpec", + "ActualArg": "0x558d739ee7b0-ActualArg" }, { - "id": "0x55eadb4aaa70-ActualArg", + "id": "0x558d739ee7b0-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb4aa920-Expr" + "Expr": "0x558d739ee660-Expr" }, { - "id": "0x55eadb4aa920-Expr", + "id": "0x558d739ee660-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4aa8c0-Designator" + "Designator": "0x558d739d7830-Designator" }, { - "id": "0x55eadb4aa8c0-Designator", + "id": "0x558d739d7830-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4aa8d0-DataRef" + "DataRef": "0x558d739d7840-DataRef" }, { - "id": "0x55eadb4aa8d0-DataRef", + "id": "0x558d739d7840-DataRef", "variantKey": "Name", - "Name": "0x55eadb4aa8d0-Name" + "Name": "0x558d739d7840-Name" }, { - "id": "0x55eadb4aa8d0-Name", + "id": "0x558d739d7840-Name", "source": "j" }, { - "id": "0x55eadb4a0c70-Expr", + "id": "0x558d739e4890-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4a0ba0-Designator" + "Designator": "0x558d739e47c0-Designator" }, { - "id": "0x55eadb4a0ba0-Designator", + "id": "0x558d739e47c0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4a0bb0-DataRef" + "DataRef": "0x558d739e47d0-DataRef" }, { - "id": "0x55eadb4a0bb0-DataRef", + "id": "0x558d739e47d0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4a0bb0-Name" + "Name": "0x558d739e47d0-Name" }, { - "id": "0x55eadb4a0bb0-Name", + "id": "0x558d739e47d0-Name", "source": "nj" }, { - "id": "0x55eadb497ca0-Statement", - "statement": "0x55eadb497cb0-EndDoStmt", + "id": "0x558d739db8c0-Statement", + "statement": "0x558d739db8d0-EndDoStmt", "source": "end do" }, { - "id": "0x55eadb497cb0-EndDoStmt" + "id": "0x558d739db8d0-EndDoStmt" }, { - "id": "0x55eadb497dc0-Statement", - "statement": "0x55eadb497dd0-EndDoStmt", + "id": "0x558d739db9e0-Statement", + "statement": "0x558d739db9f0-EndDoStmt", "source": "end do" }, { - "id": "0x55eadb497dd0-EndDoStmt" + "id": "0x558d739db9f0-EndDoStmt" }, { - "id": "0x55eadb4a6bd0-ExecutionPartConstruct", + "id": "0x558d739ea860-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4a6bd0-ExecutableConstruct" + "ExecutableConstruct": "0x558d739ea860-ExecutableConstruct" }, { - "id": "0x55eadb4a6bd0-ExecutableConstruct", + "id": "0x558d739ea860-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55eadb4a4b80-DoConstruct" + "DoConstruct": "0x558d739dca60-DoConstruct" }, { - "id": "0x55eadb4a4b80-DoConstruct", - "Statement": "0x55eadb4a4bd8-Statement", + "id": "0x558d739dca60-DoConstruct", + "Statement": "0x558d739dcab8-Statement", "ExecutionPartConstruct": [ - "0x55eadb4a6b10-ExecutionPartConstruct" + "0x558d739ea7a0-ExecutionPartConstruct" ], - "Statement": "0x55eadb4a4b80-Statement" + "Statement": "0x558d739dca60-Statement" }, { - "id": "0x55eadb4a4bd8-Statement", - "statement": "0x55eadb4a4be8-NonLabelDoStmt", + "id": "0x558d739dcab8-Statement", + "statement": "0x558d739dcac8-NonLabelDoStmt", "source": "do i = 1, nj" }, { - "id": "0x55eadb4a4be8-NonLabelDoStmt", - "LoopControl": "0x55eadb4a4be8-LoopControl" + "id": "0x558d739dcac8-NonLabelDoStmt", + "LoopControl": "0x558d739dcac8-LoopControl" }, { - "id": "0x55eadb4a4be8-LoopControl", + "id": "0x558d739dcac8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55eadb4a4be8-LoopBounds" + "LoopBounds": "0x558d739dcac8-LoopBounds" }, { - "id": "0x55eadb4a4be8-LoopBounds", - "var": "0x55eadb4a4be8-Name", - "lower": "0x55eadb497ee0-Expr", - "upper": "0x55eadb496dd0-Expr" + "id": "0x558d739dcac8-LoopBounds", + "var": "0x558d739dcac8-Name", + "lower": "0x558d739dbb00-Expr", + "upper": "0x558d739dbbe0-Expr" }, { - "id": "0x55eadb4a4be8-Name", + "id": "0x558d739dcac8-Name", "source": "i" }, { - "id": "0x55eadb497ee0-Expr", + "id": "0x558d739dbb00-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb497f00-LiteralConstant" + "LiteralConstant": "0x558d739dbb20-LiteralConstant" }, { - "id": "0x55eadb497f00-LiteralConstant", + "id": "0x558d739dbb20-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb497f00-IntLiteralConstant" + "IntLiteralConstant": "0x558d739dbb20-IntLiteralConstant" }, { - "id": "0x55eadb497f00-IntLiteralConstant", + "id": "0x558d739dbb20-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55eadb496dd0-Expr", + "id": "0x558d739dbbe0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4a08b0-Designator" + "Designator": "0x558d739eeb50-Designator" }, { - "id": "0x55eadb4a08b0-Designator", + "id": "0x558d739eeb50-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4a08c0-DataRef" + "DataRef": "0x558d739eeb60-DataRef" }, { - "id": "0x55eadb4a08c0-DataRef", + "id": "0x558d739eeb60-DataRef", "variantKey": "Name", - "Name": "0x55eadb4a08c0-Name" + "Name": "0x558d739eeb60-Name" }, { - "id": "0x55eadb4a08c0-Name", + "id": "0x558d739eeb60-Name", "source": "nj" }, { - "id": "0x55eadb4a4bc0-ExecutionPartConstruct" + "id": "0x558d739dcaa0-ExecutionPartConstruct" }, { - "id": "0x55eadb4a6b10-ExecutionPartConstruct", + "id": "0x558d739ea7a0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4a6b10-ExecutableConstruct" + "ExecutableConstruct": "0x558d739ea7a0-ExecutableConstruct" }, { - "id": "0x55eadb4a6b10-ExecutableConstruct", + "id": "0x558d739ea7a0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55eadb4a4a60-DoConstruct" + "DoConstruct": "0x558d739dc940-DoConstruct" }, { - "id": "0x55eadb4a4a60-DoConstruct", - "Statement": "0x55eadb4a4ab8-Statement", + "id": "0x558d739dc940-DoConstruct", + "Statement": "0x558d739dc998-Statement", "ExecutionPartConstruct": [ - "0x55eadb4a4a10-ExecutionPartConstruct" + "0x558d739dc8f0-ExecutionPartConstruct" ], - "Statement": "0x55eadb4a4a60-Statement" + "Statement": "0x558d739dc940-Statement" }, { - "id": "0x55eadb4a4ab8-Statement", - "statement": "0x55eadb4a4ac8-NonLabelDoStmt", + "id": "0x558d739dc998-Statement", + "statement": "0x558d739dc9a8-NonLabelDoStmt", "source": "do j = 1, nm" }, { - "id": "0x55eadb4a4ac8-NonLabelDoStmt", - "LoopControl": "0x55eadb4a4ac8-LoopControl" + "id": "0x558d739dc9a8-NonLabelDoStmt", + "LoopControl": "0x558d739dc9a8-LoopControl" }, { - "id": "0x55eadb4a4ac8-LoopControl", + "id": "0x558d739dc9a8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55eadb4a4ac8-LoopBounds" + "LoopBounds": "0x558d739dc9a8-LoopBounds" }, { - "id": "0x55eadb4a4ac8-LoopBounds", - "var": "0x55eadb4a4ac8-Name", - "lower": "0x55eadb496eb0-Expr", - "upper": "0x55eadb496f90-Expr" + "id": "0x558d739dc9a8-LoopBounds", + "var": "0x558d739dc9a8-Name", + "lower": "0x558d739dbcc0-Expr", + "upper": "0x558d739dbda0-Expr" }, { - "id": "0x55eadb4a4ac8-Name", + "id": "0x558d739dc9a8-Name", "source": "j" }, { - "id": "0x55eadb496eb0-Expr", + "id": "0x558d739dbcc0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb496ed0-LiteralConstant" + "LiteralConstant": "0x558d739dbce0-LiteralConstant" }, { - "id": "0x55eadb496ed0-LiteralConstant", + "id": "0x558d739dbce0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb496ed0-IntLiteralConstant" + "IntLiteralConstant": "0x558d739dbce0-IntLiteralConstant" }, { - "id": "0x55eadb496ed0-IntLiteralConstant", + "id": "0x558d739dbce0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55eadb496f90-Expr", + "id": "0x558d739dbda0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4a9250-Designator" + "Designator": "0x558d739ed220-Designator" }, { - "id": "0x55eadb4a9250-Designator", + "id": "0x558d739ed220-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4a9260-DataRef" + "DataRef": "0x558d739ed230-DataRef" }, { - "id": "0x55eadb4a9260-DataRef", + "id": "0x558d739ed230-DataRef", "variantKey": "Name", - "Name": "0x55eadb4a9260-Name" + "Name": "0x558d739ed230-Name" }, { - "id": "0x55eadb4a9260-Name", + "id": "0x558d739ed230-Name", "source": "nm" }, { - "id": "0x55eadb4a4aa0-ExecutionPartConstruct" + "id": "0x558d739dc980-ExecutionPartConstruct" }, { - "id": "0x55eadb4a4a10-ExecutionPartConstruct", + "id": "0x558d739dc8f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4a4a10-ExecutableConstruct" + "ExecutableConstruct": "0x558d739dc8f0-ExecutableConstruct" }, { - "id": "0x55eadb4a4a10-ExecutableConstruct", + "id": "0x558d739dc8f0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4a4a10-Statement" + "Statement": "0x558d739dc8f0-Statement" }, { - "id": "0x55eadb4a4a10-Statement", - "statement": "0x55eadb4a4a20-ActionStmt", + "id": "0x558d739dc8f0-Statement", + "statement": "0x558d739dc900-ActionStmt", "source": "c(j, i) =(dble(i - 1) * dble(j + 2))/ nl" }, { - "id": "0x55eadb4a4a20-ActionStmt", + "id": "0x558d739dc900-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55eadb4a4880-AssignmentStmt" + "AssignmentStmt": "0x558d739dc760-AssignmentStmt" }, { - "id": "0x55eadb4a4880-AssignmentStmt", - "Variable": "0x55eadb4a4960-Variable", - "Expr": "0x55eadb4a4890-Expr" + "id": "0x558d739dc760-AssignmentStmt", + "Variable": "0x558d739dc840-Variable", + "Expr": "0x558d739dc770-Expr" }, { - "id": "0x55eadb4a4960-Variable", + "id": "0x558d739dc840-Variable", "variantKey": "Designator", - "Designator": "0x55eadb4cfdd0-Designator" + "Designator": "0x558d73a02340-Designator" }, { - "id": "0x55eadb4cfdd0-Designator", + "id": "0x558d73a02340-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4cfde0-DataRef" + "DataRef": "0x558d73a02350-DataRef" }, { - "id": "0x55eadb4cfde0-DataRef", + "id": "0x558d73a02350-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55eadb49f680-ArrayElement" + "ArrayElement": "0x558d73a02300-ArrayElement" }, { - "id": "0x55eadb49f680-ArrayElement", - "base": "0x55eadb49f680-DataRef", + "id": "0x558d73a02300-ArrayElement", + "base": "0x558d73a02300-DataRef", "subscripts": [ - "0x55eadb5682c0-SectionSubscript", - "0x55eadb568310-SectionSubscript" + "0x558d73aac370-SectionSubscript", + "0x558d73aac3c0-SectionSubscript" ] }, { - "id": "0x55eadb49f680-DataRef", + "id": "0x558d73a02300-DataRef", "variantKey": "Name", - "Name": "0x55eadb49f680-Name" + "Name": "0x558d73a02300-Name" }, { - "id": "0x55eadb49f680-Name", + "id": "0x558d73a02300-Name", "source": "c" }, { - "id": "0x55eadb5682c0-SectionSubscript", + "id": "0x558d73aac370-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb497570-Expr" + "Expr": "0x558d739f0180-Expr" }, { - "id": "0x55eadb497570-Expr", + "id": "0x558d739f0180-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4a9e10-Designator" + "Designator": "0x558d739db6e0-Designator" }, { - "id": "0x55eadb4a9e10-Designator", + "id": "0x558d739db6e0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4a9e20-DataRef" + "DataRef": "0x558d739db6f0-DataRef" }, { - "id": "0x55eadb4a9e20-DataRef", + "id": "0x558d739db6f0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4a9e20-Name" + "Name": "0x558d739db6f0-Name" }, { - "id": "0x55eadb4a9e20-Name", + "id": "0x558d739db6f0-Name", "source": "j" }, { - "id": "0x55eadb568310-SectionSubscript", + "id": "0x558d73aac3c0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb497650-Expr" + "Expr": "0x558d739f0260-Expr" }, { - "id": "0x55eadb497650-Expr", + "id": "0x558d739f0260-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4a5a30-Designator" + "Designator": "0x558d739e3b90-Designator" }, { - "id": "0x55eadb4a5a30-Designator", + "id": "0x558d739e3b90-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4a5a40-DataRef" + "DataRef": "0x558d739e3ba0-DataRef" }, { - "id": "0x55eadb4a5a40-DataRef", + "id": "0x558d739e3ba0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4a5a40-Name" + "Name": "0x558d739e3ba0-Name" }, { - "id": "0x55eadb4a5a40-Name", + "id": "0x558d739e3ba0-Name", "source": "i" }, { - "id": "0x55eadb4a4890-Expr", + "id": "0x558d739dc770-Expr", "variantKey": "Divide", - "Divide": "0x55eadb4a48b0-Divide" + "Divide": "0x558d739dc790-Divide" }, { - "id": "0x55eadb4a48b0-Divide", - "left": "0x55eadb498a30-Expr", - "right": "0x55eadb498950-Expr", + "id": "0x558d739dc790-Divide", + "left": "0x558d739dc610-Expr", + "right": "0x558d739dc530-Expr", "op": "DIVIDE" }, { - "id": "0x55eadb498a30-Expr", + "id": "0x558d739dc610-Expr", "variantKey": "Parentheses", - "Parentheses": "0x55eadb498a50-Parentheses" + "Parentheses": "0x558d739dc630-Parentheses" }, { - "id": "0x55eadb498a50-Parentheses", - "Expr": "0x55eadb498520-Expr", + "id": "0x558d739dc630-Parentheses", + "Expr": "0x558d739eae80-Expr", "op": "PARENTHESES" }, { - "id": "0x55eadb498520-Expr", + "id": "0x558d739eae80-Expr", "variantKey": "Multiply", - "Multiply": "0x55eadb498540-Multiply" + "Multiply": "0x558d739eaea0-Multiply" }, { - "id": "0x55eadb498540-Multiply", - "left": "0x55eadb498440-Expr", - "right": "0x55eadb498360-Expr", + "id": "0x558d739eaea0-Multiply", + "left": "0x558d739eada0-Expr", + "right": "0x558d739eacc0-Expr", "op": "MULTIPLY" }, { - "id": "0x55eadb498440-Expr", + "id": "0x558d739eada0-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55eadb4a7510-FunctionReference" + "FunctionReference": "0x558d739da6a0-FunctionReference" }, { - "id": "0x55eadb4a7510-FunctionReference", - "Call": "0x55eadb4a7510-Call" + "id": "0x558d739da6a0-FunctionReference", + "Call": "0x558d739da6a0-Call" }, { - "id": "0x55eadb4a7510-Call", - "ProcedureDesignator": "0x55eadb4a7528-ProcedureDesignator", + "id": "0x558d739da6a0-Call", + "ProcedureDesignator": "0x558d739da6b8-ProcedureDesignator", "ActualArgSpec": [ - "0x55eadb4a6940-ActualArgSpec" + "0x558d739ea5d0-ActualArgSpec" ] }, { - "id": "0x55eadb4a7528-ProcedureDesignator", + "id": "0x558d739da6b8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55eadb4a7528-Name" + "Name": "0x558d739da6b8-Name" }, { - "id": "0x55eadb4a7528-Name", + "id": "0x558d739da6b8-Name", "source": "dble" }, { - "id": "0x55eadb4a6940-ActualArgSpec", - "ActualArg": "0x55eadb4a6940-ActualArg" + "id": "0x558d739ea5d0-ActualArgSpec", + "ActualArg": "0x558d739ea5d0-ActualArg" }, { - "id": "0x55eadb4a6940-ActualArg", + "id": "0x558d739ea5d0-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb4a6630-Expr" + "Expr": "0x558d739db100-Expr" }, { - "id": "0x55eadb4a6630-Expr", + "id": "0x558d739db100-Expr", "variantKey": "Subtract", - "Subtract": "0x55eadb4a6650-Subtract" + "Subtract": "0x558d739db120-Subtract" }, { - "id": "0x55eadb4a6650-Subtract", - "left": "0x55eadb4a67f0-Expr", - "right": "0x55eadb4a6710-Expr", + "id": "0x558d739db120-Subtract", + "left": "0x558d739db2c0-Expr", + "right": "0x558d739db1e0-Expr", "op": "SUBTRACT" }, { - "id": "0x55eadb4a67f0-Expr", + "id": "0x558d739db2c0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4a0980-Designator" + "Designator": "0x558d739e4680-Designator" }, { - "id": "0x55eadb4a0980-Designator", + "id": "0x558d739e4680-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4a0990-DataRef" + "DataRef": "0x558d739e4690-DataRef" }, { - "id": "0x55eadb4a0990-DataRef", + "id": "0x558d739e4690-DataRef", "variantKey": "Name", - "Name": "0x55eadb4a0990-Name" + "Name": "0x558d739e4690-Name" }, { - "id": "0x55eadb4a0990-Name", + "id": "0x558d739e4690-Name", "source": "i" }, { - "id": "0x55eadb4a6710-Expr", + "id": "0x558d739db1e0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4a6730-LiteralConstant" + "LiteralConstant": "0x558d739db200-LiteralConstant" }, { - "id": "0x55eadb4a6730-LiteralConstant", + "id": "0x558d739db200-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4a6730-IntLiteralConstant" + "IntLiteralConstant": "0x558d739db200-IntLiteralConstant" }, { - "id": "0x55eadb4a6730-IntLiteralConstant", + "id": "0x558d739db200-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55eadb498360-Expr", + "id": "0x558d739eacc0-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55eadb4aadb0-FunctionReference" + "FunctionReference": "0x558d739d8170-FunctionReference" }, { - "id": "0x55eadb4aadb0-FunctionReference", - "Call": "0x55eadb4aadb0-Call" + "id": "0x558d739d8170-FunctionReference", + "Call": "0x558d739d8170-Call" }, { - "id": "0x55eadb4aadb0-Call", - "ProcedureDesignator": "0x55eadb4aadc8-ProcedureDesignator", + "id": "0x558d739d8170-Call", + "ProcedureDesignator": "0x558d739d8188-ProcedureDesignator", "ActualArgSpec": [ - "0x55eadb498260-ActualArgSpec" + "0x558d739eabc0-ActualArgSpec" ] }, { - "id": "0x55eadb4aadc8-ProcedureDesignator", + "id": "0x558d739d8188-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55eadb4aadc8-Name" + "Name": "0x558d739d8188-Name" }, { - "id": "0x55eadb4aadc8-Name", + "id": "0x558d739d8188-Name", "source": "dble" }, { - "id": "0x55eadb498260-ActualArgSpec", - "ActualArg": "0x55eadb498260-ActualArg" + "id": "0x558d739eabc0-ActualArgSpec", + "ActualArg": "0x558d739eabc0-ActualArg" }, { - "id": "0x55eadb498260-ActualArg", + "id": "0x558d739eabc0-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb4a6c20-Expr" + "Expr": "0x558d739ea8b0-Expr" }, { - "id": "0x55eadb4a6c20-Expr", + "id": "0x558d739ea8b0-Expr", "variantKey": "Add", - "Add": "0x55eadb4a6c40-Add" + "Add": "0x558d739ea8d0-Add" }, { - "id": "0x55eadb4a6c40-Add", - "left": "0x55eadb4a6de0-Expr", - "right": "0x55eadb4a6d00-Expr", + "id": "0x558d739ea8d0-Add", + "left": "0x558d739eaa70-Expr", + "right": "0x558d739ea990-Expr", "op": "ADD" }, { - "id": "0x55eadb4a6de0-Expr", + "id": "0x558d739eaa70-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4a6b60-Designator" + "Designator": "0x558d739ea7f0-Designator" }, { - "id": "0x55eadb4a6b60-Designator", + "id": "0x558d739ea7f0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4a6b70-DataRef" + "DataRef": "0x558d739ea800-DataRef" }, { - "id": "0x55eadb4a6b70-DataRef", + "id": "0x558d739ea800-DataRef", "variantKey": "Name", - "Name": "0x55eadb4a6b70-Name" + "Name": "0x558d739ea800-Name" }, { - "id": "0x55eadb4a6b70-Name", + "id": "0x558d739ea800-Name", "source": "j" }, { - "id": "0x55eadb4a6d00-Expr", + "id": "0x558d739ea990-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4a6d20-LiteralConstant" + "LiteralConstant": "0x558d739ea9b0-LiteralConstant" }, { - "id": "0x55eadb4a6d20-LiteralConstant", + "id": "0x558d739ea9b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4a6d20-IntLiteralConstant" + "IntLiteralConstant": "0x558d739ea9b0-IntLiteralConstant" }, { - "id": "0x55eadb4a6d20-IntLiteralConstant", + "id": "0x558d739ea9b0-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x55eadb498950-Expr", + "id": "0x558d739dc530-Expr", "variantKey": "Designator", - "Designator": "0x55eadb498880-Designator" + "Designator": "0x558d739dc460-Designator" }, { - "id": "0x55eadb498880-Designator", + "id": "0x558d739dc460-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb498890-DataRef" + "DataRef": "0x558d739dc470-DataRef" }, { - "id": "0x55eadb498890-DataRef", + "id": "0x558d739dc470-DataRef", "variantKey": "Name", - "Name": "0x55eadb498890-Name" + "Name": "0x558d739dc470-Name" }, { - "id": "0x55eadb498890-Name", + "id": "0x558d739dc470-Name", "source": "nl" }, { - "id": "0x55eadb4a4a60-Statement", - "statement": "0x55eadb4a4a70-EndDoStmt", + "id": "0x558d739dc940-Statement", + "statement": "0x558d739dc950-EndDoStmt", "source": "end do" }, { - "id": "0x55eadb4a4a70-EndDoStmt" + "id": "0x558d739dc950-EndDoStmt" }, { - "id": "0x55eadb4a4b80-Statement", - "statement": "0x55eadb4a4b90-EndDoStmt", + "id": "0x558d739dca60-Statement", + "statement": "0x558d739dca70-EndDoStmt", "source": "end do" }, { - "id": "0x55eadb4a4b90-EndDoStmt" + "id": "0x558d739dca70-EndDoStmt" }, { - "id": "0x55eadb498bf0-ExecutionPartConstruct", + "id": "0x558d739e93f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb498bf0-ExecutableConstruct" + "ExecutableConstruct": "0x558d739e93f0-ExecutableConstruct" }, { - "id": "0x55eadb498bf0-ExecutableConstruct", + "id": "0x558d739e93f0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55eadb4ad8c0-DoConstruct" + "DoConstruct": "0x558d739f1720-DoConstruct" }, { - "id": "0x55eadb4ad8c0-DoConstruct", - "Statement": "0x55eadb4ad918-Statement", + "id": "0x558d739f1720-DoConstruct", + "Statement": "0x558d739f1778-Statement", "ExecutionPartConstruct": [ - "0x55eadb4a6f90-ExecutionPartConstruct" + "0x558d739e9390-ExecutionPartConstruct" ], - "Statement": "0x55eadb4ad8c0-Statement" + "Statement": "0x558d739f1720-Statement" }, { - "id": "0x55eadb4ad918-Statement", - "statement": "0x55eadb4ad928-NonLabelDoStmt", + "id": "0x558d739f1778-Statement", + "statement": "0x558d739f1788-NonLabelDoStmt", "source": "do i = 1, nm" }, { - "id": "0x55eadb4ad928-NonLabelDoStmt", - "LoopControl": "0x55eadb4ad928-LoopControl" + "id": "0x558d739f1788-NonLabelDoStmt", + "LoopControl": "0x558d739f1788-LoopControl" }, { - "id": "0x55eadb4ad928-LoopControl", + "id": "0x558d739f1788-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55eadb4ad928-LoopBounds" + "LoopBounds": "0x558d739f1788-LoopBounds" }, { - "id": "0x55eadb4ad928-LoopBounds", - "var": "0x55eadb4ad928-Name", - "lower": "0x55eadb4a4ca0-Expr", - "upper": "0x55eadb4a4d80-Expr" + "id": "0x558d739f1788-LoopBounds", + "var": "0x558d739f1788-Name", + "lower": "0x558d739e8810-Expr", + "upper": "0x558d739e88f0-Expr" }, { - "id": "0x55eadb4ad928-Name", + "id": "0x558d739f1788-Name", "source": "i" }, { - "id": "0x55eadb4a4ca0-Expr", + "id": "0x558d739e8810-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4a4cc0-LiteralConstant" + "LiteralConstant": "0x558d739e8830-LiteralConstant" }, { - "id": "0x55eadb4a4cc0-LiteralConstant", + "id": "0x558d739e8830-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4a4cc0-IntLiteralConstant" + "IntLiteralConstant": "0x558d739e8830-IntLiteralConstant" }, { - "id": "0x55eadb4a4cc0-IntLiteralConstant", + "id": "0x558d739e8830-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55eadb4a4d80-Expr", + "id": "0x558d739e88f0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb498600-Designator" + "Designator": "0x558d739dc1e0-Designator" }, { - "id": "0x55eadb498600-Designator", + "id": "0x558d739dc1e0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb498610-DataRef" + "DataRef": "0x558d739dc1f0-DataRef" }, { - "id": "0x55eadb498610-DataRef", + "id": "0x558d739dc1f0-DataRef", "variantKey": "Name", - "Name": "0x55eadb498610-Name" + "Name": "0x558d739dc1f0-Name" }, { - "id": "0x55eadb498610-Name", + "id": "0x558d739dc1f0-Name", "source": "nm" }, { - "id": "0x55eadb4ad900-ExecutionPartConstruct" + "id": "0x558d739f1760-ExecutionPartConstruct" }, { - "id": "0x55eadb4a6f90-ExecutionPartConstruct", + "id": "0x558d739e9390-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4a6f90-ExecutableConstruct" + "ExecutableConstruct": "0x558d739e9390-ExecutableConstruct" }, { - "id": "0x55eadb4a6f90-ExecutableConstruct", + "id": "0x558d739e9390-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55eadb4ad7a0-DoConstruct" + "DoConstruct": "0x558d739f1600-DoConstruct" }, { - "id": "0x55eadb4ad7a0-DoConstruct", - "Statement": "0x55eadb4ad7f8-Statement", + "id": "0x558d739f1600-DoConstruct", + "Statement": "0x558d739f1658-Statement", "ExecutionPartConstruct": [ - "0x55eadb4ad750-ExecutionPartConstruct" + "0x558d739f15b0-ExecutionPartConstruct" ], - "Statement": "0x55eadb4ad7a0-Statement" + "Statement": "0x558d739f1600-Statement" }, { - "id": "0x55eadb4ad7f8-Statement", - "statement": "0x55eadb4ad808-NonLabelDoStmt", + "id": "0x558d739f1658-Statement", + "statement": "0x558d739f1668-NonLabelDoStmt", "source": "do j = 1, nl" }, { - "id": "0x55eadb4ad808-NonLabelDoStmt", - "LoopControl": "0x55eadb4ad808-LoopControl" + "id": "0x558d739f1668-NonLabelDoStmt", + "LoopControl": "0x558d739f1668-LoopControl" }, { - "id": "0x55eadb4ad808-LoopControl", + "id": "0x558d739f1668-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55eadb4ad808-LoopBounds" + "LoopBounds": "0x558d739f1668-LoopBounds" }, { - "id": "0x55eadb4ad808-LoopBounds", - "var": "0x55eadb4ad808-Name", - "lower": "0x55eadb4a4e60-Expr", - "upper": "0x55eadb4a4f40-Expr" + "id": "0x558d739f1668-LoopBounds", + "var": "0x558d739f1668-Name", + "lower": "0x558d739e89d0-Expr", + "upper": "0x558d739e8ab0-Expr" }, { - "id": "0x55eadb4ad808-Name", + "id": "0x558d739f1668-Name", "source": "j" }, { - "id": "0x55eadb4a4e60-Expr", + "id": "0x558d739e89d0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4a4e80-LiteralConstant" + "LiteralConstant": "0x558d739e89f0-LiteralConstant" }, { - "id": "0x55eadb4a4e80-LiteralConstant", + "id": "0x558d739e89f0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4a4e80-IntLiteralConstant" + "IntLiteralConstant": "0x558d739e89f0-IntLiteralConstant" }, { - "id": "0x55eadb4a4e80-IntLiteralConstant", + "id": "0x558d739e89f0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55eadb4a4f40-Expr", + "id": "0x558d739e8ab0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb48da30-Designator" + "Designator": "0x558d739d6bd0-Designator" }, { - "id": "0x55eadb48da30-Designator", + "id": "0x558d739d6bd0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb48da40-DataRef" + "DataRef": "0x558d739d6be0-DataRef" }, { - "id": "0x55eadb48da40-DataRef", + "id": "0x558d739d6be0-DataRef", "variantKey": "Name", - "Name": "0x55eadb48da40-Name" + "Name": "0x558d739d6be0-Name" }, { - "id": "0x55eadb48da40-Name", + "id": "0x558d739d6be0-Name", "source": "nl" }, { - "id": "0x55eadb4ad7e0-ExecutionPartConstruct" + "id": "0x558d739f1640-ExecutionPartConstruct" }, { - "id": "0x55eadb4ad750-ExecutionPartConstruct", + "id": "0x558d739f15b0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4ad750-ExecutableConstruct" + "ExecutableConstruct": "0x558d739f15b0-ExecutableConstruct" }, { - "id": "0x55eadb4ad750-ExecutableConstruct", + "id": "0x558d739f15b0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4ad750-Statement" + "Statement": "0x558d739f15b0-Statement" }, { - "id": "0x55eadb4ad750-Statement", - "statement": "0x55eadb4ad760-ActionStmt", + "id": "0x558d739f15b0-Statement", + "statement": "0x558d739f15c0-ActionStmt", "source": "d(j, i) =(dble(i - 1) * dble(j + 1))/ nk" }, { - "id": "0x55eadb4ad760-ActionStmt", + "id": "0x558d739f15c0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55eadb4ad5c0-AssignmentStmt" + "AssignmentStmt": "0x558d739f1420-AssignmentStmt" }, { - "id": "0x55eadb4ad5c0-AssignmentStmt", - "Variable": "0x55eadb4ad6a0-Variable", - "Expr": "0x55eadb4ad5d0-Expr" + "id": "0x558d739f1420-AssignmentStmt", + "Variable": "0x558d739f1500-Variable", + "Expr": "0x558d739f1430-Expr" }, { - "id": "0x55eadb4ad6a0-Variable", + "id": "0x558d739f1500-Variable", "variantKey": "Designator", - "Designator": "0x55eadb49f620-Designator" + "Designator": "0x558d73a01fe0-Designator" }, { - "id": "0x55eadb49f620-Designator", + "id": "0x558d73a01fe0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb49f630-DataRef" + "DataRef": "0x558d73a01ff0-DataRef" }, { - "id": "0x55eadb49f630-DataRef", + "id": "0x558d73a01ff0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55eadb4be280-ArrayElement" + "ArrayElement": "0x558d739efc90-ArrayElement" }, { - "id": "0x55eadb4be280-ArrayElement", - "base": "0x55eadb4be280-DataRef", + "id": "0x558d739efc90-ArrayElement", + "base": "0x558d739efc90-DataRef", "subscripts": [ - "0x55eadb568360-SectionSubscript", - "0x55eadb4d7e20-SectionSubscript" + "0x558d73aac410-SectionSubscript", + "0x558d73a214b0-SectionSubscript" ] }, { - "id": "0x55eadb4be280-DataRef", + "id": "0x558d739efc90-DataRef", "variantKey": "Name", - "Name": "0x55eadb4be280-Name" + "Name": "0x558d739efc90-Name" }, { - "id": "0x55eadb4be280-Name", + "id": "0x558d739efc90-Name", "source": "d" }, { - "id": "0x55eadb568360-SectionSubscript", + "id": "0x558d73aac410-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb497070-Expr" + "Expr": "0x558d739dad20-Expr" }, { - "id": "0x55eadb497070-Expr", + "id": "0x558d739dad20-Expr", "variantKey": "Designator", - "Designator": "0x55eadb498cc0-Designator" + "Designator": "0x558d739d8d40-Designator" }, { - "id": "0x55eadb498cc0-Designator", + "id": "0x558d739d8d40-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb498cd0-DataRef" + "DataRef": "0x558d739d8d50-DataRef" }, { - "id": "0x55eadb498cd0-DataRef", + "id": "0x558d739d8d50-DataRef", "variantKey": "Name", - "Name": "0x55eadb498cd0-Name" + "Name": "0x558d739d8d50-Name" }, { - "id": "0x55eadb498cd0-Name", + "id": "0x558d739d8d50-Name", "source": "j" }, { - "id": "0x55eadb4d7e20-SectionSubscript", + "id": "0x558d73a214b0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb497150-Expr" + "Expr": "0x558d739dae00-Expr" }, { - "id": "0x55eadb497150-Expr", + "id": "0x558d739dae00-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4aba00-Designator" + "Designator": "0x558d739e42a0-Designator" }, { - "id": "0x55eadb4aba00-Designator", + "id": "0x558d739e42a0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4aba10-DataRef" + "DataRef": "0x558d739e42b0-DataRef" }, { - "id": "0x55eadb4aba10-DataRef", + "id": "0x558d739e42b0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4aba10-Name" + "Name": "0x558d739e42b0-Name" }, { - "id": "0x55eadb4aba10-Name", + "id": "0x558d739e42b0-Name", "source": "i" }, { - "id": "0x55eadb4ad5d0-Expr", + "id": "0x558d739f1430-Expr", "variantKey": "Divide", - "Divide": "0x55eadb4ad5f0-Divide" + "Divide": "0x558d739f1450-Divide" }, { - "id": "0x55eadb4ad5f0-Divide", - "left": "0x55eadb4ad470-Expr", - "right": "0x55eadb4ad390-Expr", + "id": "0x558d739f1450-Divide", + "left": "0x558d739f12d0-Expr", + "right": "0x558d739f11f0-Expr", "op": "DIVIDE" }, { - "id": "0x55eadb4ad470-Expr", + "id": "0x558d739f12d0-Expr", "variantKey": "Parentheses", - "Parentheses": "0x55eadb4ad490-Parentheses" + "Parentheses": "0x558d739f12f0-Parentheses" }, { - "id": "0x55eadb4ad490-Parentheses", - "Expr": "0x55eadb4ad120-Expr", + "id": "0x558d739f12f0-Parentheses", + "Expr": "0x558d739f0f80-Expr", "op": "PARENTHESES" }, { - "id": "0x55eadb4ad120-Expr", + "id": "0x558d739f0f80-Expr", "variantKey": "Multiply", - "Multiply": "0x55eadb4ad140-Multiply" + "Multiply": "0x558d739f0fa0-Multiply" }, { - "id": "0x55eadb4ad140-Multiply", - "left": "0x55eadb4ad040-Expr", - "right": "0x55eadb4acf60-Expr", + "id": "0x558d739f0fa0-Multiply", + "left": "0x558d739f0ea0-Expr", + "right": "0x558d739f0dc0-Expr", "op": "MULTIPLY" }, { - "id": "0x55eadb4ad040-Expr", + "id": "0x558d739f0ea0-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55eadb4a0300-FunctionReference" + "FunctionReference": "0x558d739d2840-FunctionReference" }, { - "id": "0x55eadb4a0300-FunctionReference", - "Call": "0x55eadb4a0300-Call" + "id": "0x558d739d2840-FunctionReference", + "Call": "0x558d739d2840-Call" }, { - "id": "0x55eadb4a0300-Call", - "ProcedureDesignator": "0x55eadb4a0318-ProcedureDesignator", + "id": "0x558d739d2840-Call", + "ProcedureDesignator": "0x558d739d2858-ProcedureDesignator", "ActualArgSpec": [ - "0x55eadb4aca50-ActualArgSpec" + "0x558d739e9220-ActualArgSpec" ] }, { - "id": "0x55eadb4a0318-ProcedureDesignator", + "id": "0x558d739d2858-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55eadb4a0318-Name" + "Name": "0x558d739d2858-Name" }, { - "id": "0x55eadb4a0318-Name", + "id": "0x558d739d2858-Name", "source": "dble" }, { - "id": "0x55eadb4aca50-ActualArgSpec", - "ActualArg": "0x55eadb4aca50-ActualArg" + "id": "0x558d739e9220-ActualArgSpec", + "ActualArg": "0x558d739e9220-ActualArg" }, { - "id": "0x55eadb4aca50-ActualArg", + "id": "0x558d739e9220-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb4a5400-Expr" + "Expr": "0x558d739e8f70-Expr" }, { - "id": "0x55eadb4a5400-Expr", + "id": "0x558d739e8f70-Expr", "variantKey": "Subtract", - "Subtract": "0x55eadb4a5420-Subtract" + "Subtract": "0x558d739e8f90-Subtract" }, { - "id": "0x55eadb4a5420-Subtract", - "left": "0x55eadb4a55c0-Expr", - "right": "0x55eadb4a54e0-Expr", + "id": "0x558d739e8f90-Subtract", + "left": "0x558d739e9130-Expr", + "right": "0x558d739e9050-Expr", "op": "SUBTRACT" }, { - "id": "0x55eadb4a55c0-Expr", + "id": "0x558d739e9130-Expr", "variantKey": "Designator", - "Designator": "0x55eadb498660-Designator" + "Designator": "0x558d739dc240-Designator" }, { - "id": "0x55eadb498660-Designator", + "id": "0x558d739dc240-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb498670-DataRef" + "DataRef": "0x558d739dc250-DataRef" }, { - "id": "0x55eadb498670-DataRef", + "id": "0x558d739dc250-DataRef", "variantKey": "Name", - "Name": "0x55eadb498670-Name" + "Name": "0x558d739dc250-Name" }, { - "id": "0x55eadb498670-Name", + "id": "0x558d739dc250-Name", "source": "i" }, { - "id": "0x55eadb4a54e0-Expr", + "id": "0x558d739e9050-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4a5500-LiteralConstant" + "LiteralConstant": "0x558d739e9070-LiteralConstant" }, { - "id": "0x55eadb4a5500-LiteralConstant", + "id": "0x558d739e9070-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4a5500-IntLiteralConstant" + "IntLiteralConstant": "0x558d739e9070-IntLiteralConstant" }, { - "id": "0x55eadb4a5500-IntLiteralConstant", + "id": "0x558d739e9070-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55eadb4acf60-Expr", + "id": "0x558d739f0dc0-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55eadb493d00-FunctionReference" + "FunctionReference": "0x558d739d1c30-FunctionReference" }, { - "id": "0x55eadb493d00-FunctionReference", - "Call": "0x55eadb493d00-Call" + "id": "0x558d739d1c30-FunctionReference", + "Call": "0x558d739d1c30-Call" }, { - "id": "0x55eadb493d00-Call", - "ProcedureDesignator": "0x55eadb493d18-ProcedureDesignator", + "id": "0x558d739d1c30-Call", + "ProcedureDesignator": "0x558d739d1c48-ProcedureDesignator", "ActualArgSpec": [ - "0x55eadb4ace60-ActualArgSpec" + "0x558d739f0cc0-ActualArgSpec" ] }, { - "id": "0x55eadb493d18-ProcedureDesignator", + "id": "0x558d739d1c48-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55eadb493d18-Name" + "Name": "0x558d739d1c48-Name" }, { - "id": "0x55eadb493d18-Name", + "id": "0x558d739d1c48-Name", "source": "dble" }, { - "id": "0x55eadb4ace60-ActualArgSpec", - "ActualArg": "0x55eadb4ace60-ActualArg" + "id": "0x558d739f0cc0-ActualArgSpec", + "ActualArg": "0x558d739f0cc0-ActualArg" }, { - "id": "0x55eadb4ace60-ActualArg", + "id": "0x558d739f0cc0-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb4acb50-Expr" + "Expr": "0x558d739f0a10-Expr" }, { - "id": "0x55eadb4acb50-Expr", + "id": "0x558d739f0a10-Expr", "variantKey": "Add", - "Add": "0x55eadb4acb70-Add" + "Add": "0x558d739f0a30-Add" }, { - "id": "0x55eadb4acb70-Add", - "left": "0x55eadb4acd10-Expr", - "right": "0x55eadb4acc30-Expr", + "id": "0x558d739f0a30-Add", + "left": "0x558d739f0bd0-Expr", + "right": "0x558d739f0af0-Expr", "op": "ADD" }, { - "id": "0x55eadb4acd10-Expr", + "id": "0x558d739f0bd0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb498b80-Designator" + "Designator": "0x558d739e9440-Designator" }, { - "id": "0x55eadb498b80-Designator", + "id": "0x558d739e9440-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb498b90-DataRef" + "DataRef": "0x558d739e9450-DataRef" }, { - "id": "0x55eadb498b90-DataRef", + "id": "0x558d739e9450-DataRef", "variantKey": "Name", - "Name": "0x55eadb498b90-Name" + "Name": "0x558d739e9450-Name" }, { - "id": "0x55eadb498b90-Name", + "id": "0x558d739e9450-Name", "source": "j" }, { - "id": "0x55eadb4acc30-Expr", + "id": "0x558d739f0af0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4acc50-LiteralConstant" + "LiteralConstant": "0x558d739f0b10-LiteralConstant" }, { - "id": "0x55eadb4acc50-LiteralConstant", + "id": "0x558d739f0b10-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4acc50-IntLiteralConstant" + "IntLiteralConstant": "0x558d739f0b10-IntLiteralConstant" }, { - "id": "0x55eadb4acc50-IntLiteralConstant", + "id": "0x558d739f0b10-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55eadb4ad390-Expr", + "id": "0x558d739f11f0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4ad2c0-Designator" + "Designator": "0x558d739f1120-Designator" }, { - "id": "0x55eadb4ad2c0-Designator", + "id": "0x558d739f1120-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4ad2d0-DataRef" + "DataRef": "0x558d739f1130-DataRef" }, { - "id": "0x55eadb4ad2d0-DataRef", + "id": "0x558d739f1130-DataRef", "variantKey": "Name", - "Name": "0x55eadb4ad2d0-Name" + "Name": "0x558d739f1130-Name" }, { - "id": "0x55eadb4ad2d0-Name", + "id": "0x558d739f1130-Name", "source": "nk" }, { - "id": "0x55eadb4ad7a0-Statement", - "statement": "0x55eadb4ad7b0-EndDoStmt", + "id": "0x558d739f1600-Statement", + "statement": "0x558d739f1610-EndDoStmt", "source": "end do" }, { - "id": "0x55eadb4ad7b0-EndDoStmt" + "id": "0x558d739f1610-EndDoStmt" }, { - "id": "0x55eadb4ad8c0-Statement", - "statement": "0x55eadb4ad8d0-EndDoStmt", + "id": "0x558d739f1720-Statement", + "statement": "0x558d739f1730-EndDoStmt", "source": "end do" }, { - "id": "0x55eadb4ad8d0-EndDoStmt" + "id": "0x558d739f1730-EndDoStmt" }, { - "id": "0x55eadb4aeb50-Statement", - "statement": "0x55eadb4aeb60-EndSubroutineStmt", + "id": "0x558d739f2bb0-Statement", + "statement": "0x558d739f2bc0-EndSubroutineStmt", "source": "end subroutine" }, { - "id": "0x55eadb4aeb60-EndSubroutineStmt" + "id": "0x558d739f2bc0-EndSubroutineStmt" }, { - "id": "0x55eadb49a300-InternalSubprogram", + "id": "0x558d739ea120-InternalSubprogram", "variantKey": "SubroutineSubprogram", - "SubroutineSubprogram": "0x55eadb4b4660-SubroutineSubprogram" + "SubroutineSubprogram": "0x558d739f8df0-SubroutineSubprogram" }, { - "id": "0x55eadb4b4660-SubroutineSubprogram", - "Statement": "0x55eadb4b47a8-Statement", - "SpecificationPart": "0x55eadb4b4700-SpecificationPart", - "ExecutionPart": "0x55eadb4b46e8-ExecutionPart", - "Statement": "0x55eadb4b4660-Statement" + "id": "0x558d739f8df0-SubroutineSubprogram", + "Statement": "0x558d739f8f38-Statement", + "SpecificationPart": "0x558d739f8e90-SpecificationPart", + "ExecutionPart": "0x558d739f8e78-ExecutionPart", + "Statement": "0x558d739f8df0-Statement" }, { - "id": "0x55eadb4b47a8-Statement", - "statement": "0x55eadb4b47b8-SubroutineStmt", + "id": "0x558d739f8f38-Statement", + "statement": "0x558d739f8f48-SubroutineStmt", "source": "subroutine print_array(ni, nl, g)" }, { - "id": "0x55eadb4b47b8-SubroutineStmt", - "Name": "0x55eadb4b47f0-Name", + "id": "0x558d739f8f48-SubroutineStmt", + "Name": "0x558d739f8f80-Name", "DummyArg": [ - "0x55eadb496920-DummyArg", - "0x55eadb496880-DummyArg", - "0x55eadb4968c0-DummyArg" + "0x558d739da870-DummyArg", + "0x558d739da7d0-DummyArg", + "0x558d739da810-DummyArg" ] }, { - "id": "0x55eadb4b47f0-Name", + "id": "0x558d739f8f80-Name", "source": "print_array" }, { - "id": "0x55eadb496920-DummyArg", + "id": "0x558d739da870-DummyArg", "variantKey": "Name", - "Name": "0x55eadb496920-Name" + "Name": "0x558d739da870-Name" }, { - "id": "0x55eadb496920-Name", + "id": "0x558d739da870-Name", "source": "ni" }, { - "id": "0x55eadb496880-DummyArg", + "id": "0x558d739da7d0-DummyArg", "variantKey": "Name", - "Name": "0x55eadb496880-Name" + "Name": "0x558d739da7d0-Name" }, { - "id": "0x55eadb496880-Name", + "id": "0x558d739da7d0-Name", "source": "nl" }, { - "id": "0x55eadb4968c0-DummyArg", + "id": "0x558d739da810-DummyArg", "variantKey": "Name", - "Name": "0x55eadb4968c0-Name" + "Name": "0x558d739da810-Name" }, { - "id": "0x55eadb4968c0-Name", + "id": "0x558d739da810-Name", "source": "g" }, { - "id": "0x55eadb4b4700-SpecificationPart", - "ImplicitPart": "0x55eadb4b4718-ImplicitPart", + "id": "0x558d739f8e90-SpecificationPart", + "ImplicitPart": "0x558d739f8ea8-ImplicitPart", "DeclarationConstruct": [ - "0x55eadb4aa7b0-DeclarationConstruct", - "0x55eadb495a80-DeclarationConstruct", - "0x55eadb4a4260-DeclarationConstruct" + "0x558d739edfb0-DeclarationConstruct", + "0x558d739d7d60-DeclarationConstruct", + "0x558d739db830-DeclarationConstruct" ] }, { - "id": "0x55eadb4b4718-ImplicitPart" + "id": "0x558d739f8ea8-ImplicitPart" }, { - "id": "0x55eadb4aa7b0-DeclarationConstruct", + "id": "0x558d739edfb0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55eadb4aa7b0-SpecificationConstruct" + "SpecificationConstruct": "0x558d739edfb0-SpecificationConstruct" }, { - "id": "0x55eadb4aa7b0-SpecificationConstruct", + "id": "0x558d739edfb0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4aa7b0-Statement" + "Statement": "0x558d739edfb0-Statement" }, { - "id": "0x55eadb4aa7b0-Statement", - "statement": "0x55eadb48d7f0-TypeDeclarationStmt", + "id": "0x558d739edfb0-Statement", + "statement": "0x558d739d1f00-TypeDeclarationStmt", "source": "double precision, dimension(nl, ni) :: g" }, { - "id": "0x55eadb48d7f0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55eadb48d820-DeclarationTypeSpec", + "id": "0x558d739d1f00-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558d739d1f30-DeclarationTypeSpec", "AttrSpec": [ - "0x55eadb492f70-AttrSpec" + "0x558d739d7a90-AttrSpec" ], "EntityDecl": [ - "0x55eadb4af850-EntityDecl" + "0x558d739f3770-EntityDecl" ] }, { - "id": "0x55eadb48d820-DeclarationTypeSpec", + "id": "0x558d739d1f30-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55eadb48d820-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x558d739d1f30-IntrinsicTypeSpec" }, { - "id": "0x55eadb48d820-IntrinsicTypeSpec", + "id": "0x558d739d1f30-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x55eadb48d820-DoublePrecision" + "DoublePrecision": "0x558d739d1f30-DoublePrecision" }, { - "id": "0x55eadb48d820-DoublePrecision" + "id": "0x558d739d1f30-DoublePrecision" }, { - "id": "0x55eadb492f70-AttrSpec", + "id": "0x558d739d7a90-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x55eadb492f70-ArraySpec" + "ArraySpec": "0x558d739d7a90-ArraySpec" }, { - "id": "0x55eadb492f70-ArraySpec", + "id": "0x558d739d7a90-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55eadb498c50-ExplicitShapeSpec", - "0x55eadb4a4810-ExplicitShapeSpec" + "0x558d739e9db0-ExplicitShapeSpec", + "0x558d739e3cf0-ExplicitShapeSpec" ] }, { - "id": "0x55eadb498c50-ExplicitShapeSpec", - "upper_bound": "0x55eadb498c50-SpecificationExpr" + "id": "0x558d739e9db0-ExplicitShapeSpec", + "upper_bound": "0x558d739e9db0-SpecificationExpr" }, { - "id": "0x55eadb498c50-SpecificationExpr", - "Expr": "0x55eadb4af680-Expr" + "id": "0x558d739e9db0-SpecificationExpr", + "Expr": "0x558d739ee0c0-Expr" }, { - "id": "0x55eadb4af680-Expr", + "id": "0x558d739ee0c0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4ad200-Designator" + "Designator": "0x558d739f1060-Designator" }, { - "id": "0x55eadb4ad200-Designator", + "id": "0x558d739f1060-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4ad210-DataRef" + "DataRef": "0x558d739f1070-DataRef" }, { - "id": "0x55eadb4ad210-DataRef", + "id": "0x558d739f1070-DataRef", "variantKey": "Name", - "Name": "0x55eadb4ad210-Name" + "Name": "0x558d739f1070-Name" }, { - "id": "0x55eadb4ad210-Name", + "id": "0x558d739f1070-Name", "source": "nl" }, { - "id": "0x55eadb4a4810-ExplicitShapeSpec", - "upper_bound": "0x55eadb4a4810-SpecificationExpr" + "id": "0x558d739e3cf0-ExplicitShapeSpec", + "upper_bound": "0x558d739e3cf0-SpecificationExpr" }, { - "id": "0x55eadb4a4810-SpecificationExpr", - "Expr": "0x55eadb4af760-Expr" + "id": "0x558d739e3cf0-SpecificationExpr", + "Expr": "0x558d739f2a00-Expr" }, { - "id": "0x55eadb4af760-Expr", + "id": "0x558d739f2a00-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4a6ec0-Designator" + "Designator": "0x558d739eab50-Designator" }, { - "id": "0x55eadb4a6ec0-Designator", + "id": "0x558d739eab50-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4a6ed0-DataRef" + "DataRef": "0x558d739eab60-DataRef" }, { - "id": "0x55eadb4a6ed0-DataRef", + "id": "0x558d739eab60-DataRef", "variantKey": "Name", - "Name": "0x55eadb4a6ed0-Name" + "Name": "0x558d739eab60-Name" }, { - "id": "0x55eadb4a6ed0-Name", + "id": "0x558d739eab60-Name", "source": "ni" }, { - "id": "0x55eadb4af850-EntityDecl", - "Name": "0x55eadb4af908-Name" + "id": "0x558d739f3770-EntityDecl", + "Name": "0x558d739f3828-Name" }, { - "id": "0x55eadb4af908-Name", + "id": "0x558d739f3828-Name", "source": "g" }, { - "id": "0x55eadb495a80-DeclarationConstruct", + "id": "0x558d739d7d60-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55eadb495a80-SpecificationConstruct" + "SpecificationConstruct": "0x558d739d7d60-SpecificationConstruct" }, { - "id": "0x55eadb495a80-SpecificationConstruct", + "id": "0x558d739d7d60-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55eadb495a80-Statement" + "Statement": "0x558d739d7d60-Statement" }, { - "id": "0x55eadb495a80-Statement", - "statement": "0x55eadb4ab300-TypeDeclarationStmt", + "id": "0x558d739d7d60-Statement", + "statement": "0x558d739ef2d0-TypeDeclarationStmt", "source": "integer :: ni, nl" }, { - "id": "0x55eadb4ab300-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55eadb4ab330-DeclarationTypeSpec", + "id": "0x558d739ef2d0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558d739ef300-DeclarationTypeSpec", "EntityDecl": [ - "0x55eadb4adae0-EntityDecl", - "0x55eadb4ad9f0-EntityDecl" + "0x558d739f3950-EntityDecl", + "0x558d739f3860-EntityDecl" ] }, { - "id": "0x55eadb4ab330-DeclarationTypeSpec", + "id": "0x558d739ef300-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55eadb4ab330-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x558d739ef300-IntrinsicTypeSpec" }, { - "id": "0x55eadb4ab330-IntrinsicTypeSpec", + "id": "0x558d739ef300-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55eadb4ab330-IntegerTypeSpec" + "IntegerTypeSpec": "0x558d739ef300-IntegerTypeSpec" }, { - "id": "0x55eadb4ab330-IntegerTypeSpec" + "id": "0x558d739ef300-IntegerTypeSpec" }, { - "id": "0x55eadb4adae0-EntityDecl", - "Name": "0x55eadb4adb98-Name" + "id": "0x558d739f3950-EntityDecl", + "Name": "0x558d739f3a08-Name" }, { - "id": "0x55eadb4adb98-Name", + "id": "0x558d739f3a08-Name", "source": "ni" }, { - "id": "0x55eadb4ad9f0-EntityDecl", - "Name": "0x55eadb4adaa8-Name" + "id": "0x558d739f3860-EntityDecl", + "Name": "0x558d739f3918-Name" }, { - "id": "0x55eadb4adaa8-Name", + "id": "0x558d739f3918-Name", "source": "nl" }, { - "id": "0x55eadb4a4260-DeclarationConstruct", + "id": "0x558d739db830-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55eadb4a4260-SpecificationConstruct" + "SpecificationConstruct": "0x558d739db830-SpecificationConstruct" }, { - "id": "0x55eadb4a4260-SpecificationConstruct", + "id": "0x558d739db830-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4a4260-Statement" + "Statement": "0x558d739db830-Statement" }, { - "id": "0x55eadb4a4260-Statement", - "statement": "0x55eadb49fe00-TypeDeclarationStmt", + "id": "0x558d739db830-Statement", + "statement": "0x558d739cca90-TypeDeclarationStmt", "source": "integer :: i, j" }, { - "id": "0x55eadb49fe00-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55eadb49fe30-DeclarationTypeSpec", + "id": "0x558d739cca90-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558d739ccac0-DeclarationTypeSpec", "EntityDecl": [ - "0x55eadb4adcc0-EntityDecl", - "0x55eadb4adbd0-EntityDecl" + "0x558d739f19d0-EntityDecl", + "0x558d739f18e0-EntityDecl" ] }, { - "id": "0x55eadb49fe30-DeclarationTypeSpec", + "id": "0x558d739ccac0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55eadb49fe30-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x558d739ccac0-IntrinsicTypeSpec" }, { - "id": "0x55eadb49fe30-IntrinsicTypeSpec", + "id": "0x558d739ccac0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55eadb49fe30-IntegerTypeSpec" + "IntegerTypeSpec": "0x558d739ccac0-IntegerTypeSpec" }, { - "id": "0x55eadb49fe30-IntegerTypeSpec" + "id": "0x558d739ccac0-IntegerTypeSpec" }, { - "id": "0x55eadb4adcc0-EntityDecl", - "Name": "0x55eadb4add78-Name" + "id": "0x558d739f19d0-EntityDecl", + "Name": "0x558d739f1a88-Name" }, { - "id": "0x55eadb4add78-Name", + "id": "0x558d739f1a88-Name", "source": "i" }, { - "id": "0x55eadb4adbd0-EntityDecl", - "Name": "0x55eadb4adc88-Name" + "id": "0x558d739f18e0-EntityDecl", + "Name": "0x558d739f1998-Name" }, { - "id": "0x55eadb4adc88-Name", + "id": "0x558d739f1998-Name", "source": "j" }, { - "id": "0x55eadb4b46e8-ExecutionPart", + "id": "0x558d739f8e78-ExecutionPart", "ExecutionPartConstruct": [ - "0x55eadb4a9a90-ExecutionPartConstruct", - "0x55eadb4a56b0-ExecutionPartConstruct" + "0x558d739f2af0-ExecutionPartConstruct", + "0x558d739dbe90-ExecutionPartConstruct" ] }, { - "id": "0x55eadb4b46e8-ExecutionPartConstruct" + "id": "0x558d739f8e78-ExecutionPartConstruct" }, { - "id": "0x55eadb4a9a90-ExecutionPartConstruct", + "id": "0x558d739f2af0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4a9a90-ExecutableConstruct" + "ExecutableConstruct": "0x558d739f2af0-ExecutableConstruct" }, { - "id": "0x55eadb4a9a90-ExecutableConstruct", + "id": "0x558d739f2af0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55eadb4b31a0-DoConstruct" + "DoConstruct": "0x558d739f7270-DoConstruct" }, { - "id": "0x55eadb4b31a0-DoConstruct", - "Statement": "0x55eadb4b31f8-Statement", + "id": "0x558d739f7270-DoConstruct", + "Statement": "0x558d739f72c8-Statement", "ExecutionPartConstruct": [ - "0x55eadb4a68e0-ExecutionPartConstruct" + "0x558d739e9b70-ExecutionPartConstruct" ], - "Statement": "0x55eadb4b31a0-Statement" + "Statement": "0x558d739f7270-Statement" }, { - "id": "0x55eadb4b31f8-Statement", - "statement": "0x55eadb4b3208-NonLabelDoStmt", + "id": "0x558d739f72c8-Statement", + "statement": "0x558d739f72d8-NonLabelDoStmt", "source": "do i = 1, ni" }, { - "id": "0x55eadb4b3208-NonLabelDoStmt", - "LoopControl": "0x55eadb4b3208-LoopControl" + "id": "0x558d739f72d8-NonLabelDoStmt", + "LoopControl": "0x558d739f72d8-LoopControl" }, { - "id": "0x55eadb4b3208-LoopControl", + "id": "0x558d739f72d8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55eadb4b3208-LoopBounds" + "LoopBounds": "0x558d739f72d8-LoopBounds" }, { - "id": "0x55eadb4b3208-LoopBounds", - "var": "0x55eadb4b3208-Name", - "lower": "0x55eadb4adda0-Expr", - "upper": "0x55eadb4ade80-Expr" + "id": "0x558d739f72d8-LoopBounds", + "var": "0x558d739f72d8-Name", + "lower": "0x558d739f1ab0-Expr", + "upper": "0x558d739f1b90-Expr" }, { - "id": "0x55eadb4b3208-Name", + "id": "0x558d739f72d8-Name", "source": "i" }, { - "id": "0x55eadb4adda0-Expr", + "id": "0x558d739f1ab0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4addc0-LiteralConstant" + "LiteralConstant": "0x558d739f1ad0-LiteralConstant" }, { - "id": "0x55eadb4addc0-LiteralConstant", + "id": "0x558d739f1ad0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4addc0-IntLiteralConstant" + "IntLiteralConstant": "0x558d739f1ad0-IntLiteralConstant" }, { - "id": "0x55eadb4addc0-IntLiteralConstant", + "id": "0x558d739f1ad0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55eadb4ade80-Expr", + "id": "0x558d739f1b90-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4aaa00-Designator" + "Designator": "0x558d739ee740-Designator" }, { - "id": "0x55eadb4aaa00-Designator", + "id": "0x558d739ee740-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4aaa10-DataRef" + "DataRef": "0x558d739ee750-DataRef" }, { - "id": "0x55eadb4aaa10-DataRef", + "id": "0x558d739ee750-DataRef", "variantKey": "Name", - "Name": "0x55eadb4aaa10-Name" + "Name": "0x558d739ee750-Name" }, { - "id": "0x55eadb4aaa10-Name", + "id": "0x558d739ee750-Name", "source": "ni" }, { - "id": "0x55eadb4b31e0-ExecutionPartConstruct" + "id": "0x558d739f72b0-ExecutionPartConstruct" }, { - "id": "0x55eadb4a68e0-ExecutionPartConstruct", + "id": "0x558d739e9b70-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4a68e0-ExecutableConstruct" + "ExecutableConstruct": "0x558d739e9b70-ExecutableConstruct" }, { - "id": "0x55eadb4a68e0-ExecutableConstruct", + "id": "0x558d739e9b70-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55eadb4b3080-DoConstruct" + "DoConstruct": "0x558d739f7150-DoConstruct" }, { - "id": "0x55eadb4b3080-DoConstruct", - "Statement": "0x55eadb4b30d8-Statement", + "id": "0x558d739f7150-DoConstruct", + "Statement": "0x558d739f71a8-Statement", "ExecutionPartConstruct": [ - "0x55eadb4afe10-ExecutionPartConstruct", - "0x55eadb4aa120-ExecutionPartConstruct" + "0x558d739eda00-ExecutionPartConstruct", + "0x558d739f4da0-ExecutionPartConstruct" ], - "Statement": "0x55eadb4b3080-Statement" + "Statement": "0x558d739f7150-Statement" }, { - "id": "0x55eadb4b30d8-Statement", - "statement": "0x55eadb4b30e8-NonLabelDoStmt", + "id": "0x558d739f71a8-Statement", + "statement": "0x558d739f71b8-NonLabelDoStmt", "source": "do j = 1, nl" }, { - "id": "0x55eadb4b30e8-NonLabelDoStmt", - "LoopControl": "0x55eadb4b30e8-LoopControl" + "id": "0x558d739f71b8-NonLabelDoStmt", + "LoopControl": "0x558d739f71b8-LoopControl" }, { - "id": "0x55eadb4b30e8-LoopControl", + "id": "0x558d739f71b8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55eadb4b30e8-LoopBounds" + "LoopBounds": "0x558d739f71b8-LoopBounds" }, { - "id": "0x55eadb4b30e8-LoopBounds", - "var": "0x55eadb4b30e8-Name", - "lower": "0x55eadb4adf60-Expr", - "upper": "0x55eadb4ae040-Expr" + "id": "0x558d739f71b8-LoopBounds", + "var": "0x558d739f71b8-Name", + "lower": "0x558d739f1c70-Expr", + "upper": "0x558d739f1d50-Expr" }, { - "id": "0x55eadb4b30e8-Name", + "id": "0x558d739f71b8-Name", "source": "j" }, { - "id": "0x55eadb4adf60-Expr", + "id": "0x558d739f1c70-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4adf80-LiteralConstant" + "LiteralConstant": "0x558d739f1c90-LiteralConstant" }, { - "id": "0x55eadb4adf80-LiteralConstant", + "id": "0x558d739f1c90-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4adf80-IntLiteralConstant" + "IntLiteralConstant": "0x558d739f1c90-IntLiteralConstant" }, { - "id": "0x55eadb4adf80-IntLiteralConstant", + "id": "0x558d739f1c90-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55eadb4ae040-Expr", + "id": "0x558d739f1d50-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4a6a40-Designator" + "Designator": "0x558d739ea6d0-Designator" }, { - "id": "0x55eadb4a6a40-Designator", + "id": "0x558d739ea6d0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4a6a50-DataRef" + "DataRef": "0x558d739ea6e0-DataRef" }, { - "id": "0x55eadb4a6a50-DataRef", + "id": "0x558d739ea6e0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4a6a50-Name" + "Name": "0x558d739ea6e0-Name" }, { - "id": "0x55eadb4a6a50-Name", + "id": "0x558d739ea6e0-Name", "source": "nl" }, { - "id": "0x55eadb4b30c0-ExecutionPartConstruct" + "id": "0x558d739f7190-ExecutionPartConstruct" }, { - "id": "0x55eadb4afe10-ExecutionPartConstruct", + "id": "0x558d739eda00-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4afe10-ExecutableConstruct" + "ExecutableConstruct": "0x558d739eda00-ExecutableConstruct" }, { - "id": "0x55eadb4afe10-ExecutableConstruct", + "id": "0x558d739eda00-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4afe10-Statement" + "Statement": "0x558d739eda00-Statement" }, { - "id": "0x55eadb4afe10-Statement", - "statement": "0x55eadb4afe20-ActionStmt", + "id": "0x558d739eda00-Statement", + "statement": "0x558d739eda10-ActionStmt", "source": "write(0, \"(f0.2,1x)\", advance = 'no') g(j, i)" }, { - "id": "0x55eadb4afe20-ActionStmt", + "id": "0x558d739eda10-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x55eadb4b00e0-WriteStmt" + "WriteStmt": "0x558d739f41c0-WriteStmt" }, { - "id": "0x55eadb4b00e0-WriteStmt", - "iounit": "0x55eadb4b00e0-IoUnit", - "format": "0x55eadb4b0110-Format", + "id": "0x558d739f41c0-WriteStmt", + "iounit": "0x558d739f41c0-IoUnit", + "format": "0x558d739f41f0-Format", "controls": [ - "0x55eadb4ae700-IoControlSpec" + "0x558d739f2410-IoControlSpec" ], "items": [ - "0x55eadb4b0000-OutputItem" + "0x558d739f40e0-OutputItem" ] }, { - "id": "0x55eadb4b00e0-IoUnit", + "id": "0x558d739f41c0-IoUnit", "variantKey": "Expr", - "Expr": "0x55eadb4ae120-Expr" + "Expr": "0x558d739f1e30-Expr" }, { - "id": "0x55eadb4ae120-Expr", + "id": "0x558d739f1e30-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4ae140-LiteralConstant" + "LiteralConstant": "0x558d739f1e50-LiteralConstant" }, { - "id": "0x55eadb4ae140-LiteralConstant", + "id": "0x558d739f1e50-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4ae140-IntLiteralConstant" + "IntLiteralConstant": "0x558d739f1e50-IntLiteralConstant" }, { - "id": "0x55eadb4ae140-IntLiteralConstant", + "id": "0x558d739f1e50-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55eadb4b0110-Format", + "id": "0x558d739f41f0-Format", "variantKey": "Expr", - "Expr": "0x55eadb4b0110-Expr" + "Expr": "0x558d739f41f0-Expr" }, { - "id": "0x55eadb4b0110-Expr", + "id": "0x558d739f41f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4b0130-LiteralConstant" + "LiteralConstant": "0x558d739f4210-LiteralConstant" }, { - "id": "0x55eadb4b0130-LiteralConstant", + "id": "0x558d739f4210-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55eadb4b0130-CharLiteralConstant" + "CharLiteralConstant": "0x558d739f4210-CharLiteralConstant" }, { - "id": "0x55eadb4b0130-CharLiteralConstant", + "id": "0x558d739f4210-CharLiteralConstant", "string": "(f0.2,1x)" }, { - "id": "0x55eadb4ae700-IoControlSpec", + "id": "0x558d739f2410-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x55eadb4ae700-CharExpr" + "CharExpr": "0x558d739f2410-CharExpr" }, { - "id": "0x55eadb4ae700-CharExpr", - "Kind = Advance": "0x55eadb4ae708-Kind = Advance", - "Expr": "0x55eadb4ae200-Expr", + "id": "0x558d739f2410-CharExpr", + "Kind = Advance": "0x558d739f2418-Kind = Advance", + "Expr": "0x558d739f1f10-Expr", "kind": "Advance" }, { - "id": "0x55eadb4ae708-Kind = Advance", + "id": "0x558d739f2418-Kind = Advance", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Advance" }, { - "id": "0x55eadb4ae200-Expr", + "id": "0x558d739f1f10-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4ae220-LiteralConstant" + "LiteralConstant": "0x558d739f1f30-LiteralConstant" }, { - "id": "0x55eadb4ae220-LiteralConstant", + "id": "0x558d739f1f30-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55eadb4ae220-CharLiteralConstant" + "CharLiteralConstant": "0x558d739f1f30-CharLiteralConstant" }, { - "id": "0x55eadb4ae220-CharLiteralConstant", + "id": "0x558d739f1f30-CharLiteralConstant", "string": "no" }, { - "id": "0x55eadb4b0000-OutputItem", + "id": "0x558d739f40e0-OutputItem", "variantKey": "Expr", - "Expr": "0x55eadb4b0000-Expr" + "Expr": "0x558d739f40e0-Expr" }, { - "id": "0x55eadb4b0000-Expr", + "id": "0x558d739f40e0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4ce780-Designator" + "Designator": "0x558d73a129e0-Designator" }, { - "id": "0x55eadb4ce780-Designator", + "id": "0x558d73a129e0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4ce790-DataRef" + "DataRef": "0x558d73a129f0-DataRef" }, { - "id": "0x55eadb4ce790-DataRef", + "id": "0x558d73a129f0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55eadb49f410-ArrayElement" + "ArrayElement": "0x558d73a06350-ArrayElement" }, { - "id": "0x55eadb49f410-ArrayElement", - "base": "0x55eadb49f410-DataRef", + "id": "0x558d73a06350-ArrayElement", + "base": "0x558d73a06350-DataRef", "subscripts": [ - "0x55eadb4dbca0-SectionSubscript", - "0x55eadb56f140-SectionSubscript" + "0x558d73a06600-SectionSubscript", + "0x558d73a072d0-SectionSubscript" ] }, { - "id": "0x55eadb49f410-DataRef", + "id": "0x558d73a06350-DataRef", "variantKey": "Name", - "Name": "0x55eadb49f410-Name" + "Name": "0x558d73a06350-Name" }, { - "id": "0x55eadb49f410-Name", + "id": "0x558d73a06350-Name", "source": "g" }, { - "id": "0x55eadb4dbca0-SectionSubscript", + "id": "0x558d73a06600-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4a5020-Expr" + "Expr": "0x558d739e8b90-Expr" }, { - "id": "0x55eadb4a5020-Expr", + "id": "0x558d739e8b90-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4aea70-Designator" + "Designator": "0x558d739f1840-Designator" }, { - "id": "0x55eadb4aea70-Designator", + "id": "0x558d739f1840-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4aea80-DataRef" + "DataRef": "0x558d739f1850-DataRef" }, { - "id": "0x55eadb4aea80-DataRef", + "id": "0x558d739f1850-DataRef", "variantKey": "Name", - "Name": "0x55eadb4aea80-Name" + "Name": "0x558d739f1850-Name" }, { - "id": "0x55eadb4aea80-Name", + "id": "0x558d739f1850-Name", "source": "j" }, { - "id": "0x55eadb56f140-SectionSubscript", + "id": "0x558d73a072d0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4a5100-Expr" + "Expr": "0x558d739e8c70-Expr" }, { - "id": "0x55eadb4a5100-Expr", + "id": "0x558d739e8c70-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4aed30-Designator" + "Designator": "0x558d739f2500-Designator" }, { - "id": "0x55eadb4aed30-Designator", + "id": "0x558d739f2500-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4aed40-DataRef" + "DataRef": "0x558d739f2510-DataRef" }, { - "id": "0x55eadb4aed40-DataRef", + "id": "0x558d739f2510-DataRef", "variantKey": "Name", - "Name": "0x55eadb4aed40-Name" + "Name": "0x558d739f2510-Name" }, { - "id": "0x55eadb4aed40-Name", + "id": "0x558d739f2510-Name", "source": "i" }, { - "id": "0x55eadb4aa120-ExecutionPartConstruct", + "id": "0x558d739f4da0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4aa120-ExecutableConstruct" + "ExecutableConstruct": "0x558d739f4da0-ExecutableConstruct" }, { - "id": "0x55eadb4aa120-ExecutableConstruct", + "id": "0x558d739f4da0-ExecutableConstruct", "variantKey": "IfConstruct", - "IfConstruct": "0x55eadb4b2f60-IfConstruct" + "IfConstruct": "0x558d739f7030-IfConstruct" }, { - "id": "0x55eadb4b2f60-IfConstruct", - "Statement": "0x55eadb4b3030-Statement", + "id": "0x558d739f7030-IfConstruct", + "Statement": "0x558d739f7100-Statement", "ExecutionPartConstruct": [ - "0x55eadb4a6f30-ExecutionPartConstruct" + "0x558d739e9330-ExecutionPartConstruct" ], - "Statement": "0x55eadb4b2f60-Statement" + "Statement": "0x558d739f7030-Statement" }, { - "id": "0x55eadb4b3030-Statement", - "statement": "0x55eadb4b3040-IfThenStmt", + "id": "0x558d739f7100-Statement", + "statement": "0x558d739f7110-IfThenStmt", "source": "if(mod(((i - 1) * ni) + j - 1, 20) == 0) then" }, { - "id": "0x55eadb4b3040-IfThenStmt", - "Expr": "0x55eadb4b2c50-Expr" + "id": "0x558d739f7110-IfThenStmt", + "Expr": "0x558d739f6d20-Expr" }, { - "id": "0x55eadb4b2c50-Expr", + "id": "0x558d739f6d20-Expr", "variantKey": "EQ", - "EQ": "0x55eadb4b2c70-EQ" + "EQ": "0x558d739f6d40-EQ" }, { - "id": "0x55eadb4b2c70-EQ", - "left": "0x55eadb4b2b70-Expr", - "right": "0x55eadb4b2a90-Expr", + "id": "0x558d739f6d40-EQ", + "left": "0x558d739f6c40-Expr", + "right": "0x558d739f6b60-Expr", "op": "EQ" }, { - "id": "0x55eadb4b2b70-Expr", + "id": "0x558d739f6c40-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55eadb492c50-FunctionReference" + "FunctionReference": "0x558d739e9f40-FunctionReference" }, { - "id": "0x55eadb492c50-FunctionReference", - "Call": "0x55eadb492c50-Call" + "id": "0x558d739e9f40-FunctionReference", + "Call": "0x558d739e9f40-Call" }, { - "id": "0x55eadb492c50-Call", - "ProcedureDesignator": "0x55eadb492c68-ProcedureDesignator", + "id": "0x558d739e9f40-Call", + "ProcedureDesignator": "0x558d739e9f58-ProcedureDesignator", "ActualArgSpec": [ - "0x55eadb4ae5f0-ActualArgSpec", - "0x55eadb4b1130-ActualArgSpec" + "0x558d739f2300-ActualArgSpec", + "0x558d739f5270-ActualArgSpec" ] }, { - "id": "0x55eadb492c68-ProcedureDesignator", + "id": "0x558d739e9f58-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55eadb492c68-Name" + "Name": "0x558d739e9f58-Name" }, { - "id": "0x55eadb492c68-Name", + "id": "0x558d739e9f58-Name", "source": "mod" }, { - "id": "0x55eadb4ae5f0-ActualArgSpec", - "ActualArg": "0x55eadb4ae5f0-ActualArg" + "id": "0x558d739f2300-ActualArgSpec", + "ActualArg": "0x558d739f2300-ActualArg" }, { - "id": "0x55eadb4ae5f0-ActualArg", + "id": "0x558d739f2300-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb4b28d0-Expr" + "Expr": "0x558d739f69a0-Expr" }, { - "id": "0x55eadb4b28d0-Expr", + "id": "0x558d739f69a0-Expr", "variantKey": "Subtract", - "Subtract": "0x55eadb4b28f0-Subtract" + "Subtract": "0x558d739f69c0-Subtract" }, { - "id": "0x55eadb4b28f0-Subtract", - "left": "0x55eadb4b2710-Expr", - "right": "0x55eadb4b2630-Expr", + "id": "0x558d739f69c0-Subtract", + "left": "0x558d739f67e0-Expr", + "right": "0x558d739f6700-Expr", "op": "SUBTRACT" }, { - "id": "0x55eadb4b2710-Expr", + "id": "0x558d739f67e0-Expr", "variantKey": "Add", - "Add": "0x55eadb4b2730-Add" + "Add": "0x558d739f6800-Add" }, { - "id": "0x55eadb4b2730-Add", - "left": "0x55eadb4b0fe0-Expr", - "right": "0x55eadb4b0230-Expr", + "id": "0x558d739f6800-Add", + "left": "0x558d739f5120-Expr", + "right": "0x558d739f4310-Expr", "op": "ADD" }, { - "id": "0x55eadb4b0fe0-Expr", + "id": "0x558d739f5120-Expr", "variantKey": "Parentheses", - "Parentheses": "0x55eadb4b1000-Parentheses" + "Parentheses": "0x558d739f5140-Parentheses" }, { - "id": "0x55eadb4b1000-Parentheses", - "Expr": "0x55eadb4b2550-Expr", + "id": "0x558d739f5140-Parentheses", + "Expr": "0x558d739f6620-Expr", "op": "PARENTHESES" }, { - "id": "0x55eadb4b2550-Expr", + "id": "0x558d739f6620-Expr", "variantKey": "Multiply", - "Multiply": "0x55eadb4b2570-Multiply" + "Multiply": "0x558d739f6640-Multiply" }, { - "id": "0x55eadb4b2570-Multiply", - "left": "0x55eadb4b03f0-Expr", - "right": "0x55eadb4b05b0-Expr", + "id": "0x558d739f6640-Multiply", + "left": "0x558d739f44d0-Expr", + "right": "0x558d739f4690-Expr", "op": "MULTIPLY" }, { - "id": "0x55eadb4b03f0-Expr", + "id": "0x558d739f44d0-Expr", "variantKey": "Parentheses", - "Parentheses": "0x55eadb4b0410-Parentheses" + "Parentheses": "0x558d739f44f0-Parentheses" }, { - "id": "0x55eadb4b0410-Parentheses", - "Expr": "0x55eadb4b04d0-Expr", + "id": "0x558d739f44f0-Parentheses", + "Expr": "0x558d739f45b0-Expr", "op": "PARENTHESES" }, { - "id": "0x55eadb4b04d0-Expr", + "id": "0x558d739f45b0-Expr", "variantKey": "Subtract", - "Subtract": "0x55eadb4b04f0-Subtract" + "Subtract": "0x558d739f45d0-Subtract" }, { - "id": "0x55eadb4b04f0-Subtract", - "left": "0x55eadb4b2400-Expr", - "right": "0x55eadb4b0310-Expr", + "id": "0x558d739f45d0-Subtract", + "left": "0x558d739f64d0-Expr", + "right": "0x558d739f43f0-Expr", "op": "SUBTRACT" }, { - "id": "0x55eadb4b2400-Expr", + "id": "0x558d739f64d0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4acdf0-Designator" + "Designator": "0x558d739ef670-Designator" }, { - "id": "0x55eadb4acdf0-Designator", + "id": "0x558d739ef670-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4ace00-DataRef" + "DataRef": "0x558d739ef680-DataRef" }, { - "id": "0x55eadb4ace00-DataRef", + "id": "0x558d739ef680-DataRef", "variantKey": "Name", - "Name": "0x55eadb4ace00-Name" + "Name": "0x558d739ef680-Name" }, { - "id": "0x55eadb4ace00-Name", + "id": "0x558d739ef680-Name", "source": "i" }, { - "id": "0x55eadb4b0310-Expr", + "id": "0x558d739f43f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4b0330-LiteralConstant" + "LiteralConstant": "0x558d739f4410-LiteralConstant" }, { - "id": "0x55eadb4b0330-LiteralConstant", + "id": "0x558d739f4410-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4b0330-IntLiteralConstant" + "IntLiteralConstant": "0x558d739f4410-IntLiteralConstant" }, { - "id": "0x55eadb4b0330-IntLiteralConstant", + "id": "0x558d739f4410-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55eadb4b05b0-Expr", + "id": "0x558d739f4690-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4a02a0-Designator" + "Designator": "0x558d739dcb80-Designator" }, { - "id": "0x55eadb4a02a0-Designator", + "id": "0x558d739dcb80-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4a02b0-DataRef" + "DataRef": "0x558d739dcb90-DataRef" }, { - "id": "0x55eadb4a02b0-DataRef", + "id": "0x558d739dcb90-DataRef", "variantKey": "Name", - "Name": "0x55eadb4a02b0-Name" + "Name": "0x558d739dcb90-Name" }, { - "id": "0x55eadb4a02b0-Name", + "id": "0x558d739dcb90-Name", "source": "ni" }, { - "id": "0x55eadb4b0230-Expr", + "id": "0x558d739f4310-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4aa170-Designator" + "Designator": "0x558d739f2d90-Designator" }, { - "id": "0x55eadb4aa170-Designator", + "id": "0x558d739f2d90-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4aa180-DataRef" + "DataRef": "0x558d739f2da0-DataRef" }, { - "id": "0x55eadb4aa180-DataRef", + "id": "0x558d739f2da0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4aa180-Name" + "Name": "0x558d739f2da0-Name" }, { - "id": "0x55eadb4aa180-Name", + "id": "0x558d739f2da0-Name", "source": "j" }, { - "id": "0x55eadb4b2630-Expr", + "id": "0x558d739f6700-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4b2650-LiteralConstant" + "LiteralConstant": "0x558d739f6720-LiteralConstant" }, { - "id": "0x55eadb4b2650-LiteralConstant", + "id": "0x558d739f6720-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4b2650-IntLiteralConstant" + "IntLiteralConstant": "0x558d739f6720-IntLiteralConstant" }, { - "id": "0x55eadb4b2650-IntLiteralConstant", + "id": "0x558d739f6720-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55eadb4b1130-ActualArgSpec", - "ActualArg": "0x55eadb4b1130-ActualArg" + "id": "0x558d739f5270-ActualArgSpec", + "ActualArg": "0x558d739f5270-ActualArg" }, { - "id": "0x55eadb4b1130-ActualArg", + "id": "0x558d739f5270-ActualArg", "variantKey": "Expr", - "Expr": "0x55eadb4b29b0-Expr" + "Expr": "0x558d739f6a80-Expr" }, { - "id": "0x55eadb4b29b0-Expr", + "id": "0x558d739f6a80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4b29d0-LiteralConstant" + "LiteralConstant": "0x558d739f6aa0-LiteralConstant" }, { - "id": "0x55eadb4b29d0-LiteralConstant", + "id": "0x558d739f6aa0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4b29d0-IntLiteralConstant" + "IntLiteralConstant": "0x558d739f6aa0-IntLiteralConstant" }, { - "id": "0x55eadb4b29d0-IntLiteralConstant", + "id": "0x558d739f6aa0-IntLiteralConstant", "CharBlock": "20" }, { - "id": "0x55eadb4b2a90-Expr", + "id": "0x558d739f6b60-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4b2ab0-LiteralConstant" + "LiteralConstant": "0x558d739f6b80-LiteralConstant" }, { - "id": "0x55eadb4b2ab0-LiteralConstant", + "id": "0x558d739f6b80-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4b2ab0-IntLiteralConstant" + "IntLiteralConstant": "0x558d739f6b80-IntLiteralConstant" }, { - "id": "0x55eadb4b2ab0-IntLiteralConstant", + "id": "0x558d739f6b80-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55eadb4b3018-ExecutionPartConstruct" + "id": "0x558d739f70e8-ExecutionPartConstruct" }, { - "id": "0x55eadb4a6f30-ExecutionPartConstruct", + "id": "0x558d739e9330-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4a6f30-ExecutableConstruct" + "ExecutableConstruct": "0x558d739e9330-ExecutableConstruct" }, { - "id": "0x55eadb4a6f30-ExecutableConstruct", + "id": "0x558d739e9330-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4a6f30-Statement" + "Statement": "0x558d739e9330-Statement" }, { - "id": "0x55eadb4a6f30-Statement", - "statement": "0x55eadb4a6f40-ActionStmt", + "id": "0x558d739e9330-Statement", + "statement": "0x558d739e9340-ActionStmt", "source": "write(0, *)" }, { - "id": "0x55eadb4a6f40-ActionStmt", + "id": "0x558d739e9340-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x55eadb4b2e10-WriteStmt" + "WriteStmt": "0x558d739f6ee0-WriteStmt" }, { - "id": "0x55eadb4b2e10-WriteStmt", - "iounit": "0x55eadb4b2e10-IoUnit", - "format": "0x55eadb4b2e40-Format", + "id": "0x558d739f6ee0-WriteStmt", + "iounit": "0x558d739f6ee0-IoUnit", + "format": "0x558d739f6f10-Format", "controls": [], "items": [] }, { - "id": "0x55eadb4b2e10-IoUnit", + "id": "0x558d739f6ee0-IoUnit", "variantKey": "Expr", - "Expr": "0x55eadb4b2d30-Expr" + "Expr": "0x558d739f6e00-Expr" }, { - "id": "0x55eadb4b2d30-Expr", + "id": "0x558d739f6e00-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4b2d50-LiteralConstant" + "LiteralConstant": "0x558d739f6e20-LiteralConstant" }, { - "id": "0x55eadb4b2d50-LiteralConstant", + "id": "0x558d739f6e20-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4b2d50-IntLiteralConstant" + "IntLiteralConstant": "0x558d739f6e20-IntLiteralConstant" }, { - "id": "0x55eadb4b2d50-IntLiteralConstant", + "id": "0x558d739f6e20-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55eadb4b2e40-Format", + "id": "0x558d739f6f10-Format", "variantKey": "Star", - "Star": "0x55eadb4b2e40-Star" + "Star": "0x558d739f6f10-Star" }, { - "id": "0x55eadb4b2e40-Star" + "id": "0x558d739f6f10-Star" }, { - "id": "0x55eadb4b2f60-Statement", - "statement": "0x55eadb4b2f70-EndIfStmt", + "id": "0x558d739f7030-Statement", + "statement": "0x558d739f7040-EndIfStmt", "source": "end if" }, { - "id": "0x55eadb4b2f70-EndIfStmt" + "id": "0x558d739f7040-EndIfStmt" }, { - "id": "0x55eadb4b3080-Statement", - "statement": "0x55eadb4b3090-EndDoStmt", + "id": "0x558d739f7150-Statement", + "statement": "0x558d739f7160-EndDoStmt", "source": "end do" }, { - "id": "0x55eadb4b3090-EndDoStmt" + "id": "0x558d739f7160-EndDoStmt" }, { - "id": "0x55eadb4b31a0-Statement", - "statement": "0x55eadb4b31b0-EndDoStmt", + "id": "0x558d739f7270-Statement", + "statement": "0x558d739f7280-EndDoStmt", "source": "end do" }, { - "id": "0x55eadb4b31b0-EndDoStmt" + "id": "0x558d739f7280-EndDoStmt" }, { - "id": "0x55eadb4a56b0-ExecutionPartConstruct", + "id": "0x558d739dbe90-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4a56b0-ExecutableConstruct" + "ExecutableConstruct": "0x558d739dbe90-ExecutableConstruct" }, { - "id": "0x55eadb4a56b0-ExecutableConstruct", + "id": "0x558d739dbe90-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4a56b0-Statement" + "Statement": "0x558d739dbe90-Statement" }, { - "id": "0x55eadb4a56b0-Statement", - "statement": "0x55eadb4a56c0-ActionStmt", + "id": "0x558d739dbe90-Statement", + "statement": "0x558d739dbea0-ActionStmt", "source": "write(0, *)" }, { - "id": "0x55eadb4a56c0-ActionStmt", + "id": "0x558d739dbea0-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x55eadb4b33a0-WriteStmt" + "WriteStmt": "0x558d739f7470-WriteStmt" }, { - "id": "0x55eadb4b33a0-WriteStmt", - "iounit": "0x55eadb4b33a0-IoUnit", - "format": "0x55eadb4b33d0-Format", + "id": "0x558d739f7470-WriteStmt", + "iounit": "0x558d739f7470-IoUnit", + "format": "0x558d739f74a0-Format", "controls": [], "items": [] }, { - "id": "0x55eadb4b33a0-IoUnit", + "id": "0x558d739f7470-IoUnit", "variantKey": "Expr", - "Expr": "0x55eadb4b32c0-Expr" + "Expr": "0x558d739f7390-Expr" }, { - "id": "0x55eadb4b32c0-Expr", + "id": "0x558d739f7390-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4b32e0-LiteralConstant" + "LiteralConstant": "0x558d739f73b0-LiteralConstant" }, { - "id": "0x55eadb4b32e0-LiteralConstant", + "id": "0x558d739f73b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4b32e0-IntLiteralConstant" + "IntLiteralConstant": "0x558d739f73b0-IntLiteralConstant" }, { - "id": "0x55eadb4b32e0-IntLiteralConstant", + "id": "0x558d739f73b0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55eadb4b33d0-Format", + "id": "0x558d739f74a0-Format", "variantKey": "Star", - "Star": "0x55eadb4b33d0-Star" + "Star": "0x558d739f74a0-Star" }, { - "id": "0x55eadb4b33d0-Star" + "id": "0x558d739f74a0-Star" }, { - "id": "0x55eadb4b4660-Statement", - "statement": "0x55eadb4b4670-EndSubroutineStmt", + "id": "0x558d739f8df0-Statement", + "statement": "0x558d739f8e00-EndSubroutineStmt", "source": "end subroutine" }, { - "id": "0x55eadb4b4670-EndSubroutineStmt" + "id": "0x558d739f8e00-EndSubroutineStmt" }, { - "id": "0x55eadb4af2b0-InternalSubprogram", + "id": "0x558d739f9240-InternalSubprogram", "variantKey": "SubroutineSubprogram", - "SubroutineSubprogram": "0x55eadb4bd350-SubroutineSubprogram" + "SubroutineSubprogram": "0x558d73a01620-SubroutineSubprogram" }, { - "id": "0x55eadb4bd350-SubroutineSubprogram", - "Statement": "0x55eadb4bd498-Statement", - "SpecificationPart": "0x55eadb4bd3f0-SpecificationPart", - "ExecutionPart": "0x55eadb4bd3d8-ExecutionPart", - "Statement": "0x55eadb4bd350-Statement" + "id": "0x558d73a01620-SubroutineSubprogram", + "Statement": "0x558d73a01768-Statement", + "SpecificationPart": "0x558d73a016c0-SpecificationPart", + "ExecutionPart": "0x558d73a016a8-ExecutionPart", + "Statement": "0x558d73a01620-Statement" }, { - "id": "0x55eadb4bd498-Statement", - "statement": "0x55eadb4bd4a8-SubroutineStmt", + "id": "0x558d73a01768-Statement", + "statement": "0x558d73a01778-SubroutineStmt", "source": "subroutine kernel_3mm(ni, nj, nk, nl, nm, e, a, b, f, c, d, g)" }, { - "id": "0x55eadb4bd4a8-SubroutineStmt", - "Name": "0x55eadb4bd4e0-Name", + "id": "0x558d73a01778-SubroutineStmt", + "Name": "0x558d73a017b0-Name", "DummyArg": [ - "0x55eadb4ab570-DummyArg", - "0x55eadb496960-DummyArg", - "0x55eadb4969d0-DummyArg", - "0x55eadb496a10-DummyArg", - "0x55eadb496a50-DummyArg", - "0x55eadb49fc30-DummyArg", - "0x55eadb498fe0-DummyArg", - "0x55eadb4a5ad0-DummyArg", - "0x55eadb4a62e0-DummyArg", - "0x55eadb4a6580-DummyArg", - "0x55eadb4966f0-DummyArg", - "0x55eadb496d60-DummyArg" + "0x558d739dacb0-DummyArg", + "0x558d739da8b0-DummyArg", + "0x558d739da920-DummyArg", + "0x558d739da960-DummyArg", + "0x558d739da9a0-DummyArg", + "0x558d739ef540-DummyArg", + "0x558d739e3e70-DummyArg", + "0x558d739e3f30-DummyArg", + "0x558d739dcf70-DummyArg", + "0x558d739e9a20-DummyArg", + "0x558d739da440-DummyArg", + "0x558d739da640-DummyArg" ] }, { - "id": "0x55eadb4bd4e0-Name", + "id": "0x558d73a017b0-Name", "source": "kernel_3mm" }, { - "id": "0x55eadb4ab570-DummyArg", + "id": "0x558d739dacb0-DummyArg", "variantKey": "Name", - "Name": "0x55eadb4ab570-Name" + "Name": "0x558d739dacb0-Name" }, { - "id": "0x55eadb4ab570-Name", + "id": "0x558d739dacb0-Name", "source": "ni" }, { - "id": "0x55eadb496960-DummyArg", + "id": "0x558d739da8b0-DummyArg", "variantKey": "Name", - "Name": "0x55eadb496960-Name" + "Name": "0x558d739da8b0-Name" }, { - "id": "0x55eadb496960-Name", + "id": "0x558d739da8b0-Name", "source": "nj" }, { - "id": "0x55eadb4969d0-DummyArg", + "id": "0x558d739da920-DummyArg", "variantKey": "Name", - "Name": "0x55eadb4969d0-Name" + "Name": "0x558d739da920-Name" }, { - "id": "0x55eadb4969d0-Name", + "id": "0x558d739da920-Name", "source": "nk" }, { - "id": "0x55eadb496a10-DummyArg", + "id": "0x558d739da960-DummyArg", "variantKey": "Name", - "Name": "0x55eadb496a10-Name" + "Name": "0x558d739da960-Name" }, { - "id": "0x55eadb496a10-Name", + "id": "0x558d739da960-Name", "source": "nl" }, { - "id": "0x55eadb496a50-DummyArg", + "id": "0x558d739da9a0-DummyArg", "variantKey": "Name", - "Name": "0x55eadb496a50-Name" + "Name": "0x558d739da9a0-Name" }, { - "id": "0x55eadb496a50-Name", + "id": "0x558d739da9a0-Name", "source": "nm" }, { - "id": "0x55eadb49fc30-DummyArg", + "id": "0x558d739ef540-DummyArg", "variantKey": "Name", - "Name": "0x55eadb49fc30-Name" + "Name": "0x558d739ef540-Name" }, { - "id": "0x55eadb49fc30-Name", + "id": "0x558d739ef540-Name", "source": "e" }, { - "id": "0x55eadb498fe0-DummyArg", + "id": "0x558d739e3e70-DummyArg", "variantKey": "Name", - "Name": "0x55eadb498fe0-Name" + "Name": "0x558d739e3e70-Name" }, { - "id": "0x55eadb498fe0-Name", + "id": "0x558d739e3e70-Name", "source": "a" }, { - "id": "0x55eadb4a5ad0-DummyArg", + "id": "0x558d739e3f30-DummyArg", "variantKey": "Name", - "Name": "0x55eadb4a5ad0-Name" + "Name": "0x558d739e3f30-Name" }, { - "id": "0x55eadb4a5ad0-Name", + "id": "0x558d739e3f30-Name", "source": "b" }, { - "id": "0x55eadb4a62e0-DummyArg", + "id": "0x558d739dcf70-DummyArg", "variantKey": "Name", - "Name": "0x55eadb4a62e0-Name" + "Name": "0x558d739dcf70-Name" }, { - "id": "0x55eadb4a62e0-Name", + "id": "0x558d739dcf70-Name", "source": "f" }, { - "id": "0x55eadb4a6580-DummyArg", + "id": "0x558d739e9a20-DummyArg", "variantKey": "Name", - "Name": "0x55eadb4a6580-Name" + "Name": "0x558d739e9a20-Name" }, { - "id": "0x55eadb4a6580-Name", + "id": "0x558d739e9a20-Name", "source": "c" }, { - "id": "0x55eadb4966f0-DummyArg", + "id": "0x558d739da440-DummyArg", "variantKey": "Name", - "Name": "0x55eadb4966f0-Name" + "Name": "0x558d739da440-Name" }, { - "id": "0x55eadb4966f0-Name", + "id": "0x558d739da440-Name", "source": "d" }, { - "id": "0x55eadb496d60-DummyArg", + "id": "0x558d739da640-DummyArg", "variantKey": "Name", - "Name": "0x55eadb496d60-Name" + "Name": "0x558d739da640-Name" }, { - "id": "0x55eadb496d60-Name", + "id": "0x558d739da640-Name", "source": "g" }, { - "id": "0x55eadb4bd3f0-SpecificationPart", - "ImplicitPart": "0x55eadb4bd408-ImplicitPart", + "id": "0x558d73a016c0-SpecificationPart", + "ImplicitPart": "0x558d73a016d8-ImplicitPart", "DeclarationConstruct": [ - "0x55eadb4ad270-DeclarationConstruct", - "0x55eadb4a6ab0-DeclarationConstruct", - "0x55eadb4b3680-DeclarationConstruct", - "0x55eadb4b3ab0-DeclarationConstruct", - "0x55eadb4b3ee0-DeclarationConstruct", - "0x55eadb4b4310-DeclarationConstruct", - "0x55eadb4b2800-DeclarationConstruct", - "0x55eadb4b1240-DeclarationConstruct", - "0x55eadb4aa370-DeclarationConstruct" + "0x558d739da720-DeclarationConstruct", + "0x558d739ea740-DeclarationConstruct", + "0x558d739f7df0-DeclarationConstruct", + "0x558d739f8220-DeclarationConstruct", + "0x558d739f8650-DeclarationConstruct", + "0x558d739f8a80-DeclarationConstruct", + "0x558d739f91e0-DeclarationConstruct", + "0x558d739eda60-DeclarationConstruct", + "0x558d739f5380-DeclarationConstruct" ] }, { - "id": "0x55eadb4bd408-ImplicitPart" + "id": "0x558d73a016d8-ImplicitPart" }, { - "id": "0x55eadb4ad270-DeclarationConstruct", + "id": "0x558d739da720-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55eadb4ad270-SpecificationConstruct" + "SpecificationConstruct": "0x558d739da720-SpecificationConstruct" }, { - "id": "0x55eadb4ad270-SpecificationConstruct", + "id": "0x558d739da720-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4ad270-Statement" + "Statement": "0x558d739da720-Statement" }, { - "id": "0x55eadb4ad270-Statement", - "statement": "0x55eadb4af0b0-TypeDeclarationStmt", + "id": "0x558d739da720-Statement", + "statement": "0x558d739f32a0-TypeDeclarationStmt", "source": "double precision, dimension(nk, ni) :: a" }, { - "id": "0x55eadb4af0b0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55eadb4af0e0-DeclarationTypeSpec", + "id": "0x558d739f32a0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558d739f32d0-DeclarationTypeSpec", "AttrSpec": [ - "0x55eadb4935b0-AttrSpec" + "0x558d739d80d0-AttrSpec" ], "EntityDecl": [ - "0x55eadb4b4f80-EntityDecl" + "0x558d739f7740-EntityDecl" ] }, { - "id": "0x55eadb4af0e0-DeclarationTypeSpec", + "id": "0x558d739f32d0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55eadb4af0e0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x558d739f32d0-IntrinsicTypeSpec" }, { - "id": "0x55eadb4af0e0-IntrinsicTypeSpec", + "id": "0x558d739f32d0-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x55eadb4af0e0-DoublePrecision" + "DoublePrecision": "0x558d739f32d0-DoublePrecision" }, { - "id": "0x55eadb4af0e0-DoublePrecision" + "id": "0x558d739f32d0-DoublePrecision" }, { - "id": "0x55eadb4935b0-AttrSpec", + "id": "0x558d739d80d0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x55eadb4935b0-ArraySpec" + "ArraySpec": "0x558d739d80d0-ArraySpec" }, { - "id": "0x55eadb4935b0-ArraySpec", + "id": "0x558d739d80d0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55eadb48dce0-ExplicitShapeSpec", - "0x55eadb48dc50-ExplicitShapeSpec" + "0x558d739de290-ExplicitShapeSpec", + "0x558d739ea2a0-ExplicitShapeSpec" ] }, { - "id": "0x55eadb48dce0-ExplicitShapeSpec", - "upper_bound": "0x55eadb48dce0-SpecificationExpr" + "id": "0x558d739de290-ExplicitShapeSpec", + "upper_bound": "0x558d739de290-SpecificationExpr" }, { - "id": "0x55eadb48dce0-SpecificationExpr", - "Expr": "0x55eadb4b4db0-Expr" + "id": "0x558d739de290-SpecificationExpr", + "Expr": "0x558d739f8fd0-Expr" }, { - "id": "0x55eadb4b4db0-Expr", + "id": "0x558d739f8fd0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4ab9a0-Designator" + "Designator": "0x558d739cd030-Designator" }, { - "id": "0x55eadb4ab9a0-Designator", + "id": "0x558d739cd030-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4ab9b0-DataRef" + "DataRef": "0x558d739cd040-DataRef" }, { - "id": "0x55eadb4ab9b0-DataRef", + "id": "0x558d739cd040-DataRef", "variantKey": "Name", - "Name": "0x55eadb4ab9b0-Name" + "Name": "0x558d739cd040-Name" }, { - "id": "0x55eadb4ab9b0-Name", + "id": "0x558d739cd040-Name", "source": "nk" }, { - "id": "0x55eadb48dc50-ExplicitShapeSpec", - "upper_bound": "0x55eadb48dc50-SpecificationExpr" + "id": "0x558d739ea2a0-ExplicitShapeSpec", + "upper_bound": "0x558d739ea2a0-SpecificationExpr" }, { - "id": "0x55eadb48dc50-SpecificationExpr", - "Expr": "0x55eadb4b4e90-Expr" + "id": "0x558d739ea2a0-SpecificationExpr", + "Expr": "0x558d739f7650-Expr" }, { - "id": "0x55eadb4b4e90-Expr", + "id": "0x558d739f7650-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b10c0-Designator" + "Designator": "0x558d739f5200-Designator" }, { - "id": "0x55eadb4b10c0-Designator", + "id": "0x558d739f5200-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b10d0-DataRef" + "DataRef": "0x558d739f5210-DataRef" }, { - "id": "0x55eadb4b10d0-DataRef", + "id": "0x558d739f5210-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b10d0-Name" + "Name": "0x558d739f5210-Name" }, { - "id": "0x55eadb4b10d0-Name", + "id": "0x558d739f5210-Name", "source": "ni" }, { - "id": "0x55eadb4b4f80-EntityDecl", - "Name": "0x55eadb4b5038-Name" + "id": "0x558d739f7740-EntityDecl", + "Name": "0x558d739f77f8-Name" }, { - "id": "0x55eadb4b5038-Name", + "id": "0x558d739f77f8-Name", "source": "a" }, { - "id": "0x55eadb4a6ab0-DeclarationConstruct", + "id": "0x558d739ea740-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55eadb4a6ab0-SpecificationConstruct" + "SpecificationConstruct": "0x558d739ea740-SpecificationConstruct" }, { - "id": "0x55eadb4a6ab0-SpecificationConstruct", + "id": "0x558d739ea740-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4a6ab0-Statement" + "Statement": "0x558d739ea740-Statement" }, { - "id": "0x55eadb4a6ab0-Statement", - "statement": "0x55eadb49fd80-TypeDeclarationStmt", + "id": "0x558d739ea740-Statement", + "statement": "0x558d739f3ab0-TypeDeclarationStmt", "source": "double precision, dimension(nj, nk) :: b" }, { - "id": "0x55eadb49fd80-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55eadb49fdb0-DeclarationTypeSpec", + "id": "0x558d739f3ab0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558d739f3ae0-DeclarationTypeSpec", "AttrSpec": [ - "0x55eadb4a7670-AttrSpec" + "0x558d739da3a0-AttrSpec" ], "EntityDecl": [ - "0x55eadb4b4a10-EntityDecl" + "0x558d739f79f0-EntityDecl" ] }, { - "id": "0x55eadb49fdb0-DeclarationTypeSpec", + "id": "0x558d739f3ae0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55eadb49fdb0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x558d739f3ae0-IntrinsicTypeSpec" }, { - "id": "0x55eadb49fdb0-IntrinsicTypeSpec", + "id": "0x558d739f3ae0-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x55eadb49fdb0-DoublePrecision" + "DoublePrecision": "0x558d739f3ae0-DoublePrecision" }, { - "id": "0x55eadb49fdb0-DoublePrecision" + "id": "0x558d739f3ae0-DoublePrecision" }, { - "id": "0x55eadb4a7670-AttrSpec", + "id": "0x558d739da3a0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x55eadb4a7670-ArraySpec" + "ArraySpec": "0x558d739da3a0-ArraySpec" }, { - "id": "0x55eadb4a7670-ArraySpec", + "id": "0x558d739da3a0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55eadb4aa3d0-ExplicitShapeSpec", - "0x55eadb49fd60-ExplicitShapeSpec" + "0x558d739f2630-ExplicitShapeSpec", + "0x558d7395b360-ExplicitShapeSpec" ] }, { - "id": "0x55eadb4aa3d0-ExplicitShapeSpec", - "upper_bound": "0x55eadb4aa3d0-SpecificationExpr" + "id": "0x558d739f2630-ExplicitShapeSpec", + "upper_bound": "0x558d739f2630-SpecificationExpr" }, { - "id": "0x55eadb4aa3d0-SpecificationExpr", - "Expr": "0x55eadb4b4840-Expr" + "id": "0x558d739f2630-SpecificationExpr", + "Expr": "0x558d739f7820-Expr" }, { - "id": "0x55eadb4b4840-Expr", + "id": "0x558d739f7820-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4ae7f0-Designator" + "Designator": "0x558d739f2560-Designator" }, { - "id": "0x55eadb4ae7f0-Designator", + "id": "0x558d739f2560-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4ae800-DataRef" + "DataRef": "0x558d739f2570-DataRef" }, { - "id": "0x55eadb4ae800-DataRef", + "id": "0x558d739f2570-DataRef", "variantKey": "Name", - "Name": "0x55eadb4ae800-Name" + "Name": "0x558d739f2570-Name" }, { - "id": "0x55eadb4ae800-Name", + "id": "0x558d739f2570-Name", "source": "nj" }, { - "id": "0x55eadb49fd60-ExplicitShapeSpec", - "upper_bound": "0x55eadb49fd60-SpecificationExpr" + "id": "0x558d7395b360-ExplicitShapeSpec", + "upper_bound": "0x558d7395b360-SpecificationExpr" }, { - "id": "0x55eadb49fd60-SpecificationExpr", - "Expr": "0x55eadb4b4920-Expr" + "id": "0x558d7395b360-SpecificationExpr", + "Expr": "0x558d739f7900-Expr" }, { - "id": "0x55eadb4b4920-Expr", + "id": "0x558d739f7900-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b0dc0-Designator" + "Designator": "0x558d739f4f00-Designator" }, { - "id": "0x55eadb4b0dc0-Designator", + "id": "0x558d739f4f00-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b0dd0-DataRef" + "DataRef": "0x558d739f4f10-DataRef" }, { - "id": "0x55eadb4b0dd0-DataRef", + "id": "0x558d739f4f10-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b0dd0-Name" + "Name": "0x558d739f4f10-Name" }, { - "id": "0x55eadb4b0dd0-Name", + "id": "0x558d739f4f10-Name", "source": "nk" }, { - "id": "0x55eadb4b4a10-EntityDecl", - "Name": "0x55eadb4b4ac8-Name" + "id": "0x558d739f79f0-EntityDecl", + "Name": "0x558d739f7aa8-Name" }, { - "id": "0x55eadb4b4ac8-Name", + "id": "0x558d739f7aa8-Name", "source": "b" }, { - "id": "0x55eadb4b3680-DeclarationConstruct", + "id": "0x558d739f7df0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55eadb4b3680-SpecificationConstruct" + "SpecificationConstruct": "0x558d739f7df0-SpecificationConstruct" }, { - "id": "0x55eadb4b3680-SpecificationConstruct", + "id": "0x558d739f7df0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4b3680-Statement" + "Statement": "0x558d739f7df0-Statement" }, { - "id": "0x55eadb4b3680-Statement", - "statement": "0x55eadb4aa2e0-TypeDeclarationStmt", + "id": "0x558d739f7df0-Statement", + "statement": "0x558d739ee2b0-TypeDeclarationStmt", "source": "double precision, dimension(nm, nj) :: c" }, { - "id": "0x55eadb4aa2e0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55eadb4aa310-DeclarationTypeSpec", + "id": "0x558d739ee2b0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558d739ee2e0-DeclarationTypeSpec", "AttrSpec": [ - "0x55eadb4a5710-AttrSpec" + "0x558d739dbef0-AttrSpec" ], "EntityDecl": [ - "0x55eadb4b3590-EntityDecl" + "0x558d739f7d00-EntityDecl" ] }, { - "id": "0x55eadb4aa310-DeclarationTypeSpec", + "id": "0x558d739ee2e0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55eadb4aa310-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x558d739ee2e0-IntrinsicTypeSpec" }, { - "id": "0x55eadb4aa310-IntrinsicTypeSpec", + "id": "0x558d739ee2e0-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x55eadb4aa310-DoublePrecision" + "DoublePrecision": "0x558d739ee2e0-DoublePrecision" }, { - "id": "0x55eadb4aa310-DoublePrecision" + "id": "0x558d739ee2e0-DoublePrecision" }, { - "id": "0x55eadb4a5710-AttrSpec", + "id": "0x558d739dbef0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x55eadb4a5710-ArraySpec" + "ArraySpec": "0x558d739dbef0-ArraySpec" }, { - "id": "0x55eadb4a5710-ArraySpec", + "id": "0x558d739dbef0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55eadb4b4cc0-ExplicitShapeSpec", - "0x55eadb4afe70-ExplicitShapeSpec" + "0x558d739f18b0-ExplicitShapeSpec", + "0x558d739ef6e0-ExplicitShapeSpec" ] }, { - "id": "0x55eadb4b4cc0-ExplicitShapeSpec", - "upper_bound": "0x55eadb4b4cc0-SpecificationExpr" + "id": "0x558d739f18b0-ExplicitShapeSpec", + "upper_bound": "0x558d739f18b0-SpecificationExpr" }, { - "id": "0x55eadb4b4cc0-SpecificationExpr", - "Expr": "0x55eadb4b4af0-Expr" + "id": "0x558d739f18b0-SpecificationExpr", + "Expr": "0x558d739f7ad0-Expr" }, { - "id": "0x55eadb4b4af0-Expr", + "id": "0x558d739f7ad0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4ae850-Designator" + "Designator": "0x558d739f25c0-Designator" }, { - "id": "0x55eadb4ae850-Designator", + "id": "0x558d739f25c0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4ae860-DataRef" + "DataRef": "0x558d739f25d0-DataRef" }, { - "id": "0x55eadb4ae860-DataRef", + "id": "0x558d739f25d0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4ae860-Name" + "Name": "0x558d739f25d0-Name" }, { - "id": "0x55eadb4ae860-Name", + "id": "0x558d739f25d0-Name", "source": "nm" }, { - "id": "0x55eadb4afe70-ExplicitShapeSpec", - "upper_bound": "0x55eadb4afe70-SpecificationExpr" + "id": "0x558d739ef6e0-ExplicitShapeSpec", + "upper_bound": "0x558d739ef6e0-SpecificationExpr" }, { - "id": "0x55eadb4afe70-SpecificationExpr", - "Expr": "0x55eadb4b4bd0-Expr" + "id": "0x558d739ef6e0-SpecificationExpr", + "Expr": "0x558d739f7c10-Expr" }, { - "id": "0x55eadb4b4bd0-Expr", + "id": "0x558d739f7c10-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4a59d0-Designator" + "Designator": "0x558d739f7bb0-Designator" }, { - "id": "0x55eadb4a59d0-Designator", + "id": "0x558d739f7bb0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4a59e0-DataRef" + "DataRef": "0x558d739f7bc0-DataRef" }, { - "id": "0x55eadb4a59e0-DataRef", + "id": "0x558d739f7bc0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4a59e0-Name" + "Name": "0x558d739f7bc0-Name" }, { - "id": "0x55eadb4a59e0-Name", + "id": "0x558d739f7bc0-Name", "source": "nj" }, { - "id": "0x55eadb4b3590-EntityDecl", - "Name": "0x55eadb4b3648-Name" + "id": "0x558d739f7d00-EntityDecl", + "Name": "0x558d739f7db8-Name" }, { - "id": "0x55eadb4b3648-Name", + "id": "0x558d739f7db8-Name", "source": "c" }, { - "id": "0x55eadb4b3ab0-DeclarationConstruct", + "id": "0x558d739f8220-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55eadb4b3ab0-SpecificationConstruct" + "SpecificationConstruct": "0x558d739f8220-SpecificationConstruct" }, { - "id": "0x55eadb4b3ab0-SpecificationConstruct", + "id": "0x558d739f8220-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4b3ab0-Statement" + "Statement": "0x558d739f8220-Statement" }, { - "id": "0x55eadb4b3ab0-Statement", - "statement": "0x55eadb493370-TypeDeclarationStmt", + "id": "0x558d739f8220-Statement", + "statement": "0x558d739f3c40-TypeDeclarationStmt", "source": "double precision, dimension(nl, nm) :: d" }, { - "id": "0x55eadb493370-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55eadb4933a0-DeclarationTypeSpec", + "id": "0x558d739f3c40-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558d739f3c70-DeclarationTypeSpec", "AttrSpec": [ - "0x55eadb4a9c40-AttrSpec" + "0x558d739ef9f0-AttrSpec" ], "EntityDecl": [ - "0x55eadb4b39c0-EntityDecl" + "0x558d739f8130-EntityDecl" ] }, { - "id": "0x55eadb4933a0-DeclarationTypeSpec", + "id": "0x558d739f3c70-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55eadb4933a0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x558d739f3c70-IntrinsicTypeSpec" }, { - "id": "0x55eadb4933a0-IntrinsicTypeSpec", + "id": "0x558d739f3c70-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x55eadb4933a0-DoublePrecision" + "DoublePrecision": "0x558d739f3c70-DoublePrecision" }, { - "id": "0x55eadb4933a0-DoublePrecision" + "id": "0x558d739f3c70-DoublePrecision" }, { - "id": "0x55eadb4a9c40-AttrSpec", + "id": "0x558d739ef9f0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x55eadb4a9c40-ArraySpec" + "ArraySpec": "0x558d739ef9f0-ArraySpec" }, { - "id": "0x55eadb4a9c40-ArraySpec", + "id": "0x558d739ef9f0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55eadb4b3990-ExplicitShapeSpec", - "0x55eadb4b3960-ExplicitShapeSpec" + "0x558d739f8100-ExplicitShapeSpec", + "0x558d739f80d0-ExplicitShapeSpec" ] }, { - "id": "0x55eadb4b3990-ExplicitShapeSpec", - "upper_bound": "0x55eadb4b3990-SpecificationExpr" + "id": "0x558d739f8100-ExplicitShapeSpec", + "upper_bound": "0x558d739f8100-SpecificationExpr" }, { - "id": "0x55eadb4b3990-SpecificationExpr", - "Expr": "0x55eadb4b36d0-Expr" + "id": "0x558d739f8100-SpecificationExpr", + "Expr": "0x558d739f7e40-Expr" }, { - "id": "0x55eadb4b36d0-Expr", + "id": "0x558d739f7e40-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4a5eb0-Designator" + "Designator": "0x558d739f10c0-Designator" }, { - "id": "0x55eadb4a5eb0-Designator", + "id": "0x558d739f10c0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4a5ec0-DataRef" + "DataRef": "0x558d739f10d0-DataRef" }, { - "id": "0x55eadb4a5ec0-DataRef", + "id": "0x558d739f10d0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4a5ec0-Name" + "Name": "0x558d739f10d0-Name" }, { - "id": "0x55eadb4a5ec0-Name", + "id": "0x558d739f10d0-Name", "source": "nl" }, { - "id": "0x55eadb4b3960-ExplicitShapeSpec", - "upper_bound": "0x55eadb4b3960-SpecificationExpr" + "id": "0x558d739f80d0-ExplicitShapeSpec", + "upper_bound": "0x558d739f80d0-SpecificationExpr" }, { - "id": "0x55eadb4b3960-SpecificationExpr", - "Expr": "0x55eadb4b3870-Expr" + "id": "0x558d739f80d0-SpecificationExpr", + "Expr": "0x558d739f7fe0-Expr" }, { - "id": "0x55eadb4b3870-Expr", + "id": "0x558d739f7fe0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b3810-Designator" + "Designator": "0x558d739f7f80-Designator" }, { - "id": "0x55eadb4b3810-Designator", + "id": "0x558d739f7f80-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b3820-DataRef" + "DataRef": "0x558d739f7f90-DataRef" }, { - "id": "0x55eadb4b3820-DataRef", + "id": "0x558d739f7f90-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b3820-Name" + "Name": "0x558d739f7f90-Name" }, { - "id": "0x55eadb4b3820-Name", + "id": "0x558d739f7f90-Name", "source": "nm" }, { - "id": "0x55eadb4b39c0-EntityDecl", - "Name": "0x55eadb4b3a78-Name" + "id": "0x558d739f8130-EntityDecl", + "Name": "0x558d739f81e8-Name" }, { - "id": "0x55eadb4b3a78-Name", + "id": "0x558d739f81e8-Name", "source": "d" }, { - "id": "0x55eadb4b3ee0-DeclarationConstruct", + "id": "0x558d739f8650-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55eadb4b3ee0-SpecificationConstruct" + "SpecificationConstruct": "0x558d739f8650-SpecificationConstruct" }, { - "id": "0x55eadb4b3ee0-SpecificationConstruct", + "id": "0x558d739f8650-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4b3ee0-Statement" + "Statement": "0x558d739f8650-Statement" }, { - "id": "0x55eadb4b3ee0-Statement", - "statement": "0x55eadb4963d0-TypeDeclarationStmt", + "id": "0x558d739f8650-Statement", + "statement": "0x558d739ef350-TypeDeclarationStmt", "source": "double precision, dimension(nj, ni) :: e" }, { - "id": "0x55eadb4963d0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55eadb496400-DeclarationTypeSpec", + "id": "0x558d739ef350-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558d739ef380-DeclarationTypeSpec", "AttrSpec": [ - "0x55eadb49f860-AttrSpec" + "0x558d739da780-AttrSpec" ], "EntityDecl": [ - "0x55eadb4b3df0-EntityDecl" + "0x558d739f8560-EntityDecl" ] }, { - "id": "0x55eadb496400-DeclarationTypeSpec", + "id": "0x558d739ef380-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55eadb496400-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x558d739ef380-IntrinsicTypeSpec" }, { - "id": "0x55eadb496400-IntrinsicTypeSpec", + "id": "0x558d739ef380-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x55eadb496400-DoublePrecision" + "DoublePrecision": "0x558d739ef380-DoublePrecision" }, { - "id": "0x55eadb496400-DoublePrecision" + "id": "0x558d739ef380-DoublePrecision" }, { - "id": "0x55eadb49f860-AttrSpec", + "id": "0x558d739da780-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x55eadb49f860-ArraySpec" + "ArraySpec": "0x558d739da780-ArraySpec" }, { - "id": "0x55eadb49f860-ArraySpec", + "id": "0x558d739da780-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55eadb4b3dc0-ExplicitShapeSpec", - "0x55eadb4b3d90-ExplicitShapeSpec" + "0x558d739f8530-ExplicitShapeSpec", + "0x558d739f8500-ExplicitShapeSpec" ] }, { - "id": "0x55eadb4b3dc0-ExplicitShapeSpec", - "upper_bound": "0x55eadb4b3dc0-SpecificationExpr" + "id": "0x558d739f8530-ExplicitShapeSpec", + "upper_bound": "0x558d739f8530-SpecificationExpr" }, { - "id": "0x55eadb4b3dc0-SpecificationExpr", - "Expr": "0x55eadb4b3b00-Expr" + "id": "0x558d739f8530-SpecificationExpr", + "Expr": "0x558d739f8270-Expr" }, { - "id": "0x55eadb4b3b00-Expr", + "id": "0x558d739f8270-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b1290-Designator" + "Designator": "0x558d739e3b30-Designator" }, { - "id": "0x55eadb4b1290-Designator", + "id": "0x558d739e3b30-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b12a0-DataRef" + "DataRef": "0x558d739e3b40-DataRef" }, { - "id": "0x55eadb4b12a0-DataRef", + "id": "0x558d739e3b40-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b12a0-Name" + "Name": "0x558d739e3b40-Name" }, { - "id": "0x55eadb4b12a0-Name", + "id": "0x558d739e3b40-Name", "source": "nj" }, { - "id": "0x55eadb4b3d90-ExplicitShapeSpec", - "upper_bound": "0x55eadb4b3d90-SpecificationExpr" + "id": "0x558d739f8500-ExplicitShapeSpec", + "upper_bound": "0x558d739f8500-SpecificationExpr" }, { - "id": "0x55eadb4b3d90-SpecificationExpr", - "Expr": "0x55eadb4b3ca0-Expr" + "id": "0x558d739f8500-SpecificationExpr", + "Expr": "0x558d739f8410-Expr" }, { - "id": "0x55eadb4b3ca0-Expr", + "id": "0x558d739f8410-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b3c40-Designator" + "Designator": "0x558d739f83b0-Designator" }, { - "id": "0x55eadb4b3c40-Designator", + "id": "0x558d739f83b0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b3c50-DataRef" + "DataRef": "0x558d739f83c0-DataRef" }, { - "id": "0x55eadb4b3c50-DataRef", + "id": "0x558d739f83c0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b3c50-Name" + "Name": "0x558d739f83c0-Name" }, { - "id": "0x55eadb4b3c50-Name", + "id": "0x558d739f83c0-Name", "source": "ni" }, { - "id": "0x55eadb4b3df0-EntityDecl", - "Name": "0x55eadb4b3ea8-Name" + "id": "0x558d739f8560-EntityDecl", + "Name": "0x558d739f8618-Name" }, { - "id": "0x55eadb4b3ea8-Name", + "id": "0x558d739f8618-Name", "source": "e" }, { - "id": "0x55eadb4b4310-DeclarationConstruct", + "id": "0x558d739f8a80-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55eadb4b4310-SpecificationConstruct" + "SpecificationConstruct": "0x558d739f8a80-SpecificationConstruct" }, { - "id": "0x55eadb4b4310-SpecificationConstruct", + "id": "0x558d739f8a80-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4b4310-Statement" + "Statement": "0x558d739f8a80-Statement" }, { - "id": "0x55eadb4b4310-Statement", - "statement": "0x55eadb4afd80-TypeDeclarationStmt", + "id": "0x558d739f8a80-Statement", + "statement": "0x558d739f3e60-TypeDeclarationStmt", "source": "double precision, dimension(nl, nj) :: f" }, { - "id": "0x55eadb4afd80-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55eadb4afdb0-DeclarationTypeSpec", + "id": "0x558d739f3e60-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558d739f3e90-DeclarationTypeSpec", "AttrSpec": [ - "0x55eadb48d6a0-AttrSpec" + "0x558d739e37f0-AttrSpec" ], "EntityDecl": [ - "0x55eadb4b4220-EntityDecl" + "0x558d739f8990-EntityDecl" ] }, { - "id": "0x55eadb4afdb0-DeclarationTypeSpec", + "id": "0x558d739f3e90-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55eadb4afdb0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x558d739f3e90-IntrinsicTypeSpec" }, { - "id": "0x55eadb4afdb0-IntrinsicTypeSpec", + "id": "0x558d739f3e90-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x55eadb4afdb0-DoublePrecision" + "DoublePrecision": "0x558d739f3e90-DoublePrecision" }, { - "id": "0x55eadb4afdb0-DoublePrecision" + "id": "0x558d739f3e90-DoublePrecision" }, { - "id": "0x55eadb48d6a0-AttrSpec", + "id": "0x558d739e37f0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x55eadb48d6a0-ArraySpec" + "ArraySpec": "0x558d739e37f0-ArraySpec" }, { - "id": "0x55eadb48d6a0-ArraySpec", + "id": "0x558d739e37f0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55eadb4b41f0-ExplicitShapeSpec", - "0x55eadb4b41c0-ExplicitShapeSpec" + "0x558d739f8960-ExplicitShapeSpec", + "0x558d739f8930-ExplicitShapeSpec" ] }, { - "id": "0x55eadb4b41f0-ExplicitShapeSpec", - "upper_bound": "0x55eadb4b41f0-SpecificationExpr" + "id": "0x558d739f8960-ExplicitShapeSpec", + "upper_bound": "0x558d739f8960-SpecificationExpr" }, { - "id": "0x55eadb4b41f0-SpecificationExpr", - "Expr": "0x55eadb4b3f30-Expr" + "id": "0x558d739f8960-SpecificationExpr", + "Expr": "0x558d739f86a0-Expr" }, { - "id": "0x55eadb4b3f30-Expr", + "id": "0x558d739f86a0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b37b0-Designator" + "Designator": "0x558d739f7f20-Designator" }, { - "id": "0x55eadb4b37b0-Designator", + "id": "0x558d739f7f20-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b37c0-DataRef" + "DataRef": "0x558d739f7f30-DataRef" }, { - "id": "0x55eadb4b37c0-DataRef", + "id": "0x558d739f7f30-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b37c0-Name" + "Name": "0x558d739f7f30-Name" }, { - "id": "0x55eadb4b37c0-Name", + "id": "0x558d739f7f30-Name", "source": "nl" }, { - "id": "0x55eadb4b41c0-ExplicitShapeSpec", - "upper_bound": "0x55eadb4b41c0-SpecificationExpr" + "id": "0x558d739f8930-ExplicitShapeSpec", + "upper_bound": "0x558d739f8930-SpecificationExpr" }, { - "id": "0x55eadb4b41c0-SpecificationExpr", - "Expr": "0x55eadb4b40d0-Expr" + "id": "0x558d739f8930-SpecificationExpr", + "Expr": "0x558d739f8840-Expr" }, { - "id": "0x55eadb4b40d0-Expr", + "id": "0x558d739f8840-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b4070-Designator" + "Designator": "0x558d739f87e0-Designator" }, { - "id": "0x55eadb4b4070-Designator", + "id": "0x558d739f87e0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b4080-DataRef" + "DataRef": "0x558d739f87f0-DataRef" }, { - "id": "0x55eadb4b4080-DataRef", + "id": "0x558d739f87f0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b4080-Name" + "Name": "0x558d739f87f0-Name" }, { - "id": "0x55eadb4b4080-Name", + "id": "0x558d739f87f0-Name", "source": "nj" }, { - "id": "0x55eadb4b4220-EntityDecl", - "Name": "0x55eadb4b42d8-Name" + "id": "0x558d739f8990-EntityDecl", + "Name": "0x558d739f8a48-Name" }, { - "id": "0x55eadb4b42d8-Name", + "id": "0x558d739f8a48-Name", "source": "f" }, { - "id": "0x55eadb4b2800-DeclarationConstruct", + "id": "0x558d739f91e0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55eadb4b2800-SpecificationConstruct" + "SpecificationConstruct": "0x558d739f91e0-SpecificationConstruct" }, { - "id": "0x55eadb4b2800-SpecificationConstruct", + "id": "0x558d739f91e0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4b2800-Statement" + "Statement": "0x558d739f91e0-Statement" }, { - "id": "0x55eadb4b2800-Statement", - "statement": "0x55eadb4afe90-TypeDeclarationStmt", + "id": "0x558d739f91e0-Statement", + "statement": "0x558d739f3f70-TypeDeclarationStmt", "source": "double precision, dimension(nl, ni) :: g" }, { - "id": "0x55eadb4afe90-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55eadb4afec0-DeclarationTypeSpec", + "id": "0x558d739f3f70-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558d739f3fa0-DeclarationTypeSpec", "AttrSpec": [ - "0x55eadb493bf0-AttrSpec" + "0x558d739d8710-AttrSpec" ], "EntityDecl": [ - "0x55eadb4b52b0-EntityDecl" + "0x558d739f94e0-EntityDecl" ] }, { - "id": "0x55eadb4afec0-DeclarationTypeSpec", + "id": "0x558d739f3fa0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55eadb4afec0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x558d739f3fa0-IntrinsicTypeSpec" }, { - "id": "0x55eadb4afec0-IntrinsicTypeSpec", + "id": "0x558d739f3fa0-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x55eadb4afec0-DoublePrecision" + "DoublePrecision": "0x558d739f3fa0-DoublePrecision" }, { - "id": "0x55eadb4afec0-DoublePrecision" + "id": "0x558d739f3fa0-DoublePrecision" }, { - "id": "0x55eadb493bf0-AttrSpec", + "id": "0x558d739d8710-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x55eadb493bf0-ArraySpec" + "ArraySpec": "0x558d739d8710-ArraySpec" }, { - "id": "0x55eadb493bf0-ArraySpec", + "id": "0x558d739d8710-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55eadb49ffa0-ExplicitShapeSpec", - "0x55eadb4b45f0-ExplicitShapeSpec" + "0x558d739f8dd0-ExplicitShapeSpec", + "0x558d739f8c20-ExplicitShapeSpec" ] }, { - "id": "0x55eadb49ffa0-ExplicitShapeSpec", - "upper_bound": "0x55eadb49ffa0-SpecificationExpr" + "id": "0x558d739f8dd0-ExplicitShapeSpec", + "upper_bound": "0x558d739f8dd0-SpecificationExpr" }, { - "id": "0x55eadb49ffa0-SpecificationExpr", - "Expr": "0x55eadb4b4360-Expr" + "id": "0x558d739f8dd0-SpecificationExpr", + "Expr": "0x558d739f8ad0-Expr" }, { - "id": "0x55eadb4b4360-Expr", + "id": "0x558d739f8ad0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b3be0-Designator" + "Designator": "0x558d739f8350-Designator" }, { - "id": "0x55eadb4b3be0-Designator", + "id": "0x558d739f8350-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b3bf0-DataRef" + "DataRef": "0x558d739f8360-DataRef" }, { - "id": "0x55eadb4b3bf0-DataRef", + "id": "0x558d739f8360-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b3bf0-Name" + "Name": "0x558d739f8360-Name" }, { - "id": "0x55eadb4b3bf0-Name", + "id": "0x558d739f8360-Name", "source": "nl" }, { - "id": "0x55eadb4b45f0-ExplicitShapeSpec", - "upper_bound": "0x55eadb4b45f0-SpecificationExpr" + "id": "0x558d739f8c20-ExplicitShapeSpec", + "upper_bound": "0x558d739f8c20-SpecificationExpr" }, { - "id": "0x55eadb4b45f0-SpecificationExpr", - "Expr": "0x55eadb4b4500-Expr" + "id": "0x558d739f8c20-SpecificationExpr", + "Expr": "0x558d739f93f0-Expr" }, { - "id": "0x55eadb4b4500-Expr", + "id": "0x558d739f93f0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b44a0-Designator" + "Designator": "0x558d739f8d60-Designator" }, { - "id": "0x55eadb4b44a0-Designator", + "id": "0x558d739f8d60-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b44b0-DataRef" + "DataRef": "0x558d739f8d70-DataRef" }, { - "id": "0x55eadb4b44b0-DataRef", + "id": "0x558d739f8d70-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b44b0-Name" + "Name": "0x558d739f8d70-Name" }, { - "id": "0x55eadb4b44b0-Name", + "id": "0x558d739f8d70-Name", "source": "ni" }, { - "id": "0x55eadb4b52b0-EntityDecl", - "Name": "0x55eadb4b5368-Name" + "id": "0x558d739f94e0-EntityDecl", + "Name": "0x558d739f9598-Name" }, { - "id": "0x55eadb4b5368-Name", + "id": "0x558d739f9598-Name", "source": "g" }, { - "id": "0x55eadb4b1240-DeclarationConstruct", + "id": "0x558d739eda60-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55eadb4b1240-SpecificationConstruct" + "SpecificationConstruct": "0x558d739eda60-SpecificationConstruct" }, { - "id": "0x55eadb4b1240-SpecificationConstruct", + "id": "0x558d739eda60-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4b1240-Statement" + "Statement": "0x558d739eda60-Statement" }, { - "id": "0x55eadb4b1240-Statement", - "statement": "0x55eadb4abfd0-TypeDeclarationStmt", + "id": "0x558d739eda60-Statement", + "statement": "0x558d739d7e90-TypeDeclarationStmt", "source": "integer :: ni, nj, nk, nl, nm" }, { - "id": "0x55eadb4abfd0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55eadb4ac000-DeclarationTypeSpec", + "id": "0x558d739d7e90-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558d739d7ec0-DeclarationTypeSpec", "EntityDecl": [ - "0x55eadb4b5760-EntityDecl", - "0x55eadb4b53a0-EntityDecl", - "0x55eadb4b5490-EntityDecl", - "0x55eadb4b5580-EntityDecl", - "0x55eadb4b5670-EntityDecl" + "0x558d739f9990-EntityDecl", + "0x558d739f95d0-EntityDecl", + "0x558d739f96c0-EntityDecl", + "0x558d739f97b0-EntityDecl", + "0x558d739f98a0-EntityDecl" ] }, { - "id": "0x55eadb4ac000-DeclarationTypeSpec", + "id": "0x558d739d7ec0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55eadb4ac000-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x558d739d7ec0-IntrinsicTypeSpec" }, { - "id": "0x55eadb4ac000-IntrinsicTypeSpec", + "id": "0x558d739d7ec0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55eadb4ac000-IntegerTypeSpec" + "IntegerTypeSpec": "0x558d739d7ec0-IntegerTypeSpec" }, { - "id": "0x55eadb4ac000-IntegerTypeSpec" + "id": "0x558d739d7ec0-IntegerTypeSpec" }, { - "id": "0x55eadb4b5760-EntityDecl", - "Name": "0x55eadb4b5818-Name" + "id": "0x558d739f9990-EntityDecl", + "Name": "0x558d739f9a48-Name" }, { - "id": "0x55eadb4b5818-Name", + "id": "0x558d739f9a48-Name", "source": "ni" }, { - "id": "0x55eadb4b53a0-EntityDecl", - "Name": "0x55eadb4b5458-Name" + "id": "0x558d739f95d0-EntityDecl", + "Name": "0x558d739f9688-Name" }, { - "id": "0x55eadb4b5458-Name", + "id": "0x558d739f9688-Name", "source": "nj" }, { - "id": "0x55eadb4b5490-EntityDecl", - "Name": "0x55eadb4b5548-Name" + "id": "0x558d739f96c0-EntityDecl", + "Name": "0x558d739f9778-Name" }, { - "id": "0x55eadb4b5548-Name", + "id": "0x558d739f9778-Name", "source": "nk" }, { - "id": "0x55eadb4b5580-EntityDecl", - "Name": "0x55eadb4b5638-Name" + "id": "0x558d739f97b0-EntityDecl", + "Name": "0x558d739f9868-Name" }, { - "id": "0x55eadb4b5638-Name", + "id": "0x558d739f9868-Name", "source": "nl" }, { - "id": "0x55eadb4b5670-EntityDecl", - "Name": "0x55eadb4b5728-Name" + "id": "0x558d739f98a0-EntityDecl", + "Name": "0x558d739f9958-Name" }, { - "id": "0x55eadb4b5728-Name", + "id": "0x558d739f9958-Name", "source": "nm" }, { - "id": "0x55eadb4aa370-DeclarationConstruct", + "id": "0x558d739f5380-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55eadb4aa370-SpecificationConstruct" + "SpecificationConstruct": "0x558d739f5380-SpecificationConstruct" }, { - "id": "0x55eadb4aa370-SpecificationConstruct", + "id": "0x558d739f5380-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4aa370-Statement" + "Statement": "0x558d739f5380-Statement" }, { - "id": "0x55eadb4aa370-Statement", - "statement": "0x55eadb4aba60-TypeDeclarationStmt", + "id": "0x558d739f5380-Statement", + "statement": "0x558d739f2870-TypeDeclarationStmt", "source": "integer :: i, j, k" }, { - "id": "0x55eadb4aba60-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55eadb4aba90-DeclarationTypeSpec", + "id": "0x558d739f2870-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558d739f28a0-DeclarationTypeSpec", "EntityDecl": [ - "0x55eadb4b5a30-EntityDecl", - "0x55eadb4b5850-EntityDecl", - "0x55eadb4b5940-EntityDecl" + "0x558d739f9c60-EntityDecl", + "0x558d739f9a80-EntityDecl", + "0x558d739f9b70-EntityDecl" ] }, { - "id": "0x55eadb4aba90-DeclarationTypeSpec", + "id": "0x558d739f28a0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55eadb4aba90-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x558d739f28a0-IntrinsicTypeSpec" }, { - "id": "0x55eadb4aba90-IntrinsicTypeSpec", + "id": "0x558d739f28a0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55eadb4aba90-IntegerTypeSpec" + "IntegerTypeSpec": "0x558d739f28a0-IntegerTypeSpec" }, { - "id": "0x55eadb4aba90-IntegerTypeSpec" + "id": "0x558d739f28a0-IntegerTypeSpec" }, { - "id": "0x55eadb4b5a30-EntityDecl", - "Name": "0x55eadb4b5ae8-Name" + "id": "0x558d739f9c60-EntityDecl", + "Name": "0x558d739f9d18-Name" }, { - "id": "0x55eadb4b5ae8-Name", + "id": "0x558d739f9d18-Name", "source": "i" }, { - "id": "0x55eadb4b5850-EntityDecl", - "Name": "0x55eadb4b5908-Name" + "id": "0x558d739f9a80-EntityDecl", + "Name": "0x558d739f9b38-Name" }, { - "id": "0x55eadb4b5908-Name", + "id": "0x558d739f9b38-Name", "source": "j" }, { - "id": "0x55eadb4b5940-EntityDecl", - "Name": "0x55eadb4b59f8-Name" + "id": "0x558d739f9b70-EntityDecl", + "Name": "0x558d739f9c28-Name" }, { - "id": "0x55eadb4b59f8-Name", + "id": "0x558d739f9c28-Name", "source": "k" }, { - "id": "0x55eadb4bd3d8-ExecutionPart", + "id": "0x558d73a016a8-ExecutionPart", "ExecutionPartConstruct": [ - "0x55eadb4b7ae0-ExecutionPartConstruct", - "0x55eadb4ba340-ExecutionPartConstruct", - "0x55eadb4bcba0-ExecutionPartConstruct" + "0x558d739fbd60-ExecutionPartConstruct", + "0x558d739fe5c0-ExecutionPartConstruct", + "0x558d73a00c80-ExecutionPartConstruct" ] }, { - "id": "0x55eadb4bd3d8-ExecutionPartConstruct" + "id": "0x558d73a016a8-ExecutionPartConstruct" }, { - "id": "0x55eadb4b7ae0-ExecutionPartConstruct", + "id": "0x558d739fbd60-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4b7ae0-ExecutableConstruct" + "ExecutableConstruct": "0x558d739fbd60-ExecutableConstruct" }, { - "id": "0x55eadb4b7ae0-ExecutableConstruct", + "id": "0x558d739fbd60-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55eadb4b8680-DoConstruct" + "DoConstruct": "0x558d739fc900-DoConstruct" }, { - "id": "0x55eadb4b8680-DoConstruct", - "Statement": "0x55eadb4b86d8-Statement", + "id": "0x558d739fc900-DoConstruct", + "Statement": "0x558d739fc958-Statement", "ExecutionPartConstruct": [ - "0x55eadb4b7940-ExecutionPartConstruct" + "0x558d739fbbc0-ExecutionPartConstruct" ], - "Statement": "0x55eadb4b8680-Statement" + "Statement": "0x558d739fc900-Statement" }, { - "id": "0x55eadb4b86d8-Statement", - "statement": "0x55eadb4b86e8-NonLabelDoStmt", + "id": "0x558d739fc958-Statement", + "statement": "0x558d739fc968-NonLabelDoStmt", "source": "do i = 1, ni" }, { - "id": "0x55eadb4b86e8-NonLabelDoStmt", - "LoopControl": "0x55eadb4b86e8-LoopControl" + "id": "0x558d739fc968-NonLabelDoStmt", + "LoopControl": "0x558d739fc968-LoopControl" }, { - "id": "0x55eadb4b86e8-LoopControl", + "id": "0x558d739fc968-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55eadb4b86e8-LoopBounds" + "LoopBounds": "0x558d739fc968-LoopBounds" }, { - "id": "0x55eadb4b86e8-LoopBounds", - "var": "0x55eadb4b86e8-Name", - "lower": "0x55eadb4b5b10-Expr", - "upper": "0x55eadb4b5bf0-Expr" + "id": "0x558d739fc968-LoopBounds", + "var": "0x558d739fc968-Name", + "lower": "0x558d739f9d40-Expr", + "upper": "0x558d739f9e20-Expr" }, { - "id": "0x55eadb4b86e8-Name", + "id": "0x558d739fc968-Name", "source": "i" }, { - "id": "0x55eadb4b5b10-Expr", + "id": "0x558d739f9d40-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4b5b30-LiteralConstant" + "LiteralConstant": "0x558d739f9d60-LiteralConstant" }, { - "id": "0x55eadb4b5b30-LiteralConstant", + "id": "0x558d739f9d60-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4b5b30-IntLiteralConstant" + "IntLiteralConstant": "0x558d739f9d60-IntLiteralConstant" }, { - "id": "0x55eadb4b5b30-IntLiteralConstant", + "id": "0x558d739f9d60-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55eadb4b5bf0-Expr", + "id": "0x558d739f9e20-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4af240-Designator" + "Designator": "0x558d739f3cc0-Designator" }, { - "id": "0x55eadb4af240-Designator", + "id": "0x558d739f3cc0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4af250-DataRef" + "DataRef": "0x558d739f3cd0-DataRef" }, { - "id": "0x55eadb4af250-DataRef", + "id": "0x558d739f3cd0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4af250-Name" + "Name": "0x558d739f3cd0-Name" }, { - "id": "0x55eadb4af250-Name", + "id": "0x558d739f3cd0-Name", "source": "ni" }, { - "id": "0x55eadb4b86c0-ExecutionPartConstruct" + "id": "0x558d739fc940-ExecutionPartConstruct" }, { - "id": "0x55eadb4b7940-ExecutionPartConstruct", + "id": "0x558d739fbbc0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4b7940-ExecutableConstruct" + "ExecutableConstruct": "0x558d739fbbc0-ExecutableConstruct" }, { - "id": "0x55eadb4b7940-ExecutableConstruct", + "id": "0x558d739fbbc0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55eadb4b8560-DoConstruct" + "DoConstruct": "0x558d739fc7e0-DoConstruct" }, { - "id": "0x55eadb4b8560-DoConstruct", - "Statement": "0x55eadb4b85b8-Statement", + "id": "0x558d739fc7e0-DoConstruct", + "Statement": "0x558d739fc838-Statement", "ExecutionPartConstruct": [ - "0x55eadb4b6400-ExecutionPartConstruct", - "0x55eadb4b78e0-ExecutionPartConstruct" + "0x558d739fa680-ExecutionPartConstruct", + "0x558d739fbb60-ExecutionPartConstruct" ], - "Statement": "0x55eadb4b8560-Statement" + "Statement": "0x558d739fc7e0-Statement" }, { - "id": "0x55eadb4b85b8-Statement", - "statement": "0x55eadb4b85c8-NonLabelDoStmt", + "id": "0x558d739fc838-Statement", + "statement": "0x558d739fc848-NonLabelDoStmt", "source": "do j = 1, nj" }, { - "id": "0x55eadb4b85c8-NonLabelDoStmt", - "LoopControl": "0x55eadb4b85c8-LoopControl" + "id": "0x558d739fc848-NonLabelDoStmt", + "LoopControl": "0x558d739fc848-LoopControl" }, { - "id": "0x55eadb4b85c8-LoopControl", + "id": "0x558d739fc848-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55eadb4b85c8-LoopBounds" + "LoopBounds": "0x558d739fc848-LoopBounds" }, { - "id": "0x55eadb4b85c8-LoopBounds", - "var": "0x55eadb4b85c8-Name", - "lower": "0x55eadb4b5cd0-Expr", - "upper": "0x55eadb4b5db0-Expr" + "id": "0x558d739fc848-LoopBounds", + "var": "0x558d739fc848-Name", + "lower": "0x558d739f9f00-Expr", + "upper": "0x558d739f9fe0-Expr" }, { - "id": "0x55eadb4b85c8-Name", + "id": "0x558d739fc848-Name", "source": "j" }, { - "id": "0x55eadb4b5cd0-Expr", + "id": "0x558d739f9f00-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4b5cf0-LiteralConstant" + "LiteralConstant": "0x558d739f9f20-LiteralConstant" }, { - "id": "0x55eadb4b5cf0-LiteralConstant", + "id": "0x558d739f9f20-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4b5cf0-IntLiteralConstant" + "IntLiteralConstant": "0x558d739f9f20-IntLiteralConstant" }, { - "id": "0x55eadb4b5cf0-IntLiteralConstant", + "id": "0x558d739f9f20-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55eadb4b5db0-Expr", + "id": "0x558d739f9fe0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b4010-Designator" + "Designator": "0x558d739f8780-Designator" }, { - "id": "0x55eadb4b4010-Designator", + "id": "0x558d739f8780-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b4020-DataRef" + "DataRef": "0x558d739f8790-DataRef" }, { - "id": "0x55eadb4b4020-DataRef", + "id": "0x558d739f8790-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b4020-Name" + "Name": "0x558d739f8790-Name" }, { - "id": "0x55eadb4b4020-Name", + "id": "0x558d739f8790-Name", "source": "nj" }, { - "id": "0x55eadb4b85a0-ExecutionPartConstruct" + "id": "0x558d739fc820-ExecutionPartConstruct" }, { - "id": "0x55eadb4b6400-ExecutionPartConstruct", + "id": "0x558d739fa680-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4b6400-ExecutableConstruct" + "ExecutableConstruct": "0x558d739fa680-ExecutableConstruct" }, { - "id": "0x55eadb4b6400-ExecutableConstruct", + "id": "0x558d739fa680-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4b6400-Statement" + "Statement": "0x558d739fa680-Statement" }, { - "id": "0x55eadb4b6400-Statement", - "statement": "0x55eadb4b6410-ActionStmt", + "id": "0x558d739fa680-Statement", + "statement": "0x558d739fa690-ActionStmt", "source": "e(j, i) = 0.0" }, { - "id": "0x55eadb4b6410-ActionStmt", + "id": "0x558d739fa690-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55eadb4b62e0-AssignmentStmt" + "AssignmentStmt": "0x558d739fa560-AssignmentStmt" }, { - "id": "0x55eadb4b62e0-AssignmentStmt", - "Variable": "0x55eadb4b63c0-Variable", - "Expr": "0x55eadb4b62f0-Expr" + "id": "0x558d739fa560-AssignmentStmt", + "Variable": "0x558d739fa640-Variable", + "Expr": "0x558d739fa570-Expr" }, { - "id": "0x55eadb4b63c0-Variable", + "id": "0x558d739fa640-Variable", "variantKey": "Designator", - "Designator": "0x55eadb4dd240-Designator" + "Designator": "0x558d73a22b70-Designator" }, { - "id": "0x55eadb4dd240-Designator", + "id": "0x558d73a22b70-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4dd250-DataRef" + "DataRef": "0x558d73a22b80-DataRef" }, { - "id": "0x55eadb4dd250-DataRef", + "id": "0x558d73a22b80-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55eadb4c0f20-ArrayElement" + "ArrayElement": "0x558d7395b190-ArrayElement" }, { - "id": "0x55eadb4c0f20-ArrayElement", - "base": "0x55eadb4c0f20-DataRef", + "id": "0x558d7395b190-ArrayElement", + "base": "0x558d7395b190-DataRef", "subscripts": [ - "0x55eadb5730e0-SectionSubscript", - "0x55eadb573130-SectionSubscript" + "0x558d73ab7390-SectionSubscript", + "0x558d73ab73e0-SectionSubscript" ] }, { - "id": "0x55eadb4c0f20-DataRef", + "id": "0x558d7395b190-DataRef", "variantKey": "Name", - "Name": "0x55eadb4c0f20-Name" + "Name": "0x558d7395b190-Name" }, { - "id": "0x55eadb4c0f20-Name", + "id": "0x558d7395b190-Name", "source": "e" }, { - "id": "0x55eadb5730e0-SectionSubscript", + "id": "0x558d73ab7390-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4ae2e0-Expr" + "Expr": "0x558d739f1ff0-Expr" }, { - "id": "0x55eadb4ae2e0-Expr", + "id": "0x558d739f1ff0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b5fd0-Designator" + "Designator": "0x558d739fa200-Designator" }, { - "id": "0x55eadb4b5fd0-Designator", + "id": "0x558d739fa200-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b5fe0-DataRef" + "DataRef": "0x558d739fa210-DataRef" }, { - "id": "0x55eadb4b5fe0-DataRef", + "id": "0x558d739fa210-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b5fe0-Name" + "Name": "0x558d739fa210-Name" }, { - "id": "0x55eadb4b5fe0-Name", + "id": "0x558d739fa210-Name", "source": "j" }, { - "id": "0x55eadb573130-SectionSubscript", + "id": "0x558d73ab73e0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4aff10-Expr" + "Expr": "0x558d739f3ff0-Expr" }, { - "id": "0x55eadb4aff10-Expr", + "id": "0x558d739f3ff0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4aef10-Designator" + "Designator": "0x558d739f27e0-Designator" }, { - "id": "0x55eadb4aef10-Designator", + "id": "0x558d739f27e0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4aef20-DataRef" + "DataRef": "0x558d739f27f0-DataRef" }, { - "id": "0x55eadb4aef20-DataRef", + "id": "0x558d739f27f0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4aef20-Name" + "Name": "0x558d739f27f0-Name" }, { - "id": "0x55eadb4aef20-Name", + "id": "0x558d739f27f0-Name", "source": "i" }, { - "id": "0x55eadb4b62f0-Expr", + "id": "0x558d739fa570-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4b6310-LiteralConstant" + "LiteralConstant": "0x558d739fa590-LiteralConstant" }, { - "id": "0x55eadb4b6310-LiteralConstant", + "id": "0x558d739fa590-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x55eadb4b6310-RealLiteralConstant" + "RealLiteralConstant": "0x558d739fa590-RealLiteralConstant" }, { - "id": "0x55eadb4b6310-RealLiteralConstant", - "real": "0x55eadb4b6310-Real" + "id": "0x558d739fa590-RealLiteralConstant", + "real": "0x558d739fa590-Real" }, { - "id": "0x55eadb4b6310-Real", + "id": "0x558d739fa590-Real", "source": "0.0" }, { - "id": "0x55eadb4b78e0-ExecutionPartConstruct", + "id": "0x558d739fbb60-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4b78e0-ExecutableConstruct" + "ExecutableConstruct": "0x558d739fbb60-ExecutableConstruct" }, { - "id": "0x55eadb4b78e0-ExecutableConstruct", + "id": "0x558d739fbb60-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55eadb4b8440-DoConstruct" + "DoConstruct": "0x558d739fc6c0-DoConstruct" }, { - "id": "0x55eadb4b8440-DoConstruct", - "Statement": "0x55eadb4b8498-Statement", + "id": "0x558d739fc6c0-DoConstruct", + "Statement": "0x558d739fc718-Statement", "ExecutionPartConstruct": [ - "0x55eadb4b83f0-ExecutionPartConstruct" + "0x558d739fc670-ExecutionPartConstruct" ], - "Statement": "0x55eadb4b8440-Statement" + "Statement": "0x558d739fc6c0-Statement" }, { - "id": "0x55eadb4b8498-Statement", - "statement": "0x55eadb4b84a8-NonLabelDoStmt", + "id": "0x558d739fc718-Statement", + "statement": "0x558d739fc728-NonLabelDoStmt", "source": "do k = 1, nk" }, { - "id": "0x55eadb4b84a8-NonLabelDoStmt", - "LoopControl": "0x55eadb4b84a8-LoopControl" + "id": "0x558d739fc728-NonLabelDoStmt", + "LoopControl": "0x558d739fc728-LoopControl" }, { - "id": "0x55eadb4b84a8-LoopControl", + "id": "0x558d739fc728-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55eadb4b84a8-LoopBounds" + "LoopBounds": "0x558d739fc728-LoopBounds" }, { - "id": "0x55eadb4b84a8-LoopBounds", - "var": "0x55eadb4b84a8-Name", - "lower": "0x55eadb4b6450-Expr", - "upper": "0x55eadb4b6530-Expr" + "id": "0x558d739fc728-LoopBounds", + "var": "0x558d739fc728-Name", + "lower": "0x558d739fa6d0-Expr", + "upper": "0x558d739fa7b0-Expr" }, { - "id": "0x55eadb4b84a8-Name", + "id": "0x558d739fc728-Name", "source": "k" }, { - "id": "0x55eadb4b6450-Expr", + "id": "0x558d739fa6d0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4b6470-LiteralConstant" + "LiteralConstant": "0x558d739fa6f0-LiteralConstant" }, { - "id": "0x55eadb4b6470-LiteralConstant", + "id": "0x558d739fa6f0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4b6470-IntLiteralConstant" + "IntLiteralConstant": "0x558d739fa6f0-IntLiteralConstant" }, { - "id": "0x55eadb4b6470-IntLiteralConstant", + "id": "0x558d739fa6f0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55eadb4b6530-Expr", + "id": "0x558d739fa7b0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4a9a20-Designator" + "Designator": "0x558d739f53d0-Designator" }, { - "id": "0x55eadb4a9a20-Designator", + "id": "0x558d739f53d0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4a9a30-DataRef" + "DataRef": "0x558d739f53e0-DataRef" }, { - "id": "0x55eadb4a9a30-DataRef", + "id": "0x558d739f53e0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4a9a30-Name" + "Name": "0x558d739f53e0-Name" }, { - "id": "0x55eadb4a9a30-Name", + "id": "0x558d739f53e0-Name", "source": "nk" }, { - "id": "0x55eadb4b8480-ExecutionPartConstruct" + "id": "0x558d739fc700-ExecutionPartConstruct" }, { - "id": "0x55eadb4b83f0-ExecutionPartConstruct", + "id": "0x558d739fc670-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4b83f0-ExecutableConstruct" + "ExecutableConstruct": "0x558d739fc670-ExecutableConstruct" }, { - "id": "0x55eadb4b83f0-ExecutableConstruct", + "id": "0x558d739fc670-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4b83f0-Statement" + "Statement": "0x558d739fc670-Statement" }, { - "id": "0x55eadb4b83f0-Statement", - "statement": "0x55eadb4b8400-ActionStmt", + "id": "0x558d739fc670-Statement", + "statement": "0x558d739fc680-ActionStmt", "source": "e(j, i) = e(j, i) + a(k, i) * b(j, k)" }, { - "id": "0x55eadb4b8400-ActionStmt", + "id": "0x558d739fc680-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55eadb4b82d0-AssignmentStmt" + "AssignmentStmt": "0x558d739fc550-AssignmentStmt" }, { - "id": "0x55eadb4b82d0-AssignmentStmt", - "Variable": "0x55eadb4b83b0-Variable", - "Expr": "0x55eadb4b82e0-Expr" + "id": "0x558d739fc550-AssignmentStmt", + "Variable": "0x558d739fc630-Variable", + "Expr": "0x558d739fc560-Expr" }, { - "id": "0x55eadb4b83b0-Variable", + "id": "0x558d739fc630-Variable", "variantKey": "Designator", - "Designator": "0x55eadb4abca0-Designator" + "Designator": "0x558d73a202c0-Designator" }, { - "id": "0x55eadb4abca0-Designator", + "id": "0x558d73a202c0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4abcb0-DataRef" + "DataRef": "0x558d73a202d0-DataRef" }, { - "id": "0x55eadb4abcb0-DataRef", + "id": "0x558d73a202d0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55eadb4c20f0-ArrayElement" + "ArrayElement": "0x558d739f3f30-ArrayElement" }, { - "id": "0x55eadb4c20f0-ArrayElement", - "base": "0x55eadb4c20f0-DataRef", + "id": "0x558d739f3f30-ArrayElement", + "base": "0x558d739f3f30-DataRef", "subscripts": [ - "0x55eadb4b0d70-SectionSubscript", - "0x55eadb573890-SectionSubscript" + "0x558d739f4eb0-SectionSubscript", + "0x558d73ab7b40-SectionSubscript" ] }, { - "id": "0x55eadb4c20f0-DataRef", + "id": "0x558d739f3f30-DataRef", "variantKey": "Name", - "Name": "0x55eadb4c20f0-Name" + "Name": "0x558d739f3f30-Name" }, { - "id": "0x55eadb4c20f0-Name", + "id": "0x558d739f3f30-Name", "source": "e" }, { - "id": "0x55eadb4b0d70-SectionSubscript", + "id": "0x558d739f4eb0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4b5e90-Expr" + "Expr": "0x558d739fa0c0-Expr" }, { - "id": "0x55eadb4b5e90-Expr", + "id": "0x558d739fa0c0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b66f0-Designator" + "Designator": "0x558d739fa970-Designator" }, { - "id": "0x55eadb4b66f0-Designator", + "id": "0x558d739fa970-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b6700-DataRef" + "DataRef": "0x558d739fa980-DataRef" }, { - "id": "0x55eadb4b6700-DataRef", + "id": "0x558d739fa980-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b6700-Name" + "Name": "0x558d739fa980-Name" }, { - "id": "0x55eadb4b6700-Name", + "id": "0x558d739fa980-Name", "source": "j" }, { - "id": "0x55eadb573890-SectionSubscript", + "id": "0x558d73ab7b40-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4b6030-Expr" + "Expr": "0x558d739fa260-Expr" }, { - "id": "0x55eadb4b6030-Expr", + "id": "0x558d739fa260-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b4440-Designator" + "Designator": "0x558d739f8bb0-Designator" }, { - "id": "0x55eadb4b4440-Designator", + "id": "0x558d739f8bb0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b4450-DataRef" + "DataRef": "0x558d739f8bc0-DataRef" }, { - "id": "0x55eadb4b4450-DataRef", + "id": "0x558d739f8bc0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b4450-Name" + "Name": "0x558d739f8bc0-Name" }, { - "id": "0x55eadb4b4450-Name", + "id": "0x558d739f8bc0-Name", "source": "i" }, { - "id": "0x55eadb4b82e0-Expr", + "id": "0x558d739fc560-Expr", "variantKey": "Add", - "Add": "0x55eadb4b8300-Add" + "Add": "0x558d739fc580-Add" }, { - "id": "0x55eadb4b8300-Add", - "left": "0x55eadb4b81f0-Expr", - "right": "0x55eadb4b8110-Expr", + "id": "0x558d739fc580-Add", + "left": "0x558d739fc470-Expr", + "right": "0x558d739fc390-Expr", "op": "ADD" }, { - "id": "0x55eadb4b81f0-Expr", + "id": "0x558d739fc470-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4a9110-Designator" + "Designator": "0x558d73ab7df0-Designator" }, { - "id": "0x55eadb4a9110-Designator", + "id": "0x558d73ab7df0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4a9120-DataRef" + "DataRef": "0x558d73ab7e00-DataRef" }, { - "id": "0x55eadb4a9120-DataRef", + "id": "0x558d73ab7e00-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55eadb4a3af0-ArrayElement" + "ArrayElement": "0x558d739f7610-ArrayElement" }, { - "id": "0x55eadb4a3af0-ArrayElement", - "base": "0x55eadb4a3af0-DataRef", + "id": "0x558d739f7610-ArrayElement", + "base": "0x558d739f7610-DataRef", "subscripts": [ - "0x55eadb573ab0-SectionSubscript", - "0x55eadb573b00-SectionSubscript" + "0x558d73ab7d60-SectionSubscript", + "0x558d73ab7db0-SectionSubscript" ] }, { - "id": "0x55eadb4a3af0-DataRef", + "id": "0x558d739f7610-DataRef", "variantKey": "Name", - "Name": "0x55eadb4a3af0-Name" + "Name": "0x558d739f7610-Name" }, { - "id": "0x55eadb4a3af0-Name", + "id": "0x558d739f7610-Name", "source": "e" }, { - "id": "0x55eadb573ab0-SectionSubscript", + "id": "0x558d73ab7d60-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4b6610-Expr" + "Expr": "0x558d739fa890-Expr" }, { - "id": "0x55eadb4b6610-Expr", + "id": "0x558d739fa890-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b6dd0-Designator" + "Designator": "0x558d739fb050-Designator" }, { - "id": "0x55eadb4b6dd0-Designator", + "id": "0x558d739fb050-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b6de0-DataRef" + "DataRef": "0x558d739fb060-DataRef" }, { - "id": "0x55eadb4b6de0-DataRef", + "id": "0x558d739fb060-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b6de0-Name" + "Name": "0x558d739fb060-Name" }, { - "id": "0x55eadb4b6de0-Name", + "id": "0x558d739fb060-Name", "source": "j" }, { - "id": "0x55eadb573b00-SectionSubscript", + "id": "0x558d73ab7db0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4b6750-Expr" + "Expr": "0x558d739fa9d0-Expr" }, { - "id": "0x55eadb4b6750-Expr", + "id": "0x558d739fa9d0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b6bd0-Designator" + "Designator": "0x558d739fae50-Designator" }, { - "id": "0x55eadb4b6bd0-Designator", + "id": "0x558d739fae50-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b6be0-DataRef" + "DataRef": "0x558d739fae60-DataRef" }, { - "id": "0x55eadb4b6be0-DataRef", + "id": "0x558d739fae60-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b6be0-Name" + "Name": "0x558d739fae60-Name" }, { - "id": "0x55eadb4b6be0-Name", + "id": "0x558d739fae60-Name", "source": "i" }, { - "id": "0x55eadb4b8110-Expr", + "id": "0x558d739fc390-Expr", "variantKey": "Multiply", - "Multiply": "0x55eadb4b8130-Multiply" + "Multiply": "0x558d739fc3b0-Multiply" }, { - "id": "0x55eadb4b8130-Multiply", - "left": "0x55eadb4b8030-Expr", - "right": "0x55eadb4b7f50-Expr", + "id": "0x558d739fc3b0-Multiply", + "left": "0x558d739fc2b0-Expr", + "right": "0x558d739fc1d0-Expr", "op": "MULTIPLY" }, { - "id": "0x55eadb4b8030-Expr", + "id": "0x558d739fc2b0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb573e40-Designator" + "Designator": "0x558d73ab8150-Designator" }, { - "id": "0x55eadb573e40-Designator", + "id": "0x558d73ab8150-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb573e50-DataRef" + "DataRef": "0x558d73ab8160-DataRef" }, { - "id": "0x55eadb573e50-DataRef", + "id": "0x558d73ab8160-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55eadb4b6240-ArrayElement" + "ArrayElement": "0x558d73a00520-ArrayElement" }, { - "id": "0x55eadb4b6240-ArrayElement", - "base": "0x55eadb4b6240-DataRef", + "id": "0x558d73a00520-ArrayElement", + "base": "0x558d73a00520-DataRef", "subscripts": [ - "0x55eadb573db0-SectionSubscript", - "0x55eadb573e00-SectionSubscript" + "0x558d73ab80c0-SectionSubscript", + "0x558d73ab8110-SectionSubscript" ] }, { - "id": "0x55eadb4b6240-DataRef", + "id": "0x558d73a00520-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b6240-Name" + "Name": "0x558d73a00520-Name" }, { - "id": "0x55eadb4b6240-Name", + "id": "0x558d73a00520-Name", "source": "a" }, { - "id": "0x55eadb573db0-SectionSubscript", + "id": "0x558d73ab80c0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4b6c30-Expr" + "Expr": "0x558d739faeb0-Expr" }, { - "id": "0x55eadb4b6c30-Expr", + "id": "0x558d739faeb0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b74b0-Designator" + "Designator": "0x558d739fb730-Designator" }, { - "id": "0x55eadb4b74b0-Designator", + "id": "0x558d739fb730-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b74c0-DataRef" + "DataRef": "0x558d739fb740-DataRef" }, { - "id": "0x55eadb4b74c0-DataRef", + "id": "0x558d739fb740-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b74c0-Name" + "Name": "0x558d739fb740-Name" }, { - "id": "0x55eadb4b74c0-Name", + "id": "0x558d739fb740-Name", "source": "k" }, { - "id": "0x55eadb573e00-SectionSubscript", + "id": "0x558d73ab8110-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4b6e30-Expr" + "Expr": "0x558d739fb0b0-Expr" }, { - "id": "0x55eadb4b6e30-Expr", + "id": "0x558d739fb0b0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b72b0-Designator" + "Designator": "0x558d739fb530-Designator" }, { - "id": "0x55eadb4b72b0-Designator", + "id": "0x558d739fb530-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b72c0-DataRef" + "DataRef": "0x558d739fb540-DataRef" }, { - "id": "0x55eadb4b72c0-DataRef", + "id": "0x558d739fb540-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b72c0-Name" + "Name": "0x558d739fb540-Name" }, { - "id": "0x55eadb4b72c0-Name", + "id": "0x558d739fb540-Name", "source": "i" }, { - "id": "0x55eadb4b7f50-Expr", + "id": "0x558d739fc1d0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb574230-Designator" + "Designator": "0x558d73ab84b0-Designator" }, { - "id": "0x55eadb574230-Designator", + "id": "0x558d73ab84b0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb574240-DataRef" + "DataRef": "0x558d73ab84c0-DataRef" }, { - "id": "0x55eadb574240-DataRef", + "id": "0x558d73ab84c0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55eadb4b7700-ArrayElement" + "ArrayElement": "0x558d739e7a40-ArrayElement" }, { - "id": "0x55eadb4b7700-ArrayElement", - "base": "0x55eadb4b7700-DataRef", + "id": "0x558d739e7a40-ArrayElement", + "base": "0x558d739e7a40-DataRef", "subscripts": [ - "0x55eadb5741a0-SectionSubscript", - "0x55eadb5741f0-SectionSubscript" + "0x558d73ab8420-SectionSubscript", + "0x558d73ab8470-SectionSubscript" ] }, { - "id": "0x55eadb4b7700-DataRef", + "id": "0x558d739e7a40-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b7700-Name" + "Name": "0x558d739e7a40-Name" }, { - "id": "0x55eadb4b7700-Name", + "id": "0x558d739e7a40-Name", "source": "b" }, { - "id": "0x55eadb5741a0-SectionSubscript", + "id": "0x558d73ab8420-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4b7310-Expr" + "Expr": "0x558d739fb590-Expr" }, { - "id": "0x55eadb4b7310-Expr", + "id": "0x558d739fb590-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b7b90-Designator" + "Designator": "0x558d739fbe10-Designator" }, { - "id": "0x55eadb4b7b90-Designator", + "id": "0x558d739fbe10-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b7ba0-DataRef" + "DataRef": "0x558d739fbe20-DataRef" }, { - "id": "0x55eadb4b7ba0-DataRef", + "id": "0x558d739fbe20-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b7ba0-Name" + "Name": "0x558d739fbe20-Name" }, { - "id": "0x55eadb4b7ba0-Name", + "id": "0x558d739fbe20-Name", "source": "j" }, { - "id": "0x55eadb5741f0-SectionSubscript", + "id": "0x558d73ab8470-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4b7510-Expr" + "Expr": "0x558d739fb790-Expr" }, { - "id": "0x55eadb4b7510-Expr", + "id": "0x558d739fb790-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b7990-Designator" + "Designator": "0x558d739fbc10-Designator" }, { - "id": "0x55eadb4b7990-Designator", + "id": "0x558d739fbc10-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b79a0-DataRef" + "DataRef": "0x558d739fbc20-DataRef" }, { - "id": "0x55eadb4b79a0-DataRef", + "id": "0x558d739fbc20-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b79a0-Name" + "Name": "0x558d739fbc20-Name" }, { - "id": "0x55eadb4b79a0-Name", + "id": "0x558d739fbc20-Name", "source": "k" }, { - "id": "0x55eadb4b8440-Statement", - "statement": "0x55eadb4b8450-EndDoStmt", + "id": "0x558d739fc6c0-Statement", + "statement": "0x558d739fc6d0-EndDoStmt", "source": "end do" }, { - "id": "0x55eadb4b8450-EndDoStmt" + "id": "0x558d739fc6d0-EndDoStmt" }, { - "id": "0x55eadb4b8560-Statement", - "statement": "0x55eadb4b8570-EndDoStmt", + "id": "0x558d739fc7e0-Statement", + "statement": "0x558d739fc7f0-EndDoStmt", "source": "end do" }, { - "id": "0x55eadb4b8570-EndDoStmt" + "id": "0x558d739fc7f0-EndDoStmt" }, { - "id": "0x55eadb4b8680-Statement", - "statement": "0x55eadb4b8690-EndDoStmt", + "id": "0x558d739fc900-Statement", + "statement": "0x558d739fc910-EndDoStmt", "source": "end do" }, { - "id": "0x55eadb4b8690-EndDoStmt" + "id": "0x558d739fc910-EndDoStmt" }, { - "id": "0x55eadb4ba340-ExecutionPartConstruct", + "id": "0x558d739fe5c0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4ba340-ExecutableConstruct" + "ExecutableConstruct": "0x558d739fe5c0-ExecutableConstruct" }, { - "id": "0x55eadb4ba340-ExecutableConstruct", + "id": "0x558d739fe5c0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55eadb4baee0-DoConstruct" + "DoConstruct": "0x558d739ff160-DoConstruct" }, { - "id": "0x55eadb4baee0-DoConstruct", - "Statement": "0x55eadb4baf38-Statement", + "id": "0x558d739ff160-DoConstruct", + "Statement": "0x558d739ff1b8-Statement", "ExecutionPartConstruct": [ - "0x55eadb4ba1a0-ExecutionPartConstruct" + "0x558d739fe420-ExecutionPartConstruct" ], - "Statement": "0x55eadb4baee0-Statement" + "Statement": "0x558d739ff160-Statement" }, { - "id": "0x55eadb4baf38-Statement", - "statement": "0x55eadb4baf48-NonLabelDoStmt", + "id": "0x558d739ff1b8-Statement", + "statement": "0x558d739ff1c8-NonLabelDoStmt", "source": "do i = 1, nj" }, { - "id": "0x55eadb4baf48-NonLabelDoStmt", - "LoopControl": "0x55eadb4baf48-LoopControl" + "id": "0x558d739ff1c8-NonLabelDoStmt", + "LoopControl": "0x558d739ff1c8-LoopControl" }, { - "id": "0x55eadb4baf48-LoopControl", + "id": "0x558d739ff1c8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55eadb4baf48-LoopBounds" + "LoopBounds": "0x558d739ff1c8-LoopBounds" }, { - "id": "0x55eadb4baf48-LoopBounds", - "var": "0x55eadb4baf48-Name", - "lower": "0x55eadb4b87a0-Expr", - "upper": "0x55eadb4b8880-Expr" + "id": "0x558d739ff1c8-LoopBounds", + "var": "0x558d739ff1c8-Name", + "lower": "0x558d739fca20-Expr", + "upper": "0x558d739fcb00-Expr" }, { - "id": "0x55eadb4baf48-Name", + "id": "0x558d739ff1c8-Name", "source": "i" }, { - "id": "0x55eadb4b87a0-Expr", + "id": "0x558d739fca20-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4b87c0-LiteralConstant" + "LiteralConstant": "0x558d739fca40-LiteralConstant" }, { - "id": "0x55eadb4b87c0-LiteralConstant", + "id": "0x558d739fca40-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4b87c0-IntLiteralConstant" + "IntLiteralConstant": "0x558d739fca40-IntLiteralConstant" }, { - "id": "0x55eadb4b87c0-IntLiteralConstant", + "id": "0x558d739fca40-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55eadb4b8880-Expr", + "id": "0x558d739fcb00-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b7cd0-Designator" + "Designator": "0x558d739fbf50-Designator" }, { - "id": "0x55eadb4b7cd0-Designator", + "id": "0x558d739fbf50-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b7ce0-DataRef" + "DataRef": "0x558d739fbf60-DataRef" }, { - "id": "0x55eadb4b7ce0-DataRef", + "id": "0x558d739fbf60-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b7ce0-Name" + "Name": "0x558d739fbf60-Name" }, { - "id": "0x55eadb4b7ce0-Name", + "id": "0x558d739fbf60-Name", "source": "nj" }, { - "id": "0x55eadb4baf20-ExecutionPartConstruct" + "id": "0x558d739ff1a0-ExecutionPartConstruct" }, { - "id": "0x55eadb4ba1a0-ExecutionPartConstruct", + "id": "0x558d739fe420-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4ba1a0-ExecutableConstruct" + "ExecutableConstruct": "0x558d739fe420-ExecutableConstruct" }, { - "id": "0x55eadb4ba1a0-ExecutableConstruct", + "id": "0x558d739fe420-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55eadb4badc0-DoConstruct" + "DoConstruct": "0x558d739ff040-DoConstruct" }, { - "id": "0x55eadb4badc0-DoConstruct", - "Statement": "0x55eadb4bae18-Statement", + "id": "0x558d739ff040-DoConstruct", + "Statement": "0x558d739ff098-Statement", "ExecutionPartConstruct": [ - "0x55eadb4b6b80-ExecutionPartConstruct", - "0x55eadb4ba140-ExecutionPartConstruct" + "0x558d739fae00-ExecutionPartConstruct", + "0x558d739fe3c0-ExecutionPartConstruct" ], - "Statement": "0x55eadb4badc0-Statement" + "Statement": "0x558d739ff040-Statement" }, { - "id": "0x55eadb4bae18-Statement", - "statement": "0x55eadb4bae28-NonLabelDoStmt", + "id": "0x558d739ff098-Statement", + "statement": "0x558d739ff0a8-NonLabelDoStmt", "source": "do j = 1, nl" }, { - "id": "0x55eadb4bae28-NonLabelDoStmt", - "LoopControl": "0x55eadb4bae28-LoopControl" + "id": "0x558d739ff0a8-NonLabelDoStmt", + "LoopControl": "0x558d739ff0a8-LoopControl" }, { - "id": "0x55eadb4bae28-LoopControl", + "id": "0x558d739ff0a8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55eadb4bae28-LoopBounds" + "LoopBounds": "0x558d739ff0a8-LoopBounds" }, { - "id": "0x55eadb4bae28-LoopBounds", - "var": "0x55eadb4bae28-Name", - "lower": "0x55eadb4b8960-Expr", - "upper": "0x55eadb4b8a40-Expr" + "id": "0x558d739ff0a8-LoopBounds", + "var": "0x558d739ff0a8-Name", + "lower": "0x558d739fcbe0-Expr", + "upper": "0x558d739fccc0-Expr" }, { - "id": "0x55eadb4bae28-Name", + "id": "0x558d739ff0a8-Name", "source": "j" }, { - "id": "0x55eadb4b8960-Expr", + "id": "0x558d739fcbe0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4b8980-LiteralConstant" + "LiteralConstant": "0x558d739fcc00-LiteralConstant" }, { - "id": "0x55eadb4b8980-LiteralConstant", + "id": "0x558d739fcc00-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4b8980-IntLiteralConstant" + "IntLiteralConstant": "0x558d739fcc00-IntLiteralConstant" }, { - "id": "0x55eadb4b8980-IntLiteralConstant", + "id": "0x558d739fcc00-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55eadb4b8a40-Expr", + "id": "0x558d739fccc0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b6280-Designator" + "Designator": "0x558d739fa500-Designator" }, { - "id": "0x55eadb4b6280-Designator", + "id": "0x558d739fa500-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b6290-DataRef" + "DataRef": "0x558d739fa510-DataRef" }, { - "id": "0x55eadb4b6290-DataRef", + "id": "0x558d739fa510-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b6290-Name" + "Name": "0x558d739fa510-Name" }, { - "id": "0x55eadb4b6290-Name", + "id": "0x558d739fa510-Name", "source": "nl" }, { - "id": "0x55eadb4bae00-ExecutionPartConstruct" + "id": "0x558d739ff080-ExecutionPartConstruct" }, { - "id": "0x55eadb4b6b80-ExecutionPartConstruct", + "id": "0x558d739fae00-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4b6b80-ExecutableConstruct" + "ExecutableConstruct": "0x558d739fae00-ExecutableConstruct" }, { - "id": "0x55eadb4b6b80-ExecutableConstruct", + "id": "0x558d739fae00-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4b6b80-Statement" + "Statement": "0x558d739fae00-Statement" }, { - "id": "0x55eadb4b6b80-Statement", - "statement": "0x55eadb4b6b90-ActionStmt", + "id": "0x558d739fae00-Statement", + "statement": "0x558d739fae10-ActionStmt", "source": "f(j, i) = 0.0" }, { - "id": "0x55eadb4b6b90-ActionStmt", + "id": "0x558d739fae10-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55eadb4b8f00-AssignmentStmt" + "AssignmentStmt": "0x558d739fd180-AssignmentStmt" }, { - "id": "0x55eadb4b8f00-AssignmentStmt", - "Variable": "0x55eadb4b8fe0-Variable", - "Expr": "0x55eadb4b8f10-Expr" + "id": "0x558d739fd180-AssignmentStmt", + "Variable": "0x558d739fd260-Variable", + "Expr": "0x558d739fd190-Expr" }, { - "id": "0x55eadb4b8fe0-Variable", + "id": "0x558d739fd260-Variable", "variantKey": "Designator", - "Designator": "0x55eadb4a9db0-Designator" + "Designator": "0x558d73a1bb80-Designator" }, { - "id": "0x55eadb4a9db0-Designator", + "id": "0x558d73a1bb80-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4a9dc0-DataRef" + "DataRef": "0x558d73a1bb90-DataRef" }, { - "id": "0x55eadb4a9dc0-DataRef", + "id": "0x558d73a1bb90-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55eadb4b7de0-ArrayElement" + "ArrayElement": "0x558d73a02540-ArrayElement" }, { - "id": "0x55eadb4b7de0-ArrayElement", - "base": "0x55eadb4b7de0-DataRef", + "id": "0x558d73a02540-ArrayElement", + "base": "0x558d73a02540-DataRef", "subscripts": [ - "0x55eadb4b6a70-SectionSubscript", - "0x55eadb575540-SectionSubscript" + "0x558d739facf0-SectionSubscript", + "0x558d73ab9750-SectionSubscript" ] }, { - "id": "0x55eadb4b7de0-DataRef", + "id": "0x558d73a02540-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b7de0-Name" + "Name": "0x558d73a02540-Name" }, { - "id": "0x55eadb4b7de0-Name", + "id": "0x558d73a02540-Name", "source": "f" }, { - "id": "0x55eadb4b6a70-SectionSubscript", + "id": "0x558d739facf0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4b79f0-Expr" + "Expr": "0x558d739fbc70-Expr" }, { - "id": "0x55eadb4b79f0-Expr", + "id": "0x558d739fbc70-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b6f10-Designator" + "Designator": "0x558d739fb190-Designator" }, { - "id": "0x55eadb4b6f10-Designator", + "id": "0x558d739fb190-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b6f20-DataRef" + "DataRef": "0x558d739fb1a0-DataRef" }, { - "id": "0x55eadb4b6f20-DataRef", + "id": "0x558d739fb1a0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b6f20-Name" + "Name": "0x558d739fb1a0-Name" }, { - "id": "0x55eadb4b6f20-Name", + "id": "0x558d739fb1a0-Name", "source": "j" }, { - "id": "0x55eadb575540-SectionSubscript", + "id": "0x558d73ab9750-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4b7bf0-Expr" + "Expr": "0x558d739fbe70-Expr" }, { - "id": "0x55eadb4b7bf0-Expr", + "id": "0x558d739fbe70-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b6ab0-Designator" + "Designator": "0x558d739fad30-Designator" }, { - "id": "0x55eadb4b6ab0-Designator", + "id": "0x558d739fad30-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b6ac0-DataRef" + "DataRef": "0x558d739fad40-DataRef" }, { - "id": "0x55eadb4b6ac0-DataRef", + "id": "0x558d739fad40-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b6ac0-Name" + "Name": "0x558d739fad40-Name" }, { - "id": "0x55eadb4b6ac0-Name", + "id": "0x558d739fad40-Name", "source": "i" }, { - "id": "0x55eadb4b8f10-Expr", + "id": "0x558d739fd190-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4b8f30-LiteralConstant" + "LiteralConstant": "0x558d739fd1b0-LiteralConstant" }, { - "id": "0x55eadb4b8f30-LiteralConstant", + "id": "0x558d739fd1b0-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x55eadb4b8f30-RealLiteralConstant" + "RealLiteralConstant": "0x558d739fd1b0-RealLiteralConstant" }, { - "id": "0x55eadb4b8f30-RealLiteralConstant", - "real": "0x55eadb4b8f30-Real" + "id": "0x558d739fd1b0-RealLiteralConstant", + "real": "0x558d739fd1b0-Real" }, { - "id": "0x55eadb4b8f30-Real", + "id": "0x558d739fd1b0-Real", "source": "0.0" }, { - "id": "0x55eadb4ba140-ExecutionPartConstruct", + "id": "0x558d739fe3c0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4ba140-ExecutableConstruct" + "ExecutableConstruct": "0x558d739fe3c0-ExecutableConstruct" }, { - "id": "0x55eadb4ba140-ExecutableConstruct", + "id": "0x558d739fe3c0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55eadb4baca0-DoConstruct" + "DoConstruct": "0x558d739fef20-DoConstruct" }, { - "id": "0x55eadb4baca0-DoConstruct", - "Statement": "0x55eadb4bacf8-Statement", + "id": "0x558d739fef20-DoConstruct", + "Statement": "0x558d739fef78-Statement", "ExecutionPartConstruct": [ - "0x55eadb4bac50-ExecutionPartConstruct" + "0x558d739feed0-ExecutionPartConstruct" ], - "Statement": "0x55eadb4baca0-Statement" + "Statement": "0x558d739fef20-Statement" }, { - "id": "0x55eadb4bacf8-Statement", - "statement": "0x55eadb4bad08-NonLabelDoStmt", + "id": "0x558d739fef78-Statement", + "statement": "0x558d739fef88-NonLabelDoStmt", "source": "do k = 1, nm" }, { - "id": "0x55eadb4bad08-NonLabelDoStmt", - "LoopControl": "0x55eadb4bad08-LoopControl" + "id": "0x558d739fef88-NonLabelDoStmt", + "LoopControl": "0x558d739fef88-LoopControl" }, { - "id": "0x55eadb4bad08-LoopControl", + "id": "0x558d739fef88-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55eadb4bad08-LoopBounds" + "LoopBounds": "0x558d739fef88-LoopBounds" }, { - "id": "0x55eadb4bad08-LoopBounds", - "var": "0x55eadb4bad08-Name", - "lower": "0x55eadb4b9010-Expr", - "upper": "0x55eadb4b90f0-Expr" + "id": "0x558d739fef88-LoopBounds", + "var": "0x558d739fef88-Name", + "lower": "0x558d739fd290-Expr", + "upper": "0x558d739fd370-Expr" }, { - "id": "0x55eadb4bad08-Name", + "id": "0x558d739fef88-Name", "source": "k" }, { - "id": "0x55eadb4b9010-Expr", + "id": "0x558d739fd290-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4b9030-LiteralConstant" + "LiteralConstant": "0x558d739fd2b0-LiteralConstant" }, { - "id": "0x55eadb4b9030-LiteralConstant", + "id": "0x558d739fd2b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4b9030-IntLiteralConstant" + "IntLiteralConstant": "0x558d739fd2b0-IntLiteralConstant" }, { - "id": "0x55eadb4b9030-IntLiteralConstant", + "id": "0x558d739fd2b0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55eadb4b90f0-Expr", + "id": "0x558d739fd370-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b6d10-Designator" + "Designator": "0x558d739faf90-Designator" }, { - "id": "0x55eadb4b6d10-Designator", + "id": "0x558d739faf90-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b6d20-DataRef" + "DataRef": "0x558d739fafa0-DataRef" }, { - "id": "0x55eadb4b6d20-DataRef", + "id": "0x558d739fafa0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b6d20-Name" + "Name": "0x558d739fafa0-Name" }, { - "id": "0x55eadb4b6d20-Name", + "id": "0x558d739fafa0-Name", "source": "nm" }, { - "id": "0x55eadb4bace0-ExecutionPartConstruct" + "id": "0x558d739fef60-ExecutionPartConstruct" }, { - "id": "0x55eadb4bac50-ExecutionPartConstruct", + "id": "0x558d739feed0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4bac50-ExecutableConstruct" + "ExecutableConstruct": "0x558d739feed0-ExecutableConstruct" }, { - "id": "0x55eadb4bac50-ExecutableConstruct", + "id": "0x558d739feed0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4bac50-Statement" + "Statement": "0x558d739feed0-Statement" }, { - "id": "0x55eadb4bac50-Statement", - "statement": "0x55eadb4bac60-ActionStmt", + "id": "0x558d739feed0-Statement", + "statement": "0x558d739feee0-ActionStmt", "source": "f(j, i) = f(j, i) + c(k, i) * d(j, k)" }, { - "id": "0x55eadb4bac60-ActionStmt", + "id": "0x558d739feee0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55eadb4bab30-AssignmentStmt" + "AssignmentStmt": "0x558d739fedb0-AssignmentStmt" }, { - "id": "0x55eadb4bab30-AssignmentStmt", - "Variable": "0x55eadb4bac10-Variable", - "Expr": "0x55eadb4bab40-Expr" + "id": "0x558d739fedb0-AssignmentStmt", + "Variable": "0x558d739fee90-Variable", + "Expr": "0x558d739fedc0-Expr" }, { - "id": "0x55eadb4bac10-Variable", + "id": "0x558d739fee90-Variable", "variantKey": "Designator", - "Designator": "0x55eadb4b7ed0-Designator" + "Designator": "0x558d73ab86e0-Designator" }, { - "id": "0x55eadb4b7ed0-Designator", + "id": "0x558d73ab86e0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b7ee0-DataRef" + "DataRef": "0x558d73ab86f0-DataRef" }, { - "id": "0x55eadb4b7ee0-DataRef", + "id": "0x558d73ab86f0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55eadb574aa0-ArrayElement" + "ArrayElement": "0x558d73ab9790-ArrayElement" }, { - "id": "0x55eadb574aa0-ArrayElement", - "base": "0x55eadb574aa0-DataRef", + "id": "0x558d73ab9790-ArrayElement", + "base": "0x558d73ab9790-DataRef", "subscripts": [ - "0x55eadb576e90-SectionSubscript", - "0x55eadb576ee0-SectionSubscript" + "0x558d73abb100-SectionSubscript", + "0x558d73abb150-SectionSubscript" ] }, { - "id": "0x55eadb574aa0-DataRef", + "id": "0x558d73ab9790-DataRef", "variantKey": "Name", - "Name": "0x55eadb574aa0-Name" + "Name": "0x558d73ab9790-Name" }, { - "id": "0x55eadb574aa0-Name", + "id": "0x558d73ab9790-Name", "source": "f" }, { - "id": "0x55eadb576e90-SectionSubscript", + "id": "0x558d73abb100-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4b8b20-Expr" + "Expr": "0x558d739fcda0-Expr" }, { - "id": "0x55eadb4b8b20-Expr", + "id": "0x558d739fcda0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b73f0-Designator" + "Designator": "0x558d739fb670-Designator" }, { - "id": "0x55eadb4b73f0-Designator", + "id": "0x558d739fb670-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b7400-DataRef" + "DataRef": "0x558d739fb680-DataRef" }, { - "id": "0x55eadb4b7400-DataRef", + "id": "0x558d739fb680-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b7400-Name" + "Name": "0x558d739fb680-Name" }, { - "id": "0x55eadb4b7400-Name", + "id": "0x558d739fb680-Name", "source": "j" }, { - "id": "0x55eadb576ee0-SectionSubscript", + "id": "0x558d73abb150-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4b8c00-Expr" + "Expr": "0x558d739fce80-Expr" }, { - "id": "0x55eadb4b8c00-Expr", + "id": "0x558d739fce80-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b5f70-Designator" + "Designator": "0x558d739fa1a0-Designator" }, { - "id": "0x55eadb4b5f70-Designator", + "id": "0x558d739fa1a0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b5f80-DataRef" + "DataRef": "0x558d739fa1b0-DataRef" }, { - "id": "0x55eadb4b5f80-DataRef", + "id": "0x558d739fa1b0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b5f80-Name" + "Name": "0x558d739fa1b0-Name" }, { - "id": "0x55eadb4b5f80-Name", + "id": "0x558d739fa1b0-Name", "source": "i" }, { - "id": "0x55eadb4bab40-Expr", + "id": "0x558d739fedc0-Expr", "variantKey": "Add", - "Add": "0x55eadb4bab60-Add" + "Add": "0x558d739fede0-Add" }, { - "id": "0x55eadb4bab60-Add", - "left": "0x55eadb4baa50-Expr", - "right": "0x55eadb4ba970-Expr", + "id": "0x558d739fede0-Add", + "left": "0x558d739fecd0-Expr", + "right": "0x558d739febf0-Expr", "op": "ADD" }, { - "id": "0x55eadb4baa50-Expr", + "id": "0x558d739fecd0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb5771b0-Designator" + "Designator": "0x558d73abb390-Designator" }, { - "id": "0x55eadb5771b0-Designator", + "id": "0x558d73abb390-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb5771c0-DataRef" + "DataRef": "0x558d73abb3a0-DataRef" }, { - "id": "0x55eadb5771c0-DataRef", + "id": "0x558d73abb3a0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55eadb4b9390-ArrayElement" + "ArrayElement": "0x558d739fd610-ArrayElement" }, { - "id": "0x55eadb4b9390-ArrayElement", - "base": "0x55eadb4b9390-DataRef", + "id": "0x558d739fd610-ArrayElement", + "base": "0x558d739fd610-DataRef", "subscripts": [ - "0x55eadb577120-SectionSubscript", - "0x55eadb577170-SectionSubscript" + "0x558d73abb300-SectionSubscript", + "0x558d73abb350-SectionSubscript" ] }, { - "id": "0x55eadb4b9390-DataRef", + "id": "0x558d739fd610-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b9390-Name" + "Name": "0x558d739fd610-Name" }, { - "id": "0x55eadb4b9390-Name", + "id": "0x558d739fd610-Name", "source": "f" }, { - "id": "0x55eadb577120-SectionSubscript", + "id": "0x558d73abb300-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4b91d0-Expr" + "Expr": "0x558d739fd450-Expr" }, { - "id": "0x55eadb4b91d0-Expr", + "id": "0x558d739fd450-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b7450-Designator" + "Designator": "0x558d739fb6d0-Designator" }, { - "id": "0x55eadb4b7450-Designator", + "id": "0x558d739fb6d0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b7460-DataRef" + "DataRef": "0x558d739fb6e0-DataRef" }, { - "id": "0x55eadb4b7460-DataRef", + "id": "0x558d739fb6e0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b7460-Name" + "Name": "0x558d739fb6e0-Name" }, { - "id": "0x55eadb4b7460-Name", + "id": "0x558d739fb6e0-Name", "source": "j" }, { - "id": "0x55eadb577170-SectionSubscript", + "id": "0x558d73abb350-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4b92b0-Expr" + "Expr": "0x558d739fd530-Expr" }, { - "id": "0x55eadb4b92b0-Expr", + "id": "0x558d739fd530-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b7b30-Designator" + "Designator": "0x558d739fbdb0-Designator" }, { - "id": "0x55eadb4b7b30-Designator", + "id": "0x558d739fbdb0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b7b40-DataRef" + "DataRef": "0x558d739fbdc0-DataRef" }, { - "id": "0x55eadb4b7b40-DataRef", + "id": "0x558d739fbdc0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b7b40-Name" + "Name": "0x558d739fbdc0-Name" }, { - "id": "0x55eadb4b7b40-Name", + "id": "0x558d739fbdc0-Name", "source": "i" }, { - "id": "0x55eadb4ba970-Expr", + "id": "0x558d739febf0-Expr", "variantKey": "Multiply", - "Multiply": "0x55eadb4ba990-Multiply" + "Multiply": "0x558d739fec10-Multiply" }, { - "id": "0x55eadb4ba990-Multiply", - "left": "0x55eadb4ba890-Expr", - "right": "0x55eadb4ba7b0-Expr", + "id": "0x558d739fec10-Multiply", + "left": "0x558d739feb10-Expr", + "right": "0x558d739fea30-Expr", "op": "MULTIPLY" }, { - "id": "0x55eadb4ba890-Expr", + "id": "0x558d739feb10-Expr", "variantKey": "Designator", - "Designator": "0x55eadb577550-Designator" + "Designator": "0x558d73abb730-Designator" }, { - "id": "0x55eadb577550-Designator", + "id": "0x558d73abb730-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb577560-DataRef" + "DataRef": "0x558d73abb740-DataRef" }, { - "id": "0x55eadb577560-DataRef", + "id": "0x558d73abb740-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55eadb4b9880-ArrayElement" + "ArrayElement": "0x558d739fdb00-ArrayElement" }, { - "id": "0x55eadb4b9880-ArrayElement", - "base": "0x55eadb4b9880-DataRef", + "id": "0x558d739fdb00-ArrayElement", + "base": "0x558d739fdb00-DataRef", "subscripts": [ - "0x55eadb4b9980-SectionSubscript", - "0x55eadb577510-SectionSubscript" + "0x558d739fdc00-SectionSubscript", + "0x558d73abb6f0-SectionSubscript" ] }, { - "id": "0x55eadb4b9880-DataRef", + "id": "0x558d739fdb00-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b9880-Name" + "Name": "0x558d739fdb00-Name" }, { - "id": "0x55eadb4b9880-Name", + "id": "0x558d739fdb00-Name", "source": "c" }, { - "id": "0x55eadb4b9980-SectionSubscript", + "id": "0x558d739fdc00-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4b95b0-Expr" + "Expr": "0x558d739fd830-Expr" }, { - "id": "0x55eadb4b95b0-Expr", + "id": "0x558d739fd830-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b9d10-Designator" + "Designator": "0x558d739fdf90-Designator" }, { - "id": "0x55eadb4b9d10-Designator", + "id": "0x558d739fdf90-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b9d20-DataRef" + "DataRef": "0x558d739fdfa0-DataRef" }, { - "id": "0x55eadb4b9d20-DataRef", + "id": "0x558d739fdfa0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b9d20-Name" + "Name": "0x558d739fdfa0-Name" }, { - "id": "0x55eadb4b9d20-Name", + "id": "0x558d739fdfa0-Name", "source": "k" }, { - "id": "0x55eadb577510-SectionSubscript", + "id": "0x558d73abb6f0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4b9690-Expr" + "Expr": "0x558d739fd910-Expr" }, { - "id": "0x55eadb4b9690-Expr", + "id": "0x558d739fd910-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b9b10-Designator" + "Designator": "0x558d739fdd90-Designator" }, { - "id": "0x55eadb4b9b10-Designator", + "id": "0x558d739fdd90-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b9b20-DataRef" + "DataRef": "0x558d739fdda0-DataRef" }, { - "id": "0x55eadb4b9b20-DataRef", + "id": "0x558d739fdda0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b9b20-Name" + "Name": "0x558d739fdda0-Name" }, { - "id": "0x55eadb4b9b20-Name", + "id": "0x558d739fdda0-Name", "source": "i" }, { - "id": "0x55eadb4ba7b0-Expr", + "id": "0x558d739fea30-Expr", "variantKey": "Designator", - "Designator": "0x55eadb5779c0-Designator" + "Designator": "0x558d73abbba0-Designator" }, { - "id": "0x55eadb5779c0-Designator", + "id": "0x558d73abbba0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb5779d0-DataRef" + "DataRef": "0x558d73abbbb0-DataRef" }, { - "id": "0x55eadb5779d0-DataRef", + "id": "0x558d73abbbb0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55eadb4b9f60-ArrayElement" + "ArrayElement": "0x558d739fe1e0-ArrayElement" }, { - "id": "0x55eadb4b9f60-ArrayElement", - "base": "0x55eadb4b9f60-DataRef", + "id": "0x558d739fe1e0-ArrayElement", + "base": "0x558d739fe1e0-DataRef", "subscripts": [ - "0x55eadb577930-SectionSubscript", - "0x55eadb577980-SectionSubscript" + "0x558d73abbb10-SectionSubscript", + "0x558d73abbb60-SectionSubscript" ] }, { - "id": "0x55eadb4b9f60-DataRef", + "id": "0x558d739fe1e0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b9f60-Name" + "Name": "0x558d739fe1e0-Name" }, { - "id": "0x55eadb4b9f60-Name", + "id": "0x558d739fe1e0-Name", "source": "d" }, { - "id": "0x55eadb577930-SectionSubscript", + "id": "0x558d73abbb10-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4b9b70-Expr" + "Expr": "0x558d739fddf0-Expr" }, { - "id": "0x55eadb4b9b70-Expr", + "id": "0x558d739fddf0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4ba3f0-Designator" + "Designator": "0x558d739fe670-Designator" }, { - "id": "0x55eadb4ba3f0-Designator", + "id": "0x558d739fe670-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4ba400-DataRef" + "DataRef": "0x558d739fe680-DataRef" }, { - "id": "0x55eadb4ba400-DataRef", + "id": "0x558d739fe680-DataRef", "variantKey": "Name", - "Name": "0x55eadb4ba400-Name" + "Name": "0x558d739fe680-Name" }, { - "id": "0x55eadb4ba400-Name", + "id": "0x558d739fe680-Name", "source": "j" }, { - "id": "0x55eadb577980-SectionSubscript", + "id": "0x558d73abbb60-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4b9d70-Expr" + "Expr": "0x558d739fdff0-Expr" }, { - "id": "0x55eadb4b9d70-Expr", + "id": "0x558d739fdff0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4ba1f0-Designator" + "Designator": "0x558d739fe470-Designator" }, { - "id": "0x55eadb4ba1f0-Designator", + "id": "0x558d739fe470-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4ba200-DataRef" + "DataRef": "0x558d739fe480-DataRef" }, { - "id": "0x55eadb4ba200-DataRef", + "id": "0x558d739fe480-DataRef", "variantKey": "Name", - "Name": "0x55eadb4ba200-Name" + "Name": "0x558d739fe480-Name" }, { - "id": "0x55eadb4ba200-Name", + "id": "0x558d739fe480-Name", "source": "k" }, { - "id": "0x55eadb4baca0-Statement", - "statement": "0x55eadb4bacb0-EndDoStmt", + "id": "0x558d739fef20-Statement", + "statement": "0x558d739fef30-EndDoStmt", "source": "end do" }, { - "id": "0x55eadb4bacb0-EndDoStmt" + "id": "0x558d739fef30-EndDoStmt" }, { - "id": "0x55eadb4badc0-Statement", - "statement": "0x55eadb4badd0-EndDoStmt", + "id": "0x558d739ff040-Statement", + "statement": "0x558d739ff050-EndDoStmt", "source": "end do" }, { - "id": "0x55eadb4badd0-EndDoStmt" + "id": "0x558d739ff050-EndDoStmt" }, { - "id": "0x55eadb4baee0-Statement", - "statement": "0x55eadb4baef0-EndDoStmt", + "id": "0x558d739ff160-Statement", + "statement": "0x558d739ff170-EndDoStmt", "source": "end do" }, { - "id": "0x55eadb4baef0-EndDoStmt" + "id": "0x558d739ff170-EndDoStmt" }, { - "id": "0x55eadb4bcba0-ExecutionPartConstruct", + "id": "0x558d73a00c80-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4bcba0-ExecutableConstruct" + "ExecutableConstruct": "0x558d73a00c80-ExecutableConstruct" }, { - "id": "0x55eadb4bcba0-ExecutableConstruct", + "id": "0x558d73a00c80-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55eadb4b12f0-DoConstruct" + "DoConstruct": "0x558d739f5550-DoConstruct" }, { - "id": "0x55eadb4b12f0-DoConstruct", - "Statement": "0x55eadb4b1348-Statement", + "id": "0x558d739f5550-DoConstruct", + "Statement": "0x558d739f55a8-Statement", "ExecutionPartConstruct": [ - "0x55eadb4bca00-ExecutionPartConstruct" + "0x558d73a00c20-ExecutionPartConstruct" ], - "Statement": "0x55eadb4b12f0-Statement" + "Statement": "0x558d739f5550-Statement" }, { - "id": "0x55eadb4b1348-Statement", - "statement": "0x55eadb4b1358-NonLabelDoStmt", + "id": "0x558d739f55a8-Statement", + "statement": "0x558d739f55b8-NonLabelDoStmt", "source": "do i = 1, ni" }, { - "id": "0x55eadb4b1358-NonLabelDoStmt", - "LoopControl": "0x55eadb4b1358-LoopControl" + "id": "0x558d739f55b8-NonLabelDoStmt", + "LoopControl": "0x558d739f55b8-LoopControl" }, { - "id": "0x55eadb4b1358-LoopControl", + "id": "0x558d739f55b8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55eadb4b1358-LoopBounds" + "LoopBounds": "0x558d739f55b8-LoopBounds" }, { - "id": "0x55eadb4b1358-LoopBounds", - "var": "0x55eadb4b1358-Name", - "lower": "0x55eadb4bb000-Expr", - "upper": "0x55eadb4bb0e0-Expr" + "id": "0x558d739f55b8-LoopBounds", + "var": "0x558d739f55b8-Name", + "lower": "0x558d739ff280-Expr", + "upper": "0x558d739ff360-Expr" }, { - "id": "0x55eadb4b1358-Name", + "id": "0x558d739f55b8-Name", "source": "i" }, { - "id": "0x55eadb4bb000-Expr", + "id": "0x558d739ff280-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4bb020-LiteralConstant" + "LiteralConstant": "0x558d739ff2a0-LiteralConstant" }, { - "id": "0x55eadb4bb020-LiteralConstant", + "id": "0x558d739ff2a0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4bb020-IntLiteralConstant" + "IntLiteralConstant": "0x558d739ff2a0-IntLiteralConstant" }, { - "id": "0x55eadb4bb020-IntLiteralConstant", + "id": "0x558d739ff2a0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55eadb4bb0e0-Expr", + "id": "0x558d739ff360-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4ba530-Designator" + "Designator": "0x558d739fe7b0-Designator" }, { - "id": "0x55eadb4ba530-Designator", + "id": "0x558d739fe7b0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4ba540-DataRef" + "DataRef": "0x558d739fe7c0-DataRef" }, { - "id": "0x55eadb4ba540-DataRef", + "id": "0x558d739fe7c0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4ba540-Name" + "Name": "0x558d739fe7c0-Name" }, { - "id": "0x55eadb4ba540-Name", + "id": "0x558d739fe7c0-Name", "source": "ni" }, { - "id": "0x55eadb4b1330-ExecutionPartConstruct" + "id": "0x558d739f5590-ExecutionPartConstruct" }, { - "id": "0x55eadb4bca00-ExecutionPartConstruct", + "id": "0x558d73a00c20-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4bca00-ExecutableConstruct" + "ExecutableConstruct": "0x558d73a00c20-ExecutableConstruct" }, { - "id": "0x55eadb4bca00-ExecutableConstruct", + "id": "0x558d73a00c20-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55eadb4b1870-DoConstruct" + "DoConstruct": "0x558d739f5430-DoConstruct" }, { - "id": "0x55eadb4b1870-DoConstruct", - "Statement": "0x55eadb4b18c8-Statement", + "id": "0x558d739f5430-DoConstruct", + "Statement": "0x558d739f5488-Statement", "ExecutionPartConstruct": [ - "0x55eadb4b6b20-ExecutionPartConstruct", - "0x55eadb4bc9a0-ExecutionPartConstruct" + "0x558d739fada0-ExecutionPartConstruct", + "0x558d73a00bc0-ExecutionPartConstruct" ], - "Statement": "0x55eadb4b1870-Statement" + "Statement": "0x558d739f5430-Statement" }, { - "id": "0x55eadb4b18c8-Statement", - "statement": "0x55eadb4b18d8-NonLabelDoStmt", + "id": "0x558d739f5488-Statement", + "statement": "0x558d739f5498-NonLabelDoStmt", "source": "do j = 1, nl" }, { - "id": "0x55eadb4b18d8-NonLabelDoStmt", - "LoopControl": "0x55eadb4b18d8-LoopControl" + "id": "0x558d739f5498-NonLabelDoStmt", + "LoopControl": "0x558d739f5498-LoopControl" }, { - "id": "0x55eadb4b18d8-LoopControl", + "id": "0x558d739f5498-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55eadb4b18d8-LoopBounds" + "LoopBounds": "0x558d739f5498-LoopBounds" }, { - "id": "0x55eadb4b18d8-LoopBounds", - "var": "0x55eadb4b18d8-Name", - "lower": "0x55eadb4bb1c0-Expr", - "upper": "0x55eadb4bb2a0-Expr" + "id": "0x558d739f5498-LoopBounds", + "var": "0x558d739f5498-Name", + "lower": "0x558d739ff440-Expr", + "upper": "0x558d739ff520-Expr" }, { - "id": "0x55eadb4b18d8-Name", + "id": "0x558d739f5498-Name", "source": "j" }, { - "id": "0x55eadb4bb1c0-Expr", + "id": "0x558d739ff440-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4bb1e0-LiteralConstant" + "LiteralConstant": "0x558d739ff460-LiteralConstant" }, { - "id": "0x55eadb4bb1e0-LiteralConstant", + "id": "0x558d739ff460-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4bb1e0-IntLiteralConstant" + "IntLiteralConstant": "0x558d739ff460-IntLiteralConstant" }, { - "id": "0x55eadb4bb1e0-IntLiteralConstant", + "id": "0x558d739ff460-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55eadb4bb2a0-Expr", + "id": "0x558d739ff520-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b6110-Designator" + "Designator": "0x558d739fa390-Designator" }, { - "id": "0x55eadb4b6110-Designator", + "id": "0x558d739fa390-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b6120-DataRef" + "DataRef": "0x558d739fa3a0-DataRef" }, { - "id": "0x55eadb4b6120-DataRef", + "id": "0x558d739fa3a0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b6120-Name" + "Name": "0x558d739fa3a0-Name" }, { - "id": "0x55eadb4b6120-Name", + "id": "0x558d739fa3a0-Name", "source": "nl" }, { - "id": "0x55eadb4b18b0-ExecutionPartConstruct" + "id": "0x558d739f5470-ExecutionPartConstruct" }, { - "id": "0x55eadb4b6b20-ExecutionPartConstruct", + "id": "0x558d739fada0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4b6b20-ExecutableConstruct" + "ExecutableConstruct": "0x558d739fada0-ExecutableConstruct" }, { - "id": "0x55eadb4b6b20-ExecutableConstruct", + "id": "0x558d739fada0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4b6b20-Statement" + "Statement": "0x558d739fada0-Statement" }, { - "id": "0x55eadb4b6b20-Statement", - "statement": "0x55eadb4b6b30-ActionStmt", + "id": "0x558d739fada0-Statement", + "statement": "0x558d739fadb0-ActionStmt", "source": "g(j, i) = 0.0" }, { - "id": "0x55eadb4b6b30-ActionStmt", + "id": "0x558d739fadb0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55eadb4bb760-AssignmentStmt" + "AssignmentStmt": "0x558d739ff9e0-AssignmentStmt" }, { - "id": "0x55eadb4bb760-AssignmentStmt", - "Variable": "0x55eadb4bb840-Variable", - "Expr": "0x55eadb4bb770-Expr" + "id": "0x558d739ff9e0-AssignmentStmt", + "Variable": "0x558d739ffac0-Variable", + "Expr": "0x558d739ff9f0-Expr" }, { - "id": "0x55eadb4bb840-Variable", + "id": "0x558d739ffac0-Variable", "variantKey": "Designator", - "Designator": "0x55eadb577060-Designator" + "Designator": "0x558d73abb240-Designator" }, { - "id": "0x55eadb577060-Designator", + "id": "0x558d73abb240-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb577070-DataRef" + "DataRef": "0x558d73abb250-DataRef" }, { - "id": "0x55eadb577070-DataRef", + "id": "0x558d73abb250-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55eadb4ba640-ArrayElement" + "ArrayElement": "0x558d739fe8c0-ArrayElement" }, { - "id": "0x55eadb4ba640-ArrayElement", - "base": "0x55eadb4ba640-DataRef", + "id": "0x558d739fe8c0-ArrayElement", + "base": "0x558d739fe8c0-DataRef", "subscripts": [ - "0x55eadb5770d0-SectionSubscript", - "0x55eadb578fb0-SectionSubscript" + "0x558d73abb2b0-SectionSubscript", + "0x558d73abd190-SectionSubscript" ] }, { - "id": "0x55eadb4ba640-DataRef", + "id": "0x558d739fe8c0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4ba640-Name" + "Name": "0x558d739fe8c0-Name" }, { - "id": "0x55eadb4ba640-Name", + "id": "0x558d739fe8c0-Name", "source": "g" }, { - "id": "0x55eadb5770d0-SectionSubscript", + "id": "0x558d73abb2b0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4ba250-Expr" + "Expr": "0x558d739fe4d0-Expr" }, { - "id": "0x55eadb4ba250-Expr", + "id": "0x558d739fe4d0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b9770-Designator" + "Designator": "0x558d739fd9f0-Designator" }, { - "id": "0x55eadb4b9770-Designator", + "id": "0x558d739fd9f0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b9780-DataRef" + "DataRef": "0x558d739fda00-DataRef" }, { - "id": "0x55eadb4b9780-DataRef", + "id": "0x558d739fda00-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b9780-Name" + "Name": "0x558d739fda00-Name" }, { - "id": "0x55eadb4b9780-Name", + "id": "0x558d739fda00-Name", "source": "j" }, { - "id": "0x55eadb578fb0-SectionSubscript", + "id": "0x558d73abd190-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4ba450-Expr" + "Expr": "0x558d739fe6d0-Expr" }, { - "id": "0x55eadb4ba450-Expr", + "id": "0x558d739fe6d0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b71f0-Designator" + "Designator": "0x558d739fb470-Designator" }, { - "id": "0x55eadb4b71f0-Designator", + "id": "0x558d739fb470-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b7200-DataRef" + "DataRef": "0x558d739fb480-DataRef" }, { - "id": "0x55eadb4b7200-DataRef", + "id": "0x558d739fb480-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b7200-Name" + "Name": "0x558d739fb480-Name" }, { - "id": "0x55eadb4b7200-Name", + "id": "0x558d739fb480-Name", "source": "i" }, { - "id": "0x55eadb4bb770-Expr", + "id": "0x558d739ff9f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4bb790-LiteralConstant" + "LiteralConstant": "0x558d739ffa10-LiteralConstant" }, { - "id": "0x55eadb4bb790-LiteralConstant", + "id": "0x558d739ffa10-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x55eadb4bb790-RealLiteralConstant" + "RealLiteralConstant": "0x558d739ffa10-RealLiteralConstant" }, { - "id": "0x55eadb4bb790-RealLiteralConstant", - "real": "0x55eadb4bb790-Real" + "id": "0x558d739ffa10-RealLiteralConstant", + "real": "0x558d739ffa10-Real" }, { - "id": "0x55eadb4bb790-Real", + "id": "0x558d739ffa10-Real", "source": "0.0" }, { - "id": "0x55eadb4bc9a0-ExecutionPartConstruct", + "id": "0x558d73a00bc0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4bc9a0-ExecutableConstruct" + "ExecutableConstruct": "0x558d73a00bc0-ExecutableConstruct" }, { - "id": "0x55eadb4bc9a0-ExecutableConstruct", + "id": "0x558d73a00bc0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55eadb4b1750-DoConstruct" + "DoConstruct": "0x558d739f5990-DoConstruct" }, { - "id": "0x55eadb4b1750-DoConstruct", - "Statement": "0x55eadb4b17a8-Statement", + "id": "0x558d739f5990-DoConstruct", + "Statement": "0x558d739f59e8-Statement", "ExecutionPartConstruct": [ - "0x55eadb4b1df0-ExecutionPartConstruct" + "0x558d739f5940-ExecutionPartConstruct" ], - "Statement": "0x55eadb4b1750-Statement" + "Statement": "0x558d739f5990-Statement" }, { - "id": "0x55eadb4b17a8-Statement", - "statement": "0x55eadb4b17b8-NonLabelDoStmt", + "id": "0x558d739f59e8-Statement", + "statement": "0x558d739f59f8-NonLabelDoStmt", "source": "do k = 1, nj" }, { - "id": "0x55eadb4b17b8-NonLabelDoStmt", - "LoopControl": "0x55eadb4b17b8-LoopControl" + "id": "0x558d739f59f8-NonLabelDoStmt", + "LoopControl": "0x558d739f59f8-LoopControl" }, { - "id": "0x55eadb4b17b8-LoopControl", + "id": "0x558d739f59f8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55eadb4b17b8-LoopBounds" + "LoopBounds": "0x558d739f59f8-LoopBounds" }, { - "id": "0x55eadb4b17b8-LoopBounds", - "var": "0x55eadb4b17b8-Name", - "lower": "0x55eadb4bb870-Expr", - "upper": "0x55eadb4bb950-Expr" + "id": "0x558d739f59f8-LoopBounds", + "var": "0x558d739f59f8-Name", + "lower": "0x558d739ffaf0-Expr", + "upper": "0x558d739ffbd0-Expr" }, { - "id": "0x55eadb4b17b8-Name", + "id": "0x558d739f59f8-Name", "source": "k" }, { - "id": "0x55eadb4bb870-Expr", + "id": "0x558d739ffaf0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55eadb4bb890-LiteralConstant" + "LiteralConstant": "0x558d739ffb10-LiteralConstant" }, { - "id": "0x55eadb4bb890-LiteralConstant", + "id": "0x558d739ffb10-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55eadb4bb890-IntLiteralConstant" + "IntLiteralConstant": "0x558d739ffb10-IntLiteralConstant" }, { - "id": "0x55eadb4bb890-IntLiteralConstant", + "id": "0x558d739ffb10-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55eadb4bb950-Expr", + "id": "0x558d739ffbd0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b5060-Designator" + "Designator": "0x558d739ee330-Designator" }, { - "id": "0x55eadb4b5060-Designator", + "id": "0x558d739ee330-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b5070-DataRef" + "DataRef": "0x558d739ee340-DataRef" }, { - "id": "0x55eadb4b5070-DataRef", + "id": "0x558d739ee340-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b5070-Name" + "Name": "0x558d739ee340-Name" }, { - "id": "0x55eadb4b5070-Name", + "id": "0x558d739ee340-Name", "source": "nj" }, { - "id": "0x55eadb4b1790-ExecutionPartConstruct" + "id": "0x558d739f59d0-ExecutionPartConstruct" }, { - "id": "0x55eadb4b1df0-ExecutionPartConstruct", + "id": "0x558d739f5940-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55eadb4b1df0-ExecutableConstruct" + "ExecutableConstruct": "0x558d739f5940-ExecutableConstruct" }, { - "id": "0x55eadb4b1df0-ExecutableConstruct", + "id": "0x558d739f5940-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55eadb4b1df0-Statement" + "Statement": "0x558d739f5940-Statement" }, { - "id": "0x55eadb4b1df0-Statement", - "statement": "0x55eadb4b1e00-ActionStmt", + "id": "0x558d739f5940-Statement", + "statement": "0x558d739f5950-ActionStmt", "source": "g(j, i) = g(j, i) + e(k, i) * f(j, k)" }, { - "id": "0x55eadb4b1e00-ActionStmt", + "id": "0x558d739f5950-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55eadb4b20f0-AssignmentStmt" + "AssignmentStmt": "0x558d739f5820-AssignmentStmt" }, { - "id": "0x55eadb4b20f0-AssignmentStmt", - "Variable": "0x55eadb4b21d0-Variable", - "Expr": "0x55eadb4b2100-Expr" + "id": "0x558d739f5820-AssignmentStmt", + "Variable": "0x558d739f5900-Variable", + "Expr": "0x558d739f5830-Expr" }, { - "id": "0x55eadb4b21d0-Variable", + "id": "0x558d739f5900-Variable", "variantKey": "Designator", - "Designator": "0x55eadb577d20-Designator" + "Designator": "0x558d73abbf00-Designator" }, { - "id": "0x55eadb577d20-Designator", + "id": "0x558d73abbf00-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb577d30-DataRef" + "DataRef": "0x558d73abbf10-DataRef" }, { - "id": "0x55eadb577d30-DataRef", + "id": "0x558d73abbf10-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55eadb4bb5f0-ArrayElement" + "ArrayElement": "0x558d739ff870-ArrayElement" }, { - "id": "0x55eadb4bb5f0-ArrayElement", - "base": "0x55eadb4bb5f0-DataRef", + "id": "0x558d739ff870-ArrayElement", + "base": "0x558d739ff870-DataRef", "subscripts": [ - "0x55eadb57a9b0-SectionSubscript", - "0x55eadb57aa00-SectionSubscript" + "0x558d73abeb90-SectionSubscript", + "0x558d73abebe0-SectionSubscript" ] }, { - "id": "0x55eadb4bb5f0-DataRef", + "id": "0x558d739ff870-DataRef", "variantKey": "Name", - "Name": "0x55eadb4bb5f0-Name" + "Name": "0x558d739ff870-Name" }, { - "id": "0x55eadb4bb5f0-Name", + "id": "0x558d739ff870-Name", "source": "g" }, { - "id": "0x55eadb57a9b0-SectionSubscript", + "id": "0x558d73abeb90-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4bb380-Expr" + "Expr": "0x558d739ff600-Expr" }, { - "id": "0x55eadb4bb380-Expr", + "id": "0x558d739ff600-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b9c50-Designator" + "Designator": "0x558d739fded0-Designator" }, { - "id": "0x55eadb4b9c50-Designator", + "id": "0x558d739fded0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b9c60-DataRef" + "DataRef": "0x558d739fdee0-DataRef" }, { - "id": "0x55eadb4b9c60-DataRef", + "id": "0x558d739fdee0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b9c60-Name" + "Name": "0x558d739fdee0-Name" }, { - "id": "0x55eadb4b9c60-Name", + "id": "0x558d739fdee0-Name", "source": "j" }, { - "id": "0x55eadb57aa00-SectionSubscript", + "id": "0x558d73abebe0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4bb460-Expr" + "Expr": "0x558d739ff6e0-Expr" }, { - "id": "0x55eadb4bb460-Expr", + "id": "0x558d739ff6e0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b75f0-Designator" + "Designator": "0x558d739fb870-Designator" }, { - "id": "0x55eadb4b75f0-Designator", + "id": "0x558d739fb870-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b7600-DataRef" + "DataRef": "0x558d739fb880-DataRef" }, { - "id": "0x55eadb4b7600-DataRef", + "id": "0x558d739fb880-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b7600-Name" + "Name": "0x558d739fb880-Name" }, { - "id": "0x55eadb4b7600-Name", + "id": "0x558d739fb880-Name", "source": "i" }, { - "id": "0x55eadb4b2100-Expr", + "id": "0x558d739f5830-Expr", "variantKey": "Add", - "Add": "0x55eadb4b2120-Add" + "Add": "0x558d739f5850-Add" }, { - "id": "0x55eadb4b2120-Add", - "left": "0x55eadb4b2010-Expr", - "right": "0x55eadb48d0e0-Expr", + "id": "0x558d739f5850-Add", + "left": "0x558d739d1010-Expr", + "right": "0x558d739e3d10-Expr", "op": "ADD" }, { - "id": "0x55eadb4b2010-Expr", + "id": "0x558d739d1010-Expr", "variantKey": "Designator", - "Designator": "0x55eadb57ab90-Designator" + "Designator": "0x558d73abed70-Designator" }, { - "id": "0x55eadb57ab90-Designator", + "id": "0x558d73abed70-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb57aba0-DataRef" + "DataRef": "0x558d73abed80-DataRef" }, { - "id": "0x55eadb57aba0-DataRef", + "id": "0x558d73abed80-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55eadb4bb720-ArrayElement" + "ArrayElement": "0x558d739ff9a0-ArrayElement" }, { - "id": "0x55eadb4bb720-ArrayElement", - "base": "0x55eadb4bb720-DataRef", + "id": "0x558d739ff9a0-ArrayElement", + "base": "0x558d739ff9a0-DataRef", "subscripts": [ - "0x55eadb57ab00-SectionSubscript", - "0x55eadb57ab50-SectionSubscript" + "0x558d73abece0-SectionSubscript", + "0x558d73abed30-SectionSubscript" ] }, { - "id": "0x55eadb4bb720-DataRef", + "id": "0x558d739ff9a0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4bb720-Name" + "Name": "0x558d739ff9a0-Name" }, { - "id": "0x55eadb4bb720-Name", + "id": "0x558d739ff9a0-Name", "source": "g" }, { - "id": "0x55eadb57ab00-SectionSubscript", + "id": "0x558d73abece0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4bba30-Expr" + "Expr": "0x558d739ffcb0-Expr" }, { - "id": "0x55eadb4bba30-Expr", + "id": "0x558d739ffcb0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4b9cb0-Designator" + "Designator": "0x558d739fdf30-Designator" }, { - "id": "0x55eadb4b9cb0-Designator", + "id": "0x558d739fdf30-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4b9cc0-DataRef" + "DataRef": "0x558d739fdf40-DataRef" }, { - "id": "0x55eadb4b9cc0-DataRef", + "id": "0x558d739fdf40-DataRef", "variantKey": "Name", - "Name": "0x55eadb4b9cc0-Name" + "Name": "0x558d739fdf40-Name" }, { - "id": "0x55eadb4b9cc0-Name", + "id": "0x558d739fdf40-Name", "source": "j" }, { - "id": "0x55eadb57ab50-SectionSubscript", + "id": "0x558d73abed30-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4bbb10-Expr" + "Expr": "0x558d739ffd90-Expr" }, { - "id": "0x55eadb4bbb10-Expr", + "id": "0x558d739ffd90-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4ba390-Designator" + "Designator": "0x558d739fe610-Designator" }, { - "id": "0x55eadb4ba390-Designator", + "id": "0x558d739fe610-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4ba3a0-DataRef" + "DataRef": "0x558d739fe620-DataRef" }, { - "id": "0x55eadb4ba3a0-DataRef", + "id": "0x558d739fe620-DataRef", "variantKey": "Name", - "Name": "0x55eadb4ba3a0-Name" + "Name": "0x558d739fe620-Name" }, { - "id": "0x55eadb4ba3a0-Name", + "id": "0x558d739fe620-Name", "source": "i" }, { - "id": "0x55eadb48d0e0-Expr", + "id": "0x558d739e3d10-Expr", "variantKey": "Multiply", - "Multiply": "0x55eadb48d100-Multiply" + "Multiply": "0x558d739e3d30-Multiply" }, { - "id": "0x55eadb48d100-Multiply", - "left": "0x55eadb4b1ec0-Expr", - "right": "0x55eadb4b1c20-Expr", + "id": "0x558d739e3d30-Multiply", + "left": "0x558d739f61f0-Expr", + "right": "0x558d739f5cf0-Expr", "op": "MULTIPLY" }, { - "id": "0x55eadb4b1ec0-Expr", + "id": "0x558d739f61f0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb57af30-Designator" + "Designator": "0x558d73abf110-Designator" }, { - "id": "0x55eadb57af30-Designator", + "id": "0x558d73abf110-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb57af40-DataRef" + "DataRef": "0x558d73abf120-DataRef" }, { - "id": "0x55eadb57af40-DataRef", + "id": "0x558d73abf120-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55eadb4bc0e0-ArrayElement" + "ArrayElement": "0x558d73a00360-ArrayElement" }, { - "id": "0x55eadb4bc0e0-ArrayElement", - "base": "0x55eadb4bc0e0-DataRef", + "id": "0x558d73a00360-ArrayElement", + "base": "0x558d73a00360-DataRef", "subscripts": [ - "0x55eadb4bc1e0-SectionSubscript", - "0x55eadb57aef0-SectionSubscript" + "0x558d73a00460-SectionSubscript", + "0x558d73abf0d0-SectionSubscript" ] }, { - "id": "0x55eadb4bc0e0-DataRef", + "id": "0x558d73a00360-DataRef", "variantKey": "Name", - "Name": "0x55eadb4bc0e0-Name" + "Name": "0x558d73a00360-Name" }, { - "id": "0x55eadb4bc0e0-Name", + "id": "0x558d73a00360-Name", "source": "e" }, { - "id": "0x55eadb4bc1e0-SectionSubscript", + "id": "0x558d73a00460-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4bbe10-Expr" + "Expr": "0x558d73a00090-Expr" }, { - "id": "0x55eadb4bbe10-Expr", + "id": "0x558d73a00090-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4bc570-Designator" + "Designator": "0x558d73a007f0-Designator" }, { - "id": "0x55eadb4bc570-Designator", + "id": "0x558d73a007f0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4bc580-DataRef" + "DataRef": "0x558d73a00800-DataRef" }, { - "id": "0x55eadb4bc580-DataRef", + "id": "0x558d73a00800-DataRef", "variantKey": "Name", - "Name": "0x55eadb4bc580-Name" + "Name": "0x558d73a00800-Name" }, { - "id": "0x55eadb4bc580-Name", + "id": "0x558d73a00800-Name", "source": "k" }, { - "id": "0x55eadb57aef0-SectionSubscript", + "id": "0x558d73abf0d0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4bbef0-Expr" + "Expr": "0x558d73a00170-Expr" }, { - "id": "0x55eadb4bbef0-Expr", + "id": "0x558d73a00170-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4bc370-Designator" + "Designator": "0x558d73a005f0-Designator" }, { - "id": "0x55eadb4bc370-Designator", + "id": "0x558d73a005f0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4bc380-DataRef" + "DataRef": "0x558d73a00600-DataRef" }, { - "id": "0x55eadb4bc380-DataRef", + "id": "0x558d73a00600-DataRef", "variantKey": "Name", - "Name": "0x55eadb4bc380-Name" + "Name": "0x558d73a00600-Name" }, { - "id": "0x55eadb4bc380-Name", + "id": "0x558d73a00600-Name", "source": "i" }, { - "id": "0x55eadb4b1c20-Expr", + "id": "0x558d739f5cf0-Expr", "variantKey": "Designator", - "Designator": "0x55eadb57b3a0-Designator" + "Designator": "0x558d73abf580-Designator" }, { - "id": "0x55eadb57b3a0-Designator", + "id": "0x558d73abf580-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb57b3b0-DataRef" + "DataRef": "0x558d73abf590-DataRef" }, { - "id": "0x55eadb57b3b0-DataRef", + "id": "0x558d73abf590-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55eadb4bc7c0-ArrayElement" + "ArrayElement": "0x558d73a00a40-ArrayElement" }, { - "id": "0x55eadb4bc7c0-ArrayElement", - "base": "0x55eadb4bc7c0-DataRef", + "id": "0x558d73a00a40-ArrayElement", + "base": "0x558d73a00a40-DataRef", "subscripts": [ - "0x55eadb57b310-SectionSubscript", - "0x55eadb57b360-SectionSubscript" + "0x558d73abf4f0-SectionSubscript", + "0x558d73abf540-SectionSubscript" ] }, { - "id": "0x55eadb4bc7c0-DataRef", + "id": "0x558d73a00a40-DataRef", "variantKey": "Name", - "Name": "0x55eadb4bc7c0-Name" + "Name": "0x558d73a00a40-Name" }, { - "id": "0x55eadb4bc7c0-Name", + "id": "0x558d73a00a40-Name", "source": "f" }, { - "id": "0x55eadb57b310-SectionSubscript", + "id": "0x558d73abf4f0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4bc3d0-Expr" + "Expr": "0x558d73a00650-Expr" }, { - "id": "0x55eadb4bc3d0-Expr", + "id": "0x558d73a00650-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4bcc50-Designator" + "Designator": "0x558d73a00ed0-Designator" }, { - "id": "0x55eadb4bcc50-Designator", + "id": "0x558d73a00ed0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4bcc60-DataRef" + "DataRef": "0x558d73a00ee0-DataRef" }, { - "id": "0x55eadb4bcc60-DataRef", + "id": "0x558d73a00ee0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4bcc60-Name" + "Name": "0x558d73a00ee0-Name" }, { - "id": "0x55eadb4bcc60-Name", + "id": "0x558d73a00ee0-Name", "source": "j" }, { - "id": "0x55eadb57b360-SectionSubscript", + "id": "0x558d73abf540-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55eadb4bc5d0-Expr" + "Expr": "0x558d73a00850-Expr" }, { - "id": "0x55eadb4bc5d0-Expr", + "id": "0x558d73a00850-Expr", "variantKey": "Designator", - "Designator": "0x55eadb4bca50-Designator" + "Designator": "0x558d73a00cd0-Designator" }, { - "id": "0x55eadb4bca50-Designator", + "id": "0x558d73a00cd0-Designator", "variantKey": "DataRef", - "DataRef": "0x55eadb4bca60-DataRef" + "DataRef": "0x558d73a00ce0-DataRef" }, { - "id": "0x55eadb4bca60-DataRef", + "id": "0x558d73a00ce0-DataRef", "variantKey": "Name", - "Name": "0x55eadb4bca60-Name" + "Name": "0x558d73a00ce0-Name" }, { - "id": "0x55eadb4bca60-Name", + "id": "0x558d73a00ce0-Name", "source": "k" }, { - "id": "0x55eadb4b1750-Statement", - "statement": "0x55eadb4b1760-EndDoStmt", + "id": "0x558d739f5990-Statement", + "statement": "0x558d739f59a0-EndDoStmt", "source": "end do" }, { - "id": "0x55eadb4b1760-EndDoStmt" + "id": "0x558d739f59a0-EndDoStmt" }, { - "id": "0x55eadb4b1870-Statement", - "statement": "0x55eadb4b1880-EndDoStmt", + "id": "0x558d739f5430-Statement", + "statement": "0x558d739f5440-EndDoStmt", "source": "end do" }, { - "id": "0x55eadb4b1880-EndDoStmt" + "id": "0x558d739f5440-EndDoStmt" }, { - "id": "0x55eadb4b12f0-Statement", - "statement": "0x55eadb4b1300-EndDoStmt", + "id": "0x558d739f5550-Statement", + "statement": "0x558d739f5560-EndDoStmt", "source": "end do" }, { - "id": "0x55eadb4b1300-EndDoStmt" + "id": "0x558d739f5560-EndDoStmt" }, { - "id": "0x55eadb4bd350-Statement", - "statement": "0x55eadb4bd360-EndSubroutineStmt", + "id": "0x558d73a01620-Statement", + "statement": "0x558d73a01630-EndSubroutineStmt", "source": "end subroutine" }, { - "id": "0x55eadb4bd360-EndSubroutineStmt" + "id": "0x558d73a01630-EndSubroutineStmt" }, { - "id": "0x55eadb4a00a0-Statement", - "statement": "0x55eadb4a00b0-EndProgramStmt", + "id": "0x558d739e4030-Statement", + "statement": "0x558d739e4040-EndProgramStmt", "source": "end program" }, { - "id": "0x55eadb4a00b0-EndProgramStmt" + "id": "0x558d739e4040-EndProgramStmt" } ], "comments": [ { - "text": "!******************************************************************************", - "stmtId": "0x55eadb4a01e8-Statement", + "text": "******************************************************************************", + "stmtId": "0x558d739e4178-Statement", "trailing": false }, { - "text": "!", - "stmtId": "0x55eadb4a01e8-Statement", + "text": "", + "stmtId": "0x558d739e4178-Statement", "trailing": false }, { - "text": "! 3mm.F90: This file is part of the PolyBench/Fortran 1.0 test suite.", - "stmtId": "0x55eadb4a01e8-Statement", + "text": " 3mm.F90: This file is part of the PolyBench/Fortran 1.0 test suite.", + "stmtId": "0x558d739e4178-Statement", "trailing": false }, { - "text": "!", - "stmtId": "0x55eadb4a01e8-Statement", + "text": "", + "stmtId": "0x558d739e4178-Statement", "trailing": false }, { - "text": "! Contact: Louis-Noel Pouchet ", - "stmtId": "0x55eadb4a01e8-Statement", + "text": " Contact: Louis-Noel Pouchet ", + "stmtId": "0x558d739e4178-Statement", "trailing": false }, { - "text": "! Web address: http://polybench.sourceforge.net", - "stmtId": "0x55eadb4a01e8-Statement", + "text": " Web address: http://polybench.sourceforge.net", + "stmtId": "0x558d739e4178-Statement", "trailing": false }, { - "text": "!", - "stmtId": "0x55eadb4a01e8-Statement", + "text": "", + "stmtId": "0x558d739e4178-Statement", "trailing": false }, { - "text": "!******************************************************************************", - "stmtId": "0x55eadb4a01e8-Statement", + "text": "******************************************************************************", + "stmtId": "0x558d739e4178-Statement", "trailing": false }, { - "text": "! Include polybench common header.", - "stmtId": "0x55eadb4a01e8-Statement", + "text": " Include polybench common header.", + "stmtId": "0x558d739e4178-Statement", "trailing": false }, { - "text": "! Include benchmark-specific header.", - "stmtId": "0x55eadb4a01e8-Statement", + "text": " Include benchmark-specific header.", + "stmtId": "0x558d739e4178-Statement", "trailing": false }, { - "text": "! Default data type is double, default size is 4000.", - "stmtId": "0x55eadb4a01e8-Statement", + "text": " Default data type is double, default size is 4000.", + "stmtId": "0x558d739e4178-Statement", "trailing": false }, { - "text": "! Allocation of Arrays", - "stmtId": "0x55eadb48e510-Statement", + "text": " Allocation of Arrays", + "stmtId": "0x558d739d3030-Statement", "trailing": false }, { - "text": "! Initialization", - "stmtId": "0x55eadb494fa0-Statement", + "text": " Initialization", + "stmtId": "0x558d739d9ac0-Statement", "trailing": false }, { - "text": "! Kernel Execution", - "stmtId": "0x55eadb493e60-Statement", + "text": " Kernel Execution", + "stmtId": "0x558d739d8980-Statement", "trailing": false }, { - "text": "! Prevent dead-code elimination. All live-out data must be printed", - "stmtId": "0x55eadb493820-Statement", + "text": " Prevent dead-code elimination. All live-out data must be printed", + "stmtId": "0x558d739d8340-Statement", "trailing": false }, { - "text": "! by the function call in argument.", - "stmtId": "0x55eadb493820-Statement", + "text": " by the function call in argument.", + "stmtId": "0x558d739d8340-Statement", "trailing": false }, { - "text": "! Deallocation of Arrays", - "stmtId": "0x55eadb4a74c0-Statement", + "text": " Deallocation of Arrays", + "stmtId": "0x558d739eb4e0-Statement", "trailing": false }, { - "text": "!$pragma scop", - "stmtId": "0x55eadb4b86d8-Statement", + "text": "$pragma scop", + "stmtId": "0x558d739fc958-Statement", "trailing": false }, { - "text": "! E := A*B", - "stmtId": "0x55eadb4b86d8-Statement", + "text": " E := A*B", + "stmtId": "0x558d739fc958-Statement", "trailing": false }, { - "text": "! F := C*D", - "stmtId": "0x55eadb4baf38-Statement", + "text": " F := C*D", + "stmtId": "0x558d739ff1b8-Statement", "trailing": false }, { - "text": "! G := E*F", - "stmtId": "0x55eadb4b1348-Statement", + "text": " G := E*F", + "stmtId": "0x558d739f55a8-Statement", "trailing": false }, { - "text": "!$pragma endscop", - "stmtId": "0x55eadb4bd350-Statement", + "text": "$pragma endscop", + "stmtId": "0x558d73a01620-Statement", "trailing": false } ], diff --git a/FortranParser/resources-test/fortran/parser/stmt/legacy_do.json b/FortranParser/resources-test/fortran/parser/stmt/legacy_do.json index 02cc138f..a669fc70 100644 --- a/FortranParser/resources-test/fortran/parser/stmt/legacy_do.json +++ b/FortranParser/resources-test/fortran/parser/stmt/legacy_do.json @@ -1,406 +1,407 @@ { + "fileExtension": "f90", "nodes": [ { - "id": "0x559c881a5f00-Program", + "id": "0x55d01b18df00-Program", "ProgramUnit": [ - "0x559c881dbe50-ProgramUnit" + "0x55d01b1c3e50-ProgramUnit" ] }, { - "id": "0x559c881dbe50-ProgramUnit", + "id": "0x55d01b1c3e50-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x559c881d3680-MainProgram" + "MainProgram": "0x55d01b1bb680-MainProgram" }, { - "id": "0x559c881d3680-MainProgram", - "Statement": "0x559c881d37c8-Statement", - "SpecificationPart": "0x559c881d3720-SpecificationPart", - "ExecutionPart": "0x559c881d3708-ExecutionPart", - "Statement": "0x559c881d3680-Statement" + "id": "0x55d01b1bb680-MainProgram", + "Statement": "0x55d01b1bb7c8-Statement", + "SpecificationPart": "0x55d01b1bb720-SpecificationPart", + "ExecutionPart": "0x55d01b1bb708-ExecutionPart", + "Statement": "0x55d01b1bb680-Statement" }, { - "id": "0x559c881d37c8-Statement", - "statement": "0x559c881d37d8-ProgramStmt", + "id": "0x55d01b1bb7c8-Statement", + "statement": "0x55d01b1bb7d8-ProgramStmt", "source": "program LEGACY_DO" }, { - "id": "0x559c881d37d8-ProgramStmt", - "Name": "0x559c881d37d8-Name" + "id": "0x55d01b1bb7d8-ProgramStmt", + "Name": "0x55d01b1bb7d8-Name" }, { - "id": "0x559c881d37d8-Name", + "id": "0x55d01b1bb7d8-Name", "source": "LEGACY_DO" }, { - "id": "0x559c881d3720-SpecificationPart", - "ImplicitPart": "0x559c881d3738-ImplicitPart" + "id": "0x55d01b1bb720-SpecificationPart", + "ImplicitPart": "0x55d01b1bb738-ImplicitPart" }, { - "id": "0x559c881d3738-ImplicitPart" + "id": "0x55d01b1bb738-ImplicitPart" }, { - "id": "0x559c881d3708-ExecutionPart", + "id": "0x55d01b1bb708-ExecutionPart", "ExecutionPartConstruct": [ - "0x559c881e3160-ExecutionPartConstruct", - "0x559c881e19e0-ExecutionPartConstruct" + "0x55d01b1cb160-ExecutionPartConstruct", + "0x55d01b1c99e0-ExecutionPartConstruct" ] }, { - "id": "0x559c881d3708-ExecutionPartConstruct" + "id": "0x55d01b1bb708-ExecutionPartConstruct" }, { - "id": "0x559c881e3160-ExecutionPartConstruct", + "id": "0x55d01b1cb160-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x559c881e3160-ExecutableConstruct" + "ExecutableConstruct": "0x55d01b1cb160-ExecutableConstruct" }, { - "id": "0x559c881e3160-ExecutableConstruct", + "id": "0x55d01b1cb160-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x559c881e3360-DoConstruct" + "DoConstruct": "0x55d01b1cb360-DoConstruct" }, { - "id": "0x559c881e3360-DoConstruct", - "Statement": "0x559c881e33b8-Statement", + "id": "0x55d01b1cb360-DoConstruct", + "Statement": "0x55d01b1cb3b8-Statement", "ExecutionPartConstruct": [ - "0x559c881e17c0-ExecutionPartConstruct", - "0x559c881b3170-ExecutionPartConstruct" + "0x55d01b1c97c0-ExecutionPartConstruct", + "0x55d01b19b170-ExecutionPartConstruct" ], - "Statement": "0x559c881e3360-Statement" + "Statement": "0x55d01b1cb360-Statement" }, { - "id": "0x559c881e33b8-Statement", - "statement": "0x559c881e33c8-NonLabelDoStmt", + "id": "0x55d01b1cb3b8-Statement", + "statement": "0x55d01b1cb3c8-NonLabelDoStmt", "source": "do 10 i = 1, 5" }, { - "id": "0x559c881e33c8-NonLabelDoStmt", - "LoopControl": "0x559c881e33c8-LoopControl" + "id": "0x55d01b1cb3c8-NonLabelDoStmt", + "LoopControl": "0x55d01b1cb3c8-LoopControl" }, { - "id": "0x559c881e33c8-LoopControl", + "id": "0x55d01b1cb3c8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x559c881e33c8-LoopBounds" + "LoopBounds": "0x55d01b1cb3c8-LoopBounds" }, { - "id": "0x559c881e33c8-LoopBounds", - "var": "0x559c881e33c8-Name", - "lower": "0x559c88145790-Expr", - "upper": "0x559c881e1340-Expr" + "id": "0x55d01b1cb3c8-LoopBounds", + "var": "0x55d01b1cb3c8-Name", + "lower": "0x55d01b12d790-Expr", + "upper": "0x55d01b1c9340-Expr" }, { - "id": "0x559c881e33c8-Name", + "id": "0x55d01b1cb3c8-Name", "source": "i" }, { - "id": "0x559c88145790-Expr", + "id": "0x55d01b12d790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x559c881457b0-LiteralConstant" + "LiteralConstant": "0x55d01b12d7b0-LiteralConstant" }, { - "id": "0x559c881457b0-LiteralConstant", + "id": "0x55d01b12d7b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x559c881457b0-IntLiteralConstant" + "IntLiteralConstant": "0x55d01b12d7b0-IntLiteralConstant" }, { - "id": "0x559c881457b0-IntLiteralConstant", + "id": "0x55d01b12d7b0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x559c881e1340-Expr", + "id": "0x55d01b1c9340-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x559c881e1360-LiteralConstant" + "LiteralConstant": "0x55d01b1c9360-LiteralConstant" }, { - "id": "0x559c881e1360-LiteralConstant", + "id": "0x55d01b1c9360-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x559c881e1360-IntLiteralConstant" + "IntLiteralConstant": "0x55d01b1c9360-IntLiteralConstant" }, { - "id": "0x559c881e1360-IntLiteralConstant", + "id": "0x55d01b1c9360-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x559c881e33a0-ExecutionPartConstruct" + "id": "0x55d01b1cb3a0-ExecutionPartConstruct" }, { - "id": "0x559c881e17c0-ExecutionPartConstruct", + "id": "0x55d01b1c97c0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x559c881e17c0-ExecutableConstruct" + "ExecutableConstruct": "0x55d01b1c97c0-ExecutableConstruct" }, { - "id": "0x559c881e17c0-ExecutableConstruct", + "id": "0x55d01b1c97c0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x559c881e17c0-Statement" + "Statement": "0x55d01b1c97c0-Statement" }, { - "id": "0x559c881e17c0-Statement", - "statement": "0x559c881e17d0-ActionStmt", + "id": "0x55d01b1c97c0-Statement", + "statement": "0x55d01b1c97d0-ActionStmt", "source": "print *, i" }, { - "id": "0x559c881e17d0-ActionStmt", + "id": "0x55d01b1c97d0-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x559c881e1640-PrintStmt" + "PrintStmt": "0x55d01b1c9640-PrintStmt" }, { - "id": "0x559c881e1640-PrintStmt", - "Format": "0x559c881e1658-Format", + "id": "0x55d01b1c9640-PrintStmt", + "Format": "0x55d01b1c9658-Format", "OutputItem": [ - "0x559c881e14f0-OutputItem" + "0x55d01b1c94f0-OutputItem" ] }, { - "id": "0x559c881e1658-Format", + "id": "0x55d01b1c9658-Format", "variantKey": "Star", - "Star": "0x559c881e1658-Star" + "Star": "0x55d01b1c9658-Star" }, { - "id": "0x559c881e1658-Star" + "id": "0x55d01b1c9658-Star" }, { - "id": "0x559c881e14f0-OutputItem", + "id": "0x55d01b1c94f0-OutputItem", "variantKey": "Expr", - "Expr": "0x559c881e14f0-Expr" + "Expr": "0x55d01b1c94f0-Expr" }, { - "id": "0x559c881e14f0-Expr", + "id": "0x55d01b1c94f0-Expr", "variantKey": "Designator", - "Designator": "0x559c881e1480-Designator" + "Designator": "0x55d01b1c9480-Designator" }, { - "id": "0x559c881e1480-Designator", + "id": "0x55d01b1c9480-Designator", "variantKey": "DataRef", - "DataRef": "0x559c881e1490-DataRef" + "DataRef": "0x55d01b1c9490-DataRef" }, { - "id": "0x559c881e1490-DataRef", + "id": "0x55d01b1c9490-DataRef", "variantKey": "Name", - "Name": "0x559c881e1490-Name" + "Name": "0x55d01b1c9490-Name" }, { - "id": "0x559c881e1490-Name", + "id": "0x55d01b1c9490-Name", "source": "i" }, { - "id": "0x559c881b3170-ExecutionPartConstruct", + "id": "0x55d01b19b170-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x559c881b3170-ExecutableConstruct" + "ExecutableConstruct": "0x55d01b19b170-ExecutableConstruct" }, { - "id": "0x559c881b3170-ExecutableConstruct", + "id": "0x55d01b19b170-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x559c881b3170-Statement" + "Statement": "0x55d01b19b170-Statement" }, { - "id": "0x559c881b3170-Statement", - "statement": "0x559c881b3180-ActionStmt", + "id": "0x55d01b19b170-Statement", + "statement": "0x55d01b19b180-ActionStmt", "label": "10", "source": "10 continue" }, { - "id": "0x559c881b3180-ActionStmt", + "id": "0x55d01b19b180-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x559c881b3180-ContinueStmt" + "ContinueStmt": "0x55d01b19b180-ContinueStmt" }, { - "id": "0x559c881b3180-ContinueStmt" + "id": "0x55d01b19b180-ContinueStmt" }, { - "id": "0x559c881e3360-Statement", - "statement": "0x559c881e3370-EndDoStmt", + "id": "0x55d01b1cb360-Statement", + "statement": "0x55d01b1cb370-EndDoStmt", "source": "" }, { - "id": "0x559c881e3370-EndDoStmt" + "id": "0x55d01b1cb370-EndDoStmt" }, { - "id": "0x559c881e19e0-ExecutionPartConstruct", + "id": "0x55d01b1c99e0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x559c881e19e0-ExecutableConstruct" + "ExecutableConstruct": "0x55d01b1c99e0-ExecutableConstruct" }, { - "id": "0x559c881e19e0-ExecutableConstruct", + "id": "0x55d01b1c99e0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x559c881e3480-DoConstruct" + "DoConstruct": "0x55d01b1cb480-DoConstruct" }, { - "id": "0x559c881e3480-DoConstruct", - "Statement": "0x559c881e34d8-Statement", + "id": "0x55d01b1cb480-DoConstruct", + "Statement": "0x55d01b1cb4d8-Statement", "ExecutionPartConstruct": [ - "0x559c881e1cf0-ExecutionPartConstruct", - "0x559c881b2da0-ExecutionPartConstruct" + "0x55d01b1c9cf0-ExecutionPartConstruct", + "0x55d01b19ada0-ExecutionPartConstruct" ], - "Statement": "0x559c881e3480-Statement" + "Statement": "0x55d01b1cb480-Statement" }, { - "id": "0x559c881e34d8-Statement", - "statement": "0x559c881e34e8-NonLabelDoStmt", + "id": "0x55d01b1cb4d8-Statement", + "statement": "0x55d01b1cb4e8-NonLabelDoStmt", "source": "do 20 i = 11, 15" }, { - "id": "0x559c881e34e8-NonLabelDoStmt", - "LoopControl": "0x559c881e34e8-LoopControl" + "id": "0x55d01b1cb4e8-NonLabelDoStmt", + "LoopControl": "0x55d01b1cb4e8-LoopControl" }, { - "id": "0x559c881e34e8-LoopControl", + "id": "0x55d01b1cb4e8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x559c881e34e8-LoopBounds" + "LoopBounds": "0x55d01b1cb4e8-LoopBounds" }, { - "id": "0x559c881e34e8-LoopBounds", - "var": "0x559c881e34e8-Name", - "lower": "0x559c881e1810-Expr", - "upper": "0x559c881e18f0-Expr" + "id": "0x55d01b1cb4e8-LoopBounds", + "var": "0x55d01b1cb4e8-Name", + "lower": "0x55d01b1c9810-Expr", + "upper": "0x55d01b1c98f0-Expr" }, { - "id": "0x559c881e34e8-Name", + "id": "0x55d01b1cb4e8-Name", "source": "i" }, { - "id": "0x559c881e1810-Expr", + "id": "0x55d01b1c9810-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x559c881e1830-LiteralConstant" + "LiteralConstant": "0x55d01b1c9830-LiteralConstant" }, { - "id": "0x559c881e1830-LiteralConstant", + "id": "0x55d01b1c9830-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x559c881e1830-IntLiteralConstant" + "IntLiteralConstant": "0x55d01b1c9830-IntLiteralConstant" }, { - "id": "0x559c881e1830-IntLiteralConstant", + "id": "0x55d01b1c9830-IntLiteralConstant", "CharBlock": "11" }, { - "id": "0x559c881e18f0-Expr", + "id": "0x55d01b1c98f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x559c881e1910-LiteralConstant" + "LiteralConstant": "0x55d01b1c9910-LiteralConstant" }, { - "id": "0x559c881e1910-LiteralConstant", + "id": "0x55d01b1c9910-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x559c881e1910-IntLiteralConstant" + "IntLiteralConstant": "0x55d01b1c9910-IntLiteralConstant" }, { - "id": "0x559c881e1910-IntLiteralConstant", + "id": "0x55d01b1c9910-IntLiteralConstant", "CharBlock": "15" }, { - "id": "0x559c881e34c0-ExecutionPartConstruct" + "id": "0x55d01b1cb4c0-ExecutionPartConstruct" }, { - "id": "0x559c881e1cf0-ExecutionPartConstruct", + "id": "0x55d01b1c9cf0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x559c881e1cf0-ExecutableConstruct" + "ExecutableConstruct": "0x55d01b1c9cf0-ExecutableConstruct" }, { - "id": "0x559c881e1cf0-ExecutableConstruct", + "id": "0x55d01b1c9cf0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x559c881e1cf0-Statement" + "Statement": "0x55d01b1c9cf0-Statement" }, { - "id": "0x559c881e1cf0-Statement", - "statement": "0x559c881e1d00-ActionStmt", + "id": "0x55d01b1c9cf0-Statement", + "statement": "0x55d01b1c9d00-ActionStmt", "source": "print *, i" }, { - "id": "0x559c881e1d00-ActionStmt", + "id": "0x55d01b1c9d00-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x559c881e1be0-PrintStmt" + "PrintStmt": "0x55d01b1c9be0-PrintStmt" }, { - "id": "0x559c881e1be0-PrintStmt", - "Format": "0x559c881e1bf8-Format", + "id": "0x55d01b1c9be0-PrintStmt", + "Format": "0x55d01b1c9bf8-Format", "OutputItem": [ - "0x559c881e1b00-OutputItem" + "0x55d01b1c9b00-OutputItem" ] }, { - "id": "0x559c881e1bf8-Format", + "id": "0x55d01b1c9bf8-Format", "variantKey": "Star", - "Star": "0x559c881e1bf8-Star" + "Star": "0x55d01b1c9bf8-Star" }, { - "id": "0x559c881e1bf8-Star" + "id": "0x55d01b1c9bf8-Star" }, { - "id": "0x559c881e1b00-OutputItem", + "id": "0x55d01b1c9b00-OutputItem", "variantKey": "Expr", - "Expr": "0x559c881e1b00-Expr" + "Expr": "0x55d01b1c9b00-Expr" }, { - "id": "0x559c881e1b00-Expr", + "id": "0x55d01b1c9b00-Expr", "variantKey": "Designator", - "Designator": "0x559c881e1a90-Designator" + "Designator": "0x55d01b1c9a90-Designator" }, { - "id": "0x559c881e1a90-Designator", + "id": "0x55d01b1c9a90-Designator", "variantKey": "DataRef", - "DataRef": "0x559c881e1aa0-DataRef" + "DataRef": "0x55d01b1c9aa0-DataRef" }, { - "id": "0x559c881e1aa0-DataRef", + "id": "0x55d01b1c9aa0-DataRef", "variantKey": "Name", - "Name": "0x559c881e1aa0-Name" + "Name": "0x55d01b1c9aa0-Name" }, { - "id": "0x559c881e1aa0-Name", + "id": "0x55d01b1c9aa0-Name", "source": "i" }, { - "id": "0x559c881b2da0-ExecutionPartConstruct", + "id": "0x55d01b19ada0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x559c881b2da0-ExecutableConstruct" + "ExecutableConstruct": "0x55d01b19ada0-ExecutableConstruct" }, { - "id": "0x559c881b2da0-ExecutableConstruct", + "id": "0x55d01b19ada0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x559c881b2da0-Statement" + "Statement": "0x55d01b19ada0-Statement" }, { - "id": "0x559c881b2da0-Statement", - "statement": "0x559c881b2db0-ActionStmt", + "id": "0x55d01b19ada0-Statement", + "statement": "0x55d01b19adb0-ActionStmt", "label": "20", "source": "" }, { - "id": "0x559c881b2db0-ActionStmt", + "id": "0x55d01b19adb0-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x559c881b2db0-ContinueStmt" + "ContinueStmt": "0x55d01b19adb0-ContinueStmt" }, { - "id": "0x559c881b2db0-ContinueStmt" + "id": "0x55d01b19adb0-ContinueStmt" }, { - "id": "0x559c881e3480-Statement", - "statement": "0x559c881e3490-EndDoStmt", + "id": "0x55d01b1cb480-Statement", + "statement": "0x55d01b1cb490-EndDoStmt", "source": "" }, { - "id": "0x559c881e3490-EndDoStmt" + "id": "0x55d01b1cb490-EndDoStmt" }, { - "id": "0x559c881d3680-Statement", - "statement": "0x559c881d3690-EndProgramStmt", + "id": "0x55d01b1bb680-Statement", + "statement": "0x55d01b1bb690-EndProgramStmt", "source": "end program LEGACY_DO" }, { - "id": "0x559c881d3690-EndProgramStmt", - "Name": "0x559c881d3690-Name" + "id": "0x55d01b1bb690-EndProgramStmt", + "Name": "0x55d01b1bb690-Name" }, { - "id": "0x559c881d3690-Name", + "id": "0x55d01b1bb690-Name", "source": "LEGACY_DO" } ], "comments": [ { - "text": "! Legacy do's end with a continue statement", - "stmtId": "0x559c881e33b8-Statement", + "text": " Legacy do's end with a continue statement", + "stmtId": "0x55d01b1cb3b8-Statement", "trailing": false }, { - "text": "! They can also end normally", - "stmtId": "0x559c881e34d8-Statement", + "text": " They can also end normally", + "stmtId": "0x55d01b1cb4d8-Statement", "trailing": false } ], diff --git a/FortranParser/resources-test/fortran/parser/stmt/return.json b/FortranParser/resources-test/fortran/parser/stmt/return.json index f4641b91..cbd8e391 100644 --- a/FortranParser/resources-test/fortran/parser/stmt/return.json +++ b/FortranParser/resources-test/fortran/parser/stmt/return.json @@ -2,298 +2,281 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x55710387af00-Program", + "id": "0x555915b0df00-Program", "ProgramUnit": [ - "0x5571038afca0-ProgramUnit" + "0x555915b42c70-ProgramUnit" ] }, { - "id": "0x5571038afca0-ProgramUnit", + "id": "0x555915b42c70-ProgramUnit", "variantKey": "SubroutineSubprogram", - "SubroutineSubprogram": "0x5571038a75b0-SubroutineSubprogram" + "SubroutineSubprogram": "0x555915b3baf0-SubroutineSubprogram" }, { - "id": "0x5571038a75b0-SubroutineSubprogram", - "Statement": "0x5571038a76f8-Statement", - "SpecificationPart": "0x5571038a7650-SpecificationPart", - "ExecutionPart": "0x5571038a7638-ExecutionPart", - "Statement": "0x5571038a75b0-Statement" + "id": "0x555915b3baf0-SubroutineSubprogram", + "Statement": "0x555915b3bc38-Statement", + "SpecificationPart": "0x555915b3bb90-SpecificationPart", + "ExecutionPart": "0x555915b3bb78-ExecutionPart", + "Statement": "0x555915b3baf0-Statement" }, { - "id": "0x5571038a76f8-Statement", - "statement": "0x5571038a7708-SubroutineStmt", + "id": "0x555915b3bc38-Statement", + "statement": "0x555915b3bc48-SubroutineStmt", "source": "subroutine check_positive(n, *)" }, { - "id": "0x5571038a7708-SubroutineStmt", - "Name": "0x5571038a7740-Name", + "id": "0x555915b3bc48-SubroutineStmt", + "Name": "0x555915b3bc80-Name", "DummyArg": [ - "0x5571038bda10-DummyArg", - "0x5571038bd330-DummyArg" + "0x555915b50a00-DummyArg", + "0x555915b50320-DummyArg" ] }, { - "id": "0x5571038a7740-Name", + "id": "0x555915b3bc80-Name", "source": "check_positive" }, { - "id": "0x5571038bda10-DummyArg", + "id": "0x555915b50a00-DummyArg", "variantKey": "Name", - "Name": "0x5571038bda10-Name" + "Name": "0x555915b50a00-Name" }, { - "id": "0x5571038bda10-Name", + "id": "0x555915b50a00-Name", "source": "n" }, { - "id": "0x5571038bd330-DummyArg", + "id": "0x555915b50320-DummyArg", "variantKey": "Star", - "Star": "0x5571038bd330-Star" + "Star": "0x555915b50320-Star" }, { - "id": "0x5571038bd330-Star" + "id": "0x555915b50320-Star" }, { - "id": "0x5571038a7650-SpecificationPart", - "ImplicitPart": "0x5571038a7668-ImplicitPart", + "id": "0x555915b3bb90-SpecificationPart", + "ImplicitPart": "0x555915b3bba8-ImplicitPart", "DeclarationConstruct": [ - "0x5571038794e0-DeclarationConstruct" + "0x555915b1b170-DeclarationConstruct" ] }, { - "id": "0x5571038a7668-ImplicitPart", - "ImplicitPartStmt": [ - "0x5571038a2100-ImplicitPartStmt" - ] - }, - { - "id": "0x5571038a2100-ImplicitPartStmt", - "variantKey": "Statement", - "Statement": "0x5571038a2100-Statement" - }, - { - "id": "0x5571038a2100-Statement", - "statement": "0x5571038afc30-ImplicitStmt", - "source": "implicit none" - }, - { - "id": "0x5571038afc30-ImplicitStmt", - "variantKey": "list" + "id": "0x555915b3bba8-ImplicitPart" }, { - "id": "0x5571038794e0-DeclarationConstruct", + "id": "0x555915b1b170-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5571038794e0-SpecificationConstruct" + "SpecificationConstruct": "0x555915b1b170-SpecificationConstruct" }, { - "id": "0x5571038794e0-SpecificationConstruct", + "id": "0x555915b1b170-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5571038794e0-Statement" + "Statement": "0x555915b1b170-Statement" }, { - "id": "0x5571038794e0-Statement", - "statement": "0x5571038b9d80-TypeDeclarationStmt", + "id": "0x555915b1b170-Statement", + "statement": "0x555915b4b180-TypeDeclarationStmt", "source": "integer, intent(in) :: n" }, { - "id": "0x5571038b9d80-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5571038b9db0-DeclarationTypeSpec", + "id": "0x555915b4b180-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x555915b4b1b0-DeclarationTypeSpec", "AttrSpec": [ - "0x5571038be820-AttrSpec" + "0x555915b35100-AttrSpec" ], "EntityDecl": [ - "0x5571038ba130-EntityDecl" + "0x555915ac3260-EntityDecl" ] }, { - "id": "0x5571038b9db0-DeclarationTypeSpec", + "id": "0x555915b4b1b0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5571038b9db0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x555915b4b1b0-IntrinsicTypeSpec" }, { - "id": "0x5571038b9db0-IntrinsicTypeSpec", + "id": "0x555915b4b1b0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x5571038b9db0-IntegerTypeSpec" + "IntegerTypeSpec": "0x555915b4b1b0-IntegerTypeSpec" }, { - "id": "0x5571038b9db0-IntegerTypeSpec" + "id": "0x555915b4b1b0-IntegerTypeSpec" }, { - "id": "0x5571038be820-AttrSpec", + "id": "0x555915b35100-AttrSpec", "variantKey": "IntentSpec", - "IntentSpec": "0x5571038be820-IntentSpec" + "IntentSpec": "0x555915b35100-IntentSpec" }, { - "id": "0x5571038be820-IntentSpec", - "Intent = In": "0x5571038be820-Intent = In", + "id": "0x555915b35100-IntentSpec", + "Intent = In": "0x555915b35100-Intent = In", "intent": "In" }, { - "id": "0x5571038be820-Intent = In", + "id": "0x555915b35100-Intent = In", "disambiguation": "Fortran::parser::IntentSpec::Intent", "value": "In" }, { - "id": "0x5571038ba130-EntityDecl", - "Name": "0x5571038ba1e8-Name" + "id": "0x555915ac3260-EntityDecl", + "Name": "0x555915ac3318-Name" }, { - "id": "0x5571038ba1e8-Name", + "id": "0x555915ac3318-Name", "source": "n" }, { - "id": "0x5571038a7638-ExecutionPart", + "id": "0x555915b3bb78-ExecutionPart", "ExecutionPartConstruct": [ - "0x5571038a5b00-ExecutionPartConstruct", - "0x557103887da0-ExecutionPartConstruct" + "0x555915b38b00-ExecutionPartConstruct", + "0x555915b1ada0-ExecutionPartConstruct" ] }, { - "id": "0x5571038a7638-ExecutionPartConstruct" + "id": "0x555915b3bb78-ExecutionPartConstruct" }, { - "id": "0x5571038a5b00-ExecutionPartConstruct", + "id": "0x555915b38b00-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5571038a5b00-ExecutableConstruct" + "ExecutableConstruct": "0x555915b38b00-ExecutableConstruct" }, { - "id": "0x5571038a5b00-ExecutableConstruct", + "id": "0x555915b38b00-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5571038a5b00-Statement" + "Statement": "0x555915b38b00-Statement" }, { - "id": "0x5571038a5b00-Statement", - "statement": "0x5571038a5b10-ActionStmt", + "id": "0x555915b38b00-Statement", + "statement": "0x555915b38b10-ActionStmt", "source": "if(n < 0) return 1" }, { - "id": "0x5571038a5b10-ActionStmt", + "id": "0x555915b38b10-ActionStmt", "variantKey": "IfStmt", - "IfStmt": "0x5571038afc60-IfStmt" + "IfStmt": "0x555915b42c30-IfStmt" }, { - "id": "0x5571038afc60-IfStmt", - "Expr": "0x5571038ba620-Expr", - "UnlabeledStatement": "0x5571038afc60-UnlabeledStatement" + "id": "0x555915b42c30-IfStmt", + "Expr": "0x555915b4d0c0-Expr", + "UnlabeledStatement": "0x555915b42c30-UnlabeledStatement" }, { - "id": "0x5571038ba620-Expr", + "id": "0x555915b4d0c0-Expr", "variantKey": "LT", - "LT": "0x5571038ba640-LT" + "LT": "0x555915b4d0e0-LT" }, { - "id": "0x5571038ba640-LT", - "left": "0x5571038a57e0-Expr", - "right": "0x5571038ba800-Expr", + "id": "0x555915b4d0e0-LT", + "left": "0x555915b388c0-Expr", + "right": "0x555915b4d1a0-Expr", "op": "LT" }, { - "id": "0x5571038a57e0-Expr", + "id": "0x555915b388c0-Expr", "variantKey": "Designator", - "Designator": "0x5571038ba400-Designator" + "Designator": "0x555915b4d750-Designator" }, { - "id": "0x5571038ba400-Designator", + "id": "0x555915b4d750-Designator", "variantKey": "DataRef", - "DataRef": "0x5571038ba410-DataRef" + "DataRef": "0x555915b4d760-DataRef" }, { - "id": "0x5571038ba410-DataRef", + "id": "0x555915b4d760-DataRef", "variantKey": "Name", - "Name": "0x5571038ba410-Name" + "Name": "0x555915b4d760-Name" }, { - "id": "0x5571038ba410-Name", + "id": "0x555915b4d760-Name", "source": "n" }, { - "id": "0x5571038ba800-Expr", + "id": "0x555915b4d1a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5571038ba820-LiteralConstant" + "LiteralConstant": "0x555915b4d1c0-LiteralConstant" }, { - "id": "0x5571038ba820-LiteralConstant", + "id": "0x555915b4d1c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5571038ba820-IntLiteralConstant" + "IntLiteralConstant": "0x555915b4d1c0-IntLiteralConstant" }, { - "id": "0x5571038ba820-IntLiteralConstant", + "id": "0x555915b4d1c0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x5571038afc60-UnlabeledStatement", - "statement": "0x5571038afc70-ActionStmt", + "id": "0x555915b42c30-UnlabeledStatement", + "statement": "0x555915b42c40-ActionStmt", "source": "return 1" }, { - "id": "0x5571038afc70-ActionStmt", + "id": "0x555915b42c40-ActionStmt", "variantKey": "ReturnStmt", - "ReturnStmt": "0x5571038afb90-ReturnStmt" + "ReturnStmt": "0x555915b42b90-ReturnStmt" }, { - "id": "0x5571038afb90-ReturnStmt", - "Expr": "0x55710381a790-Expr" + "id": "0x555915b42b90-ReturnStmt", + "Expr": "0x555915aad790-Expr" }, { - "id": "0x55710381a790-Expr", + "id": "0x555915aad790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55710381a7b0-LiteralConstant" + "LiteralConstant": "0x555915aad7b0-LiteralConstant" }, { - "id": "0x55710381a7b0-LiteralConstant", + "id": "0x555915aad7b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55710381a7b0-IntLiteralConstant" + "IntLiteralConstant": "0x555915aad7b0-IntLiteralConstant" }, { - "id": "0x55710381a7b0-IntLiteralConstant", + "id": "0x555915aad7b0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x557103887da0-ExecutionPartConstruct", + "id": "0x555915b1ada0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557103887da0-ExecutableConstruct" + "ExecutableConstruct": "0x555915b1ada0-ExecutableConstruct" }, { - "id": "0x557103887da0-ExecutableConstruct", + "id": "0x555915b1ada0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x557103887da0-Statement" + "Statement": "0x555915b1ada0-Statement" }, { - "id": "0x557103887da0-Statement", - "statement": "0x557103887db0-ActionStmt", + "id": "0x555915b1ada0-Statement", + "statement": "0x555915b1adb0-ActionStmt", "source": "return" }, { - "id": "0x557103887db0-ActionStmt", + "id": "0x555915b1adb0-ActionStmt", "variantKey": "ReturnStmt", - "ReturnStmt": "0x5571038bcd20-ReturnStmt" + "ReturnStmt": "0x555915b4fd10-ReturnStmt" }, { - "id": "0x5571038bcd20-ReturnStmt" + "id": "0x555915b4fd10-ReturnStmt" }, { - "id": "0x5571038a75b0-Statement", - "statement": "0x5571038a75c0-EndSubroutineStmt", + "id": "0x555915b3baf0-Statement", + "statement": "0x555915b3bb00-EndSubroutineStmt", "source": "end subroutine check_positive" }, { - "id": "0x5571038a75c0-EndSubroutineStmt", - "Name": "0x5571038a75c0-Name" + "id": "0x555915b3bb00-EndSubroutineStmt", + "Name": "0x555915b3bb00-Name" }, { - "id": "0x5571038a75c0-Name", + "id": "0x555915b3bb00-Name", "source": "check_positive" } ], "comments": [ { - "text": "! Exit and jump to 1st label argument (*)", - "stmtId": "0x5571038a5b00-Statement", + "text": " Exit and jump to 1st label argument (*)", + "stmtId": "0x555915b38b00-Statement", "trailing": true }, { - "text": "! Exit normally", - "stmtId": "0x557103887da0-Statement", + "text": " Exit normally", + "stmtId": "0x555915b1ada0-Statement", "trailing": true } ], From f4750244c89ce3bd3ab81461e85df36597830b4f Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 21 Jul 2026 17:38:07 +0100 Subject: [PATCH 054/260] Fix Fujitsu test expected code --- .../fortran/parser/fujitsu/0001/0001_0007.expected.f | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.expected.f b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.expected.f index 6bcbe151..b4340702 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.expected.f +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.expected.f @@ -4,13 +4,13 @@ code = 0 CALL sub1(a, b, c, 1000, code) C - IF (code == 0) WRITE(6,*) "OK" + IF (code == 0) WRITE(6, *) "OK" C STOP END PROGRAM C SUBROUTINE sub1(a, b, c, n, code) - INTEGER a(n), b(n), c(n), code + INTEGER :: a(n), b(n), c(n), code C a(1:n) = b(1:n) + 1 b(1:n) = b(1:n) + 1 @@ -32,7 +32,7 @@ SUBROUTINE sub1(a, b, c, n, code) WRITE(6, *) "ELEMENT NUMBER = B(", i, ")" code = 1 GO TO 40 - ENDIF + END IF 30 CONTINUE C 40 CONTINUE From edcbf9e6d9c07b9a936cda4c72de654c50e67db0 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 21 Jul 2026 18:47:33 +0100 Subject: [PATCH 055/260] Update weaver AST structure --- .../fortran/weaverspecs/joinPointModel.xml | 10 +- .../specs/fortran/weaver/FortranWeaver.json | 282 ++++++++++++++---- .../fortran/weaver/importable/AstFactory.java | 6 +- .../weaver/joinpoints/FCompilerDirective.java | 3 +- .../weaver/joinpoints/FDoConstruct.java | 1 + .../joinpoints/FExecutableConstruct.java | 18 ++ .../weaver/joinpoints/FIfConstruct.java | 1 + .../weaver/joinpoints/FOmpConstruct.java | 3 +- 8 files changed, 261 insertions(+), 63 deletions(-) create mode 100644 FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecutableConstruct.java diff --git a/FortranWeaver/resources/fortran/weaverspecs/joinPointModel.xml b/FortranWeaver/resources/fortran/weaverspecs/joinPointModel.xml index f396df9a..68a32ad3 100644 --- a/FortranWeaver/resources/fortran/weaverspecs/joinPointModel.xml +++ b/FortranWeaver/resources/fortran/weaverspecs/joinPointModel.xml @@ -32,7 +32,9 @@ - + + + @@ -48,11 +50,11 @@ - + - + @@ -97,7 +99,7 @@ - + diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json index a0c97943..c2848081 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json @@ -1489,7 +1489,7 @@ { "type": "joinpoint", "name": "compilerDirective", - "extends": "executableStatement" , + "extends": "statement" , "children": [ { "type": "attribute", @@ -2210,7 +2210,7 @@ { "type": "joinpoint", "name": "doConstruct", - "extends": "joinpoint" , + "extends": "executableConstruct" , "tooltip": "Represents a do loop", "children": [ { @@ -3428,6 +3428,232 @@ }] }] }, + { + "type": "joinpoint", + "name": "executableConstruct", + "extends": "joinpoint" , + "children": [ + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, { "type": "joinpoint", "name": "executableStatement", @@ -4875,7 +5101,7 @@ { "type": "joinpoint", "name": "ifConstruct", - "extends": "joinpoint" , + "extends": "executableConstruct" , "tooltip": "Represents the root of an if construct", "children": [ { @@ -7491,22 +7717,6 @@ "name": "clauses" }] }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isFirst" - }] - }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isLast" - }] - }, { "type": "attribute", "tooltip": "Returns an array with the children of the node", @@ -7998,7 +8208,7 @@ { "type": "joinpoint", "name": "ompConstruct", - "extends": "executableStatement" , + "extends": "executableConstruct" , "tooltip": "Represents a generic OpenMP construct", "children": [ { @@ -8009,22 +8219,6 @@ "name": "clauses" }] }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isFirst" - }] - }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isLast" - }] - }, { "type": "attribute", "tooltip": "Returns an array with the children of the node", @@ -8514,22 +8708,6 @@ "name": "clauses" }] }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isFirst" - }] - }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isLast" - }] - }, { "type": "attribute", "tooltip": "Returns an array with the children of the node", diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/importable/AstFactory.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/importable/AstFactory.java index 6571f87f..fab2dafc 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/importable/AstFactory.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/importable/AstFactory.java @@ -1,5 +1,6 @@ package pt.up.fe.specs.fortran.weaver.importable; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.expr.Argument; import pt.up.fe.specs.fortran.ast.nodes.expr.DataRef; import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; @@ -7,7 +8,6 @@ import pt.up.fe.specs.fortran.ast.nodes.loops.RangeLoopControl; import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpClause; import pt.up.fe.specs.fortran.ast.nodes.omp.enums.OmpClauseKind; -import pt.up.fe.specs.fortran.ast.nodes.stmt.ExecutableStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; import pt.up.fe.specs.fortran.weaver.FortranJoinpoints; import pt.up.fe.specs.fortran.weaver.FortranWeaver; @@ -66,9 +66,9 @@ public static AOmpReductionClause ompReductionClause(String operator, Object[] a } public static AExecution execution(Object[] args) { - List stmts = SpecsCollections.asListT(AExecutableStatement.class, args) + List stmts = SpecsCollections.asListT(AExecutableStatement.class, args) .stream() - .map(stmt -> (ExecutableStmt) stmt.getNode()) + .map(AExecutableStatement::getNode) .toList(); return FortranJoinpoints.create(FortranWeaver.getFactory().execution(stmts), AExecution.class); diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FCompilerDirective.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FCompilerDirective.java index 75f3f408..1911a04d 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FCompilerDirective.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FCompilerDirective.java @@ -4,7 +4,6 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.CompilerDirective; import pt.up.fe.specs.fortran.weaver.FortranJoinpoints; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.ACompilerDirective; -import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AExpr; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.ANameValue; public class FCompilerDirective extends ACompilerDirective { @@ -12,7 +11,7 @@ public class FCompilerDirective extends ACompilerDirective { private final CompilerDirective compilerDirective; public FCompilerDirective(CompilerDirective compilerDirective) { - super(new FExecutableStatement(compilerDirective)); + super(new FStatement(compilerDirective)); this.compilerDirective = compilerDirective; } diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FDoConstruct.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FDoConstruct.java index b15a7c70..4218c8d2 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FDoConstruct.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FDoConstruct.java @@ -14,6 +14,7 @@ public class FDoConstruct extends ADoConstruct { private final DoConstruct doConstruct; public FDoConstruct(DoConstruct doConstruct) { + super(new FExecutableConstruct(doConstruct)); this.doConstruct = doConstruct; } diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecutableConstruct.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecutableConstruct.java new file mode 100644 index 00000000..4c5e40f7 --- /dev/null +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecutableConstruct.java @@ -0,0 +1,18 @@ +package pt.up.fe.specs.fortran.weaver.joinpoints; + +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.ExecutableConstruct; +import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AExecutableConstruct; + +public class FExecutableConstruct extends AExecutableConstruct { + public final ExecutableConstruct executableConstruct; + + public FExecutableConstruct(ExecutableConstruct executableConstruct) { + this.executableConstruct = executableConstruct; + } + + @Override + public FortranNode getNode() { + return executableConstruct; + } +} diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FIfConstruct.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FIfConstruct.java index e8390460..6c6bed4e 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FIfConstruct.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FIfConstruct.java @@ -13,6 +13,7 @@ public class FIfConstruct extends AIfConstruct { public final IfConstruct ifConstruct; public FIfConstruct(IfConstruct ifConstruct) { + super(new FExecutableConstruct(ifConstruct)); this.ifConstruct = ifConstruct; } diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FOmpConstruct.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FOmpConstruct.java index d6332fb1..6b2d92fb 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FOmpConstruct.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FOmpConstruct.java @@ -5,7 +5,6 @@ import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpClause; import pt.up.fe.specs.fortran.ast.nodes.omp.enums.OmpDirectiveKind; import pt.up.fe.specs.fortran.weaver.FortranJoinpoints; -import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AExpr; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AOmpClause; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AOmpConstruct; @@ -17,7 +16,7 @@ public class FOmpConstruct extends AOmpConstruct { public final OmpConstruct ompConstruct; public FOmpConstruct(OmpConstruct ompConstruct) { - super(new FExecutableStatement(ompConstruct)); + super(new FExecutableConstruct(ompConstruct)); this.ompConstruct = ompConstruct; } From 551444f34b97ef456e3a885d94d58f8fb4678361 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 21 Jul 2026 18:54:31 +0100 Subject: [PATCH 056/260] Add new Fujitsu test case --- .../parser/fujitsu/0001/0001_0011.expected.f | 47 + .../fortran/parser/fujitsu/0001/0001_0011.f | 47 + .../parser/fujitsu/0001/0001_0011.json | 3472 +++++++++++++++++ .../fortran/parser/FortranParserTest.java | 12 + 4 files changed, 3578 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0011.expected.f create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0011.f create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0011.json diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0011.expected.f b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0011.expected.f new file mode 100644 index 00000000..26bafd10 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0011.expected.f @@ -0,0 +1,47 @@ + INTEGER A(1000),B(1000),C(1000),D(1000),E(1000),F(1000),CODE + DATA A/1000*1/,B/1000*2/,C/1000*3/,D/1000*4/,E/1000*5/,F/1000*6/ +C + CODE = 0 + CALL SUB1(A+B,C+D,E+F,CODE) +C + IF(CODE.EQ.0) WRITE(6,*) 'OK' +C + STOP + END +C +C + SUBROUTINE SUB1(A,B,C,CODE) + INTEGER A(1000),B(1000),C(1000),CODE +C + DO 10 I=1,1000 + IF(A(I).NE.3) THEN + WRITE(6,*) 'NG' + WRITE(6,*) 'ELEMENT NUMBER = A(',I,')' + CODE = 1 + GO TO 20 + ENDIF + 10 CONTINUE +C + 20 CONTINUE + DO 30 I=1,1000 + IF(B(I).NE.7) THEN + WRITE(6,*) 'NG' + WRITE(6,*) 'ELEMENT NUMBER = B(',I,')' + CODE = 1 + GO TO 40 + ENDIF + 30 CONTINUE +C + 40 CONTINUE + DO 50 I=1,1000 + IF(C(I).NE.11) THEN + WRITE(6,*) 'NG' + WRITE(6,*) 'ELEMENT NUMBER = C(',I,')' + CODE = 1 + GO TO 60 + ENDIF + 50 CONTINUE +C + 60 CONTINUE + RETURN + END diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0011.f b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0011.f new file mode 100644 index 00000000..26bafd10 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0011.f @@ -0,0 +1,47 @@ + INTEGER A(1000),B(1000),C(1000),D(1000),E(1000),F(1000),CODE + DATA A/1000*1/,B/1000*2/,C/1000*3/,D/1000*4/,E/1000*5/,F/1000*6/ +C + CODE = 0 + CALL SUB1(A+B,C+D,E+F,CODE) +C + IF(CODE.EQ.0) WRITE(6,*) 'OK' +C + STOP + END +C +C + SUBROUTINE SUB1(A,B,C,CODE) + INTEGER A(1000),B(1000),C(1000),CODE +C + DO 10 I=1,1000 + IF(A(I).NE.3) THEN + WRITE(6,*) 'NG' + WRITE(6,*) 'ELEMENT NUMBER = A(',I,')' + CODE = 1 + GO TO 20 + ENDIF + 10 CONTINUE +C + 20 CONTINUE + DO 30 I=1,1000 + IF(B(I).NE.7) THEN + WRITE(6,*) 'NG' + WRITE(6,*) 'ELEMENT NUMBER = B(',I,')' + CODE = 1 + GO TO 40 + ENDIF + 30 CONTINUE +C + 40 CONTINUE + DO 50 I=1,1000 + IF(C(I).NE.11) THEN + WRITE(6,*) 'NG' + WRITE(6,*) 'ELEMENT NUMBER = C(',I,')' + CODE = 1 + GO TO 60 + ENDIF + 50 CONTINUE +C + 60 CONTINUE + RETURN + END diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0011.json b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0011.json new file mode 100644 index 00000000..bb151a6b --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0011.json @@ -0,0 +1,3472 @@ +{ + "fileExtension": "f", + "nodes": [ + { + "id": "0x560429337f00-Program", + "ProgramUnit": [ + "0x5604293732b0-ProgramUnit", + "0x560429372560-ProgramUnit" + ] + }, + { + "id": "0x5604293732b0-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x560429374cc0-MainProgram" + }, + { + "id": "0x560429374cc0-MainProgram", + "SpecificationPart": "0x560429374d60-SpecificationPart", + "ExecutionPart": "0x560429374d48-ExecutionPart", + "Statement": "0x560429374cc0-Statement" + }, + { + "id": "0x560429374d60-SpecificationPart", + "ImplicitPart": "0x560429374d78-ImplicitPart", + "DeclarationConstruct": [ + "0x560429364cb0-DeclarationConstruct", + "0x560429366810-DeclarationConstruct" + ] + }, + { + "id": "0x560429374d78-ImplicitPart" + }, + { + "id": "0x560429364cb0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x560429364cb0-SpecificationConstruct" + }, + { + "id": "0x560429364cb0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x560429364cb0-Statement" + }, + { + "id": "0x560429364cb0-Statement", + "statement": "0x560429374b30-TypeDeclarationStmt", + "source": "integera(1000),b(1000),c(1000),d(1000),e(1000),f(1000),code" + }, + { + "id": "0x560429374b30-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x560429374b60-DeclarationTypeSpec", + "EntityDecl": [ + "0x560429364550-EntityDecl", + "0x560429363c50-EntityDecl", + "0x5604293747a0-EntityDecl", + "0x5604293635b0-EntityDecl", + "0x5604293638c0-EntityDecl", + "0x560429364370-EntityDecl", + "0x560429364460-EntityDecl" + ] + }, + { + "id": "0x560429374b60-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x560429374b60-IntrinsicTypeSpec" + }, + { + "id": "0x560429374b60-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x560429374b60-IntegerTypeSpec" + }, + { + "id": "0x560429374b60-IntegerTypeSpec" + }, + { + "id": "0x560429364550-EntityDecl", + "Name": "0x560429364608-Name", + "ArraySpec": "0x5604293645d0-ArraySpec" + }, + { + "id": "0x560429364608-Name", + "source": "a" + }, + { + "id": "0x5604293645d0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x5604293761c0-ExplicitShapeSpec" + ] + }, + { + "id": "0x5604293761c0-ExplicitShapeSpec", + "upper_bound": "0x5604293761c0-SpecificationExpr" + }, + { + "id": "0x5604293761c0-SpecificationExpr", + "Expr": "0x5604292d7790-Expr" + }, + { + "id": "0x5604292d7790-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5604292d77b0-LiteralConstant" + }, + { + "id": "0x5604292d77b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5604292d77b0-IntLiteralConstant" + }, + { + "id": "0x5604292d77b0-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x560429363c50-EntityDecl", + "Name": "0x560429363d08-Name", + "ArraySpec": "0x560429363cd0-ArraySpec" + }, + { + "id": "0x560429363d08-Name", + "source": "b" + }, + { + "id": "0x560429363cd0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x5604293761f0-ExplicitShapeSpec" + ] + }, + { + "id": "0x5604293761f0-ExplicitShapeSpec", + "upper_bound": "0x5604293761f0-SpecificationExpr" + }, + { + "id": "0x5604293761f0-SpecificationExpr", + "Expr": "0x5604292ed1d0-Expr" + }, + { + "id": "0x5604292ed1d0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5604292ed1f0-LiteralConstant" + }, + { + "id": "0x5604292ed1f0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5604292ed1f0-IntLiteralConstant" + }, + { + "id": "0x5604292ed1f0-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x5604293747a0-EntityDecl", + "Name": "0x560429374858-Name", + "ArraySpec": "0x560429374820-ArraySpec" + }, + { + "id": "0x560429374858-Name", + "source": "c" + }, + { + "id": "0x560429374820-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x560429376220-ExplicitShapeSpec" + ] + }, + { + "id": "0x560429376220-ExplicitShapeSpec", + "upper_bound": "0x560429376220-SpecificationExpr" + }, + { + "id": "0x560429376220-SpecificationExpr", + "Expr": "0x5604293746b0-Expr" + }, + { + "id": "0x5604293746b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5604293746d0-LiteralConstant" + }, + { + "id": "0x5604293746d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5604293746d0-IntLiteralConstant" + }, + { + "id": "0x5604293746d0-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x5604293635b0-EntityDecl", + "Name": "0x560429363668-Name", + "ArraySpec": "0x560429363630-ArraySpec" + }, + { + "id": "0x560429363668-Name", + "source": "d" + }, + { + "id": "0x560429363630-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x560429376270-ExplicitShapeSpec" + ] + }, + { + "id": "0x560429376270-ExplicitShapeSpec", + "upper_bound": "0x560429376270-SpecificationExpr" + }, + { + "id": "0x560429376270-SpecificationExpr", + "Expr": "0x5604293634c0-Expr" + }, + { + "id": "0x5604293634c0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5604293634e0-LiteralConstant" + }, + { + "id": "0x5604293634e0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5604293634e0-IntLiteralConstant" + }, + { + "id": "0x5604293634e0-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x5604293638c0-EntityDecl", + "Name": "0x560429363978-Name", + "ArraySpec": "0x560429363940-ArraySpec" + }, + { + "id": "0x560429363978-Name", + "source": "e" + }, + { + "id": "0x560429363940-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x560429376380-ExplicitShapeSpec" + ] + }, + { + "id": "0x560429376380-ExplicitShapeSpec", + "upper_bound": "0x560429376380-SpecificationExpr" + }, + { + "id": "0x560429376380-SpecificationExpr", + "Expr": "0x560429363f80-Expr" + }, + { + "id": "0x560429363f80-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x560429363fa0-LiteralConstant" + }, + { + "id": "0x560429363fa0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x560429363fa0-IntLiteralConstant" + }, + { + "id": "0x560429363fa0-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x560429364370-EntityDecl", + "Name": "0x560429364428-Name", + "ArraySpec": "0x5604293643f0-ArraySpec" + }, + { + "id": "0x560429364428-Name", + "source": "f" + }, + { + "id": "0x5604293643f0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x5604293763b0-ExplicitShapeSpec" + ] + }, + { + "id": "0x5604293763b0-ExplicitShapeSpec", + "upper_bound": "0x5604293763b0-SpecificationExpr" + }, + { + "id": "0x5604293763b0-SpecificationExpr", + "Expr": "0x560429364280-Expr" + }, + { + "id": "0x560429364280-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5604293642a0-LiteralConstant" + }, + { + "id": "0x5604293642a0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5604293642a0-IntLiteralConstant" + }, + { + "id": "0x5604293642a0-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x560429364460-EntityDecl", + "Name": "0x560429364518-Name" + }, + { + "id": "0x560429364518-Name", + "source": "code" + }, + { + "id": "0x560429366810-DeclarationConstruct", + "variantKey": "Statement", + "Statement": "0x560429366810-Statement" + }, + { + "id": "0x560429366810-Statement", + "statement": "0x560429376110-DataStmt", + "source": "dataa/1000*1/,b/1000*2/,c/1000*3/,d/1000*4/,e/1000*5/,f/1000*6/" + }, + { + "id": "0x560429376110-DataStmt", + "DataStmtSet": [ + "0x56042936ee30-DataStmtSet", + "0x56042936e1e0-DataStmtSet", + "0x56042937bb20-DataStmtSet", + "0x560429374ab0-DataStmtSet", + "0x56042936ec50-DataStmtSet", + "0x56042936efd0-DataStmtSet" + ] + }, + { + "id": "0x56042936ee30-DataStmtSet", + "DataStmtObject": [ + "0x5604293646e0-DataStmtObject" + ], + "DataStmtValue": [ + "0x560429364e10-DataStmtValue" + ] + }, + { + "id": "0x5604293646e0-DataStmtObject", + "variantKey": "Variable", + "Variable": "0x5604293763f0-Variable" + }, + { + "id": "0x5604293763f0-Variable", + "variantKey": "Designator", + "Designator": "0x560429344d90-Designator" + }, + { + "id": "0x560429344d90-Designator", + "variantKey": "DataRef", + "DataRef": "0x560429344da0-DataRef" + }, + { + "id": "0x560429344da0-DataRef", + "variantKey": "Name", + "Name": "0x560429344da0-Name" + }, + { + "id": "0x560429344da0-Name", + "source": "a" + }, + { + "id": "0x560429364e10-DataStmtValue", + "DataStmtRepeat": "0x560429364ee8-DataStmtRepeat", + "DataStmtConstant": "0x560429364e18-DataStmtConstant" + }, + { + "id": "0x560429364ee8-DataStmtRepeat", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x560429364ee8-IntLiteralConstant" + }, + { + "id": "0x560429364ee8-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x560429364e18-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x560429364e38-LiteralConstant" + }, + { + "id": "0x560429364e38-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x560429364e38-IntLiteralConstant" + }, + { + "id": "0x560429364e38-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x56042936e1e0-DataStmtSet", + "DataStmtObject": [ + "0x560429363e70-DataStmtObject" + ], + "DataStmtValue": [ + "0x560429364f50-DataStmtValue" + ] + }, + { + "id": "0x560429363e70-DataStmtObject", + "variantKey": "Variable", + "Variable": "0x5604293736a0-Variable" + }, + { + "id": "0x5604293736a0-Variable", + "variantKey": "Designator", + "Designator": "0x560429364060-Designator" + }, + { + "id": "0x560429364060-Designator", + "variantKey": "DataRef", + "DataRef": "0x560429364070-DataRef" + }, + { + "id": "0x560429364070-DataRef", + "variantKey": "Name", + "Name": "0x560429364070-Name" + }, + { + "id": "0x560429364070-Name", + "source": "b" + }, + { + "id": "0x560429364f50-DataStmtValue", + "DataStmtRepeat": "0x560429365028-DataStmtRepeat", + "DataStmtConstant": "0x560429364f58-DataStmtConstant" + }, + { + "id": "0x560429365028-DataStmtRepeat", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x560429365028-IntLiteralConstant" + }, + { + "id": "0x560429365028-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x560429364f58-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x560429364f78-LiteralConstant" + }, + { + "id": "0x560429364f78-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x560429364f78-IntLiteralConstant" + }, + { + "id": "0x560429364f78-IntLiteralConstant", + "CharBlock": "2" + }, + { + "id": "0x56042937bb20-DataStmtSet", + "DataStmtObject": [ + "0x560429363f00-DataStmtObject" + ], + "DataStmtValue": [ + "0x560429365210-DataStmtValue" + ] + }, + { + "id": "0x560429363f00-DataStmtObject", + "variantKey": "Variable", + "Variable": "0x560429372cf0-Variable" + }, + { + "id": "0x560429372cf0-Variable", + "variantKey": "Designator", + "Designator": "0x560429365140-Designator" + }, + { + "id": "0x560429365140-Designator", + "variantKey": "DataRef", + "DataRef": "0x560429365150-DataRef" + }, + { + "id": "0x560429365150-DataRef", + "variantKey": "Name", + "Name": "0x560429365150-Name" + }, + { + "id": "0x560429365150-Name", + "source": "c" + }, + { + "id": "0x560429365210-DataStmtValue", + "DataStmtRepeat": "0x5604293652e8-DataStmtRepeat", + "DataStmtConstant": "0x560429365218-DataStmtConstant" + }, + { + "id": "0x5604293652e8-DataStmtRepeat", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5604293652e8-IntLiteralConstant" + }, + { + "id": "0x5604293652e8-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x560429365218-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x560429365238-LiteralConstant" + }, + { + "id": "0x560429365238-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x560429365238-IntLiteralConstant" + }, + { + "id": "0x560429365238-IntLiteralConstant", + "CharBlock": "3" + }, + { + "id": "0x560429374ab0-DataStmtSet", + "DataStmtObject": [ + "0x5604292ed0c0-DataStmtObject" + ], + "DataStmtValue": [ + "0x560429365690-DataStmtValue" + ] + }, + { + "id": "0x5604292ed0c0-DataStmtObject", + "variantKey": "Variable", + "Variable": "0x560429372ee0-Variable" + }, + { + "id": "0x560429372ee0-Variable", + "variantKey": "Designator", + "Designator": "0x560429365400-Designator" + }, + { + "id": "0x560429365400-Designator", + "variantKey": "DataRef", + "DataRef": "0x560429365410-DataRef" + }, + { + "id": "0x560429365410-DataRef", + "variantKey": "Name", + "Name": "0x560429365410-Name" + }, + { + "id": "0x560429365410-Name", + "source": "d" + }, + { + "id": "0x560429365690-DataStmtValue", + "DataStmtRepeat": "0x560429365768-DataStmtRepeat", + "DataStmtConstant": "0x560429365698-DataStmtConstant" + }, + { + "id": "0x560429365768-DataStmtRepeat", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x560429365768-IntLiteralConstant" + }, + { + "id": "0x560429365768-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x560429365698-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5604293656b8-LiteralConstant" + }, + { + "id": "0x5604293656b8-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5604293656b8-IntLiteralConstant" + }, + { + "id": "0x5604293656b8-IntLiteralConstant", + "CharBlock": "4" + }, + { + "id": "0x56042936ec50-DataStmtSet", + "DataStmtObject": [ + "0x560429364890-DataStmtObject" + ], + "DataStmtValue": [ + "0x560429365cd0-DataStmtValue" + ] + }, + { + "id": "0x560429364890-DataStmtObject", + "variantKey": "Variable", + "Variable": "0x560429372f90-Variable" + }, + { + "id": "0x560429372f90-Variable", + "variantKey": "Designator", + "Designator": "0x560429365a40-Designator" + }, + { + "id": "0x560429365a40-Designator", + "variantKey": "DataRef", + "DataRef": "0x560429365a50-DataRef" + }, + { + "id": "0x560429365a50-DataRef", + "variantKey": "Name", + "Name": "0x560429365a50-Name" + }, + { + "id": "0x560429365a50-Name", + "source": "e" + }, + { + "id": "0x560429365cd0-DataStmtValue", + "DataStmtRepeat": "0x560429365da8-DataStmtRepeat", + "DataStmtConstant": "0x560429365cd8-DataStmtConstant" + }, + { + "id": "0x560429365da8-DataStmtRepeat", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x560429365da8-IntLiteralConstant" + }, + { + "id": "0x560429365da8-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x560429365cd8-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x560429365cf8-LiteralConstant" + }, + { + "id": "0x560429365cf8-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x560429365cf8-IntLiteralConstant" + }, + { + "id": "0x560429365cf8-IntLiteralConstant", + "CharBlock": "5" + }, + { + "id": "0x56042936efd0-DataStmtSet", + "DataStmtObject": [ + "0x560429364800-DataStmtObject" + ], + "DataStmtValue": [ + "0x560429366310-DataStmtValue" + ] + }, + { + "id": "0x560429364800-DataStmtObject", + "variantKey": "Variable", + "Variable": "0x5604293730a0-Variable" + }, + { + "id": "0x5604293730a0-Variable", + "variantKey": "Designator", + "Designator": "0x560429366080-Designator" + }, + { + "id": "0x560429366080-Designator", + "variantKey": "DataRef", + "DataRef": "0x560429366090-DataRef" + }, + { + "id": "0x560429366090-DataRef", + "variantKey": "Name", + "Name": "0x560429366090-Name" + }, + { + "id": "0x560429366090-Name", + "source": "f" + }, + { + "id": "0x560429366310-DataStmtValue", + "DataStmtRepeat": "0x5604293663e8-DataStmtRepeat", + "DataStmtConstant": "0x560429366318-DataStmtConstant" + }, + { + "id": "0x5604293663e8-DataStmtRepeat", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5604293663e8-IntLiteralConstant" + }, + { + "id": "0x5604293663e8-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x560429366318-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x560429366338-LiteralConstant" + }, + { + "id": "0x560429366338-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x560429366338-IntLiteralConstant" + }, + { + "id": "0x560429366338-IntLiteralConstant", + "CharBlock": "6" + }, + { + "id": "0x560429374d48-ExecutionPart", + "ExecutionPartConstruct": [ + "0x560429366160-ExecutionPartConstruct", + "0x560429368750-ExecutionPartConstruct", + "0x560429365b20-ExecutionPartConstruct", + "0x560429366740-ExecutionPartConstruct" + ] + }, + { + "id": "0x560429374d48-ExecutionPartConstruct" + }, + { + "id": "0x560429366160-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x560429366160-ExecutableConstruct" + }, + { + "id": "0x560429366160-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x560429366160-Statement" + }, + { + "id": "0x560429366160-Statement", + "statement": "0x560429366170-ActionStmt", + "source": "code=0" + }, + { + "id": "0x560429366170-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x560429345cf0-AssignmentStmt" + }, + { + "id": "0x560429345cf0-AssignmentStmt", + "Variable": "0x560429345dd0-Variable", + "Expr": "0x560429345d00-Expr" + }, + { + "id": "0x560429345dd0-Variable", + "variantKey": "Designator", + "Designator": "0x5604293657c0-Designator" + }, + { + "id": "0x5604293657c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5604293657d0-DataRef" + }, + { + "id": "0x5604293657d0-DataRef", + "variantKey": "Name", + "Name": "0x5604293657d0-Name" + }, + { + "id": "0x5604293657d0-Name", + "source": "code" + }, + { + "id": "0x560429345d00-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x560429345d20-LiteralConstant" + }, + { + "id": "0x560429345d20-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x560429345d20-IntLiteralConstant" + }, + { + "id": "0x560429345d20-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x560429368750-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x560429368750-ExecutableConstruct" + }, + { + "id": "0x560429368750-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x560429368750-Statement" + }, + { + "id": "0x560429368750-Statement", + "statement": "0x560429368760-ActionStmt", + "source": "callsub1(a+b,c+d,e+f,code)" + }, + { + "id": "0x560429368760-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x56042936ee70-CallStmt" + }, + { + "id": "0x56042936ee70-CallStmt", + "call": "0x56042936ee70-Call" + }, + { + "id": "0x56042936ee70-Call", + "ProcedureDesignator": "0x56042936ee88-ProcedureDesignator", + "ActualArgSpec": [ + "0x560429368340-ActualArgSpec", + "0x560429368230-ActualArgSpec", + "0x560429368040-ActualArgSpec", + "0x560429367e50-ActualArgSpec" + ] + }, + { + "id": "0x56042936ee88-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x56042936ee88-Name" + }, + { + "id": "0x56042936ee88-Name", + "source": "sub1" + }, + { + "id": "0x560429368340-ActualArgSpec", + "ActualArg": "0x560429368340-ActualArg" + }, + { + "id": "0x560429368340-ActualArg", + "variantKey": "Expr", + "Expr": "0x560429366d00-Expr" + }, + { + "id": "0x560429366d00-Expr", + "variantKey": "Add", + "Add": "0x560429366d20-Add" + }, + { + "id": "0x560429366d20-Add", + "left": "0x560429366bb0-Expr", + "right": "0x560429366a20-Expr", + "op": "ADD" + }, + { + "id": "0x560429366bb0-Expr", + "variantKey": "Designator", + "Designator": "0x5604293364d0-Designator" + }, + { + "id": "0x5604293364d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5604293364e0-DataRef" + }, + { + "id": "0x5604293364e0-DataRef", + "variantKey": "Name", + "Name": "0x5604293364e0-Name" + }, + { + "id": "0x5604293364e0-Name", + "source": "a" + }, + { + "id": "0x560429366a20-Expr", + "variantKey": "Designator", + "Designator": "0x560429367b00-Designator" + }, + { + "id": "0x560429367b00-Designator", + "variantKey": "DataRef", + "DataRef": "0x560429367b10-DataRef" + }, + { + "id": "0x560429367b10-DataRef", + "variantKey": "Name", + "Name": "0x560429367b10-Name" + }, + { + "id": "0x560429367b10-Name", + "source": "b" + }, + { + "id": "0x560429368230-ActualArgSpec", + "ActualArg": "0x560429368230-ActualArg" + }, + { + "id": "0x560429368230-ActualArg", + "variantKey": "Expr", + "Expr": "0x560429366940-Expr" + }, + { + "id": "0x560429366940-Expr", + "variantKey": "Add", + "Add": "0x560429366960-Add" + }, + { + "id": "0x560429366960-Add", + "left": "0x560429366860-Expr", + "right": "0x5604293673f0-Expr", + "op": "ADD" + }, + { + "id": "0x560429366860-Expr", + "variantKey": "Designator", + "Designator": "0x560429365ed0-Designator" + }, + { + "id": "0x560429365ed0-Designator", + "variantKey": "DataRef", + "DataRef": "0x560429365ee0-DataRef" + }, + { + "id": "0x560429365ee0-DataRef", + "variantKey": "Name", + "Name": "0x560429365ee0-Name" + }, + { + "id": "0x560429365ee0-Name", + "source": "c" + }, + { + "id": "0x5604293673f0-Expr", + "variantKey": "Designator", + "Designator": "0x5604293651a0-Designator" + }, + { + "id": "0x5604293651a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5604293651b0-DataRef" + }, + { + "id": "0x5604293651b0-DataRef", + "variantKey": "Name", + "Name": "0x5604293651b0-Name" + }, + { + "id": "0x5604293651b0-Name", + "source": "d" + }, + { + "id": "0x560429368040-ActualArgSpec", + "ActualArg": "0x560429368040-ActualArg" + }, + { + "id": "0x560429368040-ActualArg", + "variantKey": "Expr", + "Expr": "0x560429366de0-Expr" + }, + { + "id": "0x560429366de0-Expr", + "variantKey": "Add", + "Add": "0x560429366e00-Add" + }, + { + "id": "0x560429366e00-Add", + "left": "0x5604293675c0-Expr", + "right": "0x560429367bd0-Expr", + "op": "ADD" + }, + { + "id": "0x5604293675c0-Expr", + "variantKey": "Designator", + "Designator": "0x5604292ed320-Designator" + }, + { + "id": "0x5604292ed320-Designator", + "variantKey": "DataRef", + "DataRef": "0x5604292ed330-DataRef" + }, + { + "id": "0x5604292ed330-DataRef", + "variantKey": "Name", + "Name": "0x5604292ed330-Name" + }, + { + "id": "0x5604292ed330-Name", + "source": "e" + }, + { + "id": "0x560429367bd0-Expr", + "variantKey": "Designator", + "Designator": "0x5604293654d0-Designator" + }, + { + "id": "0x5604293654d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5604293654e0-DataRef" + }, + { + "id": "0x5604293654e0-DataRef", + "variantKey": "Name", + "Name": "0x5604293654e0-Name" + }, + { + "id": "0x5604293654e0-Name", + "source": "f" + }, + { + "id": "0x560429367e50-ActualArgSpec", + "ActualArg": "0x560429367e50-ActualArg" + }, + { + "id": "0x560429367e50-ActualArg", + "variantKey": "Expr", + "Expr": "0x560429368590-Expr" + }, + { + "id": "0x560429368590-Expr", + "variantKey": "Designator", + "Designator": "0x560429366ec0-Designator" + }, + { + "id": "0x560429366ec0-Designator", + "variantKey": "DataRef", + "DataRef": "0x560429366ed0-DataRef" + }, + { + "id": "0x560429366ed0-DataRef", + "variantKey": "Name", + "Name": "0x560429366ed0-Name" + }, + { + "id": "0x560429366ed0-Name", + "source": "code" + }, + { + "id": "0x560429365b20-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x560429365b20-ExecutableConstruct" + }, + { + "id": "0x560429365b20-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x560429365b20-Statement" + }, + { + "id": "0x560429365b20-Statement", + "statement": "0x560429365b30-ActionStmt", + "source": "if(code.eq.0)write(6,*)'OK'" + }, + { + "id": "0x560429365b30-ActionStmt", + "variantKey": "IfStmt", + "IfStmt": "0x560429373230-IfStmt" + }, + { + "id": "0x560429373230-IfStmt", + "Expr": "0x560429368880-Expr", + "UnlabeledStatement": "0x560429373230-UnlabeledStatement" + }, + { + "id": "0x560429368880-Expr", + "variantKey": "EQ", + "EQ": "0x5604293688a0-EQ" + }, + { + "id": "0x5604293688a0-EQ", + "left": "0x5604293687a0-Expr", + "right": "0x560429368960-Expr", + "op": "EQ" + }, + { + "id": "0x5604293687a0-Expr", + "variantKey": "Designator", + "Designator": "0x5604293650e0-Designator" + }, + { + "id": "0x5604293650e0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5604293650f0-DataRef" + }, + { + "id": "0x5604293650f0-DataRef", + "variantKey": "Name", + "Name": "0x5604293650f0-Name" + }, + { + "id": "0x5604293650f0-Name", + "source": "code" + }, + { + "id": "0x560429368960-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x560429368980-LiteralConstant" + }, + { + "id": "0x560429368980-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x560429368980-IntLiteralConstant" + }, + { + "id": "0x560429368980-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x560429373230-UnlabeledStatement", + "statement": "0x560429373240-ActionStmt", + "source": "write(6,*)'OK'" + }, + { + "id": "0x560429373240-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x560429369570-WriteStmt" + }, + { + "id": "0x560429369570-WriteStmt", + "iounit": "0x560429369570-IoUnit", + "format": "0x5604293695a0-Format", + "controls": [], + "items": [ + "0x560429369420-OutputItem" + ] + }, + { + "id": "0x560429369570-IoUnit", + "variantKey": "Expr", + "Expr": "0x560429368b50-Expr" + }, + { + "id": "0x560429368b50-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x560429368b70-LiteralConstant" + }, + { + "id": "0x560429368b70-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x560429368b70-IntLiteralConstant" + }, + { + "id": "0x560429368b70-IntLiteralConstant", + "CharBlock": "6" + }, + { + "id": "0x5604293695a0-Format", + "variantKey": "Star", + "Star": "0x5604293695a0-Star" + }, + { + "id": "0x5604293695a0-Star" + }, + { + "id": "0x560429369420-OutputItem", + "variantKey": "Expr", + "Expr": "0x560429369420-Expr" + }, + { + "id": "0x560429369420-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x560429369440-LiteralConstant" + }, + { + "id": "0x560429369440-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x560429369440-CharLiteralConstant" + }, + { + "id": "0x560429369440-CharLiteralConstant", + "string": "OK" + }, + { + "id": "0x560429366740-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x560429366740-ExecutableConstruct" + }, + { + "id": "0x560429366740-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x560429366740-Statement" + }, + { + "id": "0x560429366740-Statement", + "statement": "0x560429366750-ActionStmt", + "source": "stop" + }, + { + "id": "0x560429366750-ActionStmt", + "variantKey": "StopStmt", + "StopStmt": "0x5604293697a0-StopStmt" + }, + { + "id": "0x5604293697a0-StopStmt", + "kind": "0x560429369888-Kind = Stop" + }, + { + "id": "0x560429369888-Kind = Stop", + "disambiguation": "Fortran::parser::StopStmt::Kind", + "value": "Stop" + }, + { + "id": "0x560429374cc0-Statement", + "statement": "0x560429374cd0-EndProgramStmt", + "source": "end" + }, + { + "id": "0x560429374cd0-EndProgramStmt" + }, + { + "id": "0x560429372560-ProgramUnit", + "variantKey": "SubroutineSubprogram", + "SubroutineSubprogram": "0x56042937ea00-SubroutineSubprogram" + }, + { + "id": "0x56042937ea00-SubroutineSubprogram", + "Statement": "0x56042937eb48-Statement", + "SpecificationPart": "0x56042937eaa0-SpecificationPart", + "ExecutionPart": "0x56042937ea88-ExecutionPart", + "Statement": "0x56042937ea00-Statement" + }, + { + "id": "0x56042937eb48-Statement", + "statement": "0x56042937eb58-SubroutineStmt", + "source": "subroutinesub1(a,b,c,code)" + }, + { + "id": "0x56042937eb58-SubroutineStmt", + "Name": "0x56042937eb90-Name", + "DummyArg": [ + "0x560429375a70-DummyArg", + "0x560429373920-DummyArg", + "0x560429374000-DummyArg", + "0x5604293740c0-DummyArg" + ] + }, + { + "id": "0x56042937eb90-Name", + "source": "sub1" + }, + { + "id": "0x560429375a70-DummyArg", + "variantKey": "Name", + "Name": "0x560429375a70-Name" + }, + { + "id": "0x560429375a70-Name", + "source": "a" + }, + { + "id": "0x560429373920-DummyArg", + "variantKey": "Name", + "Name": "0x560429373920-Name" + }, + { + "id": "0x560429373920-Name", + "source": "b" + }, + { + "id": "0x560429374000-DummyArg", + "variantKey": "Name", + "Name": "0x560429374000-Name" + }, + { + "id": "0x560429374000-Name", + "source": "c" + }, + { + "id": "0x5604293740c0-DummyArg", + "variantKey": "Name", + "Name": "0x5604293740c0-Name" + }, + { + "id": "0x5604293740c0-Name", + "source": "code" + }, + { + "id": "0x56042937eaa0-SpecificationPart", + "ImplicitPart": "0x56042937eab8-ImplicitPart", + "DeclarationConstruct": [ + "0x5604293658a0-DeclarationConstruct" + ] + }, + { + "id": "0x56042937eab8-ImplicitPart" + }, + { + "id": "0x5604293658a0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5604293658a0-SpecificationConstruct" + }, + { + "id": "0x5604293658a0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5604293658a0-Statement" + }, + { + "id": "0x5604293658a0-Statement", + "statement": "0x560429366f20-TypeDeclarationStmt", + "source": "integera(1000),b(1000),c(1000),code" + }, + { + "id": "0x560429366f20-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x560429366f50-DeclarationTypeSpec", + "EntityDecl": [ + "0x560429369a30-EntityDecl", + "0x5604293676b0-EntityDecl", + "0x560429369ce0-EntityDecl", + "0x560429369940-EntityDecl" + ] + }, + { + "id": "0x560429366f50-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x560429366f50-IntrinsicTypeSpec" + }, + { + "id": "0x560429366f50-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x560429366f50-IntegerTypeSpec" + }, + { + "id": "0x560429366f50-IntegerTypeSpec" + }, + { + "id": "0x560429369a30-EntityDecl", + "Name": "0x560429369ae8-Name", + "ArraySpec": "0x560429369ab0-ArraySpec" + }, + { + "id": "0x560429369ae8-Name", + "source": "a" + }, + { + "id": "0x560429369ab0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x560429373520-ExplicitShapeSpec" + ] + }, + { + "id": "0x560429373520-ExplicitShapeSpec", + "upper_bound": "0x560429373520-SpecificationExpr" + }, + { + "id": "0x560429373520-SpecificationExpr", + "Expr": "0x56042936a400-Expr" + }, + { + "id": "0x56042936a400-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56042936a420-LiteralConstant" + }, + { + "id": "0x56042936a420-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56042936a420-IntLiteralConstant" + }, + { + "id": "0x56042936a420-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x5604293676b0-EntityDecl", + "Name": "0x560429367768-Name", + "ArraySpec": "0x560429367730-ArraySpec" + }, + { + "id": "0x560429367768-Name", + "source": "b" + }, + { + "id": "0x560429367730-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x560429372c50-ExplicitShapeSpec" + ] + }, + { + "id": "0x560429372c50-ExplicitShapeSpec", + "upper_bound": "0x560429372c50-SpecificationExpr" + }, + { + "id": "0x560429372c50-SpecificationExpr", + "Expr": "0x560429367140-Expr" + }, + { + "id": "0x560429367140-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x560429367160-LiteralConstant" + }, + { + "id": "0x560429367160-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x560429367160-IntLiteralConstant" + }, + { + "id": "0x560429367160-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x560429369ce0-EntityDecl", + "Name": "0x560429369d98-Name", + "ArraySpec": "0x560429369d60-ArraySpec" + }, + { + "id": "0x560429369d98-Name", + "source": "c" + }, + { + "id": "0x560429369d60-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x560429372020-ExplicitShapeSpec" + ] + }, + { + "id": "0x560429372020-ExplicitShapeSpec", + "upper_bound": "0x560429372020-SpecificationExpr" + }, + { + "id": "0x560429372020-SpecificationExpr", + "Expr": "0x560429369bf0-Expr" + }, + { + "id": "0x560429369bf0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x560429369c10-LiteralConstant" + }, + { + "id": "0x560429369c10-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x560429369c10-IntLiteralConstant" + }, + { + "id": "0x560429369c10-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x560429369940-EntityDecl", + "Name": "0x5604293699f8-Name" + }, + { + "id": "0x5604293699f8-Name", + "source": "code" + }, + { + "id": "0x56042937ea88-ExecutionPart", + "ExecutionPartConstruct": [ + "0x560429366450-ExecutionPartConstruct", + "0x560429367d10-ExecutionPartConstruct", + "0x56042936d2a0-ExecutionPartConstruct", + "0x56042936d9c0-ExecutionPartConstruct", + "0x560429369fd0-ExecutionPartConstruct", + "0x560429364b40-ExecutionPartConstruct", + "0x56042937d180-ExecutionPartConstruct" + ] + }, + { + "id": "0x56042937ea88-ExecutionPartConstruct" + }, + { + "id": "0x560429366450-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x560429366450-ExecutableConstruct" + }, + { + "id": "0x560429366450-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x560429370ca0-DoConstruct" + }, + { + "id": "0x560429370ca0-DoConstruct", + "Statement": "0x560429370cf8-Statement", + "ExecutionPartConstruct": [ + "0x560429365350-ExecutionPartConstruct", + "0x560429368680-ExecutionPartConstruct" + ], + "Statement": "0x560429370ca0-Statement" + }, + { + "id": "0x560429370cf8-Statement", + "statement": "0x560429370d08-NonLabelDoStmt", + "source": "do10i=1,1000" + }, + { + "id": "0x560429370d08-NonLabelDoStmt", + "LoopControl": "0x560429370d08-LoopControl" + }, + { + "id": "0x560429370d08-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x560429370d08-LoopBounds" + }, + { + "id": "0x560429370d08-LoopBounds", + "var": "0x560429370d08-Name", + "lower": "0x56042936bfc0-Expr", + "upper": "0x56042936c0a0-Expr" + }, + { + "id": "0x560429370d08-Name", + "source": "i" + }, + { + "id": "0x56042936bfc0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56042936bfe0-LiteralConstant" + }, + { + "id": "0x56042936bfe0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56042936bfe0-IntLiteralConstant" + }, + { + "id": "0x56042936bfe0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x56042936c0a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56042936c0c0-LiteralConstant" + }, + { + "id": "0x56042936c0c0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56042936c0c0-IntLiteralConstant" + }, + { + "id": "0x56042936c0c0-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x560429370ce0-ExecutionPartConstruct" + }, + { + "id": "0x560429365350-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x560429365350-ExecutableConstruct" + }, + { + "id": "0x560429365350-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x56042930d780-IfConstruct" + }, + { + "id": "0x56042930d780-IfConstruct", + "Statement": "0x56042930d850-Statement", + "ExecutionPartConstruct": [ + "0x560429345110-ExecutionPartConstruct", + "0x560429366670-ExecutionPartConstruct", + "0x560429345170-ExecutionPartConstruct", + "0x5604293674e0-ExecutionPartConstruct" + ], + "Statement": "0x56042930d780-Statement" + }, + { + "id": "0x56042930d850-Statement", + "statement": "0x56042930d860-IfThenStmt", + "source": "if(a(i).ne.3)then" + }, + { + "id": "0x56042930d860-IfThenStmt", + "Expr": "0x56042936b420-Expr" + }, + { + "id": "0x56042936b420-Expr", + "variantKey": "NE", + "NE": "0x56042936b440-NE" + }, + { + "id": "0x56042936b440-NE", + "left": "0x56042936c180-Expr", + "right": "0x56042936b340-Expr", + "op": "NE" + }, + { + "id": "0x56042936c180-Expr", + "variantKey": "Designator", + "Designator": "0x5604293a31c0-Designator" + }, + { + "id": "0x5604293a31c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5604293a31d0-DataRef" + }, + { + "id": "0x5604293a31d0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x560429372ea0-ArrayElement" + }, + { + "id": "0x560429372ea0-ArrayElement", + "base": "0x560429372ea0-DataRef", + "subscripts": [ + "0x560429378030-SectionSubscript" + ] + }, + { + "id": "0x560429372ea0-DataRef", + "variantKey": "Name", + "Name": "0x560429372ea0-Name" + }, + { + "id": "0x560429372ea0-Name", + "source": "a" + }, + { + "id": "0x560429378030-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x56042941e230-Expr" + }, + { + "id": "0x56042941e230-Expr", + "variantKey": "Designator", + "Designator": "0x560429364630-Designator" + }, + { + "id": "0x560429364630-Designator", + "variantKey": "DataRef", + "DataRef": "0x560429364640-DataRef" + }, + { + "id": "0x560429364640-DataRef", + "variantKey": "Name", + "Name": "0x560429364640-Name" + }, + { + "id": "0x560429364640-Name", + "source": "i" + }, + { + "id": "0x56042936b340-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56042936b360-LiteralConstant" + }, + { + "id": "0x56042936b360-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56042936b360-IntLiteralConstant" + }, + { + "id": "0x56042936b360-IntLiteralConstant", + "CharBlock": "3" + }, + { + "id": "0x56042930d838-ExecutionPartConstruct" + }, + { + "id": "0x560429345110-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x560429345110-ExecutableConstruct" + }, + { + "id": "0x560429345110-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x560429345110-Statement" + }, + { + "id": "0x560429345110-Statement", + "statement": "0x560429345120-ActionStmt", + "source": "write(6,*)'NG'" + }, + { + "id": "0x560429345120-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x56042936ca20-WriteStmt" + }, + { + "id": "0x56042936ca20-WriteStmt", + "iounit": "0x56042936ca20-IoUnit", + "format": "0x56042936ca50-Format", + "controls": [], + "items": [ + "0x56042936c940-OutputItem" + ] + }, + { + "id": "0x56042936ca20-IoUnit", + "variantKey": "Expr", + "Expr": "0x56042936c850-Expr" + }, + { + "id": "0x56042936c850-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56042936c870-LiteralConstant" + }, + { + "id": "0x56042936c870-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56042936c870-IntLiteralConstant" + }, + { + "id": "0x56042936c870-IntLiteralConstant", + "CharBlock": "6" + }, + { + "id": "0x56042936ca50-Format", + "variantKey": "Star", + "Star": "0x56042936ca50-Star" + }, + { + "id": "0x56042936ca50-Star" + }, + { + "id": "0x56042936c940-OutputItem", + "variantKey": "Expr", + "Expr": "0x56042936c940-Expr" + }, + { + "id": "0x56042936c940-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56042936c960-LiteralConstant" + }, + { + "id": "0x56042936c960-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x56042936c960-CharLiteralConstant" + }, + { + "id": "0x56042936c960-CharLiteralConstant", + "string": "NG" + }, + { + "id": "0x560429366670-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x560429366670-ExecutableConstruct" + }, + { + "id": "0x560429366670-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x560429366670-Statement" + }, + { + "id": "0x560429366670-Statement", + "statement": "0x560429366680-ActionStmt", + "source": "write(6,*)'ELEMENT NUMBER = A(',i,')'" + }, + { + "id": "0x560429366680-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x56042936cf20-WriteStmt" + }, + { + "id": "0x56042936cf20-WriteStmt", + "iounit": "0x56042936cf20-IoUnit", + "format": "0x56042936cf50-Format", + "controls": [], + "items": [ + "0x56042936ce40-OutputItem", + "0x56042936cc60-OutputItem", + "0x56042936cd50-OutputItem" + ] + }, + { + "id": "0x56042936cf20-IoUnit", + "variantKey": "Expr", + "Expr": "0x56042936cb70-Expr" + }, + { + "id": "0x56042936cb70-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56042936cb90-LiteralConstant" + }, + { + "id": "0x56042936cb90-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56042936cb90-IntLiteralConstant" + }, + { + "id": "0x56042936cb90-IntLiteralConstant", + "CharBlock": "6" + }, + { + "id": "0x56042936cf50-Format", + "variantKey": "Star", + "Star": "0x56042936cf50-Star" + }, + { + "id": "0x56042936cf50-Star" + }, + { + "id": "0x56042936ce40-OutputItem", + "variantKey": "Expr", + "Expr": "0x56042936ce40-Expr" + }, + { + "id": "0x56042936ce40-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56042936ce60-LiteralConstant" + }, + { + "id": "0x56042936ce60-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x56042936ce60-CharLiteralConstant" + }, + { + "id": "0x56042936ce60-CharLiteralConstant", + "string": "ELEMENT NUMBER = A(" + }, + { + "id": "0x56042936cc60-OutputItem", + "variantKey": "Expr", + "Expr": "0x56042936cc60-Expr" + }, + { + "id": "0x56042936cc60-Expr", + "variantKey": "Designator", + "Designator": "0x560429363690-Designator" + }, + { + "id": "0x560429363690-Designator", + "variantKey": "DataRef", + "DataRef": "0x5604293636a0-DataRef" + }, + { + "id": "0x5604293636a0-DataRef", + "variantKey": "Name", + "Name": "0x5604293636a0-Name" + }, + { + "id": "0x5604293636a0-Name", + "source": "i" + }, + { + "id": "0x56042936cd50-OutputItem", + "variantKey": "Expr", + "Expr": "0x56042936cd50-Expr" + }, + { + "id": "0x56042936cd50-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56042936cd70-LiteralConstant" + }, + { + "id": "0x56042936cd70-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x56042936cd70-CharLiteralConstant" + }, + { + "id": "0x56042936cd70-CharLiteralConstant", + "string": ")" + }, + { + "id": "0x560429345170-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x560429345170-ExecutableConstruct" + }, + { + "id": "0x560429345170-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x560429345170-Statement" + }, + { + "id": "0x560429345170-Statement", + "statement": "0x560429345180-ActionStmt", + "source": "code=1" + }, + { + "id": "0x560429345180-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x560429368a40-AssignmentStmt" + }, + { + "id": "0x560429368a40-AssignmentStmt", + "Variable": "0x560429368b20-Variable", + "Expr": "0x560429368a50-Expr" + }, + { + "id": "0x560429368b20-Variable", + "variantKey": "Designator", + "Designator": "0x5604293653a0-Designator" + }, + { + "id": "0x5604293653a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5604293653b0-DataRef" + }, + { + "id": "0x5604293653b0-DataRef", + "variantKey": "Name", + "Name": "0x5604293653b0-Name" + }, + { + "id": "0x5604293653b0-Name", + "source": "code" + }, + { + "id": "0x560429368a50-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x560429368a70-LiteralConstant" + }, + { + "id": "0x560429368a70-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x560429368a70-IntLiteralConstant" + }, + { + "id": "0x560429368a70-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5604293674e0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5604293674e0-ExecutableConstruct" + }, + { + "id": "0x5604293674e0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5604293674e0-Statement" + }, + { + "id": "0x5604293674e0-Statement", + "statement": "0x5604293674f0-ActionStmt", + "source": "goto20" + }, + { + "id": "0x5604293674f0-ActionStmt", + "variantKey": "GotoStmt", + "GotoStmt": "0x560429373790-GotoStmt" + }, + { + "id": "0x560429373790-GotoStmt", + "uint64_t": "20" + }, + { + "id": "0x56042930d780-Statement", + "statement": "0x56042930d790-EndIfStmt", + "source": "endif" + }, + { + "id": "0x56042930d790-EndIfStmt" + }, + { + "id": "0x560429368680-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x560429368680-ExecutableConstruct" + }, + { + "id": "0x560429368680-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x560429368680-Statement" + }, + { + "id": "0x560429368680-Statement", + "statement": "0x560429368690-ActionStmt", + "label": "10", + "source": "10continue" + }, + { + "id": "0x560429368690-ActionStmt", + "variantKey": "ContinueStmt", + "ContinueStmt": "0x560429368690-ContinueStmt" + }, + { + "id": "0x560429368690-ContinueStmt" + }, + { + "id": "0x560429370ca0-Statement", + "statement": "0x560429370cb0-EndDoStmt", + "source": "" + }, + { + "id": "0x560429370cb0-EndDoStmt" + }, + { + "id": "0x560429367d10-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x560429367d10-ExecutableConstruct" + }, + { + "id": "0x560429367d10-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x560429367d10-Statement" + }, + { + "id": "0x560429367d10-Statement", + "statement": "0x560429367d20-ActionStmt", + "label": "20", + "source": "20continue" + }, + { + "id": "0x560429367d20-ActionStmt", + "variantKey": "ContinueStmt", + "ContinueStmt": "0x560429367d20-ContinueStmt" + }, + { + "id": "0x560429367d20-ContinueStmt" + }, + { + "id": "0x56042936d2a0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x56042936d2a0-ExecutableConstruct" + }, + { + "id": "0x56042936d2a0-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x560429370dc0-DoConstruct" + }, + { + "id": "0x560429370dc0-DoConstruct", + "Statement": "0x560429370e18-Statement", + "ExecutionPartConstruct": [ + "0x56042936d550-ExecutionPartConstruct", + "0x56042936a7d0-ExecutionPartConstruct" + ], + "Statement": "0x560429370dc0-Statement" + }, + { + "id": "0x560429370e18-Statement", + "statement": "0x560429370e28-NonLabelDoStmt", + "source": "do30i=1,1000" + }, + { + "id": "0x560429370e28-NonLabelDoStmt", + "LoopControl": "0x560429370e28-LoopControl" + }, + { + "id": "0x560429370e28-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x560429370e28-LoopBounds" + }, + { + "id": "0x560429370e28-LoopBounds", + "var": "0x560429370e28-Name", + "lower": "0x56042936d070-Expr", + "upper": "0x56042936d150-Expr" + }, + { + "id": "0x560429370e28-Name", + "source": "i" + }, + { + "id": "0x56042936d070-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56042936d090-LiteralConstant" + }, + { + "id": "0x56042936d090-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56042936d090-IntLiteralConstant" + }, + { + "id": "0x56042936d090-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x56042936d150-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56042936d170-LiteralConstant" + }, + { + "id": "0x56042936d170-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56042936d170-IntLiteralConstant" + }, + { + "id": "0x56042936d170-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x560429370e00-ExecutionPartConstruct" + }, + { + "id": "0x56042936d550-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x56042936d550-ExecutableConstruct" + }, + { + "id": "0x56042936d550-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x56042937bfb0-IfConstruct" + }, + { + "id": "0x56042937bfb0-IfConstruct", + "Statement": "0x56042937c080-Statement", + "ExecutionPartConstruct": [ + "0x560429369b20-ExecutionPartConstruct", + "0x560429367370-ExecutionPartConstruct", + "0x56042936d240-ExecutionPartConstruct", + "0x5604293678f0-ExecutionPartConstruct" + ], + "Statement": "0x56042937bfb0-Statement" + }, + { + "id": "0x56042937c080-Statement", + "statement": "0x56042937c090-IfThenStmt", + "source": "if(b(i).ne.7)then" + }, + { + "id": "0x56042937c090-IfThenStmt", + "Expr": "0x56042936d760-Expr" + }, + { + "id": "0x56042936d760-Expr", + "variantKey": "NE", + "NE": "0x56042936d780-NE" + }, + { + "id": "0x56042936d780-NE", + "left": "0x56042936d2f0-Expr", + "right": "0x56042936d680-Expr", + "op": "NE" + }, + { + "id": "0x56042936d2f0-Expr", + "variantKey": "Designator", + "Designator": "0x5604293a2820-Designator" + }, + { + "id": "0x5604293a2820-Designator", + "variantKey": "DataRef", + "DataRef": "0x5604293a2830-DataRef" + }, + { + "id": "0x5604293a2830-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x560429371810-ArrayElement" + }, + { + "id": "0x560429371810-ArrayElement", + "base": "0x560429371810-DataRef", + "subscripts": [ + "0x560429397c80-SectionSubscript" + ] + }, + { + "id": "0x560429371810-DataRef", + "variantKey": "Name", + "Name": "0x560429371810-Name" + }, + { + "id": "0x560429371810-Name", + "source": "b" + }, + { + "id": "0x560429397c80-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x56042936b260-Expr" + }, + { + "id": "0x56042936b260-Expr", + "variantKey": "Designator", + "Designator": "0x56042936d840-Designator" + }, + { + "id": "0x56042936d840-Designator", + "variantKey": "DataRef", + "DataRef": "0x56042936d850-DataRef" + }, + { + "id": "0x56042936d850-DataRef", + "variantKey": "Name", + "Name": "0x56042936d850-Name" + }, + { + "id": "0x56042936d850-Name", + "source": "i" + }, + { + "id": "0x56042936d680-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56042936d6a0-LiteralConstant" + }, + { + "id": "0x56042936d6a0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56042936d6a0-IntLiteralConstant" + }, + { + "id": "0x56042936d6a0-IntLiteralConstant", + "CharBlock": "7" + }, + { + "id": "0x56042937c068-ExecutionPartConstruct" + }, + { + "id": "0x560429369b20-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x560429369b20-ExecutableConstruct" + }, + { + "id": "0x560429369b20-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x560429369b20-Statement" + }, + { + "id": "0x560429369b20-Statement", + "statement": "0x560429369b30-ActionStmt", + "source": "write(6,*)'NG'" + }, + { + "id": "0x560429369b30-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x56042936dcb0-WriteStmt" + }, + { + "id": "0x56042936dcb0-WriteStmt", + "iounit": "0x56042936dcb0-IoUnit", + "format": "0x56042936dce0-Format", + "controls": [], + "items": [ + "0x56042936dbd0-OutputItem" + ] + }, + { + "id": "0x56042936dcb0-IoUnit", + "variantKey": "Expr", + "Expr": "0x56042936dae0-Expr" + }, + { + "id": "0x56042936dae0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56042936db00-LiteralConstant" + }, + { + "id": "0x56042936db00-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56042936db00-IntLiteralConstant" + }, + { + "id": "0x56042936db00-IntLiteralConstant", + "CharBlock": "6" + }, + { + "id": "0x56042936dce0-Format", + "variantKey": "Star", + "Star": "0x56042936dce0-Star" + }, + { + "id": "0x56042936dce0-Star" + }, + { + "id": "0x56042936dbd0-OutputItem", + "variantKey": "Expr", + "Expr": "0x56042936dbd0-Expr" + }, + { + "id": "0x56042936dbd0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56042936dbf0-LiteralConstant" + }, + { + "id": "0x56042936dbf0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x56042936dbf0-CharLiteralConstant" + }, + { + "id": "0x56042936dbf0-CharLiteralConstant", + "string": "NG" + }, + { + "id": "0x560429367370-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x560429367370-ExecutableConstruct" + }, + { + "id": "0x560429367370-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x560429367370-Statement" + }, + { + "id": "0x560429367370-Statement", + "statement": "0x560429367380-ActionStmt", + "source": "write(6,*)'ELEMENT NUMBER = B(',i,')'" + }, + { + "id": "0x560429367380-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x56042937be60-WriteStmt" + }, + { + "id": "0x56042937be60-WriteStmt", + "iounit": "0x56042937be60-IoUnit", + "format": "0x56042937be90-Format", + "controls": [], + "items": [ + "0x56042937bd80-OutputItem", + "0x56042936def0-OutputItem", + "0x56042936e040-OutputItem" + ] + }, + { + "id": "0x56042937be60-IoUnit", + "variantKey": "Expr", + "Expr": "0x56042936de00-Expr" + }, + { + "id": "0x56042936de00-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56042936de20-LiteralConstant" + }, + { + "id": "0x56042936de20-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56042936de20-IntLiteralConstant" + }, + { + "id": "0x56042936de20-IntLiteralConstant", + "CharBlock": "6" + }, + { + "id": "0x56042937be90-Format", + "variantKey": "Star", + "Star": "0x56042937be90-Star" + }, + { + "id": "0x56042937be90-Star" + }, + { + "id": "0x56042937bd80-OutputItem", + "variantKey": "Expr", + "Expr": "0x56042937bd80-Expr" + }, + { + "id": "0x56042937bd80-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56042937bda0-LiteralConstant" + }, + { + "id": "0x56042937bda0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x56042937bda0-CharLiteralConstant" + }, + { + "id": "0x56042937bda0-CharLiteralConstant", + "string": "ELEMENT NUMBER = B(" + }, + { + "id": "0x56042936def0-OutputItem", + "variantKey": "Expr", + "Expr": "0x56042936def0-Expr" + }, + { + "id": "0x56042936def0-Expr", + "variantKey": "Designator", + "Designator": "0x56042936da10-Designator" + }, + { + "id": "0x56042936da10-Designator", + "variantKey": "DataRef", + "DataRef": "0x56042936da20-DataRef" + }, + { + "id": "0x56042936da20-DataRef", + "variantKey": "Name", + "Name": "0x56042936da20-Name" + }, + { + "id": "0x56042936da20-Name", + "source": "i" + }, + { + "id": "0x56042936e040-OutputItem", + "variantKey": "Expr", + "Expr": "0x56042936e040-Expr" + }, + { + "id": "0x56042936e040-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56042936e060-LiteralConstant" + }, + { + "id": "0x56042936e060-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x56042936e060-CharLiteralConstant" + }, + { + "id": "0x56042936e060-CharLiteralConstant", + "string": ")" + }, + { + "id": "0x56042936d240-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x56042936d240-ExecutableConstruct" + }, + { + "id": "0x56042936d240-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x56042936d240-Statement" + }, + { + "id": "0x56042936d240-Statement", + "statement": "0x56042936d250-ActionStmt", + "source": "code=1" + }, + { + "id": "0x56042936d250-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x56042936d430-AssignmentStmt" + }, + { + "id": "0x56042936d430-AssignmentStmt", + "Variable": "0x56042936d510-Variable", + "Expr": "0x56042936d440-Expr" + }, + { + "id": "0x56042936d510-Variable", + "variantKey": "Designator", + "Designator": "0x560429365080-Designator" + }, + { + "id": "0x560429365080-Designator", + "variantKey": "DataRef", + "DataRef": "0x560429365090-DataRef" + }, + { + "id": "0x560429365090-DataRef", + "variantKey": "Name", + "Name": "0x560429365090-Name" + }, + { + "id": "0x560429365090-Name", + "source": "code" + }, + { + "id": "0x56042936d440-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56042936d460-LiteralConstant" + }, + { + "id": "0x56042936d460-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56042936d460-IntLiteralConstant" + }, + { + "id": "0x56042936d460-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5604293678f0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5604293678f0-ExecutableConstruct" + }, + { + "id": "0x5604293678f0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5604293678f0-Statement" + }, + { + "id": "0x5604293678f0-Statement", + "statement": "0x560429367900-ActionStmt", + "source": "goto40" + }, + { + "id": "0x560429367900-ActionStmt", + "variantKey": "GotoStmt", + "GotoStmt": "0x560429376160-GotoStmt" + }, + { + "id": "0x560429376160-GotoStmt", + "uint64_t": "40" + }, + { + "id": "0x56042937bfb0-Statement", + "statement": "0x56042937bfc0-EndIfStmt", + "source": "endif" + }, + { + "id": "0x56042937bfc0-EndIfStmt" + }, + { + "id": "0x56042936a7d0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x56042936a7d0-ExecutableConstruct" + }, + { + "id": "0x56042936a7d0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x56042936a7d0-Statement" + }, + { + "id": "0x56042936a7d0-Statement", + "statement": "0x56042936a7e0-ActionStmt", + "label": "30", + "source": "30continue" + }, + { + "id": "0x56042936a7e0-ActionStmt", + "variantKey": "ContinueStmt", + "ContinueStmt": "0x56042936a7e0-ContinueStmt" + }, + { + "id": "0x56042936a7e0-ContinueStmt" + }, + { + "id": "0x560429370dc0-Statement", + "statement": "0x560429370dd0-EndDoStmt", + "source": "" + }, + { + "id": "0x560429370dd0-EndDoStmt" + }, + { + "id": "0x56042936d9c0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x56042936d9c0-ExecutableConstruct" + }, + { + "id": "0x56042936d9c0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x56042936d9c0-Statement" + }, + { + "id": "0x56042936d9c0-Statement", + "statement": "0x56042936d9d0-ActionStmt", + "label": "40", + "source": "40continue" + }, + { + "id": "0x56042936d9d0-ActionStmt", + "variantKey": "ContinueStmt", + "ContinueStmt": "0x56042936d9d0-ContinueStmt" + }, + { + "id": "0x56042936d9d0-ContinueStmt" + }, + { + "id": "0x560429369fd0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x560429369fd0-ExecutableConstruct" + }, + { + "id": "0x560429369fd0-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x560429370ee0-DoConstruct" + }, + { + "id": "0x560429370ee0-DoConstruct", + "Statement": "0x560429370f38-Statement", + "ExecutionPartConstruct": [ + "0x56042936bdb0-ExecutionPartConstruct", + "0x560429363b10-ExecutionPartConstruct" + ], + "Statement": "0x560429370ee0-Statement" + }, + { + "id": "0x560429370f38-Statement", + "statement": "0x560429370f48-NonLabelDoStmt", + "source": "do50i=1,1000" + }, + { + "id": "0x560429370f48-NonLabelDoStmt", + "LoopControl": "0x560429370f48-LoopControl" + }, + { + "id": "0x560429370f48-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x560429370f48-LoopBounds" + }, + { + "id": "0x560429370f48-LoopBounds", + "var": "0x560429370f48-Name", + "lower": "0x56042937c0d0-Expr", + "upper": "0x56042937c1b0-Expr" + }, + { + "id": "0x560429370f48-Name", + "source": "i" + }, + { + "id": "0x56042937c0d0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56042937c0f0-LiteralConstant" + }, + { + "id": "0x56042937c0f0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56042937c0f0-IntLiteralConstant" + }, + { + "id": "0x56042937c0f0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x56042937c1b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56042937c1d0-LiteralConstant" + }, + { + "id": "0x56042937c1d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56042937c1d0-IntLiteralConstant" + }, + { + "id": "0x56042937c1d0-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x560429370f20-ExecutionPartConstruct" + }, + { + "id": "0x56042936bdb0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x56042936bdb0-ExecutableConstruct" + }, + { + "id": "0x56042936bdb0-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x56042937d050-IfConstruct" + }, + { + "id": "0x56042937d050-IfConstruct", + "Statement": "0x56042937d120-Statement", + "ExecutionPartConstruct": [ + "0x56042936a9f0-ExecutionPartConstruct", + "0x560429363b70-ExecutionPartConstruct", + "0x56042936bca0-ExecutionPartConstruct", + "0x560429365e10-ExecutionPartConstruct" + ], + "Statement": "0x56042937d050-Statement" + }, + { + "id": "0x56042937d120-Statement", + "statement": "0x56042937d130-IfThenStmt", + "source": "if(c(i).ne.11)then" + }, + { + "id": "0x56042937d130-IfThenStmt", + "Expr": "0x56042937c640-Expr" + }, + { + "id": "0x56042937c640-Expr", + "variantKey": "NE", + "NE": "0x56042937c660-NE" + }, + { + "id": "0x56042937c660-NE", + "left": "0x56042937c290-Expr", + "right": "0x56042937c560-Expr", + "op": "NE" + }, + { + "id": "0x56042937c290-Expr", + "variantKey": "Designator", + "Designator": "0x5604293a3b60-Designator" + }, + { + "id": "0x5604293a3b60-Designator", + "variantKey": "DataRef", + "DataRef": "0x5604293a3b70-DataRef" + }, + { + "id": "0x5604293a3b70-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x5604293732d0-ArrayElement" + }, + { + "id": "0x5604293732d0-ArrayElement", + "base": "0x5604293732d0-DataRef", + "subscripts": [ + "0x5604293938c0-SectionSubscript" + ] + }, + { + "id": "0x5604293732d0-DataRef", + "variantKey": "Name", + "Name": "0x5604293732d0-Name" + }, + { + "id": "0x5604293732d0-Name", + "source": "c" + }, + { + "id": "0x5604293938c0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x56042936d5a0-Expr" + }, + { + "id": "0x56042936d5a0-Expr", + "variantKey": "Designator", + "Designator": "0x56042936ad10-Designator" + }, + { + "id": "0x56042936ad10-Designator", + "variantKey": "DataRef", + "DataRef": "0x56042936ad20-DataRef" + }, + { + "id": "0x56042936ad20-DataRef", + "variantKey": "Name", + "Name": "0x56042936ad20-Name" + }, + { + "id": "0x56042936ad20-Name", + "source": "i" + }, + { + "id": "0x56042937c560-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56042937c580-LiteralConstant" + }, + { + "id": "0x56042937c580-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56042937c580-IntLiteralConstant" + }, + { + "id": "0x56042937c580-IntLiteralConstant", + "CharBlock": "11" + }, + { + "id": "0x56042937d108-ExecutionPartConstruct" + }, + { + "id": "0x56042936a9f0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x56042936a9f0-ExecutableConstruct" + }, + { + "id": "0x56042936a9f0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x56042936a9f0-Statement" + }, + { + "id": "0x56042936a9f0-Statement", + "statement": "0x56042936aa00-ActionStmt", + "source": "write(6,*)'NG'" + }, + { + "id": "0x56042936aa00-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x56042937ca00-WriteStmt" + }, + { + "id": "0x56042937ca00-WriteStmt", + "iounit": "0x56042937ca00-IoUnit", + "format": "0x56042937ca30-Format", + "controls": [], + "items": [ + "0x56042937c920-OutputItem" + ] + }, + { + "id": "0x56042937ca00-IoUnit", + "variantKey": "Expr", + "Expr": "0x56042937c830-Expr" + }, + { + "id": "0x56042937c830-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56042937c850-LiteralConstant" + }, + { + "id": "0x56042937c850-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56042937c850-IntLiteralConstant" + }, + { + "id": "0x56042937c850-IntLiteralConstant", + "CharBlock": "6" + }, + { + "id": "0x56042937ca30-Format", + "variantKey": "Star", + "Star": "0x56042937ca30-Star" + }, + { + "id": "0x56042937ca30-Star" + }, + { + "id": "0x56042937c920-OutputItem", + "variantKey": "Expr", + "Expr": "0x56042937c920-Expr" + }, + { + "id": "0x56042937c920-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56042937c940-LiteralConstant" + }, + { + "id": "0x56042937c940-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x56042937c940-CharLiteralConstant" + }, + { + "id": "0x56042937c940-CharLiteralConstant", + "string": "NG" + }, + { + "id": "0x560429363b70-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x560429363b70-ExecutableConstruct" + }, + { + "id": "0x560429363b70-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x560429363b70-Statement" + }, + { + "id": "0x560429363b70-Statement", + "statement": "0x560429363b80-ActionStmt", + "source": "write(6,*)'ELEMENT NUMBER = C(',i,')'" + }, + { + "id": "0x560429363b80-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x56042937cf00-WriteStmt" + }, + { + "id": "0x56042937cf00-WriteStmt", + "iounit": "0x56042937cf00-IoUnit", + "format": "0x56042937cf30-Format", + "controls": [], + "items": [ + "0x56042937ce20-OutputItem", + "0x56042937cc40-OutputItem", + "0x56042937cd30-OutputItem" + ] + }, + { + "id": "0x56042937cf00-IoUnit", + "variantKey": "Expr", + "Expr": "0x56042937cb50-Expr" + }, + { + "id": "0x56042937cb50-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56042937cb70-LiteralConstant" + }, + { + "id": "0x56042937cb70-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56042937cb70-IntLiteralConstant" + }, + { + "id": "0x56042937cb70-IntLiteralConstant", + "CharBlock": "6" + }, + { + "id": "0x56042937cf30-Format", + "variantKey": "Star", + "Star": "0x56042937cf30-Star" + }, + { + "id": "0x56042937cf30-Star" + }, + { + "id": "0x56042937ce20-OutputItem", + "variantKey": "Expr", + "Expr": "0x56042937ce20-Expr" + }, + { + "id": "0x56042937ce20-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56042937ce40-LiteralConstant" + }, + { + "id": "0x56042937ce40-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x56042937ce40-CharLiteralConstant" + }, + { + "id": "0x56042937ce40-CharLiteralConstant", + "string": "ELEMENT NUMBER = C(" + }, + { + "id": "0x56042937cc40-OutputItem", + "variantKey": "Expr", + "Expr": "0x56042937cc40-Expr" + }, + { + "id": "0x56042937cc40-Expr", + "variantKey": "Designator", + "Designator": "0x56042936ba70-Designator" + }, + { + "id": "0x56042936ba70-Designator", + "variantKey": "DataRef", + "DataRef": "0x56042936ba80-DataRef" + }, + { + "id": "0x56042936ba80-DataRef", + "variantKey": "Name", + "Name": "0x56042936ba80-Name" + }, + { + "id": "0x56042936ba80-Name", + "source": "i" + }, + { + "id": "0x56042937cd30-OutputItem", + "variantKey": "Expr", + "Expr": "0x56042937cd30-Expr" + }, + { + "id": "0x56042937cd30-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56042937cd50-LiteralConstant" + }, + { + "id": "0x56042937cd50-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x56042937cd50-CharLiteralConstant" + }, + { + "id": "0x56042937cd50-CharLiteralConstant", + "string": ")" + }, + { + "id": "0x56042936bca0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x56042936bca0-ExecutableConstruct" + }, + { + "id": "0x56042936bca0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x56042936bca0-Statement" + }, + { + "id": "0x56042936bca0-Statement", + "statement": "0x56042936bcb0-ActionStmt", + "source": "code=1" + }, + { + "id": "0x56042936bcb0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x56042937c370-AssignmentStmt" + }, + { + "id": "0x56042937c370-AssignmentStmt", + "Variable": "0x56042937c450-Variable", + "Expr": "0x56042937c380-Expr" + }, + { + "id": "0x56042937c450-Variable", + "variantKey": "Designator", + "Designator": "0x56042936d3d0-Designator" + }, + { + "id": "0x56042936d3d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x56042936d3e0-DataRef" + }, + { + "id": "0x56042936d3e0-DataRef", + "variantKey": "Name", + "Name": "0x56042936d3e0-Name" + }, + { + "id": "0x56042936d3e0-Name", + "source": "code" + }, + { + "id": "0x56042937c380-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56042937c3a0-LiteralConstant" + }, + { + "id": "0x56042937c3a0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56042937c3a0-IntLiteralConstant" + }, + { + "id": "0x56042937c3a0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x560429365e10-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x560429365e10-ExecutableConstruct" + }, + { + "id": "0x560429365e10-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x560429365e10-Statement" + }, + { + "id": "0x560429365e10-Statement", + "statement": "0x560429365e20-ActionStmt", + "source": "goto60" + }, + { + "id": "0x560429365e20-ActionStmt", + "variantKey": "GotoStmt", + "GotoStmt": "0x560429372e20-GotoStmt" + }, + { + "id": "0x560429372e20-GotoStmt", + "uint64_t": "60" + }, + { + "id": "0x56042937d050-Statement", + "statement": "0x56042937d060-EndIfStmt", + "source": "endif" + }, + { + "id": "0x56042937d060-EndIfStmt" + }, + { + "id": "0x560429363b10-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x560429363b10-ExecutableConstruct" + }, + { + "id": "0x560429363b10-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x560429363b10-Statement" + }, + { + "id": "0x560429363b10-Statement", + "statement": "0x560429363b20-ActionStmt", + "label": "50", + "source": "50continue" + }, + { + "id": "0x560429363b20-ActionStmt", + "variantKey": "ContinueStmt", + "ContinueStmt": "0x560429363b20-ContinueStmt" + }, + { + "id": "0x560429363b20-ContinueStmt" + }, + { + "id": "0x560429370ee0-Statement", + "statement": "0x560429370ef0-EndDoStmt", + "source": "" + }, + { + "id": "0x560429370ef0-EndDoStmt" + }, + { + "id": "0x560429364b40-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x560429364b40-ExecutableConstruct" + }, + { + "id": "0x560429364b40-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x560429364b40-Statement" + }, + { + "id": "0x560429364b40-Statement", + "statement": "0x560429364b50-ActionStmt", + "label": "60", + "source": "60continue" + }, + { + "id": "0x560429364b50-ActionStmt", + "variantKey": "ContinueStmt", + "ContinueStmt": "0x560429364b50-ContinueStmt" + }, + { + "id": "0x560429364b50-ContinueStmt" + }, + { + "id": "0x56042937d180-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x56042937d180-ExecutableConstruct" + }, + { + "id": "0x56042937d180-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x56042937d180-Statement" + }, + { + "id": "0x56042937d180-Statement", + "statement": "0x56042937d190-ActionStmt", + "source": "return" + }, + { + "id": "0x56042937d190-ActionStmt", + "variantKey": "ReturnStmt", + "ReturnStmt": "0x560429376420-ReturnStmt" + }, + { + "id": "0x560429376420-ReturnStmt" + }, + { + "id": "0x56042937ea00-Statement", + "statement": "0x56042937ea10-EndSubroutineStmt", + "source": "end" + }, + { + "id": "0x56042937ea10-EndSubroutineStmt" + } + ], + "comments": [ + { + "text": "", + "stmtId": "0x560429366160-Statement", + "trailing": false + }, + { + "text": "", + "stmtId": "0x560429365b20-Statement", + "trailing": false + }, + { + "text": "", + "stmtId": "0x560429366740-Statement", + "trailing": false + }, + { + "text": "", + "stmtId": "0x56042937eb48-Statement", + "trailing": false + }, + { + "text": "", + "stmtId": "0x56042937eb48-Statement", + "trailing": false + }, + { + "text": "", + "stmtId": "0x560429370cf8-Statement", + "trailing": false + }, + { + "text": "", + "stmtId": "0x560429367d10-Statement", + "trailing": false + }, + { + "text": "", + "stmtId": "0x56042936d9c0-Statement", + "trailing": false + }, + { + "text": "", + "stmtId": "0x560429364b40-Statement", + "trailing": false + } + ], + "enums": { + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "Fortran::common::ImportKind": [ + "Default", + "Only", + "None", + "All" + ], + "Fortran::common::OmpDependenceKind": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::common::OmpMemoryOrderType": [ + "Acq_Rel", + "Acquire", + "Relaxed", + "Release", + "Seq_Cst" + ], + "Fortran::common::OpenACCDeviceType": [ + "Star", + "Default", + "Nvidia", + "Radeon", + "Host", + "Multicore", + "None" + ], + "Fortran::parser::AccDataModifier::Modifier": [ + "ReadOnly", + "Zero" + ], + "Fortran::parser::AccessSpec::Kind": [ + "Public", + "Private" + ], + "Fortran::parser::BindEntity::Kind": [ + "Object", + "Common" + ], + "Fortran::parser::CompilerDirective::VectorLength::Kind": [ + "Auto", + "Fixed", + "Scalable" + ], + "Fortran::parser::ConnectSpec::CharExpr::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Encoding", + "Form", + "Pad", + "Position", + "Round", + "Sign", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::DefinedOperator::IntrinsicOperator": [ + "Power", + "Multiply", + "Divide", + "Add", + "Subtract", + "Concat", + "LT", + "LE", + "EQ", + "NE", + "GE", + "GT", + "NOT", + "AND", + "OR", + "EQV", + "NEQV" + ], + "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec": [ + "External", + "Type" + ], + "Fortran::parser::InquireSpec::CharVar::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Direct", + "Encoding", + "Form", + "Formatted", + "Iomsg", + "Name", + "Pad", + "Position", + "Read", + "Readwrite", + "Round", + "Sequential", + "Sign", + "Stream", + "Status", + "Unformatted", + "Write", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::InquireSpec::IntVar::Kind": [ + "Iostat", + "Nextrec", + "Number", + "Pos", + "Recl", + "Size" + ], + "Fortran::parser::InquireSpec::LogVar::Kind": [ + "Exist", + "Named", + "Opened", + "Pending" + ], + "Fortran::parser::IntentSpec::Intent": [ + "In", + "Out", + "InOut" + ], + "Fortran::parser::IoControlSpec::CharExpr::Kind": [ + "Advance", + "Blank", + "Decimal", + "Delim", + "Pad", + "Round", + "Sign" + ], + "Fortran::parser::ReductionOperator::Operator": [ + "Plus", + "Multiply", + "Max", + "Min", + "Iand", + "Ior", + "Ieor", + "And", + "Or", + "Eqv", + "Neqv" + ], + "Fortran::parser::OmpAccessGroup::Value": [ + "Cgroup" + ], + "Fortran::parser::OmpAdjustArgsClause::OmpAdjustOp::Value": [ + "Nothing", + "Need_Device_Ptr" + ], + "Fortran::parser::OmpAlwaysModifier::Value": [ + "Always" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpAttachModifier::Value": [ + "Always", + "Never", + "Auto" + ], + "Fortran::parser::OmpAutomapModifier::Value": [ + "Automap" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpCloseModifier::Value": [ + "Close" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default", + "Present" + ], + "Fortran::parser::OmpDeleteModifier::Value": [ + "Delete" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpDirectiveSpecification::Flag": [ + "DeprecatedSyntax", + "CrossesLabelDo" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpInteropType::Value": [ + "Target", + "Targetsync" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "Storage", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpObject::Invalid::Kind": [ + "BlankCommonBlock" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpPresentModifier::Value": [ + "Present" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpRefModifier::Value": [ + "Ref_Ptee", + "Ref_Ptr", + "Ref_Ptr_Ptee" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpSelfModifier::Value": [ + "Self" + ], + "Fortran::parser::OmpSeverityClause::SevLevel": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpThreadsetClause::ThreadsetPolicy": [ + "Omp_Pool", + "Omp_Team" + ], + "Fortran::parser::OmpTraitSelectorName::Value": [ + "Arch", + "Atomic_Default_Mem_Order", + "Condition", + "Device_Num", + "Extension", + "Isa", + "Kind", + "Requires", + "Simd", + "Uid", + "Vendor" + ], + "Fortran::parser::OmpTraitSetSelectorName::Value": [ + "Construct", + "Device", + "Implementation", + "Target_Device", + "User" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpxHoldModifier::Value": [ + "Ompx_Hold" + ], + "Fortran::parser::ProcedureStmt::Kind": [ + "ModuleProcedure", + "Procedure" + ], + "Fortran::parser::SavedEntity::Kind": [ + "Entity", + "Common" + ], + "Fortran::parser::StopStmt::Kind": [ + "Stop", + "ErrorStop" + ], + "Fortran::parser::UseStmt::ModuleNature": [ + "Intrinsic", + "Non_Intrinsic" + ] + } +} diff --git a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java index 7f71cdb6..b6b87075 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -728,4 +728,16 @@ void testFujitsu0001_0007Native() { testNative("fujitsu/0001/0001_0007.f"); } } + + @Test + void testFujitsu0001_00011() { + testJson("fujitsu/0001/0001_0011.json"); + } + + @Test + void testFujitsu0001_00011Native() { + if (SpecsPlatforms.isLinux()) { + testNative("fujitsu/0001/0001_0011.f"); + } + } } From 1e86e8b512dec93b73325b34d5a9f08c9dd4f62a Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 21 Jul 2026 19:21:17 +0100 Subject: [PATCH 057/260] Change expected code in legacy fortran --- .../parser/fujitsu/0001/0001_0000.expected.f | 22 +++--- .../parser/fujitsu/0001/0001_0007.expected.f | 72 +++++++++---------- 2 files changed, 47 insertions(+), 47 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f index e39f0b6b..1a57ceff 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f @@ -1,18 +1,18 @@ - INTEGER :: a(1000) + INTEGER a(1000) - a = 0 - a = a + 1 + a=0 + a=a+1 - DO 10 i = 1, 1000 - IF (a(i) /= 1) THEN - WRITE(6, *) "NG" - WRITE(6, *) "ELEMENT NUMBER = A(", i, ")" - GO TO 20 - END IF + DO 10 i=1,1000 + IF(a(i) /= 1)THEN + WRITE(6, *)"NG" + WRITE(6, *)"ELEMENT NUMBER = A(",i,")" + GOTO 20 + ENDIF 10 CONTINUE - WRITE(6, *) "OK" + WRITE(6, *)"OK" 20 CONTINUE STOP - END PROGRAM + END diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.expected.f b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.expected.f index b4340702..36460ab4 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.expected.f +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.expected.f @@ -1,50 +1,50 @@ - INTEGER :: a(1000), b(1000), c(1000), code - DATA a / 1000*0 /, b / 1000*0 /, c / 1000*0 / + INTEGER a(1000),b(1000),c(1000),code + DATA a/1000*0/,b/1000*0/,c/1000*0/ C - code = 0 - CALL sub1(a, b, c, 1000, code) + code=0 + CALL sub1(a,b,c,1000,code) C - IF (code == 0) WRITE(6, *) "OK" + IF(code==0)WRITE(6,*)"OK" C STOP - END PROGRAM -C - SUBROUTINE sub1(a, b, c, n, code) - INTEGER :: a(n), b(n), c(n), code -C - a(1:n) = b(1:n) + 1 - b(1:n) = b(1:n) + 1 - c(1:n) = c(1:n) + 1 -C - DO 10 i = 1, 1000 - IF (a(i) /= 1) THEN - WRITE(6, *) "NG" - WRITE(6, *) "ELEMENT NUMBER = A(", i, ")" - code = 1 - GO TO 20 - END IF + END +C + SUBROUTINE sub1(a,b,c,n,code) + INTEGER a(n),b(n),c(n),code +C + a(1:n)=b(1:n)+1 + b(1:n)=b(1:n)+1 + c(1:n)=c(1:n)+1 +C + DO 10 i=1,1000 + IF(a(i)/=1)THEN + WRITE(6,*)"NG" + WRITE(6,*)"ELEMENT NUMBER = A(",i,")" + code=1 + GOTO 20 + ENDIF 10 CONTINUE C 20 CONTINUE - DO 30 i = 1, 1000 - IF (b(i) /= 1) THEN - WRITE(6, *) "NG" - WRITE(6, *) "ELEMENT NUMBER = B(", i, ")" - code = 1 - GO TO 40 - END IF + DO 30 i=1,1000 + IF(b(i)/=1)THEN + WRITE(6,*)"NG" + WRITE(6,*)"ELEMENT NUMBER = B(",i,")" + code=1 + GOTO 40 + ENDIF 30 CONTINUE C 40 CONTINUE - DO 50 i = 1, 1000 - IF (c(i) /= 1) THEN - WRITE(6, *) "NG" - WRITE(6, *) "ELEMENT NUMBER = C(", i, ")" - code = 1 - GO TO 60 - END IF + DO 50 i=1,1000 + IF(c(i)/=1)THEN + WRITE(6,*)"NG" + WRITE(6,*)"ELEMENT NUMBER = C(",i,")" + code=1 + GOTO 60 + ENDIF 50 CONTINUE C 60 CONTINUE RETURN - END SUBROUTINE sub1 \ No newline at end of file + END \ No newline at end of file From fe773876c5a5e799c39991fe34754c3cb832192a Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 21 Jul 2026 19:45:39 +0100 Subject: [PATCH 058/260] Configure optional spaces for fixed-form compatibility --- .../specs/fortran/ast/nodes/FortranNode.java | 18 +++++++++++++----- .../fortran/ast/nodes/expr/BinaryOperator.java | 2 +- .../fe/specs/fortran/ast/nodes/expr/Call.java | 2 +- .../ast/nodes/loops/ConcurrentRange.java | 3 ++- .../ast/nodes/loops/RangeLoopControl.java | 5 +++-- .../ast/nodes/loops/WhileLoopControl.java | 2 +- .../ast/nodes/program/EndProgramStmt.java | 4 ++++ .../ast/nodes/program/EndSubroutineStmt.java | 4 ++++ .../ast/nodes/program/SubroutineStmt.java | 2 +- .../fortran/ast/nodes/stmt/AssignmentStmt.java | 2 +- .../specs/fortran/ast/nodes/stmt/GotoStmt.java | 2 +- .../ast/nodes/stmt/TypeDeclarationStmt.java | 7 ++++--- .../fortran/ast/nodes/stmt/WriteStmt.java | 6 +++--- .../ast/nodes/stmt/datastmt/DataStmt.java | 2 +- .../ast/nodes/stmt/datastmt/DataStmtSet.java | 6 +++--- .../ast/nodes/stmt/ifstmt/ElseIfStmt.java | 6 +++--- .../ast/nodes/stmt/ifstmt/EndIfStmt.java | 6 ++++-- .../fortran/ast/nodes/stmt/ifstmt/IfStmt.java | 9 +++------ .../ast/nodes/stmt/ifstmt/IfThenStmt.java | 6 +++--- .../fortran/ast/nodes/stmt/loop/EndDoStmt.java | 5 +++-- .../parser/fujitsu/0001/0001_0000.expected.f | 8 ++++---- 21 files changed, 63 insertions(+), 44 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java index 2b73f70d..6388c93d 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java @@ -132,6 +132,19 @@ protected String keyword(FortranKeyword keyword) { return get(CONTEXT).get(FortranContext.FORTRAN_KEYWORDS).get(keyword); } + protected boolean fixedForm() { + return getContext().get(FortranContext.FIXED_FORM); + } + + protected String getCommentStarter() { + return fixedForm() ? "C" : "!"; + } + + // Represents an optional space, omitted when generating fixed-form code + protected String optSpc() { + return !fixedForm() ? " " : ""; + } + public FortranNodeFactory getFactory() { return get(FortranNode.CONTEXT).get(FortranContext.FACTORY); } @@ -208,9 +221,4 @@ public Optional getRight() { return Optional.of(siblings.get(rightIndex)); } - - protected String getCommentStarter() { - var fixedForm = getContext().get(FortranContext.FIXED_FORM); - return fixedForm ? "C" : "!"; - } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/BinaryOperator.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/BinaryOperator.java index 15490f15..42529c77 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/BinaryOperator.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/BinaryOperator.java @@ -41,7 +41,7 @@ public String getCode() { return getLhs().getCode() + - " " + get(OP).getOpString() + " " + + optSpc() + get(OP).getOpString() + optSpc() + getRhs().getCode(); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/Call.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/Call.java index 6cd915f1..db6fc60a 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/Call.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/Call.java @@ -26,7 +26,7 @@ public String getCode() { return getCallee().getCode() + "(" + getArgs().stream() .map(Argument::getCode) - .collect(Collectors.joining(", ")) + + .collect(Collectors.joining("," + optSpc())) + ")"; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/loops/ConcurrentRange.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/loops/ConcurrentRange.java index 47d9575f..75cde34c 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/loops/ConcurrentRange.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/loops/ConcurrentRange.java @@ -15,7 +15,8 @@ public ConcurrentRange(DataStore data, Collection childre public String getCode() { StringBuilder code = new StringBuilder(); - code.append(getVar().getCode()).append(" = ") + code.append(getVar().getCode()) + .append(optSpc()).append("=").append(optSpc()) .append(getLower().getCode()).append(":") .append(getUpper().getCode()); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/loops/RangeLoopControl.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/loops/RangeLoopControl.java index 6393d699..94a75051 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/loops/RangeLoopControl.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/loops/RangeLoopControl.java @@ -45,8 +45,9 @@ public void setStep(Expr newStep) { public String getCode() { StringBuilder code = new StringBuilder(); - code.append(getVar().getCode()).append(" = ") - .append(getLower().getCode()).append(", ") + code.append(getVar().getCode()) + .append(optSpc()).append("=").append(optSpc()) + .append(getLower().getCode()).append(",").append(optSpc()) .append(getUpper().getCode()); getStep().ifPresent(step -> code.append(", ").append(step.getCode())); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/loops/WhileLoopControl.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/loops/WhileLoopControl.java index 53ba2b74..23423a8f 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/loops/WhileLoopControl.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/loops/WhileLoopControl.java @@ -21,7 +21,7 @@ public Optional getCond() { @Override public String getCode() { return getCond().map( - expr -> keyword(FortranKeyword.WHILE) + " (" + expr.getCode() + ")" + expr -> keyword(FortranKeyword.WHILE) + optSpc() + "(" + expr.getCode() + ")" ).orElse(""); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/EndProgramStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/EndProgramStmt.java index f6f6bd66..1f99b312 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/EndProgramStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/EndProgramStmt.java @@ -14,6 +14,10 @@ public EndProgramStmt(DataStore data, Collection children @Override public String getStmtCode() { + if (fixedForm()) { + return keyword(FortranKeyword.END); + } + var nameOpt = getAncestor(MainProgram.class).getName(); var nameSuffix = nameOpt.map(name -> " " + name).orElse(""); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/EndSubroutineStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/EndSubroutineStmt.java index bfddc24f..906ba69f 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/EndSubroutineStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/EndSubroutineStmt.java @@ -14,6 +14,10 @@ public EndSubroutineStmt(DataStore data, Collection child @Override public String getStmtCode() { + if (fixedForm()) { + return keyword(FortranKeyword.END); + } + var subroutineName = getAncestor(Subroutine.class).getName(); return keyword(FortranKeyword.END) + " " + keyword(FortranKeyword.SUBROUTINE) + " " + subroutineName; } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/SubroutineStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/SubroutineStmt.java index 3ac2a80a..7a5f99b7 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/SubroutineStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/SubroutineStmt.java @@ -26,7 +26,7 @@ public String getStmtCode() { var argCode = getParameters().stream() .map(Parameter::getCode) - .collect(Collectors.joining(", ", "(", ")")); + .collect(Collectors.joining("," + optSpc(), "(", ")")); return keyword(SUBROUTINE) + " " + subroutineName + argCode; } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AssignmentStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AssignmentStmt.java index c98c636a..149b962e 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AssignmentStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AssignmentStmt.java @@ -28,7 +28,7 @@ public String getStmtCode() { var variable = getVariable(); code.append(variable.getCode()); - code.append(" = "); + code.append(optSpc()).append("=").append(optSpc()); var expression = getExpression(); code.append(expression.getCode()); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/GotoStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/GotoStmt.java index e4e761ad..80d5becd 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/GotoStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/GotoStmt.java @@ -23,6 +23,6 @@ public int getGotoLabel() { public String getStmtCode() { var label = getGotoLabel(); - return keyword(FortranKeyword.GO) + " " + keyword(FortranKeyword.TO) + " " + label; + return keyword(FortranKeyword.GO) + optSpc() + keyword(FortranKeyword.TO) + " " + label; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java index 9c37931c..eb7f119d 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java @@ -44,12 +44,13 @@ public String getStmtCode() { code.append(type.getCode()); if (!attributes.isEmpty()) { var attributesCode = getAttributesCode(attributes); - code.append(", ").append(attributesCode); + code.append(",").append(optSpc()).append(attributesCode); } - code.append(" :: "); + + code.append(!fixedForm() ? " :: " : " "); var declsCode = decls.stream().map(EntityDecl::getCode) - .collect(Collectors.joining(", ")); + .collect(Collectors.joining("," + optSpc())); code.append(declsCode); return code.toString(); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/WriteStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/WriteStmt.java index 13b3390a..4216c36c 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/WriteStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/WriteStmt.java @@ -48,15 +48,15 @@ public String getStmtCode() { getControlSpecs().forEach(spec -> parts.add(spec.getCode())); - code.append(String.join(", ", parts)); + code.append(String.join("," + optSpc(), parts)); - code.append(") "); + code.append(")").append(optSpc()); code.append( getOutputItems() .stream() .map(Expr::getCode) - .collect(Collectors.joining(", ")) + .collect(Collectors.joining("," + optSpc())) ); return code.toString(); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmt.java index ef2208de..f0a6387a 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmt.java @@ -24,7 +24,7 @@ public String getStmtCode() { var dataSetsCode = dataSets.stream() .map(DataStmtSet::getCode) - .collect(Collectors.joining(", ")); + .collect(Collectors.joining("," + optSpc())); return keyword(FortranKeyword.DATA) + " " + dataSetsCode; } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmtSet.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmtSet.java index f5c26f03..76135144 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmtSet.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmtSet.java @@ -28,11 +28,11 @@ public String getCode() { var objectsCode = objects.stream() .map(DataStmtObject::getCode) - .collect(Collectors.joining(", ")); + .collect(Collectors.joining("," + optSpc())); var valuesCode = values.stream() .map(DataStmtValue::getCode) - .collect(Collectors.joining(", ")); + .collect(Collectors.joining("," + optSpc())); - return objectsCode + " / " + valuesCode + " /"; + return objectsCode + optSpc() + "/" + optSpc() + valuesCode + optSpc() + "/"; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseIfStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseIfStmt.java index 04353499..cc87669b 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseIfStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseIfStmt.java @@ -27,11 +27,11 @@ public String getStmtCode() { var code = new StringBuilder(); code.append(keyword(FortranKeyword.ELSE)) - .append(" ") + .append(optSpc()) .append(keyword(FortranKeyword.IF)) - .append(" (") + .append(optSpc()).append("(") .append(condition.getCode()) - .append(") ") + .append(")").append(optSpc()) .append(keyword(FortranKeyword.THEN)); nameOpt.ifPresent(name -> code.append(" ").append(name)); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/EndIfStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/EndIfStmt.java index 5f9636fc..ae447630 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/EndIfStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/EndIfStmt.java @@ -22,10 +22,12 @@ public String getStmtCode() { var code = new StringBuilder(); code.append(keyword(FortranKeyword.END)) - .append(" ") + .append(optSpc()) .append(keyword(FortranKeyword.IF)); - nameOpt.ifPresent(name -> code.append(" ").append(name)); + if (!fixedForm()) { + nameOpt.ifPresent(name -> code.append(" ").append(name)); + } return code.toString(); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfStmt.java index 0444fe32..231850bb 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfStmt.java @@ -26,11 +26,8 @@ public String getStmtCode() { var condition = getCondition(); var thenAction = getThenAction(); - return String.format( - "%s (%s) %s", - keyword(FortranKeyword.IF), - condition.getCode(), - thenAction.getStmtCode() - ); + return keyword(FortranKeyword.IF) + optSpc() + + "(" + condition.getCode() + ")" + optSpc() + + thenAction.getStmtCode(); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfThenStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfThenStmt.java index cb55b986..d5f6b7b7 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfThenStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfThenStmt.java @@ -27,12 +27,12 @@ public String getStmtCode() { var code = new StringBuilder(); - nameOpt.ifPresent(name -> code.append(name).append(" : ")); + nameOpt.ifPresent(name -> code.append(name).append(optSpc()).append(":").append(optSpc())); code.append(keyword(FortranKeyword.IF)) - .append(" (") + .append(optSpc()).append("(") .append(condition.getCode()) - .append(") ") + .append(")").append(optSpc()) .append(keyword(FortranKeyword.THEN)); return code.toString(); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/EndDoStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/EndDoStmt.java index b4a38b30..14326a2f 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/EndDoStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/EndDoStmt.java @@ -22,8 +22,9 @@ public String getStmtCode() { var doLabelOpt = parent.getDoLabel(); var labelPrefix = doLabelOpt.map(label -> label + " ").orElse(""); - var doNameOpt = parent.getName(); - var nameSuffix = doNameOpt.map(name -> " " + name).orElse(""); + var nameSuffix = !fixedForm() + ? parent.getName().map(name -> " " + name).orElse("") + : ""; return labelPrefix + keyword(FortranKeyword.END) + " " + keyword(FortranKeyword.DO) + nameSuffix; } diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f index 1a57ceff..43a8e5e0 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f @@ -4,14 +4,14 @@ a=a+1 DO 10 i=1,1000 - IF(a(i) /= 1)THEN - WRITE(6, *)"NG" - WRITE(6, *)"ELEMENT NUMBER = A(",i,")" + IF(a(i)/=1)THEN + WRITE(6,*)"NG" + WRITE(6,*)"ELEMENT NUMBER = A(",i,")" GOTO 20 ENDIF 10 CONTINUE - WRITE(6, *)"OK" + WRITE(6,*)"OK" 20 CONTINUE STOP From 28285901291204413d9fd3bbf58332e7988069ef Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 21 Jul 2026 19:46:09 +0100 Subject: [PATCH 059/260] Fix expected code for Fujitsu test case 0001_0011 --- .../parser/fujitsu/0001/0001_0011.expected.f | 56 +++++++++---------- .../fortran/parser/FortranParserTest.java | 4 +- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0011.expected.f b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0011.expected.f index 26bafd10..0582b512 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0011.expected.f +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0011.expected.f @@ -1,45 +1,45 @@ - INTEGER A(1000),B(1000),C(1000),D(1000),E(1000),F(1000),CODE - DATA A/1000*1/,B/1000*2/,C/1000*3/,D/1000*4/,E/1000*5/,F/1000*6/ + INTEGER a(1000),b(1000),c(1000),d(1000),e(1000),f(1000),code + DATA a/1000*1/,b/1000*2/,c/1000*3/,d/1000*4/,e/1000*5/,f/1000*6/ C - CODE = 0 - CALL SUB1(A+B,C+D,E+F,CODE) + code=0 + CALL sub1(a+b,c+d,e+f,code) C - IF(CODE.EQ.0) WRITE(6,*) 'OK' + IF(code==0)WRITE(6,*)"OK" C STOP END C C - SUBROUTINE SUB1(A,B,C,CODE) - INTEGER A(1000),B(1000),C(1000),CODE + SUBROUTINE sub1(a,b,c,code) + INTEGER a(1000),b(1000),c(1000),code C - DO 10 I=1,1000 - IF(A(I).NE.3) THEN - WRITE(6,*) 'NG' - WRITE(6,*) 'ELEMENT NUMBER = A(',I,')' - CODE = 1 - GO TO 20 - ENDIF + DO 10 i=1,1000 + IF(a(i)/=3)THEN + WRITE(6,*)"NG" + WRITE(6,*)"ELEMENT NUMBER = A(",i,")" + code=1 + GOTO 20 + ENDIF 10 CONTINUE C 20 CONTINUE - DO 30 I=1,1000 - IF(B(I).NE.7) THEN - WRITE(6,*) 'NG' - WRITE(6,*) 'ELEMENT NUMBER = B(',I,')' - CODE = 1 - GO TO 40 - ENDIF + DO 30 i=1,1000 + IF(b(i)/=7)THEN + WRITE(6,*)"NG" + WRITE(6,*)"ELEMENT NUMBER = B(",i,")" + code=1 + GOTO 40 + ENDIF 30 CONTINUE C 40 CONTINUE - DO 50 I=1,1000 - IF(C(I).NE.11) THEN - WRITE(6,*) 'NG' - WRITE(6,*) 'ELEMENT NUMBER = C(',I,')' - CODE = 1 - GO TO 60 - ENDIF + DO 50 i=1,1000 + IF(c(i)/=11)THEN + WRITE(6,*)"NG" + WRITE(6,*)"ELEMENT NUMBER = C(",i,")" + code=1 + GOTO 60 + ENDIF 50 CONTINUE C 60 CONTINUE diff --git a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java index b6b87075..976bc879 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -730,12 +730,12 @@ void testFujitsu0001_0007Native() { } @Test - void testFujitsu0001_00011() { + void testFujitsu0001_0011() { testJson("fujitsu/0001/0001_0011.json"); } @Test - void testFujitsu0001_00011Native() { + void testFujitsu0001_0011Native() { if (SpecsPlatforms.isLinux()) { testNative("fujitsu/0001/0001_0011.f"); } From b6b90d642b6fcbd13780c47aff339be8094774de Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 22 Jul 2026 12:27:55 +0100 Subject: [PATCH 060/260] Fix extra token in type declaration statement --- .../ast/nodes/stmt/TypeDeclarationStmt.java | 7 ++++--- .../parser/arrays/array_implied_do.expected.f90 | 2 +- .../parser/arrays/element_access.expected.f90 | 4 ++-- .../fortran/parser/binary_operator.expected.f90 | 4 ++-- .../fortran/parser/concurrent.expected.f90 | 4 ++-- .../parser/conditionalstmt/chained_if.expected.f90 | 2 +- .../parser/conditionalstmt/if_then.expected.f90 | 2 +- .../conditionalstmt/if_then_else.expected.f90 | 2 +- .../parser/conditionalstmt/logical_if.expected.f90 | 4 ++-- .../conditionalstmt/named_chained_if.expected.f90 | 2 +- .../conditionalstmt/named_select_case.expected.f90 | 2 +- .../conditionalstmt/select_case.expected.f90 | 2 +- .../conditionalstmt/select_case_list.expected.f90 | 2 +- .../conditionalstmt/select_case_range.expected.f90 | 2 +- .../fortran/parser/decl/kind_selector.expected.f90 | 4 ++-- .../parser/decl/legacy_kind_selector.expected.f90 | 4 ++-- .../fortran/parser/declaration.expected.f90 | 2 +- .../fortran/parser/directive.expected.f90 | 4 ++-- .../resources-test/fortran/parser/do.expected.f90 | 2 +- .../fortran/parser/expr/negate.expected.f90 | 2 +- .../fortran/parser/expr/not.expected.f90 | 2 +- .../fortran/parser/expr/parentheses.expected.f90 | 2 +- .../parser/expr/subscript_triplet.expected.f90 | 2 +- .../fortran/parser/expr/unary_plus.expected.f90 | 2 +- .../parser/fujitsu/0000/0000_0000.expected.f90 | 4 ++-- .../parser/fujitsu/0000/0000_0001.expected.f90 | 6 +++--- .../parser/fujitsu/0000/0000_0002.expected.f90 | 6 +++--- .../parser/fujitsu/0000/0000_0003.expected.f90 | 6 +++--- .../parser/fujitsu/0000/0000_0004.expected.f90 | 6 +++--- .../parser/fujitsu/0000/0000_0007.expected.f90 | 6 +++--- .../parser/fujitsu/0000/0000_0019.expected.f90 | 6 +++--- .../parser/fujitsu/0000/0000_0023.expected.f90 | 4 ++-- .../parser/fujitsu/0000/0000_0024.expected.f90 | 2 +- .../parser/fujitsu/0000/0000_0033.expected.f90 | 14 +++++++------- .../fortran/parser/logical_expression.expected.f90 | 4 ++-- .../fortran/parser/omp/omp_basic.expected.f90 | 2 +- .../fortran/parser/omp/omp_clause.expected.f90 | 4 ++-- .../fortran/parser/omp/omp_do.expected.f90 | 4 ++-- .../fortran/parser/omp/omp_reduction.expected.f90 | 4 ++-- .../fortran/parser/parameter.expected.f90 | 4 ++-- .../fortran/parser/parenexpr.expected.f90 | 4 ++-- .../fortran/parser/polybench/3mm.expected.f90 | 14 +++++++------- .../fortran/parser/stmt/common_stmt.expected.f90 | 4 ++-- .../fortran/parser/subroutine.expected.f90 | 2 +- 44 files changed, 87 insertions(+), 86 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java index eb7f119d..6024c75f 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java @@ -44,11 +44,12 @@ public String getStmtCode() { code.append(type.getCode()); if (!attributes.isEmpty()) { var attributesCode = getAttributesCode(attributes); - code.append(",").append(optSpc()).append(attributesCode); + code.append(",").append(optSpc()).append(attributesCode) + .append(optSpc()).append("::").append(optSpc()); + } else { + code.append(" "); } - code.append(!fixedForm() ? " :: " : " "); - var declsCode = decls.stream().map(EntityDecl::getCode) .collect(Collectors.joining("," + optSpc())); code.append(declsCode); diff --git a/FortranParser/resources-test/fortran/parser/arrays/array_implied_do.expected.f90 b/FortranParser/resources-test/fortran/parser/arrays/array_implied_do.expected.f90 index acc281ac..7bb5a4e5 100644 --- a/FortranParser/resources-test/fortran/parser/arrays/array_implied_do.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/arrays/array_implied_do.expected.f90 @@ -1,5 +1,5 @@ PROGRAM TEST_IMPLIED_DO - INTEGER :: i, j + INTEGER i, j INTEGER, DIMENSION(5) :: arr1, arr2, arr3 INTEGER, DIMENSION(10) :: arr4, arr5 INTEGER, DIMENSION(9) :: arr6 diff --git a/FortranParser/resources-test/fortran/parser/arrays/element_access.expected.f90 b/FortranParser/resources-test/fortran/parser/arrays/element_access.expected.f90 index d0a58bed..bbdabc56 100644 --- a/FortranParser/resources-test/fortran/parser/arrays/element_access.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/arrays/element_access.expected.f90 @@ -1,7 +1,7 @@ PROGRAM ARRAY_DEMONSTRATION - INTEGER :: vec(5) = [10, 20, 30, 40, 50] - INTEGER :: matrix(3, 3) + INTEGER vec(5) = [10, 20, 30, 40, 50] + INTEGER matrix(3, 3) PRINT *, "The second element is:", vec(2) PRINT *, "Multi dimensional:", matrix(1, 2) diff --git a/FortranParser/resources-test/fortran/parser/binary_operator.expected.f90 b/FortranParser/resources-test/fortran/parser/binary_operator.expected.f90 index 900293fa..a15f2efa 100644 --- a/FortranParser/resources-test/fortran/parser/binary_operator.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/binary_operator.expected.f90 @@ -1,6 +1,6 @@ PROGRAM TEST_EXPRS - LOGICAL :: l - INTEGER :: i, a = 1, b = 1 + LOGICAL l + INTEGER i, a = 1, b = 1 l = 0 < a l = 2 <= 3 l = b > 5 diff --git a/FortranParser/resources-test/fortran/parser/concurrent.expected.f90 b/FortranParser/resources-test/fortran/parser/concurrent.expected.f90 index a93d2cdf..605455b0 100644 --- a/FortranParser/resources-test/fortran/parser/concurrent.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/concurrent.expected.f90 @@ -1,6 +1,6 @@ PROGRAM SIMPLE_LOOP - INTEGER :: i, j - REAL :: x + INTEGER i, j + REAL x DO CONCURRENT (i = 1:10:1, j = 1:10, i > 5) x = 0.0 diff --git a/FortranParser/resources-test/fortran/parser/conditionalstmt/chained_if.expected.f90 b/FortranParser/resources-test/fortran/parser/conditionalstmt/chained_if.expected.f90 index 46ac2636..03517d3d 100644 --- a/FortranParser/resources-test/fortran/parser/conditionalstmt/chained_if.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/conditionalstmt/chained_if.expected.f90 @@ -1,5 +1,5 @@ PROGRAM IF - LOGICAL :: cond1, cond2 + LOGICAL cond1, cond2 cond1 = .false. cond2 = .true. diff --git a/FortranParser/resources-test/fortran/parser/conditionalstmt/if_then.expected.f90 b/FortranParser/resources-test/fortran/parser/conditionalstmt/if_then.expected.f90 index 1b18e374..6f21b287 100644 --- a/FortranParser/resources-test/fortran/parser/conditionalstmt/if_then.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/conditionalstmt/if_then.expected.f90 @@ -1,5 +1,5 @@ PROGRAM IF - LOGICAL :: cond + LOGICAL cond cond = .false. IF (cond) THEN diff --git a/FortranParser/resources-test/fortran/parser/conditionalstmt/if_then_else.expected.f90 b/FortranParser/resources-test/fortran/parser/conditionalstmt/if_then_else.expected.f90 index ea6852a8..09712905 100644 --- a/FortranParser/resources-test/fortran/parser/conditionalstmt/if_then_else.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/conditionalstmt/if_then_else.expected.f90 @@ -1,5 +1,5 @@ PROGRAM IF - LOGICAL :: cond + LOGICAL cond cond = .false. IF (cond) THEN diff --git a/FortranParser/resources-test/fortran/parser/conditionalstmt/logical_if.expected.f90 b/FortranParser/resources-test/fortran/parser/conditionalstmt/logical_if.expected.f90 index 73e48239..6ccd50b1 100644 --- a/FortranParser/resources-test/fortran/parser/conditionalstmt/logical_if.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/conditionalstmt/logical_if.expected.f90 @@ -1,6 +1,6 @@ PROGRAM LOGICAL_IF - LOGICAL :: cond - INTEGER :: result + LOGICAL cond + INTEGER result cond = .false. result = 2 IF (cond) result = 3 diff --git a/FortranParser/resources-test/fortran/parser/conditionalstmt/named_chained_if.expected.f90 b/FortranParser/resources-test/fortran/parser/conditionalstmt/named_chained_if.expected.f90 index 81cf74ff..669ad7fd 100644 --- a/FortranParser/resources-test/fortran/parser/conditionalstmt/named_chained_if.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/conditionalstmt/named_chained_if.expected.f90 @@ -1,5 +1,5 @@ PROGRAM IF - LOGICAL :: cond1, cond2 + LOGICAL cond1, cond2 cond1 = .false. cond2 = .true. diff --git a/FortranParser/resources-test/fortran/parser/conditionalstmt/named_select_case.expected.f90 b/FortranParser/resources-test/fortran/parser/conditionalstmt/named_select_case.expected.f90 index 45149ff1..12a15378 100644 --- a/FortranParser/resources-test/fortran/parser/conditionalstmt/named_select_case.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/conditionalstmt/named_select_case.expected.f90 @@ -1,5 +1,5 @@ PROGRAM NAMED_SELECT_CASE - INTEGER :: val, result + INTEGER val, result val = 2 named_select : SELECT CASE (val) diff --git a/FortranParser/resources-test/fortran/parser/conditionalstmt/select_case.expected.f90 b/FortranParser/resources-test/fortran/parser/conditionalstmt/select_case.expected.f90 index 4d5866ce..22e22bfb 100644 --- a/FortranParser/resources-test/fortran/parser/conditionalstmt/select_case.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/conditionalstmt/select_case.expected.f90 @@ -1,5 +1,5 @@ PROGRAM SELECT_CASE - INTEGER :: val, result + INTEGER val, result val = 2 SELECT CASE (val) diff --git a/FortranParser/resources-test/fortran/parser/conditionalstmt/select_case_list.expected.f90 b/FortranParser/resources-test/fortran/parser/conditionalstmt/select_case_list.expected.f90 index 82cdeaa6..49fda5a4 100644 --- a/FortranParser/resources-test/fortran/parser/conditionalstmt/select_case_list.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/conditionalstmt/select_case_list.expected.f90 @@ -1,5 +1,5 @@ PROGRAM SELECT_CASE_LIST - INTEGER :: val, result + INTEGER val, result val = 2 SELECT CASE (val) diff --git a/FortranParser/resources-test/fortran/parser/conditionalstmt/select_case_range.expected.f90 b/FortranParser/resources-test/fortran/parser/conditionalstmt/select_case_range.expected.f90 index 443a952d..97f77e20 100644 --- a/FortranParser/resources-test/fortran/parser/conditionalstmt/select_case_range.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/conditionalstmt/select_case_range.expected.f90 @@ -1,5 +1,5 @@ PROGRAM SELECT_CASE_RANGE - INTEGER :: val, result + INTEGER val, result val = 5 SELECT CASE (val) diff --git a/FortranParser/resources-test/fortran/parser/decl/kind_selector.expected.f90 b/FortranParser/resources-test/fortran/parser/decl/kind_selector.expected.f90 index 1dd568e6..98d44ab7 100644 --- a/FortranParser/resources-test/fortran/parser/decl/kind_selector.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/decl/kind_selector.expected.f90 @@ -1,6 +1,6 @@ PROGRAM KIND_SELECTOR - INTEGER(4) :: i4 = 1 - REAL(8) :: r8 = 2.0 + INTEGER(4) i4 = 1 + REAL(8) r8 = 2.0 PRINT *, i4, r8 END PROGRAM KIND_SELECTOR \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/decl/legacy_kind_selector.expected.f90 b/FortranParser/resources-test/fortran/parser/decl/legacy_kind_selector.expected.f90 index bfed9f06..8ef414dc 100644 --- a/FortranParser/resources-test/fortran/parser/decl/legacy_kind_selector.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/decl/legacy_kind_selector.expected.f90 @@ -1,6 +1,6 @@ PROGRAM LEGACY_KIND_SELECTOR - INTEGER*4 :: i4 = 1 - REAL*8 :: r8 = 2.0 + INTEGER*4 i4 = 1 + REAL*8 r8 = 2.0 PRINT *, i4, r8 END PROGRAM LEGACY_KIND_SELECTOR \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/declaration.expected.f90 b/FortranParser/resources-test/fortran/parser/declaration.expected.f90 index 8215c220..fc2dc3f8 100644 --- a/FortranParser/resources-test/fortran/parser/declaration.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/declaration.expected.f90 @@ -1,6 +1,6 @@ PROGRAM DECLARATION - INTEGER :: a, b = 1 + INTEGER a, b = 1 !integer i; ! i = 1 diff --git a/FortranParser/resources-test/fortran/parser/directive.expected.f90 b/FortranParser/resources-test/fortran/parser/directive.expected.f90 index e2adbb45..5f0b1ef3 100644 --- a/FortranParser/resources-test/fortran/parser/directive.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/directive.expected.f90 @@ -1,6 +1,6 @@ PROGRAM DIR - INTEGER :: result - INTEGER :: a = 5 + INTEGER result + INTEGER a = 5 !DIR$ scop result = (5) diff --git a/FortranParser/resources-test/fortran/parser/do.expected.f90 b/FortranParser/resources-test/fortran/parser/do.expected.f90 index 73949512..cac480ce 100644 --- a/FortranParser/resources-test/fortran/parser/do.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/do.expected.f90 @@ -1,6 +1,6 @@ PROGRAM SIMPLE_LOOP !use omp_lib - INTEGER :: i, dummy, a = 2 + INTEGER i, dummy, a = 2 !$OMP PARALLEL DO DO i = 1, 5, a diff --git a/FortranParser/resources-test/fortran/parser/expr/negate.expected.f90 b/FortranParser/resources-test/fortran/parser/expr/negate.expected.f90 index 79013ecb..3b587155 100644 --- a/FortranParser/resources-test/fortran/parser/expr/negate.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/expr/negate.expected.f90 @@ -1,3 +1,3 @@ PROGRAM NEGATE - INTEGER :: a = -10 + INTEGER a = -10 END PROGRAM NEGATE \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/expr/not.expected.f90 b/FortranParser/resources-test/fortran/parser/expr/not.expected.f90 index 93745dae..fd0410fa 100644 --- a/FortranParser/resources-test/fortran/parser/expr/not.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/expr/not.expected.f90 @@ -1,3 +1,3 @@ PROGRAM NOT - LOGICAL :: a = .not. .true. + LOGICAL a = .not. .true. END PROGRAM NOT \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/expr/parentheses.expected.f90 b/FortranParser/resources-test/fortran/parser/expr/parentheses.expected.f90 index 5ce7b114..bf216cf1 100644 --- a/FortranParser/resources-test/fortran/parser/expr/parentheses.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/expr/parentheses.expected.f90 @@ -1,3 +1,3 @@ PROGRAM PARENTHESES - INTEGER :: a = (10) + INTEGER a = (10) END PROGRAM PARENTHESES \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/expr/subscript_triplet.expected.f90 b/FortranParser/resources-test/fortran/parser/expr/subscript_triplet.expected.f90 index 4e67a337..53a25a83 100644 --- a/FortranParser/resources-test/fortran/parser/expr/subscript_triplet.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/expr/subscript_triplet.expected.f90 @@ -1,5 +1,5 @@ PROGRAM SUBSCRIPT_TRIPLET - INTEGER :: vec(10) = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] + INTEGER vec(10) = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] PRINT *, vec(2:5) PRINT *, vec(:4) diff --git a/FortranParser/resources-test/fortran/parser/expr/unary_plus.expected.f90 b/FortranParser/resources-test/fortran/parser/expr/unary_plus.expected.f90 index d25737b4..3409b97a 100644 --- a/FortranParser/resources-test/fortran/parser/expr/unary_plus.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/expr/unary_plus.expected.f90 @@ -1,3 +1,3 @@ PROGRAM UNARY_PLUS - INTEGER :: a = +10 + INTEGER a = +10 END PROGRAM UNARY_PLUS \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0000.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0000.expected.f90 index cfb99316..751a8def 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0000.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0000.expected.f90 @@ -1,6 +1,6 @@ PROGRAM MAIN - INTEGER*8 :: i8, j /-20/, k /20/ - INTEGER :: kkk /0/ + INTEGER*8 i8, j /-20/, k /20/ + INTEGER kkk /0/ DO i8 = j, k kkk = kkk + i8 END DO diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0001.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0001.expected.f90 index 666a3d51..d5d6fca0 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0001.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0001.expected.f90 @@ -1,6 +1,6 @@ -INTEGER*1 :: a1, a2 -REAL*16 :: b1, b2 -LOGICAL :: ok +INTEGER*1 a1, a2 +REAL*16 b1, b2 +LOGICAL ok ok = .true. diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.expected.f90 index 3b6aa0c8..6c450e4d 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.expected.f90 @@ -1,6 +1,6 @@ -INTEGER*1 :: a1, a2 -REAL*4 :: b1, b2 -LOGICAL :: ok +INTEGER*1 a1, a2 +REAL*4 b1, b2 +LOGICAL ok ok = .true. diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0003.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0003.expected.f90 index b921f889..d7149712 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0003.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0003.expected.f90 @@ -1,6 +1,6 @@ -INTEGER*1 :: a1, a2 -REAL*4 :: b1, b2 -LOGICAL :: ok +INTEGER*1 a1, a2 +REAL*4 b1, b2 +LOGICAL ok ok = .true. diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0004.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0004.expected.f90 index 8b0ff590..8c54a33c 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0004.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0004.expected.f90 @@ -1,6 +1,6 @@ -INTEGER*1 :: a1, a2 -REAL*8 :: b1, b2 -LOGICAL :: ok +INTEGER*1 a1, a2 +REAL*8 b1, b2 +LOGICAL ok ok = .true. diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0007.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0007.expected.f90 index ae02dc2d..bcac3418 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0007.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0007.expected.f90 @@ -1,6 +1,6 @@ -INTEGER*2 :: a1, a2 -REAL*4 :: b1, b2 -LOGICAL :: ok +INTEGER*2 a1, a2 +REAL*4 b1, b2 +LOGICAL ok ok = .true. diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0019.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0019.expected.f90 index aaabaefc..8cfb3263 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0019.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0019.expected.f90 @@ -1,6 +1,6 @@ -INTEGER*8 :: a1, a2 -REAL*8 :: b1, b2 -LOGICAL :: ok +INTEGER*8 a1, a2 +REAL*8 b1, b2 +LOGICAL ok ok = .true. diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0023.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0023.expected.f90 index c6d28935..5e833674 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0023.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0023.expected.f90 @@ -13,8 +13,8 @@ PROGRAM MAIN INTEGER(8), PARAMETER :: i8_mzero = -i8_zero INTEGER(8), PARAMETER :: i8_mone = -i8_one - INTEGER(4) :: i4a, i4b, i4c - INTEGER(8) :: i8a, i8b, i8c + INTEGER(4) i4a, i4b, i4c + INTEGER(8) i8a, i8b, i8c i4a = i4_max i4b = i4_zero diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0024.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0024.expected.f90 index c7019a3c..aac76602 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0024.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0024.expected.f90 @@ -1,4 +1,4 @@ -REAL :: a, ans +REAL a, ans PARAMETER (ans = 2.0) a = 2 * 2147483648_8 - 2147483648_8 - 2147483646_8 diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.expected.f90 index 97d19048..754c3776 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.expected.f90 @@ -1,5 +1,5 @@ COMMON /com/ ok -LOGICAL(1) :: ok +LOGICAL(1) ok ok = .true. CALL test1() @@ -15,8 +15,8 @@ SUBROUTINE test1() COMMON /com/ ok - LOGICAL(1) :: ok - INTEGER*4 :: m, d, ans + LOGICAL(1) ok + INTEGER*4 m, d, ans PARAMETER (m = 19, d = 3, ans = 1) IF (mod(m, d) /= ans) THEN @@ -27,8 +27,8 @@ END SUBROUTINE test1 SUBROUTINE test2() COMMON /com/ ok - LOGICAL(1) :: ok - INTEGER*2 :: m, d, ans + LOGICAL(1) ok + INTEGER*2 m, d, ans PARAMETER (m = 19, d = 3, ans = 1) IF (mod(m, d) /= ans) THEN @@ -39,8 +39,8 @@ END SUBROUTINE test2 SUBROUTINE test3() COMMON /com/ ok - LOGICAL(1) :: ok - INTEGER*1 :: m, d, ans + LOGICAL(1) ok + INTEGER*1 m, d, ans PARAMETER (m = 19, d = 3, ans = 1) IF (mod(m, d) /= ans) THEN diff --git a/FortranParser/resources-test/fortran/parser/logical_expression.expected.f90 b/FortranParser/resources-test/fortran/parser/logical_expression.expected.f90 index 3101aadc..e3d17496 100644 --- a/FortranParser/resources-test/fortran/parser/logical_expression.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/logical_expression.expected.f90 @@ -1,6 +1,6 @@ PROGRAM LOGICAL_EXPRESSION - INTEGER :: a1, b1, a2, b2 - LOGICAL :: ok + INTEGER a1, b1, a2, b2 + LOGICAL ok ok = .true. diff --git a/FortranParser/resources-test/fortran/parser/omp/omp_basic.expected.f90 b/FortranParser/resources-test/fortran/parser/omp/omp_basic.expected.f90 index a0d2ca06..709ec4a2 100644 --- a/FortranParser/resources-test/fortran/parser/omp/omp_basic.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/omp/omp_basic.expected.f90 @@ -1,7 +1,7 @@ PROGRAM OPENMP_DEMO USE omp_lib - INTEGER :: total_sum + INTEGER total_sum !$OMP PARALLEL total_sum = total_sum + 1 diff --git a/FortranParser/resources-test/fortran/parser/omp/omp_clause.expected.f90 b/FortranParser/resources-test/fortran/parser/omp/omp_clause.expected.f90 index 97f53ebb..c7de5009 100644 --- a/FortranParser/resources-test/fortran/parser/omp/omp_clause.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/omp/omp_clause.expected.f90 @@ -1,8 +1,8 @@ PROGRAM OPENMP_DEMO USE omp_lib - INTEGER :: i, thread_id, num_threads, total_sum - INTEGER :: shared_counter = 0 + INTEGER i, thread_id, num_threads, total_sum + INTEGER shared_counter = 0 !$OMP PARALLEL private(i) shared(num_threads) !$OMP DO diff --git a/FortranParser/resources-test/fortran/parser/omp/omp_do.expected.f90 b/FortranParser/resources-test/fortran/parser/omp/omp_do.expected.f90 index 2499bd91..2d1061ca 100644 --- a/FortranParser/resources-test/fortran/parser/omp/omp_do.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/omp/omp_do.expected.f90 @@ -1,8 +1,8 @@ PROGRAM OPENMP_DEMO USE omp_lib - INTEGER :: i, thread_id, num_threads, total_sum - INTEGER :: shared_counter = 0 + INTEGER i, thread_id, num_threads, total_sum + INTEGER shared_counter = 0 !$OMP PARALLEL !$OMP DO diff --git a/FortranParser/resources-test/fortran/parser/omp/omp_reduction.expected.f90 b/FortranParser/resources-test/fortran/parser/omp/omp_reduction.expected.f90 index db7a3799..207cb7d1 100644 --- a/FortranParser/resources-test/fortran/parser/omp/omp_reduction.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/omp/omp_reduction.expected.f90 @@ -1,8 +1,8 @@ PROGRAM OPENMP_DEMO USE omp_lib - INTEGER :: i, thread_id, num_threads, total_sum - INTEGER :: shared_counter = 0 + INTEGER i, thread_id, num_threads, total_sum + INTEGER shared_counter = 0 !$OMP PARALLEL DO reduction(+:total_sum) DO i = 1, 2 diff --git a/FortranParser/resources-test/fortran/parser/parameter.expected.f90 b/FortranParser/resources-test/fortran/parser/parameter.expected.f90 index 3dd695ad..6f82a5eb 100644 --- a/FortranParser/resources-test/fortran/parser/parameter.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/parameter.expected.f90 @@ -1,7 +1,7 @@ PROGRAM OPENMP_DEMO - INTEGER :: i, total_sum - INTEGER :: shared_counter = 0 + INTEGER i, total_sum + INTEGER shared_counter = 0 INTEGER, PARAMETER :: n = 32 DO i = 1, 2 diff --git a/FortranParser/resources-test/fortran/parser/parenexpr.expected.f90 b/FortranParser/resources-test/fortran/parser/parenexpr.expected.f90 index f79eceb9..424fa806 100644 --- a/FortranParser/resources-test/fortran/parser/parenexpr.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/parenexpr.expected.f90 @@ -1,6 +1,6 @@ PROGRAM PARENEXPR - INTEGER :: result - INTEGER :: a = 5 + INTEGER result + INTEGER a = 5 result = (5) END PROGRAM PARENEXPR \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/polybench/3mm.expected.f90 b/FortranParser/resources-test/fortran/parser/polybench/3mm.expected.f90 index b28baed9..3168e8ad 100644 --- a/FortranParser/resources-test/fortran/parser/polybench/3mm.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/polybench/3mm.expected.f90 @@ -17,7 +17,7 @@ PROGRAM THREE_MM DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: e DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: f DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: g -INTEGER :: i +INTEGER i ! Allocation of Arrays ALLOCATE(a(32 + 0, 32 + 0), STAT=i) CALL check_err(i) @@ -57,8 +57,8 @@ SUBROUTINE init_array(ni, nj, nk, nl, nm, a, b, c, d) DOUBLE PRECISION, DIMENSION(nj, nk) :: b DOUBLE PRECISION, DIMENSION(nm, nj) :: c DOUBLE PRECISION, DIMENSION(nl, nm) :: d -INTEGER :: ni, nj, nk, nl, nm -INTEGER :: i, j +INTEGER ni, nj, nk, nl, nm +INTEGER i, j DO i = 1, ni DO j = 1, nk a(j, i) = dble(i - 1) * dble(j - 1) / ni @@ -82,8 +82,8 @@ SUBROUTINE init_array(ni, nj, nk, nl, nm, a, b, c, d) END SUBROUTINE init_array SUBROUTINE print_array(ni, nl, g) DOUBLE PRECISION, DIMENSION(nl, ni) :: g -INTEGER :: ni, nl -INTEGER :: i, j +INTEGER ni, nl +INTEGER i, j DO i = 1, ni DO j = 1, nl WRITE(0, "(f0.2,1x)", advance="no") g(j, i) @@ -102,8 +102,8 @@ SUBROUTINE kernel_3mm(ni, nj, nk, nl, nm, e, a, b, f, c, d, g) DOUBLE PRECISION, DIMENSION(nj, ni) :: e DOUBLE PRECISION, DIMENSION(nl, nj) :: f DOUBLE PRECISION, DIMENSION(nl, ni) :: g -INTEGER :: ni, nj, nk, nl, nm -INTEGER :: i, j, k +INTEGER ni, nj, nk, nl, nm +INTEGER i, j, k !$pragma scop ! E := A*B DO i = 1, ni diff --git a/FortranParser/resources-test/fortran/parser/stmt/common_stmt.expected.f90 b/FortranParser/resources-test/fortran/parser/stmt/common_stmt.expected.f90 index 6c5d115a..9e87cd90 100644 --- a/FortranParser/resources-test/fortran/parser/stmt/common_stmt.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/stmt/common_stmt.expected.f90 @@ -1,7 +1,7 @@ PROGRAM COMMON_STMT - REAL :: x + REAL x COMMON /data_block/ x, my_array(5) - INTEGER :: my_array + INTEGER my_array x = 42.0 END PROGRAM COMMON_STMT \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/subroutine.expected.f90 b/FortranParser/resources-test/fortran/parser/subroutine.expected.f90 index fb5650c7..dec28e0c 100644 --- a/FortranParser/resources-test/fortran/parser/subroutine.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/subroutine.expected.f90 @@ -7,7 +7,7 @@ SUBROUTINE add_numbers(a, b, result, useless) END SUBROUTINE add_numbers PROGRAM MAIN - INTEGER :: x, y, total, useless + INTEGER x, y, total, useless x = 5 y = 12 From 8a87ef2c751d1ed310ff77e6f531739ceeb7f892 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 22 Jul 2026 12:39:30 +0100 Subject: [PATCH 061/260] Add new Fujitsu test case --- .../parser/fujitsu/0001/0001_0032.expected.f | 74 + .../fortran/parser/fujitsu/0001/0001_0032.f | 74 + .../parser/fujitsu/0001/0001_0032.json | 6365 +++++++++++++++++ .../fortran/parser/FortranParserTest.java | 12 + 4 files changed, 6525 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0032.expected.f create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0032.f create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0032.json diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0032.expected.f b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0032.expected.f new file mode 100644 index 00000000..f5ed2784 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0032.expected.f @@ -0,0 +1,74 @@ + INTEGER*4 error,i + COMPLEX*8 s_a,s_b,v_a,v_b,s_dvt + DIMENSION s_a(10),s_b(10),v_a(10),v_b(10),s_dvt(10) + DATA s_a,s_b/10*(1.0,2.0),10*(2.0,1.0)/ + DATA v_a,v_b/10*(1.0,2.0),10*(2.0,1.0)/ + DATA error/0/ +C + DO 10 i=1,5,1 + s_dvt(i)=s_a(i)+s_b(i) + 10 CONTINUE + DO 20 i=1,5,1 + s_a(i+1)=s_dvt(i) + 20 CONTINUE + DO 30 i=1,5,1 + s_dvt(i)=s_b(i)+s_a(i) + 30 CONTINUE + DO 40 i=1,5,1 + s_b(i+1)=s_dvt(i) + 40 CONTINUE +C + v_a(2:6)=v_a(1:5)+v_b(1:5) + v_b(2:6)=v_b(1:5)+v_a(1:5) + CALL sub1(error,v_a,v_b,v_a+v_b) + CALL sub2(error,v_a,v_b,v_a-v_b) +C + DO 50 i=1,10,1 + IF(v_a(i)/=s_a(i))THEN + error=error+1 + ENDIF + IF(v_b(i)/=s_b(i))THEN + error=error+1 + ENDIF + 50 CONTINUE + IF(error==0)THEN + WRITE(6,*)"OK" + ELSE + WRITE(6,*)"NG" + WRITE(6,*)"ERROR=",error + WRITE(6,*)s_a + WRITE(6,*)v_a + WRITE(6,*)s_b + WRITE(6,*)v_b + ENDIF +C + STOP + END +C + SUBROUTINE sub1(error,A,B,C) + INTEGER*4 error + COMPLEX*8 A,B,C + DIMENSION A(10),B(10),C(10) +C + DO 60 i=1,10,1 + IF(C(i)/=A(i)+B(i))THEN + error=error+1 + ENDIF + 60 CONTINUE +C + RETURN + END +C + SUBROUTINE sub2(error,A,B,C) + INTEGER*4 error + COMPLEX*8 A,B,C + DIMENSION A(10),B(10),C(10) +C + DO 70 i=1,10,1 + IF(C(i)/=A(i)-B(i))THEN + error=error+1 + ENDIF + 70 CONTINUE +C + RETURN + END diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0032.f b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0032.f new file mode 100644 index 00000000..138aff8e --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0032.f @@ -0,0 +1,74 @@ + INTEGER*4 ERROR,I + COMPLEX*8 S_A,S_B,V_A,V_B,S_DVT + DIMENSION S_A(10),S_B(10),V_A(10),V_B(10),S_DVT(10) + DATA S_A,S_B/10*(1.0,2.0),10*(2.0,1.0)/ + DATA V_A,V_B/10*(1.0,2.0),10*(2.0,1.0)/ + DATA ERROR/0/ +C + DO 10 I=1,5,1 + S_DVT(I)=S_A(I)+S_B(I) + 10 CONTINUE + DO 20 I=1,5,1 + S_A(I+1)=S_DVT(I) + 20 CONTINUE + DO 30 I=1,5,1 + S_DVT(I)=S_B(I)+S_A(I) + 30 CONTINUE + DO 40 I=1,5,1 + S_B(I+1)=S_DVT(I) + 40 CONTINUE +C + V_A(2:6)=V_A(1:5)+V_B(1:5) + V_B(2:6)=V_B(1:5)+V_A(1:5) + CALL SUB1(ERROR,V_A,V_B,V_A+V_B) + CALL SUB2(ERROR,V_A,V_B,V_A-V_B) +C + DO 50 I=1,10,1 + IF(V_A(I) .NE. S_A(I)) THEN + ERROR=ERROR+1 + ENDIF + IF(V_B(I) .NE. S_B(I)) THEN + ERROR=ERROR+1 + ENDIF + 50 CONTINUE + IF(ERROR .EQ. 0) THEN + WRITE(6,*) 'OK' + ELSE + WRITE(6,*) 'NG' + WRITE(6,*) 'ERROR=',ERROR + WRITE(6,*) S_A + WRITE(6,*) V_A + WRITE(6,*) S_B + WRITE(6,*) V_B + ENDIF +C + STOP + END +C + SUBROUTINE SUB1(ERROR,A,B,C) + INTEGER*4 ERROR + COMPLEX*8 A,B,C + DIMENSION A(10),B(10),C(10) +C + DO 60 I=1,10,1 + IF(C(I) .NE. A(I)+B(I)) THEN + ERROR=ERROR+1 + ENDIF + 60 CONTINUE +C + RETURN + END SUBROUTINE SUB1 +C + SUBROUTINE SUB2(ERROR,A,B,C) + INTEGER*4 ERROR + COMPLEX*8 A,B,C + DIMENSION A(10),B(10),C(10) +C + DO 70 I=1,10,1 + IF(C(I) .NE. A(I)-B(I)) THEN + ERROR=ERROR+1 + ENDIF + 70 CONTINUE +C + RETURN + END SUBROUTINE SUB2 diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0032.json b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0032.json new file mode 100644 index 00000000..ea7fa4ca --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0032.json @@ -0,0 +1,6365 @@ +{ + "fileExtension": "f", + "nodes": [ + { + "id": "0x561b7de96f00-Program", + "ProgramUnit": [ + "0x561b7ded2e90-ProgramUnit", + "0x561b7ded3410-ProgramUnit", + "0x561b7ded22f0-ProgramUnit" + ] + }, + { + "id": "0x561b7ded2e90-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x561b7ded3fe0-MainProgram" + }, + { + "id": "0x561b7ded3fe0-MainProgram", + "SpecificationPart": "0x561b7ded4080-SpecificationPart", + "ExecutionPart": "0x561b7ded4068-ExecutionPart", + "Statement": "0x561b7ded3fe0-Statement" + }, + { + "id": "0x561b7ded4080-SpecificationPart", + "ImplicitPart": "0x561b7ded4098-ImplicitPart", + "DeclarationConstruct": [ + "0x561b7dea3da0-DeclarationConstruct", + "0x561b7dea4110-DeclarationConstruct", + "0x561b7dec4050-DeclarationConstruct", + "0x561b7dec5140-DeclarationConstruct", + "0x561b7dec54e0-DeclarationConstruct", + "0x561b7dec5480-DeclarationConstruct" + ] + }, + { + "id": "0x561b7ded4098-ImplicitPart" + }, + { + "id": "0x561b7dea3da0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x561b7dea3da0-SpecificationConstruct" + }, + { + "id": "0x561b7dea3da0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dea3da0-Statement" + }, + { + "id": "0x561b7dea3da0-Statement", + "statement": "0x561b7ded3e50-TypeDeclarationStmt", + "source": "integer*4error,i" + }, + { + "id": "0x561b7ded3e50-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x561b7ded3e80-DeclarationTypeSpec", + "EntityDecl": [ + "0x561b7de4c1e0-EntityDecl", + "0x561b7dec3680-EntityDecl" + ] + }, + { + "id": "0x561b7ded3e80-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x561b7ded3e80-IntrinsicTypeSpec" + }, + { + "id": "0x561b7ded3e80-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x561b7ded3e80-IntegerTypeSpec" + }, + { + "id": "0x561b7ded3e80-IntegerTypeSpec", + "KindSelector": "0x561b7ded3e80-KindSelector" + }, + { + "id": "0x561b7ded3e80-KindSelector", + "variantKey": "StarSize", + "StarSize": "0x561b7ded3e80-StarSize" + }, + { + "id": "0x561b7ded3e80-StarSize", + "uint64_t": "4" + }, + { + "id": "0x561b7de4c1e0-EntityDecl", + "Name": "0x561b7de4c298-Name" + }, + { + "id": "0x561b7de4c298-Name", + "source": "error" + }, + { + "id": "0x561b7dec3680-EntityDecl", + "Name": "0x561b7dec3738-Name" + }, + { + "id": "0x561b7dec3738-Name", + "source": "i" + }, + { + "id": "0x561b7dea4110-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x561b7dea4110-SpecificationConstruct" + }, + { + "id": "0x561b7dea4110-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dea4110-Statement" + }, + { + "id": "0x561b7dea4110-Statement", + "statement": "0x561b7dec43b0-TypeDeclarationStmt", + "source": "complex*8s_a,s_b,v_a,v_b,s_dvt" + }, + { + "id": "0x561b7dec43b0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x561b7dec43e0-DeclarationTypeSpec", + "EntityDecl": [ + "0x561b7dec2f40-EntityDecl", + "0x561b7dec3810-EntityDecl", + "0x561b7decd3b0-EntityDecl", + "0x561b7decd4a0-EntityDecl", + "0x561b7decd590-EntityDecl" + ] + }, + { + "id": "0x561b7dec43e0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x561b7dec43e0-IntrinsicTypeSpec" + }, + { + "id": "0x561b7dec43e0-IntrinsicTypeSpec", + "variantKey": "Complex", + "Complex": "0x561b7dec43e0-Complex" + }, + { + "id": "0x561b7dec43e0-Complex", + "KindSelector": "0x561b7dec43e0-KindSelector" + }, + { + "id": "0x561b7dec43e0-KindSelector", + "variantKey": "StarSize", + "StarSize": "0x561b7dec43e0-StarSize" + }, + { + "id": "0x561b7dec43e0-StarSize", + "uint64_t": "8" + }, + { + "id": "0x561b7dec2f40-EntityDecl", + "Name": "0x561b7dec2ff8-Name" + }, + { + "id": "0x561b7dec2ff8-Name", + "source": "s_a" + }, + { + "id": "0x561b7dec3810-EntityDecl", + "Name": "0x561b7dec38c8-Name" + }, + { + "id": "0x561b7dec38c8-Name", + "source": "s_b" + }, + { + "id": "0x561b7decd3b0-EntityDecl", + "Name": "0x561b7decd468-Name" + }, + { + "id": "0x561b7decd468-Name", + "source": "v_a" + }, + { + "id": "0x561b7decd4a0-EntityDecl", + "Name": "0x561b7decd558-Name" + }, + { + "id": "0x561b7decd558-Name", + "source": "v_b" + }, + { + "id": "0x561b7decd590-EntityDecl", + "Name": "0x561b7decd648-Name" + }, + { + "id": "0x561b7decd648-Name", + "source": "s_dvt" + }, + { + "id": "0x561b7dec4050-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x561b7dec4050-SpecificationConstruct" + }, + { + "id": "0x561b7dec4050-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dec4050-Statement" + }, + { + "id": "0x561b7dec4050-Statement", + "statement": "0x561b7dec4060-OtherSpecificationStmt", + "source": "dimensions_a(10),s_b(10),v_a(10),v_b(10),s_dvt(10)" + }, + { + "id": "0x561b7dec4060-OtherSpecificationStmt", + "variantKey": "DimensionStmt", + "DimensionStmt": "0x561b7ded61c0-DimensionStmt" + }, + { + "id": "0x561b7ded61c0-DimensionStmt", + "Declaration": [ + "0x561b7dec3de0-Declaration", + "0x561b7dec3200-Declaration", + "0x561b7dec45a0-Declaration", + "0x561b7dec4900-Declaration", + "0x561b7dec3d80-Declaration" + ] + }, + { + "id": "0x561b7dec3de0-Declaration", + "Name": "0x561b7dec3e10-Name", + "ArraySpec": "0x561b7dec3de0-ArraySpec" + }, + { + "id": "0x561b7dec3e10-Name", + "source": "s_a" + }, + { + "id": "0x561b7dec3de0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x561b7ded60b0-ExplicitShapeSpec" + ] + }, + { + "id": "0x561b7ded60b0-ExplicitShapeSpec", + "upper_bound": "0x561b7ded60b0-SpecificationExpr" + }, + { + "id": "0x561b7ded60b0-SpecificationExpr", + "Expr": "0x561b7de36790-Expr" + }, + { + "id": "0x561b7de36790-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7de367b0-LiteralConstant" + }, + { + "id": "0x561b7de367b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7de367b0-IntLiteralConstant" + }, + { + "id": "0x561b7de367b0-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x561b7dec3200-Declaration", + "Name": "0x561b7dec3230-Name", + "ArraySpec": "0x561b7dec3200-ArraySpec" + }, + { + "id": "0x561b7dec3230-Name", + "source": "s_b" + }, + { + "id": "0x561b7dec3200-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x561b7ded60e0-ExplicitShapeSpec" + ] + }, + { + "id": "0x561b7ded60e0-ExplicitShapeSpec", + "upper_bound": "0x561b7ded60e0-SpecificationExpr" + }, + { + "id": "0x561b7ded60e0-SpecificationExpr", + "Expr": "0x561b7dec3110-Expr" + }, + { + "id": "0x561b7dec3110-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dec3130-LiteralConstant" + }, + { + "id": "0x561b7dec3130-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dec3130-IntLiteralConstant" + }, + { + "id": "0x561b7dec3130-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x561b7dec45a0-Declaration", + "Name": "0x561b7dec45d0-Name", + "ArraySpec": "0x561b7dec45a0-ArraySpec" + }, + { + "id": "0x561b7dec45d0-Name", + "source": "v_a" + }, + { + "id": "0x561b7dec45a0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x561b7ded6110-ExplicitShapeSpec" + ] + }, + { + "id": "0x561b7ded6110-ExplicitShapeSpec", + "upper_bound": "0x561b7ded6110-SpecificationExpr" + }, + { + "id": "0x561b7ded6110-SpecificationExpr", + "Expr": "0x561b7dec44b0-Expr" + }, + { + "id": "0x561b7dec44b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dec44d0-LiteralConstant" + }, + { + "id": "0x561b7dec44d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dec44d0-IntLiteralConstant" + }, + { + "id": "0x561b7dec44d0-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x561b7dec4900-Declaration", + "Name": "0x561b7dec4930-Name", + "ArraySpec": "0x561b7dec4900-ArraySpec" + }, + { + "id": "0x561b7dec4930-Name", + "source": "v_b" + }, + { + "id": "0x561b7dec4900-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x561b7ded6160-ExplicitShapeSpec" + ] + }, + { + "id": "0x561b7ded6160-ExplicitShapeSpec", + "upper_bound": "0x561b7ded6160-SpecificationExpr" + }, + { + "id": "0x561b7ded6160-SpecificationExpr", + "Expr": "0x561b7dec4810-Expr" + }, + { + "id": "0x561b7dec4810-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dec4830-LiteralConstant" + }, + { + "id": "0x561b7dec4830-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dec4830-IntLiteralConstant" + }, + { + "id": "0x561b7dec4830-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x561b7dec3d80-Declaration", + "Name": "0x561b7dec3db0-Name", + "ArraySpec": "0x561b7dec3d80-ArraySpec" + }, + { + "id": "0x561b7dec3db0-Name", + "source": "s_dvt" + }, + { + "id": "0x561b7dec3d80-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x561b7ded6270-ExplicitShapeSpec" + ] + }, + { + "id": "0x561b7ded6270-ExplicitShapeSpec", + "upper_bound": "0x561b7ded6270-SpecificationExpr" + }, + { + "id": "0x561b7ded6270-SpecificationExpr", + "Expr": "0x561b7dec3c90-Expr" + }, + { + "id": "0x561b7dec3c90-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dec3cb0-LiteralConstant" + }, + { + "id": "0x561b7dec3cb0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dec3cb0-IntLiteralConstant" + }, + { + "id": "0x561b7dec3cb0-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x561b7dec5140-DeclarationConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dec5140-Statement" + }, + { + "id": "0x561b7dec5140-Statement", + "statement": "0x561b7ded6130-DataStmt", + "source": "datas_a,s_b/10*(1.0,2.0),10*(2.0,1.0)/" + }, + { + "id": "0x561b7ded6130-DataStmt", + "DataStmtSet": [ + "0x561b7decd1e0-DataStmtSet" + ] + }, + { + "id": "0x561b7decd1e0-DataStmtSet", + "DataStmtObject": [ + "0x561b7dec3a30-DataStmtObject", + "0x561b7dec3450-DataStmtObject" + ], + "DataStmtValue": [ + "0x561b7dec4d20-DataStmtValue", + "0x561b7dec4be0-DataStmtValue" + ] + }, + { + "id": "0x561b7dec3a30-DataStmtObject", + "variantKey": "Variable", + "Variable": "0x561b7ded6290-Variable" + }, + { + "id": "0x561b7ded6290-Variable", + "variantKey": "Designator", + "Designator": "0x561b7dea4160-Designator" + }, + { + "id": "0x561b7dea4160-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dea4170-DataRef" + }, + { + "id": "0x561b7dea4170-DataRef", + "variantKey": "Name", + "Name": "0x561b7dea4170-Name" + }, + { + "id": "0x561b7dea4170-Name", + "source": "s_a" + }, + { + "id": "0x561b7dec3450-DataStmtObject", + "variantKey": "Variable", + "Variable": "0x561b7ded62e0-Variable" + }, + { + "id": "0x561b7ded62e0-Variable", + "variantKey": "Designator", + "Designator": "0x561b7dec45f0-Designator" + }, + { + "id": "0x561b7dec45f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dec4600-DataRef" + }, + { + "id": "0x561b7dec4600-DataRef", + "variantKey": "Name", + "Name": "0x561b7dec4600-Name" + }, + { + "id": "0x561b7dec4600-Name", + "source": "s_b" + }, + { + "id": "0x561b7dec4d20-DataStmtValue", + "DataStmtRepeat": "0x561b7dec4df8-DataStmtRepeat", + "DataStmtConstant": "0x561b7dec4d28-DataStmtConstant" + }, + { + "id": "0x561b7dec4df8-DataStmtRepeat", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dec4df8-IntLiteralConstant" + }, + { + "id": "0x561b7dec4df8-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x561b7dec4d28-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dec4d48-LiteralConstant" + }, + { + "id": "0x561b7dec4d48-LiteralConstant", + "variantKey": "ComplexLiteralConstant", + "ComplexLiteralConstant": "0x561b7dec4d48-ComplexLiteralConstant" + }, + { + "id": "0x561b7dec4d48-ComplexLiteralConstant", + "real": "0x561b7dec4d98-ComplexPart", + "imaginary": "0x561b7dec4d48-ComplexPart" + }, + { + "id": "0x561b7dec4d98-ComplexPart", + "variantKey": "SignedRealLiteralConstant", + "SignedRealLiteralConstant": "0x561b7dec4d98-SignedRealLiteralConstant" + }, + { + "id": "0x561b7dec4d98-SignedRealLiteralConstant", + "RealLiteralConstant": "0x561b7dec4d98-RealLiteralConstant" + }, + { + "id": "0x561b7dec4d98-RealLiteralConstant", + "real": "0x561b7dec4d98-Real" + }, + { + "id": "0x561b7dec4d98-Real", + "source": "1.0" + }, + { + "id": "0x561b7dec4d48-ComplexPart", + "variantKey": "SignedRealLiteralConstant", + "SignedRealLiteralConstant": "0x561b7dec4d48-SignedRealLiteralConstant" + }, + { + "id": "0x561b7dec4d48-SignedRealLiteralConstant", + "RealLiteralConstant": "0x561b7dec4d48-RealLiteralConstant" + }, + { + "id": "0x561b7dec4d48-RealLiteralConstant", + "real": "0x561b7dec4d48-Real" + }, + { + "id": "0x561b7dec4d48-Real", + "source": "2.0" + }, + { + "id": "0x561b7dec4be0-DataStmtValue", + "DataStmtRepeat": "0x561b7dec4cb8-DataStmtRepeat", + "DataStmtConstant": "0x561b7dec4be8-DataStmtConstant" + }, + { + "id": "0x561b7dec4cb8-DataStmtRepeat", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dec4cb8-IntLiteralConstant" + }, + { + "id": "0x561b7dec4cb8-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x561b7dec4be8-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dec4c08-LiteralConstant" + }, + { + "id": "0x561b7dec4c08-LiteralConstant", + "variantKey": "ComplexLiteralConstant", + "ComplexLiteralConstant": "0x561b7dec4c08-ComplexLiteralConstant" + }, + { + "id": "0x561b7dec4c08-ComplexLiteralConstant", + "real": "0x561b7dec4c58-ComplexPart", + "imaginary": "0x561b7dec4c08-ComplexPart" + }, + { + "id": "0x561b7dec4c58-ComplexPart", + "variantKey": "SignedRealLiteralConstant", + "SignedRealLiteralConstant": "0x561b7dec4c58-SignedRealLiteralConstant" + }, + { + "id": "0x561b7dec4c58-SignedRealLiteralConstant", + "RealLiteralConstant": "0x561b7dec4c58-RealLiteralConstant" + }, + { + "id": "0x561b7dec4c58-RealLiteralConstant", + "real": "0x561b7dec4c58-Real" + }, + { + "id": "0x561b7dec4c58-Real", + "source": "2.0" + }, + { + "id": "0x561b7dec4c08-ComplexPart", + "variantKey": "SignedRealLiteralConstant", + "SignedRealLiteralConstant": "0x561b7dec4c08-SignedRealLiteralConstant" + }, + { + "id": "0x561b7dec4c08-SignedRealLiteralConstant", + "RealLiteralConstant": "0x561b7dec4c08-RealLiteralConstant" + }, + { + "id": "0x561b7dec4c08-RealLiteralConstant", + "real": "0x561b7dec4c08-Real" + }, + { + "id": "0x561b7dec4c08-Real", + "source": "1.0" + }, + { + "id": "0x561b7dec54e0-DeclarationConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dec54e0-Statement" + }, + { + "id": "0x561b7dec54e0-Statement", + "statement": "0x561b7ded6050-DataStmt", + "source": "datav_a,v_b/10*(1.0,2.0),10*(2.0,1.0)/" + }, + { + "id": "0x561b7ded6050-DataStmt", + "DataStmtSet": [ + "0x561b7decdc00-DataStmtSet" + ] + }, + { + "id": "0x561b7decdc00-DataStmtSet", + "DataStmtObject": [ + "0x561b7de4c0c0-DataStmtObject", + "0x561b7dec3ac0-DataStmtObject" + ], + "DataStmtValue": [ + "0x561b7dec52e0-DataStmtValue", + "0x561b7dec51a0-DataStmtValue" + ] + }, + { + "id": "0x561b7de4c0c0-DataStmtObject", + "variantKey": "Variable", + "Variable": "0x561b7ded3590-Variable" + }, + { + "id": "0x561b7ded3590-Variable", + "variantKey": "Designator", + "Designator": "0x561b7dec4a50-Designator" + }, + { + "id": "0x561b7dec4a50-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dec4a60-DataRef" + }, + { + "id": "0x561b7dec4a60-DataRef", + "variantKey": "Name", + "Name": "0x561b7dec4a60-Name" + }, + { + "id": "0x561b7dec4a60-Name", + "source": "v_a" + }, + { + "id": "0x561b7dec3ac0-DataStmtObject", + "variantKey": "Variable", + "Variable": "0x561b7ded2be0-Variable" + }, + { + "id": "0x561b7ded2be0-Variable", + "variantKey": "Designator", + "Designator": "0x561b7dec4b70-Designator" + }, + { + "id": "0x561b7dec4b70-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dec4b80-DataRef" + }, + { + "id": "0x561b7dec4b80-DataRef", + "variantKey": "Name", + "Name": "0x561b7dec4b80-Name" + }, + { + "id": "0x561b7dec4b80-Name", + "source": "v_b" + }, + { + "id": "0x561b7dec52e0-DataStmtValue", + "DataStmtRepeat": "0x561b7dec53b8-DataStmtRepeat", + "DataStmtConstant": "0x561b7dec52e8-DataStmtConstant" + }, + { + "id": "0x561b7dec53b8-DataStmtRepeat", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dec53b8-IntLiteralConstant" + }, + { + "id": "0x561b7dec53b8-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x561b7dec52e8-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dec5308-LiteralConstant" + }, + { + "id": "0x561b7dec5308-LiteralConstant", + "variantKey": "ComplexLiteralConstant", + "ComplexLiteralConstant": "0x561b7dec5308-ComplexLiteralConstant" + }, + { + "id": "0x561b7dec5308-ComplexLiteralConstant", + "real": "0x561b7dec5358-ComplexPart", + "imaginary": "0x561b7dec5308-ComplexPart" + }, + { + "id": "0x561b7dec5358-ComplexPart", + "variantKey": "SignedRealLiteralConstant", + "SignedRealLiteralConstant": "0x561b7dec5358-SignedRealLiteralConstant" + }, + { + "id": "0x561b7dec5358-SignedRealLiteralConstant", + "RealLiteralConstant": "0x561b7dec5358-RealLiteralConstant" + }, + { + "id": "0x561b7dec5358-RealLiteralConstant", + "real": "0x561b7dec5358-Real" + }, + { + "id": "0x561b7dec5358-Real", + "source": "1.0" + }, + { + "id": "0x561b7dec5308-ComplexPart", + "variantKey": "SignedRealLiteralConstant", + "SignedRealLiteralConstant": "0x561b7dec5308-SignedRealLiteralConstant" + }, + { + "id": "0x561b7dec5308-SignedRealLiteralConstant", + "RealLiteralConstant": "0x561b7dec5308-RealLiteralConstant" + }, + { + "id": "0x561b7dec5308-RealLiteralConstant", + "real": "0x561b7dec5308-Real" + }, + { + "id": "0x561b7dec5308-Real", + "source": "2.0" + }, + { + "id": "0x561b7dec51a0-DataStmtValue", + "DataStmtRepeat": "0x561b7dec5278-DataStmtRepeat", + "DataStmtConstant": "0x561b7dec51a8-DataStmtConstant" + }, + { + "id": "0x561b7dec5278-DataStmtRepeat", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dec5278-IntLiteralConstant" + }, + { + "id": "0x561b7dec5278-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x561b7dec51a8-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dec51c8-LiteralConstant" + }, + { + "id": "0x561b7dec51c8-LiteralConstant", + "variantKey": "ComplexLiteralConstant", + "ComplexLiteralConstant": "0x561b7dec51c8-ComplexLiteralConstant" + }, + { + "id": "0x561b7dec51c8-ComplexLiteralConstant", + "real": "0x561b7dec5218-ComplexPart", + "imaginary": "0x561b7dec51c8-ComplexPart" + }, + { + "id": "0x561b7dec5218-ComplexPart", + "variantKey": "SignedRealLiteralConstant", + "SignedRealLiteralConstant": "0x561b7dec5218-SignedRealLiteralConstant" + }, + { + "id": "0x561b7dec5218-SignedRealLiteralConstant", + "RealLiteralConstant": "0x561b7dec5218-RealLiteralConstant" + }, + { + "id": "0x561b7dec5218-RealLiteralConstant", + "real": "0x561b7dec5218-Real" + }, + { + "id": "0x561b7dec5218-Real", + "source": "2.0" + }, + { + "id": "0x561b7dec51c8-ComplexPart", + "variantKey": "SignedRealLiteralConstant", + "SignedRealLiteralConstant": "0x561b7dec51c8-SignedRealLiteralConstant" + }, + { + "id": "0x561b7dec51c8-SignedRealLiteralConstant", + "RealLiteralConstant": "0x561b7dec51c8-RealLiteralConstant" + }, + { + "id": "0x561b7dec51c8-RealLiteralConstant", + "real": "0x561b7dec51c8-Real" + }, + { + "id": "0x561b7dec51c8-Real", + "source": "1.0" + }, + { + "id": "0x561b7dec5480-DeclarationConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dec5480-Statement" + }, + { + "id": "0x561b7dec5480-Statement", + "statement": "0x561b7ded6000-DataStmt", + "source": "dataerror/0/" + }, + { + "id": "0x561b7ded6000-DataStmt", + "DataStmtSet": [ + "0x561b7dedae40-DataStmtSet" + ] + }, + { + "id": "0x561b7dedae40-DataStmtSet", + "DataStmtObject": [ + "0x561b7dec35f0-DataStmtObject" + ], + "DataStmtValue": [ + "0x561b7dec5540-DataStmtValue" + ] + }, + { + "id": "0x561b7dec35f0-DataStmtObject", + "variantKey": "Variable", + "Variable": "0x561b7ded2dd0-Variable" + }, + { + "id": "0x561b7ded2dd0-Variable", + "variantKey": "Designator", + "Designator": "0x561b7de954d0-Designator" + }, + { + "id": "0x561b7de954d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7de954e0-DataRef" + }, + { + "id": "0x561b7de954e0-DataRef", + "variantKey": "Name", + "Name": "0x561b7de954e0-Name" + }, + { + "id": "0x561b7de954e0-Name", + "source": "error" + }, + { + "id": "0x561b7dec5540-DataStmtValue", + "DataStmtConstant": "0x561b7dec5548-DataStmtConstant" + }, + { + "id": "0x561b7dec5548-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dec5568-LiteralConstant" + }, + { + "id": "0x561b7dec5568-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dec5568-IntLiteralConstant" + }, + { + "id": "0x561b7dec5568-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x561b7ded4068-ExecutionPart", + "ExecutionPartConstruct": [ + "0x561b7dec5420-ExecutionPartConstruct", + "0x561b7dec72b0-ExecutionPartConstruct", + "0x561b7dec7d30-ExecutionPartConstruct", + "0x561b7dec8e00-ExecutionPartConstruct", + "0x561b7deca550-ExecutionPartConstruct", + "0x561b7decaee0-ExecutionPartConstruct", + "0x561b7decbe40-ExecutionPartConstruct", + "0x561b7deccac0-ExecutionPartConstruct", + "0x561b7decc4a0-ExecutionPartConstruct", + "0x561b7dee0170-ExecutionPartConstruct", + "0x561b7dedf250-ExecutionPartConstruct" + ] + }, + { + "id": "0x561b7ded4068-ExecutionPartConstruct" + }, + { + "id": "0x561b7dec5420-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dec5420-ExecutableConstruct" + }, + { + "id": "0x561b7dec5420-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x561b7dedbd40-DoConstruct" + }, + { + "id": "0x561b7dedbd40-DoConstruct", + "Statement": "0x561b7dedbd98-Statement", + "ExecutionPartConstruct": [ + "0x561b7dec7380-ExecutionPartConstruct", + "0x561b7dec5d60-ExecutionPartConstruct" + ], + "Statement": "0x561b7dedbd40-Statement" + }, + { + "id": "0x561b7dedbd98-Statement", + "statement": "0x561b7dedbda8-NonLabelDoStmt", + "source": "do10i=1,5,1" + }, + { + "id": "0x561b7dedbda8-NonLabelDoStmt", + "LoopControl": "0x561b7dedbda8-LoopControl" + }, + { + "id": "0x561b7dedbda8-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x561b7dedbda8-LoopBounds" + }, + { + "id": "0x561b7dedbda8-LoopBounds", + "var": "0x561b7dedbda8-Name", + "lower": "0x561b7dec60e0-Expr", + "upper": "0x561b7dec61c0-Expr", + "step": "0x561b7dec5670-Expr" + }, + { + "id": "0x561b7dedbda8-Name", + "source": "i" + }, + { + "id": "0x561b7dec60e0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dec6100-LiteralConstant" + }, + { + "id": "0x561b7dec6100-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dec6100-IntLiteralConstant" + }, + { + "id": "0x561b7dec6100-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x561b7dec61c0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dec61e0-LiteralConstant" + }, + { + "id": "0x561b7dec61e0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dec61e0-IntLiteralConstant" + }, + { + "id": "0x561b7dec61e0-IntLiteralConstant", + "CharBlock": "5" + }, + { + "id": "0x561b7dec5670-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dec5690-LiteralConstant" + }, + { + "id": "0x561b7dec5690-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dec5690-IntLiteralConstant" + }, + { + "id": "0x561b7dec5690-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x561b7dedbd80-ExecutionPartConstruct" + }, + { + "id": "0x561b7dec7380-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dec7380-ExecutableConstruct" + }, + { + "id": "0x561b7dec7380-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dec7380-Statement" + }, + { + "id": "0x561b7dec7380-Statement", + "statement": "0x561b7dec7390-ActionStmt", + "source": "s_dvt(i)=s_a(i)+s_b(i)" + }, + { + "id": "0x561b7dec7390-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x561b7dec7190-AssignmentStmt" + }, + { + "id": "0x561b7dec7190-AssignmentStmt", + "Variable": "0x561b7dec7270-Variable", + "Expr": "0x561b7dec71a0-Expr" + }, + { + "id": "0x561b7dec7270-Variable", + "variantKey": "Designator", + "Designator": "0x561b7deed3f0-Designator" + }, + { + "id": "0x561b7deed3f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7deed400-DataRef" + }, + { + "id": "0x561b7deed400-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x561b7dee6d30-ArrayElement" + }, + { + "id": "0x561b7dee6d30-ArrayElement", + "base": "0x561b7dee6d30-DataRef", + "subscripts": [ + "0x561b7deea790-SectionSubscript" + ] + }, + { + "id": "0x561b7dee6d30-DataRef", + "variantKey": "Name", + "Name": "0x561b7dee6d30-Name" + }, + { + "id": "0x561b7dee6d30-Name", + "source": "s_dvt" + }, + { + "id": "0x561b7deea790-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x561b7df087b0-Expr" + }, + { + "id": "0x561b7df087b0-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dec4ab0-Designator" + }, + { + "id": "0x561b7dec4ab0-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dec4ac0-DataRef" + }, + { + "id": "0x561b7dec4ac0-DataRef", + "variantKey": "Name", + "Name": "0x561b7dec4ac0-Name" + }, + { + "id": "0x561b7dec4ac0-Name", + "source": "i" + }, + { + "id": "0x561b7dec71a0-Expr", + "variantKey": "Add", + "Add": "0x561b7dec71c0-Add" + }, + { + "id": "0x561b7dec71c0-Add", + "left": "0x561b7dec7040-Expr", + "right": "0x561b7dec6f60-Expr", + "op": "ADD" + }, + { + "id": "0x561b7dec7040-Expr", + "variantKey": "Designator", + "Designator": "0x561b7df0bc00-Designator" + }, + { + "id": "0x561b7df0bc00-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7df0bc10-DataRef" + }, + { + "id": "0x561b7df0bc10-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x561b7dec2e00-ArrayElement" + }, + { + "id": "0x561b7dec2e00-ArrayElement", + "base": "0x561b7dec2e00-DataRef", + "subscripts": [ + "0x561b7ded6700-SectionSubscript" + ] + }, + { + "id": "0x561b7dec2e00-DataRef", + "variantKey": "Name", + "Name": "0x561b7dec2e00-Name" + }, + { + "id": "0x561b7dec2e00-Name", + "source": "s_a" + }, + { + "id": "0x561b7ded6700-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x561b7dec5750-Expr" + }, + { + "id": "0x561b7dec5750-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dec4e50-Designator" + }, + { + "id": "0x561b7dec4e50-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dec4e60-DataRef" + }, + { + "id": "0x561b7dec4e60-DataRef", + "variantKey": "Name", + "Name": "0x561b7dec4e60-Name" + }, + { + "id": "0x561b7dec4e60-Name", + "source": "i" + }, + { + "id": "0x561b7dec6f60-Expr", + "variantKey": "Designator", + "Designator": "0x561b7df0b260-Designator" + }, + { + "id": "0x561b7df0b260-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7df0b270-DataRef" + }, + { + "id": "0x561b7df0b270-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x561b7df089b0-ArrayElement" + }, + { + "id": "0x561b7df089b0-ArrayElement", + "base": "0x561b7df089b0-DataRef", + "subscripts": [ + "0x561b7decf650-SectionSubscript" + ] + }, + { + "id": "0x561b7df089b0-DataRef", + "variantKey": "Name", + "Name": "0x561b7df089b0-Name" + }, + { + "id": "0x561b7df089b0-Name", + "source": "s_b" + }, + { + "id": "0x561b7decf650-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x561b7dec5930-Expr" + }, + { + "id": "0x561b7dec5930-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dec6a10-Designator" + }, + { + "id": "0x561b7dec6a10-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dec6a20-DataRef" + }, + { + "id": "0x561b7dec6a20-DataRef", + "variantKey": "Name", + "Name": "0x561b7dec6a20-Name" + }, + { + "id": "0x561b7dec6a20-Name", + "source": "i" + }, + { + "id": "0x561b7dec5d60-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dec5d60-ExecutableConstruct" + }, + { + "id": "0x561b7dec5d60-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dec5d60-Statement" + }, + { + "id": "0x561b7dec5d60-Statement", + "statement": "0x561b7dec5d70-ActionStmt", + "label": "10", + "source": "10continue" + }, + { + "id": "0x561b7dec5d70-ActionStmt", + "variantKey": "ContinueStmt", + "ContinueStmt": "0x561b7dec5d70-ContinueStmt" + }, + { + "id": "0x561b7dec5d70-ContinueStmt" + }, + { + "id": "0x561b7dedbd40-Statement", + "statement": "0x561b7dedbd50-EndDoStmt", + "source": "" + }, + { + "id": "0x561b7dedbd50-EndDoStmt" + }, + { + "id": "0x561b7dec72b0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dec72b0-ExecutableConstruct" + }, + { + "id": "0x561b7dec72b0-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x561b7ded9360-DoConstruct" + }, + { + "id": "0x561b7ded9360-DoConstruct", + "Statement": "0x561b7ded93b8-Statement", + "ExecutionPartConstruct": [ + "0x561b7dec7d90-ExecutionPartConstruct", + "0x561b7dec4210-ExecutionPartConstruct" + ], + "Statement": "0x561b7ded9360-Statement" + }, + { + "id": "0x561b7ded93b8-Statement", + "statement": "0x561b7ded93c8-NonLabelDoStmt", + "source": "do20i=1,5,1" + }, + { + "id": "0x561b7ded93c8-NonLabelDoStmt", + "LoopControl": "0x561b7ded93c8-LoopControl" + }, + { + "id": "0x561b7ded93c8-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x561b7ded93c8-LoopBounds" + }, + { + "id": "0x561b7ded93c8-LoopBounds", + "var": "0x561b7ded93c8-Name", + "lower": "0x561b7dec73d0-Expr", + "upper": "0x561b7dec74b0-Expr", + "step": "0x561b7dec7590-Expr" + }, + { + "id": "0x561b7ded93c8-Name", + "source": "i" + }, + { + "id": "0x561b7dec73d0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dec73f0-LiteralConstant" + }, + { + "id": "0x561b7dec73f0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dec73f0-IntLiteralConstant" + }, + { + "id": "0x561b7dec73f0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x561b7dec74b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dec74d0-LiteralConstant" + }, + { + "id": "0x561b7dec74d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dec74d0-IntLiteralConstant" + }, + { + "id": "0x561b7dec74d0-IntLiteralConstant", + "CharBlock": "5" + }, + { + "id": "0x561b7dec7590-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dec75b0-LiteralConstant" + }, + { + "id": "0x561b7dec75b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dec75b0-IntLiteralConstant" + }, + { + "id": "0x561b7dec75b0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x561b7ded93a0-ExecutionPartConstruct" + }, + { + "id": "0x561b7dec7d90-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dec7d90-ExecutableConstruct" + }, + { + "id": "0x561b7dec7d90-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dec7d90-Statement" + }, + { + "id": "0x561b7dec7d90-Statement", + "statement": "0x561b7dec7da0-ActionStmt", + "source": "s_a(i+1)=s_dvt(i)" + }, + { + "id": "0x561b7dec7da0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x561b7dec7c10-AssignmentStmt" + }, + { + "id": "0x561b7dec7c10-AssignmentStmt", + "Variable": "0x561b7dec7cf0-Variable", + "Expr": "0x561b7dec7c20-Expr" + }, + { + "id": "0x561b7dec7cf0-Variable", + "variantKey": "Designator", + "Designator": "0x561b7def36b0-Designator" + }, + { + "id": "0x561b7def36b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7def36c0-DataRef" + }, + { + "id": "0x561b7def36c0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x561b7ded4d70-ArrayElement" + }, + { + "id": "0x561b7ded4d70-ArrayElement", + "base": "0x561b7ded4d70-DataRef", + "subscripts": [ + "0x561b7def3a80-SectionSubscript" + ] + }, + { + "id": "0x561b7ded4d70-DataRef", + "variantKey": "Name", + "Name": "0x561b7ded4d70-Name" + }, + { + "id": "0x561b7ded4d70-Name", + "source": "s_a" + }, + { + "id": "0x561b7def3a80-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x561b7dec6ae0-Expr" + }, + { + "id": "0x561b7dec6ae0-Expr", + "variantKey": "Add", + "Add": "0x561b7dec6b00-Add" + }, + { + "id": "0x561b7dec6b00-Add", + "left": "0x561b7dec7830-Expr", + "right": "0x561b7dec7750-Expr", + "op": "ADD" + }, + { + "id": "0x561b7dec7830-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dec3250-Designator" + }, + { + "id": "0x561b7dec3250-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dec3260-DataRef" + }, + { + "id": "0x561b7dec3260-DataRef", + "variantKey": "Name", + "Name": "0x561b7dec3260-Name" + }, + { + "id": "0x561b7dec3260-Name", + "source": "i" + }, + { + "id": "0x561b7dec7750-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dec7770-LiteralConstant" + }, + { + "id": "0x561b7dec7770-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dec7770-IntLiteralConstant" + }, + { + "id": "0x561b7dec7770-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x561b7dec7c20-Expr", + "variantKey": "Designator", + "Designator": "0x561b7def1f40-Designator" + }, + { + "id": "0x561b7def1f40-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7def1f50-DataRef" + }, + { + "id": "0x561b7def1f50-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x561b7dedd330-ArrayElement" + }, + { + "id": "0x561b7dedd330-ArrayElement", + "base": "0x561b7dedd330-DataRef", + "subscripts": [ + "0x561b7ded6620-SectionSubscript" + ] + }, + { + "id": "0x561b7dedd330-DataRef", + "variantKey": "Name", + "Name": "0x561b7dedd330-Name" + }, + { + "id": "0x561b7dedd330-Name", + "source": "s_dvt" + }, + { + "id": "0x561b7ded6620-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x561b7dec7670-Expr" + }, + { + "id": "0x561b7dec7670-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dec65d0-Designator" + }, + { + "id": "0x561b7dec65d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dec65e0-DataRef" + }, + { + "id": "0x561b7dec65e0-DataRef", + "variantKey": "Name", + "Name": "0x561b7dec65e0-Name" + }, + { + "id": "0x561b7dec65e0-Name", + "source": "i" + }, + { + "id": "0x561b7dec4210-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dec4210-ExecutableConstruct" + }, + { + "id": "0x561b7dec4210-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dec4210-Statement" + }, + { + "id": "0x561b7dec4210-Statement", + "statement": "0x561b7dec4220-ActionStmt", + "label": "20", + "source": "20continue" + }, + { + "id": "0x561b7dec4220-ActionStmt", + "variantKey": "ContinueStmt", + "ContinueStmt": "0x561b7dec4220-ContinueStmt" + }, + { + "id": "0x561b7dec4220-ContinueStmt" + }, + { + "id": "0x561b7ded9360-Statement", + "statement": "0x561b7ded9370-EndDoStmt", + "source": "" + }, + { + "id": "0x561b7ded9370-EndDoStmt" + }, + { + "id": "0x561b7dec7d30-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dec7d30-ExecutableConstruct" + }, + { + "id": "0x561b7dec7d30-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x561b7ded9480-DoConstruct" + }, + { + "id": "0x561b7ded9480-DoConstruct", + "Statement": "0x561b7ded94d8-Statement", + "ExecutionPartConstruct": [ + "0x561b7dec8ed0-ExecutionPartConstruct", + "0x561b7dec8530-ExecutionPartConstruct" + ], + "Statement": "0x561b7ded9480-Statement" + }, + { + "id": "0x561b7ded94d8-Statement", + "statement": "0x561b7ded94e8-NonLabelDoStmt", + "source": "do30i=1,5,1" + }, + { + "id": "0x561b7ded94e8-NonLabelDoStmt", + "LoopControl": "0x561b7ded94e8-LoopControl" + }, + { + "id": "0x561b7ded94e8-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x561b7ded94e8-LoopBounds" + }, + { + "id": "0x561b7ded94e8-LoopBounds", + "var": "0x561b7ded94e8-Name", + "lower": "0x561b7dec7de0-Expr", + "upper": "0x561b7dec7ec0-Expr", + "step": "0x561b7dec7fa0-Expr" + }, + { + "id": "0x561b7ded94e8-Name", + "source": "i" + }, + { + "id": "0x561b7dec7de0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dec7e00-LiteralConstant" + }, + { + "id": "0x561b7dec7e00-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dec7e00-IntLiteralConstant" + }, + { + "id": "0x561b7dec7e00-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x561b7dec7ec0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dec7ee0-LiteralConstant" + }, + { + "id": "0x561b7dec7ee0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dec7ee0-IntLiteralConstant" + }, + { + "id": "0x561b7dec7ee0-IntLiteralConstant", + "CharBlock": "5" + }, + { + "id": "0x561b7dec7fa0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dec7fc0-LiteralConstant" + }, + { + "id": "0x561b7dec7fc0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dec7fc0-IntLiteralConstant" + }, + { + "id": "0x561b7dec7fc0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x561b7ded94c0-ExecutionPartConstruct" + }, + { + "id": "0x561b7dec8ed0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dec8ed0-ExecutableConstruct" + }, + { + "id": "0x561b7dec8ed0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dec8ed0-Statement" + }, + { + "id": "0x561b7dec8ed0-Statement", + "statement": "0x561b7dec8ee0-ActionStmt", + "source": "s_dvt(i)=s_b(i)+s_a(i)" + }, + { + "id": "0x561b7dec8ee0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x561b7dec8ce0-AssignmentStmt" + }, + { + "id": "0x561b7dec8ce0-AssignmentStmt", + "Variable": "0x561b7dec8dc0-Variable", + "Expr": "0x561b7dec8cf0-Expr" + }, + { + "id": "0x561b7dec8dc0-Variable", + "variantKey": "Designator", + "Designator": "0x561b7df0c5a0-Designator" + }, + { + "id": "0x561b7df0c5a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7df0c5b0-DataRef" + }, + { + "id": "0x561b7df0c5b0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x561b7deddfa0-ArrayElement" + }, + { + "id": "0x561b7deddfa0-ArrayElement", + "base": "0x561b7deddfa0-DataRef", + "subscripts": [ + "0x561b7defc370-SectionSubscript" + ] + }, + { + "id": "0x561b7deddfa0-DataRef", + "variantKey": "Name", + "Name": "0x561b7deddfa0-Name" + }, + { + "id": "0x561b7deddfa0-Name", + "source": "s_dvt" + }, + { + "id": "0x561b7defc370-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x561b7dec7a20-Expr" + }, + { + "id": "0x561b7dec7a20-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dec4b10-Designator" + }, + { + "id": "0x561b7dec4b10-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dec4b20-DataRef" + }, + { + "id": "0x561b7dec4b20-DataRef", + "variantKey": "Name", + "Name": "0x561b7dec4b20-Name" + }, + { + "id": "0x561b7dec4b20-Name", + "source": "i" + }, + { + "id": "0x561b7dec8cf0-Expr", + "variantKey": "Add", + "Add": "0x561b7dec8d10-Add" + }, + { + "id": "0x561b7dec8d10-Add", + "left": "0x561b7dec8b90-Expr", + "right": "0x561b7dec8ab0-Expr", + "op": "ADD" + }, + { + "id": "0x561b7dec8b90-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dea4da0-Designator" + }, + { + "id": "0x561b7dea4da0-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dea4db0-DataRef" + }, + { + "id": "0x561b7dea4db0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x561b7dec24f0-ArrayElement" + }, + { + "id": "0x561b7dec24f0-ArrayElement", + "base": "0x561b7dec24f0-DataRef", + "subscripts": [ + "0x561b7defb9b0-SectionSubscript" + ] + }, + { + "id": "0x561b7dec24f0-DataRef", + "variantKey": "Name", + "Name": "0x561b7dec24f0-Name" + }, + { + "id": "0x561b7dec24f0-Name", + "source": "s_b" + }, + { + "id": "0x561b7defb9b0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x561b7dec8080-Expr" + }, + { + "id": "0x561b7dec8080-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dec8270-Designator" + }, + { + "id": "0x561b7dec8270-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dec8280-DataRef" + }, + { + "id": "0x561b7dec8280-DataRef", + "variantKey": "Name", + "Name": "0x561b7dec8280-Name" + }, + { + "id": "0x561b7dec8280-Name", + "source": "i" + }, + { + "id": "0x561b7dec8ab0-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dedc2e0-Designator" + }, + { + "id": "0x561b7dedc2e0-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dedc2f0-DataRef" + }, + { + "id": "0x561b7dedc2f0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x561b7deea740-ArrayElement" + }, + { + "id": "0x561b7deea740-ArrayElement", + "base": "0x561b7deea740-DataRef", + "subscripts": [ + "0x561b7ded9a40-SectionSubscript" + ] + }, + { + "id": "0x561b7deea740-DataRef", + "variantKey": "Name", + "Name": "0x561b7deea740-Name" + }, + { + "id": "0x561b7deea740-Name", + "source": "s_a" + }, + { + "id": "0x561b7ded9a40-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x561b7dec82d0-Expr" + }, + { + "id": "0x561b7dec82d0-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dec8640-Designator" + }, + { + "id": "0x561b7dec8640-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dec8650-DataRef" + }, + { + "id": "0x561b7dec8650-DataRef", + "variantKey": "Name", + "Name": "0x561b7dec8650-Name" + }, + { + "id": "0x561b7dec8650-Name", + "source": "i" + }, + { + "id": "0x561b7dec8530-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dec8530-ExecutableConstruct" + }, + { + "id": "0x561b7dec8530-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dec8530-Statement" + }, + { + "id": "0x561b7dec8530-Statement", + "statement": "0x561b7dec8540-ActionStmt", + "label": "30", + "source": "30continue" + }, + { + "id": "0x561b7dec8540-ActionStmt", + "variantKey": "ContinueStmt", + "ContinueStmt": "0x561b7dec8540-ContinueStmt" + }, + { + "id": "0x561b7dec8540-ContinueStmt" + }, + { + "id": "0x561b7ded9480-Statement", + "statement": "0x561b7ded9490-EndDoStmt", + "source": "" + }, + { + "id": "0x561b7ded9490-EndDoStmt" + }, + { + "id": "0x561b7dec8e00-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dec8e00-ExecutableConstruct" + }, + { + "id": "0x561b7dec8e00-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x561b7ded95a0-DoConstruct" + }, + { + "id": "0x561b7ded95a0-DoConstruct", + "Statement": "0x561b7ded95f8-Statement", + "ExecutionPartConstruct": [ + "0x561b7dec9960-ExecutionPartConstruct", + "0x561b7dec6bd0-ExecutionPartConstruct" + ], + "Statement": "0x561b7ded95a0-Statement" + }, + { + "id": "0x561b7ded95f8-Statement", + "statement": "0x561b7ded9608-NonLabelDoStmt", + "source": "do40i=1,5,1" + }, + { + "id": "0x561b7ded9608-NonLabelDoStmt", + "LoopControl": "0x561b7ded9608-LoopControl" + }, + { + "id": "0x561b7ded9608-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x561b7ded9608-LoopBounds" + }, + { + "id": "0x561b7ded9608-LoopBounds", + "var": "0x561b7ded9608-Name", + "lower": "0x561b7dec8f20-Expr", + "upper": "0x561b7dec9000-Expr", + "step": "0x561b7dec90e0-Expr" + }, + { + "id": "0x561b7ded9608-Name", + "source": "i" + }, + { + "id": "0x561b7dec8f20-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dec8f40-LiteralConstant" + }, + { + "id": "0x561b7dec8f40-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dec8f40-IntLiteralConstant" + }, + { + "id": "0x561b7dec8f40-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x561b7dec9000-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dec9020-LiteralConstant" + }, + { + "id": "0x561b7dec9020-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dec9020-IntLiteralConstant" + }, + { + "id": "0x561b7dec9020-IntLiteralConstant", + "CharBlock": "5" + }, + { + "id": "0x561b7dec90e0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dec9100-LiteralConstant" + }, + { + "id": "0x561b7dec9100-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dec9100-IntLiteralConstant" + }, + { + "id": "0x561b7dec9100-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x561b7ded95e0-ExecutionPartConstruct" + }, + { + "id": "0x561b7dec9960-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dec9960-ExecutableConstruct" + }, + { + "id": "0x561b7dec9960-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dec9960-Statement" + }, + { + "id": "0x561b7dec9960-Statement", + "statement": "0x561b7dec9970-ActionStmt", + "source": "s_b(i+1)=s_dvt(i)" + }, + { + "id": "0x561b7dec9970-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x561b7dec97e0-AssignmentStmt" + }, + { + "id": "0x561b7dec97e0-AssignmentStmt", + "Variable": "0x561b7dec98c0-Variable", + "Expr": "0x561b7dec97f0-Expr" + }, + { + "id": "0x561b7dec98c0-Variable", + "variantKey": "Designator", + "Designator": "0x561b7dec5ba0-Designator" + }, + { + "id": "0x561b7dec5ba0-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dec5bb0-DataRef" + }, + { + "id": "0x561b7dec5bb0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x561b7dee0490-ArrayElement" + }, + { + "id": "0x561b7dee0490-ArrayElement", + "base": "0x561b7dee0490-DataRef", + "subscripts": [ + "0x561b7def39e0-SectionSubscript" + ] + }, + { + "id": "0x561b7dee0490-DataRef", + "variantKey": "Name", + "Name": "0x561b7dee0490-Name" + }, + { + "id": "0x561b7dee0490-Name", + "source": "s_b" + }, + { + "id": "0x561b7def39e0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x561b7dec86a0-Expr" + }, + { + "id": "0x561b7dec86a0-Expr", + "variantKey": "Add", + "Add": "0x561b7dec86c0-Add" + }, + { + "id": "0x561b7dec86c0-Add", + "left": "0x561b7dec9400-Expr", + "right": "0x561b7dec9320-Expr", + "op": "ADD" + }, + { + "id": "0x561b7dec9400-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dec3e30-Designator" + }, + { + "id": "0x561b7dec3e30-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dec3e40-DataRef" + }, + { + "id": "0x561b7dec3e40-DataRef", + "variantKey": "Name", + "Name": "0x561b7dec3e40-Name" + }, + { + "id": "0x561b7dec3e40-Name", + "source": "i" + }, + { + "id": "0x561b7dec9320-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dec9340-LiteralConstant" + }, + { + "id": "0x561b7dec9340-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dec9340-IntLiteralConstant" + }, + { + "id": "0x561b7dec9340-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x561b7dec97f0-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dec8900-Designator" + }, + { + "id": "0x561b7dec8900-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dec8910-DataRef" + }, + { + "id": "0x561b7dec8910-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x561b7dee7540-ArrayElement" + }, + { + "id": "0x561b7dee7540-ArrayElement", + "base": "0x561b7dee7540-DataRef", + "subscripts": [ + "0x561b7ded6670-SectionSubscript" + ] + }, + { + "id": "0x561b7dee7540-DataRef", + "variantKey": "Name", + "Name": "0x561b7dee7540-Name" + }, + { + "id": "0x561b7dee7540-Name", + "source": "s_dvt" + }, + { + "id": "0x561b7ded6670-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x561b7dec9240-Expr" + }, + { + "id": "0x561b7dec9240-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dec8580-Designator" + }, + { + "id": "0x561b7dec8580-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dec8590-DataRef" + }, + { + "id": "0x561b7dec8590-DataRef", + "variantKey": "Name", + "Name": "0x561b7dec8590-Name" + }, + { + "id": "0x561b7dec8590-Name", + "source": "i" + }, + { + "id": "0x561b7dec6bd0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dec6bd0-ExecutableConstruct" + }, + { + "id": "0x561b7dec6bd0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dec6bd0-Statement" + }, + { + "id": "0x561b7dec6bd0-Statement", + "statement": "0x561b7dec6be0-ActionStmt", + "label": "40", + "source": "40continue" + }, + { + "id": "0x561b7dec6be0-ActionStmt", + "variantKey": "ContinueStmt", + "ContinueStmt": "0x561b7dec6be0-ContinueStmt" + }, + { + "id": "0x561b7dec6be0-ContinueStmt" + }, + { + "id": "0x561b7ded95a0-Statement", + "statement": "0x561b7ded95b0-EndDoStmt", + "source": "" + }, + { + "id": "0x561b7ded95b0-EndDoStmt" + }, + { + "id": "0x561b7deca550-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7deca550-ExecutableConstruct" + }, + { + "id": "0x561b7deca550-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561b7deca550-Statement" + }, + { + "id": "0x561b7deca550-Statement", + "statement": "0x561b7deca560-ActionStmt", + "source": "v_a(2:6)=v_a(1:5)+v_b(1:5)" + }, + { + "id": "0x561b7deca560-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x561b7dec9b70-AssignmentStmt" + }, + { + "id": "0x561b7dec9b70-AssignmentStmt", + "Variable": "0x561b7dec9c50-Variable", + "Expr": "0x561b7dec9b80-Expr" + }, + { + "id": "0x561b7dec9c50-Variable", + "variantKey": "Designator", + "Designator": "0x561b7dec83b0-Designator" + }, + { + "id": "0x561b7dec83b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dec83c0-DataRef" + }, + { + "id": "0x561b7dec83c0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x561b7ded4db0-ArrayElement" + }, + { + "id": "0x561b7ded4db0-ArrayElement", + "base": "0x561b7ded4db0-DataRef", + "subscripts": [ + "0x561b7decdc50-SectionSubscript" + ] + }, + { + "id": "0x561b7ded4db0-DataRef", + "variantKey": "Name", + "Name": "0x561b7ded4db0-Name" + }, + { + "id": "0x561b7ded4db0-Name", + "source": "v_a" + }, + { + "id": "0x561b7decdc50-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x561b7decdc50-SubscriptTriplet" + }, + { + "id": "0x561b7decdc50-SubscriptTriplet", + "start": "0x561b7dec99b0-Expr", + "end": "0x561b7dec9a90-Expr" + }, + { + "id": "0x561b7dec99b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dec99d0-LiteralConstant" + }, + { + "id": "0x561b7dec99d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dec99d0-IntLiteralConstant" + }, + { + "id": "0x561b7dec99d0-IntLiteralConstant", + "CharBlock": "2" + }, + { + "id": "0x561b7dec9a90-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dec9ab0-LiteralConstant" + }, + { + "id": "0x561b7dec9ab0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dec9ab0-IntLiteralConstant" + }, + { + "id": "0x561b7dec9ab0-IntLiteralConstant", + "CharBlock": "6" + }, + { + "id": "0x561b7dec9b80-Expr", + "variantKey": "Add", + "Add": "0x561b7dec9ba0-Add" + }, + { + "id": "0x561b7dec9ba0-Add", + "left": "0x561b7deca320-Expr", + "right": "0x561b7deca240-Expr", + "op": "ADD" + }, + { + "id": "0x561b7deca320-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dec9e40-Designator" + }, + { + "id": "0x561b7dec9e40-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dec9e50-DataRef" + }, + { + "id": "0x561b7dec9e50-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x561b7ded5490-ArrayElement" + }, + { + "id": "0x561b7ded5490-ArrayElement", + "base": "0x561b7ded5490-DataRef", + "subscripts": [ + "0x561b7decde30-SectionSubscript" + ] + }, + { + "id": "0x561b7ded5490-DataRef", + "variantKey": "Name", + "Name": "0x561b7ded5490-Name" + }, + { + "id": "0x561b7ded5490-Name", + "source": "v_a" + }, + { + "id": "0x561b7decde30-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x561b7decde30-SubscriptTriplet" + }, + { + "id": "0x561b7decde30-SubscriptTriplet", + "start": "0x561b7dec9c80-Expr", + "end": "0x561b7dec9d60-Expr" + }, + { + "id": "0x561b7dec9c80-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dec9ca0-LiteralConstant" + }, + { + "id": "0x561b7dec9ca0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dec9ca0-IntLiteralConstant" + }, + { + "id": "0x561b7dec9ca0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x561b7dec9d60-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dec9d80-LiteralConstant" + }, + { + "id": "0x561b7dec9d80-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dec9d80-IntLiteralConstant" + }, + { + "id": "0x561b7dec9d80-IntLiteralConstant", + "CharBlock": "5" + }, + { + "id": "0x561b7deca240-Expr", + "variantKey": "Designator", + "Designator": "0x561b7deca1e0-Designator" + }, + { + "id": "0x561b7deca1e0-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7deca1f0-DataRef" + }, + { + "id": "0x561b7deca1f0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x561b7ded5550-ArrayElement" + }, + { + "id": "0x561b7ded5550-ArrayElement", + "base": "0x561b7ded5550-DataRef", + "subscripts": [ + "0x561b7decdfd0-SectionSubscript" + ] + }, + { + "id": "0x561b7ded5550-DataRef", + "variantKey": "Name", + "Name": "0x561b7ded5550-Name" + }, + { + "id": "0x561b7ded5550-Name", + "source": "v_b" + }, + { + "id": "0x561b7decdfd0-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x561b7decdfd0-SubscriptTriplet" + }, + { + "id": "0x561b7decdfd0-SubscriptTriplet", + "start": "0x561b7dec9f60-Expr", + "end": "0x561b7deca0a0-Expr" + }, + { + "id": "0x561b7dec9f60-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dec9f80-LiteralConstant" + }, + { + "id": "0x561b7dec9f80-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dec9f80-IntLiteralConstant" + }, + { + "id": "0x561b7dec9f80-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x561b7deca0a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7deca0c0-LiteralConstant" + }, + { + "id": "0x561b7deca0c0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7deca0c0-IntLiteralConstant" + }, + { + "id": "0x561b7deca0c0-IntLiteralConstant", + "CharBlock": "5" + }, + { + "id": "0x561b7decaee0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7decaee0-ExecutableConstruct" + }, + { + "id": "0x561b7decaee0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561b7decaee0-Statement" + }, + { + "id": "0x561b7decaee0-Statement", + "statement": "0x561b7decaef0-ActionStmt", + "source": "v_b(2:6)=v_b(1:5)+v_a(1:5)" + }, + { + "id": "0x561b7decaef0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x561b7deca760-AssignmentStmt" + }, + { + "id": "0x561b7deca760-AssignmentStmt", + "Variable": "0x561b7deca840-Variable", + "Expr": "0x561b7deca770-Expr" + }, + { + "id": "0x561b7deca840-Variable", + "variantKey": "Designator", + "Designator": "0x561b7dec9f00-Designator" + }, + { + "id": "0x561b7dec9f00-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dec9f10-DataRef" + }, + { + "id": "0x561b7dec9f10-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x561b7ded5950-ArrayElement" + }, + { + "id": "0x561b7ded5950-ArrayElement", + "base": "0x561b7ded5950-DataRef", + "subscripts": [ + "0x561b7dece180-SectionSubscript" + ] + }, + { + "id": "0x561b7ded5950-DataRef", + "variantKey": "Name", + "Name": "0x561b7ded5950-Name" + }, + { + "id": "0x561b7ded5950-Name", + "source": "v_b" + }, + { + "id": "0x561b7dece180-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x561b7dece180-SubscriptTriplet" + }, + { + "id": "0x561b7dece180-SubscriptTriplet", + "start": "0x561b7deca5a0-Expr", + "end": "0x561b7deca680-Expr" + }, + { + "id": "0x561b7deca5a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7deca5c0-LiteralConstant" + }, + { + "id": "0x561b7deca5c0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7deca5c0-IntLiteralConstant" + }, + { + "id": "0x561b7deca5c0-IntLiteralConstant", + "CharBlock": "2" + }, + { + "id": "0x561b7deca680-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7deca6a0-LiteralConstant" + }, + { + "id": "0x561b7deca6a0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7deca6a0-IntLiteralConstant" + }, + { + "id": "0x561b7deca6a0-IntLiteralConstant", + "CharBlock": "6" + }, + { + "id": "0x561b7deca770-Expr", + "variantKey": "Add", + "Add": "0x561b7deca790-Add" + }, + { + "id": "0x561b7deca790-Add", + "left": "0x561b7decad90-Expr", + "right": "0x561b7decacb0-Expr", + "op": "ADD" + }, + { + "id": "0x561b7decad90-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dec8780-Designator" + }, + { + "id": "0x561b7dec8780-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dec8790-DataRef" + }, + { + "id": "0x561b7dec8790-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x561b7ded6180-ArrayElement" + }, + { + "id": "0x561b7ded6180-ArrayElement", + "base": "0x561b7ded6180-DataRef", + "subscripts": [ + "0x561b7ded36f0-SectionSubscript" + ] + }, + { + "id": "0x561b7ded6180-DataRef", + "variantKey": "Name", + "Name": "0x561b7ded6180-Name" + }, + { + "id": "0x561b7ded6180-Name", + "source": "v_b" + }, + { + "id": "0x561b7ded36f0-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x561b7ded36f0-SubscriptTriplet" + }, + { + "id": "0x561b7ded36f0-SubscriptTriplet", + "start": "0x561b7deca870-Expr", + "end": "0x561b7deca950-Expr" + }, + { + "id": "0x561b7deca870-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7deca890-LiteralConstant" + }, + { + "id": "0x561b7deca890-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7deca890-IntLiteralConstant" + }, + { + "id": "0x561b7deca890-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x561b7deca950-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7deca970-LiteralConstant" + }, + { + "id": "0x561b7deca970-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7deca970-IntLiteralConstant" + }, + { + "id": "0x561b7deca970-IntLiteralConstant", + "CharBlock": "5" + }, + { + "id": "0x561b7decacb0-Expr", + "variantKey": "Designator", + "Designator": "0x561b7decac50-Designator" + }, + { + "id": "0x561b7decac50-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7decac60-DataRef" + }, + { + "id": "0x561b7decac60-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x561b7ded61e0-ArrayElement" + }, + { + "id": "0x561b7ded61e0-ArrayElement", + "base": "0x561b7ded61e0-DataRef", + "subscripts": [ + "0x561b7decd7f0-SectionSubscript" + ] + }, + { + "id": "0x561b7ded61e0-DataRef", + "variantKey": "Name", + "Name": "0x561b7ded61e0-Name" + }, + { + "id": "0x561b7ded61e0-Name", + "source": "v_a" + }, + { + "id": "0x561b7decd7f0-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x561b7decd7f0-SubscriptTriplet" + }, + { + "id": "0x561b7decd7f0-SubscriptTriplet", + "start": "0x561b7decaa30-Expr", + "end": "0x561b7decab10-Expr" + }, + { + "id": "0x561b7decaa30-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7decaa50-LiteralConstant" + }, + { + "id": "0x561b7decaa50-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7decaa50-IntLiteralConstant" + }, + { + "id": "0x561b7decaa50-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x561b7decab10-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7decab30-LiteralConstant" + }, + { + "id": "0x561b7decab30-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7decab30-IntLiteralConstant" + }, + { + "id": "0x561b7decab30-IntLiteralConstant", + "CharBlock": "5" + }, + { + "id": "0x561b7decbe40-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7decbe40-ExecutableConstruct" + }, + { + "id": "0x561b7decbe40-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561b7decbe40-Statement" + }, + { + "id": "0x561b7decbe40-Statement", + "statement": "0x561b7decbe50-ActionStmt", + "source": "callsub1(error,v_a,v_b,v_a+v_b)" + }, + { + "id": "0x561b7decbe50-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x561b7decde70-CallStmt" + }, + { + "id": "0x561b7decde70-CallStmt", + "call": "0x561b7decde70-Call" + }, + { + "id": "0x561b7decde70-Call", + "ProcedureDesignator": "0x561b7decde88-ProcedureDesignator", + "ActualArgSpec": [ + "0x561b7decb9d0-ActualArgSpec", + "0x561b7decb8c0-ActualArgSpec", + "0x561b7decb7b0-ActualArgSpec", + "0x561b7decb6a0-ActualArgSpec" + ] + }, + { + "id": "0x561b7decde88-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x561b7decde88-Name" + }, + { + "id": "0x561b7decde88-Name", + "source": "sub1" + }, + { + "id": "0x561b7decb9d0-ActualArgSpec", + "ActualArg": "0x561b7decb9d0-ActualArg" + }, + { + "id": "0x561b7decb9d0-ActualArg", + "variantKey": "Expr", + "Expr": "0x561b7decb3d0-Expr" + }, + { + "id": "0x561b7decb3d0-Expr", + "variantKey": "Designator", + "Designator": "0x561b7decb290-Designator" + }, + { + "id": "0x561b7decb290-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7decb2a0-DataRef" + }, + { + "id": "0x561b7decb2a0-DataRef", + "variantKey": "Name", + "Name": "0x561b7decb2a0-Name" + }, + { + "id": "0x561b7decb2a0-Name", + "source": "error" + }, + { + "id": "0x561b7decb8c0-ActualArgSpec", + "ActualArg": "0x561b7decb8c0-ActualArg" + }, + { + "id": "0x561b7decb8c0-ActualArg", + "variantKey": "Expr", + "Expr": "0x561b7decb4b0-Expr" + }, + { + "id": "0x561b7decb4b0-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dec9ea0-Designator" + }, + { + "id": "0x561b7dec9ea0-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dec9eb0-DataRef" + }, + { + "id": "0x561b7dec9eb0-DataRef", + "variantKey": "Name", + "Name": "0x561b7dec9eb0-Name" + }, + { + "id": "0x561b7dec9eb0-Name", + "source": "v_a" + }, + { + "id": "0x561b7decb7b0-ActualArgSpec", + "ActualArg": "0x561b7decb7b0-ActualArg" + }, + { + "id": "0x561b7decb7b0-ActualArg", + "variantKey": "Expr", + "Expr": "0x561b7decb2f0-Expr" + }, + { + "id": "0x561b7decb2f0-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dec5060-Designator" + }, + { + "id": "0x561b7dec5060-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dec5070-DataRef" + }, + { + "id": "0x561b7dec5070-DataRef", + "variantKey": "Name", + "Name": "0x561b7dec5070-Name" + }, + { + "id": "0x561b7dec5070-Name", + "source": "v_b" + }, + { + "id": "0x561b7decb6a0-ActualArgSpec", + "ActualArg": "0x561b7decb6a0-ActualArg" + }, + { + "id": "0x561b7decb6a0-ActualArg", + "variantKey": "Expr", + "Expr": "0x561b7decb0f0-Expr" + }, + { + "id": "0x561b7decb0f0-Expr", + "variantKey": "Add", + "Add": "0x561b7decb110-Add" + }, + { + "id": "0x561b7decb110-Add", + "left": "0x561b7decaf30-Expr", + "right": "0x561b7decb010-Expr", + "op": "ADD" + }, + { + "id": "0x561b7decaf30-Expr", + "variantKey": "Designator", + "Designator": "0x561b7decabf0-Designator" + }, + { + "id": "0x561b7decabf0-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7decac00-DataRef" + }, + { + "id": "0x561b7decac00-DataRef", + "variantKey": "Name", + "Name": "0x561b7decac00-Name" + }, + { + "id": "0x561b7decac00-Name", + "source": "v_a" + }, + { + "id": "0x561b7decb010-Expr", + "variantKey": "Designator", + "Designator": "0x561b7decbc90-Designator" + }, + { + "id": "0x561b7decbc90-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7decbca0-DataRef" + }, + { + "id": "0x561b7decbca0-DataRef", + "variantKey": "Name", + "Name": "0x561b7decbca0-Name" + }, + { + "id": "0x561b7decbca0-Name", + "source": "v_b" + }, + { + "id": "0x561b7deccac0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7deccac0-ExecutableConstruct" + }, + { + "id": "0x561b7deccac0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561b7deccac0-Statement" + }, + { + "id": "0x561b7deccac0-Statement", + "statement": "0x561b7deccad0-ActionStmt", + "source": "callsub2(error,v_a,v_b,v_a-v_b)" + }, + { + "id": "0x561b7deccad0-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x561b7decc990-CallStmt" + }, + { + "id": "0x561b7decc990-CallStmt", + "call": "0x561b7decc990-Call" + }, + { + "id": "0x561b7decc990-Call", + "ProcedureDesignator": "0x561b7decc9a8-ProcedureDesignator", + "ActualArgSpec": [ + "0x561b7decc830-ActualArgSpec", + "0x561b7decc720-ActualArgSpec", + "0x561b7decc610-ActualArgSpec", + "0x561b7decc500-ActualArgSpec" + ] + }, + { + "id": "0x561b7decc9a8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x561b7decc9a8-Name" + }, + { + "id": "0x561b7decc9a8-Name", + "source": "sub2" + }, + { + "id": "0x561b7decc830-ActualArgSpec", + "ActualArg": "0x561b7decc830-ActualArg" + }, + { + "id": "0x561b7decc830-ActualArg", + "variantKey": "Expr", + "Expr": "0x561b7decc2d0-Expr" + }, + { + "id": "0x561b7decc2d0-Expr", + "variantKey": "Designator", + "Designator": "0x561b7decc190-Designator" + }, + { + "id": "0x561b7decc190-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7decc1a0-DataRef" + }, + { + "id": "0x561b7decc1a0-DataRef", + "variantKey": "Name", + "Name": "0x561b7decc1a0-Name" + }, + { + "id": "0x561b7decc1a0-Name", + "source": "error" + }, + { + "id": "0x561b7decc720-ActualArgSpec", + "ActualArg": "0x561b7decc720-ActualArg" + }, + { + "id": "0x561b7decc720-ActualArg", + "variantKey": "Expr", + "Expr": "0x561b7decc3b0-Expr" + }, + { + "id": "0x561b7decc3b0-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dec3f00-Designator" + }, + { + "id": "0x561b7dec3f00-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dec3f10-DataRef" + }, + { + "id": "0x561b7dec3f10-DataRef", + "variantKey": "Name", + "Name": "0x561b7dec3f10-Name" + }, + { + "id": "0x561b7dec3f10-Name", + "source": "v_a" + }, + { + "id": "0x561b7decc610-ActualArgSpec", + "ActualArg": "0x561b7decc610-ActualArg" + }, + { + "id": "0x561b7decc610-ActualArg", + "variantKey": "Expr", + "Expr": "0x561b7decc1f0-Expr" + }, + { + "id": "0x561b7decc1f0-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dec98f0-Designator" + }, + { + "id": "0x561b7dec98f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dec9900-DataRef" + }, + { + "id": "0x561b7dec9900-DataRef", + "variantKey": "Name", + "Name": "0x561b7dec9900-Name" + }, + { + "id": "0x561b7dec9900-Name", + "source": "v_b" + }, + { + "id": "0x561b7decc500-ActualArgSpec", + "ActualArg": "0x561b7decc500-ActualArg" + }, + { + "id": "0x561b7decc500-ActualArg", + "variantKey": "Expr", + "Expr": "0x561b7decc050-Expr" + }, + { + "id": "0x561b7decc050-Expr", + "variantKey": "Subtract", + "Subtract": "0x561b7decc070-Subtract" + }, + { + "id": "0x561b7decc070-Subtract", + "left": "0x561b7decbe90-Expr", + "right": "0x561b7decbf70-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x561b7decbe90-Expr", + "variantKey": "Designator", + "Designator": "0x561b7decb630-Designator" + }, + { + "id": "0x561b7decb630-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7decb640-DataRef" + }, + { + "id": "0x561b7decb640-DataRef", + "variantKey": "Name", + "Name": "0x561b7decb640-Name" + }, + { + "id": "0x561b7decb640-Name", + "source": "v_a" + }, + { + "id": "0x561b7decbf70-Expr", + "variantKey": "Designator", + "Designator": "0x561b7decc930-Designator" + }, + { + "id": "0x561b7decc930-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7decc940-DataRef" + }, + { + "id": "0x561b7decc940-DataRef", + "variantKey": "Name", + "Name": "0x561b7decc940-Name" + }, + { + "id": "0x561b7decc940-Name", + "source": "v_b" + }, + { + "id": "0x561b7decc4a0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7decc4a0-ExecutableConstruct" + }, + { + "id": "0x561b7decc4a0-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x561b7ded96c0-DoConstruct" + }, + { + "id": "0x561b7ded96c0-DoConstruct", + "Statement": "0x561b7ded9718-Statement", + "ExecutionPartConstruct": [ + "0x561b7dedb790-ExecutionPartConstruct", + "0x561b7deddeb0-ExecutionPartConstruct", + "0x561b7dedd790-ExecutionPartConstruct" + ], + "Statement": "0x561b7ded96c0-Statement" + }, + { + "id": "0x561b7ded9718-Statement", + "statement": "0x561b7ded9728-NonLabelDoStmt", + "source": "do50i=1,10,1" + }, + { + "id": "0x561b7ded9728-NonLabelDoStmt", + "LoopControl": "0x561b7ded9728-LoopControl" + }, + { + "id": "0x561b7ded9728-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x561b7ded9728-LoopBounds" + }, + { + "id": "0x561b7ded9728-LoopBounds", + "var": "0x561b7ded9728-Name", + "lower": "0x561b7deccb10-Expr", + "upper": "0x561b7deccbf0-Expr", + "step": "0x561b7decccd0-Expr" + }, + { + "id": "0x561b7ded9728-Name", + "source": "i" + }, + { + "id": "0x561b7deccb10-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7deccb30-LiteralConstant" + }, + { + "id": "0x561b7deccb30-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7deccb30-IntLiteralConstant" + }, + { + "id": "0x561b7deccb30-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x561b7deccbf0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7deccc10-LiteralConstant" + }, + { + "id": "0x561b7deccc10-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7deccc10-IntLiteralConstant" + }, + { + "id": "0x561b7deccc10-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x561b7decccd0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7decccf0-LiteralConstant" + }, + { + "id": "0x561b7decccf0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7decccf0-IntLiteralConstant" + }, + { + "id": "0x561b7decccf0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x561b7ded9700-ExecutionPartConstruct" + }, + { + "id": "0x561b7dedb790-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dedb790-ExecutableConstruct" + }, + { + "id": "0x561b7dedb790-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x561b7de6c780-IfConstruct" + }, + { + "id": "0x561b7de6c780-IfConstruct", + "Statement": "0x561b7de6c850-Statement", + "ExecutionPartConstruct": [ + "0x561b7dec41b0-ExecutionPartConstruct" + ], + "Statement": "0x561b7de6c780-Statement" + }, + { + "id": "0x561b7de6c850-Statement", + "statement": "0x561b7de6c860-IfThenStmt", + "source": "if(v_a(i).ne.s_a(i))then" + }, + { + "id": "0x561b7de6c860-IfThenStmt", + "Expr": "0x561b7dedb440-Expr" + }, + { + "id": "0x561b7dedb440-Expr", + "variantKey": "NE", + "NE": "0x561b7dedb460-NE" + }, + { + "id": "0x561b7dedb460-NE", + "left": "0x561b7deccf30-Expr", + "right": "0x561b7dedb360-Expr", + "op": "NE" + }, + { + "id": "0x561b7deccf30-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dec79c0-Designator" + }, + { + "id": "0x561b7dec79c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dec79d0-DataRef" + }, + { + "id": "0x561b7dec79d0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x561b7ded7b60-ArrayElement" + }, + { + "id": "0x561b7ded7b60-ArrayElement", + "base": "0x561b7ded7b60-DataRef", + "subscripts": [ + "0x561b7df006d0-SectionSubscript" + ] + }, + { + "id": "0x561b7ded7b60-DataRef", + "variantKey": "Name", + "Name": "0x561b7ded7b60-Name" + }, + { + "id": "0x561b7ded7b60-Name", + "source": "v_a" + }, + { + "id": "0x561b7df006d0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x561b7dec95f0-Expr" + }, + { + "id": "0x561b7dec95f0-Expr", + "variantKey": "Designator", + "Designator": "0x561b7deca040-Designator" + }, + { + "id": "0x561b7deca040-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7deca050-DataRef" + }, + { + "id": "0x561b7deca050-DataRef", + "variantKey": "Name", + "Name": "0x561b7deca050-Name" + }, + { + "id": "0x561b7deca050-Name", + "source": "i" + }, + { + "id": "0x561b7dedb360-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dec84c0-Designator" + }, + { + "id": "0x561b7dec84c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dec84d0-DataRef" + }, + { + "id": "0x561b7dec84d0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x561b7dedadf0-ArrayElement" + }, + { + "id": "0x561b7dedadf0-ArrayElement", + "base": "0x561b7dedadf0-DataRef", + "subscripts": [ + "0x561b7dee90e0-SectionSubscript" + ] + }, + { + "id": "0x561b7dedadf0-DataRef", + "variantKey": "Name", + "Name": "0x561b7dedadf0-Name" + }, + { + "id": "0x561b7dedadf0-Name", + "source": "s_a" + }, + { + "id": "0x561b7dee90e0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x561b7dedb280-Expr" + }, + { + "id": "0x561b7dedb280-Expr", + "variantKey": "Designator", + "Designator": "0x561b7decb230-Designator" + }, + { + "id": "0x561b7decb230-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7decb240-DataRef" + }, + { + "id": "0x561b7decb240-DataRef", + "variantKey": "Name", + "Name": "0x561b7decb240-Name" + }, + { + "id": "0x561b7decb240-Name", + "source": "i" + }, + { + "id": "0x561b7de6c838-ExecutionPartConstruct" + }, + { + "id": "0x561b7dec41b0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dec41b0-ExecutableConstruct" + }, + { + "id": "0x561b7dec41b0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dec41b0-Statement" + }, + { + "id": "0x561b7dec41b0-Statement", + "statement": "0x561b7dec41c0-ActionStmt", + "source": "error=error+1" + }, + { + "id": "0x561b7dec41c0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x561b7decd010-AssignmentStmt" + }, + { + "id": "0x561b7decd010-AssignmentStmt", + "Variable": "0x561b7decd0f0-Variable", + "Expr": "0x561b7decd020-Expr" + }, + { + "id": "0x561b7decd0f0-Variable", + "variantKey": "Designator", + "Designator": "0x561b7decca50-Designator" + }, + { + "id": "0x561b7decca50-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7decca60-DataRef" + }, + { + "id": "0x561b7decca60-DataRef", + "variantKey": "Name", + "Name": "0x561b7decca60-Name" + }, + { + "id": "0x561b7decca60-Name", + "source": "error" + }, + { + "id": "0x561b7decd020-Expr", + "variantKey": "Add", + "Add": "0x561b7decd040-Add" + }, + { + "id": "0x561b7decd040-Add", + "left": "0x561b7dedd450-Expr", + "right": "0x561b7dedd370-Expr", + "op": "ADD" + }, + { + "id": "0x561b7dedd450-Expr", + "variantKey": "Designator", + "Designator": "0x561b7deca180-Designator" + }, + { + "id": "0x561b7deca180-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7deca190-DataRef" + }, + { + "id": "0x561b7deca190-DataRef", + "variantKey": "Name", + "Name": "0x561b7deca190-Name" + }, + { + "id": "0x561b7deca190-Name", + "source": "error" + }, + { + "id": "0x561b7dedd370-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dedd390-LiteralConstant" + }, + { + "id": "0x561b7dedd390-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dedd390-IntLiteralConstant" + }, + { + "id": "0x561b7dedd390-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x561b7de6c780-Statement", + "statement": "0x561b7de6c790-EndIfStmt", + "source": "endif" + }, + { + "id": "0x561b7de6c790-EndIfStmt" + }, + { + "id": "0x561b7deddeb0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7deddeb0-ExecutableConstruct" + }, + { + "id": "0x561b7deddeb0-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x561b7dede1a0-IfConstruct" + }, + { + "id": "0x561b7dede1a0-IfConstruct", + "Statement": "0x561b7dede270-Statement", + "ExecutionPartConstruct": [ + "0x561b7dec6800-ExecutionPartConstruct" + ], + "Statement": "0x561b7dede1a0-Statement" + }, + { + "id": "0x561b7dede270-Statement", + "statement": "0x561b7dede280-IfThenStmt", + "source": "if(v_b(i).ne.s_b(i))then" + }, + { + "id": "0x561b7dede280-IfThenStmt", + "Expr": "0x561b7deddbf0-Expr" + }, + { + "id": "0x561b7deddbf0-Expr", + "variantKey": "NE", + "NE": "0x561b7deddc10-NE" + }, + { + "id": "0x561b7deddc10-NE", + "left": "0x561b7dedd530-Expr", + "right": "0x561b7deddb10-Expr", + "op": "NE" + }, + { + "id": "0x561b7dedd530-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dec7bb0-Designator" + }, + { + "id": "0x561b7dec7bb0-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dec7bc0-DataRef" + }, + { + "id": "0x561b7dec7bc0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x561b7deebcd0-ArrayElement" + }, + { + "id": "0x561b7deebcd0-ArrayElement", + "base": "0x561b7deebcd0-DataRef", + "subscripts": [ + "0x561b7deea4f0-SectionSubscript" + ] + }, + { + "id": "0x561b7deebcd0-DataRef", + "variantKey": "Name", + "Name": "0x561b7deebcd0-Name" + }, + { + "id": "0x561b7deebcd0-Name", + "source": "v_b" + }, + { + "id": "0x561b7deea4f0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x561b7dedb090-Expr" + }, + { + "id": "0x561b7dedb090-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dedde40-Designator" + }, + { + "id": "0x561b7dedde40-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dedde50-DataRef" + }, + { + "id": "0x561b7dedde50-DataRef", + "variantKey": "Name", + "Name": "0x561b7dedde50-Name" + }, + { + "id": "0x561b7dedde50-Name", + "source": "i" + }, + { + "id": "0x561b7deddb10-Expr", + "variantKey": "Designator", + "Designator": "0x561b7deea0a0-Designator" + }, + { + "id": "0x561b7deea0a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7deea0b0-DataRef" + }, + { + "id": "0x561b7deea0b0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x561b7dee9a50-ArrayElement" + }, + { + "id": "0x561b7dee9a50-ArrayElement", + "base": "0x561b7dee9a50-DataRef", + "subscripts": [ + "0x561b7deea540-SectionSubscript" + ] + }, + { + "id": "0x561b7dee9a50-DataRef", + "variantKey": "Name", + "Name": "0x561b7dee9a50-Name" + }, + { + "id": "0x561b7dee9a50-Name", + "source": "s_b" + }, + { + "id": "0x561b7deea540-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x561b7dedda30-Expr" + }, + { + "id": "0x561b7dedda30-Expr", + "variantKey": "Designator", + "Designator": "0x561b7deca470-Designator" + }, + { + "id": "0x561b7deca470-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7deca480-DataRef" + }, + { + "id": "0x561b7deca480-DataRef", + "variantKey": "Name", + "Name": "0x561b7deca480-Name" + }, + { + "id": "0x561b7deca480-Name", + "source": "i" + }, + { + "id": "0x561b7dede258-ExecutionPartConstruct" + }, + { + "id": "0x561b7dec6800-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dec6800-ExecutableConstruct" + }, + { + "id": "0x561b7dec6800-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dec6800-Statement" + }, + { + "id": "0x561b7dec6800-Statement", + "statement": "0x561b7dec6810-ActionStmt", + "source": "error=error+1" + }, + { + "id": "0x561b7dec6810-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x561b7dedd610-AssignmentStmt" + }, + { + "id": "0x561b7dedd610-AssignmentStmt", + "Variable": "0x561b7dedd6f0-Variable", + "Expr": "0x561b7dedd620-Expr" + }, + { + "id": "0x561b7dedd6f0-Variable", + "variantKey": "Designator", + "Designator": "0x561b7decb1d0-Designator" + }, + { + "id": "0x561b7decb1d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7decb1e0-DataRef" + }, + { + "id": "0x561b7decb1e0-DataRef", + "variantKey": "Name", + "Name": "0x561b7decb1e0-Name" + }, + { + "id": "0x561b7decb1e0-Name", + "source": "error" + }, + { + "id": "0x561b7dedd620-Expr", + "variantKey": "Add", + "Add": "0x561b7dedd640-Add" + }, + { + "id": "0x561b7dedd640-Add", + "left": "0x561b7dede0c0-Expr", + "right": "0x561b7deddfe0-Expr", + "op": "ADD" + }, + { + "id": "0x561b7dede0c0-Expr", + "variantKey": "Designator", + "Designator": "0x561b7decc130-Designator" + }, + { + "id": "0x561b7decc130-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7decc140-DataRef" + }, + { + "id": "0x561b7decc140-DataRef", + "variantKey": "Name", + "Name": "0x561b7decc140-Name" + }, + { + "id": "0x561b7decc140-Name", + "source": "error" + }, + { + "id": "0x561b7deddfe0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dede000-LiteralConstant" + }, + { + "id": "0x561b7dede000-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dede000-IntLiteralConstant" + }, + { + "id": "0x561b7dede000-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x561b7dede1a0-Statement", + "statement": "0x561b7dede1b0-EndIfStmt", + "source": "endif" + }, + { + "id": "0x561b7dede1b0-EndIfStmt" + }, + { + "id": "0x561b7dedd790-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dedd790-ExecutableConstruct" + }, + { + "id": "0x561b7dedd790-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dedd790-Statement" + }, + { + "id": "0x561b7dedd790-Statement", + "statement": "0x561b7dedd7a0-ActionStmt", + "label": "50", + "source": "50continue" + }, + { + "id": "0x561b7dedd7a0-ActionStmt", + "variantKey": "ContinueStmt", + "ContinueStmt": "0x561b7dedd7a0-ContinueStmt" + }, + { + "id": "0x561b7dedd7a0-ContinueStmt" + }, + { + "id": "0x561b7ded96c0-Statement", + "statement": "0x561b7ded96d0-EndDoStmt", + "source": "" + }, + { + "id": "0x561b7ded96d0-EndDoStmt" + }, + { + "id": "0x561b7dee0170-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dee0170-ExecutableConstruct" + }, + { + "id": "0x561b7dee0170-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x561b7dee0220-IfConstruct" + }, + { + "id": "0x561b7dee0220-IfConstruct", + "Statement": "0x561b7dee02f0-Statement", + "ExecutionPartConstruct": [ + "0x561b7dec4fa0-ExecutionPartConstruct" + ], + "ElseBlock": "0x561b7dee0260-ElseBlock", + "Statement": "0x561b7dee0220-Statement" + }, + { + "id": "0x561b7dee02f0-Statement", + "statement": "0x561b7dee0300-IfThenStmt", + "source": "if(error.eq.0)then" + }, + { + "id": "0x561b7dee0300-IfThenStmt", + "Expr": "0x561b7dede2c0-Expr" + }, + { + "id": "0x561b7dede2c0-Expr", + "variantKey": "EQ", + "EQ": "0x561b7dede2e0-EQ" + }, + { + "id": "0x561b7dede2e0-EQ", + "left": "0x561b7dede480-Expr", + "right": "0x561b7dede3a0-Expr", + "op": "EQ" + }, + { + "id": "0x561b7dede480-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dedd8c0-Designator" + }, + { + "id": "0x561b7dedd8c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dedd8d0-DataRef" + }, + { + "id": "0x561b7dedd8d0-DataRef", + "variantKey": "Name", + "Name": "0x561b7dedd8d0-Name" + }, + { + "id": "0x561b7dedd8d0-Name", + "source": "error" + }, + { + "id": "0x561b7dede3a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dede3c0-LiteralConstant" + }, + { + "id": "0x561b7dede3c0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dede3c0-IntLiteralConstant" + }, + { + "id": "0x561b7dede3c0-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x561b7dee02d8-ExecutionPartConstruct" + }, + { + "id": "0x561b7dec4fa0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dec4fa0-ExecutableConstruct" + }, + { + "id": "0x561b7dec4fa0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dec4fa0-Statement" + }, + { + "id": "0x561b7dec4fa0-Statement", + "statement": "0x561b7dec4fb0-ActionStmt", + "source": "write(6,*)'OK'" + }, + { + "id": "0x561b7dec4fb0-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x561b7dede8a0-WriteStmt" + }, + { + "id": "0x561b7dede8a0-WriteStmt", + "iounit": "0x561b7dede8a0-IoUnit", + "format": "0x561b7dede8d0-Format", + "controls": [], + "items": [ + "0x561b7dede7c0-OutputItem" + ] + }, + { + "id": "0x561b7dede8a0-IoUnit", + "variantKey": "Expr", + "Expr": "0x561b7dede6d0-Expr" + }, + { + "id": "0x561b7dede6d0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dede6f0-LiteralConstant" + }, + { + "id": "0x561b7dede6f0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dede6f0-IntLiteralConstant" + }, + { + "id": "0x561b7dede6f0-IntLiteralConstant", + "CharBlock": "6" + }, + { + "id": "0x561b7dede8d0-Format", + "variantKey": "Star", + "Star": "0x561b7dede8d0-Star" + }, + { + "id": "0x561b7dede8d0-Star" + }, + { + "id": "0x561b7dede7c0-OutputItem", + "variantKey": "Expr", + "Expr": "0x561b7dede7c0-Expr" + }, + { + "id": "0x561b7dede7c0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dede7e0-LiteralConstant" + }, + { + "id": "0x561b7dede7e0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x561b7dede7e0-CharLiteralConstant" + }, + { + "id": "0x561b7dede7e0-CharLiteralConstant", + "string": "OK" + }, + { + "id": "0x561b7dee0260-ElseBlock", + "Statement": "0x561b7dee0278-Statement", + "ExecutionPartConstruct": [ + "0x561b7deded20-ExecutionPartConstruct", + "0x561b7dedf2b0-ExecutionPartConstruct", + "0x561b7dedf630-ExecutionPartConstruct", + "0x561b7dedfa10-ExecutionPartConstruct", + "0x561b7dedfdf0-ExecutionPartConstruct", + "0x561b7dee01d0-ExecutionPartConstruct" + ] + }, + { + "id": "0x561b7dee0278-Statement", + "statement": "0x561b7dee0288-ElseStmt", + "source": "else" + }, + { + "id": "0x561b7dee0288-ElseStmt" + }, + { + "id": "0x561b7dee0260-ExecutionPartConstruct" + }, + { + "id": "0x561b7deded20-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7deded20-ExecutableConstruct" + }, + { + "id": "0x561b7deded20-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561b7deded20-Statement" + }, + { + "id": "0x561b7deded20-Statement", + "statement": "0x561b7deded30-ActionStmt", + "source": "write(6,*)'NG'" + }, + { + "id": "0x561b7deded30-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x561b7dedebc0-WriteStmt" + }, + { + "id": "0x561b7dedebc0-WriteStmt", + "iounit": "0x561b7dedebc0-IoUnit", + "format": "0x561b7dedebf0-Format", + "controls": [], + "items": [ + "0x561b7dedeae0-OutputItem" + ] + }, + { + "id": "0x561b7dedebc0-IoUnit", + "variantKey": "Expr", + "Expr": "0x561b7dede9f0-Expr" + }, + { + "id": "0x561b7dede9f0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dedea10-LiteralConstant" + }, + { + "id": "0x561b7dedea10-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dedea10-IntLiteralConstant" + }, + { + "id": "0x561b7dedea10-IntLiteralConstant", + "CharBlock": "6" + }, + { + "id": "0x561b7dedebf0-Format", + "variantKey": "Star", + "Star": "0x561b7dedebf0-Star" + }, + { + "id": "0x561b7dedebf0-Star" + }, + { + "id": "0x561b7dedeae0-OutputItem", + "variantKey": "Expr", + "Expr": "0x561b7dedeae0-Expr" + }, + { + "id": "0x561b7dedeae0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dedeb00-LiteralConstant" + }, + { + "id": "0x561b7dedeb00-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x561b7dedeb00-CharLiteralConstant" + }, + { + "id": "0x561b7dedeb00-CharLiteralConstant", + "string": "NG" + }, + { + "id": "0x561b7dedf2b0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dedf2b0-ExecutableConstruct" + }, + { + "id": "0x561b7dedf2b0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dedf2b0-Statement" + }, + { + "id": "0x561b7dedf2b0-Statement", + "statement": "0x561b7dedf2c0-ActionStmt", + "source": "write(6,*)'ERROR=',error" + }, + { + "id": "0x561b7dedf2c0-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x561b7dedf0f0-WriteStmt" + }, + { + "id": "0x561b7dedf0f0-WriteStmt", + "iounit": "0x561b7dedf0f0-IoUnit", + "format": "0x561b7dedf120-Format", + "controls": [], + "items": [ + "0x561b7dedf010-OutputItem", + "0x561b7dedef20-OutputItem" + ] + }, + { + "id": "0x561b7dedf0f0-IoUnit", + "variantKey": "Expr", + "Expr": "0x561b7deded70-Expr" + }, + { + "id": "0x561b7deded70-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7deded90-LiteralConstant" + }, + { + "id": "0x561b7deded90-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7deded90-IntLiteralConstant" + }, + { + "id": "0x561b7deded90-IntLiteralConstant", + "CharBlock": "6" + }, + { + "id": "0x561b7dedf120-Format", + "variantKey": "Star", + "Star": "0x561b7dedf120-Star" + }, + { + "id": "0x561b7dedf120-Star" + }, + { + "id": "0x561b7dedf010-OutputItem", + "variantKey": "Expr", + "Expr": "0x561b7dedf010-Expr" + }, + { + "id": "0x561b7dedf010-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dedf030-LiteralConstant" + }, + { + "id": "0x561b7dedf030-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x561b7dedf030-CharLiteralConstant" + }, + { + "id": "0x561b7dedf030-CharLiteralConstant", + "string": "ERROR=" + }, + { + "id": "0x561b7dedef20-OutputItem", + "variantKey": "Expr", + "Expr": "0x561b7dedef20-Expr" + }, + { + "id": "0x561b7dedef20-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dedeeb0-Designator" + }, + { + "id": "0x561b7dedeeb0-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dedeec0-DataRef" + }, + { + "id": "0x561b7dedeec0-DataRef", + "variantKey": "Name", + "Name": "0x561b7dedeec0-Name" + }, + { + "id": "0x561b7dedeec0-Name", + "source": "error" + }, + { + "id": "0x561b7dedf630-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dedf630-ExecutableConstruct" + }, + { + "id": "0x561b7dedf630-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dedf630-Statement" + }, + { + "id": "0x561b7dedf630-Statement", + "statement": "0x561b7dedf640-ActionStmt", + "source": "write(6,*)s_a" + }, + { + "id": "0x561b7dedf640-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x561b7dedf4d0-WriteStmt" + }, + { + "id": "0x561b7dedf4d0-WriteStmt", + "iounit": "0x561b7dedf4d0-IoUnit", + "format": "0x561b7dedf500-Format", + "controls": [], + "items": [ + "0x561b7dedf3f0-OutputItem" + ] + }, + { + "id": "0x561b7dedf4d0-IoUnit", + "variantKey": "Expr", + "Expr": "0x561b7dedf300-Expr" + }, + { + "id": "0x561b7dedf300-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dedf320-LiteralConstant" + }, + { + "id": "0x561b7dedf320-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dedf320-IntLiteralConstant" + }, + { + "id": "0x561b7dedf320-IntLiteralConstant", + "CharBlock": "6" + }, + { + "id": "0x561b7dedf500-Format", + "variantKey": "Star", + "Star": "0x561b7dedf500-Star" + }, + { + "id": "0x561b7dedf500-Star" + }, + { + "id": "0x561b7dedf3f0-OutputItem", + "variantKey": "Expr", + "Expr": "0x561b7dedf3f0-Expr" + }, + { + "id": "0x561b7dedf3f0-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dedee50-Designator" + }, + { + "id": "0x561b7dedee50-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dedee60-DataRef" + }, + { + "id": "0x561b7dedee60-DataRef", + "variantKey": "Name", + "Name": "0x561b7dedee60-Name" + }, + { + "id": "0x561b7dedee60-Name", + "source": "s_a" + }, + { + "id": "0x561b7dedfa10-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dedfa10-ExecutableConstruct" + }, + { + "id": "0x561b7dedfa10-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dedfa10-Statement" + }, + { + "id": "0x561b7dedfa10-Statement", + "statement": "0x561b7dedfa20-ActionStmt", + "source": "write(6,*)v_a" + }, + { + "id": "0x561b7dedfa20-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x561b7dedf850-WriteStmt" + }, + { + "id": "0x561b7dedf850-WriteStmt", + "iounit": "0x561b7dedf850-IoUnit", + "format": "0x561b7dedf880-Format", + "controls": [], + "items": [ + "0x561b7dedf770-OutputItem" + ] + }, + { + "id": "0x561b7dedf850-IoUnit", + "variantKey": "Expr", + "Expr": "0x561b7dedf680-Expr" + }, + { + "id": "0x561b7dedf680-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dedf6a0-LiteralConstant" + }, + { + "id": "0x561b7dedf6a0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dedf6a0-IntLiteralConstant" + }, + { + "id": "0x561b7dedf6a0-IntLiteralConstant", + "CharBlock": "6" + }, + { + "id": "0x561b7dedf880-Format", + "variantKey": "Star", + "Star": "0x561b7dedf880-Star" + }, + { + "id": "0x561b7dedf880-Star" + }, + { + "id": "0x561b7dedf770-OutputItem", + "variantKey": "Expr", + "Expr": "0x561b7dedf770-Expr" + }, + { + "id": "0x561b7dedf770-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dedd720-Designator" + }, + { + "id": "0x561b7dedd720-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dedd730-DataRef" + }, + { + "id": "0x561b7dedd730-DataRef", + "variantKey": "Name", + "Name": "0x561b7dedd730-Name" + }, + { + "id": "0x561b7dedd730-Name", + "source": "v_a" + }, + { + "id": "0x561b7dedfdf0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dedfdf0-ExecutableConstruct" + }, + { + "id": "0x561b7dedfdf0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dedfdf0-Statement" + }, + { + "id": "0x561b7dedfdf0-Statement", + "statement": "0x561b7dedfe00-ActionStmt", + "source": "write(6,*)s_b" + }, + { + "id": "0x561b7dedfe00-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x561b7dedfc30-WriteStmt" + }, + { + "id": "0x561b7dedfc30-WriteStmt", + "iounit": "0x561b7dedfc30-IoUnit", + "format": "0x561b7dedfc60-Format", + "controls": [], + "items": [ + "0x561b7dedfb50-OutputItem" + ] + }, + { + "id": "0x561b7dedfc30-IoUnit", + "variantKey": "Expr", + "Expr": "0x561b7dedfa60-Expr" + }, + { + "id": "0x561b7dedfa60-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dedfa80-LiteralConstant" + }, + { + "id": "0x561b7dedfa80-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dedfa80-IntLiteralConstant" + }, + { + "id": "0x561b7dedfa80-IntLiteralConstant", + "CharBlock": "6" + }, + { + "id": "0x561b7dedfc60-Format", + "variantKey": "Star", + "Star": "0x561b7dedfc60-Star" + }, + { + "id": "0x561b7dedfc60-Star" + }, + { + "id": "0x561b7dedfb50-OutputItem", + "variantKey": "Expr", + "Expr": "0x561b7dedfb50-Expr" + }, + { + "id": "0x561b7dedfb50-Expr", + "variantKey": "Designator", + "Designator": "0x561b7decbd60-Designator" + }, + { + "id": "0x561b7decbd60-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7decbd70-DataRef" + }, + { + "id": "0x561b7decbd70-DataRef", + "variantKey": "Name", + "Name": "0x561b7decbd70-Name" + }, + { + "id": "0x561b7decbd70-Name", + "source": "s_b" + }, + { + "id": "0x561b7dee01d0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dee01d0-ExecutableConstruct" + }, + { + "id": "0x561b7dee01d0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dee01d0-Statement" + }, + { + "id": "0x561b7dee01d0-Statement", + "statement": "0x561b7dee01e0-ActionStmt", + "source": "write(6,*)v_b" + }, + { + "id": "0x561b7dee01e0-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x561b7dee0010-WriteStmt" + }, + { + "id": "0x561b7dee0010-WriteStmt", + "iounit": "0x561b7dee0010-IoUnit", + "format": "0x561b7dee0040-Format", + "controls": [], + "items": [ + "0x561b7dedff30-OutputItem" + ] + }, + { + "id": "0x561b7dee0010-IoUnit", + "variantKey": "Expr", + "Expr": "0x561b7dedfe40-Expr" + }, + { + "id": "0x561b7dedfe40-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dedfe60-LiteralConstant" + }, + { + "id": "0x561b7dedfe60-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dedfe60-IntLiteralConstant" + }, + { + "id": "0x561b7dedfe60-IntLiteralConstant", + "CharBlock": "6" + }, + { + "id": "0x561b7dee0040-Format", + "variantKey": "Star", + "Star": "0x561b7dee0040-Star" + }, + { + "id": "0x561b7dee0040-Star" + }, + { + "id": "0x561b7dedff30-OutputItem", + "variantKey": "Expr", + "Expr": "0x561b7dedff30-Expr" + }, + { + "id": "0x561b7dedff30-Expr", + "variantKey": "Designator", + "Designator": "0x561b7deddcd0-Designator" + }, + { + "id": "0x561b7deddcd0-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7deddce0-DataRef" + }, + { + "id": "0x561b7deddce0-DataRef", + "variantKey": "Name", + "Name": "0x561b7deddce0-Name" + }, + { + "id": "0x561b7deddce0-Name", + "source": "v_b" + }, + { + "id": "0x561b7dee0220-Statement", + "statement": "0x561b7dee0230-EndIfStmt", + "source": "endif" + }, + { + "id": "0x561b7dee0230-EndIfStmt" + }, + { + "id": "0x561b7dedf250-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dedf250-ExecutableConstruct" + }, + { + "id": "0x561b7dedf250-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dedf250-Statement" + }, + { + "id": "0x561b7dedf250-Statement", + "statement": "0x561b7dedf260-ActionStmt", + "source": "stop" + }, + { + "id": "0x561b7dedf260-ActionStmt", + "variantKey": "StopStmt", + "StopStmt": "0x561b7dee0340-StopStmt" + }, + { + "id": "0x561b7dee0340-StopStmt", + "kind": "0x561b7dee0428-Kind = Stop" + }, + { + "id": "0x561b7dee0428-Kind = Stop", + "disambiguation": "Fortran::parser::StopStmt::Kind", + "value": "Stop" + }, + { + "id": "0x561b7ded3fe0-Statement", + "statement": "0x561b7ded3ff0-EndProgramStmt", + "source": "end" + }, + { + "id": "0x561b7ded3ff0-EndProgramStmt" + }, + { + "id": "0x561b7ded3410-ProgramUnit", + "variantKey": "SubroutineSubprogram", + "SubroutineSubprogram": "0x561b7dee5ae0-SubroutineSubprogram" + }, + { + "id": "0x561b7dee5ae0-SubroutineSubprogram", + "Statement": "0x561b7dee5c28-Statement", + "SpecificationPart": "0x561b7dee5b80-SpecificationPart", + "ExecutionPart": "0x561b7dee5b68-ExecutionPart", + "Statement": "0x561b7dee5ae0-Statement" + }, + { + "id": "0x561b7dee5c28-Statement", + "statement": "0x561b7dee5c38-SubroutineStmt", + "source": "subroutinesub1(error,a,b,c)" + }, + { + "id": "0x561b7dee5c38-SubroutineStmt", + "Name": "0x561b7dee5c70-Name", + "DummyArg": [ + "0x561b7ded3560-DummyArg", + "0x561b7ded6230-DummyArg", + "0x561b7ded4d40-DummyArg", + "0x561b7ded3520-DummyArg" + ] + }, + { + "id": "0x561b7dee5c70-Name", + "source": "sub1" + }, + { + "id": "0x561b7ded3560-DummyArg", + "variantKey": "Name", + "Name": "0x561b7ded3560-Name" + }, + { + "id": "0x561b7ded3560-Name", + "source": "error" + }, + { + "id": "0x561b7ded6230-DummyArg", + "variantKey": "Name", + "Name": "0x561b7ded6230-Name" + }, + { + "id": "0x561b7ded6230-Name", + "source": "a" + }, + { + "id": "0x561b7ded4d40-DummyArg", + "variantKey": "Name", + "Name": "0x561b7ded4d40-Name" + }, + { + "id": "0x561b7ded4d40-Name", + "source": "b" + }, + { + "id": "0x561b7ded3520-DummyArg", + "variantKey": "Name", + "Name": "0x561b7ded3520-Name" + }, + { + "id": "0x561b7ded3520-Name", + "source": "c" + }, + { + "id": "0x561b7dee5b80-SpecificationPart", + "ImplicitPart": "0x561b7dee5b98-ImplicitPart", + "DeclarationConstruct": [ + "0x561b7decae80-DeclarationConstruct", + "0x561b7dede680-DeclarationConstruct", + "0x561b7dee12e0-DeclarationConstruct" + ] + }, + { + "id": "0x561b7dee5b98-ImplicitPart" + }, + { + "id": "0x561b7decae80-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x561b7decae80-SpecificationConstruct" + }, + { + "id": "0x561b7decae80-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x561b7decae80-Statement" + }, + { + "id": "0x561b7decae80-Statement", + "statement": "0x561b7dee0680-TypeDeclarationStmt", + "source": "integer*4error" + }, + { + "id": "0x561b7dee0680-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x561b7dee06b0-DeclarationTypeSpec", + "EntityDecl": [ + "0x561b7dee1030-EntityDecl" + ] + }, + { + "id": "0x561b7dee06b0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x561b7dee06b0-IntrinsicTypeSpec" + }, + { + "id": "0x561b7dee06b0-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x561b7dee06b0-IntegerTypeSpec" + }, + { + "id": "0x561b7dee06b0-IntegerTypeSpec", + "KindSelector": "0x561b7dee06b0-KindSelector" + }, + { + "id": "0x561b7dee06b0-KindSelector", + "variantKey": "StarSize", + "StarSize": "0x561b7dee06b0-StarSize" + }, + { + "id": "0x561b7dee06b0-StarSize", + "uint64_t": "4" + }, + { + "id": "0x561b7dee1030-EntityDecl", + "Name": "0x561b7dee10e8-Name" + }, + { + "id": "0x561b7dee10e8-Name", + "source": "error" + }, + { + "id": "0x561b7dede680-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x561b7dede680-SpecificationConstruct" + }, + { + "id": "0x561b7dede680-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dede680-Statement" + }, + { + "id": "0x561b7dede680-Statement", + "statement": "0x561b7dec91c0-TypeDeclarationStmt", + "source": "complex*8a,b,c" + }, + { + "id": "0x561b7dec91c0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x561b7dec91f0-DeclarationTypeSpec", + "EntityDecl": [ + "0x561b7dee0820-EntityDecl", + "0x561b7dec5ed0-EntityDecl", + "0x561b7dee04e0-EntityDecl" + ] + }, + { + "id": "0x561b7dec91f0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x561b7dec91f0-IntrinsicTypeSpec" + }, + { + "id": "0x561b7dec91f0-IntrinsicTypeSpec", + "variantKey": "Complex", + "Complex": "0x561b7dec91f0-Complex" + }, + { + "id": "0x561b7dec91f0-Complex", + "KindSelector": "0x561b7dec91f0-KindSelector" + }, + { + "id": "0x561b7dec91f0-KindSelector", + "variantKey": "StarSize", + "StarSize": "0x561b7dec91f0-StarSize" + }, + { + "id": "0x561b7dec91f0-StarSize", + "uint64_t": "8" + }, + { + "id": "0x561b7dee0820-EntityDecl", + "Name": "0x561b7dee08d8-Name" + }, + { + "id": "0x561b7dee08d8-Name", + "source": "a" + }, + { + "id": "0x561b7dec5ed0-EntityDecl", + "Name": "0x561b7dec5f88-Name" + }, + { + "id": "0x561b7dec5f88-Name", + "source": "b" + }, + { + "id": "0x561b7dee04e0-EntityDecl", + "Name": "0x561b7dee0598-Name" + }, + { + "id": "0x561b7dee0598-Name", + "source": "c" + }, + { + "id": "0x561b7dee12e0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x561b7dee12e0-SpecificationConstruct" + }, + { + "id": "0x561b7dee12e0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dee12e0-Statement" + }, + { + "id": "0x561b7dee12e0-Statement", + "statement": "0x561b7dee12f0-OtherSpecificationStmt", + "source": "dimensiona(10),b(10),c(10)" + }, + { + "id": "0x561b7dee12f0-OtherSpecificationStmt", + "variantKey": "DimensionStmt", + "DimensionStmt": "0x561b7ded28b0-DimensionStmt" + }, + { + "id": "0x561b7ded28b0-DimensionStmt", + "Declaration": [ + "0x561b7dee09f0-Declaration", + "0x561b7dec85f0-Declaration", + "0x561b7dee2e10-Declaration" + ] + }, + { + "id": "0x561b7dee09f0-Declaration", + "Name": "0x561b7dee0a20-Name", + "ArraySpec": "0x561b7dee09f0-ArraySpec" + }, + { + "id": "0x561b7dee0a20-Name", + "source": "a" + }, + { + "id": "0x561b7dee09f0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x561b7ded2fa0-ExplicitShapeSpec" + ] + }, + { + "id": "0x561b7ded2fa0-ExplicitShapeSpec", + "upper_bound": "0x561b7ded2fa0-SpecificationExpr" + }, + { + "id": "0x561b7ded2fa0-SpecificationExpr", + "Expr": "0x561b7dee0900-Expr" + }, + { + "id": "0x561b7dee0900-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dee0920-LiteralConstant" + }, + { + "id": "0x561b7dee0920-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dee0920-IntLiteralConstant" + }, + { + "id": "0x561b7dee0920-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x561b7dec85f0-Declaration", + "Name": "0x561b7dec8620-Name", + "ArraySpec": "0x561b7dec85f0-ArraySpec" + }, + { + "id": "0x561b7dec8620-Name", + "source": "b" + }, + { + "id": "0x561b7dec85f0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x561b7ded3130-ExplicitShapeSpec" + ] + }, + { + "id": "0x561b7ded3130-ExplicitShapeSpec", + "upper_bound": "0x561b7ded3130-SpecificationExpr" + }, + { + "id": "0x561b7ded3130-SpecificationExpr", + "Expr": "0x561b7dee2be0-Expr" + }, + { + "id": "0x561b7dee2be0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dee2c00-LiteralConstant" + }, + { + "id": "0x561b7dee2c00-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dee2c00-IntLiteralConstant" + }, + { + "id": "0x561b7dee2c00-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x561b7dee2e10-Declaration", + "Name": "0x561b7dee2e40-Name", + "ArraySpec": "0x561b7dee2e10-ArraySpec" + }, + { + "id": "0x561b7dee2e40-Name", + "source": "c" + }, + { + "id": "0x561b7dee2e10-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x561b7ded31a0-ExplicitShapeSpec" + ] + }, + { + "id": "0x561b7ded31a0-ExplicitShapeSpec", + "upper_bound": "0x561b7ded31a0-SpecificationExpr" + }, + { + "id": "0x561b7ded31a0-SpecificationExpr", + "Expr": "0x561b7dee2d20-Expr" + }, + { + "id": "0x561b7dee2d20-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dee2d40-LiteralConstant" + }, + { + "id": "0x561b7dee2d40-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dee2d40-IntLiteralConstant" + }, + { + "id": "0x561b7dee2d40-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x561b7dee5b68-ExecutionPart", + "ExecutionPartConstruct": [ + "0x561b7dee2190-ExecutionPartConstruct", + "0x561b7dee2590-ExecutionPartConstruct" + ] + }, + { + "id": "0x561b7dee5b68-ExecutionPartConstruct" + }, + { + "id": "0x561b7dee2190-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dee2190-ExecutableConstruct" + }, + { + "id": "0x561b7dee2190-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x561b7ded97e0-DoConstruct" + }, + { + "id": "0x561b7ded97e0-DoConstruct", + "Statement": "0x561b7ded9838-Statement", + "ExecutionPartConstruct": [ + "0x561b7dee2130-ExecutionPartConstruct", + "0x561b7dee3370-ExecutionPartConstruct" + ], + "Statement": "0x561b7ded97e0-Statement" + }, + { + "id": "0x561b7ded9838-Statement", + "statement": "0x561b7ded9848-NonLabelDoStmt", + "source": "do60i=1,10,1" + }, + { + "id": "0x561b7ded9848-NonLabelDoStmt", + "LoopControl": "0x561b7ded9848-LoopControl" + }, + { + "id": "0x561b7ded9848-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x561b7ded9848-LoopBounds" + }, + { + "id": "0x561b7ded9848-LoopBounds", + "var": "0x561b7ded9848-Name", + "lower": "0x561b7dee1e80-Expr", + "upper": "0x561b7dee1f60-Expr", + "step": "0x561b7dee2040-Expr" + }, + { + "id": "0x561b7ded9848-Name", + "source": "i" + }, + { + "id": "0x561b7dee1e80-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dee1ea0-LiteralConstant" + }, + { + "id": "0x561b7dee1ea0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dee1ea0-IntLiteralConstant" + }, + { + "id": "0x561b7dee1ea0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x561b7dee1f60-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dee1f80-LiteralConstant" + }, + { + "id": "0x561b7dee1f80-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dee1f80-IntLiteralConstant" + }, + { + "id": "0x561b7dee1f80-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x561b7dee2040-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dee2060-LiteralConstant" + }, + { + "id": "0x561b7dee2060-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dee2060-IntLiteralConstant" + }, + { + "id": "0x561b7dee2060-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x561b7ded9820-ExecutionPartConstruct" + }, + { + "id": "0x561b7dee2130-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dee2130-ExecutableConstruct" + }, + { + "id": "0x561b7dee2130-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x561b7dee4220-IfConstruct" + }, + { + "id": "0x561b7dee4220-IfConstruct", + "Statement": "0x561b7dee42f0-Statement", + "ExecutionPartConstruct": [ + "0x561b7dee3040-ExecutionPartConstruct" + ], + "Statement": "0x561b7dee4220-Statement" + }, + { + "id": "0x561b7dee42f0-Statement", + "statement": "0x561b7dee4300-IfThenStmt", + "source": "if(c(i).ne.a(i)+b(i))then" + }, + { + "id": "0x561b7dee4300-IfThenStmt", + "Expr": "0x561b7dee3f80-Expr" + }, + { + "id": "0x561b7dee3f80-Expr", + "variantKey": "NE", + "NE": "0x561b7dee3fa0-NE" + }, + { + "id": "0x561b7dee3fa0-NE", + "left": "0x561b7dee3bd0-Expr", + "right": "0x561b7dee3af0-Expr", + "op": "NE" + }, + { + "id": "0x561b7dee3bd0-Expr", + "variantKey": "Designator", + "Designator": "0x561b7deed130-Designator" + }, + { + "id": "0x561b7deed130-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7deed140-DataRef" + }, + { + "id": "0x561b7deed140-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x561b7dee9210-ArrayElement" + }, + { + "id": "0x561b7dee9210-ArrayElement", + "base": "0x561b7dee9210-DataRef", + "subscripts": [ + "0x561b7ded8d50-SectionSubscript" + ] + }, + { + "id": "0x561b7dee9210-DataRef", + "variantKey": "Name", + "Name": "0x561b7dee9210-Name" + }, + { + "id": "0x561b7dee9210-Name", + "source": "c" + }, + { + "id": "0x561b7ded8d50-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x561b7dedd7e0-Expr" + }, + { + "id": "0x561b7dedd7e0-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dee1d70-Designator" + }, + { + "id": "0x561b7dee1d70-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dee1d80-DataRef" + }, + { + "id": "0x561b7dee1d80-DataRef", + "variantKey": "Name", + "Name": "0x561b7dee1d80-Name" + }, + { + "id": "0x561b7dee1d80-Name", + "source": "i" + }, + { + "id": "0x561b7dee3af0-Expr", + "variantKey": "Add", + "Add": "0x561b7dee3b10-Add" + }, + { + "id": "0x561b7dee3b10-Add", + "left": "0x561b7dee3a10-Expr", + "right": "0x561b7dee3930-Expr", + "op": "ADD" + }, + { + "id": "0x561b7dee3a10-Expr", + "variantKey": "Designator", + "Designator": "0x561b7ded1a70-Designator" + }, + { + "id": "0x561b7ded1a70-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7ded1a80-DataRef" + }, + { + "id": "0x561b7ded1a80-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x561b7dedb5d0-ArrayElement" + }, + { + "id": "0x561b7dedb5d0-ArrayElement", + "base": "0x561b7dedb5d0-DataRef", + "subscripts": [ + "0x561b7dee3e50-SectionSubscript" + ] + }, + { + "id": "0x561b7dedb5d0-DataRef", + "variantKey": "Name", + "Name": "0x561b7dedb5d0-Name" + }, + { + "id": "0x561b7dedb5d0-Name", + "source": "a" + }, + { + "id": "0x561b7dee3e50-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x561b7dee3470-Expr" + }, + { + "id": "0x561b7dee3470-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dee1a40-Designator" + }, + { + "id": "0x561b7dee1a40-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dee1a50-DataRef" + }, + { + "id": "0x561b7dee1a50-DataRef", + "variantKey": "Name", + "Name": "0x561b7dee1a50-Name" + }, + { + "id": "0x561b7dee1a50-Name", + "source": "i" + }, + { + "id": "0x561b7dee3930-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dec89d0-Designator" + }, + { + "id": "0x561b7dec89d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dec89e0-DataRef" + }, + { + "id": "0x561b7dec89e0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x561b7deea580-ArrayElement" + }, + { + "id": "0x561b7deea580-ArrayElement", + "base": "0x561b7deea580-DataRef", + "subscripts": [ + "0x561b7dec30b0-SectionSubscript" + ] + }, + { + "id": "0x561b7deea580-DataRef", + "variantKey": "Name", + "Name": "0x561b7deea580-Name" + }, + { + "id": "0x561b7deea580-Name", + "source": "b" + }, + { + "id": "0x561b7dec30b0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x561b7dee3550-Expr" + }, + { + "id": "0x561b7dee3550-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dedfd80-Designator" + }, + { + "id": "0x561b7dedfd80-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dedfd90-DataRef" + }, + { + "id": "0x561b7dedfd90-DataRef", + "variantKey": "Name", + "Name": "0x561b7dedfd90-Name" + }, + { + "id": "0x561b7dedfd90-Name", + "source": "i" + }, + { + "id": "0x561b7dee42d8-ExecutionPartConstruct" + }, + { + "id": "0x561b7dee3040-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dee3040-ExecutableConstruct" + }, + { + "id": "0x561b7dee3040-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dee3040-Statement" + }, + { + "id": "0x561b7dee3040-Statement", + "statement": "0x561b7dee3050-ActionStmt", + "source": "error=error+1" + }, + { + "id": "0x561b7dee3050-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x561b7dede560-AssignmentStmt" + }, + { + "id": "0x561b7dede560-AssignmentStmt", + "Variable": "0x561b7dede640-Variable", + "Expr": "0x561b7dede570-Expr" + }, + { + "id": "0x561b7dede640-Variable", + "variantKey": "Designator", + "Designator": "0x561b7dee1b50-Designator" + }, + { + "id": "0x561b7dee1b50-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dee1b60-DataRef" + }, + { + "id": "0x561b7dee1b60-DataRef", + "variantKey": "Name", + "Name": "0x561b7dee1b60-Name" + }, + { + "id": "0x561b7dee1b60-Name", + "source": "error" + }, + { + "id": "0x561b7dede570-Expr", + "variantKey": "Add", + "Add": "0x561b7dede590-Add" + }, + { + "id": "0x561b7dede590-Add", + "left": "0x561b7dee4140-Expr", + "right": "0x561b7dee4060-Expr", + "op": "ADD" + }, + { + "id": "0x561b7dee4140-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dedf9a0-Designator" + }, + { + "id": "0x561b7dedf9a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dedf9b0-DataRef" + }, + { + "id": "0x561b7dedf9b0-DataRef", + "variantKey": "Name", + "Name": "0x561b7dedf9b0-Name" + }, + { + "id": "0x561b7dedf9b0-Name", + "source": "error" + }, + { + "id": "0x561b7dee4060-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dee4080-LiteralConstant" + }, + { + "id": "0x561b7dee4080-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dee4080-IntLiteralConstant" + }, + { + "id": "0x561b7dee4080-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x561b7dee4220-Statement", + "statement": "0x561b7dee4230-EndIfStmt", + "source": "endif" + }, + { + "id": "0x561b7dee4230-EndIfStmt" + }, + { + "id": "0x561b7dee3370-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dee3370-ExecutableConstruct" + }, + { + "id": "0x561b7dee3370-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dee3370-Statement" + }, + { + "id": "0x561b7dee3370-Statement", + "statement": "0x561b7dee3380-ActionStmt", + "label": "60", + "source": "60continue" + }, + { + "id": "0x561b7dee3380-ActionStmt", + "variantKey": "ContinueStmt", + "ContinueStmt": "0x561b7dee3380-ContinueStmt" + }, + { + "id": "0x561b7dee3380-ContinueStmt" + }, + { + "id": "0x561b7ded97e0-Statement", + "statement": "0x561b7ded97f0-EndDoStmt", + "source": "" + }, + { + "id": "0x561b7ded97f0-EndDoStmt" + }, + { + "id": "0x561b7dee2590-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dee2590-ExecutableConstruct" + }, + { + "id": "0x561b7dee2590-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dee2590-Statement" + }, + { + "id": "0x561b7dee2590-Statement", + "statement": "0x561b7dee25a0-ActionStmt", + "source": "return" + }, + { + "id": "0x561b7dee25a0-ActionStmt", + "variantKey": "ReturnStmt", + "ReturnStmt": "0x561b7ded2a70-ReturnStmt" + }, + { + "id": "0x561b7ded2a70-ReturnStmt" + }, + { + "id": "0x561b7dee5ae0-Statement", + "statement": "0x561b7dee5af0-EndSubroutineStmt", + "source": "endsubroutinesub1" + }, + { + "id": "0x561b7dee5af0-EndSubroutineStmt", + "Name": "0x561b7dee5af0-Name" + }, + { + "id": "0x561b7dee5af0-Name", + "source": "sub1" + }, + { + "id": "0x561b7ded22f0-ProgramUnit", + "variantKey": "SubroutineSubprogram", + "SubroutineSubprogram": "0x561b7dee7e70-SubroutineSubprogram" + }, + { + "id": "0x561b7dee7e70-SubroutineSubprogram", + "Statement": "0x561b7dee7fb8-Statement", + "SpecificationPart": "0x561b7dee7f10-SpecificationPart", + "ExecutionPart": "0x561b7dee7ef8-ExecutionPart", + "Statement": "0x561b7dee7e70-Statement" + }, + { + "id": "0x561b7dee7fb8-Statement", + "statement": "0x561b7dee7fc8-SubroutineStmt", + "source": "subroutinesub2(error,a,b,c)" + }, + { + "id": "0x561b7dee7fc8-SubroutineStmt", + "Name": "0x561b7dee8000-Name", + "DummyArg": [ + "0x561b7ded36b0-DummyArg", + "0x561b7ded3610-DummyArg", + "0x561b7ded35d0-DummyArg", + "0x561b7ded3650-DummyArg" + ] + }, + { + "id": "0x561b7dee8000-Name", + "source": "sub2" + }, + { + "id": "0x561b7ded36b0-DummyArg", + "variantKey": "Name", + "Name": "0x561b7ded36b0-Name" + }, + { + "id": "0x561b7ded36b0-Name", + "source": "error" + }, + { + "id": "0x561b7ded3610-DummyArg", + "variantKey": "Name", + "Name": "0x561b7ded3610-Name" + }, + { + "id": "0x561b7ded3610-Name", + "source": "a" + }, + { + "id": "0x561b7ded35d0-DummyArg", + "variantKey": "Name", + "Name": "0x561b7ded35d0-Name" + }, + { + "id": "0x561b7ded35d0-Name", + "source": "b" + }, + { + "id": "0x561b7ded3650-DummyArg", + "variantKey": "Name", + "Name": "0x561b7ded3650-Name" + }, + { + "id": "0x561b7ded3650-Name", + "source": "c" + }, + { + "id": "0x561b7dee7f10-SpecificationPart", + "ImplicitPart": "0x561b7dee7f28-ImplicitPart", + "DeclarationConstruct": [ + "0x561b7dee27b0-DeclarationConstruct", + "0x561b7dee1500-DeclarationConstruct", + "0x561b7dee46e0-DeclarationConstruct" + ] + }, + { + "id": "0x561b7dee7f28-ImplicitPart" + }, + { + "id": "0x561b7dee27b0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x561b7dee27b0-SpecificationConstruct" + }, + { + "id": "0x561b7dee27b0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dee27b0-Statement" + }, + { + "id": "0x561b7dee27b0-Statement", + "statement": "0x561b7dee2720-TypeDeclarationStmt", + "source": "integer*4error" + }, + { + "id": "0x561b7dee2720-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x561b7dee2750-DeclarationTypeSpec", + "EntityDecl": [ + "0x561b7dee5cd0-EntityDecl" + ] + }, + { + "id": "0x561b7dee2750-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x561b7dee2750-IntrinsicTypeSpec" + }, + { + "id": "0x561b7dee2750-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x561b7dee2750-IntegerTypeSpec" + }, + { + "id": "0x561b7dee2750-IntegerTypeSpec", + "KindSelector": "0x561b7dee2750-KindSelector" + }, + { + "id": "0x561b7dee2750-KindSelector", + "variantKey": "StarSize", + "StarSize": "0x561b7dee2750-StarSize" + }, + { + "id": "0x561b7dee2750-StarSize", + "uint64_t": "4" + }, + { + "id": "0x561b7dee5cd0-EntityDecl", + "Name": "0x561b7dee5d88-Name" + }, + { + "id": "0x561b7dee5d88-Name", + "source": "error" + }, + { + "id": "0x561b7dee1500-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x561b7dee1500-SpecificationConstruct" + }, + { + "id": "0x561b7dee1500-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dee1500-Statement" + }, + { + "id": "0x561b7dee1500-Statement", + "statement": "0x561b7dec5fe0-TypeDeclarationStmt", + "source": "complex*8a,b,c" + }, + { + "id": "0x561b7dec5fe0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x561b7dec6010-DeclarationTypeSpec", + "EntityDecl": [ + "0x561b7dee4350-EntityDecl", + "0x561b7dec62c0-EntityDecl", + "0x561b7dee58b0-EntityDecl" + ] + }, + { + "id": "0x561b7dec6010-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x561b7dec6010-IntrinsicTypeSpec" + }, + { + "id": "0x561b7dec6010-IntrinsicTypeSpec", + "variantKey": "Complex", + "Complex": "0x561b7dec6010-Complex" + }, + { + "id": "0x561b7dec6010-Complex", + "KindSelector": "0x561b7dec6010-KindSelector" + }, + { + "id": "0x561b7dec6010-KindSelector", + "variantKey": "StarSize", + "StarSize": "0x561b7dec6010-StarSize" + }, + { + "id": "0x561b7dec6010-StarSize", + "uint64_t": "8" + }, + { + "id": "0x561b7dee4350-EntityDecl", + "Name": "0x561b7dee4408-Name" + }, + { + "id": "0x561b7dee4408-Name", + "source": "a" + }, + { + "id": "0x561b7dec62c0-EntityDecl", + "Name": "0x561b7dec6378-Name" + }, + { + "id": "0x561b7dec6378-Name", + "source": "b" + }, + { + "id": "0x561b7dee58b0-EntityDecl", + "Name": "0x561b7dee5968-Name" + }, + { + "id": "0x561b7dee5968-Name", + "source": "c" + }, + { + "id": "0x561b7dee46e0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x561b7dee46e0-SpecificationConstruct" + }, + { + "id": "0x561b7dee46e0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dee46e0-Statement" + }, + { + "id": "0x561b7dee46e0-Statement", + "statement": "0x561b7dee46f0-OtherSpecificationStmt", + "source": "dimensiona(10),b(10),c(10)" + }, + { + "id": "0x561b7dee46f0-OtherSpecificationStmt", + "variantKey": "DimensionStmt", + "DimensionStmt": "0x561b7ded2d10-DimensionStmt" + }, + { + "id": "0x561b7ded2d10-DimensionStmt", + "Declaration": [ + "0x561b7dee1c70-Declaration", + "0x561b7dee1830-Declaration", + "0x561b7dee26a0-Declaration" + ] + }, + { + "id": "0x561b7dee1c70-Declaration", + "Name": "0x561b7dee1ca0-Name", + "ArraySpec": "0x561b7dee1c70-ArraySpec" + }, + { + "id": "0x561b7dee1ca0-Name", + "source": "a" + }, + { + "id": "0x561b7dee1c70-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x561b7ded2b40-ExplicitShapeSpec" + ] + }, + { + "id": "0x561b7ded2b40-ExplicitShapeSpec", + "upper_bound": "0x561b7ded2b40-SpecificationExpr" + }, + { + "id": "0x561b7ded2b40-SpecificationExpr", + "Expr": "0x561b7dee4430-Expr" + }, + { + "id": "0x561b7dee4430-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dee4450-LiteralConstant" + }, + { + "id": "0x561b7dee4450-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dee4450-IntLiteralConstant" + }, + { + "id": "0x561b7dee4450-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x561b7dee1830-Declaration", + "Name": "0x561b7dee1860-Name", + "ArraySpec": "0x561b7dee1830-ArraySpec" + }, + { + "id": "0x561b7dee1860-Name", + "source": "b" + }, + { + "id": "0x561b7dee1830-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x561b7ded1f10-ExplicitShapeSpec" + ] + }, + { + "id": "0x561b7ded1f10-ExplicitShapeSpec", + "upper_bound": "0x561b7ded1f10-SpecificationExpr" + }, + { + "id": "0x561b7ded1f10-SpecificationExpr", + "Expr": "0x561b7dee4510-Expr" + }, + { + "id": "0x561b7dee4510-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dee4530-LiteralConstant" + }, + { + "id": "0x561b7dee4530-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dee4530-IntLiteralConstant" + }, + { + "id": "0x561b7dee4530-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x561b7dee26a0-Declaration", + "Name": "0x561b7dee26d0-Name", + "ArraySpec": "0x561b7dee26a0-ArraySpec" + }, + { + "id": "0x561b7dee26d0-Name", + "source": "c" + }, + { + "id": "0x561b7dee26a0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x561b7ded20a0-ExplicitShapeSpec" + ] + }, + { + "id": "0x561b7ded20a0-ExplicitShapeSpec", + "upper_bound": "0x561b7ded20a0-SpecificationExpr" + }, + { + "id": "0x561b7ded20a0-SpecificationExpr", + "Expr": "0x561b7dee45f0-Expr" + }, + { + "id": "0x561b7dee45f0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dee4610-LiteralConstant" + }, + { + "id": "0x561b7dee4610-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dee4610-IntLiteralConstant" + }, + { + "id": "0x561b7dee4610-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x561b7dee7ef8-ExecutionPart", + "ExecutionPartConstruct": [ + "0x561b7dee54e0-ExecutionPartConstruct", + "0x561b7dee0f20-ExecutionPartConstruct" + ] + }, + { + "id": "0x561b7dee7ef8-ExecutionPartConstruct" + }, + { + "id": "0x561b7dee54e0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dee54e0-ExecutableConstruct" + }, + { + "id": "0x561b7dee54e0-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x561b7df85680-DoConstruct" + }, + { + "id": "0x561b7df85680-DoConstruct", + "Statement": "0x561b7df856d8-Statement", + "ExecutionPartConstruct": [ + "0x561b7dee5480-ExecutionPartConstruct", + "0x561b7dee5740-ExecutionPartConstruct" + ], + "Statement": "0x561b7df85680-Statement" + }, + { + "id": "0x561b7df856d8-Statement", + "statement": "0x561b7df856e8-NonLabelDoStmt", + "source": "do70i=1,10,1" + }, + { + "id": "0x561b7df856e8-NonLabelDoStmt", + "LoopControl": "0x561b7df856e8-LoopControl" + }, + { + "id": "0x561b7df856e8-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x561b7df856e8-LoopBounds" + }, + { + "id": "0x561b7df856e8-LoopBounds", + "var": "0x561b7df856e8-Name", + "lower": "0x561b7dee51d0-Expr", + "upper": "0x561b7dee52b0-Expr", + "step": "0x561b7dee5390-Expr" + }, + { + "id": "0x561b7df856e8-Name", + "source": "i" + }, + { + "id": "0x561b7dee51d0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dee51f0-LiteralConstant" + }, + { + "id": "0x561b7dee51f0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dee51f0-IntLiteralConstant" + }, + { + "id": "0x561b7dee51f0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x561b7dee52b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dee52d0-LiteralConstant" + }, + { + "id": "0x561b7dee52d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dee52d0-IntLiteralConstant" + }, + { + "id": "0x561b7dee52d0-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x561b7dee5390-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dee53b0-LiteralConstant" + }, + { + "id": "0x561b7dee53b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dee53b0-IntLiteralConstant" + }, + { + "id": "0x561b7dee53b0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x561b7df856c0-ExecutionPartConstruct" + }, + { + "id": "0x561b7dee5480-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dee5480-ExecutableConstruct" + }, + { + "id": "0x561b7dee5480-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x561b7dee66d0-IfConstruct" + }, + { + "id": "0x561b7dee66d0-IfConstruct", + "Statement": "0x561b7dee67a0-Statement", + "ExecutionPartConstruct": [ + "0x561b7dee49f0-ExecutionPartConstruct" + ], + "Statement": "0x561b7dee66d0-Statement" + }, + { + "id": "0x561b7dee67a0-Statement", + "statement": "0x561b7dee67b0-IfThenStmt", + "source": "if(c(i).ne.a(i)-b(i))then" + }, + { + "id": "0x561b7dee67b0-IfThenStmt", + "Expr": "0x561b7dee6320-Expr" + }, + { + "id": "0x561b7dee6320-Expr", + "variantKey": "NE", + "NE": "0x561b7dee6340-NE" + }, + { + "id": "0x561b7dee6340-NE", + "left": "0x561b7dee6240-Expr", + "right": "0x561b7dee6160-Expr", + "op": "NE" + }, + { + "id": "0x561b7dee6240-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dee9b10-Designator" + }, + { + "id": "0x561b7dee9b10-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dee9b20-DataRef" + }, + { + "id": "0x561b7dee9b20-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x561b7df8a710-ArrayElement" + }, + { + "id": "0x561b7df8a710-ArrayElement", + "base": "0x561b7df8a710-DataRef", + "subscripts": [ + "0x561b7df8b5d0-SectionSubscript" + ] + }, + { + "id": "0x561b7df8a710-DataRef", + "variantKey": "Name", + "Name": "0x561b7df8a710-Name" + }, + { + "id": "0x561b7df8a710-Name", + "source": "c" + }, + { + "id": "0x561b7df8b5d0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x561b7dee3740-Expr" + }, + { + "id": "0x561b7dee3740-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dee4aa0-Designator" + }, + { + "id": "0x561b7dee4aa0-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dee4ab0-DataRef" + }, + { + "id": "0x561b7dee4ab0-DataRef", + "variantKey": "Name", + "Name": "0x561b7dee4ab0-Name" + }, + { + "id": "0x561b7dee4ab0-Name", + "source": "i" + }, + { + "id": "0x561b7dee6160-Expr", + "variantKey": "Subtract", + "Subtract": "0x561b7dee6180-Subtract" + }, + { + "id": "0x561b7dee6180-Subtract", + "left": "0x561b7dee4e30-Expr", + "right": "0x561b7dee4d50-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x561b7dee4e30-Expr", + "variantKey": "Designator", + "Designator": "0x561b7df8b180-Designator" + }, + { + "id": "0x561b7df8b180-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7df8b190-DataRef" + }, + { + "id": "0x561b7df8b190-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x561b7df8a8e0-ArrayElement" + }, + { + "id": "0x561b7df8a8e0-ArrayElement", + "base": "0x561b7df8a8e0-DataRef", + "subscripts": [ + "0x561b7dee64c0-SectionSubscript" + ] + }, + { + "id": "0x561b7df8a8e0-DataRef", + "variantKey": "Name", + "Name": "0x561b7df8a8e0-Name" + }, + { + "id": "0x561b7df8a8e0-Name", + "source": "a" + }, + { + "id": "0x561b7dee64c0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x561b7dee5530-Expr" + }, + { + "id": "0x561b7dee5530-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dee56d0-Designator" + }, + { + "id": "0x561b7dee56d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dee56e0-DataRef" + }, + { + "id": "0x561b7dee56e0-DataRef", + "variantKey": "Name", + "Name": "0x561b7dee56e0-Name" + }, + { + "id": "0x561b7dee56e0-Name", + "source": "i" + }, + { + "id": "0x561b7dee4d50-Expr", + "variantKey": "Designator", + "Designator": "0x561b7df8b6c0-Designator" + }, + { + "id": "0x561b7df8b6c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7df8b6d0-DataRef" + }, + { + "id": "0x561b7df8b6d0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x561b7deea6b0-ArrayElement" + }, + { + "id": "0x561b7deea6b0-ArrayElement", + "base": "0x561b7deea6b0-DataRef", + "subscripts": [ + "0x561b7dee4d00-SectionSubscript" + ] + }, + { + "id": "0x561b7deea6b0-DataRef", + "variantKey": "Name", + "Name": "0x561b7deea6b0-Name" + }, + { + "id": "0x561b7deea6b0-Name", + "source": "b" + }, + { + "id": "0x561b7dee4d00-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x561b7dee4730-Expr" + }, + { + "id": "0x561b7dee4730-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dee0be0-Designator" + }, + { + "id": "0x561b7dee0be0-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dee0bf0-DataRef" + }, + { + "id": "0x561b7dee0bf0-DataRef", + "variantKey": "Name", + "Name": "0x561b7dee0bf0-Name" + }, + { + "id": "0x561b7dee0bf0-Name", + "source": "i" + }, + { + "id": "0x561b7dee6788-ExecutionPartConstruct" + }, + { + "id": "0x561b7dee49f0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dee49f0-ExecutableConstruct" + }, + { + "id": "0x561b7dee49f0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dee49f0-Statement" + }, + { + "id": "0x561b7dee49f0-Statement", + "statement": "0x561b7dee4a00-ActionStmt", + "source": "error=error+1" + }, + { + "id": "0x561b7dee4a00-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x561b7dee50c0-AssignmentStmt" + }, + { + "id": "0x561b7dee50c0-AssignmentStmt", + "Variable": "0x561b7dee51a0-Variable", + "Expr": "0x561b7dee50d0-Expr" + }, + { + "id": "0x561b7dee51a0-Variable", + "variantKey": "Designator", + "Designator": "0x561b7dee5670-Designator" + }, + { + "id": "0x561b7dee5670-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dee5680-DataRef" + }, + { + "id": "0x561b7dee5680-DataRef", + "variantKey": "Name", + "Name": "0x561b7dee5680-Name" + }, + { + "id": "0x561b7dee5680-Name", + "source": "error" + }, + { + "id": "0x561b7dee50d0-Expr", + "variantKey": "Add", + "Add": "0x561b7dee50f0-Add" + }, + { + "id": "0x561b7dee50f0-Add", + "left": "0x561b7dee65f0-Expr", + "right": "0x561b7dee6510-Expr", + "op": "ADD" + }, + { + "id": "0x561b7dee65f0-Expr", + "variantKey": "Designator", + "Designator": "0x561b7dee1930-Designator" + }, + { + "id": "0x561b7dee1930-Designator", + "variantKey": "DataRef", + "DataRef": "0x561b7dee1940-DataRef" + }, + { + "id": "0x561b7dee1940-DataRef", + "variantKey": "Name", + "Name": "0x561b7dee1940-Name" + }, + { + "id": "0x561b7dee1940-Name", + "source": "error" + }, + { + "id": "0x561b7dee6510-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561b7dee6530-LiteralConstant" + }, + { + "id": "0x561b7dee6530-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561b7dee6530-IntLiteralConstant" + }, + { + "id": "0x561b7dee6530-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x561b7dee66d0-Statement", + "statement": "0x561b7dee66e0-EndIfStmt", + "source": "endif" + }, + { + "id": "0x561b7dee66e0-EndIfStmt" + }, + { + "id": "0x561b7dee5740-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dee5740-ExecutableConstruct" + }, + { + "id": "0x561b7dee5740-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dee5740-Statement" + }, + { + "id": "0x561b7dee5740-Statement", + "statement": "0x561b7dee5750-ActionStmt", + "label": "70", + "source": "70continue" + }, + { + "id": "0x561b7dee5750-ActionStmt", + "variantKey": "ContinueStmt", + "ContinueStmt": "0x561b7dee5750-ContinueStmt" + }, + { + "id": "0x561b7dee5750-ContinueStmt" + }, + { + "id": "0x561b7df85680-Statement", + "statement": "0x561b7df85690-EndDoStmt", + "source": "" + }, + { + "id": "0x561b7df85690-EndDoStmt" + }, + { + "id": "0x561b7dee0f20-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561b7dee0f20-ExecutableConstruct" + }, + { + "id": "0x561b7dee0f20-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561b7dee0f20-Statement" + }, + { + "id": "0x561b7dee0f20-Statement", + "statement": "0x561b7dee0f30-ActionStmt", + "source": "return" + }, + { + "id": "0x561b7dee0f30-ActionStmt", + "variantKey": "ReturnStmt", + "ReturnStmt": "0x561b7ded2ef0-ReturnStmt" + }, + { + "id": "0x561b7ded2ef0-ReturnStmt" + }, + { + "id": "0x561b7dee7e70-Statement", + "statement": "0x561b7dee7e80-EndSubroutineStmt", + "source": "endsubroutinesub2" + }, + { + "id": "0x561b7dee7e80-EndSubroutineStmt", + "Name": "0x561b7dee7e80-Name" + }, + { + "id": "0x561b7dee7e80-Name", + "source": "sub2" + } + ], + "comments": [ + { + "text": "", + "stmtId": "0x561b7dedbd98-Statement", + "trailing": false + }, + { + "text": "", + "stmtId": "0x561b7deca550-Statement", + "trailing": false + }, + { + "text": "", + "stmtId": "0x561b7ded9718-Statement", + "trailing": false + }, + { + "text": "", + "stmtId": "0x561b7dedf250-Statement", + "trailing": false + }, + { + "text": "", + "stmtId": "0x561b7dee5c28-Statement", + "trailing": false + }, + { + "text": "", + "stmtId": "0x561b7ded9838-Statement", + "trailing": false + }, + { + "text": "", + "stmtId": "0x561b7dee2590-Statement", + "trailing": false + }, + { + "text": "", + "stmtId": "0x561b7dee7fb8-Statement", + "trailing": false + }, + { + "text": "", + "stmtId": "0x561b7df856d8-Statement", + "trailing": false + }, + { + "text": "", + "stmtId": "0x561b7dee0f20-Statement", + "trailing": false + } + ], + "enums": { + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "Fortran::common::ImportKind": [ + "Default", + "Only", + "None", + "All" + ], + "Fortran::common::OmpDependenceKind": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::common::OmpMemoryOrderType": [ + "Acq_Rel", + "Acquire", + "Relaxed", + "Release", + "Seq_Cst" + ], + "Fortran::common::OpenACCDeviceType": [ + "Star", + "Default", + "Nvidia", + "Radeon", + "Host", + "Multicore", + "None" + ], + "Fortran::parser::AccDataModifier::Modifier": [ + "ReadOnly", + "Zero" + ], + "Fortran::parser::AccessSpec::Kind": [ + "Public", + "Private" + ], + "Fortran::parser::BindEntity::Kind": [ + "Object", + "Common" + ], + "Fortran::parser::CompilerDirective::VectorLength::Kind": [ + "Auto", + "Fixed", + "Scalable" + ], + "Fortran::parser::ConnectSpec::CharExpr::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Encoding", + "Form", + "Pad", + "Position", + "Round", + "Sign", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::DefinedOperator::IntrinsicOperator": [ + "Power", + "Multiply", + "Divide", + "Add", + "Subtract", + "Concat", + "LT", + "LE", + "EQ", + "NE", + "GE", + "GT", + "NOT", + "AND", + "OR", + "EQV", + "NEQV" + ], + "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec": [ + "External", + "Type" + ], + "Fortran::parser::InquireSpec::CharVar::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Direct", + "Encoding", + "Form", + "Formatted", + "Iomsg", + "Name", + "Pad", + "Position", + "Read", + "Readwrite", + "Round", + "Sequential", + "Sign", + "Stream", + "Status", + "Unformatted", + "Write", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::InquireSpec::IntVar::Kind": [ + "Iostat", + "Nextrec", + "Number", + "Pos", + "Recl", + "Size" + ], + "Fortran::parser::InquireSpec::LogVar::Kind": [ + "Exist", + "Named", + "Opened", + "Pending" + ], + "Fortran::parser::IntentSpec::Intent": [ + "In", + "Out", + "InOut" + ], + "Fortran::parser::IoControlSpec::CharExpr::Kind": [ + "Advance", + "Blank", + "Decimal", + "Delim", + "Pad", + "Round", + "Sign" + ], + "Fortran::parser::ReductionOperator::Operator": [ + "Plus", + "Multiply", + "Max", + "Min", + "Iand", + "Ior", + "Ieor", + "And", + "Or", + "Eqv", + "Neqv" + ], + "Fortran::parser::OmpAccessGroup::Value": [ + "Cgroup" + ], + "Fortran::parser::OmpAdjustArgsClause::OmpAdjustOp::Value": [ + "Nothing", + "Need_Device_Ptr" + ], + "Fortran::parser::OmpAlwaysModifier::Value": [ + "Always" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpAttachModifier::Value": [ + "Always", + "Never", + "Auto" + ], + "Fortran::parser::OmpAutomapModifier::Value": [ + "Automap" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpCloseModifier::Value": [ + "Close" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default", + "Present" + ], + "Fortran::parser::OmpDeleteModifier::Value": [ + "Delete" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpDirectiveSpecification::Flag": [ + "DeprecatedSyntax", + "CrossesLabelDo" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpInteropType::Value": [ + "Target", + "Targetsync" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "Storage", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpObject::Invalid::Kind": [ + "BlankCommonBlock" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpPresentModifier::Value": [ + "Present" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpRefModifier::Value": [ + "Ref_Ptee", + "Ref_Ptr", + "Ref_Ptr_Ptee" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpSelfModifier::Value": [ + "Self" + ], + "Fortran::parser::OmpSeverityClause::SevLevel": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpThreadsetClause::ThreadsetPolicy": [ + "Omp_Pool", + "Omp_Team" + ], + "Fortran::parser::OmpTraitSelectorName::Value": [ + "Arch", + "Atomic_Default_Mem_Order", + "Condition", + "Device_Num", + "Extension", + "Isa", + "Kind", + "Requires", + "Simd", + "Uid", + "Vendor" + ], + "Fortran::parser::OmpTraitSetSelectorName::Value": [ + "Construct", + "Device", + "Implementation", + "Target_Device", + "User" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpxHoldModifier::Value": [ + "Ompx_Hold" + ], + "Fortran::parser::ProcedureStmt::Kind": [ + "ModuleProcedure", + "Procedure" + ], + "Fortran::parser::SavedEntity::Kind": [ + "Entity", + "Common" + ], + "Fortran::parser::StopStmt::Kind": [ + "Stop", + "ErrorStop" + ], + "Fortran::parser::UseStmt::ModuleNature": [ + "Intrinsic", + "Non_Intrinsic" + ] + } +} diff --git a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java index 976bc879..ed427e3f 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -740,4 +740,16 @@ void testFujitsu0001_0011Native() { testNative("fujitsu/0001/0001_0011.f"); } } + + @Test + void testFujitsu0001_0032() { + testJson("fujitsu/0001/0001_0032.json"); + } + + @Test + void testFujitsu0001_0032Native() { + if (SpecsPlatforms.isLinux()) { + testNative("fujitsu/0001/0001_0032.f"); + } + } } From 3080470e2154b8df410e1086893db3091c2e8c51 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 22 Jul 2026 13:07:34 +0100 Subject: [PATCH 062/260] Define AST nodes for complex part --- .../fortran/ast/nodes/expr/ComplexPart.java | 19 ++++++++++++++++++ .../ast/nodes/expr/IntComplexPart.java | 16 +++++++++++++++ .../ast/nodes/expr/NamedComplexPart.java | 16 +++++++++++++++ .../fortran/ast/nodes/expr/NamedLiteral.java | 20 +++++++++++++++++++ .../ast/nodes/expr/RealComplexPart.java | 16 +++++++++++++++ 5 files changed, 87 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/ComplexPart.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/IntComplexPart.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/NamedComplexPart.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/NamedLiteral.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/RealComplexPart.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/ComplexPart.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/ComplexPart.java new file mode 100644 index 00000000..6e6343ca --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/ComplexPart.java @@ -0,0 +1,19 @@ +package pt.up.fe.specs.fortran.ast.nodes.expr; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class ComplexPart extends FortranNode { + public ComplexPart(DataStore data, Collection children) { + super(data, children); + } + + public abstract LiteralT getLiteral(); + + @Override + public String getCode() { + return getLiteral().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/IntComplexPart.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/IntComplexPart.java new file mode 100644 index 00000000..553386e4 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/IntComplexPart.java @@ -0,0 +1,16 @@ +package pt.up.fe.specs.fortran.ast.nodes.expr; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class IntComplexPart extends ComplexPart { + public IntComplexPart(DataStore data, Collection children) { + super(data, children); + } + + public IntLiteral getLiteral() { + return getChild(IntLiteral.class, 0); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/NamedComplexPart.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/NamedComplexPart.java new file mode 100644 index 00000000..746565a4 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/NamedComplexPart.java @@ -0,0 +1,16 @@ +package pt.up.fe.specs.fortran.ast.nodes.expr; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class NamedComplexPart extends ComplexPart { + public NamedComplexPart(DataStore data, Collection children) { + super(data, children); + } + + public NamedLiteral getLiteral() { + return getChild(NamedLiteral.class, 0); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/NamedLiteral.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/NamedLiteral.java new file mode 100644 index 00000000..8b40193c --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/NamedLiteral.java @@ -0,0 +1,20 @@ +package pt.up.fe.specs.fortran.ast.nodes.expr; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class NamedLiteral extends Literal { + public NamedLiteral(DataStore data, Collection children) { + super(data, children); + } + + public String getName() { + return getLiteral(); + } + + public String getCode() { + return getLiteral(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/RealComplexPart.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/RealComplexPart.java new file mode 100644 index 00000000..de94bb29 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/RealComplexPart.java @@ -0,0 +1,16 @@ +package pt.up.fe.specs.fortran.ast.nodes.expr; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class RealComplexPart extends ComplexPart { + public RealComplexPart(DataStore data, Collection children) { + super(data, children); + } + + public RealLiteral getLiteral() { + return getChild(RealLiteral.class, 0); + } +} From 063d9293147a4f71dcbb22b7cce728f1e4b99c94 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 22 Jul 2026 13:11:14 +0100 Subject: [PATCH 063/260] Define AST node for complex literal --- .../ast/nodes/expr/ComplexLiteral.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/ComplexLiteral.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/ComplexLiteral.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/ComplexLiteral.java new file mode 100644 index 00000000..cee7c2d6 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/ComplexLiteral.java @@ -0,0 +1,27 @@ +package pt.up.fe.specs.fortran.ast.nodes.expr; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class ComplexLiteral extends Literal { + public ComplexLiteral(DataStore data, Collection children) { + super(data, children); + } + + public ComplexPart getRealPart() { + return getChild(ComplexPart.class, 0); + } + + public ComplexPart getImaginaryPart() { + return getChild(ComplexPart.class, 1); + } + + public String getCode() { + var real = getRealPart(); + var imag = getImaginaryPart(); + + return "(" + real.getCode() + "," + optSpc() + imag.getCode() + ")"; + } +} From 85656711602a384065704e68117b4a8e646a2247 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 22 Jul 2026 13:21:50 +0100 Subject: [PATCH 064/260] Create complex literal nodes mapping to classes --- .../up/fe/specs/fortran/parser/FlangName.java | 3 +++ .../fe/specs/fortran/parser/FlangToClass.java | 20 ++++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index e73487cd..0109d2d8 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -123,6 +123,9 @@ public enum FlangName implements StringProvider { ACTUAL_ARG_SPEC, ACTUAL_ARG, CALL, + NAMED_LITERAL, + COMPLEX_PART, + COMPLEX_LITERAL_CONSTANT, // ARRAYs ARRAY_CONSTRUCTOR, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index e8d2338d..64d95feb 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -144,6 +144,10 @@ public class FlangToClass { NAME_TO_CLASS.put(FlangName.ACTUAL_ARG_SPEC, Argument.class); NAME_TO_CLASS.put(FlangName.AC_IMPLIED_DO, AcImpliedDo.class); NAME_TO_CLASS.put(FlangName.AC_IMPLIED_DO_CONTROL, AcImpliedDoControl.class); + NAME_TO_CLASS.put(FlangName.NAMED_CONSTANT, NamedLiteral.class); + NAME_TO_CLASS.put(FlangName.COMPLEX_LITERAL_CONSTANT, ComplexLiteral.class); + NAME_TO_CLASS.put(FlangName.COMPLEX_PART, ComplexPart.class); + NAME_TO_CONCRETE_CLASS.put(FlangName.COMPLEX_PART, FlangToClass::chooseComplexPart); /// TYPEs NAME_TO_CLASS.put(FlangName.INTEGER_TYPE_SPEC, IntegerType.class); @@ -186,9 +190,23 @@ public class FlangToClass { } private static Class chooseParameter(FlangAttributes attrs) { - return attrs.has("Name") ? NamedParameter.class : StarParameter.class; + return switch (attrs.getVariantKey()) { + case "Name" -> NamedParameter.class; + case "Star" -> StarParameter.class; + default -> throw new RuntimeException("Unknown variant: " + attrs.getVariantKey()); + }; } + private static Class> chooseComplexPart(FlangAttributes attrs) { + return switch (attrs.getVariantKey()) { + case "SignedIntLiteralConstant" -> IntComplexPart.class; + case "SignedRealLiteralConstant" -> RealComplexPart.class; + case "NamedConstant" -> NamedComplexPart.class; + default -> throw new RuntimeException("Unknown variant: " + attrs.getVariantKey()); + }; + } + + public static boolean isClass(String type) { return FlangName.convertTry(type).map(NAME_TO_CLASS::containsKey).orElse(false); } From 3dc04d7b395c783a82fb24d00d4a7df523840327 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 22 Jul 2026 14:44:04 +0100 Subject: [PATCH 065/260] Add complex literal test --- .../ast/nodes/expr/RealComplexPart.java | 2 +- .../parser/expr/complex_literal.expected.f90 | 19 +++++++++++++++++++ .../fortran/parser/expr/complex_literal.f90 | 19 +++++++++++++++++++ .../fortran/parser/FortranParserTest.java | 12 ++++++++++++ 4 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 FortranParser/resources-test/fortran/parser/expr/complex_literal.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/expr/complex_literal.f90 diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/RealComplexPart.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/RealComplexPart.java index de94bb29..207d5ce6 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/RealComplexPart.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/RealComplexPart.java @@ -5,7 +5,7 @@ import java.util.Collection; -public abstract class RealComplexPart extends ComplexPart { +public class RealComplexPart extends ComplexPart { public RealComplexPart(DataStore data, Collection children) { super(data, children); } diff --git a/FortranParser/resources-test/fortran/parser/expr/complex_literal.expected.f90 b/FortranParser/resources-test/fortran/parser/expr/complex_literal.expected.f90 new file mode 100644 index 00000000..b6232a6f --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/expr/complex_literal.expected.f90 @@ -0,0 +1,19 @@ +PROGRAM COMPLEX_LITERAL + USE, INTRINSIC :: iso_fortran_env, ONLY: sp => real32, dp => real64 + + ! 1. Basic Default Real Literals + COMPLEX c_default = (3.0, 4.0) + + ! 2. Integer Components (automatically converted to real) + COMPLEX c_int = (1, -2) + + ! 3. Scientific / Exponential Notation + COMPLEX c_exp = (1.5e2, -2.0e-1) ! Represents (150.0, -0.2) + + ! 4. Double Precision (using 'd' exponent notation) + COMPLEX(dp) c_double_d = (1.0d0, 3.141592653589793d0) + + ! 5. Kind Parameter Suffixes (Modern Standard) + COMPLEX(dp) c_double_kind = (2.5_dp, -5.5_dp) + COMPLEX(sp) c_single_kind = (1.0_sp, 0.5_sp) +END PROGRAM COMPLEX_LITERAL \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/expr/complex_literal.f90 b/FortranParser/resources-test/fortran/parser/expr/complex_literal.f90 new file mode 100644 index 00000000..c93349b8 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/expr/complex_literal.f90 @@ -0,0 +1,19 @@ +program complex_literals + use, intrinsic :: iso_fortran_env, only: sp => real32, dp => real64 + + ! 1. Basic Default Real Literals + complex :: c_default = (3.0, 4.0) + + ! 2. Integer Components (automatically converted to real) + complex :: c_int = (1, -2) + + ! 3. Scientific / Exponential Notation + complex :: c_exp = (1.5e2, -2.0e-1) ! Represents (150.0, -0.2) + + ! 4. Double Precision (using 'd' exponent notation) + complex(dp) :: c_double_d = (1.0d0, 3.141592653589793d0) + + ! 5. Kind Parameter Suffixes (Modern Standard) + complex(dp) :: c_double_kind = (2.5_dp, -5.5_dp) + complex(sp) :: c_single_kind = (1.0_sp, 0.5_sp) +end program complex_literals \ No newline at end of file diff --git a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java index ed427e3f..ee10aeb9 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -560,6 +560,18 @@ void testReturnNative() { } } + @Test + void testComplexLiteral() { + testJson("expr/complex_literal.json"); + } + + @Test + void testComplexLiteralNative() { + if (SpecsPlatforms.isLinux()) { + testNative("expr/complex_literal.f90"); + } + } + @Test void testFujitsu0000_0000() { testJson("fujitsu/0000/0000_0000.json"); From 3f39eb85476dad4e74d7683d7e54d357d876f36e Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 22 Jul 2026 14:46:08 +0100 Subject: [PATCH 066/260] Add complex type node --- .../fortran/ast/nodes/type/ComplexType.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/ComplexType.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/ComplexType.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/ComplexType.java new file mode 100644 index 00000000..3f50eb26 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/ComplexType.java @@ -0,0 +1,18 @@ +package pt.up.fe.specs.fortran.ast.nodes.type; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.decl.KindSelector; + +import java.util.Collection; +import java.util.Optional; + +public class ComplexType extends IntrinsicType { + public ComplexType(DataStore data, Collection children) { + super(data, children); + } + + public Optional getKindSelector() { + return getChildOf(KindSelector.class); + } +} From 268aa54b087428e412dcadf63e9b8497ff6e7801 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 22 Jul 2026 14:49:08 +0100 Subject: [PATCH 067/260] Add code generation for complex type --- .../src/pt/up/fe/specs/fortran/ast/FortranKeyword.java | 1 + .../pt/up/fe/specs/fortran/ast/nodes/type/ComplexType.java | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java index 63d3302c..af93ba08 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -40,6 +40,7 @@ public enum FortranKeyword { DOUBLE, PRECISION, DIMENSION, + COMPLEX, // Declarations PARAMETER, diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/ComplexType.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/ComplexType.java index 3f50eb26..332d07be 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/ComplexType.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/ComplexType.java @@ -1,6 +1,7 @@ package pt.up.fe.specs.fortran.ast.nodes.type; import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.decl.KindSelector; @@ -15,4 +16,9 @@ public ComplexType(DataStore data, Collection children) { public Optional getKindSelector() { return getChildOf(KindSelector.class); } + + @Override + public String getCode() { + return keyword(FortranKeyword.COMPLEX) + getKindSelector().map(FortranNode::getCode).orElse(""); + } } From fde844e572563ac9b5d6b57a01154336fdb1ef66 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 22 Jul 2026 14:51:49 +0100 Subject: [PATCH 068/260] Upload dump for complex literal test --- .../fortran/parser/expr/complex_literal.json | 1236 +++++++++++++++++ 1 file changed, 1236 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/expr/complex_literal.json diff --git a/FortranParser/resources-test/fortran/parser/expr/complex_literal.json b/FortranParser/resources-test/fortran/parser/expr/complex_literal.json new file mode 100644 index 00000000..51d927ec --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/expr/complex_literal.json @@ -0,0 +1,1236 @@ +{ + "fileExtension": "f90", + "nodes": [ + { + "id": "0x55d7fb1b2f00-Program", + "ProgramUnit": [ + "0x55d7fb1eeef0-ProgramUnit" + ] + }, + { + "id": "0x55d7fb1eeef0-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x55d7fb1e3010-MainProgram" + }, + { + "id": "0x55d7fb1e3010-MainProgram", + "Statement": "0x55d7fb1e3158-Statement", + "SpecificationPart": "0x55d7fb1e30b0-SpecificationPart", + "ExecutionPart": "0x55d7fb1e3098-ExecutionPart", + "Statement": "0x55d7fb1e3010-Statement" + }, + { + "id": "0x55d7fb1e3158-Statement", + "statement": "0x55d7fb1e3168-ProgramStmt", + "source": "program COMPLEX_LITERALS" + }, + { + "id": "0x55d7fb1e3168-ProgramStmt", + "Name": "0x55d7fb1e3168-Name" + }, + { + "id": "0x55d7fb1e3168-Name", + "source": "COMPLEX_LITERALS" + }, + { + "id": "0x55d7fb1e30b0-SpecificationPart", + "Statement": [ + "0x55d7fb1edc00-Statement" + ], + "ImplicitPart": "0x55d7fb1e30c8-ImplicitPart", + "DeclarationConstruct": [ + "0x55d7fb1ddab0-DeclarationConstruct", + "0x55d7fb1ddd60-DeclarationConstruct", + "0x55d7fb1de010-DeclarationConstruct", + "0x55d7fb1dea30-DeclarationConstruct", + "0x55d7fb1dee20-DeclarationConstruct", + "0x55d7fb1df210-DeclarationConstruct" + ] + }, + { + "id": "0x55d7fb1edc00-Statement", + "statement": "0x55d7fb1f6cb0-UseStmt", + "source": "use, intrinsic :: iso_fortran_env, only: sp => real32, dp => real64" + }, + { + "id": "0x55d7fb1f6cb0-UseStmt", + "moduleName": "0x55d7fb1f6cb8-Name" + }, + { + "id": "0x55d7fb1f6cb0-ModuleNature = Intrinsic", + "disambiguation": "Fortran::parser::UseStmt::ModuleNature", + "value": "Intrinsic" + }, + { + "id": "0x55d7fb1f6cb8-Name", + "source": "iso_fortran_env" + }, + { + "id": "0x55d7fb1c0170-Only", + "variantKey": "Rename", + "Rename": "0x55d7fb1c0170-Rename" + }, + { + "id": "0x55d7fb1c0170-Rename", + "variantKey": "Names", + "Names": "0x55d7fb1c0170-Names" + }, + { + "id": "0x55d7fb1c0170-Names", + "Name": "0x55d7fb1c0170-Name" + }, + { + "id": "0x55d7fb1c0188-Name", + "source": "sp" + }, + { + "id": "0x55d7fb1c0170-Name", + "source": "real32" + }, + { + "id": "0x55d7fb1b14e0-Only", + "variantKey": "Rename", + "Rename": "0x55d7fb1b14e0-Rename" + }, + { + "id": "0x55d7fb1b14e0-Rename", + "variantKey": "Names", + "Names": "0x55d7fb1b14e0-Names" + }, + { + "id": "0x55d7fb1b14e0-Names", + "Name": "0x55d7fb1b14e0-Name" + }, + { + "id": "0x55d7fb1b14f8-Name", + "source": "dp" + }, + { + "id": "0x55d7fb1b14e0-Name", + "source": "real64" + }, + { + "id": "0x55d7fb1e30c8-ImplicitPart" + }, + { + "id": "0x55d7fb1ddab0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55d7fb1ddab0-SpecificationConstruct" + }, + { + "id": "0x55d7fb1ddab0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55d7fb1ddab0-Statement" + }, + { + "id": "0x55d7fb1ddab0-Statement", + "statement": "0x55d7fb1ef710-TypeDeclarationStmt", + "source": "complex :: c_default =(3.0, 4.0)" + }, + { + "id": "0x55d7fb1ef710-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55d7fb1ef740-DeclarationTypeSpec", + "EntityDecl": [ + "0x55d7fb1dd8e0-EntityDecl" + ] + }, + { + "id": "0x55d7fb1ef740-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55d7fb1ef740-IntrinsicTypeSpec" + }, + { + "id": "0x55d7fb1ef740-IntrinsicTypeSpec", + "variantKey": "Complex", + "Complex": "0x55d7fb1ef740-Complex" + }, + { + "id": "0x55d7fb1ef740-Complex" + }, + { + "id": "0x55d7fb1dd8e0-EntityDecl", + "Name": "0x55d7fb1dd998-Name", + "Initialization": "0x55d7fb1dd8e0-Initialization" + }, + { + "id": "0x55d7fb1dd998-Name", + "source": "c_default" + }, + { + "id": "0x55d7fb1dd8e0-Initialization", + "variantKey": "Expr", + "Expr": "0x55d7fb152790-Expr" + }, + { + "id": "0x55d7fb152790-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d7fb1527b0-LiteralConstant" + }, + { + "id": "0x55d7fb1527b0-LiteralConstant", + "variantKey": "ComplexLiteralConstant", + "ComplexLiteralConstant": "0x55d7fb1527b0-ComplexLiteralConstant" + }, + { + "id": "0x55d7fb1527b0-ComplexLiteralConstant", + "real": "0x55d7fb152800-ComplexPart", + "imaginary": "0x55d7fb1527b0-ComplexPart" + }, + { + "id": "0x55d7fb152800-ComplexPart", + "variantKey": "SignedRealLiteralConstant", + "SignedRealLiteralConstant": "0x55d7fb152800-SignedRealLiteralConstant" + }, + { + "id": "0x55d7fb152800-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55d7fb152800-RealLiteralConstant" + }, + { + "id": "0x55d7fb152800-RealLiteralConstant", + "real": "0x55d7fb152800-Real" + }, + { + "id": "0x55d7fb152800-Real", + "source": "3.0" + }, + { + "id": "0x55d7fb1527b0-ComplexPart", + "variantKey": "SignedRealLiteralConstant", + "SignedRealLiteralConstant": "0x55d7fb1527b0-SignedRealLiteralConstant" + }, + { + "id": "0x55d7fb1527b0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55d7fb1527b0-RealLiteralConstant" + }, + { + "id": "0x55d7fb1527b0-RealLiteralConstant", + "real": "0x55d7fb1527b0-Real" + }, + { + "id": "0x55d7fb1527b0-Real", + "source": "4.0" + }, + { + "id": "0x55d7fb1ddd60-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55d7fb1ddd60-SpecificationConstruct" + }, + { + "id": "0x55d7fb1ddd60-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55d7fb1ddd60-Statement" + }, + { + "id": "0x55d7fb1ddd60-Statement", + "statement": "0x55d7fb1ef790-TypeDeclarationStmt", + "source": "complex :: c_int =(1, -2)" + }, + { + "id": "0x55d7fb1ef790-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55d7fb1ef7c0-DeclarationTypeSpec", + "EntityDecl": [ + "0x55d7fb1ddc70-EntityDecl" + ] + }, + { + "id": "0x55d7fb1ef7c0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55d7fb1ef7c0-IntrinsicTypeSpec" + }, + { + "id": "0x55d7fb1ef7c0-IntrinsicTypeSpec", + "variantKey": "Complex", + "Complex": "0x55d7fb1ef7c0-Complex" + }, + { + "id": "0x55d7fb1ef7c0-Complex" + }, + { + "id": "0x55d7fb1ddc70-EntityDecl", + "Name": "0x55d7fb1ddd28-Name", + "Initialization": "0x55d7fb1ddc70-Initialization" + }, + { + "id": "0x55d7fb1ddd28-Name", + "source": "c_int" + }, + { + "id": "0x55d7fb1ddc70-Initialization", + "variantKey": "Expr", + "Expr": "0x55d7fb1ddb80-Expr" + }, + { + "id": "0x55d7fb1ddb80-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d7fb1ddba0-LiteralConstant" + }, + { + "id": "0x55d7fb1ddba0-LiteralConstant", + "variantKey": "ComplexLiteralConstant", + "ComplexLiteralConstant": "0x55d7fb1ddba0-ComplexLiteralConstant" + }, + { + "id": "0x55d7fb1ddba0-ComplexLiteralConstant", + "real": "0x55d7fb1ddbf0-ComplexPart", + "imaginary": "0x55d7fb1ddba0-ComplexPart" + }, + { + "id": "0x55d7fb1ddbf0-ComplexPart", + "variantKey": "SignedIntLiteralConstant", + "SignedIntLiteralConstant": "0x55d7fb1ddbf0-SignedIntLiteralConstant" + }, + { + "id": "0x55d7fb1ddbf0-SignedIntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55d7fb1ddba0-ComplexPart", + "variantKey": "SignedIntLiteralConstant", + "SignedIntLiteralConstant": "0x55d7fb1ddba0-SignedIntLiteralConstant" + }, + { + "id": "0x55d7fb1ddba0-SignedIntLiteralConstant", + "CharBlock": "-2" + }, + { + "id": "0x55d7fb1de010-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55d7fb1de010-SpecificationConstruct" + }, + { + "id": "0x55d7fb1de010-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55d7fb1de010-Statement" + }, + { + "id": "0x55d7fb1de010-Statement", + "statement": "0x55d7fb1ddb00-TypeDeclarationStmt", + "source": "complex :: c_exp =(1.5e2, -2.0e-1)" + }, + { + "id": "0x55d7fb1ddb00-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55d7fb1ddb30-DeclarationTypeSpec", + "EntityDecl": [ + "0x55d7fb1ddf20-EntityDecl" + ] + }, + { + "id": "0x55d7fb1ddb30-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55d7fb1ddb30-IntrinsicTypeSpec" + }, + { + "id": "0x55d7fb1ddb30-IntrinsicTypeSpec", + "variantKey": "Complex", + "Complex": "0x55d7fb1ddb30-Complex" + }, + { + "id": "0x55d7fb1ddb30-Complex" + }, + { + "id": "0x55d7fb1ddf20-EntityDecl", + "Name": "0x55d7fb1ddfd8-Name", + "Initialization": "0x55d7fb1ddf20-Initialization" + }, + { + "id": "0x55d7fb1ddfd8-Name", + "source": "c_exp" + }, + { + "id": "0x55d7fb1ddf20-Initialization", + "variantKey": "Expr", + "Expr": "0x55d7fb1dde30-Expr" + }, + { + "id": "0x55d7fb1dde30-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d7fb1dde50-LiteralConstant" + }, + { + "id": "0x55d7fb1dde50-LiteralConstant", + "variantKey": "ComplexLiteralConstant", + "ComplexLiteralConstant": "0x55d7fb1dde50-ComplexLiteralConstant" + }, + { + "id": "0x55d7fb1dde50-ComplexLiteralConstant", + "real": "0x55d7fb1ddea0-ComplexPart", + "imaginary": "0x55d7fb1dde50-ComplexPart" + }, + { + "id": "0x55d7fb1ddea0-ComplexPart", + "variantKey": "SignedRealLiteralConstant", + "SignedRealLiteralConstant": "0x55d7fb1ddea0-SignedRealLiteralConstant" + }, + { + "id": "0x55d7fb1ddea0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55d7fb1ddea0-RealLiteralConstant" + }, + { + "id": "0x55d7fb1ddea0-RealLiteralConstant", + "real": "0x55d7fb1ddea0-Real" + }, + { + "id": "0x55d7fb1ddea0-Real", + "source": "1.5e2" + }, + { + "id": "0x55d7fb1dde50-ComplexPart", + "variantKey": "SignedRealLiteralConstant", + "SignedRealLiteralConstant": "0x55d7fb1dde50-SignedRealLiteralConstant" + }, + { + "id": "0x55d7fb1dde50-SignedRealLiteralConstant", + "Sign": "negative", + "RealLiteralConstant": "0x55d7fb1dde50-RealLiteralConstant" + }, + { + "id": "0x55d7fb1dde88-Sign" + }, + { + "id": "0x55d7fb1dde50-RealLiteralConstant", + "real": "0x55d7fb1dde50-Real" + }, + { + "id": "0x55d7fb1dde50-Real", + "source": "2.0e-1" + }, + { + "id": "0x55d7fb1dea30-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55d7fb1dea30-SpecificationConstruct" + }, + { + "id": "0x55d7fb1dea30-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55d7fb1dea30-Statement" + }, + { + "id": "0x55d7fb1dea30-Statement", + "statement": "0x55d7fb1dddb0-TypeDeclarationStmt", + "source": "complex(dp) :: c_double_d =(1.0d0, 3.141592653589793d0)" + }, + { + "id": "0x55d7fb1dddb0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55d7fb1ddde0-DeclarationTypeSpec", + "EntityDecl": [ + "0x55d7fb1de860-EntityDecl" + ] + }, + { + "id": "0x55d7fb1ddde0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55d7fb1ddde0-IntrinsicTypeSpec" + }, + { + "id": "0x55d7fb1ddde0-IntrinsicTypeSpec", + "variantKey": "Complex", + "Complex": "0x55d7fb1ddde0-Complex" + }, + { + "id": "0x55d7fb1ddde0-Complex", + "KindSelector": "0x55d7fb1ddde0-KindSelector" + }, + { + "id": "0x55d7fb1ddde0-KindSelector", + "variantKey": "Expr", + "Expr": "0x55d7fb1de260-Expr" + }, + { + "id": "0x55d7fb1de260-Expr", + "variantKey": "Designator", + "Designator": "0x55d7fb1f6b90-Designator" + }, + { + "id": "0x55d7fb1f6b90-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d7fb1f6ba0-DataRef" + }, + { + "id": "0x55d7fb1f6ba0-DataRef", + "variantKey": "Name", + "Name": "0x55d7fb1f6ba0-Name" + }, + { + "id": "0x55d7fb1f6ba0-Name", + "source": "dp" + }, + { + "id": "0x55d7fb1de860-EntityDecl", + "Name": "0x55d7fb1de918-Name", + "Initialization": "0x55d7fb1de860-Initialization" + }, + { + "id": "0x55d7fb1de918-Name", + "source": "c_double_d" + }, + { + "id": "0x55d7fb1de860-Initialization", + "variantKey": "Expr", + "Expr": "0x55d7fb1de770-Expr" + }, + { + "id": "0x55d7fb1de770-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d7fb1de790-LiteralConstant" + }, + { + "id": "0x55d7fb1de790-LiteralConstant", + "variantKey": "ComplexLiteralConstant", + "ComplexLiteralConstant": "0x55d7fb1de790-ComplexLiteralConstant" + }, + { + "id": "0x55d7fb1de790-ComplexLiteralConstant", + "real": "0x55d7fb1de7e0-ComplexPart", + "imaginary": "0x55d7fb1de790-ComplexPart" + }, + { + "id": "0x55d7fb1de7e0-ComplexPart", + "variantKey": "SignedRealLiteralConstant", + "SignedRealLiteralConstant": "0x55d7fb1de7e0-SignedRealLiteralConstant" + }, + { + "id": "0x55d7fb1de7e0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55d7fb1de7e0-RealLiteralConstant" + }, + { + "id": "0x55d7fb1de7e0-RealLiteralConstant", + "real": "0x55d7fb1de7e0-Real" + }, + { + "id": "0x55d7fb1de7e0-Real", + "source": "1.0d0" + }, + { + "id": "0x55d7fb1de790-ComplexPart", + "variantKey": "SignedRealLiteralConstant", + "SignedRealLiteralConstant": "0x55d7fb1de790-SignedRealLiteralConstant" + }, + { + "id": "0x55d7fb1de790-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55d7fb1de790-RealLiteralConstant" + }, + { + "id": "0x55d7fb1de790-RealLiteralConstant", + "real": "0x55d7fb1de790-Real" + }, + { + "id": "0x55d7fb1de790-Real", + "source": "3.141592653589793d0" + }, + { + "id": "0x55d7fb1dee20-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55d7fb1dee20-SpecificationConstruct" + }, + { + "id": "0x55d7fb1dee20-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55d7fb1dee20-Statement" + }, + { + "id": "0x55d7fb1dee20-Statement", + "statement": "0x55d7fb1de060-TypeDeclarationStmt", + "source": "complex(dp) :: c_double_kind =(2.5_dp, -5.5_dp)" + }, + { + "id": "0x55d7fb1de060-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55d7fb1de090-DeclarationTypeSpec", + "EntityDecl": [ + "0x55d7fb1ded30-EntityDecl" + ] + }, + { + "id": "0x55d7fb1de090-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55d7fb1de090-IntrinsicTypeSpec" + }, + { + "id": "0x55d7fb1de090-IntrinsicTypeSpec", + "variantKey": "Complex", + "Complex": "0x55d7fb1de090-Complex" + }, + { + "id": "0x55d7fb1de090-Complex", + "KindSelector": "0x55d7fb1de090-KindSelector" + }, + { + "id": "0x55d7fb1de090-KindSelector", + "variantKey": "Expr", + "Expr": "0x55d7fb1deb00-Expr" + }, + { + "id": "0x55d7fb1deb00-Expr", + "variantKey": "Designator", + "Designator": "0x55d7fb1bfd90-Designator" + }, + { + "id": "0x55d7fb1bfd90-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d7fb1bfda0-DataRef" + }, + { + "id": "0x55d7fb1bfda0-DataRef", + "variantKey": "Name", + "Name": "0x55d7fb1bfda0-Name" + }, + { + "id": "0x55d7fb1bfda0-Name", + "source": "dp" + }, + { + "id": "0x55d7fb1ded30-EntityDecl", + "Name": "0x55d7fb1dede8-Name", + "Initialization": "0x55d7fb1ded30-Initialization" + }, + { + "id": "0x55d7fb1dede8-Name", + "source": "c_double_kind" + }, + { + "id": "0x55d7fb1ded30-Initialization", + "variantKey": "Expr", + "Expr": "0x55d7fb1dec40-Expr" + }, + { + "id": "0x55d7fb1dec40-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d7fb1dec60-LiteralConstant" + }, + { + "id": "0x55d7fb1dec60-LiteralConstant", + "variantKey": "ComplexLiteralConstant", + "ComplexLiteralConstant": "0x55d7fb1dec60-ComplexLiteralConstant" + }, + { + "id": "0x55d7fb1dec60-ComplexLiteralConstant", + "real": "0x55d7fb1decb0-ComplexPart", + "imaginary": "0x55d7fb1dec60-ComplexPart" + }, + { + "id": "0x55d7fb1decb0-ComplexPart", + "variantKey": "SignedRealLiteralConstant", + "SignedRealLiteralConstant": "0x55d7fb1decb0-SignedRealLiteralConstant" + }, + { + "id": "0x55d7fb1decb0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55d7fb1decb0-RealLiteralConstant" + }, + { + "id": "0x55d7fb1decb0-RealLiteralConstant", + "real": "0x55d7fb1decb0-Real", + "kind": "0x55d7fb1decc0-KindParam" + }, + { + "id": "0x55d7fb1decb0-Real", + "source": "2.5" + }, + { + "id": "0x55d7fb1decc0-KindParam", + "variantKey": "Expr", + "Expr": "0x55d7fb1decc0-Name" + }, + { + "id": "0x55d7fb1decc0-Name", + "source": "dp" + }, + { + "id": "0x55d7fb1dec60-ComplexPart", + "variantKey": "SignedRealLiteralConstant", + "SignedRealLiteralConstant": "0x55d7fb1dec60-SignedRealLiteralConstant" + }, + { + "id": "0x55d7fb1dec60-SignedRealLiteralConstant", + "Sign": "negative", + "RealLiteralConstant": "0x55d7fb1dec60-RealLiteralConstant" + }, + { + "id": "0x55d7fb1dec98-Sign" + }, + { + "id": "0x55d7fb1dec60-RealLiteralConstant", + "real": "0x55d7fb1dec60-Real", + "kind": "0x55d7fb1dec70-KindParam" + }, + { + "id": "0x55d7fb1dec60-Real", + "source": "5.5" + }, + { + "id": "0x55d7fb1dec70-KindParam", + "variantKey": "Expr", + "Expr": "0x55d7fb1dec70-Name" + }, + { + "id": "0x55d7fb1dec70-Name", + "source": "dp" + }, + { + "id": "0x55d7fb1df210-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55d7fb1df210-SpecificationConstruct" + }, + { + "id": "0x55d7fb1df210-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55d7fb1df210-Statement" + }, + { + "id": "0x55d7fb1df210-Statement", + "statement": "0x55d7fb1de0e0-TypeDeclarationStmt", + "source": "complex(sp) :: c_single_kind =(1.0_sp, 0.5_sp)" + }, + { + "id": "0x55d7fb1de0e0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55d7fb1de110-DeclarationTypeSpec", + "EntityDecl": [ + "0x55d7fb1df120-EntityDecl" + ] + }, + { + "id": "0x55d7fb1de110-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55d7fb1de110-IntrinsicTypeSpec" + }, + { + "id": "0x55d7fb1de110-IntrinsicTypeSpec", + "variantKey": "Complex", + "Complex": "0x55d7fb1de110-Complex" + }, + { + "id": "0x55d7fb1de110-Complex", + "KindSelector": "0x55d7fb1de110-KindSelector" + }, + { + "id": "0x55d7fb1de110-KindSelector", + "variantKey": "Expr", + "Expr": "0x55d7fb1deef0-Expr" + }, + { + "id": "0x55d7fb1deef0-Expr", + "variantKey": "Designator", + "Designator": "0x55d7fb1c0100-Designator" + }, + { + "id": "0x55d7fb1c0100-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d7fb1c0110-DataRef" + }, + { + "id": "0x55d7fb1c0110-DataRef", + "variantKey": "Name", + "Name": "0x55d7fb1c0110-Name" + }, + { + "id": "0x55d7fb1c0110-Name", + "source": "sp" + }, + { + "id": "0x55d7fb1df120-EntityDecl", + "Name": "0x55d7fb1df1d8-Name", + "Initialization": "0x55d7fb1df120-Initialization" + }, + { + "id": "0x55d7fb1df1d8-Name", + "source": "c_single_kind" + }, + { + "id": "0x55d7fb1df120-Initialization", + "variantKey": "Expr", + "Expr": "0x55d7fb1df030-Expr" + }, + { + "id": "0x55d7fb1df030-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d7fb1df050-LiteralConstant" + }, + { + "id": "0x55d7fb1df050-LiteralConstant", + "variantKey": "ComplexLiteralConstant", + "ComplexLiteralConstant": "0x55d7fb1df050-ComplexLiteralConstant" + }, + { + "id": "0x55d7fb1df050-ComplexLiteralConstant", + "real": "0x55d7fb1df0a0-ComplexPart", + "imaginary": "0x55d7fb1df050-ComplexPart" + }, + { + "id": "0x55d7fb1df0a0-ComplexPart", + "variantKey": "SignedRealLiteralConstant", + "SignedRealLiteralConstant": "0x55d7fb1df0a0-SignedRealLiteralConstant" + }, + { + "id": "0x55d7fb1df0a0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55d7fb1df0a0-RealLiteralConstant" + }, + { + "id": "0x55d7fb1df0a0-RealLiteralConstant", + "real": "0x55d7fb1df0a0-Real", + "kind": "0x55d7fb1df0b0-KindParam" + }, + { + "id": "0x55d7fb1df0a0-Real", + "source": "1.0" + }, + { + "id": "0x55d7fb1df0b0-KindParam", + "variantKey": "Expr", + "Expr": "0x55d7fb1df0b0-Name" + }, + { + "id": "0x55d7fb1df0b0-Name", + "source": "sp" + }, + { + "id": "0x55d7fb1df050-ComplexPart", + "variantKey": "SignedRealLiteralConstant", + "SignedRealLiteralConstant": "0x55d7fb1df050-SignedRealLiteralConstant" + }, + { + "id": "0x55d7fb1df050-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55d7fb1df050-RealLiteralConstant" + }, + { + "id": "0x55d7fb1df050-RealLiteralConstant", + "real": "0x55d7fb1df050-Real", + "kind": "0x55d7fb1df060-KindParam" + }, + { + "id": "0x55d7fb1df050-Real", + "source": "0.5" + }, + { + "id": "0x55d7fb1df060-KindParam", + "variantKey": "Expr", + "Expr": "0x55d7fb1df060-Name" + }, + { + "id": "0x55d7fb1df060-Name", + "source": "sp" + }, + { + "id": "0x55d7fb1e3098-ExecutionPart" + }, + { + "id": "0x55d7fb1e3098-list" + }, + { + "id": "0x55d7fb1e3010-Statement", + "statement": "0x55d7fb1e3020-EndProgramStmt", + "source": "end program COMPLEX_LITERALS" + }, + { + "id": "0x55d7fb1e3020-EndProgramStmt", + "Name": "0x55d7fb1e3020-Name" + }, + { + "id": "0x55d7fb1e3020-Name", + "source": "COMPLEX_LITERALS" + } + ], + "comments": [ + { + "text": " 1. Basic Default Real Literals", + "stmtId": "0x55d7fb1ddab0-Statement", + "trailing": false + }, + { + "text": " 2. Integer Components (automatically converted to real)", + "stmtId": "0x55d7fb1ddd60-Statement", + "trailing": false + }, + { + "text": " 3. Scientific / Exponential Notation", + "stmtId": "0x55d7fb1de010-Statement", + "trailing": false + }, + { + "text": " Represents (150.0, -0.2)", + "stmtId": "0x55d7fb1de010-Statement", + "trailing": true + }, + { + "text": " 4. Double Precision (using 'd' exponent notation)", + "stmtId": "0x55d7fb1dea30-Statement", + "trailing": false + }, + { + "text": " 5. Kind Parameter Suffixes (Modern Standard)", + "stmtId": "0x55d7fb1dee20-Statement", + "trailing": false + } + ], + "enums": { + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "Fortran::common::ImportKind": [ + "Default", + "Only", + "None", + "All" + ], + "Fortran::common::OmpDependenceKind": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::common::OmpMemoryOrderType": [ + "Acq_Rel", + "Acquire", + "Relaxed", + "Release", + "Seq_Cst" + ], + "Fortran::common::OpenACCDeviceType": [ + "Star", + "Default", + "Nvidia", + "Radeon", + "Host", + "Multicore", + "None" + ], + "Fortran::parser::AccDataModifier::Modifier": [ + "ReadOnly", + "Zero" + ], + "Fortran::parser::AccessSpec::Kind": [ + "Public", + "Private" + ], + "Fortran::parser::BindEntity::Kind": [ + "Object", + "Common" + ], + "Fortran::parser::CompilerDirective::VectorLength::Kind": [ + "Auto", + "Fixed", + "Scalable" + ], + "Fortran::parser::ConnectSpec::CharExpr::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Encoding", + "Form", + "Pad", + "Position", + "Round", + "Sign", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::DefinedOperator::IntrinsicOperator": [ + "Power", + "Multiply", + "Divide", + "Add", + "Subtract", + "Concat", + "LT", + "LE", + "EQ", + "NE", + "GE", + "GT", + "NOT", + "AND", + "OR", + "EQV", + "NEQV" + ], + "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec": [ + "External", + "Type" + ], + "Fortran::parser::InquireSpec::CharVar::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Direct", + "Encoding", + "Form", + "Formatted", + "Iomsg", + "Name", + "Pad", + "Position", + "Read", + "Readwrite", + "Round", + "Sequential", + "Sign", + "Stream", + "Status", + "Unformatted", + "Write", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::InquireSpec::IntVar::Kind": [ + "Iostat", + "Nextrec", + "Number", + "Pos", + "Recl", + "Size" + ], + "Fortran::parser::InquireSpec::LogVar::Kind": [ + "Exist", + "Named", + "Opened", + "Pending" + ], + "Fortran::parser::IntentSpec::Intent": [ + "In", + "Out", + "InOut" + ], + "Fortran::parser::IoControlSpec::CharExpr::Kind": [ + "Advance", + "Blank", + "Decimal", + "Delim", + "Pad", + "Round", + "Sign" + ], + "Fortran::parser::ReductionOperator::Operator": [ + "Plus", + "Multiply", + "Max", + "Min", + "Iand", + "Ior", + "Ieor", + "And", + "Or", + "Eqv", + "Neqv" + ], + "Fortran::parser::OmpAccessGroup::Value": [ + "Cgroup" + ], + "Fortran::parser::OmpAdjustArgsClause::OmpAdjustOp::Value": [ + "Nothing", + "Need_Device_Ptr" + ], + "Fortran::parser::OmpAlwaysModifier::Value": [ + "Always" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpAttachModifier::Value": [ + "Always", + "Never", + "Auto" + ], + "Fortran::parser::OmpAutomapModifier::Value": [ + "Automap" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpCloseModifier::Value": [ + "Close" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default", + "Present" + ], + "Fortran::parser::OmpDeleteModifier::Value": [ + "Delete" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpDirectiveSpecification::Flag": [ + "DeprecatedSyntax", + "CrossesLabelDo" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpInteropType::Value": [ + "Target", + "Targetsync" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "Storage", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpObject::Invalid::Kind": [ + "BlankCommonBlock" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpPresentModifier::Value": [ + "Present" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpRefModifier::Value": [ + "Ref_Ptee", + "Ref_Ptr", + "Ref_Ptr_Ptee" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpSelfModifier::Value": [ + "Self" + ], + "Fortran::parser::OmpSeverityClause::SevLevel": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpThreadsetClause::ThreadsetPolicy": [ + "Omp_Pool", + "Omp_Team" + ], + "Fortran::parser::OmpTraitSelectorName::Value": [ + "Arch", + "Atomic_Default_Mem_Order", + "Condition", + "Device_Num", + "Extension", + "Isa", + "Kind", + "Requires", + "Simd", + "Uid", + "Vendor" + ], + "Fortran::parser::OmpTraitSetSelectorName::Value": [ + "Construct", + "Device", + "Implementation", + "Target_Device", + "User" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpxHoldModifier::Value": [ + "Ompx_Hold" + ], + "Fortran::parser::ProcedureStmt::Kind": [ + "ModuleProcedure", + "Procedure" + ], + "Fortran::parser::SavedEntity::Kind": [ + "Entity", + "Common" + ], + "Fortran::parser::StopStmt::Kind": [ + "Stop", + "ErrorStop" + ], + "Fortran::parser::UseStmt::ModuleNature": [ + "Intrinsic", + "Non_Intrinsic" + ] + } +} From a5c7c936a24c408c0cccdbe3f268ef9002024879 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 22 Jul 2026 15:06:42 +0100 Subject: [PATCH 069/260] Add processing of complex type and fix kind selector representation --- .../fortran/ast/nodes/decl/KindSelector.java | 4 ++-- .../up/fe/specs/fortran/parser/FlangName.java | 1 + .../fe/specs/fortran/parser/FlangToClass.java | 1 + .../specs/fortran/parser/processors/Nodes.java | 1 + .../parser/processors/TypeProcessors.java | 18 +++++++++++++++--- 5 files changed, 20 insertions(+), 5 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/KindSelector.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/KindSelector.java index 3ff3d8ca..65da48b8 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/KindSelector.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/KindSelector.java @@ -8,14 +8,14 @@ import java.util.Collection; public class KindSelector extends FortranNode { - public static final DataKey VALUE = KeyFactory.integer("value"); + public static final DataKey VALUE = KeyFactory.string("value"); public static final DataKey LEGACY = KeyFactory.bool("legacy"); public KindSelector(DataStore data, Collection children) { super(data, children); } - public Integer getValue() { + public String getValue() { return get(VALUE); } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 0109d2d8..3008a197 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -149,6 +149,7 @@ public enum FlangName implements StringProvider { REAL, CHAR_SELECTOR, LENGTH_SELECTOR, + COMPLEX, /// LOOP LOOP_BOUNDS, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 64d95feb..87a0c512 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -155,6 +155,7 @@ public class FlangToClass { NAME_TO_CLASS.put(FlangName.DOUBLE_PRECISION, DoublePrecisionType.class); NAME_TO_CLASS.put(FlangName.CHARACTER, CharacterType.class); NAME_TO_CLASS.put(FlangName.REAL, RealType.class); + NAME_TO_CLASS.put(FlangName.COMPLEX, ComplexLiteral.class); NAME_TO_CLASS.put(FlangName.LENGTH_SELECTOR, LengthSelector.class); /// LOOP diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 3cbc93ef..7def60c3 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -142,6 +142,7 @@ public Nodes(FortranJsonResult data) { processors.put(CharacterType.class, t::characterType); processors.put(RealType.class, t::realType); processors.put(LengthSelector.class, t::lengthSelector); + processors.put(ComplexType.class, t::complexType); var a = new AttributesProcessor(data); processors.put(ArraySpecification.class, a::arraySpecification); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java index 3dcfba39..599d279d 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java @@ -26,14 +26,19 @@ public void kindSelector(KindSelector kindSelector) { // This is a legacy kind selector (e.g. "integer*8") var value = attributes().getString(kindSelector, "uint64_t", FlangName.STAR_SIZE); - kindSelector.set(KindSelector.VALUE, Integer.parseInt(value)); + kindSelector.set(KindSelector.VALUE, value); kindSelector.set(KindSelector.LEGACY, true); } else { // Otherwise, we assume it's a modern kind selector (e.g. "integer(8)") - var value = attributes().getString(kindSelector, "CharBlock", FlangName.EXPR, FlangName.LITERAL_CONSTANT, FlangName.INT_LITERAL_CONSTANT); + var value = attributes().getOptionalString(kindSelector, "CharBlock", FlangName.EXPR, FlangName.LITERAL_CONSTANT, FlangName.INT_LITERAL_CONSTANT) + .or(() -> attributes().getOptionalString(kindSelector, "source", FlangName.EXPR, FlangName.DESIGNATOR, FlangName.DATA_REF, FlangName.NAME)); - kindSelector.set(KindSelector.VALUE, Integer.parseInt(value)); + if (value.isEmpty()) { + throw new RuntimeException("Could not find value for kind selector: " + kindSelector); + } + + kindSelector.set(KindSelector.VALUE, value.get()); kindSelector.set(KindSelector.LEGACY, false); } } @@ -66,4 +71,11 @@ public void lengthSelector(LengthSelector lengthSelector) { var childId = attributes(lengthSelector).getVariantString(); lengthSelector.addChild(getChild(attributes().get(childId).getVariantString())); } + + public void complexType(ComplexType complexType) { + if (attributes(complexType).has(FlangName.KIND_SELECTOR)) { + var kindSelector = getChild(complexType, FlangName.KIND_SELECTOR); + complexType.addChild(kindSelector); + } + } } From 759db55a55b32ec10f72319f69c494922454fd09 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 22 Jul 2026 15:15:03 +0100 Subject: [PATCH 070/260] Add processing of complex literal --- .../up/fe/specs/fortran/parser/FlangName.java | 1 + .../parser/processors/ExprProcessors.java | 23 +++++++++++++++++++ .../fortran/parser/processors/Nodes.java | 4 ++++ 3 files changed, 28 insertions(+) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 3008a197..559e354a 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -101,6 +101,7 @@ public enum FlangName implements StringProvider { SIGNED_INT_LITERAL_CONSTANT, LOGICAL_LITERAL_CONSTANT, REAL_LITERAL_CONSTANT, + SIGNED_REAL_LITERAL_CONSTANT, KIND_PARAM, STAR, PARENTHESES, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java index 59972872..fd6f3f2c 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java @@ -140,4 +140,27 @@ public void acImpliedDoControl(AcImpliedDoControl control) { public void argument(Argument argument) { argument.addChild(getChild(argument, FlangName.ACTUAL_ARG)); } + + public void intComplexPart(IntComplexPart intComplexPart) { + var intLiteral = getChild(intComplexPart, FlangName.SIGNED_INT_LITERAL_CONSTANT); + intComplexPart.addChild(intLiteral); + } + + public void realComplexPart(RealComplexPart realComplexPart) { + var realLiteral = getChild(realComplexPart, FlangName.SIGNED_REAL_LITERAL_CONSTANT); + realComplexPart.addChild(realLiteral); + } + + public void namedComplexPart(NamedComplexPart namedComplexPart) { + var namedLiteral = getChild(namedComplexPart, FlangName.NAMED_CONSTANT); + namedComplexPart.addChild(namedLiteral); + } + + public void complexLiteral(ComplexLiteral complexLiteral) { + var real = getChild(complexLiteral, "real"); + complexLiteral.addChild(real); + + var imaginary = getChild(complexLiteral, "imaginary"); + complexLiteral.addChild(imaginary); + } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 7def60c3..4214287e 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -133,6 +133,10 @@ public Nodes(FortranJsonResult data) { processors.put(Argument.class, e::argument); processors.put(AcImpliedDo.class, e::acImpliedDo); processors.put(AcImpliedDoControl.class, e::acImpliedDoControl); + processors.put(IntComplexPart.class, e::intComplexPart); + processors.put(RealComplexPart.class, e::realComplexPart); + processors.put(NamedComplexPart.class, e::namedComplexPart); + processors.put(ComplexLiteral.class, e::complexLiteral); var t = new TypeProcessors(data); processors.put(IntegerType.class, t::integerType); From 7e0402fd080e798921db35aef6cbfd8782168da4 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 22 Jul 2026 19:03:48 +0100 Subject: [PATCH 071/260] Regenerate dump --- .../fortran/parser/expr/complex_literal.json | 702 +++++++++--------- 1 file changed, 349 insertions(+), 353 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/expr/complex_literal.json b/FortranParser/resources-test/fortran/parser/expr/complex_literal.json index 51d927ec..376963af 100644 --- a/FortranParser/resources-test/fortran/parser/expr/complex_literal.json +++ b/FortranParser/resources-test/fortran/parser/expr/complex_literal.json @@ -2,860 +2,856 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x55d7fb1b2f00-Program", + "id": "0x556d3813ff00-Program", "ProgramUnit": [ - "0x55d7fb1eeef0-ProgramUnit" + "0x556d3817bef0-ProgramUnit" ] }, { - "id": "0x55d7fb1eeef0-ProgramUnit", + "id": "0x556d3817bef0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x55d7fb1e3010-MainProgram" + "MainProgram": "0x556d38170010-MainProgram" }, { - "id": "0x55d7fb1e3010-MainProgram", - "Statement": "0x55d7fb1e3158-Statement", - "SpecificationPart": "0x55d7fb1e30b0-SpecificationPart", - "ExecutionPart": "0x55d7fb1e3098-ExecutionPart", - "Statement": "0x55d7fb1e3010-Statement" + "id": "0x556d38170010-MainProgram", + "Statement": "0x556d38170158-Statement", + "SpecificationPart": "0x556d381700b0-SpecificationPart", + "ExecutionPart": "0x556d38170098-ExecutionPart", + "Statement": "0x556d38170010-Statement" }, { - "id": "0x55d7fb1e3158-Statement", - "statement": "0x55d7fb1e3168-ProgramStmt", + "id": "0x556d38170158-Statement", + "statement": "0x556d38170168-ProgramStmt", "source": "program COMPLEX_LITERALS" }, { - "id": "0x55d7fb1e3168-ProgramStmt", - "Name": "0x55d7fb1e3168-Name" + "id": "0x556d38170168-ProgramStmt", + "Name": "0x556d38170168-Name" }, { - "id": "0x55d7fb1e3168-Name", + "id": "0x556d38170168-Name", "source": "COMPLEX_LITERALS" }, { - "id": "0x55d7fb1e30b0-SpecificationPart", + "id": "0x556d381700b0-SpecificationPart", "Statement": [ - "0x55d7fb1edc00-Statement" + "0x556d3817ac00-Statement" ], - "ImplicitPart": "0x55d7fb1e30c8-ImplicitPart", + "ImplicitPart": "0x556d381700c8-ImplicitPart", "DeclarationConstruct": [ - "0x55d7fb1ddab0-DeclarationConstruct", - "0x55d7fb1ddd60-DeclarationConstruct", - "0x55d7fb1de010-DeclarationConstruct", - "0x55d7fb1dea30-DeclarationConstruct", - "0x55d7fb1dee20-DeclarationConstruct", - "0x55d7fb1df210-DeclarationConstruct" + "0x556d3816aab0-DeclarationConstruct", + "0x556d3816ad60-DeclarationConstruct", + "0x556d3816b010-DeclarationConstruct", + "0x556d3816ba30-DeclarationConstruct", + "0x556d3816be20-DeclarationConstruct", + "0x556d3816c210-DeclarationConstruct" ] }, { - "id": "0x55d7fb1edc00-Statement", - "statement": "0x55d7fb1f6cb0-UseStmt", + "id": "0x556d3817ac00-Statement", + "statement": "0x556d38183cb0-UseStmt", "source": "use, intrinsic :: iso_fortran_env, only: sp => real32, dp => real64" }, { - "id": "0x55d7fb1f6cb0-UseStmt", - "moduleName": "0x55d7fb1f6cb8-Name" + "id": "0x556d38183cb0-UseStmt", + "moduleName": "0x556d38183cb8-Name" }, { - "id": "0x55d7fb1f6cb0-ModuleNature = Intrinsic", + "id": "0x556d38183cb0-ModuleNature = Intrinsic", "disambiguation": "Fortran::parser::UseStmt::ModuleNature", "value": "Intrinsic" }, { - "id": "0x55d7fb1f6cb8-Name", + "id": "0x556d38183cb8-Name", "source": "iso_fortran_env" }, { - "id": "0x55d7fb1c0170-Only", + "id": "0x556d3814d170-Only", "variantKey": "Rename", - "Rename": "0x55d7fb1c0170-Rename" + "Rename": "0x556d3814d170-Rename" }, { - "id": "0x55d7fb1c0170-Rename", + "id": "0x556d3814d170-Rename", "variantKey": "Names", - "Names": "0x55d7fb1c0170-Names" + "Names": "0x556d3814d170-Names" }, { - "id": "0x55d7fb1c0170-Names", - "Name": "0x55d7fb1c0170-Name" + "id": "0x556d3814d170-Names", + "Name": "0x556d3814d170-Name" }, { - "id": "0x55d7fb1c0188-Name", + "id": "0x556d3814d188-Name", "source": "sp" }, { - "id": "0x55d7fb1c0170-Name", + "id": "0x556d3814d170-Name", "source": "real32" }, { - "id": "0x55d7fb1b14e0-Only", + "id": "0x556d3813e4e0-Only", "variantKey": "Rename", - "Rename": "0x55d7fb1b14e0-Rename" + "Rename": "0x556d3813e4e0-Rename" }, { - "id": "0x55d7fb1b14e0-Rename", + "id": "0x556d3813e4e0-Rename", "variantKey": "Names", - "Names": "0x55d7fb1b14e0-Names" + "Names": "0x556d3813e4e0-Names" }, { - "id": "0x55d7fb1b14e0-Names", - "Name": "0x55d7fb1b14e0-Name" + "id": "0x556d3813e4e0-Names", + "Name": "0x556d3813e4e0-Name" }, { - "id": "0x55d7fb1b14f8-Name", + "id": "0x556d3813e4f8-Name", "source": "dp" }, { - "id": "0x55d7fb1b14e0-Name", + "id": "0x556d3813e4e0-Name", "source": "real64" }, { - "id": "0x55d7fb1e30c8-ImplicitPart" + "id": "0x556d381700c8-ImplicitPart" }, { - "id": "0x55d7fb1ddab0-DeclarationConstruct", + "id": "0x556d3816aab0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55d7fb1ddab0-SpecificationConstruct" + "SpecificationConstruct": "0x556d3816aab0-SpecificationConstruct" }, { - "id": "0x55d7fb1ddab0-SpecificationConstruct", + "id": "0x556d3816aab0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55d7fb1ddab0-Statement" + "Statement": "0x556d3816aab0-Statement" }, { - "id": "0x55d7fb1ddab0-Statement", - "statement": "0x55d7fb1ef710-TypeDeclarationStmt", + "id": "0x556d3816aab0-Statement", + "statement": "0x556d3817c710-TypeDeclarationStmt", "source": "complex :: c_default =(3.0, 4.0)" }, { - "id": "0x55d7fb1ef710-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55d7fb1ef740-DeclarationTypeSpec", + "id": "0x556d3817c710-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x556d3817c740-DeclarationTypeSpec", "EntityDecl": [ - "0x55d7fb1dd8e0-EntityDecl" + "0x556d3816a8e0-EntityDecl" ] }, { - "id": "0x55d7fb1ef740-DeclarationTypeSpec", + "id": "0x556d3817c740-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55d7fb1ef740-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x556d3817c740-IntrinsicTypeSpec" }, { - "id": "0x55d7fb1ef740-IntrinsicTypeSpec", + "id": "0x556d3817c740-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x55d7fb1ef740-Complex" + "Complex": "0x556d3817c740-Complex" }, { - "id": "0x55d7fb1ef740-Complex" + "id": "0x556d3817c740-Complex" }, { - "id": "0x55d7fb1dd8e0-EntityDecl", - "Name": "0x55d7fb1dd998-Name", - "Initialization": "0x55d7fb1dd8e0-Initialization" + "id": "0x556d3816a8e0-EntityDecl", + "Name": "0x556d3816a998-Name", + "Initialization": "0x556d3816a8e0-Initialization" }, { - "id": "0x55d7fb1dd998-Name", + "id": "0x556d3816a998-Name", "source": "c_default" }, { - "id": "0x55d7fb1dd8e0-Initialization", + "id": "0x556d3816a8e0-Initialization", "variantKey": "Expr", - "Expr": "0x55d7fb152790-Expr" + "Expr": "0x556d380df790-Expr" }, { - "id": "0x55d7fb152790-Expr", + "id": "0x556d380df790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d7fb1527b0-LiteralConstant" + "LiteralConstant": "0x556d380df7b0-LiteralConstant" }, { - "id": "0x55d7fb1527b0-LiteralConstant", + "id": "0x556d380df7b0-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x55d7fb1527b0-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x556d380df7b0-ComplexLiteralConstant" }, { - "id": "0x55d7fb1527b0-ComplexLiteralConstant", - "real": "0x55d7fb152800-ComplexPart", - "imaginary": "0x55d7fb1527b0-ComplexPart" + "id": "0x556d380df7b0-ComplexLiteralConstant", + "real": "0x556d380df800-ComplexPart", + "imaginary": "0x556d380df7b0-ComplexPart" }, { - "id": "0x55d7fb152800-ComplexPart", + "id": "0x556d380df800-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x55d7fb152800-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x556d380df800-SignedRealLiteralConstant" }, { - "id": "0x55d7fb152800-SignedRealLiteralConstant", - "RealLiteralConstant": "0x55d7fb152800-RealLiteralConstant" + "id": "0x556d380df800-SignedRealLiteralConstant", + "RealLiteralConstant": "0x556d380df800-RealLiteralConstant" }, { - "id": "0x55d7fb152800-RealLiteralConstant", - "real": "0x55d7fb152800-Real" + "id": "0x556d380df800-RealLiteralConstant", + "real": "0x556d380df800-Real" }, { - "id": "0x55d7fb152800-Real", + "id": "0x556d380df800-Real", "source": "3.0" }, { - "id": "0x55d7fb1527b0-ComplexPart", + "id": "0x556d380df7b0-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x55d7fb1527b0-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x556d380df7b0-SignedRealLiteralConstant" }, { - "id": "0x55d7fb1527b0-SignedRealLiteralConstant", - "RealLiteralConstant": "0x55d7fb1527b0-RealLiteralConstant" + "id": "0x556d380df7b0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x556d380df7b0-RealLiteralConstant" }, { - "id": "0x55d7fb1527b0-RealLiteralConstant", - "real": "0x55d7fb1527b0-Real" + "id": "0x556d380df7b0-RealLiteralConstant", + "real": "0x556d380df7b0-Real" }, { - "id": "0x55d7fb1527b0-Real", + "id": "0x556d380df7b0-Real", "source": "4.0" }, { - "id": "0x55d7fb1ddd60-DeclarationConstruct", + "id": "0x556d3816ad60-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55d7fb1ddd60-SpecificationConstruct" + "SpecificationConstruct": "0x556d3816ad60-SpecificationConstruct" }, { - "id": "0x55d7fb1ddd60-SpecificationConstruct", + "id": "0x556d3816ad60-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55d7fb1ddd60-Statement" + "Statement": "0x556d3816ad60-Statement" }, { - "id": "0x55d7fb1ddd60-Statement", - "statement": "0x55d7fb1ef790-TypeDeclarationStmt", + "id": "0x556d3816ad60-Statement", + "statement": "0x556d3817c790-TypeDeclarationStmt", "source": "complex :: c_int =(1, -2)" }, { - "id": "0x55d7fb1ef790-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55d7fb1ef7c0-DeclarationTypeSpec", + "id": "0x556d3817c790-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x556d3817c7c0-DeclarationTypeSpec", "EntityDecl": [ - "0x55d7fb1ddc70-EntityDecl" + "0x556d3816ac70-EntityDecl" ] }, { - "id": "0x55d7fb1ef7c0-DeclarationTypeSpec", + "id": "0x556d3817c7c0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55d7fb1ef7c0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x556d3817c7c0-IntrinsicTypeSpec" }, { - "id": "0x55d7fb1ef7c0-IntrinsicTypeSpec", + "id": "0x556d3817c7c0-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x55d7fb1ef7c0-Complex" + "Complex": "0x556d3817c7c0-Complex" }, { - "id": "0x55d7fb1ef7c0-Complex" + "id": "0x556d3817c7c0-Complex" }, { - "id": "0x55d7fb1ddc70-EntityDecl", - "Name": "0x55d7fb1ddd28-Name", - "Initialization": "0x55d7fb1ddc70-Initialization" + "id": "0x556d3816ac70-EntityDecl", + "Name": "0x556d3816ad28-Name", + "Initialization": "0x556d3816ac70-Initialization" }, { - "id": "0x55d7fb1ddd28-Name", + "id": "0x556d3816ad28-Name", "source": "c_int" }, { - "id": "0x55d7fb1ddc70-Initialization", + "id": "0x556d3816ac70-Initialization", "variantKey": "Expr", - "Expr": "0x55d7fb1ddb80-Expr" + "Expr": "0x556d3816ab80-Expr" }, { - "id": "0x55d7fb1ddb80-Expr", + "id": "0x556d3816ab80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d7fb1ddba0-LiteralConstant" + "LiteralConstant": "0x556d3816aba0-LiteralConstant" }, { - "id": "0x55d7fb1ddba0-LiteralConstant", + "id": "0x556d3816aba0-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x55d7fb1ddba0-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x556d3816aba0-ComplexLiteralConstant" }, { - "id": "0x55d7fb1ddba0-ComplexLiteralConstant", - "real": "0x55d7fb1ddbf0-ComplexPart", - "imaginary": "0x55d7fb1ddba0-ComplexPart" + "id": "0x556d3816aba0-ComplexLiteralConstant", + "real": "0x556d3816abf0-ComplexPart", + "imaginary": "0x556d3816aba0-ComplexPart" }, { - "id": "0x55d7fb1ddbf0-ComplexPart", + "id": "0x556d3816abf0-ComplexPart", "variantKey": "SignedIntLiteralConstant", - "SignedIntLiteralConstant": "0x55d7fb1ddbf0-SignedIntLiteralConstant" + "SignedIntLiteralConstant": "0x556d3816abf0-SignedIntLiteralConstant" }, { - "id": "0x55d7fb1ddbf0-SignedIntLiteralConstant", - "CharBlock": "1" + "id": "0x556d3816abf0-SignedIntLiteralConstant", + "CharBlock": "1", + "source": "1" }, { - "id": "0x55d7fb1ddba0-ComplexPart", + "id": "0x556d3816aba0-ComplexPart", "variantKey": "SignedIntLiteralConstant", - "SignedIntLiteralConstant": "0x55d7fb1ddba0-SignedIntLiteralConstant" + "SignedIntLiteralConstant": "0x556d3816aba0-SignedIntLiteralConstant" }, { - "id": "0x55d7fb1ddba0-SignedIntLiteralConstant", - "CharBlock": "-2" + "id": "0x556d3816aba0-SignedIntLiteralConstant", + "CharBlock": "-2", + "source": "-2" }, { - "id": "0x55d7fb1de010-DeclarationConstruct", + "id": "0x556d3816b010-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55d7fb1de010-SpecificationConstruct" + "SpecificationConstruct": "0x556d3816b010-SpecificationConstruct" }, { - "id": "0x55d7fb1de010-SpecificationConstruct", + "id": "0x556d3816b010-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55d7fb1de010-Statement" + "Statement": "0x556d3816b010-Statement" }, { - "id": "0x55d7fb1de010-Statement", - "statement": "0x55d7fb1ddb00-TypeDeclarationStmt", + "id": "0x556d3816b010-Statement", + "statement": "0x556d3816ab00-TypeDeclarationStmt", "source": "complex :: c_exp =(1.5e2, -2.0e-1)" }, { - "id": "0x55d7fb1ddb00-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55d7fb1ddb30-DeclarationTypeSpec", + "id": "0x556d3816ab00-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x556d3816ab30-DeclarationTypeSpec", "EntityDecl": [ - "0x55d7fb1ddf20-EntityDecl" + "0x556d3816af20-EntityDecl" ] }, { - "id": "0x55d7fb1ddb30-DeclarationTypeSpec", + "id": "0x556d3816ab30-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55d7fb1ddb30-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x556d3816ab30-IntrinsicTypeSpec" }, { - "id": "0x55d7fb1ddb30-IntrinsicTypeSpec", + "id": "0x556d3816ab30-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x55d7fb1ddb30-Complex" + "Complex": "0x556d3816ab30-Complex" }, { - "id": "0x55d7fb1ddb30-Complex" + "id": "0x556d3816ab30-Complex" }, { - "id": "0x55d7fb1ddf20-EntityDecl", - "Name": "0x55d7fb1ddfd8-Name", - "Initialization": "0x55d7fb1ddf20-Initialization" + "id": "0x556d3816af20-EntityDecl", + "Name": "0x556d3816afd8-Name", + "Initialization": "0x556d3816af20-Initialization" }, { - "id": "0x55d7fb1ddfd8-Name", + "id": "0x556d3816afd8-Name", "source": "c_exp" }, { - "id": "0x55d7fb1ddf20-Initialization", + "id": "0x556d3816af20-Initialization", "variantKey": "Expr", - "Expr": "0x55d7fb1dde30-Expr" + "Expr": "0x556d3816ae30-Expr" }, { - "id": "0x55d7fb1dde30-Expr", + "id": "0x556d3816ae30-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d7fb1dde50-LiteralConstant" + "LiteralConstant": "0x556d3816ae50-LiteralConstant" }, { - "id": "0x55d7fb1dde50-LiteralConstant", + "id": "0x556d3816ae50-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x55d7fb1dde50-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x556d3816ae50-ComplexLiteralConstant" }, { - "id": "0x55d7fb1dde50-ComplexLiteralConstant", - "real": "0x55d7fb1ddea0-ComplexPart", - "imaginary": "0x55d7fb1dde50-ComplexPart" + "id": "0x556d3816ae50-ComplexLiteralConstant", + "real": "0x556d3816aea0-ComplexPart", + "imaginary": "0x556d3816ae50-ComplexPart" }, { - "id": "0x55d7fb1ddea0-ComplexPart", + "id": "0x556d3816aea0-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x55d7fb1ddea0-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x556d3816aea0-SignedRealLiteralConstant" }, { - "id": "0x55d7fb1ddea0-SignedRealLiteralConstant", - "RealLiteralConstant": "0x55d7fb1ddea0-RealLiteralConstant" + "id": "0x556d3816aea0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x556d3816aea0-RealLiteralConstant" }, { - "id": "0x55d7fb1ddea0-RealLiteralConstant", - "real": "0x55d7fb1ddea0-Real" + "id": "0x556d3816aea0-RealLiteralConstant", + "real": "0x556d3816aea0-Real" }, { - "id": "0x55d7fb1ddea0-Real", + "id": "0x556d3816aea0-Real", "source": "1.5e2" }, { - "id": "0x55d7fb1dde50-ComplexPart", + "id": "0x556d3816ae50-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x55d7fb1dde50-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x556d3816ae50-SignedRealLiteralConstant" }, { - "id": "0x55d7fb1dde50-SignedRealLiteralConstant", - "Sign": "negative", - "RealLiteralConstant": "0x55d7fb1dde50-RealLiteralConstant" + "id": "0x556d3816ae50-SignedRealLiteralConstant", + "Sign": "-", + "RealLiteralConstant": "0x556d3816ae50-RealLiteralConstant" }, { - "id": "0x55d7fb1dde88-Sign" + "id": "0x556d3816ae50-RealLiteralConstant", + "real": "0x556d3816ae50-Real" }, { - "id": "0x55d7fb1dde50-RealLiteralConstant", - "real": "0x55d7fb1dde50-Real" - }, - { - "id": "0x55d7fb1dde50-Real", + "id": "0x556d3816ae50-Real", "source": "2.0e-1" }, { - "id": "0x55d7fb1dea30-DeclarationConstruct", + "id": "0x556d3816ba30-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55d7fb1dea30-SpecificationConstruct" + "SpecificationConstruct": "0x556d3816ba30-SpecificationConstruct" }, { - "id": "0x55d7fb1dea30-SpecificationConstruct", + "id": "0x556d3816ba30-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55d7fb1dea30-Statement" + "Statement": "0x556d3816ba30-Statement" }, { - "id": "0x55d7fb1dea30-Statement", - "statement": "0x55d7fb1dddb0-TypeDeclarationStmt", + "id": "0x556d3816ba30-Statement", + "statement": "0x556d3816adb0-TypeDeclarationStmt", "source": "complex(dp) :: c_double_d =(1.0d0, 3.141592653589793d0)" }, { - "id": "0x55d7fb1dddb0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55d7fb1ddde0-DeclarationTypeSpec", + "id": "0x556d3816adb0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x556d3816ade0-DeclarationTypeSpec", "EntityDecl": [ - "0x55d7fb1de860-EntityDecl" + "0x556d3816b860-EntityDecl" ] }, { - "id": "0x55d7fb1ddde0-DeclarationTypeSpec", + "id": "0x556d3816ade0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55d7fb1ddde0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x556d3816ade0-IntrinsicTypeSpec" }, { - "id": "0x55d7fb1ddde0-IntrinsicTypeSpec", + "id": "0x556d3816ade0-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x55d7fb1ddde0-Complex" + "Complex": "0x556d3816ade0-Complex" }, { - "id": "0x55d7fb1ddde0-Complex", - "KindSelector": "0x55d7fb1ddde0-KindSelector" + "id": "0x556d3816ade0-Complex", + "KindSelector": "0x556d3816ade0-KindSelector" }, { - "id": "0x55d7fb1ddde0-KindSelector", + "id": "0x556d3816ade0-KindSelector", "variantKey": "Expr", - "Expr": "0x55d7fb1de260-Expr" + "Expr": "0x556d3816b260-Expr" }, { - "id": "0x55d7fb1de260-Expr", + "id": "0x556d3816b260-Expr", "variantKey": "Designator", - "Designator": "0x55d7fb1f6b90-Designator" + "Designator": "0x556d38183b90-Designator" }, { - "id": "0x55d7fb1f6b90-Designator", + "id": "0x556d38183b90-Designator", "variantKey": "DataRef", - "DataRef": "0x55d7fb1f6ba0-DataRef" + "DataRef": "0x556d38183ba0-DataRef" }, { - "id": "0x55d7fb1f6ba0-DataRef", + "id": "0x556d38183ba0-DataRef", "variantKey": "Name", - "Name": "0x55d7fb1f6ba0-Name" + "Name": "0x556d38183ba0-Name" }, { - "id": "0x55d7fb1f6ba0-Name", + "id": "0x556d38183ba0-Name", "source": "dp" }, { - "id": "0x55d7fb1de860-EntityDecl", - "Name": "0x55d7fb1de918-Name", - "Initialization": "0x55d7fb1de860-Initialization" + "id": "0x556d3816b860-EntityDecl", + "Name": "0x556d3816b918-Name", + "Initialization": "0x556d3816b860-Initialization" }, { - "id": "0x55d7fb1de918-Name", + "id": "0x556d3816b918-Name", "source": "c_double_d" }, { - "id": "0x55d7fb1de860-Initialization", + "id": "0x556d3816b860-Initialization", "variantKey": "Expr", - "Expr": "0x55d7fb1de770-Expr" + "Expr": "0x556d3816b770-Expr" }, { - "id": "0x55d7fb1de770-Expr", + "id": "0x556d3816b770-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d7fb1de790-LiteralConstant" + "LiteralConstant": "0x556d3816b790-LiteralConstant" }, { - "id": "0x55d7fb1de790-LiteralConstant", + "id": "0x556d3816b790-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x55d7fb1de790-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x556d3816b790-ComplexLiteralConstant" }, { - "id": "0x55d7fb1de790-ComplexLiteralConstant", - "real": "0x55d7fb1de7e0-ComplexPart", - "imaginary": "0x55d7fb1de790-ComplexPart" + "id": "0x556d3816b790-ComplexLiteralConstant", + "real": "0x556d3816b7e0-ComplexPart", + "imaginary": "0x556d3816b790-ComplexPart" }, { - "id": "0x55d7fb1de7e0-ComplexPart", + "id": "0x556d3816b7e0-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x55d7fb1de7e0-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x556d3816b7e0-SignedRealLiteralConstant" }, { - "id": "0x55d7fb1de7e0-SignedRealLiteralConstant", - "RealLiteralConstant": "0x55d7fb1de7e0-RealLiteralConstant" + "id": "0x556d3816b7e0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x556d3816b7e0-RealLiteralConstant" }, { - "id": "0x55d7fb1de7e0-RealLiteralConstant", - "real": "0x55d7fb1de7e0-Real" + "id": "0x556d3816b7e0-RealLiteralConstant", + "real": "0x556d3816b7e0-Real" }, { - "id": "0x55d7fb1de7e0-Real", + "id": "0x556d3816b7e0-Real", "source": "1.0d0" }, { - "id": "0x55d7fb1de790-ComplexPart", + "id": "0x556d3816b790-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x55d7fb1de790-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x556d3816b790-SignedRealLiteralConstant" }, { - "id": "0x55d7fb1de790-SignedRealLiteralConstant", - "RealLiteralConstant": "0x55d7fb1de790-RealLiteralConstant" + "id": "0x556d3816b790-SignedRealLiteralConstant", + "RealLiteralConstant": "0x556d3816b790-RealLiteralConstant" }, { - "id": "0x55d7fb1de790-RealLiteralConstant", - "real": "0x55d7fb1de790-Real" + "id": "0x556d3816b790-RealLiteralConstant", + "real": "0x556d3816b790-Real" }, { - "id": "0x55d7fb1de790-Real", + "id": "0x556d3816b790-Real", "source": "3.141592653589793d0" }, { - "id": "0x55d7fb1dee20-DeclarationConstruct", + "id": "0x556d3816be20-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55d7fb1dee20-SpecificationConstruct" + "SpecificationConstruct": "0x556d3816be20-SpecificationConstruct" }, { - "id": "0x55d7fb1dee20-SpecificationConstruct", + "id": "0x556d3816be20-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55d7fb1dee20-Statement" + "Statement": "0x556d3816be20-Statement" }, { - "id": "0x55d7fb1dee20-Statement", - "statement": "0x55d7fb1de060-TypeDeclarationStmt", + "id": "0x556d3816be20-Statement", + "statement": "0x556d3816b060-TypeDeclarationStmt", "source": "complex(dp) :: c_double_kind =(2.5_dp, -5.5_dp)" }, { - "id": "0x55d7fb1de060-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55d7fb1de090-DeclarationTypeSpec", + "id": "0x556d3816b060-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x556d3816b090-DeclarationTypeSpec", "EntityDecl": [ - "0x55d7fb1ded30-EntityDecl" + "0x556d3816bd30-EntityDecl" ] }, { - "id": "0x55d7fb1de090-DeclarationTypeSpec", + "id": "0x556d3816b090-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55d7fb1de090-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x556d3816b090-IntrinsicTypeSpec" }, { - "id": "0x55d7fb1de090-IntrinsicTypeSpec", + "id": "0x556d3816b090-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x55d7fb1de090-Complex" + "Complex": "0x556d3816b090-Complex" }, { - "id": "0x55d7fb1de090-Complex", - "KindSelector": "0x55d7fb1de090-KindSelector" + "id": "0x556d3816b090-Complex", + "KindSelector": "0x556d3816b090-KindSelector" }, { - "id": "0x55d7fb1de090-KindSelector", + "id": "0x556d3816b090-KindSelector", "variantKey": "Expr", - "Expr": "0x55d7fb1deb00-Expr" + "Expr": "0x556d3816bb00-Expr" }, { - "id": "0x55d7fb1deb00-Expr", + "id": "0x556d3816bb00-Expr", "variantKey": "Designator", - "Designator": "0x55d7fb1bfd90-Designator" + "Designator": "0x556d3814cd90-Designator" }, { - "id": "0x55d7fb1bfd90-Designator", + "id": "0x556d3814cd90-Designator", "variantKey": "DataRef", - "DataRef": "0x55d7fb1bfda0-DataRef" + "DataRef": "0x556d3814cda0-DataRef" }, { - "id": "0x55d7fb1bfda0-DataRef", + "id": "0x556d3814cda0-DataRef", "variantKey": "Name", - "Name": "0x55d7fb1bfda0-Name" + "Name": "0x556d3814cda0-Name" }, { - "id": "0x55d7fb1bfda0-Name", + "id": "0x556d3814cda0-Name", "source": "dp" }, { - "id": "0x55d7fb1ded30-EntityDecl", - "Name": "0x55d7fb1dede8-Name", - "Initialization": "0x55d7fb1ded30-Initialization" + "id": "0x556d3816bd30-EntityDecl", + "Name": "0x556d3816bde8-Name", + "Initialization": "0x556d3816bd30-Initialization" }, { - "id": "0x55d7fb1dede8-Name", + "id": "0x556d3816bde8-Name", "source": "c_double_kind" }, { - "id": "0x55d7fb1ded30-Initialization", + "id": "0x556d3816bd30-Initialization", "variantKey": "Expr", - "Expr": "0x55d7fb1dec40-Expr" + "Expr": "0x556d3816bc40-Expr" }, { - "id": "0x55d7fb1dec40-Expr", + "id": "0x556d3816bc40-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d7fb1dec60-LiteralConstant" + "LiteralConstant": "0x556d3816bc60-LiteralConstant" }, { - "id": "0x55d7fb1dec60-LiteralConstant", + "id": "0x556d3816bc60-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x55d7fb1dec60-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x556d3816bc60-ComplexLiteralConstant" }, { - "id": "0x55d7fb1dec60-ComplexLiteralConstant", - "real": "0x55d7fb1decb0-ComplexPart", - "imaginary": "0x55d7fb1dec60-ComplexPart" + "id": "0x556d3816bc60-ComplexLiteralConstant", + "real": "0x556d3816bcb0-ComplexPart", + "imaginary": "0x556d3816bc60-ComplexPart" }, { - "id": "0x55d7fb1decb0-ComplexPart", + "id": "0x556d3816bcb0-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x55d7fb1decb0-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x556d3816bcb0-SignedRealLiteralConstant" }, { - "id": "0x55d7fb1decb0-SignedRealLiteralConstant", - "RealLiteralConstant": "0x55d7fb1decb0-RealLiteralConstant" + "id": "0x556d3816bcb0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x556d3816bcb0-RealLiteralConstant" }, { - "id": "0x55d7fb1decb0-RealLiteralConstant", - "real": "0x55d7fb1decb0-Real", - "kind": "0x55d7fb1decc0-KindParam" + "id": "0x556d3816bcb0-RealLiteralConstant", + "real": "0x556d3816bcb0-Real", + "kind": "0x556d3816bcc0-KindParam" }, { - "id": "0x55d7fb1decb0-Real", + "id": "0x556d3816bcb0-Real", "source": "2.5" }, { - "id": "0x55d7fb1decc0-KindParam", + "id": "0x556d3816bcc0-KindParam", "variantKey": "Expr", - "Expr": "0x55d7fb1decc0-Name" + "Expr": "0x556d3816bcc0-Name" }, { - "id": "0x55d7fb1decc0-Name", + "id": "0x556d3816bcc0-Name", "source": "dp" }, { - "id": "0x55d7fb1dec60-ComplexPart", + "id": "0x556d3816bc60-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x55d7fb1dec60-SignedRealLiteralConstant" - }, - { - "id": "0x55d7fb1dec60-SignedRealLiteralConstant", - "Sign": "negative", - "RealLiteralConstant": "0x55d7fb1dec60-RealLiteralConstant" + "SignedRealLiteralConstant": "0x556d3816bc60-SignedRealLiteralConstant" }, { - "id": "0x55d7fb1dec98-Sign" + "id": "0x556d3816bc60-SignedRealLiteralConstant", + "Sign": "-", + "RealLiteralConstant": "0x556d3816bc60-RealLiteralConstant" }, { - "id": "0x55d7fb1dec60-RealLiteralConstant", - "real": "0x55d7fb1dec60-Real", - "kind": "0x55d7fb1dec70-KindParam" + "id": "0x556d3816bc60-RealLiteralConstant", + "real": "0x556d3816bc60-Real", + "kind": "0x556d3816bc70-KindParam" }, { - "id": "0x55d7fb1dec60-Real", + "id": "0x556d3816bc60-Real", "source": "5.5" }, { - "id": "0x55d7fb1dec70-KindParam", + "id": "0x556d3816bc70-KindParam", "variantKey": "Expr", - "Expr": "0x55d7fb1dec70-Name" + "Expr": "0x556d3816bc70-Name" }, { - "id": "0x55d7fb1dec70-Name", + "id": "0x556d3816bc70-Name", "source": "dp" }, { - "id": "0x55d7fb1df210-DeclarationConstruct", + "id": "0x556d3816c210-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55d7fb1df210-SpecificationConstruct" + "SpecificationConstruct": "0x556d3816c210-SpecificationConstruct" }, { - "id": "0x55d7fb1df210-SpecificationConstruct", + "id": "0x556d3816c210-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55d7fb1df210-Statement" + "Statement": "0x556d3816c210-Statement" }, { - "id": "0x55d7fb1df210-Statement", - "statement": "0x55d7fb1de0e0-TypeDeclarationStmt", + "id": "0x556d3816c210-Statement", + "statement": "0x556d3816b0e0-TypeDeclarationStmt", "source": "complex(sp) :: c_single_kind =(1.0_sp, 0.5_sp)" }, { - "id": "0x55d7fb1de0e0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55d7fb1de110-DeclarationTypeSpec", + "id": "0x556d3816b0e0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x556d3816b110-DeclarationTypeSpec", "EntityDecl": [ - "0x55d7fb1df120-EntityDecl" + "0x556d3816c120-EntityDecl" ] }, { - "id": "0x55d7fb1de110-DeclarationTypeSpec", + "id": "0x556d3816b110-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55d7fb1de110-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x556d3816b110-IntrinsicTypeSpec" }, { - "id": "0x55d7fb1de110-IntrinsicTypeSpec", + "id": "0x556d3816b110-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x55d7fb1de110-Complex" + "Complex": "0x556d3816b110-Complex" }, { - "id": "0x55d7fb1de110-Complex", - "KindSelector": "0x55d7fb1de110-KindSelector" + "id": "0x556d3816b110-Complex", + "KindSelector": "0x556d3816b110-KindSelector" }, { - "id": "0x55d7fb1de110-KindSelector", + "id": "0x556d3816b110-KindSelector", "variantKey": "Expr", - "Expr": "0x55d7fb1deef0-Expr" + "Expr": "0x556d3816bef0-Expr" }, { - "id": "0x55d7fb1deef0-Expr", + "id": "0x556d3816bef0-Expr", "variantKey": "Designator", - "Designator": "0x55d7fb1c0100-Designator" + "Designator": "0x556d3814d100-Designator" }, { - "id": "0x55d7fb1c0100-Designator", + "id": "0x556d3814d100-Designator", "variantKey": "DataRef", - "DataRef": "0x55d7fb1c0110-DataRef" + "DataRef": "0x556d3814d110-DataRef" }, { - "id": "0x55d7fb1c0110-DataRef", + "id": "0x556d3814d110-DataRef", "variantKey": "Name", - "Name": "0x55d7fb1c0110-Name" + "Name": "0x556d3814d110-Name" }, { - "id": "0x55d7fb1c0110-Name", + "id": "0x556d3814d110-Name", "source": "sp" }, { - "id": "0x55d7fb1df120-EntityDecl", - "Name": "0x55d7fb1df1d8-Name", - "Initialization": "0x55d7fb1df120-Initialization" + "id": "0x556d3816c120-EntityDecl", + "Name": "0x556d3816c1d8-Name", + "Initialization": "0x556d3816c120-Initialization" }, { - "id": "0x55d7fb1df1d8-Name", + "id": "0x556d3816c1d8-Name", "source": "c_single_kind" }, { - "id": "0x55d7fb1df120-Initialization", + "id": "0x556d3816c120-Initialization", "variantKey": "Expr", - "Expr": "0x55d7fb1df030-Expr" + "Expr": "0x556d3816c030-Expr" }, { - "id": "0x55d7fb1df030-Expr", + "id": "0x556d3816c030-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d7fb1df050-LiteralConstant" + "LiteralConstant": "0x556d3816c050-LiteralConstant" }, { - "id": "0x55d7fb1df050-LiteralConstant", + "id": "0x556d3816c050-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x55d7fb1df050-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x556d3816c050-ComplexLiteralConstant" }, { - "id": "0x55d7fb1df050-ComplexLiteralConstant", - "real": "0x55d7fb1df0a0-ComplexPart", - "imaginary": "0x55d7fb1df050-ComplexPart" + "id": "0x556d3816c050-ComplexLiteralConstant", + "real": "0x556d3816c0a0-ComplexPart", + "imaginary": "0x556d3816c050-ComplexPart" }, { - "id": "0x55d7fb1df0a0-ComplexPart", + "id": "0x556d3816c0a0-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x55d7fb1df0a0-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x556d3816c0a0-SignedRealLiteralConstant" }, { - "id": "0x55d7fb1df0a0-SignedRealLiteralConstant", - "RealLiteralConstant": "0x55d7fb1df0a0-RealLiteralConstant" + "id": "0x556d3816c0a0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x556d3816c0a0-RealLiteralConstant" }, { - "id": "0x55d7fb1df0a0-RealLiteralConstant", - "real": "0x55d7fb1df0a0-Real", - "kind": "0x55d7fb1df0b0-KindParam" + "id": "0x556d3816c0a0-RealLiteralConstant", + "real": "0x556d3816c0a0-Real", + "kind": "0x556d3816c0b0-KindParam" }, { - "id": "0x55d7fb1df0a0-Real", + "id": "0x556d3816c0a0-Real", "source": "1.0" }, { - "id": "0x55d7fb1df0b0-KindParam", + "id": "0x556d3816c0b0-KindParam", "variantKey": "Expr", - "Expr": "0x55d7fb1df0b0-Name" + "Expr": "0x556d3816c0b0-Name" }, { - "id": "0x55d7fb1df0b0-Name", + "id": "0x556d3816c0b0-Name", "source": "sp" }, { - "id": "0x55d7fb1df050-ComplexPart", + "id": "0x556d3816c050-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x55d7fb1df050-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x556d3816c050-SignedRealLiteralConstant" }, { - "id": "0x55d7fb1df050-SignedRealLiteralConstant", - "RealLiteralConstant": "0x55d7fb1df050-RealLiteralConstant" + "id": "0x556d3816c050-SignedRealLiteralConstant", + "RealLiteralConstant": "0x556d3816c050-RealLiteralConstant" }, { - "id": "0x55d7fb1df050-RealLiteralConstant", - "real": "0x55d7fb1df050-Real", - "kind": "0x55d7fb1df060-KindParam" + "id": "0x556d3816c050-RealLiteralConstant", + "real": "0x556d3816c050-Real", + "kind": "0x556d3816c060-KindParam" }, { - "id": "0x55d7fb1df050-Real", + "id": "0x556d3816c050-Real", "source": "0.5" }, { - "id": "0x55d7fb1df060-KindParam", + "id": "0x556d3816c060-KindParam", "variantKey": "Expr", - "Expr": "0x55d7fb1df060-Name" + "Expr": "0x556d3816c060-Name" }, { - "id": "0x55d7fb1df060-Name", + "id": "0x556d3816c060-Name", "source": "sp" }, { - "id": "0x55d7fb1e3098-ExecutionPart" + "id": "0x556d38170098-ExecutionPart" }, { - "id": "0x55d7fb1e3098-list" + "id": "0x556d38170098-list" }, { - "id": "0x55d7fb1e3010-Statement", - "statement": "0x55d7fb1e3020-EndProgramStmt", + "id": "0x556d38170010-Statement", + "statement": "0x556d38170020-EndProgramStmt", "source": "end program COMPLEX_LITERALS" }, { - "id": "0x55d7fb1e3020-EndProgramStmt", - "Name": "0x55d7fb1e3020-Name" + "id": "0x556d38170020-EndProgramStmt", + "Name": "0x556d38170020-Name" }, { - "id": "0x55d7fb1e3020-Name", + "id": "0x556d38170020-Name", "source": "COMPLEX_LITERALS" } ], "comments": [ { "text": " 1. Basic Default Real Literals", - "stmtId": "0x55d7fb1ddab0-Statement", + "stmtId": "0x556d3816aab0-Statement", "trailing": false }, { "text": " 2. Integer Components (automatically converted to real)", - "stmtId": "0x55d7fb1ddd60-Statement", + "stmtId": "0x556d3816ad60-Statement", "trailing": false }, { "text": " 3. Scientific / Exponential Notation", - "stmtId": "0x55d7fb1de010-Statement", + "stmtId": "0x556d3816b010-Statement", "trailing": false }, { "text": " Represents (150.0, -0.2)", - "stmtId": "0x55d7fb1de010-Statement", + "stmtId": "0x556d3816b010-Statement", "trailing": true }, { "text": " 4. Double Precision (using 'd' exponent notation)", - "stmtId": "0x55d7fb1dea30-Statement", + "stmtId": "0x556d3816ba30-Statement", "trailing": false }, { "text": " 5. Kind Parameter Suffixes (Modern Standard)", - "stmtId": "0x55d7fb1dee20-Statement", + "stmtId": "0x556d3816be20-Statement", "trailing": false } ], From 9503d67824019e1d57af58da76e912d501efc155 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 22 Jul 2026 19:04:37 +0100 Subject: [PATCH 072/260] Improve literal representation and fix processing --- .../specs/fortran/ast/FortranNodeFactory.java | 5 +- .../specs/fortran/ast/nodes/FortranNode.java | 5 ++ .../fortran/ast/nodes/expr/IntLiteral.java | 21 ++----- .../fortran/ast/nodes/expr/KindedLiteral.java | 29 +++++++++ .../specs/fortran/ast/nodes/expr/Literal.java | 16 ----- .../ast/nodes/expr/LogicalLiteral.java | 23 ++----- .../fortran/ast/nodes/expr/NamedLiteral.java | 8 ++- .../fortran/ast/nodes/expr/RealLiteral.java | 13 +++- .../fortran/ast/nodes/expr/StringLiteral.java | 30 +++------ .../up/fe/specs/fortran/parser/FlangName.java | 1 + .../fe/specs/fortran/parser/FlangToClass.java | 3 +- .../fortran/parser/FortranAstBuilder.java | 4 +- .../fortran/parser/FortranJsonParser.java | 2 + .../parser/processors/ExprProcessors.java | 63 ++++++++++++++++--- 14 files changed, 136 insertions(+), 87 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/KindedLiteral.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java index bdb8d2f2..925cd322 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java @@ -193,7 +193,7 @@ public StringLiteral stringLiteral(String literal) { public StringLiteral stringLiteral(String literal, String kindParam) { DataStore data = newDataStore(StringLiteral.class); - data.set(Literal.SOURCE_LITERAL, literal); + data.set(StringLiteral.CONTENTS, literal); return new StringLiteral(data, Collections.emptyList()); } @@ -299,8 +299,7 @@ public IntLiteral intLiteral(int value) { DataStore data = newDataStore(IntLiteral.class); IntLiteral newNode = new IntLiteral(data, Collections.emptyList()); - - newNode.set(IntLiteral.SOURCE_LITERAL, Integer.toString(value)); + newNode.set(IntLiteral.SOURCE, Integer.toString(value)); return newNode; } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java index 6388c93d..4fd9a4d5 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java @@ -132,6 +132,11 @@ protected String keyword(FortranKeyword keyword) { return get(CONTEXT).get(FortranContext.FORTRAN_KEYWORDS).get(keyword); } + protected String encase(String code) { + var lowercase = get(CONTEXT).get(FortranContext.FORTRAN_KEYWORDS).isLowercase(); + return lowercase ? code.toLowerCase() : code.toUpperCase(); + } + protected boolean fixedForm() { return getContext().get(FortranContext.FIXED_FORM); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/IntLiteral.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/IntLiteral.java index 75be3a80..075c5335 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/IntLiteral.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/IntLiteral.java @@ -6,34 +6,23 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import java.util.Collection; -import java.util.Optional; /** * R708 int-literal-constant */ -public class IntLiteral extends Literal { - - // DATAKEYS BEGIN - - /** - * A prefix indicating the kind of the string (e.g., encoding) - */ - public final static DataKey> KIND_PARAM = KeyFactory.optional("kindParam"); - - - // DATAKEYS END +public class IntLiteral extends KindedLiteral { + public static final DataKey SOURCE = KeyFactory.string("source"); public IntLiteral(DataStore data, Collection children) { super(data, children); } - public int getValue() { - return Integer.valueOf(get(SOURCE_LITERAL)); + public String getSource() { + return get(SOURCE); } @Override public String getCode() { - var suffix = get(KIND_PARAM).map(k -> "_" + k).orElse(""); - return get(SOURCE_LITERAL) + suffix; + return getSource() + getKindSuffix(); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/KindedLiteral.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/KindedLiteral.java new file mode 100644 index 00000000..cfba587d --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/KindedLiteral.java @@ -0,0 +1,29 @@ +package pt.up.fe.specs.fortran.ast.nodes.expr; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; +import java.util.Optional; + +public abstract class KindedLiteral extends Literal { + public static final DataKey> KIND_PARAM = KeyFactory.optional("kindParam"); + + public KindedLiteral(DataStore data, Collection children) { + super(data, children); + } + + public Optional getKindParam() { + return get(KIND_PARAM); + } + + protected String getKindPrefix() { + return getKindParam().map(k -> k + "_").orElseGet(() -> ""); + } + + protected String getKindSuffix() { + return getKindParam().map(k -> "_" + k).orElseGet(() -> ""); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/Literal.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/Literal.java index d44bf94d..54fce46d 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/Literal.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/Literal.java @@ -1,7 +1,5 @@ package pt.up.fe.specs.fortran.ast.nodes.expr; -import org.suikasoft.jOptions.Datakey.DataKey; -import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; @@ -11,21 +9,7 @@ * R605 literal-constant */ public abstract class Literal extends Expr { - - // DATAKEYS BEGIN - - /** - * A string representing the literal - */ - public final static DataKey SOURCE_LITERAL = KeyFactory.string("sourceLiteral"); - - // DATAKEYS END - public Literal(DataStore data, Collection children) { super(data, children); } - - public String getLiteral() { - return get(SOURCE_LITERAL); - } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/LogicalLiteral.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/LogicalLiteral.java index 222544a3..2e30ff39 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/LogicalLiteral.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/LogicalLiteral.java @@ -6,37 +6,24 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import java.util.Collection; -import java.util.Optional; /** * R708 int-literal-constant */ -public class LogicalLiteral extends Literal { - - // DATAKEYS BEGIN - - /** - * A prefix indicating the kind of the string (e.g., encoding) - */ - public final static DataKey> KIND_PARAM = KeyFactory.optional("kindParam"); - - - // DATAKEYS END +public class LogicalLiteral extends KindedLiteral { + public static final DataKey VALUE = KeyFactory.bool("value"); public LogicalLiteral(DataStore data, Collection children) { super(data, children); } public boolean getValue() { - return get(SOURCE_LITERAL).equals("1"); + return get(VALUE); } @Override public String getCode() { - if (getLiteral().equals("1")) { - return ".true."; - } else { - return ".false."; - } + var valueCode = encase(getValue() ? ".true." : ".false."); + return valueCode + getKindSuffix(); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/NamedLiteral.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/NamedLiteral.java index 8b40193c..4f8f6d44 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/NamedLiteral.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/NamedLiteral.java @@ -1,20 +1,24 @@ package pt.up.fe.specs.fortran.ast.nodes.expr; +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import java.util.Collection; public class NamedLiteral extends Literal { + public static final DataKey NAME = KeyFactory.string("name"); + public NamedLiteral(DataStore data, Collection children) { super(data, children); } public String getName() { - return getLiteral(); + return get(NAME); } public String getCode() { - return getLiteral(); + return getName(); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/RealLiteral.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/RealLiteral.java index 8be35164..5f31ebfd 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/RealLiteral.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/RealLiteral.java @@ -1,17 +1,26 @@ package pt.up.fe.specs.fortran.ast.nodes.expr; +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import java.util.Collection; +import java.util.Optional; + +public class RealLiteral extends KindedLiteral { + public static final DataKey SOURCE = KeyFactory.string("source"); -public class RealLiteral extends Literal { public RealLiteral(DataStore data, Collection children) { super(data, children); } + public String getSource() { + return get(SOURCE); + } + @Override public String getCode() { - return getLiteral(); + return getSource() + getKindSuffix(); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/StringLiteral.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/StringLiteral.java index a4dcea66..e3fb6f51 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/StringLiteral.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/StringLiteral.java @@ -13,37 +13,27 @@ /** * R724 char-literal-constant */ -public class StringLiteral extends Literal { - - // DATAKEYS BEGIN - - /** - * A prefix indicating the kind of the string (e.g., encoding) - */ - public final static DataKey> KIND_PARAM = KeyFactory.optional("kindParam"); - - - // DATAKEYS END +public class StringLiteral extends KindedLiteral { + public static final DataKey CONTENTS = KeyFactory.string("contents"); public StringLiteral(DataStore data, Collection children) { super(data, children); } + public String getContents() { + return get(CONTENTS); + } + @Override public String getCode() { - char delimiter = get(CONTEXT).get(FortranContext.FORTRAN_OPTIONS).get(FortranAstOptions.SINGLE_QUOTE_STRINGS) ? - '\'' : '"'; - - var code = new StringBuilder(); - - // Get kind param prefix - var prefix = get(KIND_PARAM).map(p -> p + "_").orElse(""); + char delimiter = get(CONTEXT).get(FortranContext.FORTRAN_OPTIONS).get(FortranAstOptions.SINGLE_QUOTE_STRINGS) + ? '\'' : '"'; // TODO: Check if needed // Escape literal according to delimiter var delimiterS = Character.toString(delimiter); - var escapedString = getLiteral().replace(delimiterS, delimiterS + delimiterS); + var escapedString = getContents().replace(delimiterS, delimiterS + delimiterS); - return prefix + delimiterS + escapedString + delimiterS; + return getKindPrefix() + delimiterS + escapedString + delimiterS; } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 559e354a..5ce2757c 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -101,6 +101,7 @@ public enum FlangName implements StringProvider { SIGNED_INT_LITERAL_CONSTANT, LOGICAL_LITERAL_CONSTANT, REAL_LITERAL_CONSTANT, + SIGN, SIGNED_REAL_LITERAL_CONSTANT, KIND_PARAM, STAR, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 87a0c512..22909c21 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -118,6 +118,7 @@ public class FlangToClass { NAME_TO_CLASS.put(FlangName.KIND_SELECTOR, KindSelector.class); NAME_TO_CLASS.put(FlangName.LOGICAL_LITERAL_CONSTANT, LogicalLiteral.class); NAME_TO_CLASS.put(FlangName.REAL_LITERAL_CONSTANT, RealLiteral.class); + NAME_TO_CLASS.put(FlangName.SIGNED_REAL_LITERAL_CONSTANT, RealLiteral.class); NAME_TO_CLASS.put(FlangName.FORMAT, Format.class); NAME_TO_CLASS.put(FlangName.STAR, Star.class); NAME_TO_CLASS.put(FlangName.PARENTHESES, ParenExpr.class); @@ -155,7 +156,7 @@ public class FlangToClass { NAME_TO_CLASS.put(FlangName.DOUBLE_PRECISION, DoublePrecisionType.class); NAME_TO_CLASS.put(FlangName.CHARACTER, CharacterType.class); NAME_TO_CLASS.put(FlangName.REAL, RealType.class); - NAME_TO_CLASS.put(FlangName.COMPLEX, ComplexLiteral.class); + NAME_TO_CLASS.put(FlangName.COMPLEX, ComplexType.class); NAME_TO_CLASS.put(FlangName.LENGTH_SELECTOR, LengthSelector.class); /// LOOP diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranAstBuilder.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranAstBuilder.java index e90319ab..4b7d6844 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranAstBuilder.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranAstBuilder.java @@ -5,10 +5,10 @@ import pt.up.fe.specs.fortran.ast.nodes.program.ProgramUnit; import pt.up.fe.specs.fortran.ast.nodes.utils.LabelRef; import pt.up.fe.specs.fortran.parser.processors.Nodes; -import pt.up.fe.specs.util.SpecsCheck; import java.util.HashMap; import java.util.Map; +import java.util.Objects; import java.util.Optional; /** @@ -75,7 +75,7 @@ private void connectLabelDeclsRefs() { var id = getLabelDeclId(prefix, labelRef.getLabel()); var labelDecl = labelDecls.get(id); - SpecsCheck.checkNotNull(labelDecl, () -> "Expected to find a LabelDecl for '" + id + "', but none was found: " + labelDecls); + Objects.requireNonNull(labelDecl, () -> "Expected to find a LabelDecl for '" + id + "', but none was found: " + labelDecls); labelRef.set(LabelRef.LABEL_DECL, labelDecl); } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java index ff4331c9..212cfe9b 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java @@ -185,6 +185,8 @@ private void processCommentData(Map commentData) { if (trailing.equals("false")) { stmtAttrs.putIfAbsent("leadingComments", new ArrayList<>()); + + @SuppressWarnings("unchecked") // leadingComments list will always only contain strings var stmtComments = (List) stmtAttrs.get("leadingComments"); stmtComments.add(content); } else { diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java index fd6f3f2c..f5e589af 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java @@ -6,6 +6,8 @@ import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; +import java.util.Optional; + public class ExprProcessors extends ANodeProcessor { @@ -13,24 +15,71 @@ public ExprProcessors(FortranJsonResult data) { super(data); } + public Optional getKindParam(String kindParamId) { + var kindParamAttrs = attributes().get(kindParamId); + + switch (kindParamAttrs.getVariantKey()) { + case "uint64_t" -> { + var kindParam = kindParamAttrs.getString("uint64_t"); + return Optional.of(kindParam); + } + case "Expr" -> { + var nameAttrs = attributes().get(kindParamAttrs.getString(FlangName.EXPR)); + var kindParam = nameAttrs.getString("source"); + return Optional.of(kindParam); + } + default -> { + return Optional.empty(); + } + } + } + public void stringLiteral(StringLiteral stringLiteral) { - stringLiteral.set(StringLiteral.SOURCE_LITERAL, attributes().getString(stringLiteral, "string")); + var contents = attributes().getString(stringLiteral, "string"); + stringLiteral.set(StringLiteral.CONTENTS, contents); + + var kindParam = attributes(stringLiteral) + .getOptionalString(FlangName.KIND_PARAM) + .flatMap(this::getKindParam); + stringLiteral.set(StringLiteral.KIND_PARAM, kindParam); } public void intLiteral(IntLiteral intLiteral) { - intLiteral.set(StringLiteral.SOURCE_LITERAL, attributes().getString(intLiteral, "CharBlock")); + var source = attributes().getString(intLiteral, "CharBlock"); + intLiteral.set(IntLiteral.SOURCE, source); - if (attributes(intLiteral).has(FlangName.KIND_PARAM)) { - intLiteral.setOptional(IntLiteral.KIND_PARAM, attributes().getString(intLiteral, "uint64_t", FlangName.KIND_PARAM)); - } + var kindParam = attributes(intLiteral) + .getOptionalString(FlangName.KIND_PARAM) + .flatMap(this::getKindParam); + intLiteral.set(IntLiteral.KIND_PARAM, kindParam); } public void logicalLiteral(LogicalLiteral logicalLiteral) { - logicalLiteral.set(StringLiteral.SOURCE_LITERAL, attributes().getString(logicalLiteral, "bool")); + var value = attributes().getString(logicalLiteral, "bool").equals("1"); + logicalLiteral.set(LogicalLiteral.VALUE, value); + + var kindParam = attributes(logicalLiteral) + .getOptionalString(FlangName.KIND_PARAM) + .flatMap(this::getKindParam); + logicalLiteral.set(LogicalLiteral.KIND_PARAM, kindParam); } public void realLiteral(RealLiteral realLiteral) { - realLiteral.set(RealLiteral.SOURCE_LITERAL, attributes().get(attributes().getString(realLiteral, "real")).getString("source")); + var attrs = attributes(realLiteral); + + if (attrs.has(FlangName.REAL_LITERAL_CONSTANT)) { + var childId = attrs.getString(FlangName.REAL_LITERAL_CONSTANT); + attrs = attributes().get(childId); + } + + var realId = attrs.getString("real"); + var realSource = attributes().get(realId).getString("source"); + realLiteral.set(RealLiteral.SOURCE, realSource); + + var kindParam = attrs.getOptionalString("kind") + .flatMap(this::getKindParam); + + realLiteral.set(RealLiteral.KIND_PARAM, kindParam); } public void parenExpr(ParenExpr parenExpr) { From 96b4aaca557c57977244d6dc9ab932788a7ff87a Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 22 Jul 2026 19:05:34 +0100 Subject: [PATCH 073/260] Fix complex literal test source code --- .../fortran/parser/expr/complex_literal.f90 | 4 +- .../fortran/parser/expr/complex_literal.json | 694 +++++++++--------- 2 files changed, 349 insertions(+), 349 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/expr/complex_literal.f90 b/FortranParser/resources-test/fortran/parser/expr/complex_literal.f90 index c93349b8..72bb17d0 100644 --- a/FortranParser/resources-test/fortran/parser/expr/complex_literal.f90 +++ b/FortranParser/resources-test/fortran/parser/expr/complex_literal.f90 @@ -1,4 +1,4 @@ -program complex_literals +program complex_literal use, intrinsic :: iso_fortran_env, only: sp => real32, dp => real64 ! 1. Basic Default Real Literals @@ -16,4 +16,4 @@ program complex_literals ! 5. Kind Parameter Suffixes (Modern Standard) complex(dp) :: c_double_kind = (2.5_dp, -5.5_dp) complex(sp) :: c_single_kind = (1.0_sp, 0.5_sp) -end program complex_literals \ No newline at end of file +end program complex_literal \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/expr/complex_literal.json b/FortranParser/resources-test/fortran/parser/expr/complex_literal.json index 376963af..6480d233 100644 --- a/FortranParser/resources-test/fortran/parser/expr/complex_literal.json +++ b/FortranParser/resources-test/fortran/parser/expr/complex_literal.json @@ -2,856 +2,856 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x556d3813ff00-Program", + "id": "0x560afc987f00-Program", "ProgramUnit": [ - "0x556d3817bef0-ProgramUnit" + "0x560afc9c3ef0-ProgramUnit" ] }, { - "id": "0x556d3817bef0-ProgramUnit", + "id": "0x560afc9c3ef0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x556d38170010-MainProgram" + "MainProgram": "0x560afc9b8010-MainProgram" }, { - "id": "0x556d38170010-MainProgram", - "Statement": "0x556d38170158-Statement", - "SpecificationPart": "0x556d381700b0-SpecificationPart", - "ExecutionPart": "0x556d38170098-ExecutionPart", - "Statement": "0x556d38170010-Statement" + "id": "0x560afc9b8010-MainProgram", + "Statement": "0x560afc9b8158-Statement", + "SpecificationPart": "0x560afc9b80b0-SpecificationPart", + "ExecutionPart": "0x560afc9b8098-ExecutionPart", + "Statement": "0x560afc9b8010-Statement" }, { - "id": "0x556d38170158-Statement", - "statement": "0x556d38170168-ProgramStmt", - "source": "program COMPLEX_LITERALS" + "id": "0x560afc9b8158-Statement", + "statement": "0x560afc9b8168-ProgramStmt", + "source": "program COMPLEX_LITERAL" }, { - "id": "0x556d38170168-ProgramStmt", - "Name": "0x556d38170168-Name" + "id": "0x560afc9b8168-ProgramStmt", + "Name": "0x560afc9b8168-Name" }, { - "id": "0x556d38170168-Name", - "source": "COMPLEX_LITERALS" + "id": "0x560afc9b8168-Name", + "source": "COMPLEX_LITERAL" }, { - "id": "0x556d381700b0-SpecificationPart", + "id": "0x560afc9b80b0-SpecificationPart", "Statement": [ - "0x556d3817ac00-Statement" + "0x560afc9c2c00-Statement" ], - "ImplicitPart": "0x556d381700c8-ImplicitPart", + "ImplicitPart": "0x560afc9b80c8-ImplicitPart", "DeclarationConstruct": [ - "0x556d3816aab0-DeclarationConstruct", - "0x556d3816ad60-DeclarationConstruct", - "0x556d3816b010-DeclarationConstruct", - "0x556d3816ba30-DeclarationConstruct", - "0x556d3816be20-DeclarationConstruct", - "0x556d3816c210-DeclarationConstruct" + "0x560afc9b2ab0-DeclarationConstruct", + "0x560afc9b2d60-DeclarationConstruct", + "0x560afc9b3010-DeclarationConstruct", + "0x560afc9b3a30-DeclarationConstruct", + "0x560afc9b3e20-DeclarationConstruct", + "0x560afc9b4210-DeclarationConstruct" ] }, { - "id": "0x556d3817ac00-Statement", - "statement": "0x556d38183cb0-UseStmt", + "id": "0x560afc9c2c00-Statement", + "statement": "0x560afc9cbcb0-UseStmt", "source": "use, intrinsic :: iso_fortran_env, only: sp => real32, dp => real64" }, { - "id": "0x556d38183cb0-UseStmt", - "moduleName": "0x556d38183cb8-Name" + "id": "0x560afc9cbcb0-UseStmt", + "moduleName": "0x560afc9cbcb8-Name" }, { - "id": "0x556d38183cb0-ModuleNature = Intrinsic", + "id": "0x560afc9cbcb0-ModuleNature = Intrinsic", "disambiguation": "Fortran::parser::UseStmt::ModuleNature", "value": "Intrinsic" }, { - "id": "0x556d38183cb8-Name", + "id": "0x560afc9cbcb8-Name", "source": "iso_fortran_env" }, { - "id": "0x556d3814d170-Only", + "id": "0x560afc995170-Only", "variantKey": "Rename", - "Rename": "0x556d3814d170-Rename" + "Rename": "0x560afc995170-Rename" }, { - "id": "0x556d3814d170-Rename", + "id": "0x560afc995170-Rename", "variantKey": "Names", - "Names": "0x556d3814d170-Names" + "Names": "0x560afc995170-Names" }, { - "id": "0x556d3814d170-Names", - "Name": "0x556d3814d170-Name" + "id": "0x560afc995170-Names", + "Name": "0x560afc995170-Name" }, { - "id": "0x556d3814d188-Name", + "id": "0x560afc995188-Name", "source": "sp" }, { - "id": "0x556d3814d170-Name", + "id": "0x560afc995170-Name", "source": "real32" }, { - "id": "0x556d3813e4e0-Only", + "id": "0x560afc9864e0-Only", "variantKey": "Rename", - "Rename": "0x556d3813e4e0-Rename" + "Rename": "0x560afc9864e0-Rename" }, { - "id": "0x556d3813e4e0-Rename", + "id": "0x560afc9864e0-Rename", "variantKey": "Names", - "Names": "0x556d3813e4e0-Names" + "Names": "0x560afc9864e0-Names" }, { - "id": "0x556d3813e4e0-Names", - "Name": "0x556d3813e4e0-Name" + "id": "0x560afc9864e0-Names", + "Name": "0x560afc9864e0-Name" }, { - "id": "0x556d3813e4f8-Name", + "id": "0x560afc9864f8-Name", "source": "dp" }, { - "id": "0x556d3813e4e0-Name", + "id": "0x560afc9864e0-Name", "source": "real64" }, { - "id": "0x556d381700c8-ImplicitPart" + "id": "0x560afc9b80c8-ImplicitPart" }, { - "id": "0x556d3816aab0-DeclarationConstruct", + "id": "0x560afc9b2ab0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x556d3816aab0-SpecificationConstruct" + "SpecificationConstruct": "0x560afc9b2ab0-SpecificationConstruct" }, { - "id": "0x556d3816aab0-SpecificationConstruct", + "id": "0x560afc9b2ab0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x556d3816aab0-Statement" + "Statement": "0x560afc9b2ab0-Statement" }, { - "id": "0x556d3816aab0-Statement", - "statement": "0x556d3817c710-TypeDeclarationStmt", + "id": "0x560afc9b2ab0-Statement", + "statement": "0x560afc9c4710-TypeDeclarationStmt", "source": "complex :: c_default =(3.0, 4.0)" }, { - "id": "0x556d3817c710-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x556d3817c740-DeclarationTypeSpec", + "id": "0x560afc9c4710-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x560afc9c4740-DeclarationTypeSpec", "EntityDecl": [ - "0x556d3816a8e0-EntityDecl" + "0x560afc9b28e0-EntityDecl" ] }, { - "id": "0x556d3817c740-DeclarationTypeSpec", + "id": "0x560afc9c4740-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x556d3817c740-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x560afc9c4740-IntrinsicTypeSpec" }, { - "id": "0x556d3817c740-IntrinsicTypeSpec", + "id": "0x560afc9c4740-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x556d3817c740-Complex" + "Complex": "0x560afc9c4740-Complex" }, { - "id": "0x556d3817c740-Complex" + "id": "0x560afc9c4740-Complex" }, { - "id": "0x556d3816a8e0-EntityDecl", - "Name": "0x556d3816a998-Name", - "Initialization": "0x556d3816a8e0-Initialization" + "id": "0x560afc9b28e0-EntityDecl", + "Name": "0x560afc9b2998-Name", + "Initialization": "0x560afc9b28e0-Initialization" }, { - "id": "0x556d3816a998-Name", + "id": "0x560afc9b2998-Name", "source": "c_default" }, { - "id": "0x556d3816a8e0-Initialization", + "id": "0x560afc9b28e0-Initialization", "variantKey": "Expr", - "Expr": "0x556d380df790-Expr" + "Expr": "0x560afc927790-Expr" }, { - "id": "0x556d380df790-Expr", + "id": "0x560afc927790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x556d380df7b0-LiteralConstant" + "LiteralConstant": "0x560afc9277b0-LiteralConstant" }, { - "id": "0x556d380df7b0-LiteralConstant", + "id": "0x560afc9277b0-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x556d380df7b0-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x560afc9277b0-ComplexLiteralConstant" }, { - "id": "0x556d380df7b0-ComplexLiteralConstant", - "real": "0x556d380df800-ComplexPart", - "imaginary": "0x556d380df7b0-ComplexPart" + "id": "0x560afc9277b0-ComplexLiteralConstant", + "real": "0x560afc927800-ComplexPart", + "imaginary": "0x560afc9277b0-ComplexPart" }, { - "id": "0x556d380df800-ComplexPart", + "id": "0x560afc927800-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x556d380df800-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x560afc927800-SignedRealLiteralConstant" }, { - "id": "0x556d380df800-SignedRealLiteralConstant", - "RealLiteralConstant": "0x556d380df800-RealLiteralConstant" + "id": "0x560afc927800-SignedRealLiteralConstant", + "RealLiteralConstant": "0x560afc927800-RealLiteralConstant" }, { - "id": "0x556d380df800-RealLiteralConstant", - "real": "0x556d380df800-Real" + "id": "0x560afc927800-RealLiteralConstant", + "real": "0x560afc927800-Real" }, { - "id": "0x556d380df800-Real", + "id": "0x560afc927800-Real", "source": "3.0" }, { - "id": "0x556d380df7b0-ComplexPart", + "id": "0x560afc9277b0-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x556d380df7b0-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x560afc9277b0-SignedRealLiteralConstant" }, { - "id": "0x556d380df7b0-SignedRealLiteralConstant", - "RealLiteralConstant": "0x556d380df7b0-RealLiteralConstant" + "id": "0x560afc9277b0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x560afc9277b0-RealLiteralConstant" }, { - "id": "0x556d380df7b0-RealLiteralConstant", - "real": "0x556d380df7b0-Real" + "id": "0x560afc9277b0-RealLiteralConstant", + "real": "0x560afc9277b0-Real" }, { - "id": "0x556d380df7b0-Real", + "id": "0x560afc9277b0-Real", "source": "4.0" }, { - "id": "0x556d3816ad60-DeclarationConstruct", + "id": "0x560afc9b2d60-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x556d3816ad60-SpecificationConstruct" + "SpecificationConstruct": "0x560afc9b2d60-SpecificationConstruct" }, { - "id": "0x556d3816ad60-SpecificationConstruct", + "id": "0x560afc9b2d60-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x556d3816ad60-Statement" + "Statement": "0x560afc9b2d60-Statement" }, { - "id": "0x556d3816ad60-Statement", - "statement": "0x556d3817c790-TypeDeclarationStmt", + "id": "0x560afc9b2d60-Statement", + "statement": "0x560afc9c4790-TypeDeclarationStmt", "source": "complex :: c_int =(1, -2)" }, { - "id": "0x556d3817c790-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x556d3817c7c0-DeclarationTypeSpec", + "id": "0x560afc9c4790-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x560afc9c47c0-DeclarationTypeSpec", "EntityDecl": [ - "0x556d3816ac70-EntityDecl" + "0x560afc9b2c70-EntityDecl" ] }, { - "id": "0x556d3817c7c0-DeclarationTypeSpec", + "id": "0x560afc9c47c0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x556d3817c7c0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x560afc9c47c0-IntrinsicTypeSpec" }, { - "id": "0x556d3817c7c0-IntrinsicTypeSpec", + "id": "0x560afc9c47c0-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x556d3817c7c0-Complex" + "Complex": "0x560afc9c47c0-Complex" }, { - "id": "0x556d3817c7c0-Complex" + "id": "0x560afc9c47c0-Complex" }, { - "id": "0x556d3816ac70-EntityDecl", - "Name": "0x556d3816ad28-Name", - "Initialization": "0x556d3816ac70-Initialization" + "id": "0x560afc9b2c70-EntityDecl", + "Name": "0x560afc9b2d28-Name", + "Initialization": "0x560afc9b2c70-Initialization" }, { - "id": "0x556d3816ad28-Name", + "id": "0x560afc9b2d28-Name", "source": "c_int" }, { - "id": "0x556d3816ac70-Initialization", + "id": "0x560afc9b2c70-Initialization", "variantKey": "Expr", - "Expr": "0x556d3816ab80-Expr" + "Expr": "0x560afc9b2b80-Expr" }, { - "id": "0x556d3816ab80-Expr", + "id": "0x560afc9b2b80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x556d3816aba0-LiteralConstant" + "LiteralConstant": "0x560afc9b2ba0-LiteralConstant" }, { - "id": "0x556d3816aba0-LiteralConstant", + "id": "0x560afc9b2ba0-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x556d3816aba0-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x560afc9b2ba0-ComplexLiteralConstant" }, { - "id": "0x556d3816aba0-ComplexLiteralConstant", - "real": "0x556d3816abf0-ComplexPart", - "imaginary": "0x556d3816aba0-ComplexPart" + "id": "0x560afc9b2ba0-ComplexLiteralConstant", + "real": "0x560afc9b2bf0-ComplexPart", + "imaginary": "0x560afc9b2ba0-ComplexPart" }, { - "id": "0x556d3816abf0-ComplexPart", + "id": "0x560afc9b2bf0-ComplexPart", "variantKey": "SignedIntLiteralConstant", - "SignedIntLiteralConstant": "0x556d3816abf0-SignedIntLiteralConstant" + "SignedIntLiteralConstant": "0x560afc9b2bf0-SignedIntLiteralConstant" }, { - "id": "0x556d3816abf0-SignedIntLiteralConstant", + "id": "0x560afc9b2bf0-SignedIntLiteralConstant", "CharBlock": "1", "source": "1" }, { - "id": "0x556d3816aba0-ComplexPart", + "id": "0x560afc9b2ba0-ComplexPart", "variantKey": "SignedIntLiteralConstant", - "SignedIntLiteralConstant": "0x556d3816aba0-SignedIntLiteralConstant" + "SignedIntLiteralConstant": "0x560afc9b2ba0-SignedIntLiteralConstant" }, { - "id": "0x556d3816aba0-SignedIntLiteralConstant", + "id": "0x560afc9b2ba0-SignedIntLiteralConstant", "CharBlock": "-2", "source": "-2" }, { - "id": "0x556d3816b010-DeclarationConstruct", + "id": "0x560afc9b3010-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x556d3816b010-SpecificationConstruct" + "SpecificationConstruct": "0x560afc9b3010-SpecificationConstruct" }, { - "id": "0x556d3816b010-SpecificationConstruct", + "id": "0x560afc9b3010-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x556d3816b010-Statement" + "Statement": "0x560afc9b3010-Statement" }, { - "id": "0x556d3816b010-Statement", - "statement": "0x556d3816ab00-TypeDeclarationStmt", + "id": "0x560afc9b3010-Statement", + "statement": "0x560afc9b2b00-TypeDeclarationStmt", "source": "complex :: c_exp =(1.5e2, -2.0e-1)" }, { - "id": "0x556d3816ab00-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x556d3816ab30-DeclarationTypeSpec", + "id": "0x560afc9b2b00-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x560afc9b2b30-DeclarationTypeSpec", "EntityDecl": [ - "0x556d3816af20-EntityDecl" + "0x560afc9b2f20-EntityDecl" ] }, { - "id": "0x556d3816ab30-DeclarationTypeSpec", + "id": "0x560afc9b2b30-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x556d3816ab30-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x560afc9b2b30-IntrinsicTypeSpec" }, { - "id": "0x556d3816ab30-IntrinsicTypeSpec", + "id": "0x560afc9b2b30-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x556d3816ab30-Complex" + "Complex": "0x560afc9b2b30-Complex" }, { - "id": "0x556d3816ab30-Complex" + "id": "0x560afc9b2b30-Complex" }, { - "id": "0x556d3816af20-EntityDecl", - "Name": "0x556d3816afd8-Name", - "Initialization": "0x556d3816af20-Initialization" + "id": "0x560afc9b2f20-EntityDecl", + "Name": "0x560afc9b2fd8-Name", + "Initialization": "0x560afc9b2f20-Initialization" }, { - "id": "0x556d3816afd8-Name", + "id": "0x560afc9b2fd8-Name", "source": "c_exp" }, { - "id": "0x556d3816af20-Initialization", + "id": "0x560afc9b2f20-Initialization", "variantKey": "Expr", - "Expr": "0x556d3816ae30-Expr" + "Expr": "0x560afc9b2e30-Expr" }, { - "id": "0x556d3816ae30-Expr", + "id": "0x560afc9b2e30-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x556d3816ae50-LiteralConstant" + "LiteralConstant": "0x560afc9b2e50-LiteralConstant" }, { - "id": "0x556d3816ae50-LiteralConstant", + "id": "0x560afc9b2e50-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x556d3816ae50-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x560afc9b2e50-ComplexLiteralConstant" }, { - "id": "0x556d3816ae50-ComplexLiteralConstant", - "real": "0x556d3816aea0-ComplexPart", - "imaginary": "0x556d3816ae50-ComplexPart" + "id": "0x560afc9b2e50-ComplexLiteralConstant", + "real": "0x560afc9b2ea0-ComplexPart", + "imaginary": "0x560afc9b2e50-ComplexPart" }, { - "id": "0x556d3816aea0-ComplexPart", + "id": "0x560afc9b2ea0-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x556d3816aea0-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x560afc9b2ea0-SignedRealLiteralConstant" }, { - "id": "0x556d3816aea0-SignedRealLiteralConstant", - "RealLiteralConstant": "0x556d3816aea0-RealLiteralConstant" + "id": "0x560afc9b2ea0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x560afc9b2ea0-RealLiteralConstant" }, { - "id": "0x556d3816aea0-RealLiteralConstant", - "real": "0x556d3816aea0-Real" + "id": "0x560afc9b2ea0-RealLiteralConstant", + "real": "0x560afc9b2ea0-Real" }, { - "id": "0x556d3816aea0-Real", + "id": "0x560afc9b2ea0-Real", "source": "1.5e2" }, { - "id": "0x556d3816ae50-ComplexPart", + "id": "0x560afc9b2e50-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x556d3816ae50-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x560afc9b2e50-SignedRealLiteralConstant" }, { - "id": "0x556d3816ae50-SignedRealLiteralConstant", + "id": "0x560afc9b2e50-SignedRealLiteralConstant", "Sign": "-", - "RealLiteralConstant": "0x556d3816ae50-RealLiteralConstant" + "RealLiteralConstant": "0x560afc9b2e50-RealLiteralConstant" }, { - "id": "0x556d3816ae50-RealLiteralConstant", - "real": "0x556d3816ae50-Real" + "id": "0x560afc9b2e50-RealLiteralConstant", + "real": "0x560afc9b2e50-Real" }, { - "id": "0x556d3816ae50-Real", + "id": "0x560afc9b2e50-Real", "source": "2.0e-1" }, { - "id": "0x556d3816ba30-DeclarationConstruct", + "id": "0x560afc9b3a30-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x556d3816ba30-SpecificationConstruct" + "SpecificationConstruct": "0x560afc9b3a30-SpecificationConstruct" }, { - "id": "0x556d3816ba30-SpecificationConstruct", + "id": "0x560afc9b3a30-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x556d3816ba30-Statement" + "Statement": "0x560afc9b3a30-Statement" }, { - "id": "0x556d3816ba30-Statement", - "statement": "0x556d3816adb0-TypeDeclarationStmt", + "id": "0x560afc9b3a30-Statement", + "statement": "0x560afc9b2db0-TypeDeclarationStmt", "source": "complex(dp) :: c_double_d =(1.0d0, 3.141592653589793d0)" }, { - "id": "0x556d3816adb0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x556d3816ade0-DeclarationTypeSpec", + "id": "0x560afc9b2db0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x560afc9b2de0-DeclarationTypeSpec", "EntityDecl": [ - "0x556d3816b860-EntityDecl" + "0x560afc9b3860-EntityDecl" ] }, { - "id": "0x556d3816ade0-DeclarationTypeSpec", + "id": "0x560afc9b2de0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x556d3816ade0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x560afc9b2de0-IntrinsicTypeSpec" }, { - "id": "0x556d3816ade0-IntrinsicTypeSpec", + "id": "0x560afc9b2de0-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x556d3816ade0-Complex" + "Complex": "0x560afc9b2de0-Complex" }, { - "id": "0x556d3816ade0-Complex", - "KindSelector": "0x556d3816ade0-KindSelector" + "id": "0x560afc9b2de0-Complex", + "KindSelector": "0x560afc9b2de0-KindSelector" }, { - "id": "0x556d3816ade0-KindSelector", + "id": "0x560afc9b2de0-KindSelector", "variantKey": "Expr", - "Expr": "0x556d3816b260-Expr" + "Expr": "0x560afc9b3260-Expr" }, { - "id": "0x556d3816b260-Expr", + "id": "0x560afc9b3260-Expr", "variantKey": "Designator", - "Designator": "0x556d38183b90-Designator" + "Designator": "0x560afc9cbb90-Designator" }, { - "id": "0x556d38183b90-Designator", + "id": "0x560afc9cbb90-Designator", "variantKey": "DataRef", - "DataRef": "0x556d38183ba0-DataRef" + "DataRef": "0x560afc9cbba0-DataRef" }, { - "id": "0x556d38183ba0-DataRef", + "id": "0x560afc9cbba0-DataRef", "variantKey": "Name", - "Name": "0x556d38183ba0-Name" + "Name": "0x560afc9cbba0-Name" }, { - "id": "0x556d38183ba0-Name", + "id": "0x560afc9cbba0-Name", "source": "dp" }, { - "id": "0x556d3816b860-EntityDecl", - "Name": "0x556d3816b918-Name", - "Initialization": "0x556d3816b860-Initialization" + "id": "0x560afc9b3860-EntityDecl", + "Name": "0x560afc9b3918-Name", + "Initialization": "0x560afc9b3860-Initialization" }, { - "id": "0x556d3816b918-Name", + "id": "0x560afc9b3918-Name", "source": "c_double_d" }, { - "id": "0x556d3816b860-Initialization", + "id": "0x560afc9b3860-Initialization", "variantKey": "Expr", - "Expr": "0x556d3816b770-Expr" + "Expr": "0x560afc9b3770-Expr" }, { - "id": "0x556d3816b770-Expr", + "id": "0x560afc9b3770-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x556d3816b790-LiteralConstant" + "LiteralConstant": "0x560afc9b3790-LiteralConstant" }, { - "id": "0x556d3816b790-LiteralConstant", + "id": "0x560afc9b3790-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x556d3816b790-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x560afc9b3790-ComplexLiteralConstant" }, { - "id": "0x556d3816b790-ComplexLiteralConstant", - "real": "0x556d3816b7e0-ComplexPart", - "imaginary": "0x556d3816b790-ComplexPart" + "id": "0x560afc9b3790-ComplexLiteralConstant", + "real": "0x560afc9b37e0-ComplexPart", + "imaginary": "0x560afc9b3790-ComplexPart" }, { - "id": "0x556d3816b7e0-ComplexPart", + "id": "0x560afc9b37e0-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x556d3816b7e0-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x560afc9b37e0-SignedRealLiteralConstant" }, { - "id": "0x556d3816b7e0-SignedRealLiteralConstant", - "RealLiteralConstant": "0x556d3816b7e0-RealLiteralConstant" + "id": "0x560afc9b37e0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x560afc9b37e0-RealLiteralConstant" }, { - "id": "0x556d3816b7e0-RealLiteralConstant", - "real": "0x556d3816b7e0-Real" + "id": "0x560afc9b37e0-RealLiteralConstant", + "real": "0x560afc9b37e0-Real" }, { - "id": "0x556d3816b7e0-Real", + "id": "0x560afc9b37e0-Real", "source": "1.0d0" }, { - "id": "0x556d3816b790-ComplexPart", + "id": "0x560afc9b3790-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x556d3816b790-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x560afc9b3790-SignedRealLiteralConstant" }, { - "id": "0x556d3816b790-SignedRealLiteralConstant", - "RealLiteralConstant": "0x556d3816b790-RealLiteralConstant" + "id": "0x560afc9b3790-SignedRealLiteralConstant", + "RealLiteralConstant": "0x560afc9b3790-RealLiteralConstant" }, { - "id": "0x556d3816b790-RealLiteralConstant", - "real": "0x556d3816b790-Real" + "id": "0x560afc9b3790-RealLiteralConstant", + "real": "0x560afc9b3790-Real" }, { - "id": "0x556d3816b790-Real", + "id": "0x560afc9b3790-Real", "source": "3.141592653589793d0" }, { - "id": "0x556d3816be20-DeclarationConstruct", + "id": "0x560afc9b3e20-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x556d3816be20-SpecificationConstruct" + "SpecificationConstruct": "0x560afc9b3e20-SpecificationConstruct" }, { - "id": "0x556d3816be20-SpecificationConstruct", + "id": "0x560afc9b3e20-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x556d3816be20-Statement" + "Statement": "0x560afc9b3e20-Statement" }, { - "id": "0x556d3816be20-Statement", - "statement": "0x556d3816b060-TypeDeclarationStmt", + "id": "0x560afc9b3e20-Statement", + "statement": "0x560afc9b3060-TypeDeclarationStmt", "source": "complex(dp) :: c_double_kind =(2.5_dp, -5.5_dp)" }, { - "id": "0x556d3816b060-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x556d3816b090-DeclarationTypeSpec", + "id": "0x560afc9b3060-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x560afc9b3090-DeclarationTypeSpec", "EntityDecl": [ - "0x556d3816bd30-EntityDecl" + "0x560afc9b3d30-EntityDecl" ] }, { - "id": "0x556d3816b090-DeclarationTypeSpec", + "id": "0x560afc9b3090-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x556d3816b090-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x560afc9b3090-IntrinsicTypeSpec" }, { - "id": "0x556d3816b090-IntrinsicTypeSpec", + "id": "0x560afc9b3090-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x556d3816b090-Complex" + "Complex": "0x560afc9b3090-Complex" }, { - "id": "0x556d3816b090-Complex", - "KindSelector": "0x556d3816b090-KindSelector" + "id": "0x560afc9b3090-Complex", + "KindSelector": "0x560afc9b3090-KindSelector" }, { - "id": "0x556d3816b090-KindSelector", + "id": "0x560afc9b3090-KindSelector", "variantKey": "Expr", - "Expr": "0x556d3816bb00-Expr" + "Expr": "0x560afc9b3b00-Expr" }, { - "id": "0x556d3816bb00-Expr", + "id": "0x560afc9b3b00-Expr", "variantKey": "Designator", - "Designator": "0x556d3814cd90-Designator" + "Designator": "0x560afc994d90-Designator" }, { - "id": "0x556d3814cd90-Designator", + "id": "0x560afc994d90-Designator", "variantKey": "DataRef", - "DataRef": "0x556d3814cda0-DataRef" + "DataRef": "0x560afc994da0-DataRef" }, { - "id": "0x556d3814cda0-DataRef", + "id": "0x560afc994da0-DataRef", "variantKey": "Name", - "Name": "0x556d3814cda0-Name" + "Name": "0x560afc994da0-Name" }, { - "id": "0x556d3814cda0-Name", + "id": "0x560afc994da0-Name", "source": "dp" }, { - "id": "0x556d3816bd30-EntityDecl", - "Name": "0x556d3816bde8-Name", - "Initialization": "0x556d3816bd30-Initialization" + "id": "0x560afc9b3d30-EntityDecl", + "Name": "0x560afc9b3de8-Name", + "Initialization": "0x560afc9b3d30-Initialization" }, { - "id": "0x556d3816bde8-Name", + "id": "0x560afc9b3de8-Name", "source": "c_double_kind" }, { - "id": "0x556d3816bd30-Initialization", + "id": "0x560afc9b3d30-Initialization", "variantKey": "Expr", - "Expr": "0x556d3816bc40-Expr" + "Expr": "0x560afc9b3c40-Expr" }, { - "id": "0x556d3816bc40-Expr", + "id": "0x560afc9b3c40-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x556d3816bc60-LiteralConstant" + "LiteralConstant": "0x560afc9b3c60-LiteralConstant" }, { - "id": "0x556d3816bc60-LiteralConstant", + "id": "0x560afc9b3c60-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x556d3816bc60-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x560afc9b3c60-ComplexLiteralConstant" }, { - "id": "0x556d3816bc60-ComplexLiteralConstant", - "real": "0x556d3816bcb0-ComplexPart", - "imaginary": "0x556d3816bc60-ComplexPart" + "id": "0x560afc9b3c60-ComplexLiteralConstant", + "real": "0x560afc9b3cb0-ComplexPart", + "imaginary": "0x560afc9b3c60-ComplexPart" }, { - "id": "0x556d3816bcb0-ComplexPart", + "id": "0x560afc9b3cb0-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x556d3816bcb0-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x560afc9b3cb0-SignedRealLiteralConstant" }, { - "id": "0x556d3816bcb0-SignedRealLiteralConstant", - "RealLiteralConstant": "0x556d3816bcb0-RealLiteralConstant" + "id": "0x560afc9b3cb0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x560afc9b3cb0-RealLiteralConstant" }, { - "id": "0x556d3816bcb0-RealLiteralConstant", - "real": "0x556d3816bcb0-Real", - "kind": "0x556d3816bcc0-KindParam" + "id": "0x560afc9b3cb0-RealLiteralConstant", + "real": "0x560afc9b3cb0-Real", + "kind": "0x560afc9b3cc0-KindParam" }, { - "id": "0x556d3816bcb0-Real", + "id": "0x560afc9b3cb0-Real", "source": "2.5" }, { - "id": "0x556d3816bcc0-KindParam", + "id": "0x560afc9b3cc0-KindParam", "variantKey": "Expr", - "Expr": "0x556d3816bcc0-Name" + "Expr": "0x560afc9b3cc0-Name" }, { - "id": "0x556d3816bcc0-Name", + "id": "0x560afc9b3cc0-Name", "source": "dp" }, { - "id": "0x556d3816bc60-ComplexPart", + "id": "0x560afc9b3c60-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x556d3816bc60-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x560afc9b3c60-SignedRealLiteralConstant" }, { - "id": "0x556d3816bc60-SignedRealLiteralConstant", + "id": "0x560afc9b3c60-SignedRealLiteralConstant", "Sign": "-", - "RealLiteralConstant": "0x556d3816bc60-RealLiteralConstant" + "RealLiteralConstant": "0x560afc9b3c60-RealLiteralConstant" }, { - "id": "0x556d3816bc60-RealLiteralConstant", - "real": "0x556d3816bc60-Real", - "kind": "0x556d3816bc70-KindParam" + "id": "0x560afc9b3c60-RealLiteralConstant", + "real": "0x560afc9b3c60-Real", + "kind": "0x560afc9b3c70-KindParam" }, { - "id": "0x556d3816bc60-Real", + "id": "0x560afc9b3c60-Real", "source": "5.5" }, { - "id": "0x556d3816bc70-KindParam", + "id": "0x560afc9b3c70-KindParam", "variantKey": "Expr", - "Expr": "0x556d3816bc70-Name" + "Expr": "0x560afc9b3c70-Name" }, { - "id": "0x556d3816bc70-Name", + "id": "0x560afc9b3c70-Name", "source": "dp" }, { - "id": "0x556d3816c210-DeclarationConstruct", + "id": "0x560afc9b4210-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x556d3816c210-SpecificationConstruct" + "SpecificationConstruct": "0x560afc9b4210-SpecificationConstruct" }, { - "id": "0x556d3816c210-SpecificationConstruct", + "id": "0x560afc9b4210-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x556d3816c210-Statement" + "Statement": "0x560afc9b4210-Statement" }, { - "id": "0x556d3816c210-Statement", - "statement": "0x556d3816b0e0-TypeDeclarationStmt", + "id": "0x560afc9b4210-Statement", + "statement": "0x560afc9b30e0-TypeDeclarationStmt", "source": "complex(sp) :: c_single_kind =(1.0_sp, 0.5_sp)" }, { - "id": "0x556d3816b0e0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x556d3816b110-DeclarationTypeSpec", + "id": "0x560afc9b30e0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x560afc9b3110-DeclarationTypeSpec", "EntityDecl": [ - "0x556d3816c120-EntityDecl" + "0x560afc9b4120-EntityDecl" ] }, { - "id": "0x556d3816b110-DeclarationTypeSpec", + "id": "0x560afc9b3110-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x556d3816b110-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x560afc9b3110-IntrinsicTypeSpec" }, { - "id": "0x556d3816b110-IntrinsicTypeSpec", + "id": "0x560afc9b3110-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x556d3816b110-Complex" + "Complex": "0x560afc9b3110-Complex" }, { - "id": "0x556d3816b110-Complex", - "KindSelector": "0x556d3816b110-KindSelector" + "id": "0x560afc9b3110-Complex", + "KindSelector": "0x560afc9b3110-KindSelector" }, { - "id": "0x556d3816b110-KindSelector", + "id": "0x560afc9b3110-KindSelector", "variantKey": "Expr", - "Expr": "0x556d3816bef0-Expr" + "Expr": "0x560afc9b3ef0-Expr" }, { - "id": "0x556d3816bef0-Expr", + "id": "0x560afc9b3ef0-Expr", "variantKey": "Designator", - "Designator": "0x556d3814d100-Designator" + "Designator": "0x560afc995100-Designator" }, { - "id": "0x556d3814d100-Designator", + "id": "0x560afc995100-Designator", "variantKey": "DataRef", - "DataRef": "0x556d3814d110-DataRef" + "DataRef": "0x560afc995110-DataRef" }, { - "id": "0x556d3814d110-DataRef", + "id": "0x560afc995110-DataRef", "variantKey": "Name", - "Name": "0x556d3814d110-Name" + "Name": "0x560afc995110-Name" }, { - "id": "0x556d3814d110-Name", + "id": "0x560afc995110-Name", "source": "sp" }, { - "id": "0x556d3816c120-EntityDecl", - "Name": "0x556d3816c1d8-Name", - "Initialization": "0x556d3816c120-Initialization" + "id": "0x560afc9b4120-EntityDecl", + "Name": "0x560afc9b41d8-Name", + "Initialization": "0x560afc9b4120-Initialization" }, { - "id": "0x556d3816c1d8-Name", + "id": "0x560afc9b41d8-Name", "source": "c_single_kind" }, { - "id": "0x556d3816c120-Initialization", + "id": "0x560afc9b4120-Initialization", "variantKey": "Expr", - "Expr": "0x556d3816c030-Expr" + "Expr": "0x560afc9b4030-Expr" }, { - "id": "0x556d3816c030-Expr", + "id": "0x560afc9b4030-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x556d3816c050-LiteralConstant" + "LiteralConstant": "0x560afc9b4050-LiteralConstant" }, { - "id": "0x556d3816c050-LiteralConstant", + "id": "0x560afc9b4050-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x556d3816c050-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x560afc9b4050-ComplexLiteralConstant" }, { - "id": "0x556d3816c050-ComplexLiteralConstant", - "real": "0x556d3816c0a0-ComplexPart", - "imaginary": "0x556d3816c050-ComplexPart" + "id": "0x560afc9b4050-ComplexLiteralConstant", + "real": "0x560afc9b40a0-ComplexPart", + "imaginary": "0x560afc9b4050-ComplexPart" }, { - "id": "0x556d3816c0a0-ComplexPart", + "id": "0x560afc9b40a0-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x556d3816c0a0-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x560afc9b40a0-SignedRealLiteralConstant" }, { - "id": "0x556d3816c0a0-SignedRealLiteralConstant", - "RealLiteralConstant": "0x556d3816c0a0-RealLiteralConstant" + "id": "0x560afc9b40a0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x560afc9b40a0-RealLiteralConstant" }, { - "id": "0x556d3816c0a0-RealLiteralConstant", - "real": "0x556d3816c0a0-Real", - "kind": "0x556d3816c0b0-KindParam" + "id": "0x560afc9b40a0-RealLiteralConstant", + "real": "0x560afc9b40a0-Real", + "kind": "0x560afc9b40b0-KindParam" }, { - "id": "0x556d3816c0a0-Real", + "id": "0x560afc9b40a0-Real", "source": "1.0" }, { - "id": "0x556d3816c0b0-KindParam", + "id": "0x560afc9b40b0-KindParam", "variantKey": "Expr", - "Expr": "0x556d3816c0b0-Name" + "Expr": "0x560afc9b40b0-Name" }, { - "id": "0x556d3816c0b0-Name", + "id": "0x560afc9b40b0-Name", "source": "sp" }, { - "id": "0x556d3816c050-ComplexPart", + "id": "0x560afc9b4050-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x556d3816c050-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x560afc9b4050-SignedRealLiteralConstant" }, { - "id": "0x556d3816c050-SignedRealLiteralConstant", - "RealLiteralConstant": "0x556d3816c050-RealLiteralConstant" + "id": "0x560afc9b4050-SignedRealLiteralConstant", + "RealLiteralConstant": "0x560afc9b4050-RealLiteralConstant" }, { - "id": "0x556d3816c050-RealLiteralConstant", - "real": "0x556d3816c050-Real", - "kind": "0x556d3816c060-KindParam" + "id": "0x560afc9b4050-RealLiteralConstant", + "real": "0x560afc9b4050-Real", + "kind": "0x560afc9b4060-KindParam" }, { - "id": "0x556d3816c050-Real", + "id": "0x560afc9b4050-Real", "source": "0.5" }, { - "id": "0x556d3816c060-KindParam", + "id": "0x560afc9b4060-KindParam", "variantKey": "Expr", - "Expr": "0x556d3816c060-Name" + "Expr": "0x560afc9b4060-Name" }, { - "id": "0x556d3816c060-Name", + "id": "0x560afc9b4060-Name", "source": "sp" }, { - "id": "0x556d38170098-ExecutionPart" + "id": "0x560afc9b8098-ExecutionPart" }, { - "id": "0x556d38170098-list" + "id": "0x560afc9b8098-list" }, { - "id": "0x556d38170010-Statement", - "statement": "0x556d38170020-EndProgramStmt", - "source": "end program COMPLEX_LITERALS" + "id": "0x560afc9b8010-Statement", + "statement": "0x560afc9b8020-EndProgramStmt", + "source": "end program COMPLEX_LITERAL" }, { - "id": "0x556d38170020-EndProgramStmt", - "Name": "0x556d38170020-Name" + "id": "0x560afc9b8020-EndProgramStmt", + "Name": "0x560afc9b8020-Name" }, { - "id": "0x556d38170020-Name", - "source": "COMPLEX_LITERALS" + "id": "0x560afc9b8020-Name", + "source": "COMPLEX_LITERAL" } ], "comments": [ { "text": " 1. Basic Default Real Literals", - "stmtId": "0x556d3816aab0-Statement", + "stmtId": "0x560afc9b2ab0-Statement", "trailing": false }, { "text": " 2. Integer Components (automatically converted to real)", - "stmtId": "0x556d3816ad60-Statement", + "stmtId": "0x560afc9b2d60-Statement", "trailing": false }, { "text": " 3. Scientific / Exponential Notation", - "stmtId": "0x556d3816b010-Statement", + "stmtId": "0x560afc9b3010-Statement", "trailing": false }, { "text": " Represents (150.0, -0.2)", - "stmtId": "0x556d3816b010-Statement", + "stmtId": "0x560afc9b3010-Statement", "trailing": true }, { "text": " 4. Double Precision (using 'd' exponent notation)", - "stmtId": "0x556d3816ba30-Statement", + "stmtId": "0x560afc9b3a30-Statement", "trailing": false }, { "text": " 5. Kind Parameter Suffixes (Modern Standard)", - "stmtId": "0x556d3816be20-Statement", + "stmtId": "0x560afc9b3e20-Statement", "trailing": false } ], From e26f1c4ef3ad99d34c9433a75998f0689323ddc6 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 22 Jul 2026 19:11:25 +0100 Subject: [PATCH 074/260] Fix real literals not having sign --- .../fe/specs/fortran/parser/processors/ExprProcessors.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java index f5e589af..ec2df0c9 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java @@ -66,15 +66,18 @@ public void logicalLiteral(LogicalLiteral logicalLiteral) { public void realLiteral(RealLiteral realLiteral) { var attrs = attributes(realLiteral); + var sign = ""; if (attrs.has(FlangName.REAL_LITERAL_CONSTANT)) { + sign = attrs.getOptionalString(FlangName.SIGN).orElseGet(() -> ""); + var childId = attrs.getString(FlangName.REAL_LITERAL_CONSTANT); attrs = attributes().get(childId); } var realId = attrs.getString("real"); var realSource = attributes().get(realId).getString("source"); - realLiteral.set(RealLiteral.SOURCE, realSource); + realLiteral.set(RealLiteral.SOURCE, sign + realSource); var kindParam = attrs.getOptionalString("kind") .flatMap(this::getKindParam); From b72ab2ba57173eb7eda5f19e5010ee4206bece24 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 22 Jul 2026 21:13:49 +0100 Subject: [PATCH 075/260] Extend use statement architecture --- .../fe/specs/fortran/ast/FortranKeyword.java | 3 ++ .../specs/fortran/ast/FortranNodeFactory.java | 23 ++++----- .../ast/nodes/program/Specification.java | 2 +- .../ast/nodes/stmt/usestmt/NamesRename.java | 33 ++++++++++++ .../fortran/ast/nodes/stmt/usestmt/Only.java | 12 +++++ .../nodes/stmt/usestmt/OnlyGenericSpec.java | 13 +++++ .../nodes/stmt/usestmt/OperatorsRename.java | 13 +++++ .../ast/nodes/stmt/usestmt/Rename.java | 12 +++++ .../{UseStmt.java => usestmt/UseName.java} | 14 +++--- .../ast/nodes/stmt/usestmt/UseOnlyStmt.java | 31 ++++++++++++ .../ast/nodes/stmt/usestmt/UseRenameStmt.java | 29 +++++++++++ .../ast/nodes/stmt/usestmt/UseStmt.java | 50 +++++++++++++++++++ .../fe/specs/fortran/parser/FlangToClass.java | 1 + .../fortran/parser/processors/Nodes.java | 1 + .../parser/processors/StmtProcessors.java | 1 + 15 files changed, 215 insertions(+), 23 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/NamesRename.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/Only.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/OnlyGenericSpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/OperatorsRename.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/Rename.java rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/{UseStmt.java => usestmt/UseName.java} (51%) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/UseOnlyStmt.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/UseRenameStmt.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/UseStmt.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java index af93ba08..5bcbc8ec 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -7,6 +7,9 @@ public enum FortranKeyword { SUBROUTINE, WRITE, USE, + INTRINSIC, + NON_INTRINSIC, + ONLY, // Execution statements PRINT, diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java index 925cd322..41900dd8 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java @@ -6,14 +6,7 @@ import pt.up.fe.specs.fortran.ast.nodes.decl.ExprInitialization; import pt.up.fe.specs.fortran.ast.nodes.decl.LabelDecl; import pt.up.fe.specs.fortran.ast.nodes.decl.ListInitialization; -import pt.up.fe.specs.fortran.ast.nodes.expr.Argument; -import pt.up.fe.specs.fortran.ast.nodes.expr.BinaryOperator; -import pt.up.fe.specs.fortran.ast.nodes.expr.Call; -import pt.up.fe.specs.fortran.ast.nodes.expr.DataRef; -import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; -import pt.up.fe.specs.fortran.ast.nodes.expr.IntLiteral; -import pt.up.fe.specs.fortran.ast.nodes.expr.Literal; -import pt.up.fe.specs.fortran.ast.nodes.expr.StringLiteral; +import pt.up.fe.specs.fortran.ast.nodes.expr.*; import pt.up.fe.specs.fortran.ast.nodes.expr.enums.BinaryOperatorKind; import pt.up.fe.specs.fortran.ast.nodes.loops.LoopControl; import pt.up.fe.specs.fortran.ast.nodes.loops.RangeLoopControl; @@ -26,10 +19,12 @@ import pt.up.fe.specs.fortran.ast.nodes.omp.enums.OmpClauseKind; import pt.up.fe.specs.fortran.ast.nodes.omp.enums.OmpDirectiveKind; import pt.up.fe.specs.fortran.ast.nodes.program.*; -import pt.up.fe.specs.fortran.ast.nodes.stmt.*; +import pt.up.fe.specs.fortran.ast.nodes.stmt.LiteralExecutionStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.PrintStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.EndDoStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.UseOnlyStmt; import pt.up.fe.specs.fortran.ast.nodes.utils.Format; import pt.up.fe.specs.fortran.ast.nodes.utils.LabelRef; import pt.up.fe.specs.fortran.ast.nodes.utils.Star; @@ -273,12 +268,12 @@ public DataRef dataRef(String name) { return newNode; } - public UseStmt useStmt(String moduleName) { - DataStore data = newDataStore(UseStmt.class); + public UseOnlyStmt useOnlyStmt(String moduleName) { + DataStore data = newDataStore(UseOnlyStmt.class); - UseStmt newNode = new UseStmt(data, Collections.emptyList()); + UseOnlyStmt newNode = new UseOnlyStmt(data, Collections.emptyList()); - newNode.set(UseStmt.NAME, moduleName); + newNode.set(UseOnlyStmt.NAME, moduleName); return newNode; } @@ -286,7 +281,7 @@ public UseStmt useStmt(String moduleName) { public OmpReductionClause ompReductionClause(BinaryOperatorKind operator, List refs) { DataStore data = newDataStore(OmpReductionClause.class); - OmpReductionClause newNode= new OmpReductionClause(data, refs); + OmpReductionClause newNode = new OmpReductionClause(data, refs); newNode.set(OmpReductionClause.KIND, OmpClauseKind.REDUCTION); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Specification.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Specification.java index 1082605a..d9ef82cf 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Specification.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Specification.java @@ -3,7 +3,7 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.stmt.SpecificationStmt; -import pt.up.fe.specs.fortran.ast.nodes.stmt.UseStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.UseStmt; import java.util.Collection; import java.util.List; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/NamesRename.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/NamesRename.java new file mode 100644 index 00000000..dde5616d --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/NamesRename.java @@ -0,0 +1,33 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class NamesRename extends Rename { + public static final DataKey LOCAL_NAME = KeyFactory.string("localName"); + public static final DataKey GLOBAL_NAME = KeyFactory.string("globalName"); + + public NamesRename(DataStore data, Collection children) { + super(data, children); + } + + public String getLocalName() { + return get(LOCAL_NAME); + } + + public String getGlobalName() { + return get(GLOBAL_NAME); + } + + @Override + public String getCode() { + var localName = getLocalName(); + var globalName = getGlobalName(); + + return localName + optSpc() + "=>" + optSpc() + globalName; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/Only.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/Only.java new file mode 100644 index 00000000..49ff4462 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/Only.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class Only extends FortranNode { + public Only(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/OnlyGenericSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/OnlyGenericSpec.java new file mode 100644 index 00000000..7661ce1f --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/OnlyGenericSpec.java @@ -0,0 +1,13 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +// TODO(Process-ing): Complete and use this subclass +public class OnlyGenericSpec extends Only { + public OnlyGenericSpec(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/OperatorsRename.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/OperatorsRename.java new file mode 100644 index 00000000..98ad252f --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/OperatorsRename.java @@ -0,0 +1,13 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +// TODO(Process-ing): Complete and use this subclass +public class OperatorsRename extends Rename { + public OperatorsRename(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/Rename.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/Rename.java new file mode 100644 index 00000000..2211f0cc --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/Rename.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class Rename extends Only { + public Rename(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/UseStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/UseName.java similarity index 51% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/UseStmt.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/UseName.java index 79e0e991..9cbf1834 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/UseStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/UseName.java @@ -1,18 +1,16 @@ -package pt.up.fe.specs.fortran.ast.nodes.stmt; +package pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt; import org.suikasoft.jOptions.Datakey.DataKey; import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import java.util.Collection; -public class UseStmt extends Stmt { +public class UseName extends Only { + public static final DataKey NAME = KeyFactory.string("name"); - public static DataKey NAME = KeyFactory.string("name"); - - public UseStmt(DataStore data, Collection children) { + public UseName(DataStore data, Collection children) { super(data, children); } @@ -21,7 +19,7 @@ public String getName() { } @Override - public String getStmtCode() { - return FortranKeyword.USE + " " + getName(); + public String getCode() { + return getName(); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/UseOnlyStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/UseOnlyStmt.java new file mode 100644 index 00000000..ae9982bc --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/UseOnlyStmt.java @@ -0,0 +1,31 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +public class UseOnlyStmt extends UseStmt { + public UseOnlyStmt(DataStore data, Collection children) { + super(data, children); + } + + public List getOnlySpecs() { + return getChildrenOf(Only.class); + } + + @Override + public String getStmtCode() { + var usePrefix = getUseStmtPrefix(); + + var onlyListSuffix = getOnlySpecs().stream() + .map(Only::getCode) + .collect(Collectors.joining("," + optSpc())); + + return usePrefix + "," + optSpc() + keyword(FortranKeyword.ONLY) + + optSpc() + ":" + optSpc() + onlyListSuffix; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/UseRenameStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/UseRenameStmt.java new file mode 100644 index 00000000..89354b7d --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/UseRenameStmt.java @@ -0,0 +1,29 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +public class UseRenameStmt extends UseStmt { + public UseRenameStmt(DataStore data, Collection children) { + super(data, children); + } + + public List getRenames() { + return getChildrenOf(Rename.class); + } + + @Override + public String getStmtCode() { + var usePrefix = getUseStmtPrefix(); + + var renamesSuffix = getRenames().stream() + .map(rename -> "," + optSpc() + rename.getCode()) + .collect(Collectors.joining()); + + return usePrefix + renamesSuffix; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/UseStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/UseStmt.java new file mode 100644 index 00000000..3fdf6651 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/UseStmt.java @@ -0,0 +1,50 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; + +import java.util.Collection; +import java.util.Optional; + +public abstract class UseStmt extends Stmt { + public static final DataKey> INTRINSIC = KeyFactory.optional("intrinsic"); + public static final DataKey NAME = KeyFactory.string("name"); + + public UseStmt(DataStore data, Collection children) { + super(data, children); + } + + public Optional isIntrinsic() { + return get(INTRINSIC); + } + + public String getName() { + return get(NAME); + } + + protected String getUseStmtPrefix() { + var intrinsic = isIntrinsic(); + var name = getName(); + + var code = new StringBuilder(); + + code.append(keyword(FortranKeyword.USE)); + + intrinsic.ifPresentOrElse(intrinsicVal -> { + var intrinsicCode = keyword(intrinsicVal ? FortranKeyword.INTRINSIC : FortranKeyword.NON_INTRINSIC); + + code.append(",").append(optSpc()).append(intrinsicCode) + .append(optSpc()).append("::").append(optSpc()); + }, () -> { + code.append(" "); + }); + + code.append(name); + + return code.toString(); + } +} diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 22909c21..ae2e3d0f 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -27,6 +27,7 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.CaseConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.EndSelectStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.SelectCaseStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.UseStmt; import pt.up.fe.specs.fortran.ast.nodes.type.*; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.AllocatableKeyword; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.IntentSpec; diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 4214287e..8a8eb285 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -27,6 +27,7 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.CaseConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.EndSelectStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.SelectCaseStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.UseStmt; import pt.up.fe.specs.fortran.ast.nodes.type.*; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.IntentSpec; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.KeywordAttributeSpecifier; diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index c5432420..49c9b679 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -16,6 +16,7 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.EndDoStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.*; +import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.UseStmt; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.DimensionSpec; import pt.up.fe.specs.fortran.parser.FlangAttributes; import pt.up.fe.specs.fortran.parser.FlangName; From 853826c9d03090f982a1440de8501f39fe603d79 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 22 Jul 2026 21:40:21 +0100 Subject: [PATCH 076/260] Regenerate dump --- .../fortran/parser/expr/complex_literal.json | 693 +++++++++--------- 1 file changed, 350 insertions(+), 343 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/expr/complex_literal.json b/FortranParser/resources-test/fortran/parser/expr/complex_literal.json index 6480d233..114875c7 100644 --- a/FortranParser/resources-test/fortran/parser/expr/complex_literal.json +++ b/FortranParser/resources-test/fortran/parser/expr/complex_literal.json @@ -2,856 +2,863 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x560afc987f00-Program", + "id": "0x5591e0573f00-Program", "ProgramUnit": [ - "0x560afc9c3ef0-ProgramUnit" + "0x5591e05afef0-ProgramUnit" ] }, { - "id": "0x560afc9c3ef0-ProgramUnit", + "id": "0x5591e05afef0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x560afc9b8010-MainProgram" + "MainProgram": "0x5591e05a4010-MainProgram" }, { - "id": "0x560afc9b8010-MainProgram", - "Statement": "0x560afc9b8158-Statement", - "SpecificationPart": "0x560afc9b80b0-SpecificationPart", - "ExecutionPart": "0x560afc9b8098-ExecutionPart", - "Statement": "0x560afc9b8010-Statement" + "id": "0x5591e05a4010-MainProgram", + "Statement": "0x5591e05a4158-Statement", + "SpecificationPart": "0x5591e05a40b0-SpecificationPart", + "ExecutionPart": "0x5591e05a4098-ExecutionPart", + "Statement": "0x5591e05a4010-Statement" }, { - "id": "0x560afc9b8158-Statement", - "statement": "0x560afc9b8168-ProgramStmt", + "id": "0x5591e05a4158-Statement", + "statement": "0x5591e05a4168-ProgramStmt", "source": "program COMPLEX_LITERAL" }, { - "id": "0x560afc9b8168-ProgramStmt", - "Name": "0x560afc9b8168-Name" + "id": "0x5591e05a4168-ProgramStmt", + "Name": "0x5591e05a4168-Name" }, { - "id": "0x560afc9b8168-Name", + "id": "0x5591e05a4168-Name", "source": "COMPLEX_LITERAL" }, { - "id": "0x560afc9b80b0-SpecificationPart", + "id": "0x5591e05a40b0-SpecificationPart", "Statement": [ - "0x560afc9c2c00-Statement" + "0x5591e05aec00-Statement" ], - "ImplicitPart": "0x560afc9b80c8-ImplicitPart", + "ImplicitPart": "0x5591e05a40c8-ImplicitPart", "DeclarationConstruct": [ - "0x560afc9b2ab0-DeclarationConstruct", - "0x560afc9b2d60-DeclarationConstruct", - "0x560afc9b3010-DeclarationConstruct", - "0x560afc9b3a30-DeclarationConstruct", - "0x560afc9b3e20-DeclarationConstruct", - "0x560afc9b4210-DeclarationConstruct" + "0x5591e059eab0-DeclarationConstruct", + "0x5591e059ed60-DeclarationConstruct", + "0x5591e059f010-DeclarationConstruct", + "0x5591e059fa30-DeclarationConstruct", + "0x5591e059fe20-DeclarationConstruct", + "0x5591e05a0210-DeclarationConstruct" ] }, { - "id": "0x560afc9c2c00-Statement", - "statement": "0x560afc9cbcb0-UseStmt", + "id": "0x5591e05aec00-Statement", + "statement": "0x5591e05b7cb0-UseStmt", "source": "use, intrinsic :: iso_fortran_env, only: sp => real32, dp => real64" }, { - "id": "0x560afc9cbcb0-UseStmt", - "moduleName": "0x560afc9cbcb8-Name" + "id": "0x5591e05b7cb0-UseStmt", + "nature": "0x5591e05b7cb0-ModuleNature = Intrinsic", + "moduleName": "0x5591e05b7cb8-Name", + "onlyList": [ + "0x5591e0581170-Only", + "0x5591e05724e0-Only" + ] }, { - "id": "0x560afc9cbcb0-ModuleNature = Intrinsic", + "id": "0x5591e05b7cb0-ModuleNature = Intrinsic", "disambiguation": "Fortran::parser::UseStmt::ModuleNature", "value": "Intrinsic" }, { - "id": "0x560afc9cbcb8-Name", + "id": "0x5591e05b7cb8-Name", "source": "iso_fortran_env" }, { - "id": "0x560afc995170-Only", + "id": "0x5591e0581170-Only", "variantKey": "Rename", - "Rename": "0x560afc995170-Rename" + "Rename": "0x5591e0581170-Rename" }, { - "id": "0x560afc995170-Rename", + "id": "0x5591e0581170-Rename", "variantKey": "Names", - "Names": "0x560afc995170-Names" + "Names": "0x5591e0581170-Names" }, { - "id": "0x560afc995170-Names", - "Name": "0x560afc995170-Name" + "id": "0x5591e0581170-Names", + "local": "0x5591e0581188-Name", + "global": "0x5591e0581170-Name" }, { - "id": "0x560afc995188-Name", + "id": "0x5591e0581188-Name", "source": "sp" }, { - "id": "0x560afc995170-Name", + "id": "0x5591e0581170-Name", "source": "real32" }, { - "id": "0x560afc9864e0-Only", + "id": "0x5591e05724e0-Only", "variantKey": "Rename", - "Rename": "0x560afc9864e0-Rename" + "Rename": "0x5591e05724e0-Rename" }, { - "id": "0x560afc9864e0-Rename", + "id": "0x5591e05724e0-Rename", "variantKey": "Names", - "Names": "0x560afc9864e0-Names" + "Names": "0x5591e05724e0-Names" }, { - "id": "0x560afc9864e0-Names", - "Name": "0x560afc9864e0-Name" + "id": "0x5591e05724e0-Names", + "local": "0x5591e05724f8-Name", + "global": "0x5591e05724e0-Name" }, { - "id": "0x560afc9864f8-Name", + "id": "0x5591e05724f8-Name", "source": "dp" }, { - "id": "0x560afc9864e0-Name", + "id": "0x5591e05724e0-Name", "source": "real64" }, { - "id": "0x560afc9b80c8-ImplicitPart" + "id": "0x5591e05a40c8-ImplicitPart" }, { - "id": "0x560afc9b2ab0-DeclarationConstruct", + "id": "0x5591e059eab0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x560afc9b2ab0-SpecificationConstruct" + "SpecificationConstruct": "0x5591e059eab0-SpecificationConstruct" }, { - "id": "0x560afc9b2ab0-SpecificationConstruct", + "id": "0x5591e059eab0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x560afc9b2ab0-Statement" + "Statement": "0x5591e059eab0-Statement" }, { - "id": "0x560afc9b2ab0-Statement", - "statement": "0x560afc9c4710-TypeDeclarationStmt", + "id": "0x5591e059eab0-Statement", + "statement": "0x5591e05b0710-TypeDeclarationStmt", "source": "complex :: c_default =(3.0, 4.0)" }, { - "id": "0x560afc9c4710-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x560afc9c4740-DeclarationTypeSpec", + "id": "0x5591e05b0710-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5591e05b0740-DeclarationTypeSpec", "EntityDecl": [ - "0x560afc9b28e0-EntityDecl" + "0x5591e059e8e0-EntityDecl" ] }, { - "id": "0x560afc9c4740-DeclarationTypeSpec", + "id": "0x5591e05b0740-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x560afc9c4740-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5591e05b0740-IntrinsicTypeSpec" }, { - "id": "0x560afc9c4740-IntrinsicTypeSpec", + "id": "0x5591e05b0740-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x560afc9c4740-Complex" + "Complex": "0x5591e05b0740-Complex" }, { - "id": "0x560afc9c4740-Complex" + "id": "0x5591e05b0740-Complex" }, { - "id": "0x560afc9b28e0-EntityDecl", - "Name": "0x560afc9b2998-Name", - "Initialization": "0x560afc9b28e0-Initialization" + "id": "0x5591e059e8e0-EntityDecl", + "Name": "0x5591e059e998-Name", + "Initialization": "0x5591e059e8e0-Initialization" }, { - "id": "0x560afc9b2998-Name", + "id": "0x5591e059e998-Name", "source": "c_default" }, { - "id": "0x560afc9b28e0-Initialization", + "id": "0x5591e059e8e0-Initialization", "variantKey": "Expr", - "Expr": "0x560afc927790-Expr" + "Expr": "0x5591e0513790-Expr" }, { - "id": "0x560afc927790-Expr", + "id": "0x5591e0513790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x560afc9277b0-LiteralConstant" + "LiteralConstant": "0x5591e05137b0-LiteralConstant" }, { - "id": "0x560afc9277b0-LiteralConstant", + "id": "0x5591e05137b0-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x560afc9277b0-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x5591e05137b0-ComplexLiteralConstant" }, { - "id": "0x560afc9277b0-ComplexLiteralConstant", - "real": "0x560afc927800-ComplexPart", - "imaginary": "0x560afc9277b0-ComplexPart" + "id": "0x5591e05137b0-ComplexLiteralConstant", + "real": "0x5591e0513800-ComplexPart", + "imaginary": "0x5591e05137b0-ComplexPart" }, { - "id": "0x560afc927800-ComplexPart", + "id": "0x5591e0513800-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x560afc927800-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x5591e0513800-SignedRealLiteralConstant" }, { - "id": "0x560afc927800-SignedRealLiteralConstant", - "RealLiteralConstant": "0x560afc927800-RealLiteralConstant" + "id": "0x5591e0513800-SignedRealLiteralConstant", + "RealLiteralConstant": "0x5591e0513800-RealLiteralConstant" }, { - "id": "0x560afc927800-RealLiteralConstant", - "real": "0x560afc927800-Real" + "id": "0x5591e0513800-RealLiteralConstant", + "real": "0x5591e0513800-Real" }, { - "id": "0x560afc927800-Real", + "id": "0x5591e0513800-Real", "source": "3.0" }, { - "id": "0x560afc9277b0-ComplexPart", + "id": "0x5591e05137b0-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x560afc9277b0-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x5591e05137b0-SignedRealLiteralConstant" }, { - "id": "0x560afc9277b0-SignedRealLiteralConstant", - "RealLiteralConstant": "0x560afc9277b0-RealLiteralConstant" + "id": "0x5591e05137b0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x5591e05137b0-RealLiteralConstant" }, { - "id": "0x560afc9277b0-RealLiteralConstant", - "real": "0x560afc9277b0-Real" + "id": "0x5591e05137b0-RealLiteralConstant", + "real": "0x5591e05137b0-Real" }, { - "id": "0x560afc9277b0-Real", + "id": "0x5591e05137b0-Real", "source": "4.0" }, { - "id": "0x560afc9b2d60-DeclarationConstruct", + "id": "0x5591e059ed60-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x560afc9b2d60-SpecificationConstruct" + "SpecificationConstruct": "0x5591e059ed60-SpecificationConstruct" }, { - "id": "0x560afc9b2d60-SpecificationConstruct", + "id": "0x5591e059ed60-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x560afc9b2d60-Statement" + "Statement": "0x5591e059ed60-Statement" }, { - "id": "0x560afc9b2d60-Statement", - "statement": "0x560afc9c4790-TypeDeclarationStmt", + "id": "0x5591e059ed60-Statement", + "statement": "0x5591e05b0790-TypeDeclarationStmt", "source": "complex :: c_int =(1, -2)" }, { - "id": "0x560afc9c4790-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x560afc9c47c0-DeclarationTypeSpec", + "id": "0x5591e05b0790-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5591e05b07c0-DeclarationTypeSpec", "EntityDecl": [ - "0x560afc9b2c70-EntityDecl" + "0x5591e059ec70-EntityDecl" ] }, { - "id": "0x560afc9c47c0-DeclarationTypeSpec", + "id": "0x5591e05b07c0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x560afc9c47c0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5591e05b07c0-IntrinsicTypeSpec" }, { - "id": "0x560afc9c47c0-IntrinsicTypeSpec", + "id": "0x5591e05b07c0-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x560afc9c47c0-Complex" + "Complex": "0x5591e05b07c0-Complex" }, { - "id": "0x560afc9c47c0-Complex" + "id": "0x5591e05b07c0-Complex" }, { - "id": "0x560afc9b2c70-EntityDecl", - "Name": "0x560afc9b2d28-Name", - "Initialization": "0x560afc9b2c70-Initialization" + "id": "0x5591e059ec70-EntityDecl", + "Name": "0x5591e059ed28-Name", + "Initialization": "0x5591e059ec70-Initialization" }, { - "id": "0x560afc9b2d28-Name", + "id": "0x5591e059ed28-Name", "source": "c_int" }, { - "id": "0x560afc9b2c70-Initialization", + "id": "0x5591e059ec70-Initialization", "variantKey": "Expr", - "Expr": "0x560afc9b2b80-Expr" + "Expr": "0x5591e059eb80-Expr" }, { - "id": "0x560afc9b2b80-Expr", + "id": "0x5591e059eb80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x560afc9b2ba0-LiteralConstant" + "LiteralConstant": "0x5591e059eba0-LiteralConstant" }, { - "id": "0x560afc9b2ba0-LiteralConstant", + "id": "0x5591e059eba0-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x560afc9b2ba0-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x5591e059eba0-ComplexLiteralConstant" }, { - "id": "0x560afc9b2ba0-ComplexLiteralConstant", - "real": "0x560afc9b2bf0-ComplexPart", - "imaginary": "0x560afc9b2ba0-ComplexPart" + "id": "0x5591e059eba0-ComplexLiteralConstant", + "real": "0x5591e059ebf0-ComplexPart", + "imaginary": "0x5591e059eba0-ComplexPart" }, { - "id": "0x560afc9b2bf0-ComplexPart", + "id": "0x5591e059ebf0-ComplexPart", "variantKey": "SignedIntLiteralConstant", - "SignedIntLiteralConstant": "0x560afc9b2bf0-SignedIntLiteralConstant" + "SignedIntLiteralConstant": "0x5591e059ebf0-SignedIntLiteralConstant" }, { - "id": "0x560afc9b2bf0-SignedIntLiteralConstant", + "id": "0x5591e059ebf0-SignedIntLiteralConstant", "CharBlock": "1", "source": "1" }, { - "id": "0x560afc9b2ba0-ComplexPart", + "id": "0x5591e059eba0-ComplexPart", "variantKey": "SignedIntLiteralConstant", - "SignedIntLiteralConstant": "0x560afc9b2ba0-SignedIntLiteralConstant" + "SignedIntLiteralConstant": "0x5591e059eba0-SignedIntLiteralConstant" }, { - "id": "0x560afc9b2ba0-SignedIntLiteralConstant", + "id": "0x5591e059eba0-SignedIntLiteralConstant", "CharBlock": "-2", "source": "-2" }, { - "id": "0x560afc9b3010-DeclarationConstruct", + "id": "0x5591e059f010-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x560afc9b3010-SpecificationConstruct" + "SpecificationConstruct": "0x5591e059f010-SpecificationConstruct" }, { - "id": "0x560afc9b3010-SpecificationConstruct", + "id": "0x5591e059f010-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x560afc9b3010-Statement" + "Statement": "0x5591e059f010-Statement" }, { - "id": "0x560afc9b3010-Statement", - "statement": "0x560afc9b2b00-TypeDeclarationStmt", + "id": "0x5591e059f010-Statement", + "statement": "0x5591e059eb00-TypeDeclarationStmt", "source": "complex :: c_exp =(1.5e2, -2.0e-1)" }, { - "id": "0x560afc9b2b00-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x560afc9b2b30-DeclarationTypeSpec", + "id": "0x5591e059eb00-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5591e059eb30-DeclarationTypeSpec", "EntityDecl": [ - "0x560afc9b2f20-EntityDecl" + "0x5591e059ef20-EntityDecl" ] }, { - "id": "0x560afc9b2b30-DeclarationTypeSpec", + "id": "0x5591e059eb30-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x560afc9b2b30-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5591e059eb30-IntrinsicTypeSpec" }, { - "id": "0x560afc9b2b30-IntrinsicTypeSpec", + "id": "0x5591e059eb30-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x560afc9b2b30-Complex" + "Complex": "0x5591e059eb30-Complex" }, { - "id": "0x560afc9b2b30-Complex" + "id": "0x5591e059eb30-Complex" }, { - "id": "0x560afc9b2f20-EntityDecl", - "Name": "0x560afc9b2fd8-Name", - "Initialization": "0x560afc9b2f20-Initialization" + "id": "0x5591e059ef20-EntityDecl", + "Name": "0x5591e059efd8-Name", + "Initialization": "0x5591e059ef20-Initialization" }, { - "id": "0x560afc9b2fd8-Name", + "id": "0x5591e059efd8-Name", "source": "c_exp" }, { - "id": "0x560afc9b2f20-Initialization", + "id": "0x5591e059ef20-Initialization", "variantKey": "Expr", - "Expr": "0x560afc9b2e30-Expr" + "Expr": "0x5591e059ee30-Expr" }, { - "id": "0x560afc9b2e30-Expr", + "id": "0x5591e059ee30-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x560afc9b2e50-LiteralConstant" + "LiteralConstant": "0x5591e059ee50-LiteralConstant" }, { - "id": "0x560afc9b2e50-LiteralConstant", + "id": "0x5591e059ee50-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x560afc9b2e50-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x5591e059ee50-ComplexLiteralConstant" }, { - "id": "0x560afc9b2e50-ComplexLiteralConstant", - "real": "0x560afc9b2ea0-ComplexPart", - "imaginary": "0x560afc9b2e50-ComplexPart" + "id": "0x5591e059ee50-ComplexLiteralConstant", + "real": "0x5591e059eea0-ComplexPart", + "imaginary": "0x5591e059ee50-ComplexPart" }, { - "id": "0x560afc9b2ea0-ComplexPart", + "id": "0x5591e059eea0-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x560afc9b2ea0-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x5591e059eea0-SignedRealLiteralConstant" }, { - "id": "0x560afc9b2ea0-SignedRealLiteralConstant", - "RealLiteralConstant": "0x560afc9b2ea0-RealLiteralConstant" + "id": "0x5591e059eea0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x5591e059eea0-RealLiteralConstant" }, { - "id": "0x560afc9b2ea0-RealLiteralConstant", - "real": "0x560afc9b2ea0-Real" + "id": "0x5591e059eea0-RealLiteralConstant", + "real": "0x5591e059eea0-Real" }, { - "id": "0x560afc9b2ea0-Real", + "id": "0x5591e059eea0-Real", "source": "1.5e2" }, { - "id": "0x560afc9b2e50-ComplexPart", + "id": "0x5591e059ee50-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x560afc9b2e50-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x5591e059ee50-SignedRealLiteralConstant" }, { - "id": "0x560afc9b2e50-SignedRealLiteralConstant", + "id": "0x5591e059ee50-SignedRealLiteralConstant", "Sign": "-", - "RealLiteralConstant": "0x560afc9b2e50-RealLiteralConstant" + "RealLiteralConstant": "0x5591e059ee50-RealLiteralConstant" }, { - "id": "0x560afc9b2e50-RealLiteralConstant", - "real": "0x560afc9b2e50-Real" + "id": "0x5591e059ee50-RealLiteralConstant", + "real": "0x5591e059ee50-Real" }, { - "id": "0x560afc9b2e50-Real", + "id": "0x5591e059ee50-Real", "source": "2.0e-1" }, { - "id": "0x560afc9b3a30-DeclarationConstruct", + "id": "0x5591e059fa30-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x560afc9b3a30-SpecificationConstruct" + "SpecificationConstruct": "0x5591e059fa30-SpecificationConstruct" }, { - "id": "0x560afc9b3a30-SpecificationConstruct", + "id": "0x5591e059fa30-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x560afc9b3a30-Statement" + "Statement": "0x5591e059fa30-Statement" }, { - "id": "0x560afc9b3a30-Statement", - "statement": "0x560afc9b2db0-TypeDeclarationStmt", + "id": "0x5591e059fa30-Statement", + "statement": "0x5591e059edb0-TypeDeclarationStmt", "source": "complex(dp) :: c_double_d =(1.0d0, 3.141592653589793d0)" }, { - "id": "0x560afc9b2db0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x560afc9b2de0-DeclarationTypeSpec", + "id": "0x5591e059edb0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5591e059ede0-DeclarationTypeSpec", "EntityDecl": [ - "0x560afc9b3860-EntityDecl" + "0x5591e059f860-EntityDecl" ] }, { - "id": "0x560afc9b2de0-DeclarationTypeSpec", + "id": "0x5591e059ede0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x560afc9b2de0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5591e059ede0-IntrinsicTypeSpec" }, { - "id": "0x560afc9b2de0-IntrinsicTypeSpec", + "id": "0x5591e059ede0-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x560afc9b2de0-Complex" + "Complex": "0x5591e059ede0-Complex" }, { - "id": "0x560afc9b2de0-Complex", - "KindSelector": "0x560afc9b2de0-KindSelector" + "id": "0x5591e059ede0-Complex", + "KindSelector": "0x5591e059ede0-KindSelector" }, { - "id": "0x560afc9b2de0-KindSelector", + "id": "0x5591e059ede0-KindSelector", "variantKey": "Expr", - "Expr": "0x560afc9b3260-Expr" + "Expr": "0x5591e059f260-Expr" }, { - "id": "0x560afc9b3260-Expr", + "id": "0x5591e059f260-Expr", "variantKey": "Designator", - "Designator": "0x560afc9cbb90-Designator" + "Designator": "0x5591e05b7b90-Designator" }, { - "id": "0x560afc9cbb90-Designator", + "id": "0x5591e05b7b90-Designator", "variantKey": "DataRef", - "DataRef": "0x560afc9cbba0-DataRef" + "DataRef": "0x5591e05b7ba0-DataRef" }, { - "id": "0x560afc9cbba0-DataRef", + "id": "0x5591e05b7ba0-DataRef", "variantKey": "Name", - "Name": "0x560afc9cbba0-Name" + "Name": "0x5591e05b7ba0-Name" }, { - "id": "0x560afc9cbba0-Name", + "id": "0x5591e05b7ba0-Name", "source": "dp" }, { - "id": "0x560afc9b3860-EntityDecl", - "Name": "0x560afc9b3918-Name", - "Initialization": "0x560afc9b3860-Initialization" + "id": "0x5591e059f860-EntityDecl", + "Name": "0x5591e059f918-Name", + "Initialization": "0x5591e059f860-Initialization" }, { - "id": "0x560afc9b3918-Name", + "id": "0x5591e059f918-Name", "source": "c_double_d" }, { - "id": "0x560afc9b3860-Initialization", + "id": "0x5591e059f860-Initialization", "variantKey": "Expr", - "Expr": "0x560afc9b3770-Expr" + "Expr": "0x5591e059f770-Expr" }, { - "id": "0x560afc9b3770-Expr", + "id": "0x5591e059f770-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x560afc9b3790-LiteralConstant" + "LiteralConstant": "0x5591e059f790-LiteralConstant" }, { - "id": "0x560afc9b3790-LiteralConstant", + "id": "0x5591e059f790-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x560afc9b3790-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x5591e059f790-ComplexLiteralConstant" }, { - "id": "0x560afc9b3790-ComplexLiteralConstant", - "real": "0x560afc9b37e0-ComplexPart", - "imaginary": "0x560afc9b3790-ComplexPart" + "id": "0x5591e059f790-ComplexLiteralConstant", + "real": "0x5591e059f7e0-ComplexPart", + "imaginary": "0x5591e059f790-ComplexPart" }, { - "id": "0x560afc9b37e0-ComplexPart", + "id": "0x5591e059f7e0-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x560afc9b37e0-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x5591e059f7e0-SignedRealLiteralConstant" }, { - "id": "0x560afc9b37e0-SignedRealLiteralConstant", - "RealLiteralConstant": "0x560afc9b37e0-RealLiteralConstant" + "id": "0x5591e059f7e0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x5591e059f7e0-RealLiteralConstant" }, { - "id": "0x560afc9b37e0-RealLiteralConstant", - "real": "0x560afc9b37e0-Real" + "id": "0x5591e059f7e0-RealLiteralConstant", + "real": "0x5591e059f7e0-Real" }, { - "id": "0x560afc9b37e0-Real", + "id": "0x5591e059f7e0-Real", "source": "1.0d0" }, { - "id": "0x560afc9b3790-ComplexPart", + "id": "0x5591e059f790-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x560afc9b3790-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x5591e059f790-SignedRealLiteralConstant" }, { - "id": "0x560afc9b3790-SignedRealLiteralConstant", - "RealLiteralConstant": "0x560afc9b3790-RealLiteralConstant" + "id": "0x5591e059f790-SignedRealLiteralConstant", + "RealLiteralConstant": "0x5591e059f790-RealLiteralConstant" }, { - "id": "0x560afc9b3790-RealLiteralConstant", - "real": "0x560afc9b3790-Real" + "id": "0x5591e059f790-RealLiteralConstant", + "real": "0x5591e059f790-Real" }, { - "id": "0x560afc9b3790-Real", + "id": "0x5591e059f790-Real", "source": "3.141592653589793d0" }, { - "id": "0x560afc9b3e20-DeclarationConstruct", + "id": "0x5591e059fe20-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x560afc9b3e20-SpecificationConstruct" + "SpecificationConstruct": "0x5591e059fe20-SpecificationConstruct" }, { - "id": "0x560afc9b3e20-SpecificationConstruct", + "id": "0x5591e059fe20-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x560afc9b3e20-Statement" + "Statement": "0x5591e059fe20-Statement" }, { - "id": "0x560afc9b3e20-Statement", - "statement": "0x560afc9b3060-TypeDeclarationStmt", + "id": "0x5591e059fe20-Statement", + "statement": "0x5591e059f060-TypeDeclarationStmt", "source": "complex(dp) :: c_double_kind =(2.5_dp, -5.5_dp)" }, { - "id": "0x560afc9b3060-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x560afc9b3090-DeclarationTypeSpec", + "id": "0x5591e059f060-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5591e059f090-DeclarationTypeSpec", "EntityDecl": [ - "0x560afc9b3d30-EntityDecl" + "0x5591e059fd30-EntityDecl" ] }, { - "id": "0x560afc9b3090-DeclarationTypeSpec", + "id": "0x5591e059f090-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x560afc9b3090-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5591e059f090-IntrinsicTypeSpec" }, { - "id": "0x560afc9b3090-IntrinsicTypeSpec", + "id": "0x5591e059f090-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x560afc9b3090-Complex" + "Complex": "0x5591e059f090-Complex" }, { - "id": "0x560afc9b3090-Complex", - "KindSelector": "0x560afc9b3090-KindSelector" + "id": "0x5591e059f090-Complex", + "KindSelector": "0x5591e059f090-KindSelector" }, { - "id": "0x560afc9b3090-KindSelector", + "id": "0x5591e059f090-KindSelector", "variantKey": "Expr", - "Expr": "0x560afc9b3b00-Expr" + "Expr": "0x5591e059fb00-Expr" }, { - "id": "0x560afc9b3b00-Expr", + "id": "0x5591e059fb00-Expr", "variantKey": "Designator", - "Designator": "0x560afc994d90-Designator" + "Designator": "0x5591e0580d90-Designator" }, { - "id": "0x560afc994d90-Designator", + "id": "0x5591e0580d90-Designator", "variantKey": "DataRef", - "DataRef": "0x560afc994da0-DataRef" + "DataRef": "0x5591e0580da0-DataRef" }, { - "id": "0x560afc994da0-DataRef", + "id": "0x5591e0580da0-DataRef", "variantKey": "Name", - "Name": "0x560afc994da0-Name" + "Name": "0x5591e0580da0-Name" }, { - "id": "0x560afc994da0-Name", + "id": "0x5591e0580da0-Name", "source": "dp" }, { - "id": "0x560afc9b3d30-EntityDecl", - "Name": "0x560afc9b3de8-Name", - "Initialization": "0x560afc9b3d30-Initialization" + "id": "0x5591e059fd30-EntityDecl", + "Name": "0x5591e059fde8-Name", + "Initialization": "0x5591e059fd30-Initialization" }, { - "id": "0x560afc9b3de8-Name", + "id": "0x5591e059fde8-Name", "source": "c_double_kind" }, { - "id": "0x560afc9b3d30-Initialization", + "id": "0x5591e059fd30-Initialization", "variantKey": "Expr", - "Expr": "0x560afc9b3c40-Expr" + "Expr": "0x5591e059fc40-Expr" }, { - "id": "0x560afc9b3c40-Expr", + "id": "0x5591e059fc40-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x560afc9b3c60-LiteralConstant" + "LiteralConstant": "0x5591e059fc60-LiteralConstant" }, { - "id": "0x560afc9b3c60-LiteralConstant", + "id": "0x5591e059fc60-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x560afc9b3c60-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x5591e059fc60-ComplexLiteralConstant" }, { - "id": "0x560afc9b3c60-ComplexLiteralConstant", - "real": "0x560afc9b3cb0-ComplexPart", - "imaginary": "0x560afc9b3c60-ComplexPart" + "id": "0x5591e059fc60-ComplexLiteralConstant", + "real": "0x5591e059fcb0-ComplexPart", + "imaginary": "0x5591e059fc60-ComplexPart" }, { - "id": "0x560afc9b3cb0-ComplexPart", + "id": "0x5591e059fcb0-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x560afc9b3cb0-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x5591e059fcb0-SignedRealLiteralConstant" }, { - "id": "0x560afc9b3cb0-SignedRealLiteralConstant", - "RealLiteralConstant": "0x560afc9b3cb0-RealLiteralConstant" + "id": "0x5591e059fcb0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x5591e059fcb0-RealLiteralConstant" }, { - "id": "0x560afc9b3cb0-RealLiteralConstant", - "real": "0x560afc9b3cb0-Real", - "kind": "0x560afc9b3cc0-KindParam" + "id": "0x5591e059fcb0-RealLiteralConstant", + "real": "0x5591e059fcb0-Real", + "kind": "0x5591e059fcc0-KindParam" }, { - "id": "0x560afc9b3cb0-Real", + "id": "0x5591e059fcb0-Real", "source": "2.5" }, { - "id": "0x560afc9b3cc0-KindParam", + "id": "0x5591e059fcc0-KindParam", "variantKey": "Expr", - "Expr": "0x560afc9b3cc0-Name" + "Expr": "0x5591e059fcc0-Name" }, { - "id": "0x560afc9b3cc0-Name", + "id": "0x5591e059fcc0-Name", "source": "dp" }, { - "id": "0x560afc9b3c60-ComplexPart", + "id": "0x5591e059fc60-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x560afc9b3c60-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x5591e059fc60-SignedRealLiteralConstant" }, { - "id": "0x560afc9b3c60-SignedRealLiteralConstant", + "id": "0x5591e059fc60-SignedRealLiteralConstant", "Sign": "-", - "RealLiteralConstant": "0x560afc9b3c60-RealLiteralConstant" + "RealLiteralConstant": "0x5591e059fc60-RealLiteralConstant" }, { - "id": "0x560afc9b3c60-RealLiteralConstant", - "real": "0x560afc9b3c60-Real", - "kind": "0x560afc9b3c70-KindParam" + "id": "0x5591e059fc60-RealLiteralConstant", + "real": "0x5591e059fc60-Real", + "kind": "0x5591e059fc70-KindParam" }, { - "id": "0x560afc9b3c60-Real", + "id": "0x5591e059fc60-Real", "source": "5.5" }, { - "id": "0x560afc9b3c70-KindParam", + "id": "0x5591e059fc70-KindParam", "variantKey": "Expr", - "Expr": "0x560afc9b3c70-Name" + "Expr": "0x5591e059fc70-Name" }, { - "id": "0x560afc9b3c70-Name", + "id": "0x5591e059fc70-Name", "source": "dp" }, { - "id": "0x560afc9b4210-DeclarationConstruct", + "id": "0x5591e05a0210-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x560afc9b4210-SpecificationConstruct" + "SpecificationConstruct": "0x5591e05a0210-SpecificationConstruct" }, { - "id": "0x560afc9b4210-SpecificationConstruct", + "id": "0x5591e05a0210-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x560afc9b4210-Statement" + "Statement": "0x5591e05a0210-Statement" }, { - "id": "0x560afc9b4210-Statement", - "statement": "0x560afc9b30e0-TypeDeclarationStmt", + "id": "0x5591e05a0210-Statement", + "statement": "0x5591e059f0e0-TypeDeclarationStmt", "source": "complex(sp) :: c_single_kind =(1.0_sp, 0.5_sp)" }, { - "id": "0x560afc9b30e0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x560afc9b3110-DeclarationTypeSpec", + "id": "0x5591e059f0e0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5591e059f110-DeclarationTypeSpec", "EntityDecl": [ - "0x560afc9b4120-EntityDecl" + "0x5591e05a0120-EntityDecl" ] }, { - "id": "0x560afc9b3110-DeclarationTypeSpec", + "id": "0x5591e059f110-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x560afc9b3110-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5591e059f110-IntrinsicTypeSpec" }, { - "id": "0x560afc9b3110-IntrinsicTypeSpec", + "id": "0x5591e059f110-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x560afc9b3110-Complex" + "Complex": "0x5591e059f110-Complex" }, { - "id": "0x560afc9b3110-Complex", - "KindSelector": "0x560afc9b3110-KindSelector" + "id": "0x5591e059f110-Complex", + "KindSelector": "0x5591e059f110-KindSelector" }, { - "id": "0x560afc9b3110-KindSelector", + "id": "0x5591e059f110-KindSelector", "variantKey": "Expr", - "Expr": "0x560afc9b3ef0-Expr" + "Expr": "0x5591e059fef0-Expr" }, { - "id": "0x560afc9b3ef0-Expr", + "id": "0x5591e059fef0-Expr", "variantKey": "Designator", - "Designator": "0x560afc995100-Designator" + "Designator": "0x5591e0581100-Designator" }, { - "id": "0x560afc995100-Designator", + "id": "0x5591e0581100-Designator", "variantKey": "DataRef", - "DataRef": "0x560afc995110-DataRef" + "DataRef": "0x5591e0581110-DataRef" }, { - "id": "0x560afc995110-DataRef", + "id": "0x5591e0581110-DataRef", "variantKey": "Name", - "Name": "0x560afc995110-Name" + "Name": "0x5591e0581110-Name" }, { - "id": "0x560afc995110-Name", + "id": "0x5591e0581110-Name", "source": "sp" }, { - "id": "0x560afc9b4120-EntityDecl", - "Name": "0x560afc9b41d8-Name", - "Initialization": "0x560afc9b4120-Initialization" + "id": "0x5591e05a0120-EntityDecl", + "Name": "0x5591e05a01d8-Name", + "Initialization": "0x5591e05a0120-Initialization" }, { - "id": "0x560afc9b41d8-Name", + "id": "0x5591e05a01d8-Name", "source": "c_single_kind" }, { - "id": "0x560afc9b4120-Initialization", + "id": "0x5591e05a0120-Initialization", "variantKey": "Expr", - "Expr": "0x560afc9b4030-Expr" + "Expr": "0x5591e05a0030-Expr" }, { - "id": "0x560afc9b4030-Expr", + "id": "0x5591e05a0030-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x560afc9b4050-LiteralConstant" + "LiteralConstant": "0x5591e05a0050-LiteralConstant" }, { - "id": "0x560afc9b4050-LiteralConstant", + "id": "0x5591e05a0050-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x560afc9b4050-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x5591e05a0050-ComplexLiteralConstant" }, { - "id": "0x560afc9b4050-ComplexLiteralConstant", - "real": "0x560afc9b40a0-ComplexPart", - "imaginary": "0x560afc9b4050-ComplexPart" + "id": "0x5591e05a0050-ComplexLiteralConstant", + "real": "0x5591e05a00a0-ComplexPart", + "imaginary": "0x5591e05a0050-ComplexPart" }, { - "id": "0x560afc9b40a0-ComplexPart", + "id": "0x5591e05a00a0-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x560afc9b40a0-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x5591e05a00a0-SignedRealLiteralConstant" }, { - "id": "0x560afc9b40a0-SignedRealLiteralConstant", - "RealLiteralConstant": "0x560afc9b40a0-RealLiteralConstant" + "id": "0x5591e05a00a0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x5591e05a00a0-RealLiteralConstant" }, { - "id": "0x560afc9b40a0-RealLiteralConstant", - "real": "0x560afc9b40a0-Real", - "kind": "0x560afc9b40b0-KindParam" + "id": "0x5591e05a00a0-RealLiteralConstant", + "real": "0x5591e05a00a0-Real", + "kind": "0x5591e05a00b0-KindParam" }, { - "id": "0x560afc9b40a0-Real", + "id": "0x5591e05a00a0-Real", "source": "1.0" }, { - "id": "0x560afc9b40b0-KindParam", + "id": "0x5591e05a00b0-KindParam", "variantKey": "Expr", - "Expr": "0x560afc9b40b0-Name" + "Expr": "0x5591e05a00b0-Name" }, { - "id": "0x560afc9b40b0-Name", + "id": "0x5591e05a00b0-Name", "source": "sp" }, { - "id": "0x560afc9b4050-ComplexPart", + "id": "0x5591e05a0050-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x560afc9b4050-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x5591e05a0050-SignedRealLiteralConstant" }, { - "id": "0x560afc9b4050-SignedRealLiteralConstant", - "RealLiteralConstant": "0x560afc9b4050-RealLiteralConstant" + "id": "0x5591e05a0050-SignedRealLiteralConstant", + "RealLiteralConstant": "0x5591e05a0050-RealLiteralConstant" }, { - "id": "0x560afc9b4050-RealLiteralConstant", - "real": "0x560afc9b4050-Real", - "kind": "0x560afc9b4060-KindParam" + "id": "0x5591e05a0050-RealLiteralConstant", + "real": "0x5591e05a0050-Real", + "kind": "0x5591e05a0060-KindParam" }, { - "id": "0x560afc9b4050-Real", + "id": "0x5591e05a0050-Real", "source": "0.5" }, { - "id": "0x560afc9b4060-KindParam", + "id": "0x5591e05a0060-KindParam", "variantKey": "Expr", - "Expr": "0x560afc9b4060-Name" + "Expr": "0x5591e05a0060-Name" }, { - "id": "0x560afc9b4060-Name", + "id": "0x5591e05a0060-Name", "source": "sp" }, { - "id": "0x560afc9b8098-ExecutionPart" + "id": "0x5591e05a4098-ExecutionPart" }, { - "id": "0x560afc9b8098-list" + "id": "0x5591e05a4098-list" }, { - "id": "0x560afc9b8010-Statement", - "statement": "0x560afc9b8020-EndProgramStmt", + "id": "0x5591e05a4010-Statement", + "statement": "0x5591e05a4020-EndProgramStmt", "source": "end program COMPLEX_LITERAL" }, { - "id": "0x560afc9b8020-EndProgramStmt", - "Name": "0x560afc9b8020-Name" + "id": "0x5591e05a4020-EndProgramStmt", + "Name": "0x5591e05a4020-Name" }, { - "id": "0x560afc9b8020-Name", + "id": "0x5591e05a4020-Name", "source": "COMPLEX_LITERAL" } ], "comments": [ { "text": " 1. Basic Default Real Literals", - "stmtId": "0x560afc9b2ab0-Statement", + "stmtId": "0x5591e059eab0-Statement", "trailing": false }, { "text": " 2. Integer Components (automatically converted to real)", - "stmtId": "0x560afc9b2d60-Statement", + "stmtId": "0x5591e059ed60-Statement", "trailing": false }, { "text": " 3. Scientific / Exponential Notation", - "stmtId": "0x560afc9b3010-Statement", + "stmtId": "0x5591e059f010-Statement", "trailing": false }, { "text": " Represents (150.0, -0.2)", - "stmtId": "0x560afc9b3010-Statement", + "stmtId": "0x5591e059f010-Statement", "trailing": true }, { "text": " 4. Double Precision (using 'd' exponent notation)", - "stmtId": "0x560afc9b3a30-Statement", + "stmtId": "0x5591e059fa30-Statement", "trailing": false }, { "text": " 5. Kind Parameter Suffixes (Modern Standard)", - "stmtId": "0x560afc9b3e20-Statement", + "stmtId": "0x5591e059fe20-Statement", "trailing": false } ], From dfd3c6af3e1901db7a6220728376185906197523 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 22 Jul 2026 22:38:06 +0100 Subject: [PATCH 077/260] Map new use statement nodes to names --- .../up/fe/specs/fortran/parser/FlangName.java | 3 ++ .../fe/specs/fortran/parser/FlangToClass.java | 50 ++++++++++++++----- 2 files changed, 40 insertions(+), 13 deletions(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 5ce2757c..d9659c23 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -58,6 +58,9 @@ public enum FlangName implements StringProvider { ALLOCATE_STMT, DEALLOCATE_STMT, USE_STMT, + ONLY, + NAMES, + OPERATORS, CONTINUE_STMT, PARAMETER_STMT, STOP_STMT, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index ae2e3d0f..4e87d068 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -27,7 +27,7 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.CaseConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.EndSelectStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.SelectCaseStmt; -import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.UseStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.*; import pt.up.fe.specs.fortran.ast.nodes.type.*; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.AllocatableKeyword; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.IntentSpec; @@ -45,7 +45,8 @@ public class FlangToClass { private static final Map> NAME_TO_CLASS = new HashMap<>(); - private static final Map>> NAME_TO_CONCRETE_CLASS = new HashMap<>(); + private static final Map>>> + NAME_TO_CONCRETE_CLASS = new HashMap<>(); static { NAME_TO_CLASS.put(FlangName.PROGRAM, FortranFile.class); @@ -101,6 +102,11 @@ public class FlangToClass { NAME_TO_CLASS.put(FlangName.ALLOCATE_STMT, AllocateStmt.class); NAME_TO_CLASS.put(FlangName.DEALLOCATE_STMT, DeallocateStmt.class); NAME_TO_CLASS.put(FlangName.USE_STMT, UseStmt.class); + NAME_TO_CONCRETE_CLASS.put(FlangName.USE_STMT, FlangToClass::chooseUseStmt); + NAME_TO_CLASS.put(FlangName.ONLY, Only.class); + NAME_TO_CONCRETE_CLASS.put(FlangName.ONLY, FlangToClass::chooseOnly); + NAME_TO_CLASS.put(FlangName.NAMES, NamesRename.class); + NAME_TO_CLASS.put(FlangName.OPERATORS, OperatorsRename.class); NAME_TO_CLASS.put(FlangName.CONTINUE_STMT, ContinueStmt.class); NAME_TO_CLASS.put(FlangName.PARAMETER_STMT, ParameterStmt.class); NAME_TO_CLASS.put(FlangName.NAMED_CONSTANT_DEF, NamedConstantDef.class); @@ -192,23 +198,41 @@ public class FlangToClass { NAME_TO_CLASS.put(FlangName.NOWAIT, OmpNowaitClause.class); } - private static Class chooseParameter(FlangAttributes attrs) { + private static Optional> chooseComplexPart(FlangAttributes attrs) { return switch (attrs.getVariantKey()) { - case "Name" -> NamedParameter.class; - case "Star" -> StarParameter.class; - default -> throw new RuntimeException("Unknown variant: " + attrs.getVariantKey()); + case "SignedIntLiteralConstant" -> Optional.of(IntComplexPart.class); + case "SignedRealLiteralConstant" -> Optional.of(RealComplexPart.class); + case "NamedConstant" -> Optional.of(NamedComplexPart.class); + default -> Optional.empty(); }; } - private static Class> chooseComplexPart(FlangAttributes attrs) { + private static Optional> chooseOnly(FlangAttributes attrs) { return switch (attrs.getVariantKey()) { - case "SignedIntLiteralConstant" -> IntComplexPart.class; - case "SignedRealLiteralConstant" -> RealComplexPart.class; - case "NamedConstant" -> NamedComplexPart.class; - default -> throw new RuntimeException("Unknown variant: " + attrs.getVariantKey()); + case "GenericSpec" -> Optional.of(OnlyGenericSpec.class); + case "Name" -> Optional.of(UseName.class); + default -> Optional.empty(); }; } + private static Optional> chooseParameter(FlangAttributes attrs) { + return switch (attrs.getVariantKey()) { + case "Name" -> Optional.of(NamedParameter.class); + case "Star" -> Optional.of(StarParameter.class); + default -> Optional.empty(); + }; + } + + private static Optional> chooseUseStmt(FlangAttributes attrs) { + if (attrs.has("renameList")) { + return Optional.of(UseRenameStmt.class); + } + if (attrs.has("onlyList")) { + return Optional.of(UseOnlyStmt.class); + } + return Optional.empty(); + } + public static boolean isClass(String type) { return FlangName.convertTry(type).map(NAME_TO_CLASS::containsKey).orElse(false); @@ -219,11 +243,11 @@ public static Optional> getClass(String type) { } public static Optional> getConcreteClass(String type, FlangAttributes attrs) { - return FlangName.convertTry(type).map(name -> { + return FlangName.convertTry(type).flatMap(name -> { if (NAME_TO_CONCRETE_CLASS.containsKey(name)) { return NAME_TO_CONCRETE_CLASS.get(name).apply(attrs); } - return NAME_TO_CLASS.get(name); + return Optional.ofNullable(NAME_TO_CLASS.get(name)); }); } } From ef0b1f28fbf1b1d8ffa2647ebab074094d051f27 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 22 Jul 2026 23:13:16 +0100 Subject: [PATCH 078/260] Implement processors for new use statements --- .../up/fe/specs/fortran/parser/FlangData.java | 4 +- .../fe/specs/fortran/parser/FlangToClass.java | 9 +++++ .../fortran/parser/processors/Nodes.java | 7 +++- .../parser/processors/StmtProcessors.java | 38 +++++++++++++++++-- 4 files changed, 50 insertions(+), 8 deletions(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangData.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangData.java index 1f4bd84e..a3b2f168 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangData.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangData.java @@ -53,7 +53,7 @@ public Optional getDerivedId(String id, boolean isNode) { } // If there is already a concrete FortranAst class for this id, there is no derivation - if (FlangToClass.isClass(getKind(id))) { + if (FlangToClass.isConcreteClass(getKind(id), getAttrs(id))) { return Optional.empty(); } @@ -152,8 +152,6 @@ public Optional getOptionalString(FortranNode node, String key, FlangNam } public Optional getOptional(FortranNode node, String key, FlangName... path) { - var currentId = node.get(FortranNode.ID); - // Get base attrs var currentAttrs = getAttrs(node); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 4e87d068..e18f62fa 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -238,6 +238,15 @@ public static boolean isClass(String type) { return FlangName.convertTry(type).map(NAME_TO_CLASS::containsKey).orElse(false); } + public static boolean isConcreteClass(String type, FlangAttributes attrs) { + return FlangName.convertTry(type).map(name -> { + if (NAME_TO_CONCRETE_CLASS.containsKey(name)) { + return NAME_TO_CONCRETE_CLASS.get(name).apply(attrs).isPresent(); + } + return NAME_TO_CLASS.containsKey(name); + }).orElse(false); + } + public static Optional> getClass(String type) { return FlangName.convertTry(type).map(NAME_TO_CLASS::get); } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 8a8eb285..a4f2965b 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -27,7 +27,7 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.CaseConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.EndSelectStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.SelectCaseStmt; -import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.UseStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.*; import pt.up.fe.specs.fortran.ast.nodes.type.*; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.IntentSpec; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.KeywordAttributeSpecifier; @@ -101,7 +101,10 @@ public Nodes(FortranJsonResult data) { processors.put(EndSelectStmt.class, s::endSelectStmt); processors.put(CallStmt.class, s::callStmt); - processors.put(UseStmt.class, s::useStmt); + processors.put(UseRenameStmt.class, s::useRenameStmt); + processors.put(UseOnlyStmt.class, s::useOnlyStmt); + processors.put(UseName.class, s::useName); + processors.put(NamesRename.class, s::namesRename); processors.put(WriteStmt.class, s::writeStmt); processors.put(ContainsStmt.class, s::containsStmt); processors.put(AllocateStmt.class, s::allocateStmt); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 49c9b679..d03776a3 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -16,7 +16,7 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.EndDoStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.*; -import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.UseStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.*; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.DimensionSpec; import pt.up.fe.specs.fortran.parser.FlangAttributes; import pt.up.fe.specs.fortran.parser.FlangName; @@ -476,12 +476,44 @@ public void deallocateStmt(DeallocateStmt deallocateStmt) { public void useStmt(UseStmt useStmt) { stmt(useStmt); - String nameId = attributes(useStmt).getString("moduleName"); - String name = attributes().get(nameId).getString("source"); + var intrinsic = attributes(useStmt).getOptionalString("nature") + .map(nature -> !nature.endsWith("Non_Intrinsic")); + useStmt.set(UseStmt.INTRINSIC, intrinsic); + var nameId = attributes(useStmt).getString("moduleName"); + var name = attributes().get(nameId).getString("source"); useStmt.set(UseStmt.NAME, name); } + public void useRenameStmt(UseRenameStmt useRenameStmt) { + useStmt(useRenameStmt); + + var renameList = getChildren(useRenameStmt, "renameList"); + useRenameStmt.addChildren(renameList); + } + + public void useOnlyStmt(UseOnlyStmt useOnlyStmt) { + useStmt(useOnlyStmt); + + var onlyList = getChildren(useOnlyStmt, "onlyList"); + useOnlyStmt.addChildren(onlyList); + } + + public void useName(UseName useName) { + var name = attributes().getString(useName, "source", FlangName.NAME); + useName.set(UseName.NAME, name); + } + + public void namesRename(NamesRename namesRename) { + var localNameId = attributes().getString(namesRename, "local"); + var localName = attributes().get(localNameId).getString("source"); + namesRename.set(NamesRename.LOCAL_NAME, localName); + + var globalNameId = attributes().getString(namesRename, "global"); + var globalName = attributes().get(globalNameId).getString("source"); + namesRename.set(NamesRename.GLOBAL_NAME, globalName); + } + public void continueStmt(ContinueStmt continueStmt) { actionStmt(continueStmt); } From da4669c821ab7695b967fc8b8686a62c6b9ad264 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 22 Jul 2026 23:18:10 +0100 Subject: [PATCH 079/260] Fix complex literal expected code --- .../fortran/parser/expr/complex_literal.expected.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FortranParser/resources-test/fortran/parser/expr/complex_literal.expected.f90 b/FortranParser/resources-test/fortran/parser/expr/complex_literal.expected.f90 index b6232a6f..9a3acaf4 100644 --- a/FortranParser/resources-test/fortran/parser/expr/complex_literal.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/expr/complex_literal.expected.f90 @@ -1,5 +1,5 @@ PROGRAM COMPLEX_LITERAL - USE, INTRINSIC :: iso_fortran_env, ONLY: sp => real32, dp => real64 + USE, INTRINSIC :: iso_fortran_env, ONLY : sp => real32, dp => real64 ! 1. Basic Default Real Literals COMPLEX c_default = (3.0, 4.0) From a0a3dee608a40eaeedb1e63e6e6ed46f5d6d2889 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 22 Jul 2026 23:38:40 +0100 Subject: [PATCH 080/260] Fix some style decisions --- .../ast/nodes/expr/BinaryOperator.java | 6 +- .../fortran/ast/nodes/expr/UnaryOperator.java | 2 +- .../nodes/expr/enums/BinaryOperatorKind.java | 67 +- .../nodes/expr/enums/UnaryOperatorKind.java | 6 +- .../nodes/omp/clause/OmpReductionClause.java | 2 +- .../conditionalstmt/chained_if.expected.f90 | 4 +- .../conditionalstmt/if_then.expected.f90 | 2 +- .../conditionalstmt/if_then_else.expected.f90 | 2 +- .../conditionalstmt/logical_if.expected.f90 | 2 +- .../named_chained_if.expected.f90 | 4 +- .../fortran/parser/expr/not.expected.f90 | 2 +- .../fujitsu/0000/0000_0002.expected.f90 | 6 +- .../fujitsu/0000/0000_0003.expected.f90 | 6 +- .../fujitsu/0000/0000_0004.expected.f90 | 6 +- .../fujitsu/0000/0000_0007.expected.f90 | 6 +- .../fujitsu/0000/0000_0019.expected.f90 | 6 +- .../parser/logical_expression.expected.f90 | 2 +- .../fortran/parser/omp/omp_basic.json | 961 ++++++--- .../fortran/parser/omp/omp_clause.json | 1524 +++++++++------ .../fortran/parser/omp/omp_do.json | 1738 ++++++++++------- .../fortran/parser/omp/omp_reduction.json | 1428 ++++++++------ .../fortran/parser/stmt/stop.expected.f90 | 2 +- 22 files changed, 3524 insertions(+), 2260 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/BinaryOperator.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/BinaryOperator.java index 42529c77..0754cd94 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/BinaryOperator.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/BinaryOperator.java @@ -3,6 +3,7 @@ import org.suikasoft.jOptions.Datakey.DataKey; import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranContext; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.expr.enums.BinaryOperatorKind; @@ -38,11 +39,8 @@ public BinaryOperatorKind getOp() { @Override public String getCode() { - return getLhs().getCode() + - - optSpc() + get(OP).getOpString() + optSpc() + - + optSpc() + encase(get(OP).getString()) + optSpc() + getRhs().getCode(); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/UnaryOperator.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/UnaryOperator.java index 17ced899..36c83de7 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/UnaryOperator.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/UnaryOperator.java @@ -25,6 +25,6 @@ public UnaryOperatorKind getOp() { @Override public String getCode() { - return getOp().getString() + getOperand().getCode(); + return encase(getOp().getString()) + getOperand().getCode(); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/enums/BinaryOperatorKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/enums/BinaryOperatorKind.java index b7b8d21b..911e4da8 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/enums/BinaryOperatorKind.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/enums/BinaryOperatorKind.java @@ -3,61 +3,26 @@ import pt.up.fe.specs.util.providers.StringProvider; public enum BinaryOperatorKind implements StringProvider { - ADD, - SUBTRACT, - MULTIPLY, - DIVIDE, - LT, - LE, - GT, - GE, - EQ, - NE, - AND; + ADD("+"), + SUBTRACT("-"), + MULTIPLY("*"), + DIVIDE("/"), + LT("<"), + LE("<="), + GT(">"), + GE(">="), + EQ("=="), + NE("/="), + AND(".AND."); - public String getOpString() { - switch (this) { - case ADD -> { - return "+"; - } - case SUBTRACT -> { - return "-"; - } - case MULTIPLY -> { - return "*"; - } - case DIVIDE -> { - return "/"; - } - case EQ -> { - return "=="; - } - case NE -> { - return "/="; - } - case GE -> { - return ">="; - } - case GT -> { - return ">"; - } - case LE -> { - return "<="; - } - case LT -> { - return "<"; - } - case AND -> { - return ".and."; - } - default -> { - return ""; - } - } + private final String opString; + + BinaryOperatorKind(String opString) { + this.opString = opString; } @Override public String getString() { - return getOpString(); + return opString; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/enums/UnaryOperatorKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/enums/UnaryOperatorKind.java index 922111bb..88ab885d 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/enums/UnaryOperatorKind.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/enums/UnaryOperatorKind.java @@ -5,14 +5,14 @@ public enum UnaryOperatorKind implements StringProvider { NEGATE("-"), UNARY_PLUS("+"), - NOT(".not. "); + NOT(".NOT. "); + + private final String opString; UnaryOperatorKind(String opString) { this.opString = opString; } - private final String opString; - public String getString() { return opString; } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/clause/OmpReductionClause.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/clause/OmpReductionClause.java index 699e55e6..d5160773 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/clause/OmpReductionClause.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/clause/OmpReductionClause.java @@ -29,6 +29,6 @@ public String getCode() { .map(DataRef::getCode) .collect(Collectors.joining(", ")); - return get(KIND).getCode() + "(" + get(OPERATOR).getOpString() + ":" + names + ")"; + return get(KIND).getCode() + "(" + encase(get(OPERATOR).getString()) + ":" + names + ")"; } } diff --git a/FortranParser/resources-test/fortran/parser/conditionalstmt/chained_if.expected.f90 b/FortranParser/resources-test/fortran/parser/conditionalstmt/chained_if.expected.f90 index 03517d3d..d628d919 100644 --- a/FortranParser/resources-test/fortran/parser/conditionalstmt/chained_if.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/conditionalstmt/chained_if.expected.f90 @@ -1,7 +1,7 @@ PROGRAM IF LOGICAL cond1, cond2 - cond1 = .false. - cond2 = .true. + cond1 = .FALSE. + cond2 = .TRUE. IF (cond1) THEN PRINT *, "cond1 is true" diff --git a/FortranParser/resources-test/fortran/parser/conditionalstmt/if_then.expected.f90 b/FortranParser/resources-test/fortran/parser/conditionalstmt/if_then.expected.f90 index 6f21b287..0ab5ec33 100644 --- a/FortranParser/resources-test/fortran/parser/conditionalstmt/if_then.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/conditionalstmt/if_then.expected.f90 @@ -1,6 +1,6 @@ PROGRAM IF LOGICAL cond - cond = .false. + cond = .FALSE. IF (cond) THEN PRINT *, "cond is true" diff --git a/FortranParser/resources-test/fortran/parser/conditionalstmt/if_then_else.expected.f90 b/FortranParser/resources-test/fortran/parser/conditionalstmt/if_then_else.expected.f90 index 09712905..a96973ee 100644 --- a/FortranParser/resources-test/fortran/parser/conditionalstmt/if_then_else.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/conditionalstmt/if_then_else.expected.f90 @@ -1,6 +1,6 @@ PROGRAM IF LOGICAL cond - cond = .false. + cond = .FALSE. IF (cond) THEN PRINT *, "cond is true" diff --git a/FortranParser/resources-test/fortran/parser/conditionalstmt/logical_if.expected.f90 b/FortranParser/resources-test/fortran/parser/conditionalstmt/logical_if.expected.f90 index 6ccd50b1..fd68a9eb 100644 --- a/FortranParser/resources-test/fortran/parser/conditionalstmt/logical_if.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/conditionalstmt/logical_if.expected.f90 @@ -1,7 +1,7 @@ PROGRAM LOGICAL_IF LOGICAL cond INTEGER result - cond = .false. + cond = .FALSE. result = 2 IF (cond) result = 3 END PROGRAM LOGICAL_IF \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/conditionalstmt/named_chained_if.expected.f90 b/FortranParser/resources-test/fortran/parser/conditionalstmt/named_chained_if.expected.f90 index 669ad7fd..eaba715a 100644 --- a/FortranParser/resources-test/fortran/parser/conditionalstmt/named_chained_if.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/conditionalstmt/named_chained_if.expected.f90 @@ -1,7 +1,7 @@ PROGRAM IF LOGICAL cond1, cond2 - cond1 = .false. - cond2 = .true. + cond1 = .FALSE. + cond2 = .TRUE. named_if : IF (cond1) THEN PRINT *, "cond1 is true" diff --git a/FortranParser/resources-test/fortran/parser/expr/not.expected.f90 b/FortranParser/resources-test/fortran/parser/expr/not.expected.f90 index fd0410fa..986eee34 100644 --- a/FortranParser/resources-test/fortran/parser/expr/not.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/expr/not.expected.f90 @@ -1,3 +1,3 @@ PROGRAM NOT - LOGICAL a = .not. .true. + LOGICAL a = .NOT. .TRUE. END PROGRAM NOT \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.expected.f90 index 6c450e4d..f47e4eff 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.expected.f90 @@ -2,7 +2,7 @@ REAL*4 b1, b2 LOGICAL ok -ok = .true. +ok = .TRUE. b1 = 1.1 a1 = 1 @@ -10,7 +10,7 @@ b2 = a1 IF ((a2 - b2) /= 0) THEN - ok = .false. + ok = .FALSE. PRINT *, "TEST1-NG =>", a2 - b2 END IF @@ -20,7 +20,7 @@ b2 = a1 IF ((a2 - b2) /= 0) THEN - ok = .false. + ok = .FALSE. PRINT *, "TEST2-NG =>", a2 - b2 END IF diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0003.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0003.expected.f90 index d7149712..b4f8918d 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0003.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0003.expected.f90 @@ -2,7 +2,7 @@ REAL*4 b1, b2 LOGICAL ok -ok = .true. +ok = .TRUE. b1 = 127.1 a1 = 127 @@ -10,7 +10,7 @@ b2 = a1 IF ((a2 - b2) /= 0) THEN - ok = .false. + ok = .FALSE. PRINT *, "TEST1-NG =>", a2 - b2 END IF @@ -20,7 +20,7 @@ b2 = a1 IF ((a2 - b2) /= 0) THEN - ok = .false. + ok = .FALSE. PRINT *, "TEST2-NG =>", a2 - b2 END IF diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0004.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0004.expected.f90 index 8c54a33c..319c333a 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0004.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0004.expected.f90 @@ -2,7 +2,7 @@ REAL*8 b1, b2 LOGICAL ok -ok = .true. +ok = .TRUE. b1 = 1.1 a1 = 1 @@ -10,7 +10,7 @@ b2 = a1 IF ((a2 - b2) /= 0) THEN - ok = .false. + ok = .FALSE. PRINT *, "TEST1-NG =>", a2 - b2 END IF @@ -20,7 +20,7 @@ b2 = a1 IF ((a2 - b2) /= 0) THEN - ok = .false. + ok = .FALSE. PRINT *, "TEST2-NG =>", a2 - b2 END IF diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0007.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0007.expected.f90 index bcac3418..d03b7747 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0007.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0007.expected.f90 @@ -2,7 +2,7 @@ REAL*4 b1, b2 LOGICAL ok -ok = .true. +ok = .TRUE. a1 = 3267_2 b1 = 3267.1e0 @@ -10,7 +10,7 @@ b2 = a1 IF ((a2 - b2) /= 0) THEN - ok = .false. + ok = .FALSE. PRINT *, "TEST1-NG =>", a2 - b2 END IF @@ -20,7 +20,7 @@ b2 = a1 IF ((a2 - b2) /= 0) THEN - ok = .false. + ok = .FALSE. PRINT *, "TEST1-NG =>", a2 - b2 END IF diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0019.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0019.expected.f90 index 8cfb3263..fd9346fc 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0019.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0019.expected.f90 @@ -2,7 +2,7 @@ REAL*8 b1, b2 LOGICAL ok -ok = .true. +ok = .TRUE. a1 = 2147483647_8 b1 = 2147483647.1d0 @@ -10,7 +10,7 @@ b2 = a1 IF ((a2 - b2) /= 0) THEN - ok = .false. + ok = .FALSE. PRINT *, "TEST1-NG =>", a2 - b2 END IF @@ -20,7 +20,7 @@ b2 = a1 IF ((a2 - b2) /= 0) THEN - ok = .false. + ok = .FALSE. PRINT *, "TEST2-NG =>", a2 - b2 END IF diff --git a/FortranParser/resources-test/fortran/parser/logical_expression.expected.f90 b/FortranParser/resources-test/fortran/parser/logical_expression.expected.f90 index e3d17496..d031ccbd 100644 --- a/FortranParser/resources-test/fortran/parser/logical_expression.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/logical_expression.expected.f90 @@ -2,7 +2,7 @@ PROGRAM LOGICAL_EXPRESSION INTEGER a1, b1, a2, b2 LOGICAL ok - ok = .true. + ok = .TRUE. a1 = 1 b1 = 2 diff --git a/FortranParser/resources-test/fortran/parser/omp/omp_basic.json b/FortranParser/resources-test/fortran/parser/omp/omp_basic.json index d08eef44..022b647b 100644 --- a/FortranParser/resources-test/fortran/parser/omp/omp_basic.json +++ b/FortranParser/resources-test/fortran/parser/omp/omp_basic.json @@ -1,322 +1,643 @@ -{"nodes": [ - { - "id": "0x63007e678640-Program", - "ProgramUnit": [ - "0x63007e6ad280-ProgramUnit"] - }, - { - "id": "0x63007e6ad280-ProgramUnit", - "variantKey": "MainProgram", - "MainProgram": "0x63007e6a32f0-MainProgram" - }, - { - "id": "0x63007e6a32f0-MainProgram", - "Statement": "0x63007e6a3438-Statement", - "SpecificationPart": "0x63007e6a3390-SpecificationPart", - "ExecutionPart": "0x63007e6a3378-ExecutionPart", - "Statement": "0x63007e6a32f0-Statement" - }, - { - "id": "0x63007e6a3438-Statement", - "statement": "0x63007e6a3448-ProgramStmt", - "source": "program OPENMP_DEMO" - }, - { - "id": "0x63007e6a3448-ProgramStmt", - "Name": "0x63007e6a3448-Name" - }, - { - "id": "0x63007e6a3448-Name", - "source": "OPENMP_DEMO" - }, - { - "id": "0x63007e6a3390-SpecificationPart", - "Statement": [ - "0x63007e6ad3e0-Statement"], - "ImplicitPart": "0x63007e6a33a8-ImplicitPart", - "DeclarationConstruct": [ - "0x63007e6858b0-DeclarationConstruct"] - }, - { - "id": "0x63007e6ad3e0-Statement", - "statement": "0x63007e6b57f0-UseStmt", - "source": "use omp_lib" - }, - { - "id": "0x63007e6b57f0-UseStmt", - "moduleName": "0x63007e6b57f8-Name" - }, - { - "id": "0x63007e6b57f8-Name", - "source": "omp_lib" - }, - { - "id": "0x63007e6a33a8-ImplicitPart" - }, - { - "id": "0x63007e6858b0-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x63007e6858b0-SpecificationConstruct" - }, - { - "id": "0x63007e6858b0-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x63007e6858b0-Statement" - }, - { - "id": "0x63007e6858b0-Statement", - "statement": "0x63007e6b2670-TypeDeclarationStmt", - "source": "integer :: total_sum" - }, - { - "id": "0x63007e6b2670-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x63007e6b26a0-DeclarationTypeSpec", - "EntityDecl": [ - "0x63007e6af690-EntityDecl"] - }, - { - "id": "0x63007e6b26a0-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x63007e6b26a0-IntrinsicTypeSpec" - }, - { - "id": "0x63007e6b26a0-IntrinsicTypeSpec", - "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x63007e6b26a0-IntegerTypeSpec" - }, - { - "id": "0x63007e6b26a0-IntegerTypeSpec" - }, - { - "id": "0x63007e6af690-EntityDecl", - "Name": "0x63007e6af748-Name" - }, - { - "id": "0x63007e6af748-Name", - "source": "total_sum" - }, - { - "id": "0x63007e6a3378-ExecutionPart", - "ExecutionPartConstruct": [ - "0x63007e6ad710-ExecutionPartConstruct"] - }, - { - "id": "0x63007e6a3378-ExecutionPartConstruct" - }, - { - "id": "0x63007e6ad710-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x63007e6ad710-ExecutableConstruct" - }, - { - "id": "0x63007e6ad710-ExecutableConstruct", - "variantKey": "OpenMPConstruct", - "OpenMPConstruct": "0x63007e6b3690-OpenMPConstruct" - }, - { - "id": "0x63007e6b3690-OpenMPConstruct", - "variantKey": "OmpBlockConstruct", - "OmpBlockConstruct": "0x63007e6b3690-OmpBlockConstruct" - }, - { - "id": "0x63007e6b3690-OmpBlockConstruct", - "OmpBeginDirective": "0x63007e6b3750-OmpBeginDirective", - "ExecutionPartConstruct": [ - "0x63007e6b3640-ExecutionPartConstruct"], - "OmpEndDirective": "0x63007e6b36a0-OmpEndDirective" - }, - { - "id": "0x63007e6b3750-OmpBeginDirective", - "OmpDirectiveName": "0x63007e6b37c8-OmpDirectiveName", - "OmpClauseList": "0x63007e6b3768-OmpClauseList", - "Flags = {}": "0x63007e6b3760-Flags = {}" - }, - { - "id": "0x63007e6b37c8-OmpDirectiveName", - "directive": "parallel" - }, - { - "id": "0x63007e6b3768-OmpClauseList" - }, - { - "id": "0x63007e6b3738-ExecutionPartConstruct" - }, - { - "id": "0x63007e6b3640-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x63007e6b3640-ExecutableConstruct" - }, - { - "id": "0x63007e6b3640-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x63007e6b3640-Statement" - }, - { - "id": "0x63007e6b3640-Statement", - "statement": "0x63007e6b3650-ActionStmt", - "source": "total_sum = total_sum + 1" - }, - { - "id": "0x63007e6b3650-ActionStmt", - "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x63007e6862e0-AssignmentStmt" - }, - { - "id": "0x63007e6862e0-AssignmentStmt", - "Variable": "0x63007e6863c0-Variable", - "Expr": "0x63007e6862f0-Expr" - }, - { - "id": "0x63007e6863c0-Variable", - "variantKey": "Designator", - "Designator": "0x63007e6b3310-Designator" - }, - { - "id": "0x63007e6b3310-Designator", - "variantKey": "DataRef", - "DataRef": "0x63007e6b3320-DataRef" - }, - { - "id": "0x63007e6b3320-DataRef", - "variantKey": "Name", - "Name": "0x63007e6b3320-Name" - }, - { - "id": "0x63007e6b3320-Name", - "source": "total_sum" - }, - { - "id": "0x63007e6862f0-Expr", - "variantKey": "Add", - "Add": "0x63007e686310-Add" - }, - { - "id": "0x63007e686310-Add", - "left": "0x63007e6b34f0-Expr", - "right": "0x63007e6b27f0-Expr", - "op": "ADD" - }, - { - "id": "0x63007e6b34f0-Expr", - "variantKey": "Designator", - "Designator": "0x63007e6b3430-Designator" - }, - { - "id": "0x63007e6b3430-Designator", - "variantKey": "DataRef", - "DataRef": "0x63007e6b3440-DataRef" - }, - { - "id": "0x63007e6b3440-DataRef", - "variantKey": "Name", - "Name": "0x63007e6b3440-Name" - }, - { - "id": "0x63007e6b3440-Name", - "source": "total_sum" - }, - { - "id": "0x63007e6b27f0-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x63007e6b2810-LiteralConstant" - }, - { - "id": "0x63007e6b2810-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x63007e6b2810-IntLiteralConstant" - }, - { - "id": "0x63007e6b2810-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x63007e6b36a0-OmpEndDirective", - "OmpDirectiveName": "0x63007e6b3718-OmpDirectiveName", - "OmpClauseList": "0x63007e6b36b8-OmpClauseList", - "Flags = {}": "0x63007e6b36b0-Flags = {}" - }, - { - "id": "0x63007e6b3718-OmpDirectiveName", - "directive": "parallel" - }, - { - "id": "0x63007e6b36b8-OmpClauseList" - }, - { - "id": "0x63007e6a32f0-Statement", - "statement": "0x63007e6a3300-EndProgramStmt", - "source": "end program OPENMP_DEMO" - }, - { - "id": "0x63007e6a3300-EndProgramStmt", - "Name": "0x63007e6a3300-Name" - }, - { - "id": "0x63007e6a3300-Name", - "source": "OPENMP_DEMO" - }], +{ + "fileExtension": "f90", + "nodes": [ + { + "id": "0x557e00a61f00-Program", + "ProgramUnit": [ + "0x557e00a9bae0-ProgramUnit" + ] + }, + { + "id": "0x557e00a9bae0-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x557e00a8cae0-MainProgram" + }, + { + "id": "0x557e00a8cae0-MainProgram", + "Statement": "0x557e00a8cc28-Statement", + "SpecificationPart": "0x557e00a8cb80-SpecificationPart", + "ExecutionPart": "0x557e00a8cb68-ExecutionPart", + "Statement": "0x557e00a8cae0-Statement" + }, + { + "id": "0x557e00a8cc28-Statement", + "statement": "0x557e00a8cc38-ProgramStmt", + "source": "program OPENMP_DEMO" + }, + { + "id": "0x557e00a8cc38-ProgramStmt", + "Name": "0x557e00a8cc38-Name" + }, + { + "id": "0x557e00a8cc38-Name", + "source": "OPENMP_DEMO" + }, + { + "id": "0x557e00a8cb80-SpecificationPart", + "Statement": [ + "0x557e00a96c00-Statement" + ], + "ImplicitPart": "0x557e00a8cb98-ImplicitPart", + "DeclarationConstruct": [ + "0x557e00a6f170-DeclarationConstruct" + ] + }, + { + "id": "0x557e00a96c00-Statement", + "statement": "0x557e00aa5600-UseStmt", + "source": "use omp_lib" + }, + { + "id": "0x557e00aa5600-UseStmt", + "moduleName": "0x557e00aa5608-Name", + "renameList": [] + }, + { + "id": "0x557e00aa5608-Name", + "source": "omp_lib" + }, + { + "id": "0x557e00a8cb98-ImplicitPart" + }, + { + "id": "0x557e00a6f170-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x557e00a6f170-SpecificationConstruct" + }, + { + "id": "0x557e00a6f170-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x557e00a6f170-Statement" + }, + { + "id": "0x557e00a6f170-Statement", + "statement": "0x557e00a9bde0-TypeDeclarationStmt", + "source": "integer :: total_sum" + }, + { + "id": "0x557e00a9bde0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x557e00a9be10-DeclarationTypeSpec", + "EntityDecl": [ + "0x557e00a9bef0-EntityDecl" + ] + }, + { + "id": "0x557e00a9be10-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x557e00a9be10-IntrinsicTypeSpec" + }, + { + "id": "0x557e00a9be10-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x557e00a9be10-IntegerTypeSpec" + }, + { + "id": "0x557e00a9be10-IntegerTypeSpec" + }, + { + "id": "0x557e00a9bef0-EntityDecl", + "Name": "0x557e00a9bfa8-Name" + }, + { + "id": "0x557e00a9bfa8-Name", + "source": "total_sum" + }, + { + "id": "0x557e00a8cb68-ExecutionPart", + "ExecutionPartConstruct": [ + "0x557e00a96700-ExecutionPartConstruct" + ] + }, + { + "id": "0x557e00a8cb68-ExecutionPartConstruct" + }, + { + "id": "0x557e00a96700-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x557e00a96700-ExecutableConstruct" + }, + { + "id": "0x557e00a96700-ExecutableConstruct", + "variantKey": "OpenMPConstruct", + "OpenMPConstruct": "0x557e00a9cb20-OpenMPConstruct" + }, + { + "id": "0x557e00a9cb20-OpenMPConstruct", + "variantKey": "OmpBlockConstruct", + "OmpBlockConstruct": "0x557e00a9cb20-OmpBlockConstruct" + }, + { + "id": "0x557e00a9cb20-OmpBlockConstruct", + "OmpBeginDirective": "0x557e00a9cbe0-OmpBeginDirective", + "ExecutionPartConstruct": [ + "0x557e00a9cad0-ExecutionPartConstruct" + ], + "OmpEndDirective": "0x557e00a9cb30-OmpEndDirective" + }, + { + "id": "0x557e00a9cbe0-OmpBeginDirective", + "OmpDirectiveName": "0x557e00a9cc58-OmpDirectiveName", + "OmpClauseList": "0x557e00a9cbf8-OmpClauseList", + "Flags = {}": "0x557e00a9cbf0-Flags = {}" + }, + { + "id": "0x557e00a9cc58-OmpDirectiveName", + "directive": "parallel" + }, + { + "id": "0x557e00a9cbf8-OmpClauseList" + }, + { + "id": "0x557e00a9cbc8-ExecutionPartConstruct" + }, + { + "id": "0x557e00a9cad0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x557e00a9cad0-ExecutableConstruct" + }, + { + "id": "0x557e00a9cad0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x557e00a9cad0-Statement" + }, + { + "id": "0x557e00a9cad0-Statement", + "statement": "0x557e00a9cae0-ActionStmt", + "source": "total_sum = total_sum + 1" + }, + { + "id": "0x557e00a9cae0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x557e00a6fce0-AssignmentStmt" + }, + { + "id": "0x557e00a6fce0-AssignmentStmt", + "Variable": "0x557e00a6fdc0-Variable", + "Expr": "0x557e00a6fcf0-Expr" + }, + { + "id": "0x557e00a6fdc0-Variable", + "variantKey": "Designator", + "Designator": "0x557e00a9e340-Designator" + }, + { + "id": "0x557e00a9e340-Designator", + "variantKey": "DataRef", + "DataRef": "0x557e00a9e350-DataRef" + }, + { + "id": "0x557e00a9e350-DataRef", + "variantKey": "Name", + "Name": "0x557e00a9e350-Name" + }, + { + "id": "0x557e00a9e350-Name", + "source": "total_sum" + }, + { + "id": "0x557e00a6fcf0-Expr", + "variantKey": "Add", + "Add": "0x557e00a6fd10-Add" + }, + { + "id": "0x557e00a6fd10-Add", + "left": "0x557e00a9c980-Expr", + "right": "0x557e00a9c050-Expr", + "op": "ADD" + }, + { + "id": "0x557e00a9c980-Expr", + "variantKey": "Designator", + "Designator": "0x557e00a9c8c0-Designator" + }, + { + "id": "0x557e00a9c8c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x557e00a9c8d0-DataRef" + }, + { + "id": "0x557e00a9c8d0-DataRef", + "variantKey": "Name", + "Name": "0x557e00a9c8d0-Name" + }, + { + "id": "0x557e00a9c8d0-Name", + "source": "total_sum" + }, + { + "id": "0x557e00a9c050-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x557e00a9c070-LiteralConstant" + }, + { + "id": "0x557e00a9c070-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x557e00a9c070-IntLiteralConstant" + }, + { + "id": "0x557e00a9c070-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x557e00a9cb30-OmpEndDirective", + "OmpDirectiveName": "0x557e00a9cba8-OmpDirectiveName", + "OmpClauseList": "0x557e00a9cb48-OmpClauseList", + "Flags = {}": "0x557e00a9cb40-Flags = {}" + }, + { + "id": "0x557e00a9cba8-OmpDirectiveName", + "directive": "parallel" + }, + { + "id": "0x557e00a9cb48-OmpClauseList" + }, + { + "id": "0x557e00a8cae0-Statement", + "statement": "0x557e00a8caf0-EndProgramStmt", + "source": "end program OPENMP_DEMO" + }, + { + "id": "0x557e00a8caf0-EndProgramStmt", + "Name": "0x557e00a8caf0-Name" + }, + { + "id": "0x557e00a8caf0-Name", + "source": "OPENMP_DEMO" + } + ], + "comments": [], "enums": { - "Fortran::common::CUDADataAttr": ["Constant", "Device", "Managed", "Pinned", "Shared", "Texture", "Unified"], - "Fortran::common::CUDASubprogramAttrs": ["Host", "Device", "HostDevice", "Global", "Grid_Global"], - "Fortran::common::ImportKind": ["Default", "Only", "None", "All"], - "Fortran::common::OmpDependenceKind": ["In", "Out", "Inout", "Inoutset", "Mutexinoutset", "Depobj"], - "Fortran::common::OmpMemoryOrderType": ["Acq_Rel", "Acquire", "Relaxed", "Release", "Seq_Cst"], - "Fortran::common::OpenACCDeviceType": ["Star", "Default", "Nvidia", "Radeon", "Host", "Multicore", "None"], - "Fortran::parser::AccDataModifier::Modifier": ["ReadOnly", "Zero"], - "Fortran::parser::AccessSpec::Kind": ["Public", "Private"], - "Fortran::parser::BindEntity::Kind": ["Object", "Common"], - "Fortran::parser::CompilerDirective::VectorLength::Kind": ["Auto", "Fixed", "Scalable"], - "Fortran::parser::ConnectSpec::CharExpr::Kind": ["Access", "Action", "Asynchronous", "Blank", "Decimal", "Delim", "Encoding", "Form", "Pad", "Position", "Round", "Sign", "Carriagecontrol", "Convert", "Dispose"], - "Fortran::parser::DefinedOperator::IntrinsicOperator": ["Power", "Multiply", "Divide", "Add", "Subtract", "Concat", "LT", "LE", "EQ", "NE", "GE", "GT", "NOT", "AND", "OR", "EQV", "NEQV"], - "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec": ["External", "Type"], - "Fortran::parser::InquireSpec::CharVar::Kind": ["Access", "Action", "Asynchronous", "Blank", "Decimal", "Delim", "Direct", "Encoding", "Form", "Formatted", "Iomsg", "Name", "Pad", "Position", "Read", "Readwrite", "Round", "Sequential", "Sign", "Stream", "Status", "Unformatted", "Write", "Carriagecontrol", "Convert", "Dispose"], - "Fortran::parser::InquireSpec::IntVar::Kind": ["Iostat", "Nextrec", "Number", "Pos", "Recl", "Size"], - "Fortran::parser::InquireSpec::LogVar::Kind": ["Exist", "Named", "Opened", "Pending"], - "Fortran::parser::IntentSpec::Intent": ["In", "Out", "InOut"], - "Fortran::parser::IoControlSpec::CharExpr::Kind": ["Advance", "Blank", "Decimal", "Delim", "Pad", "Round", "Sign"], - "Fortran::parser::ReductionOperator::Operator": ["Plus", "Multiply", "Max", "Min", "Iand", "Ior", "Ieor", "And", "Or", "Eqv", "Neqv"], - "Fortran::parser::OmpAccessGroup::Value": ["Cgroup"], - "Fortran::parser::OmpAdjustArgsClause::OmpAdjustOp::Value": ["Nothing", "Need_Device_Ptr"], - "Fortran::parser::OmpAlwaysModifier::Value": ["Always"], - "Fortran::parser::OmpAtClause::ActionTime": ["Compilation", "Execution"], - "Fortran::parser::OmpAttachModifier::Value": ["Always", "Never", "Auto"], - "Fortran::parser::OmpAutomapModifier::Value": ["Automap"], - "Fortran::parser::OmpBindClause::Binding": ["Parallel", "Teams", "Thread"], - "Fortran::parser::OmpChunkModifier::Value": ["Simd"], - "Fortran::parser::OmpCloseModifier::Value": ["Close"], - "Fortran::parser::OmpDefaultClause::DataSharingAttribute": ["Private", "Firstprivate", "Shared", "None"], - "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": ["Alloc", "To", "From", "Tofrom", "Firstprivate", "None", "Default", "Present"], - "Fortran::parser::OmpDeleteModifier::Value": ["Delete"], - "Fortran::parser::OmpDependenceType::Value": ["Sink", "Source"], - "Fortran::parser::OmpDeviceModifier::Value": ["Ancestor", "Device_Num"], - "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": ["Any", "Host", "Nohost"], - "Fortran::parser::OmpDirectiveSpecification::Flag": ["DeprecatedSyntax", "CrossesLabelDo"], - "Fortran::parser::OmpExpectation::Value": ["Present"], - "Fortran::parser::OmpInteropType::Value": ["Target", "Targetsync"], - "Fortran::parser::OmpLastprivateModifier::Value": ["Conditional"], - "Fortran::parser::OmpLinearModifier::Value": ["Ref", "Uval", "Val"], - "Fortran::parser::OmpMapType::Value": ["Alloc", "Delete", "From", "Release", "Storage", "To", "Tofrom"], - "Fortran::parser::OmpMapTypeModifier::Value": ["Always", "Close", "Present", "Ompx_Hold"], - "Fortran::parser::OmpObject::Invalid::Kind": ["BlankCommonBlock"], - "Fortran::parser::OmpOrderClause::Ordering": ["Concurrent"], - "Fortran::parser::OmpOrderingModifier::Value": ["Monotonic", "Nonmonotonic", "Simd"], - "Fortran::parser::OmpOrderModifier::Value": ["Reproducible", "Unconstrained"], - "Fortran::parser::OmpPrescriptiveness::Value": ["Strict"], - "Fortran::parser::OmpPresentModifier::Value": ["Present"], - "Fortran::parser::OmpProcBindClause::AffinityPolicy": ["Close", "Master", "Spread", "Primary"], - "Fortran::parser::OmpReductionModifier::Value": ["Default", "Inscan", "Task"], - "Fortran::parser::OmpRefModifier::Value": ["Ref_Ptee", "Ref_Ptr", "Ref_Ptr_Ptee"], - "Fortran::parser::OmpScheduleClause::Kind": ["Static", "Dynamic", "Guided", "Auto", "Runtime"], - "Fortran::parser::OmpSelfModifier::Value": ["Self"], - "Fortran::parser::OmpSeverityClause::SevLevel": ["Fatal", "Warning"], - "Fortran::parser::OmpThreadsetClause::ThreadsetPolicy": ["Omp_Pool", "Omp_Team"], - "Fortran::parser::OmpTraitSelectorName::Value": ["Arch", "Atomic_Default_Mem_Order", "Condition", "Device_Num", "Extension", "Isa", "Kind", "Requires", "Simd", "Uid", "Vendor"], - "Fortran::parser::OmpTraitSetSelectorName::Value": ["Construct", "Device", "Implementation", "Target_Device", "User"], - "Fortran::parser::OmpVariableCategory::Value": ["Aggregate", "All", "Allocatable", "Pointer", "Scalar"], - "Fortran::parser::OmpxHoldModifier::Value": ["Ompx_Hold"], - "Fortran::parser::ProcedureStmt::Kind": ["ModuleProcedure", "Procedure"], - "Fortran::parser::SavedEntity::Kind": ["Entity", "Common"], - "Fortran::parser::StopStmt::Kind": ["Stop", "ErrorStop"], - "Fortran::parser::UseStmt::ModuleNature": ["Intrinsic", "Non_Intrinsic"] + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "Fortran::common::ImportKind": [ + "Default", + "Only", + "None", + "All" + ], + "Fortran::common::OmpDependenceKind": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::common::OmpMemoryOrderType": [ + "Acq_Rel", + "Acquire", + "Relaxed", + "Release", + "Seq_Cst" + ], + "Fortran::common::OpenACCDeviceType": [ + "Star", + "Default", + "Nvidia", + "Radeon", + "Host", + "Multicore", + "None" + ], + "Fortran::parser::AccDataModifier::Modifier": [ + "ReadOnly", + "Zero" + ], + "Fortran::parser::AccessSpec::Kind": [ + "Public", + "Private" + ], + "Fortran::parser::BindEntity::Kind": [ + "Object", + "Common" + ], + "Fortran::parser::CompilerDirective::VectorLength::Kind": [ + "Auto", + "Fixed", + "Scalable" + ], + "Fortran::parser::ConnectSpec::CharExpr::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Encoding", + "Form", + "Pad", + "Position", + "Round", + "Sign", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::DefinedOperator::IntrinsicOperator": [ + "Power", + "Multiply", + "Divide", + "Add", + "Subtract", + "Concat", + "LT", + "LE", + "EQ", + "NE", + "GE", + "GT", + "NOT", + "AND", + "OR", + "EQV", + "NEQV" + ], + "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec": [ + "External", + "Type" + ], + "Fortran::parser::InquireSpec::CharVar::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Direct", + "Encoding", + "Form", + "Formatted", + "Iomsg", + "Name", + "Pad", + "Position", + "Read", + "Readwrite", + "Round", + "Sequential", + "Sign", + "Stream", + "Status", + "Unformatted", + "Write", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::InquireSpec::IntVar::Kind": [ + "Iostat", + "Nextrec", + "Number", + "Pos", + "Recl", + "Size" + ], + "Fortran::parser::InquireSpec::LogVar::Kind": [ + "Exist", + "Named", + "Opened", + "Pending" + ], + "Fortran::parser::IntentSpec::Intent": [ + "In", + "Out", + "InOut" + ], + "Fortran::parser::IoControlSpec::CharExpr::Kind": [ + "Advance", + "Blank", + "Decimal", + "Delim", + "Pad", + "Round", + "Sign" + ], + "Fortran::parser::ReductionOperator::Operator": [ + "Plus", + "Multiply", + "Max", + "Min", + "Iand", + "Ior", + "Ieor", + "And", + "Or", + "Eqv", + "Neqv" + ], + "Fortran::parser::OmpAccessGroup::Value": [ + "Cgroup" + ], + "Fortran::parser::OmpAdjustArgsClause::OmpAdjustOp::Value": [ + "Nothing", + "Need_Device_Ptr" + ], + "Fortran::parser::OmpAlwaysModifier::Value": [ + "Always" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpAttachModifier::Value": [ + "Always", + "Never", + "Auto" + ], + "Fortran::parser::OmpAutomapModifier::Value": [ + "Automap" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpCloseModifier::Value": [ + "Close" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default", + "Present" + ], + "Fortran::parser::OmpDeleteModifier::Value": [ + "Delete" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpDirectiveSpecification::Flag": [ + "DeprecatedSyntax", + "CrossesLabelDo" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpInteropType::Value": [ + "Target", + "Targetsync" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "Storage", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpObject::Invalid::Kind": [ + "BlankCommonBlock" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpPresentModifier::Value": [ + "Present" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpRefModifier::Value": [ + "Ref_Ptee", + "Ref_Ptr", + "Ref_Ptr_Ptee" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpSelfModifier::Value": [ + "Self" + ], + "Fortran::parser::OmpSeverityClause::SevLevel": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpThreadsetClause::ThreadsetPolicy": [ + "Omp_Pool", + "Omp_Team" + ], + "Fortran::parser::OmpTraitSelectorName::Value": [ + "Arch", + "Atomic_Default_Mem_Order", + "Condition", + "Device_Num", + "Extension", + "Isa", + "Kind", + "Requires", + "Simd", + "Uid", + "Vendor" + ], + "Fortran::parser::OmpTraitSetSelectorName::Value": [ + "Construct", + "Device", + "Implementation", + "Target_Device", + "User" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpxHoldModifier::Value": [ + "Ompx_Hold" + ], + "Fortran::parser::ProcedureStmt::Kind": [ + "ModuleProcedure", + "Procedure" + ], + "Fortran::parser::SavedEntity::Kind": [ + "Entity", + "Common" + ], + "Fortran::parser::StopStmt::Kind": [ + "Stop", + "ErrorStop" + ], + "Fortran::parser::UseStmt::ModuleNature": [ + "Intrinsic", + "Non_Intrinsic" + ] } -} \ No newline at end of file +} diff --git a/FortranParser/resources-test/fortran/parser/omp/omp_clause.json b/FortranParser/resources-test/fortran/parser/omp/omp_clause.json index 7a0f36ac..9a635d70 100644 --- a/FortranParser/resources-test/fortran/parser/omp/omp_clause.json +++ b/FortranParser/resources-test/fortran/parser/omp/omp_clause.json @@ -1,600 +1,928 @@ -{"nodes": [ - { - "id": "0x7ffff2064640-Program", - "ProgramUnit": [ - "0x7ffff20a0970-ProgramUnit"] - }, - { - "id": "0x7ffff20a0970-ProgramUnit", - "variantKey": "MainProgram", - "MainProgram": "0x7ffff208fe70-MainProgram" - }, - { - "id": "0x7ffff208fe70-MainProgram", - "Statement": "0x7ffff208ffb8-Statement", - "SpecificationPart": "0x7ffff208ff10-SpecificationPart", - "ExecutionPart": "0x7ffff208fef8-ExecutionPart", - "Statement": "0x7ffff208fe70-Statement" - }, - { - "id": "0x7ffff208ffb8-Statement", - "statement": "0x7ffff208ffc8-ProgramStmt", - "source": "program OPENMP_DEMO" - }, - { - "id": "0x7ffff208ffc8-ProgramStmt", - "Name": "0x7ffff208ffc8-Name" - }, - { - "id": "0x7ffff208ffc8-Name", - "source": "OPENMP_DEMO" - }, - { - "id": "0x7ffff208ff10-SpecificationPart", - "Statement": [ - "0x7ffff20994b0-Statement"], - "ImplicitPart": "0x7ffff208ff28-ImplicitPart", - "DeclarationConstruct": [ - "0x7ffff20718b0-DeclarationConstruct", - "0x7ffff20714e0-DeclarationConstruct"] - }, - { - "id": "0x7ffff20994b0-Statement", - "statement": "0x7ffff2098ac0-UseStmt", - "source": "use omp_lib" - }, - { - "id": "0x7ffff2098ac0-UseStmt", - "moduleName": "0x7ffff2098ac8-Name" - }, - { - "id": "0x7ffff2098ac8-Name", - "source": "omp_lib" - }, - { - "id": "0x7ffff208ff28-ImplicitPart" - }, - { - "id": "0x7ffff20718b0-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x7ffff20718b0-SpecificationConstruct" - }, - { - "id": "0x7ffff20718b0-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x7ffff20718b0-Statement" - }, - { - "id": "0x7ffff20718b0-Statement", - "statement": "0x7ffff209e7f0-TypeDeclarationStmt", - "source": "integer :: i, thread_id, num_threads, total_sum" - }, - { - "id": "0x7ffff209e7f0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x7ffff209e820-DeclarationTypeSpec", - "EntityDecl": [ - "0x7ffff209ebd0-EntityDecl", - "0x7ffff209e900-EntityDecl", - "0x7ffff209e9f0-EntityDecl", - "0x7ffff209eae0-EntityDecl"] - }, - { - "id": "0x7ffff209e820-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x7ffff209e820-IntrinsicTypeSpec" - }, - { - "id": "0x7ffff209e820-IntrinsicTypeSpec", - "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x7ffff209e820-IntegerTypeSpec" - }, - { - "id": "0x7ffff209e820-IntegerTypeSpec" - }, - { - "id": "0x7ffff209ebd0-EntityDecl", - "Name": "0x7ffff209ec88-Name" - }, - { - "id": "0x7ffff209ec88-Name", - "source": "i" - }, - { - "id": "0x7ffff209e900-EntityDecl", - "Name": "0x7ffff209e9b8-Name" - }, - { - "id": "0x7ffff209e9b8-Name", - "source": "thread_id" - }, - { - "id": "0x7ffff209e9f0-EntityDecl", - "Name": "0x7ffff209eaa8-Name" - }, - { - "id": "0x7ffff209eaa8-Name", - "source": "num_threads" - }, - { - "id": "0x7ffff209eae0-EntityDecl", - "Name": "0x7ffff209eb98-Name" - }, - { - "id": "0x7ffff209eb98-Name", - "source": "total_sum" - }, - { - "id": "0x7ffff20714e0-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x7ffff20714e0-SpecificationConstruct" - }, - { - "id": "0x7ffff20714e0-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x7ffff20714e0-Statement" - }, - { - "id": "0x7ffff20714e0-Statement", - "statement": "0x7ffff209e870-TypeDeclarationStmt", - "source": "integer :: shared_counter = 0" - }, - { - "id": "0x7ffff209e870-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x7ffff209e8a0-DeclarationTypeSpec", - "EntityDecl": [ - "0x7ffff209edb0-EntityDecl"] - }, - { - "id": "0x7ffff209e8a0-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x7ffff209e8a0-IntrinsicTypeSpec" - }, - { - "id": "0x7ffff209e8a0-IntrinsicTypeSpec", - "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x7ffff209e8a0-IntegerTypeSpec" - }, - { - "id": "0x7ffff209e8a0-IntegerTypeSpec" - }, - { - "id": "0x7ffff209edb0-EntityDecl", - "Name": "0x7ffff209ee68-Name", - "Initialization": "0x7ffff209edb0-Initialization" - }, - { - "id": "0x7ffff209ee68-Name", - "source": "shared_counter" - }, - { - "id": "0x7ffff209edb0-Initialization", - "variantKey": "Expr", - "Expr": "0x7ffff2005790-Expr" - }, - { - "id": "0x7ffff2005790-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x7ffff20057b0-LiteralConstant" - }, - { - "id": "0x7ffff20057b0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x7ffff20057b0-IntLiteralConstant" - }, - { - "id": "0x7ffff20057b0-IntLiteralConstant", - "CharBlock": "0" - }, - { - "id": "0x7ffff208fef8-ExecutionPart", - "ExecutionPartConstruct": [ - "0x7ffff20a00f0-ExecutionPartConstruct"] - }, - { - "id": "0x7ffff208fef8-ExecutionPartConstruct" - }, - { - "id": "0x7ffff20a00f0-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x7ffff20a00f0-ExecutableConstruct" - }, - { - "id": "0x7ffff20a00f0-ExecutableConstruct", - "variantKey": "OpenMPConstruct", - "OpenMPConstruct": "0x7ffff20a0460-OpenMPConstruct" - }, - { - "id": "0x7ffff20a0460-OpenMPConstruct", - "variantKey": "OmpBlockConstruct", - "OmpBlockConstruct": "0x7ffff20a0460-OmpBlockConstruct" - }, - { - "id": "0x7ffff20a0460-OmpBlockConstruct", - "OmpBeginDirective": "0x7ffff20a0520-OmpBeginDirective", - "ExecutionPartConstruct": [ - "0x7ffff20a0090-ExecutionPartConstruct"], - "OmpEndDirective": "0x7ffff20a0470-OmpEndDirective" - }, - { - "id": "0x7ffff20a0520-OmpBeginDirective", - "OmpDirectiveName": "0x7ffff20a0598-OmpDirectiveName", - "OmpClauseList": "0x7ffff20a0538-OmpClauseList", - "Flags = {}": "0x7ffff20a0530-Flags = {}" - }, - { - "id": "0x7ffff20a0598-OmpDirectiveName", - "directive": "parallel" - }, - { - "id": "0x7ffff20a0538-OmpClauseList", - "OmpClause": [ - "0x7ffff209fab0-OmpClause", - "0x7ffff209fcd0-OmpClause"] - }, - { - "id": "0x7ffff209fab0-OmpClause", - "variantKey": "Private", - "Private": "0x7ffff209fac0-Private" - }, - { - "id": "0x7ffff209fac0-Private", - "OmpObjectList": "0x7ffff209fac0-OmpObjectList", - "kind": "PRIVATE" - }, - { - "id": "0x7ffff209fac0-OmpObjectList", - "OmpObject": [ - "0x7ffff20a7be0-OmpObject"] - }, - { - "id": "0x7ffff20a7be0-OmpObject", - "variantKey": "Designator", - "Designator": "0x7ffff20a7be0-Designator" - }, - { - "id": "0x7ffff20a7be0-Designator", - "variantKey": "DataRef", - "DataRef": "0x7ffff20a7bf0-DataRef" - }, - { - "id": "0x7ffff20a7bf0-DataRef", - "variantKey": "Name", - "Name": "0x7ffff20a7bf0-Name" - }, - { - "id": "0x7ffff20a7bf0-Name", - "source": "i" - }, - { - "id": "0x7ffff209fcd0-OmpClause", - "variantKey": "Shared", - "Shared": "0x7ffff209fce0-Shared" - }, - { - "id": "0x7ffff209fce0-Shared", - "OmpObjectList": "0x7ffff209fce0-OmpObjectList", - "kind": "SHARED" - }, - { - "id": "0x7ffff209fce0-OmpObjectList", - "OmpObject": [ - "0x7ffff2099970-OmpObject"] - }, - { - "id": "0x7ffff2099970-OmpObject", - "variantKey": "Designator", - "Designator": "0x7ffff2099970-Designator" - }, - { - "id": "0x7ffff2099970-Designator", - "variantKey": "DataRef", - "DataRef": "0x7ffff2099980-DataRef" - }, - { - "id": "0x7ffff2099980-DataRef", - "variantKey": "Name", - "Name": "0x7ffff2099980-Name" - }, - { - "id": "0x7ffff2099980-Name", - "source": "num_threads" - }, - { - "id": "0x7ffff20a0508-ExecutionPartConstruct" - }, - { - "id": "0x7ffff20a0090-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x7ffff20a0090-ExecutableConstruct" - }, - { - "id": "0x7ffff20a0090-ExecutableConstruct", - "variantKey": "OpenMPConstruct", - "OpenMPConstruct": "0x7ffff20a02b0-OpenMPConstruct" - }, - { - "id": "0x7ffff20a02b0-OpenMPConstruct", - "variantKey": "OpenMPLoopConstruct", - "OpenMPLoopConstruct": "0x7ffff20a02b0-OpenMPLoopConstruct" - }, - { - "id": "0x7ffff20a02b0-OpenMPLoopConstruct", - "OmpBeginLoopDirective": "0x7ffff20a0370-OmpBeginLoopDirective", - "ExecutionPartConstruct": [ - "0x7ffff209fc10-ExecutionPartConstruct"], - "OmpEndLoopDirective": "0x7ffff20a02c0-OmpEndLoopDirective" - }, - { - "id": "0x7ffff20a0370-OmpBeginLoopDirective", - "OmpDirectiveName": "0x7ffff20a03e8-OmpDirectiveName", - "OmpClauseList": "0x7ffff20a0388-OmpClauseList", - "Flags = {}": "0x7ffff20a0380-Flags = {}" - }, - { - "id": "0x7ffff20a03e8-OmpDirectiveName", - "directive": "do" - }, - { - "id": "0x7ffff20a0388-OmpClauseList" - }, - { - "id": "0x7ffff20a0358-ExecutionPartConstruct" - }, - { - "id": "0x7ffff209fc10-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x7ffff209fc10-ExecutableConstruct" - }, - { - "id": "0x7ffff209fc10-ExecutableConstruct", - "variantKey": "DoConstruct", - "DoConstruct": "0x7ffff209a560-DoConstruct" - }, - { - "id": "0x7ffff209a560-DoConstruct", - "Statement": "0x7ffff209a5b8-Statement", - "ExecutionPartConstruct": [ - "0x7ffff20a0030-ExecutionPartConstruct"], - "Statement": "0x7ffff209a560-Statement" - }, - { - "id": "0x7ffff209a5b8-Statement", - "statement": "0x7ffff209a5c8-NonLabelDoStmt", - "source": "do i = 1, 100" - }, - { - "id": "0x7ffff209a5c8-NonLabelDoStmt", - "LoopControl": "0x7ffff209a5c8-LoopControl" - }, - { - "id": "0x7ffff209a5c8-LoopControl", - "variantKey": "LoopBounds", - "LoopBounds": "0x7ffff209a5c8-LoopBounds" - }, - { - "id": "0x7ffff209a5c8-LoopBounds", - "var": "0x7ffff209a5c8-Name", - "lower": "0x7ffff209eff0-Expr", - "upper": "0x7ffff209fdc0-Expr" - }, - { - "id": "0x7ffff209a5c8-Name", - "source": "i" - }, - { - "id": "0x7ffff209eff0-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x7ffff209f010-LiteralConstant" - }, - { - "id": "0x7ffff209f010-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x7ffff209f010-IntLiteralConstant" - }, - { - "id": "0x7ffff209f010-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x7ffff209fdc0-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x7ffff209fde0-LiteralConstant" - }, - { - "id": "0x7ffff209fde0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x7ffff209fde0-IntLiteralConstant" - }, - { - "id": "0x7ffff209fde0-IntLiteralConstant", - "CharBlock": "100" - }, - { - "id": "0x7ffff209a5a0-ExecutionPartConstruct" - }, - { - "id": "0x7ffff20a0030-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x7ffff20a0030-ExecutableConstruct" - }, - { - "id": "0x7ffff20a0030-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x7ffff20a0030-Statement" - }, - { - "id": "0x7ffff20a0030-Statement", - "statement": "0x7ffff20a0040-ActionStmt", - "source": "total_sum = total_sum" - }, - { - "id": "0x7ffff20a0040-ActionStmt", - "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x7ffff20722e0-AssignmentStmt" - }, - { - "id": "0x7ffff20722e0-AssignmentStmt", - "Variable": "0x7ffff20723c0-Variable", - "Expr": "0x7ffff20722f0-Expr" - }, - { - "id": "0x7ffff20723c0-Variable", - "variantKey": "Designator", - "Designator": "0x7ffff209fc60-Designator" - }, - { - "id": "0x7ffff209fc60-Designator", - "variantKey": "DataRef", - "DataRef": "0x7ffff209fc70-DataRef" - }, - { - "id": "0x7ffff209fc70-DataRef", - "variantKey": "Name", - "Name": "0x7ffff209fc70-Name" - }, - { - "id": "0x7ffff209fc70-Name", - "source": "total_sum" - }, - { - "id": "0x7ffff20722f0-Expr", - "variantKey": "Designator", - "Designator": "0x7ffff20a1160-Designator" - }, - { - "id": "0x7ffff20a1160-Designator", - "variantKey": "DataRef", - "DataRef": "0x7ffff20a1170-DataRef" - }, - { - "id": "0x7ffff20a1170-DataRef", - "variantKey": "Name", - "Name": "0x7ffff20a1170-Name" - }, - { - "id": "0x7ffff20a1170-Name", - "source": "total_sum" - }, - { - "id": "0x7ffff209a560-Statement", - "statement": "0x7ffff209a570-EndDoStmt", - "source": "end do" - }, - { - "id": "0x7ffff209a570-EndDoStmt" - }, - { - "id": "0x7ffff20a02c0-OmpEndLoopDirective", - "OmpDirectiveName": "0x7ffff20a0338-OmpDirectiveName", - "OmpClauseList": "0x7ffff20a02d8-OmpClauseList", - "Flags = {}": "0x7ffff20a02d0-Flags = {}" - }, - { - "id": "0x7ffff20a0338-OmpDirectiveName", - "directive": "do" - }, - { - "id": "0x7ffff20a02d8-OmpClauseList", - "OmpClause": [ - "0x7ffff20a01c0-OmpClause"] - }, - { - "id": "0x7ffff20a01c0-OmpClause", - "variantKey": "Nowait", - "Nowait": "0x7ffff20a01d0-Nowait" - }, - { - "id": "0x7ffff20a01d0-Nowait", - "kind": "NOWAIT" - }, - { - "id": "0x7ffff20a0470-OmpEndDirective", - "OmpDirectiveName": "0x7ffff20a04e8-OmpDirectiveName", - "OmpClauseList": "0x7ffff20a0488-OmpClauseList", - "Flags = {}": "0x7ffff20a0480-Flags = {}" - }, - { - "id": "0x7ffff20a04e8-OmpDirectiveName", - "directive": "parallel" - }, - { - "id": "0x7ffff20a0488-OmpClauseList" - }, - { - "id": "0x7ffff208fe70-Statement", - "statement": "0x7ffff208fe80-EndProgramStmt", - "source": "end program OPENMP_DEMO" - }, - { - "id": "0x7ffff208fe80-EndProgramStmt", - "Name": "0x7ffff208fe80-Name" - }, - { - "id": "0x7ffff208fe80-Name", - "source": "OPENMP_DEMO" - }], +{ + "fileExtension": "f90", + "nodes": [ + { + "id": "0x55df82fa3f00-Program", + "ProgramUnit": [ + "0x55df82fe0400-ProgramUnit" + ] + }, + { + "id": "0x55df82fe0400-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x55df82fcf5d0-MainProgram" + }, + { + "id": "0x55df82fcf5d0-MainProgram", + "Statement": "0x55df82fcf718-Statement", + "SpecificationPart": "0x55df82fcf670-SpecificationPart", + "ExecutionPart": "0x55df82fcf658-ExecutionPart", + "Statement": "0x55df82fcf5d0-Statement" + }, + { + "id": "0x55df82fcf718-Statement", + "statement": "0x55df82fcf728-ProgramStmt", + "source": "program OPENMP_DEMO" + }, + { + "id": "0x55df82fcf728-ProgramStmt", + "Name": "0x55df82fcf728-Name" + }, + { + "id": "0x55df82fcf728-Name", + "source": "OPENMP_DEMO" + }, + { + "id": "0x55df82fcf670-SpecificationPart", + "Statement": [ + "0x55df82fd8cf0-Statement" + ], + "ImplicitPart": "0x55df82fcf688-ImplicitPart", + "DeclarationConstruct": [ + "0x55df82fb1170-DeclarationConstruct", + "0x55df82fb0da0-DeclarationConstruct" + ] + }, + { + "id": "0x55df82fd8cf0-Statement", + "statement": "0x55df82fe7950-UseStmt", + "source": "use omp_lib" + }, + { + "id": "0x55df82fe7950-UseStmt", + "moduleName": "0x55df82fe7958-Name", + "renameList": [] + }, + { + "id": "0x55df82fe7958-Name", + "source": "omp_lib" + }, + { + "id": "0x55df82fcf688-ImplicitPart" + }, + { + "id": "0x55df82fb1170-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55df82fb1170-SpecificationConstruct" + }, + { + "id": "0x55df82fb1170-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55df82fb1170-Statement" + }, + { + "id": "0x55df82fb1170-Statement", + "statement": "0x55df82fde220-TypeDeclarationStmt", + "source": "integer :: i, thread_id, num_threads, total_sum" + }, + { + "id": "0x55df82fde220-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55df82fde250-DeclarationTypeSpec", + "EntityDecl": [ + "0x55df82fde600-EntityDecl", + "0x55df82fde330-EntityDecl", + "0x55df82fde420-EntityDecl", + "0x55df82fde510-EntityDecl" + ] + }, + { + "id": "0x55df82fde250-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55df82fde250-IntrinsicTypeSpec" + }, + { + "id": "0x55df82fde250-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55df82fde250-IntegerTypeSpec" + }, + { + "id": "0x55df82fde250-IntegerTypeSpec" + }, + { + "id": "0x55df82fde600-EntityDecl", + "Name": "0x55df82fde6b8-Name" + }, + { + "id": "0x55df82fde6b8-Name", + "source": "i" + }, + { + "id": "0x55df82fde330-EntityDecl", + "Name": "0x55df82fde3e8-Name" + }, + { + "id": "0x55df82fde3e8-Name", + "source": "thread_id" + }, + { + "id": "0x55df82fde420-EntityDecl", + "Name": "0x55df82fde4d8-Name" + }, + { + "id": "0x55df82fde4d8-Name", + "source": "num_threads" + }, + { + "id": "0x55df82fde510-EntityDecl", + "Name": "0x55df82fde5c8-Name" + }, + { + "id": "0x55df82fde5c8-Name", + "source": "total_sum" + }, + { + "id": "0x55df82fb0da0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55df82fb0da0-SpecificationConstruct" + }, + { + "id": "0x55df82fb0da0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55df82fb0da0-Statement" + }, + { + "id": "0x55df82fb0da0-Statement", + "statement": "0x55df82fde2a0-TypeDeclarationStmt", + "source": "integer :: shared_counter = 0" + }, + { + "id": "0x55df82fde2a0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55df82fde2d0-DeclarationTypeSpec", + "EntityDecl": [ + "0x55df82fde7e0-EntityDecl" + ] + }, + { + "id": "0x55df82fde2d0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55df82fde2d0-IntrinsicTypeSpec" + }, + { + "id": "0x55df82fde2d0-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55df82fde2d0-IntegerTypeSpec" + }, + { + "id": "0x55df82fde2d0-IntegerTypeSpec" + }, + { + "id": "0x55df82fde7e0-EntityDecl", + "Name": "0x55df82fde898-Name", + "Initialization": "0x55df82fde7e0-Initialization" + }, + { + "id": "0x55df82fde898-Name", + "source": "shared_counter" + }, + { + "id": "0x55df82fde7e0-Initialization", + "variantKey": "Expr", + "Expr": "0x55df82f43790-Expr" + }, + { + "id": "0x55df82f43790-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55df82f437b0-LiteralConstant" + }, + { + "id": "0x55df82f437b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55df82f437b0-IntLiteralConstant" + }, + { + "id": "0x55df82f437b0-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55df82fcf658-ExecutionPart", + "ExecutionPartConstruct": [ + "0x55df82fdf780-ExecutionPartConstruct" + ] + }, + { + "id": "0x55df82fcf658-ExecutionPartConstruct" + }, + { + "id": "0x55df82fdf780-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55df82fdf780-ExecutableConstruct" + }, + { + "id": "0x55df82fdf780-ExecutableConstruct", + "variantKey": "OpenMPConstruct", + "OpenMPConstruct": "0x55df82fdfb90-OpenMPConstruct" + }, + { + "id": "0x55df82fdfb90-OpenMPConstruct", + "variantKey": "OmpBlockConstruct", + "OmpBlockConstruct": "0x55df82fdfb90-OmpBlockConstruct" + }, + { + "id": "0x55df82fdfb90-OmpBlockConstruct", + "OmpBeginDirective": "0x55df82fdfc50-OmpBeginDirective", + "ExecutionPartConstruct": [ + "0x55df82fdf720-ExecutionPartConstruct" + ], + "OmpEndDirective": "0x55df82fdfba0-OmpEndDirective" + }, + { + "id": "0x55df82fdfc50-OmpBeginDirective", + "OmpDirectiveName": "0x55df82fdfcc8-OmpDirectiveName", + "OmpClauseList": "0x55df82fdfc68-OmpClauseList", + "Flags = {}": "0x55df82fdfc60-Flags = {}" + }, + { + "id": "0x55df82fdfcc8-OmpDirectiveName", + "directive": "parallel" + }, + { + "id": "0x55df82fdfc68-OmpClauseList", + "OmpClause": [ + "0x55df82fdf240-OmpClause", + "0x55df82fdf3c0-OmpClause" + ] + }, + { + "id": "0x55df82fdf240-OmpClause", + "variantKey": "Private", + "Private": "0x55df82fdf250-Private" + }, + { + "id": "0x55df82fdf250-Private", + "OmpObjectList": "0x55df82fdf250-OmpObjectList", + "kind": "PRIVATE" + }, + { + "id": "0x55df82fdf250-OmpObjectList", + "OmpObject": [ + "0x55df82fd9350-OmpObject" + ] + }, + { + "id": "0x55df82fd9350-OmpObject", + "variantKey": "Designator", + "Designator": "0x55df82fd9350-Designator" + }, + { + "id": "0x55df82fd9350-Designator", + "variantKey": "DataRef", + "DataRef": "0x55df82fd9360-DataRef" + }, + { + "id": "0x55df82fd9360-DataRef", + "variantKey": "Name", + "Name": "0x55df82fd9360-Name" + }, + { + "id": "0x55df82fd9360-Name", + "source": "i" + }, + { + "id": "0x55df82fdf3c0-OmpClause", + "variantKey": "Shared", + "Shared": "0x55df82fdf3d0-Shared" + }, + { + "id": "0x55df82fdf3d0-Shared", + "OmpObjectList": "0x55df82fdf3d0-OmpObjectList", + "kind": "SHARED" + }, + { + "id": "0x55df82fdf3d0-OmpObjectList", + "OmpObject": [ + "0x55df82fe15f0-OmpObject" + ] + }, + { + "id": "0x55df82fe15f0-OmpObject", + "variantKey": "Designator", + "Designator": "0x55df82fe15f0-Designator" + }, + { + "id": "0x55df82fe15f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55df82fe1600-DataRef" + }, + { + "id": "0x55df82fe1600-DataRef", + "variantKey": "Name", + "Name": "0x55df82fe1600-Name" + }, + { + "id": "0x55df82fe1600-Name", + "source": "num_threads" + }, + { + "id": "0x55df82fdfc38-ExecutionPartConstruct" + }, + { + "id": "0x55df82fdf720-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55df82fdf720-ExecutableConstruct" + }, + { + "id": "0x55df82fdf720-ExecutableConstruct", + "variantKey": "OpenMPConstruct", + "OpenMPConstruct": "0x55df82fdf940-OpenMPConstruct" + }, + { + "id": "0x55df82fdf940-OpenMPConstruct", + "variantKey": "OpenMPLoopConstruct", + "OpenMPLoopConstruct": "0x55df82fdf940-OpenMPLoopConstruct" + }, + { + "id": "0x55df82fdf940-OpenMPLoopConstruct", + "OmpBeginLoopDirective": "0x55df82fdfa00-OmpBeginLoopDirective", + "ExecutionPartConstruct": [ + "0x55df82fe06a0-ExecutionPartConstruct" + ], + "OmpEndLoopDirective": "0x55df82fdf950-OmpEndLoopDirective" + }, + { + "id": "0x55df82fdfa00-OmpBeginLoopDirective", + "OmpDirectiveName": "0x55df82fdfa78-OmpDirectiveName", + "OmpClauseList": "0x55df82fdfa18-OmpClauseList", + "Flags = {}": "0x55df82fdfa10-Flags = {}" + }, + { + "id": "0x55df82fdfa78-OmpDirectiveName", + "directive": "do" + }, + { + "id": "0x55df82fdfa18-OmpClauseList" + }, + { + "id": "0x55df82fdf9e8-ExecutionPartConstruct" + }, + { + "id": "0x55df82fe06a0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55df82fe06a0-ExecutableConstruct" + }, + { + "id": "0x55df82fe06a0-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x55df82f59260-DoConstruct" + }, + { + "id": "0x55df82f59260-DoConstruct", + "Statement": "0x55df82f592b8-Statement", + "ExecutionPartConstruct": [ + "0x55df82fe0c90-ExecutionPartConstruct" + ], + "Statement": "0x55df82f59260-Statement" + }, + { + "id": "0x55df82f592b8-Statement", + "statement": "0x55df82f592c8-NonLabelDoStmt", + "source": "do i = 1, 100" + }, + { + "id": "0x55df82f592c8-NonLabelDoStmt", + "LoopControl": "0x55df82f592c8-LoopControl" + }, + { + "id": "0x55df82f592c8-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x55df82f592c8-LoopBounds" + }, + { + "id": "0x55df82f592c8-LoopBounds", + "var": "0x55df82f592c8-Name", + "lower": "0x55df82fdea20-Expr", + "upper": "0x55df82fdf4b0-Expr" + }, + { + "id": "0x55df82f592c8-Name", + "source": "i" + }, + { + "id": "0x55df82fdea20-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55df82fdea40-LiteralConstant" + }, + { + "id": "0x55df82fdea40-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55df82fdea40-IntLiteralConstant" + }, + { + "id": "0x55df82fdea40-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55df82fdf4b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55df82fdf4d0-LiteralConstant" + }, + { + "id": "0x55df82fdf4d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55df82fdf4d0-IntLiteralConstant" + }, + { + "id": "0x55df82fdf4d0-IntLiteralConstant", + "CharBlock": "100" + }, + { + "id": "0x55df82f592a0-ExecutionPartConstruct" + }, + { + "id": "0x55df82fe0c90-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55df82fe0c90-ExecutableConstruct" + }, + { + "id": "0x55df82fe0c90-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55df82fe0c90-Statement" + }, + { + "id": "0x55df82fe0c90-Statement", + "statement": "0x55df82fe0ca0-ActionStmt", + "source": "total_sum = total_sum" + }, + { + "id": "0x55df82fe0ca0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55df82fb1ce0-AssignmentStmt" + }, + { + "id": "0x55df82fb1ce0-AssignmentStmt", + "Variable": "0x55df82fb1dc0-Variable", + "Expr": "0x55df82fb1cf0-Expr" + }, + { + "id": "0x55df82fb1dc0-Variable", + "variantKey": "Designator", + "Designator": "0x55df82fd87e0-Designator" + }, + { + "id": "0x55df82fd87e0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55df82fd87f0-DataRef" + }, + { + "id": "0x55df82fd87f0-DataRef", + "variantKey": "Name", + "Name": "0x55df82fd87f0-Name" + }, + { + "id": "0x55df82fd87f0-Name", + "source": "total_sum" + }, + { + "id": "0x55df82fb1cf0-Expr", + "variantKey": "Designator", + "Designator": "0x55df82fd9820-Designator" + }, + { + "id": "0x55df82fd9820-Designator", + "variantKey": "DataRef", + "DataRef": "0x55df82fd9830-DataRef" + }, + { + "id": "0x55df82fd9830-DataRef", + "variantKey": "Name", + "Name": "0x55df82fd9830-Name" + }, + { + "id": "0x55df82fd9830-Name", + "source": "total_sum" + }, + { + "id": "0x55df82f59260-Statement", + "statement": "0x55df82f59270-EndDoStmt", + "source": "end do" + }, + { + "id": "0x55df82f59270-EndDoStmt" + }, + { + "id": "0x55df82fdf950-OmpEndLoopDirective", + "OmpDirectiveName": "0x55df82fdf9c8-OmpDirectiveName", + "OmpClauseList": "0x55df82fdf968-OmpClauseList", + "Flags = {}": "0x55df82fdf960-Flags = {}" + }, + { + "id": "0x55df82fdf9c8-OmpDirectiveName", + "directive": "do" + }, + { + "id": "0x55df82fdf968-OmpClauseList", + "OmpClause": [ + "0x55df82fdf850-OmpClause" + ] + }, + { + "id": "0x55df82fdf850-OmpClause", + "variantKey": "Nowait", + "Nowait": "0x55df82fdf860-Nowait" + }, + { + "id": "0x55df82fdf860-Nowait", + "kind": "NOWAIT" + }, + { + "id": "0x55df82fdfba0-OmpEndDirective", + "OmpDirectiveName": "0x55df82fdfc18-OmpDirectiveName", + "OmpClauseList": "0x55df82fdfbb8-OmpClauseList", + "Flags = {}": "0x55df82fdfbb0-Flags = {}" + }, + { + "id": "0x55df82fdfc18-OmpDirectiveName", + "directive": "parallel" + }, + { + "id": "0x55df82fdfbb8-OmpClauseList" + }, + { + "id": "0x55df82fcf5d0-Statement", + "statement": "0x55df82fcf5e0-EndProgramStmt", + "source": "end program OPENMP_DEMO" + }, + { + "id": "0x55df82fcf5e0-EndProgramStmt", + "Name": "0x55df82fcf5e0-Name" + }, + { + "id": "0x55df82fcf5e0-Name", + "source": "OPENMP_DEMO" + } + ], + "comments": [], "enums": { - "Fortran::common::CUDADataAttr": ["Constant", "Device", "Managed", "Pinned", "Shared", "Texture", "Unified"], - "Fortran::common::CUDASubprogramAttrs": ["Host", "Device", "HostDevice", "Global", "Grid_Global"], - "Fortran::common::ImportKind": ["Default", "Only", "None", "All"], - "Fortran::common::OmpDependenceKind": ["In", "Out", "Inout", "Inoutset", "Mutexinoutset", "Depobj"], - "Fortran::common::OmpMemoryOrderType": ["Acq_Rel", "Acquire", "Relaxed", "Release", "Seq_Cst"], - "Fortran::common::OpenACCDeviceType": ["Star", "Default", "Nvidia", "Radeon", "Host", "Multicore", "None"], - "Fortran::parser::AccDataModifier::Modifier": ["ReadOnly", "Zero"], - "Fortran::parser::AccessSpec::Kind": ["Public", "Private"], - "Fortran::parser::BindEntity::Kind": ["Object", "Common"], - "Fortran::parser::CompilerDirective::VectorLength::Kind": ["Auto", "Fixed", "Scalable"], - "Fortran::parser::ConnectSpec::CharExpr::Kind": ["Access", "Action", "Asynchronous", "Blank", "Decimal", "Delim", "Encoding", "Form", "Pad", "Position", "Round", "Sign", "Carriagecontrol", "Convert", "Dispose"], - "Fortran::parser::DefinedOperator::IntrinsicOperator": ["Power", "Multiply", "Divide", "Add", "Subtract", "Concat", "LT", "LE", "EQ", "NE", "GE", "GT", "NOT", "AND", "OR", "EQV", "NEQV"], - "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec": ["External", "Type"], - "Fortran::parser::InquireSpec::CharVar::Kind": ["Access", "Action", "Asynchronous", "Blank", "Decimal", "Delim", "Direct", "Encoding", "Form", "Formatted", "Iomsg", "Name", "Pad", "Position", "Read", "Readwrite", "Round", "Sequential", "Sign", "Stream", "Status", "Unformatted", "Write", "Carriagecontrol", "Convert", "Dispose"], - "Fortran::parser::InquireSpec::IntVar::Kind": ["Iostat", "Nextrec", "Number", "Pos", "Recl", "Size"], - "Fortran::parser::InquireSpec::LogVar::Kind": ["Exist", "Named", "Opened", "Pending"], - "Fortran::parser::IntentSpec::Intent": ["In", "Out", "InOut"], - "Fortran::parser::IoControlSpec::CharExpr::Kind": ["Advance", "Blank", "Decimal", "Delim", "Pad", "Round", "Sign"], - "Fortran::parser::ReductionOperator::Operator": ["Plus", "Multiply", "Max", "Min", "Iand", "Ior", "Ieor", "And", "Or", "Eqv", "Neqv"], - "Fortran::parser::OmpAccessGroup::Value": ["Cgroup"], - "Fortran::parser::OmpAdjustArgsClause::OmpAdjustOp::Value": ["Nothing", "Need_Device_Ptr"], - "Fortran::parser::OmpAlwaysModifier::Value": ["Always"], - "Fortran::parser::OmpAtClause::ActionTime": ["Compilation", "Execution"], - "Fortran::parser::OmpAttachModifier::Value": ["Always", "Never", "Auto"], - "Fortran::parser::OmpAutomapModifier::Value": ["Automap"], - "Fortran::parser::OmpBindClause::Binding": ["Parallel", "Teams", "Thread"], - "Fortran::parser::OmpChunkModifier::Value": ["Simd"], - "Fortran::parser::OmpCloseModifier::Value": ["Close"], - "Fortran::parser::OmpDefaultClause::DataSharingAttribute": ["Private", "Firstprivate", "Shared", "None"], - "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": ["Alloc", "To", "From", "Tofrom", "Firstprivate", "None", "Default", "Present"], - "Fortran::parser::OmpDeleteModifier::Value": ["Delete"], - "Fortran::parser::OmpDependenceType::Value": ["Sink", "Source"], - "Fortran::parser::OmpDeviceModifier::Value": ["Ancestor", "Device_Num"], - "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": ["Any", "Host", "Nohost"], - "Fortran::parser::OmpDirectiveSpecification::Flag": ["DeprecatedSyntax", "CrossesLabelDo"], - "Fortran::parser::OmpExpectation::Value": ["Present"], - "Fortran::parser::OmpInteropType::Value": ["Target", "Targetsync"], - "Fortran::parser::OmpLastprivateModifier::Value": ["Conditional"], - "Fortran::parser::OmpLinearModifier::Value": ["Ref", "Uval", "Val"], - "Fortran::parser::OmpMapType::Value": ["Alloc", "Delete", "From", "Release", "Storage", "To", "Tofrom"], - "Fortran::parser::OmpMapTypeModifier::Value": ["Always", "Close", "Present", "Ompx_Hold"], - "Fortran::parser::OmpObject::Invalid::Kind": ["BlankCommonBlock"], - "Fortran::parser::OmpOrderClause::Ordering": ["Concurrent"], - "Fortran::parser::OmpOrderingModifier::Value": ["Monotonic", "Nonmonotonic", "Simd"], - "Fortran::parser::OmpOrderModifier::Value": ["Reproducible", "Unconstrained"], - "Fortran::parser::OmpPrescriptiveness::Value": ["Strict"], - "Fortran::parser::OmpPresentModifier::Value": ["Present"], - "Fortran::parser::OmpProcBindClause::AffinityPolicy": ["Close", "Master", "Spread", "Primary"], - "Fortran::parser::OmpReductionModifier::Value": ["Default", "Inscan", "Task"], - "Fortran::parser::OmpRefModifier::Value": ["Ref_Ptee", "Ref_Ptr", "Ref_Ptr_Ptee"], - "Fortran::parser::OmpScheduleClause::Kind": ["Static", "Dynamic", "Guided", "Auto", "Runtime"], - "Fortran::parser::OmpSelfModifier::Value": ["Self"], - "Fortran::parser::OmpSeverityClause::SevLevel": ["Fatal", "Warning"], - "Fortran::parser::OmpThreadsetClause::ThreadsetPolicy": ["Omp_Pool", "Omp_Team"], - "Fortran::parser::OmpTraitSelectorName::Value": ["Arch", "Atomic_Default_Mem_Order", "Condition", "Device_Num", "Extension", "Isa", "Kind", "Requires", "Simd", "Uid", "Vendor"], - "Fortran::parser::OmpTraitSetSelectorName::Value": ["Construct", "Device", "Implementation", "Target_Device", "User"], - "Fortran::parser::OmpVariableCategory::Value": ["Aggregate", "All", "Allocatable", "Pointer", "Scalar"], - "Fortran::parser::OmpxHoldModifier::Value": ["Ompx_Hold"], - "Fortran::parser::ProcedureStmt::Kind": ["ModuleProcedure", "Procedure"], - "Fortran::parser::SavedEntity::Kind": ["Entity", "Common"], - "Fortran::parser::StopStmt::Kind": ["Stop", "ErrorStop"], - "Fortran::parser::UseStmt::ModuleNature": ["Intrinsic", "Non_Intrinsic"] + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "Fortran::common::ImportKind": [ + "Default", + "Only", + "None", + "All" + ], + "Fortran::common::OmpDependenceKind": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::common::OmpMemoryOrderType": [ + "Acq_Rel", + "Acquire", + "Relaxed", + "Release", + "Seq_Cst" + ], + "Fortran::common::OpenACCDeviceType": [ + "Star", + "Default", + "Nvidia", + "Radeon", + "Host", + "Multicore", + "None" + ], + "Fortran::parser::AccDataModifier::Modifier": [ + "ReadOnly", + "Zero" + ], + "Fortran::parser::AccessSpec::Kind": [ + "Public", + "Private" + ], + "Fortran::parser::BindEntity::Kind": [ + "Object", + "Common" + ], + "Fortran::parser::CompilerDirective::VectorLength::Kind": [ + "Auto", + "Fixed", + "Scalable" + ], + "Fortran::parser::ConnectSpec::CharExpr::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Encoding", + "Form", + "Pad", + "Position", + "Round", + "Sign", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::DefinedOperator::IntrinsicOperator": [ + "Power", + "Multiply", + "Divide", + "Add", + "Subtract", + "Concat", + "LT", + "LE", + "EQ", + "NE", + "GE", + "GT", + "NOT", + "AND", + "OR", + "EQV", + "NEQV" + ], + "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec": [ + "External", + "Type" + ], + "Fortran::parser::InquireSpec::CharVar::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Direct", + "Encoding", + "Form", + "Formatted", + "Iomsg", + "Name", + "Pad", + "Position", + "Read", + "Readwrite", + "Round", + "Sequential", + "Sign", + "Stream", + "Status", + "Unformatted", + "Write", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::InquireSpec::IntVar::Kind": [ + "Iostat", + "Nextrec", + "Number", + "Pos", + "Recl", + "Size" + ], + "Fortran::parser::InquireSpec::LogVar::Kind": [ + "Exist", + "Named", + "Opened", + "Pending" + ], + "Fortran::parser::IntentSpec::Intent": [ + "In", + "Out", + "InOut" + ], + "Fortran::parser::IoControlSpec::CharExpr::Kind": [ + "Advance", + "Blank", + "Decimal", + "Delim", + "Pad", + "Round", + "Sign" + ], + "Fortran::parser::ReductionOperator::Operator": [ + "Plus", + "Multiply", + "Max", + "Min", + "Iand", + "Ior", + "Ieor", + "And", + "Or", + "Eqv", + "Neqv" + ], + "Fortran::parser::OmpAccessGroup::Value": [ + "Cgroup" + ], + "Fortran::parser::OmpAdjustArgsClause::OmpAdjustOp::Value": [ + "Nothing", + "Need_Device_Ptr" + ], + "Fortran::parser::OmpAlwaysModifier::Value": [ + "Always" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpAttachModifier::Value": [ + "Always", + "Never", + "Auto" + ], + "Fortran::parser::OmpAutomapModifier::Value": [ + "Automap" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpCloseModifier::Value": [ + "Close" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default", + "Present" + ], + "Fortran::parser::OmpDeleteModifier::Value": [ + "Delete" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpDirectiveSpecification::Flag": [ + "DeprecatedSyntax", + "CrossesLabelDo" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpInteropType::Value": [ + "Target", + "Targetsync" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "Storage", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpObject::Invalid::Kind": [ + "BlankCommonBlock" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpPresentModifier::Value": [ + "Present" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpRefModifier::Value": [ + "Ref_Ptee", + "Ref_Ptr", + "Ref_Ptr_Ptee" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpSelfModifier::Value": [ + "Self" + ], + "Fortran::parser::OmpSeverityClause::SevLevel": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpThreadsetClause::ThreadsetPolicy": [ + "Omp_Pool", + "Omp_Team" + ], + "Fortran::parser::OmpTraitSelectorName::Value": [ + "Arch", + "Atomic_Default_Mem_Order", + "Condition", + "Device_Num", + "Extension", + "Isa", + "Kind", + "Requires", + "Simd", + "Uid", + "Vendor" + ], + "Fortran::parser::OmpTraitSetSelectorName::Value": [ + "Construct", + "Device", + "Implementation", + "Target_Device", + "User" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpxHoldModifier::Value": [ + "Ompx_Hold" + ], + "Fortran::parser::ProcedureStmt::Kind": [ + "ModuleProcedure", + "Procedure" + ], + "Fortran::parser::SavedEntity::Kind": [ + "Entity", + "Common" + ], + "Fortran::parser::StopStmt::Kind": [ + "Stop", + "ErrorStop" + ], + "Fortran::parser::UseStmt::ModuleNature": [ + "Intrinsic", + "Non_Intrinsic" + ] } -} \ No newline at end of file +} diff --git a/FortranParser/resources-test/fortran/parser/omp/omp_do.json b/FortranParser/resources-test/fortran/parser/omp/omp_do.json index 6158f760..4a02762e 100644 --- a/FortranParser/resources-test/fortran/parser/omp/omp_do.json +++ b/FortranParser/resources-test/fortran/parser/omp/omp_do.json @@ -1,708 +1,1034 @@ -{"nodes": [ - { - "id": "0x623723286640-Program", - "ProgramUnit": [ - "0x6237232c9620-ProgramUnit"] - }, - { - "id": "0x6237232c9620-ProgramUnit", - "variantKey": "MainProgram", - "MainProgram": "0x6237232c3100-MainProgram" - }, - { - "id": "0x6237232c3100-MainProgram", - "Statement": "0x6237232c3248-Statement", - "SpecificationPart": "0x6237232c31a0-SpecificationPart", - "ExecutionPart": "0x6237232c3188-ExecutionPart", - "Statement": "0x6237232c3100-Statement" - }, - { - "id": "0x6237232c3248-Statement", - "statement": "0x6237232c3258-ProgramStmt", - "source": "program OPENMP_DEMO" - }, - { - "id": "0x6237232c3258-ProgramStmt", - "Name": "0x6237232c3258-Name" - }, - { - "id": "0x6237232c3258-Name", - "source": "OPENMP_DEMO" - }, - { - "id": "0x6237232c31a0-SpecificationPart", - "Statement": [ - "0x6237232bb610-Statement"], - "ImplicitPart": "0x6237232c31b8-ImplicitPart", - "DeclarationConstruct": [ - "0x6237232938b0-DeclarationConstruct", - "0x6237232934e0-DeclarationConstruct"] - }, - { - "id": "0x6237232bb610-Statement", - "statement": "0x6237232c9f30-UseStmt", - "source": "use omp_lib" - }, - { - "id": "0x6237232c9f30-UseStmt", - "moduleName": "0x6237232c9f38-Name" - }, - { - "id": "0x6237232c9f38-Name", - "source": "omp_lib" - }, - { - "id": "0x6237232c31b8-ImplicitPart" - }, - { - "id": "0x6237232938b0-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x6237232938b0-SpecificationConstruct" - }, - { - "id": "0x6237232938b0-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x6237232938b0-Statement" - }, - { - "id": "0x6237232938b0-Statement", - "statement": "0x6237232c0b60-TypeDeclarationStmt", - "source": "integer :: i, thread_id, num_threads, total_sum" - }, - { - "id": "0x6237232c0b60-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x6237232c0b90-DeclarationTypeSpec", - "EntityDecl": [ - "0x6237232c0f40-EntityDecl", - "0x6237232c0c70-EntityDecl", - "0x6237232c0d60-EntityDecl", - "0x6237232c0e50-EntityDecl"] - }, - { - "id": "0x6237232c0b90-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x6237232c0b90-IntrinsicTypeSpec" - }, - { - "id": "0x6237232c0b90-IntrinsicTypeSpec", - "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x6237232c0b90-IntegerTypeSpec" - }, - { - "id": "0x6237232c0b90-IntegerTypeSpec" - }, - { - "id": "0x6237232c0f40-EntityDecl", - "Name": "0x6237232c0ff8-Name" - }, - { - "id": "0x6237232c0ff8-Name", - "source": "i" - }, - { - "id": "0x6237232c0c70-EntityDecl", - "Name": "0x6237232c0d28-Name" - }, - { - "id": "0x6237232c0d28-Name", - "source": "thread_id" - }, - { - "id": "0x6237232c0d60-EntityDecl", - "Name": "0x6237232c0e18-Name" - }, - { - "id": "0x6237232c0e18-Name", - "source": "num_threads" - }, - { - "id": "0x6237232c0e50-EntityDecl", - "Name": "0x6237232c0f08-Name" - }, - { - "id": "0x6237232c0f08-Name", - "source": "total_sum" - }, - { - "id": "0x6237232934e0-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x6237232934e0-SpecificationConstruct" - }, - { - "id": "0x6237232934e0-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x6237232934e0-Statement" - }, - { - "id": "0x6237232934e0-Statement", - "statement": "0x6237232c0be0-TypeDeclarationStmt", - "source": "integer :: shared_counter = 0" - }, - { - "id": "0x6237232c0be0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x6237232c0c10-DeclarationTypeSpec", - "EntityDecl": [ - "0x6237232c1120-EntityDecl"] - }, - { - "id": "0x6237232c0c10-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x6237232c0c10-IntrinsicTypeSpec" - }, - { - "id": "0x6237232c0c10-IntrinsicTypeSpec", - "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x6237232c0c10-IntegerTypeSpec" - }, - { - "id": "0x6237232c0c10-IntegerTypeSpec" - }, - { - "id": "0x6237232c1120-EntityDecl", - "Name": "0x6237232c11d8-Name", - "Initialization": "0x6237232c1120-Initialization" - }, - { - "id": "0x6237232c11d8-Name", - "source": "shared_counter" - }, - { - "id": "0x6237232c1120-Initialization", - "variantKey": "Expr", - "Expr": "0x623723227790-Expr" - }, - { - "id": "0x623723227790-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x6237232277b0-LiteralConstant" - }, - { - "id": "0x6237232277b0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x6237232277b0-IntLiteralConstant" - }, - { - "id": "0x6237232277b0-IntLiteralConstant", - "CharBlock": "0" - }, - { - "id": "0x6237232c3188-ExecutionPart", - "ExecutionPartConstruct": [ - "0x6237232c2260-ExecutionPartConstruct", - "0x6237232c2730-ExecutionPartConstruct"] - }, - { - "id": "0x6237232c3188-ExecutionPartConstruct" - }, - { - "id": "0x6237232c2260-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x6237232c2260-ExecutableConstruct" - }, - { - "id": "0x6237232c2260-ExecutableConstruct", - "variantKey": "OpenMPConstruct", - "OpenMPConstruct": "0x6237232c2570-OpenMPConstruct" - }, - { - "id": "0x6237232c2570-OpenMPConstruct", - "variantKey": "OmpBlockConstruct", - "OmpBlockConstruct": "0x6237232c2570-OmpBlockConstruct" - }, - { - "id": "0x6237232c2570-OmpBlockConstruct", - "OmpBeginDirective": "0x6237232c2630-OmpBeginDirective", - "ExecutionPartConstruct": [ - "0x6237232c20f0-ExecutionPartConstruct"], - "OmpEndDirective": "0x6237232c2580-OmpEndDirective" - }, - { - "id": "0x6237232c2630-OmpBeginDirective", - "OmpDirectiveName": "0x6237232c26a8-OmpDirectiveName", - "OmpClauseList": "0x6237232c2648-OmpClauseList", - "Flags = {}": "0x6237232c2640-Flags = {}" - }, - { - "id": "0x6237232c26a8-OmpDirectiveName", - "directive": "parallel" - }, - { - "id": "0x6237232c2648-OmpClauseList" - }, - { - "id": "0x6237232c2618-ExecutionPartConstruct" - }, - { - "id": "0x6237232c20f0-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x6237232c20f0-ExecutableConstruct" - }, - { - "id": "0x6237232c20f0-ExecutableConstruct", - "variantKey": "OpenMPConstruct", - "OpenMPConstruct": "0x6237232c2320-OpenMPConstruct" - }, - { - "id": "0x6237232c2320-OpenMPConstruct", - "variantKey": "OpenMPLoopConstruct", - "OpenMPLoopConstruct": "0x6237232c2320-OpenMPLoopConstruct" - }, - { - "id": "0x6237232c2320-OpenMPLoopConstruct", - "OmpBeginLoopDirective": "0x6237232c23e0-OmpBeginLoopDirective", - "ExecutionPartConstruct": [ - "0x6237232bb110-ExecutionPartConstruct"], - "OmpEndLoopDirective": "0x6237232c2330-OmpEndLoopDirective" - }, - { - "id": "0x6237232c23e0-OmpBeginLoopDirective", - "OmpDirectiveName": "0x6237232c2458-OmpDirectiveName", - "OmpClauseList": "0x6237232c23f8-OmpClauseList", - "Flags = {}": "0x6237232c23f0-Flags = {}" - }, - { - "id": "0x6237232c2458-OmpDirectiveName", - "directive": "do" - }, - { - "id": "0x6237232c23f8-OmpClauseList" - }, - { - "id": "0x6237232c23c8-ExecutionPartConstruct" - }, - { - "id": "0x6237232bb110-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x6237232bb110-ExecutableConstruct" - }, - { - "id": "0x6237232bb110-ExecutableConstruct", - "variantKey": "DoConstruct", - "DoConstruct": "0x62372325d780-DoConstruct" - }, - { - "id": "0x62372325d780-DoConstruct", - "Statement": "0x62372325d7d8-Statement", - "ExecutionPartConstruct": [ - "0x6237232c2090-ExecutionPartConstruct"], - "Statement": "0x62372325d780-Statement" - }, - { - "id": "0x62372325d7d8-Statement", - "statement": "0x62372325d7e8-NonLabelDoStmt", - "source": "do i = 1, 100" - }, - { - "id": "0x62372325d7e8-NonLabelDoStmt", - "LoopControl": "0x62372325d7e8-LoopControl" - }, - { - "id": "0x62372325d7e8-LoopControl", - "variantKey": "LoopBounds", - "LoopBounds": "0x62372325d7e8-LoopBounds" - }, - { - "id": "0x62372325d7e8-LoopBounds", - "var": "0x62372325d7e8-Name", - "lower": "0x6237232c1360-Expr", - "upper": "0x6237232c1e80-Expr" - }, - { - "id": "0x62372325d7e8-Name", - "source": "i" - }, - { - "id": "0x6237232c1360-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x6237232c1380-LiteralConstant" - }, - { - "id": "0x6237232c1380-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x6237232c1380-IntLiteralConstant" - }, - { - "id": "0x6237232c1380-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x6237232c1e80-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x6237232c1ea0-LiteralConstant" - }, - { - "id": "0x6237232c1ea0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x6237232c1ea0-IntLiteralConstant" - }, - { - "id": "0x6237232c1ea0-IntLiteralConstant", - "CharBlock": "100" - }, - { - "id": "0x62372325d7c0-ExecutionPartConstruct" - }, - { - "id": "0x6237232c2090-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x6237232c2090-ExecutableConstruct" - }, - { - "id": "0x6237232c2090-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x6237232c2090-Statement" - }, - { - "id": "0x6237232c2090-Statement", - "statement": "0x6237232c20a0-ActionStmt", - "source": "total_sum = total_sum" - }, - { - "id": "0x6237232c20a0-ActionStmt", - "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x6237232c2140-AssignmentStmt" - }, - { - "id": "0x6237232c2140-AssignmentStmt", - "Variable": "0x6237232c2220-Variable", - "Expr": "0x6237232c2150-Expr" - }, - { - "id": "0x6237232c2220-Variable", - "variantKey": "Designator", - "Designator": "0x6237232c2d80-Designator" - }, - { - "id": "0x6237232c2d80-Designator", - "variantKey": "DataRef", - "DataRef": "0x6237232c2d90-DataRef" - }, - { - "id": "0x6237232c2d90-DataRef", - "variantKey": "Name", - "Name": "0x6237232c2d90-Name" - }, - { - "id": "0x6237232c2d90-Name", - "source": "total_sum" - }, - { - "id": "0x6237232c2150-Expr", - "variantKey": "Designator", - "Designator": "0x6237232bd330-Designator" - }, - { - "id": "0x6237232bd330-Designator", - "variantKey": "DataRef", - "DataRef": "0x6237232bd340-DataRef" - }, - { - "id": "0x6237232bd340-DataRef", - "variantKey": "Name", - "Name": "0x6237232bd340-Name" - }, - { - "id": "0x6237232bd340-Name", - "source": "total_sum" - }, - { - "id": "0x62372325d780-Statement", - "statement": "0x62372325d790-EndDoStmt", - "source": "end do" - }, - { - "id": "0x62372325d790-EndDoStmt" - }, - { - "id": "0x6237232c2330-OmpEndLoopDirective", - "OmpDirectiveName": "0x6237232c23a8-OmpDirectiveName", - "OmpClauseList": "0x6237232c2348-OmpClauseList", - "Flags = {}": "0x6237232c2340-Flags = {}" - }, - { - "id": "0x6237232c23a8-OmpDirectiveName", - "directive": "do" - }, - { - "id": "0x6237232c2348-OmpClauseList" - }, - { - "id": "0x6237232c2580-OmpEndDirective", - "OmpDirectiveName": "0x6237232c25f8-OmpDirectiveName", - "OmpClauseList": "0x6237232c2598-OmpClauseList", - "Flags = {}": "0x6237232c2590-Flags = {}" - }, - { - "id": "0x6237232c25f8-OmpDirectiveName", - "directive": "parallel" - }, - { - "id": "0x6237232c2598-OmpClauseList" - }, - { - "id": "0x6237232c2730-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x6237232c2730-ExecutableConstruct" - }, - { - "id": "0x6237232c2730-ExecutableConstruct", - "variantKey": "OpenMPConstruct", - "OpenMPConstruct": "0x6237232c7d10-OpenMPConstruct" - }, - { - "id": "0x6237232c7d10-OpenMPConstruct", - "variantKey": "OpenMPLoopConstruct", - "OpenMPLoopConstruct": "0x6237232c7d10-OpenMPLoopConstruct" - }, - { - "id": "0x6237232c7d10-OpenMPLoopConstruct", - "OmpBeginLoopDirective": "0x6237232c7dd0-OmpBeginLoopDirective", - "ExecutionPartConstruct": [ - "0x6237232c7a30-ExecutionPartConstruct"], - "OmpEndLoopDirective": "0x6237232c7d20-OmpEndLoopDirective" - }, - { - "id": "0x6237232c7dd0-OmpBeginLoopDirective", - "OmpDirectiveName": "0x6237232c7e48-OmpDirectiveName", - "OmpClauseList": "0x6237232c7de8-OmpClauseList", - "Flags = {}": "0x6237232c7de0-Flags = {}" - }, - { - "id": "0x6237232c7e48-OmpDirectiveName", - "directive": "parallel do" - }, - { - "id": "0x6237232c7de8-OmpClauseList" - }, - { - "id": "0x6237232c7db8-ExecutionPartConstruct" - }, - { - "id": "0x6237232c7a30-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x6237232c7a30-ExecutableConstruct" - }, - { - "id": "0x6237232c7a30-ExecutableConstruct", - "variantKey": "DoConstruct", - "DoConstruct": "0x6237232c7bf0-DoConstruct" - }, - { - "id": "0x6237232c7bf0-DoConstruct", - "Statement": "0x6237232c7c48-Statement", - "ExecutionPartConstruct": [ - "0x6237232c9ee0-ExecutionPartConstruct"], - "Statement": "0x6237232c7bf0-Statement" - }, - { - "id": "0x6237232c7c48-Statement", - "statement": "0x6237232c7c58-NonLabelDoStmt", - "source": "do i = 1, 2" - }, - { - "id": "0x6237232c7c58-NonLabelDoStmt", - "LoopControl": "0x6237232c7c58-LoopControl" - }, - { - "id": "0x6237232c7c58-LoopControl", - "variantKey": "LoopBounds", - "LoopBounds": "0x6237232c7c58-LoopBounds" - }, - { - "id": "0x6237232c7c58-LoopBounds", - "var": "0x6237232c7c58-Name", - "lower": "0x6237232c2780-Expr", - "upper": "0x6237232c78e0-Expr" - }, - { - "id": "0x6237232c7c58-Name", - "source": "i" - }, - { - "id": "0x6237232c2780-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x6237232c27a0-LiteralConstant" - }, - { - "id": "0x6237232c27a0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x6237232c27a0-IntLiteralConstant" - }, - { - "id": "0x6237232c27a0-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x6237232c78e0-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x6237232c7900-LiteralConstant" - }, - { - "id": "0x6237232c7900-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x6237232c7900-IntLiteralConstant" - }, - { - "id": "0x6237232c7900-IntLiteralConstant", - "CharBlock": "2" - }, - { - "id": "0x6237232c7c30-ExecutionPartConstruct" - }, - { - "id": "0x6237232c9ee0-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x6237232c9ee0-ExecutableConstruct" - }, - { - "id": "0x6237232c9ee0-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x6237232c9ee0-Statement" - }, - { - "id": "0x6237232c9ee0-Statement", - "statement": "0x6237232c9ef0-ActionStmt", - "source": "total_sum = 1" - }, - { - "id": "0x6237232c9ef0-ActionStmt", - "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x6237232c7a80-AssignmentStmt" - }, - { - "id": "0x6237232c7a80-AssignmentStmt", - "Variable": "0x6237232c7b60-Variable", - "Expr": "0x6237232c7a90-Expr" - }, - { - "id": "0x6237232c7b60-Variable", - "variantKey": "Designator", - "Designator": "0x6237232c79c0-Designator" - }, - { - "id": "0x6237232c79c0-Designator", - "variantKey": "DataRef", - "DataRef": "0x6237232c79d0-DataRef" - }, - { - "id": "0x6237232c79d0-DataRef", - "variantKey": "Name", - "Name": "0x6237232c79d0-Name" - }, - { - "id": "0x6237232c79d0-Name", - "source": "total_sum" - }, - { - "id": "0x6237232c7a90-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x6237232c7ab0-LiteralConstant" - }, - { - "id": "0x6237232c7ab0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x6237232c7ab0-IntLiteralConstant" - }, - { - "id": "0x6237232c7ab0-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x6237232c7bf0-Statement", - "statement": "0x6237232c7c00-EndDoStmt", - "source": "end do" - }, - { - "id": "0x6237232c7c00-EndDoStmt" - }, - { - "id": "0x6237232c7d20-OmpEndLoopDirective", - "OmpDirectiveName": "0x6237232c7d98-OmpDirectiveName", - "OmpClauseList": "0x6237232c7d38-OmpClauseList", - "Flags = {}": "0x6237232c7d30-Flags = {}" - }, - { - "id": "0x6237232c7d98-OmpDirectiveName", - "directive": "parallel do" - }, - { - "id": "0x6237232c7d38-OmpClauseList" - }, - { - "id": "0x6237232c3100-Statement", - "statement": "0x6237232c3110-EndProgramStmt", - "source": "end program OPENMP_DEMO" - }, - { - "id": "0x6237232c3110-EndProgramStmt", - "Name": "0x6237232c3110-Name" - }, - { - "id": "0x6237232c3110-Name", - "source": "OPENMP_DEMO" - }], +{ + "fileExtension": "f90", + "nodes": [ + { + "id": "0x556bdcfdef00-Program", + "ProgramUnit": [ + "0x556bdd01b8c0-ProgramUnit" + ] + }, + { + "id": "0x556bdd01b8c0-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x556bdd01bb00-MainProgram" + }, + { + "id": "0x556bdd01bb00-MainProgram", + "Statement": "0x556bdd01bc48-Statement", + "SpecificationPart": "0x556bdd01bba0-SpecificationPart", + "ExecutionPart": "0x556bdd01bb88-ExecutionPart", + "Statement": "0x556bdd01bb00-Statement" + }, + { + "id": "0x556bdd01bc48-Statement", + "statement": "0x556bdd01bc58-ProgramStmt", + "source": "program OPENMP_DEMO" + }, + { + "id": "0x556bdd01bc58-ProgramStmt", + "Name": "0x556bdd01bc58-Name" + }, + { + "id": "0x556bdd01bc58-Name", + "source": "OPENMP_DEMO" + }, + { + "id": "0x556bdd01bba0-SpecificationPart", + "Statement": [ + "0x556bdd014520-Statement" + ], + "ImplicitPart": "0x556bdd01bbb8-ImplicitPart", + "DeclarationConstruct": [ + "0x556bdcfec170-DeclarationConstruct", + "0x556bdcfebda0-DeclarationConstruct" + ] + }, + { + "id": "0x556bdd014520-Statement", + "statement": "0x556bdd022a40-UseStmt", + "source": "use omp_lib" + }, + { + "id": "0x556bdd022a40-UseStmt", + "moduleName": "0x556bdd022a48-Name", + "renameList": [] + }, + { + "id": "0x556bdd022a48-Name", + "source": "omp_lib" + }, + { + "id": "0x556bdd01bbb8-ImplicitPart" + }, + { + "id": "0x556bdcfec170-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x556bdcfec170-SpecificationConstruct" + }, + { + "id": "0x556bdcfec170-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x556bdcfec170-Statement" + }, + { + "id": "0x556bdcfec170-Statement", + "statement": "0x556bdd019310-TypeDeclarationStmt", + "source": "integer :: i, thread_id, num_threads, total_sum" + }, + { + "id": "0x556bdd019310-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x556bdd019340-DeclarationTypeSpec", + "EntityDecl": [ + "0x556bdd0196f0-EntityDecl", + "0x556bdd019420-EntityDecl", + "0x556bdd019510-EntityDecl", + "0x556bdd019600-EntityDecl" + ] + }, + { + "id": "0x556bdd019340-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x556bdd019340-IntrinsicTypeSpec" + }, + { + "id": "0x556bdd019340-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x556bdd019340-IntegerTypeSpec" + }, + { + "id": "0x556bdd019340-IntegerTypeSpec" + }, + { + "id": "0x556bdd0196f0-EntityDecl", + "Name": "0x556bdd0197a8-Name" + }, + { + "id": "0x556bdd0197a8-Name", + "source": "i" + }, + { + "id": "0x556bdd019420-EntityDecl", + "Name": "0x556bdd0194d8-Name" + }, + { + "id": "0x556bdd0194d8-Name", + "source": "thread_id" + }, + { + "id": "0x556bdd019510-EntityDecl", + "Name": "0x556bdd0195c8-Name" + }, + { + "id": "0x556bdd0195c8-Name", + "source": "num_threads" + }, + { + "id": "0x556bdd019600-EntityDecl", + "Name": "0x556bdd0196b8-Name" + }, + { + "id": "0x556bdd0196b8-Name", + "source": "total_sum" + }, + { + "id": "0x556bdcfebda0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x556bdcfebda0-SpecificationConstruct" + }, + { + "id": "0x556bdcfebda0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x556bdcfebda0-Statement" + }, + { + "id": "0x556bdcfebda0-Statement", + "statement": "0x556bdd019390-TypeDeclarationStmt", + "source": "integer :: shared_counter = 0" + }, + { + "id": "0x556bdd019390-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x556bdd0193c0-DeclarationTypeSpec", + "EntityDecl": [ + "0x556bdd0198d0-EntityDecl" + ] + }, + { + "id": "0x556bdd0193c0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x556bdd0193c0-IntrinsicTypeSpec" + }, + { + "id": "0x556bdd0193c0-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x556bdd0193c0-IntegerTypeSpec" + }, + { + "id": "0x556bdd0193c0-IntegerTypeSpec" + }, + { + "id": "0x556bdd0198d0-EntityDecl", + "Name": "0x556bdd019988-Name", + "Initialization": "0x556bdd0198d0-Initialization" + }, + { + "id": "0x556bdd019988-Name", + "source": "shared_counter" + }, + { + "id": "0x556bdd0198d0-Initialization", + "variantKey": "Expr", + "Expr": "0x556bdcf7e790-Expr" + }, + { + "id": "0x556bdcf7e790-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x556bdcf7e7b0-LiteralConstant" + }, + { + "id": "0x556bdcf7e7b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x556bdcf7e7b0-IntLiteralConstant" + }, + { + "id": "0x556bdcf7e7b0-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x556bdd01bb88-ExecutionPart", + "ExecutionPartConstruct": [ + "0x556bdd01a7f0-ExecutionPartConstruct", + "0x556bdd01acc0-ExecutionPartConstruct" + ] + }, + { + "id": "0x556bdd01bb88-ExecutionPartConstruct" + }, + { + "id": "0x556bdd01a7f0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x556bdd01a7f0-ExecutableConstruct" + }, + { + "id": "0x556bdd01a7f0-ExecutableConstruct", + "variantKey": "OpenMPConstruct", + "OpenMPConstruct": "0x556bdd01ab00-OpenMPConstruct" + }, + { + "id": "0x556bdd01ab00-OpenMPConstruct", + "variantKey": "OmpBlockConstruct", + "OmpBlockConstruct": "0x556bdd01ab00-OmpBlockConstruct" + }, + { + "id": "0x556bdd01ab00-OmpBlockConstruct", + "OmpBeginDirective": "0x556bdd01abc0-OmpBeginDirective", + "ExecutionPartConstruct": [ + "0x556bdd01a680-ExecutionPartConstruct" + ], + "OmpEndDirective": "0x556bdd01ab10-OmpEndDirective" + }, + { + "id": "0x556bdd01abc0-OmpBeginDirective", + "OmpDirectiveName": "0x556bdd01ac38-OmpDirectiveName", + "OmpClauseList": "0x556bdd01abd8-OmpClauseList", + "Flags = {}": "0x556bdd01abd0-Flags = {}" + }, + { + "id": "0x556bdd01ac38-OmpDirectiveName", + "directive": "parallel" + }, + { + "id": "0x556bdd01abd8-OmpClauseList" + }, + { + "id": "0x556bdd01aba8-ExecutionPartConstruct" + }, + { + "id": "0x556bdd01a680-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x556bdd01a680-ExecutableConstruct" + }, + { + "id": "0x556bdd01a680-ExecutableConstruct", + "variantKey": "OpenMPConstruct", + "OpenMPConstruct": "0x556bdd01a8b0-OpenMPConstruct" + }, + { + "id": "0x556bdd01a8b0-OpenMPConstruct", + "variantKey": "OpenMPLoopConstruct", + "OpenMPLoopConstruct": "0x556bdd01a8b0-OpenMPLoopConstruct" + }, + { + "id": "0x556bdd01a8b0-OpenMPLoopConstruct", + "OmpBeginLoopDirective": "0x556bdd01a970-OmpBeginLoopDirective", + "ExecutionPartConstruct": [ + "0x556bdd01a520-ExecutionPartConstruct" + ], + "OmpEndLoopDirective": "0x556bdd01a8c0-OmpEndLoopDirective" + }, + { + "id": "0x556bdd01a970-OmpBeginLoopDirective", + "OmpDirectiveName": "0x556bdd01a9e8-OmpDirectiveName", + "OmpClauseList": "0x556bdd01a988-OmpClauseList", + "Flags = {}": "0x556bdd01a980-Flags = {}" + }, + { + "id": "0x556bdd01a9e8-OmpDirectiveName", + "directive": "do" + }, + { + "id": "0x556bdd01a988-OmpClauseList" + }, + { + "id": "0x556bdd01a958-ExecutionPartConstruct" + }, + { + "id": "0x556bdd01a520-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x556bdd01a520-ExecutableConstruct" + }, + { + "id": "0x556bdd01a520-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x556bdcfb4780-DoConstruct" + }, + { + "id": "0x556bdcfb4780-DoConstruct", + "Statement": "0x556bdcfb47d8-Statement", + "ExecutionPartConstruct": [ + "0x556bdd01a620-ExecutionPartConstruct" + ], + "Statement": "0x556bdcfb4780-Statement" + }, + { + "id": "0x556bdcfb47d8-Statement", + "statement": "0x556bdcfb47e8-NonLabelDoStmt", + "source": "do i = 1, 100" + }, + { + "id": "0x556bdcfb47e8-NonLabelDoStmt", + "LoopControl": "0x556bdcfb47e8-LoopControl" + }, + { + "id": "0x556bdcfb47e8-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x556bdcfb47e8-LoopBounds" + }, + { + "id": "0x556bdcfb47e8-LoopBounds", + "var": "0x556bdcfb47e8-Name", + "lower": "0x556bdd019b10-Expr", + "upper": "0x556bdd01a430-Expr" + }, + { + "id": "0x556bdcfb47e8-Name", + "source": "i" + }, + { + "id": "0x556bdd019b10-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x556bdd019b30-LiteralConstant" + }, + { + "id": "0x556bdd019b30-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x556bdd019b30-IntLiteralConstant" + }, + { + "id": "0x556bdd019b30-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x556bdd01a430-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x556bdd01a450-LiteralConstant" + }, + { + "id": "0x556bdd01a450-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x556bdd01a450-IntLiteralConstant" + }, + { + "id": "0x556bdd01a450-IntLiteralConstant", + "CharBlock": "100" + }, + { + "id": "0x556bdcfb47c0-ExecutionPartConstruct" + }, + { + "id": "0x556bdd01a620-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x556bdd01a620-ExecutableConstruct" + }, + { + "id": "0x556bdd01a620-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x556bdd01a620-Statement" + }, + { + "id": "0x556bdd01a620-Statement", + "statement": "0x556bdd01a630-ActionStmt", + "source": "total_sum = total_sum" + }, + { + "id": "0x556bdd01a630-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x556bdd01a6d0-AssignmentStmt" + }, + { + "id": "0x556bdd01a6d0-AssignmentStmt", + "Variable": "0x556bdd01a7b0-Variable", + "Expr": "0x556bdd01a6e0-Expr" + }, + { + "id": "0x556bdd01a7b0-Variable", + "variantKey": "Designator", + "Designator": "0x556bdd013930-Designator" + }, + { + "id": "0x556bdd013930-Designator", + "variantKey": "DataRef", + "DataRef": "0x556bdd013940-DataRef" + }, + { + "id": "0x556bdd013940-DataRef", + "variantKey": "Name", + "Name": "0x556bdd013940-Name" + }, + { + "id": "0x556bdd013940-Name", + "source": "total_sum" + }, + { + "id": "0x556bdd01a6e0-Expr", + "variantKey": "Designator", + "Designator": "0x556bdd015c50-Designator" + }, + { + "id": "0x556bdd015c50-Designator", + "variantKey": "DataRef", + "DataRef": "0x556bdd015c60-DataRef" + }, + { + "id": "0x556bdd015c60-DataRef", + "variantKey": "Name", + "Name": "0x556bdd015c60-Name" + }, + { + "id": "0x556bdd015c60-Name", + "source": "total_sum" + }, + { + "id": "0x556bdcfb4780-Statement", + "statement": "0x556bdcfb4790-EndDoStmt", + "source": "end do" + }, + { + "id": "0x556bdcfb4790-EndDoStmt" + }, + { + "id": "0x556bdd01a8c0-OmpEndLoopDirective", + "OmpDirectiveName": "0x556bdd01a938-OmpDirectiveName", + "OmpClauseList": "0x556bdd01a8d8-OmpClauseList", + "Flags = {}": "0x556bdd01a8d0-Flags = {}" + }, + { + "id": "0x556bdd01a938-OmpDirectiveName", + "directive": "do" + }, + { + "id": "0x556bdd01a8d8-OmpClauseList" + }, + { + "id": "0x556bdd01ab10-OmpEndDirective", + "OmpDirectiveName": "0x556bdd01ab88-OmpDirectiveName", + "OmpClauseList": "0x556bdd01ab28-OmpClauseList", + "Flags = {}": "0x556bdd01ab20-Flags = {}" + }, + { + "id": "0x556bdd01ab88-OmpDirectiveName", + "directive": "parallel" + }, + { + "id": "0x556bdd01ab28-OmpClauseList" + }, + { + "id": "0x556bdd01acc0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x556bdd01acc0-ExecutableConstruct" + }, + { + "id": "0x556bdd01acc0-ExecutableConstruct", + "variantKey": "OpenMPConstruct", + "OpenMPConstruct": "0x556bdd0202e0-OpenMPConstruct" + }, + { + "id": "0x556bdd0202e0-OpenMPConstruct", + "variantKey": "OpenMPLoopConstruct", + "OpenMPLoopConstruct": "0x556bdd0202e0-OpenMPLoopConstruct" + }, + { + "id": "0x556bdd0202e0-OpenMPLoopConstruct", + "OmpBeginLoopDirective": "0x556bdd0203a0-OmpBeginLoopDirective", + "ExecutionPartConstruct": [ + "0x556bdd01af40-ExecutionPartConstruct" + ], + "OmpEndLoopDirective": "0x556bdd0202f0-OmpEndLoopDirective" + }, + { + "id": "0x556bdd0203a0-OmpBeginLoopDirective", + "OmpDirectiveName": "0x556bdd020418-OmpDirectiveName", + "OmpClauseList": "0x556bdd0203b8-OmpClauseList", + "Flags = {}": "0x556bdd0203b0-Flags = {}" + }, + { + "id": "0x556bdd020418-OmpDirectiveName", + "directive": "parallel do" + }, + { + "id": "0x556bdd0203b8-OmpClauseList" + }, + { + "id": "0x556bdd020388-ExecutionPartConstruct" + }, + { + "id": "0x556bdd01af40-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x556bdd01af40-ExecutableConstruct" + }, + { + "id": "0x556bdd01af40-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x556bdd01b100-DoConstruct" + }, + { + "id": "0x556bdd01b100-DoConstruct", + "Statement": "0x556bdd01b158-Statement", + "ExecutionPartConstruct": [ + "0x556bdd013ad0-ExecutionPartConstruct" + ], + "Statement": "0x556bdd01b100-Statement" + }, + { + "id": "0x556bdd01b158-Statement", + "statement": "0x556bdd01b168-NonLabelDoStmt", + "source": "do i = 1, 2" + }, + { + "id": "0x556bdd01b168-NonLabelDoStmt", + "LoopControl": "0x556bdd01b168-LoopControl" + }, + { + "id": "0x556bdd01b168-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x556bdd01b168-LoopBounds" + }, + { + "id": "0x556bdd01b168-LoopBounds", + "var": "0x556bdd01b168-Name", + "lower": "0x556bdd01ad10-Expr", + "upper": "0x556bdd01adf0-Expr" + }, + { + "id": "0x556bdd01b168-Name", + "source": "i" + }, + { + "id": "0x556bdd01ad10-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x556bdd01ad30-LiteralConstant" + }, + { + "id": "0x556bdd01ad30-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x556bdd01ad30-IntLiteralConstant" + }, + { + "id": "0x556bdd01ad30-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x556bdd01adf0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x556bdd01ae10-LiteralConstant" + }, + { + "id": "0x556bdd01ae10-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x556bdd01ae10-IntLiteralConstant" + }, + { + "id": "0x556bdd01ae10-IntLiteralConstant", + "CharBlock": "2" + }, + { + "id": "0x556bdd01b140-ExecutionPartConstruct" + }, + { + "id": "0x556bdd013ad0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x556bdd013ad0-ExecutableConstruct" + }, + { + "id": "0x556bdd013ad0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x556bdd013ad0-Statement" + }, + { + "id": "0x556bdd013ad0-Statement", + "statement": "0x556bdd013ae0-ActionStmt", + "source": "total_sum = 1" + }, + { + "id": "0x556bdd013ae0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x556bdd01af90-AssignmentStmt" + }, + { + "id": "0x556bdd01af90-AssignmentStmt", + "Variable": "0x556bdd01b070-Variable", + "Expr": "0x556bdd01afa0-Expr" + }, + { + "id": "0x556bdd01b070-Variable", + "variantKey": "Designator", + "Designator": "0x556bdd01aed0-Designator" + }, + { + "id": "0x556bdd01aed0-Designator", + "variantKey": "DataRef", + "DataRef": "0x556bdd01aee0-DataRef" + }, + { + "id": "0x556bdd01aee0-DataRef", + "variantKey": "Name", + "Name": "0x556bdd01aee0-Name" + }, + { + "id": "0x556bdd01aee0-Name", + "source": "total_sum" + }, + { + "id": "0x556bdd01afa0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x556bdd01afc0-LiteralConstant" + }, + { + "id": "0x556bdd01afc0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x556bdd01afc0-IntLiteralConstant" + }, + { + "id": "0x556bdd01afc0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x556bdd01b100-Statement", + "statement": "0x556bdd01b110-EndDoStmt", + "source": "end do" + }, + { + "id": "0x556bdd01b110-EndDoStmt" + }, + { + "id": "0x556bdd0202f0-OmpEndLoopDirective", + "OmpDirectiveName": "0x556bdd020368-OmpDirectiveName", + "OmpClauseList": "0x556bdd020308-OmpClauseList", + "Flags = {}": "0x556bdd020300-Flags = {}" + }, + { + "id": "0x556bdd020368-OmpDirectiveName", + "directive": "parallel do" + }, + { + "id": "0x556bdd020308-OmpClauseList" + }, + { + "id": "0x556bdd01bb00-Statement", + "statement": "0x556bdd01bb10-EndProgramStmt", + "source": "end program OPENMP_DEMO" + }, + { + "id": "0x556bdd01bb10-EndProgramStmt", + "Name": "0x556bdd01bb10-Name" + }, + { + "id": "0x556bdd01bb10-Name", + "source": "OPENMP_DEMO" + } + ], + "comments": [], "enums": { - "Fortran::common::CUDADataAttr": ["Constant", "Device", "Managed", "Pinned", "Shared", "Texture", "Unified"], - "Fortran::common::CUDASubprogramAttrs": ["Host", "Device", "HostDevice", "Global", "Grid_Global"], - "Fortran::common::ImportKind": ["Default", "Only", "None", "All"], - "Fortran::common::OmpDependenceKind": ["In", "Out", "Inout", "Inoutset", "Mutexinoutset", "Depobj"], - "Fortran::common::OmpMemoryOrderType": ["Acq_Rel", "Acquire", "Relaxed", "Release", "Seq_Cst"], - "Fortran::common::OpenACCDeviceType": ["Star", "Default", "Nvidia", "Radeon", "Host", "Multicore", "None"], - "Fortran::parser::AccDataModifier::Modifier": ["ReadOnly", "Zero"], - "Fortran::parser::AccessSpec::Kind": ["Public", "Private"], - "Fortran::parser::BindEntity::Kind": ["Object", "Common"], - "Fortran::parser::CompilerDirective::VectorLength::Kind": ["Auto", "Fixed", "Scalable"], - "Fortran::parser::ConnectSpec::CharExpr::Kind": ["Access", "Action", "Asynchronous", "Blank", "Decimal", "Delim", "Encoding", "Form", "Pad", "Position", "Round", "Sign", "Carriagecontrol", "Convert", "Dispose"], - "Fortran::parser::DefinedOperator::IntrinsicOperator": ["Power", "Multiply", "Divide", "Add", "Subtract", "Concat", "LT", "LE", "EQ", "NE", "GE", "GT", "NOT", "AND", "OR", "EQV", "NEQV"], - "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec": ["External", "Type"], - "Fortran::parser::InquireSpec::CharVar::Kind": ["Access", "Action", "Asynchronous", "Blank", "Decimal", "Delim", "Direct", "Encoding", "Form", "Formatted", "Iomsg", "Name", "Pad", "Position", "Read", "Readwrite", "Round", "Sequential", "Sign", "Stream", "Status", "Unformatted", "Write", "Carriagecontrol", "Convert", "Dispose"], - "Fortran::parser::InquireSpec::IntVar::Kind": ["Iostat", "Nextrec", "Number", "Pos", "Recl", "Size"], - "Fortran::parser::InquireSpec::LogVar::Kind": ["Exist", "Named", "Opened", "Pending"], - "Fortran::parser::IntentSpec::Intent": ["In", "Out", "InOut"], - "Fortran::parser::IoControlSpec::CharExpr::Kind": ["Advance", "Blank", "Decimal", "Delim", "Pad", "Round", "Sign"], - "Fortran::parser::ReductionOperator::Operator": ["Plus", "Multiply", "Max", "Min", "Iand", "Ior", "Ieor", "And", "Or", "Eqv", "Neqv"], - "Fortran::parser::OmpAccessGroup::Value": ["Cgroup"], - "Fortran::parser::OmpAdjustArgsClause::OmpAdjustOp::Value": ["Nothing", "Need_Device_Ptr"], - "Fortran::parser::OmpAlwaysModifier::Value": ["Always"], - "Fortran::parser::OmpAtClause::ActionTime": ["Compilation", "Execution"], - "Fortran::parser::OmpAttachModifier::Value": ["Always", "Never", "Auto"], - "Fortran::parser::OmpAutomapModifier::Value": ["Automap"], - "Fortran::parser::OmpBindClause::Binding": ["Parallel", "Teams", "Thread"], - "Fortran::parser::OmpChunkModifier::Value": ["Simd"], - "Fortran::parser::OmpCloseModifier::Value": ["Close"], - "Fortran::parser::OmpDefaultClause::DataSharingAttribute": ["Private", "Firstprivate", "Shared", "None"], - "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": ["Alloc", "To", "From", "Tofrom", "Firstprivate", "None", "Default", "Present"], - "Fortran::parser::OmpDeleteModifier::Value": ["Delete"], - "Fortran::parser::OmpDependenceType::Value": ["Sink", "Source"], - "Fortran::parser::OmpDeviceModifier::Value": ["Ancestor", "Device_Num"], - "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": ["Any", "Host", "Nohost"], - "Fortran::parser::OmpDirectiveSpecification::Flag": ["DeprecatedSyntax", "CrossesLabelDo"], - "Fortran::parser::OmpExpectation::Value": ["Present"], - "Fortran::parser::OmpInteropType::Value": ["Target", "Targetsync"], - "Fortran::parser::OmpLastprivateModifier::Value": ["Conditional"], - "Fortran::parser::OmpLinearModifier::Value": ["Ref", "Uval", "Val"], - "Fortran::parser::OmpMapType::Value": ["Alloc", "Delete", "From", "Release", "Storage", "To", "Tofrom"], - "Fortran::parser::OmpMapTypeModifier::Value": ["Always", "Close", "Present", "Ompx_Hold"], - "Fortran::parser::OmpObject::Invalid::Kind": ["BlankCommonBlock"], - "Fortran::parser::OmpOrderClause::Ordering": ["Concurrent"], - "Fortran::parser::OmpOrderingModifier::Value": ["Monotonic", "Nonmonotonic", "Simd"], - "Fortran::parser::OmpOrderModifier::Value": ["Reproducible", "Unconstrained"], - "Fortran::parser::OmpPrescriptiveness::Value": ["Strict"], - "Fortran::parser::OmpPresentModifier::Value": ["Present"], - "Fortran::parser::OmpProcBindClause::AffinityPolicy": ["Close", "Master", "Spread", "Primary"], - "Fortran::parser::OmpReductionModifier::Value": ["Default", "Inscan", "Task"], - "Fortran::parser::OmpRefModifier::Value": ["Ref_Ptee", "Ref_Ptr", "Ref_Ptr_Ptee"], - "Fortran::parser::OmpScheduleClause::Kind": ["Static", "Dynamic", "Guided", "Auto", "Runtime"], - "Fortran::parser::OmpSelfModifier::Value": ["Self"], - "Fortran::parser::OmpSeverityClause::SevLevel": ["Fatal", "Warning"], - "Fortran::parser::OmpThreadsetClause::ThreadsetPolicy": ["Omp_Pool", "Omp_Team"], - "Fortran::parser::OmpTraitSelectorName::Value": ["Arch", "Atomic_Default_Mem_Order", "Condition", "Device_Num", "Extension", "Isa", "Kind", "Requires", "Simd", "Uid", "Vendor"], - "Fortran::parser::OmpTraitSetSelectorName::Value": ["Construct", "Device", "Implementation", "Target_Device", "User"], - "Fortran::parser::OmpVariableCategory::Value": ["Aggregate", "All", "Allocatable", "Pointer", "Scalar"], - "Fortran::parser::OmpxHoldModifier::Value": ["Ompx_Hold"], - "Fortran::parser::ProcedureStmt::Kind": ["ModuleProcedure", "Procedure"], - "Fortran::parser::SavedEntity::Kind": ["Entity", "Common"], - "Fortran::parser::StopStmt::Kind": ["Stop", "ErrorStop"], - "Fortran::parser::UseStmt::ModuleNature": ["Intrinsic", "Non_Intrinsic"] + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "Fortran::common::ImportKind": [ + "Default", + "Only", + "None", + "All" + ], + "Fortran::common::OmpDependenceKind": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::common::OmpMemoryOrderType": [ + "Acq_Rel", + "Acquire", + "Relaxed", + "Release", + "Seq_Cst" + ], + "Fortran::common::OpenACCDeviceType": [ + "Star", + "Default", + "Nvidia", + "Radeon", + "Host", + "Multicore", + "None" + ], + "Fortran::parser::AccDataModifier::Modifier": [ + "ReadOnly", + "Zero" + ], + "Fortran::parser::AccessSpec::Kind": [ + "Public", + "Private" + ], + "Fortran::parser::BindEntity::Kind": [ + "Object", + "Common" + ], + "Fortran::parser::CompilerDirective::VectorLength::Kind": [ + "Auto", + "Fixed", + "Scalable" + ], + "Fortran::parser::ConnectSpec::CharExpr::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Encoding", + "Form", + "Pad", + "Position", + "Round", + "Sign", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::DefinedOperator::IntrinsicOperator": [ + "Power", + "Multiply", + "Divide", + "Add", + "Subtract", + "Concat", + "LT", + "LE", + "EQ", + "NE", + "GE", + "GT", + "NOT", + "AND", + "OR", + "EQV", + "NEQV" + ], + "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec": [ + "External", + "Type" + ], + "Fortran::parser::InquireSpec::CharVar::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Direct", + "Encoding", + "Form", + "Formatted", + "Iomsg", + "Name", + "Pad", + "Position", + "Read", + "Readwrite", + "Round", + "Sequential", + "Sign", + "Stream", + "Status", + "Unformatted", + "Write", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::InquireSpec::IntVar::Kind": [ + "Iostat", + "Nextrec", + "Number", + "Pos", + "Recl", + "Size" + ], + "Fortran::parser::InquireSpec::LogVar::Kind": [ + "Exist", + "Named", + "Opened", + "Pending" + ], + "Fortran::parser::IntentSpec::Intent": [ + "In", + "Out", + "InOut" + ], + "Fortran::parser::IoControlSpec::CharExpr::Kind": [ + "Advance", + "Blank", + "Decimal", + "Delim", + "Pad", + "Round", + "Sign" + ], + "Fortran::parser::ReductionOperator::Operator": [ + "Plus", + "Multiply", + "Max", + "Min", + "Iand", + "Ior", + "Ieor", + "And", + "Or", + "Eqv", + "Neqv" + ], + "Fortran::parser::OmpAccessGroup::Value": [ + "Cgroup" + ], + "Fortran::parser::OmpAdjustArgsClause::OmpAdjustOp::Value": [ + "Nothing", + "Need_Device_Ptr" + ], + "Fortran::parser::OmpAlwaysModifier::Value": [ + "Always" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpAttachModifier::Value": [ + "Always", + "Never", + "Auto" + ], + "Fortran::parser::OmpAutomapModifier::Value": [ + "Automap" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpCloseModifier::Value": [ + "Close" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default", + "Present" + ], + "Fortran::parser::OmpDeleteModifier::Value": [ + "Delete" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpDirectiveSpecification::Flag": [ + "DeprecatedSyntax", + "CrossesLabelDo" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpInteropType::Value": [ + "Target", + "Targetsync" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "Storage", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpObject::Invalid::Kind": [ + "BlankCommonBlock" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpPresentModifier::Value": [ + "Present" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpRefModifier::Value": [ + "Ref_Ptee", + "Ref_Ptr", + "Ref_Ptr_Ptee" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpSelfModifier::Value": [ + "Self" + ], + "Fortran::parser::OmpSeverityClause::SevLevel": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpThreadsetClause::ThreadsetPolicy": [ + "Omp_Pool", + "Omp_Team" + ], + "Fortran::parser::OmpTraitSelectorName::Value": [ + "Arch", + "Atomic_Default_Mem_Order", + "Condition", + "Device_Num", + "Extension", + "Isa", + "Kind", + "Requires", + "Simd", + "Uid", + "Vendor" + ], + "Fortran::parser::OmpTraitSetSelectorName::Value": [ + "Construct", + "Device", + "Implementation", + "Target_Device", + "User" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpxHoldModifier::Value": [ + "Ompx_Hold" + ], + "Fortran::parser::ProcedureStmt::Kind": [ + "ModuleProcedure", + "Procedure" + ], + "Fortran::parser::SavedEntity::Kind": [ + "Entity", + "Common" + ], + "Fortran::parser::StopStmt::Kind": [ + "Stop", + "ErrorStop" + ], + "Fortran::parser::UseStmt::ModuleNature": [ + "Intrinsic", + "Non_Intrinsic" + ] } -} \ No newline at end of file +} diff --git a/FortranParser/resources-test/fortran/parser/omp/omp_reduction.json b/FortranParser/resources-test/fortran/parser/omp/omp_reduction.json index 2522c259..57fea250 100644 --- a/FortranParser/resources-test/fortran/parser/omp/omp_reduction.json +++ b/FortranParser/resources-test/fortran/parser/omp/omp_reduction.json @@ -1,553 +1,879 @@ -{"nodes": [ - { - "id": "0x649bca7a0640-Program", - "ProgramUnit": [ - "0x649bca7d50f0-ProgramUnit"] - }, - { - "id": "0x649bca7d50f0-ProgramUnit", - "variantKey": "MainProgram", - "MainProgram": "0x649bca7cbe30-MainProgram" - }, - { - "id": "0x649bca7cbe30-MainProgram", - "Statement": "0x649bca7cbf78-Statement", - "SpecificationPart": "0x649bca7cbed0-SpecificationPart", - "ExecutionPart": "0x649bca7cbeb8-ExecutionPart", - "Statement": "0x649bca7cbe30-Statement" - }, - { - "id": "0x649bca7cbf78-Statement", - "statement": "0x649bca7cbf88-ProgramStmt", - "source": "program OPENMP_DEMO" - }, - { - "id": "0x649bca7cbf88-ProgramStmt", - "Name": "0x649bca7cbf88-Name" - }, - { - "id": "0x649bca7cbf88-Name", - "source": "OPENMP_DEMO" - }, - { - "id": "0x649bca7cbed0-SpecificationPart", - "Statement": [ - "0x649bca7d55c0-Statement"], - "ImplicitPart": "0x649bca7cbee8-ImplicitPart", - "DeclarationConstruct": [ - "0x649bca7ad8b0-DeclarationConstruct", - "0x649bca7ad4e0-DeclarationConstruct"] - }, - { - "id": "0x649bca7d55c0-Statement", - "statement": "0x649bca7d7290-UseStmt", - "source": "use omp_lib" - }, - { - "id": "0x649bca7d7290-UseStmt", - "moduleName": "0x649bca7d7298-Name" - }, - { - "id": "0x649bca7d7298-Name", - "source": "omp_lib" - }, - { - "id": "0x649bca7cbee8-ImplicitPart" - }, - { - "id": "0x649bca7ad8b0-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x649bca7ad8b0-SpecificationConstruct" - }, - { - "id": "0x649bca7ad8b0-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x649bca7ad8b0-Statement" - }, - { - "id": "0x649bca7ad8b0-Statement", - "statement": "0x649bca7daa20-TypeDeclarationStmt", - "source": "integer :: i, thread_id, num_threads, total_sum" - }, - { - "id": "0x649bca7daa20-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x649bca7daa50-DeclarationTypeSpec", - "EntityDecl": [ - "0x649bca7dae00-EntityDecl", - "0x649bca7dab30-EntityDecl", - "0x649bca7dac20-EntityDecl", - "0x649bca7dad10-EntityDecl"] - }, - { - "id": "0x649bca7daa50-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x649bca7daa50-IntrinsicTypeSpec" - }, - { - "id": "0x649bca7daa50-IntrinsicTypeSpec", - "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x649bca7daa50-IntegerTypeSpec" - }, - { - "id": "0x649bca7daa50-IntegerTypeSpec" - }, - { - "id": "0x649bca7dae00-EntityDecl", - "Name": "0x649bca7daeb8-Name" - }, - { - "id": "0x649bca7daeb8-Name", - "source": "i" - }, - { - "id": "0x649bca7dab30-EntityDecl", - "Name": "0x649bca7dabe8-Name" - }, - { - "id": "0x649bca7dabe8-Name", - "source": "thread_id" - }, - { - "id": "0x649bca7dac20-EntityDecl", - "Name": "0x649bca7dacd8-Name" - }, - { - "id": "0x649bca7dacd8-Name", - "source": "num_threads" - }, - { - "id": "0x649bca7dad10-EntityDecl", - "Name": "0x649bca7dadc8-Name" - }, - { - "id": "0x649bca7dadc8-Name", - "source": "total_sum" - }, - { - "id": "0x649bca7ad4e0-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x649bca7ad4e0-SpecificationConstruct" - }, - { - "id": "0x649bca7ad4e0-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x649bca7ad4e0-Statement" - }, - { - "id": "0x649bca7ad4e0-Statement", - "statement": "0x649bca7daaa0-TypeDeclarationStmt", - "source": "integer :: shared_counter = 0" - }, - { - "id": "0x649bca7daaa0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x649bca7daad0-DeclarationTypeSpec", - "EntityDecl": [ - "0x649bca7dafe0-EntityDecl"] - }, - { - "id": "0x649bca7daad0-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x649bca7daad0-IntrinsicTypeSpec" - }, - { - "id": "0x649bca7daad0-IntrinsicTypeSpec", - "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x649bca7daad0-IntegerTypeSpec" - }, - { - "id": "0x649bca7daad0-IntegerTypeSpec" - }, - { - "id": "0x649bca7dafe0-EntityDecl", - "Name": "0x649bca7db098-Name", - "Initialization": "0x649bca7dafe0-Initialization" - }, - { - "id": "0x649bca7db098-Name", - "source": "shared_counter" - }, - { - "id": "0x649bca7dafe0-Initialization", - "variantKey": "Expr", - "Expr": "0x649bca741790-Expr" - }, - { - "id": "0x649bca741790-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x649bca7417b0-LiteralConstant" - }, - { - "id": "0x649bca7417b0-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x649bca7417b0-IntLiteralConstant" - }, - { - "id": "0x649bca7417b0-IntLiteralConstant", - "CharBlock": "0" - }, - { - "id": "0x649bca7cbeb8-ExecutionPart", - "ExecutionPartConstruct": [ - "0x649bca7d6100-ExecutionPartConstruct"] - }, - { - "id": "0x649bca7cbeb8-ExecutionPartConstruct" - }, - { - "id": "0x649bca7d6100-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x649bca7d6100-ExecutableConstruct" - }, - { - "id": "0x649bca7d6100-ExecutableConstruct", - "variantKey": "OpenMPConstruct", - "OpenMPConstruct": "0x649bca7d6dd0-OpenMPConstruct" - }, - { - "id": "0x649bca7d6dd0-OpenMPConstruct", - "variantKey": "OpenMPLoopConstruct", - "OpenMPLoopConstruct": "0x649bca7d6dd0-OpenMPLoopConstruct" - }, - { - "id": "0x649bca7d6dd0-OpenMPLoopConstruct", - "OmpBeginLoopDirective": "0x649bca7d6e90-OmpBeginLoopDirective", - "ExecutionPartConstruct": [ - "0x649bca7d6d10-ExecutionPartConstruct"], - "OmpEndLoopDirective": "0x649bca7d6de0-OmpEndLoopDirective" - }, - { - "id": "0x649bca7d6e90-OmpBeginLoopDirective", - "OmpDirectiveName": "0x649bca7d6f08-OmpDirectiveName", - "OmpClauseList": "0x649bca7d6ea8-OmpClauseList", - "Flags = {}": "0x649bca7d6ea0-Flags = {}" - }, - { - "id": "0x649bca7d6f08-OmpDirectiveName", - "directive": "parallel do" - }, - { - "id": "0x649bca7d6ea8-OmpClauseList", - "OmpClause": [ - "0x649bca7d57e0-OmpClause"] - }, - { - "id": "0x649bca7d57e0-OmpClause", - "variantKey": "Reduction", - "Reduction": "0x649bca7d57f0-Reduction" - }, - { - "id": "0x649bca7d57f0-Reduction", - "OmpReductionClause": "0x649bca7d57f0-OmpReductionClause", - "kind": "REDUCTION" - }, - { - "id": "0x649bca7d57f0-OmpReductionClause", - "Modifier": [ - "0x649bca7e3800-Modifier"], - "OmpObjectList": "0x649bca7d57f0-OmpObjectList" - }, - { - "id": "0x649bca7e3800-Modifier", - "variantKey": "OmpReductionIdentifier", - "OmpReductionIdentifier": "0x649bca7e3810-OmpReductionIdentifier" - }, - { - "id": "0x649bca7e3810-OmpReductionIdentifier", - "variantKey": "DefinedOperator", - "DefinedOperator": "0x649bca7e3810-DefinedOperator" - }, - { - "id": "0x649bca7e3810-DefinedOperator", - "op": "Add" - }, - { - "id": "0x649bca7e3810-IntrinsicOperator = Add", - "disambiguation": "Fortran::parser::DefinedOperator::IntrinsicOperator", - "value": "Add" - }, - { - "id": "0x649bca7d57f0-OmpObjectList", - "OmpObject": [ - "0x649bca7dc780-OmpObject"] - }, - { - "id": "0x649bca7dc780-OmpObject", - "variantKey": "Designator", - "Designator": "0x649bca7dc780-Designator" - }, - { - "id": "0x649bca7dc780-Designator", - "variantKey": "DataRef", - "DataRef": "0x649bca7dc790-DataRef" - }, - { - "id": "0x649bca7dc790-DataRef", - "variantKey": "Name", - "Name": "0x649bca7dc790-Name" - }, - { - "id": "0x649bca7dc790-Name", - "source": "total_sum" - }, - { - "id": "0x649bca7d6e78-ExecutionPartConstruct" - }, - { - "id": "0x649bca7d6d10-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x649bca7d6d10-ExecutableConstruct" - }, - { - "id": "0x649bca7d6d10-ExecutableConstruct", - "variantKey": "DoConstruct", - "DoConstruct": "0x649bca777780-DoConstruct" - }, - { - "id": "0x649bca777780-DoConstruct", - "Statement": "0x649bca7777d8-Statement", - "ExecutionPartConstruct": [ - "0x649bca7d5b10-ExecutionPartConstruct"], - "Statement": "0x649bca777780-Statement" - }, - { - "id": "0x649bca7777d8-Statement", - "statement": "0x649bca7777e8-NonLabelDoStmt", - "source": "do i = 1, 2" - }, - { - "id": "0x649bca7777e8-NonLabelDoStmt", - "LoopControl": "0x649bca7777e8-LoopControl" - }, - { - "id": "0x649bca7777e8-LoopControl", - "variantKey": "LoopBounds", - "LoopBounds": "0x649bca7777e8-LoopBounds" - }, - { - "id": "0x649bca7777e8-LoopBounds", - "var": "0x649bca7777e8-Name", - "lower": "0x649bca7d6b40-Expr", - "upper": "0x649bca7d6c20-Expr" - }, - { - "id": "0x649bca7777e8-Name", - "source": "i" - }, - { - "id": "0x649bca7d6b40-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x649bca7d6b60-LiteralConstant" - }, - { - "id": "0x649bca7d6b60-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x649bca7d6b60-IntLiteralConstant" - }, - { - "id": "0x649bca7d6b60-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x649bca7d6c20-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x649bca7d6c40-LiteralConstant" - }, - { - "id": "0x649bca7d6c40-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x649bca7d6c40-IntLiteralConstant" - }, - { - "id": "0x649bca7d6c40-IntLiteralConstant", - "CharBlock": "2" - }, - { - "id": "0x649bca7777c0-ExecutionPartConstruct" - }, - { - "id": "0x649bca7d5b10-ExecutionPartConstruct", - "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x649bca7d5b10-ExecutableConstruct" - }, - { - "id": "0x649bca7d5b10-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x649bca7d5b10-Statement" - }, - { - "id": "0x649bca7d5b10-Statement", - "statement": "0x649bca7d5b20-ActionStmt", - "source": "total_sum = total_sum + 1" - }, - { - "id": "0x649bca7d5b20-ActionStmt", - "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x649bca7ae2e0-AssignmentStmt" - }, - { - "id": "0x649bca7ae2e0-AssignmentStmt", - "Variable": "0x649bca7ae3c0-Variable", - "Expr": "0x649bca7ae2f0-Expr" - }, - { - "id": "0x649bca7ae3c0-Variable", - "variantKey": "Designator", - "Designator": "0x649bca7d68c0-Designator" - }, - { - "id": "0x649bca7d68c0-Designator", - "variantKey": "DataRef", - "DataRef": "0x649bca7d68d0-DataRef" - }, - { - "id": "0x649bca7d68d0-DataRef", - "variantKey": "Name", - "Name": "0x649bca7d68d0-Name" - }, - { - "id": "0x649bca7d68d0-Name", - "source": "total_sum" - }, - { - "id": "0x649bca7ae2f0-Expr", - "variantKey": "Add", - "Add": "0x649bca7ae310-Add" - }, - { - "id": "0x649bca7ae310-Add", - "left": "0x649bca7d58d0-Expr", - "right": "0x649bca7db220-Expr", - "op": "ADD" - }, - { - "id": "0x649bca7d58d0-Expr", - "variantKey": "Designator", - "Designator": "0x649bca7d6a20-Designator" - }, - { - "id": "0x649bca7d6a20-Designator", - "variantKey": "DataRef", - "DataRef": "0x649bca7d6a30-DataRef" - }, - { - "id": "0x649bca7d6a30-DataRef", - "variantKey": "Name", - "Name": "0x649bca7d6a30-Name" - }, - { - "id": "0x649bca7d6a30-Name", - "source": "total_sum" - }, - { - "id": "0x649bca7db220-Expr", - "variantKey": "LiteralConstant", - "LiteralConstant": "0x649bca7db240-LiteralConstant" - }, - { - "id": "0x649bca7db240-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x649bca7db240-IntLiteralConstant" - }, - { - "id": "0x649bca7db240-IntLiteralConstant", - "CharBlock": "1" - }, - { - "id": "0x649bca777780-Statement", - "statement": "0x649bca777790-EndDoStmt", - "source": "end do" - }, - { - "id": "0x649bca777790-EndDoStmt" - }, - { - "id": "0x649bca7d6de0-OmpEndLoopDirective", - "OmpDirectiveName": "0x649bca7d6e58-OmpDirectiveName", - "OmpClauseList": "0x649bca7d6df8-OmpClauseList", - "Flags = {}": "0x649bca7d6df0-Flags = {}" - }, - { - "id": "0x649bca7d6e58-OmpDirectiveName", - "directive": "parallel do" - }, - { - "id": "0x649bca7d6df8-OmpClauseList" - }, - { - "id": "0x649bca7cbe30-Statement", - "statement": "0x649bca7cbe40-EndProgramStmt", - "source": "end program OPENMP_DEMO" - }, - { - "id": "0x649bca7cbe40-EndProgramStmt", - "Name": "0x649bca7cbe40-Name" - }, - { - "id": "0x649bca7cbe40-Name", - "source": "OPENMP_DEMO" - }], +{ + "fileExtension": "f90", + "nodes": [ + { + "id": "0x5596e055af00-Program", + "ProgramUnit": [ + "0x5596e058fb30-ProgramUnit" + ] + }, + { + "id": "0x5596e058fb30-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x5596e0586240-MainProgram" + }, + { + "id": "0x5596e0586240-MainProgram", + "Statement": "0x5596e0586388-Statement", + "SpecificationPart": "0x5596e05862e0-SpecificationPart", + "ExecutionPart": "0x5596e05862c8-ExecutionPart", + "Statement": "0x5596e0586240-Statement" + }, + { + "id": "0x5596e0586388-Statement", + "statement": "0x5596e0586398-ProgramStmt", + "source": "program OPENMP_DEMO" + }, + { + "id": "0x5596e0586398-ProgramStmt", + "Name": "0x5596e0586398-Name" + }, + { + "id": "0x5596e0586398-Name", + "source": "OPENMP_DEMO" + }, + { + "id": "0x5596e05862e0-SpecificationPart", + "Statement": [ + "0x5596e058fc60-Statement" + ], + "ImplicitPart": "0x5596e05862f8-ImplicitPart", + "DeclarationConstruct": [ + "0x5596e0568170-DeclarationConstruct", + "0x5596e0567da0-DeclarationConstruct" + ] + }, + { + "id": "0x5596e058fc60-Statement", + "statement": "0x5596e059e8f0-UseStmt", + "source": "use omp_lib" + }, + { + "id": "0x5596e059e8f0-UseStmt", + "moduleName": "0x5596e059e8f8-Name", + "renameList": [] + }, + { + "id": "0x5596e059e8f8-Name", + "source": "omp_lib" + }, + { + "id": "0x5596e05862f8-ImplicitPart" + }, + { + "id": "0x5596e0568170-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5596e0568170-SpecificationConstruct" + }, + { + "id": "0x5596e0568170-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5596e0568170-Statement" + }, + { + "id": "0x5596e0568170-Statement", + "statement": "0x5596e0595140-TypeDeclarationStmt", + "source": "integer :: i, thread_id, num_threads, total_sum" + }, + { + "id": "0x5596e0595140-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5596e0595170-DeclarationTypeSpec", + "EntityDecl": [ + "0x5596e0595520-EntityDecl", + "0x5596e0595250-EntityDecl", + "0x5596e0595340-EntityDecl", + "0x5596e0595430-EntityDecl" + ] + }, + { + "id": "0x5596e0595170-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5596e0595170-IntrinsicTypeSpec" + }, + { + "id": "0x5596e0595170-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x5596e0595170-IntegerTypeSpec" + }, + { + "id": "0x5596e0595170-IntegerTypeSpec" + }, + { + "id": "0x5596e0595520-EntityDecl", + "Name": "0x5596e05955d8-Name" + }, + { + "id": "0x5596e05955d8-Name", + "source": "i" + }, + { + "id": "0x5596e0595250-EntityDecl", + "Name": "0x5596e0595308-Name" + }, + { + "id": "0x5596e0595308-Name", + "source": "thread_id" + }, + { + "id": "0x5596e0595340-EntityDecl", + "Name": "0x5596e05953f8-Name" + }, + { + "id": "0x5596e05953f8-Name", + "source": "num_threads" + }, + { + "id": "0x5596e0595430-EntityDecl", + "Name": "0x5596e05954e8-Name" + }, + { + "id": "0x5596e05954e8-Name", + "source": "total_sum" + }, + { + "id": "0x5596e0567da0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5596e0567da0-SpecificationConstruct" + }, + { + "id": "0x5596e0567da0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5596e0567da0-Statement" + }, + { + "id": "0x5596e0567da0-Statement", + "statement": "0x5596e05951c0-TypeDeclarationStmt", + "source": "integer :: shared_counter = 0" + }, + { + "id": "0x5596e05951c0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5596e05951f0-DeclarationTypeSpec", + "EntityDecl": [ + "0x5596e0595700-EntityDecl" + ] + }, + { + "id": "0x5596e05951f0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5596e05951f0-IntrinsicTypeSpec" + }, + { + "id": "0x5596e05951f0-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x5596e05951f0-IntegerTypeSpec" + }, + { + "id": "0x5596e05951f0-IntegerTypeSpec" + }, + { + "id": "0x5596e0595700-EntityDecl", + "Name": "0x5596e05957b8-Name", + "Initialization": "0x5596e0595700-Initialization" + }, + { + "id": "0x5596e05957b8-Name", + "source": "shared_counter" + }, + { + "id": "0x5596e0595700-Initialization", + "variantKey": "Expr", + "Expr": "0x5596e04fa790-Expr" + }, + { + "id": "0x5596e04fa790-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5596e04fa7b0-LiteralConstant" + }, + { + "id": "0x5596e04fa7b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5596e04fa7b0-IntLiteralConstant" + }, + { + "id": "0x5596e04fa7b0-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x5596e05862c8-ExecutionPart", + "ExecutionPartConstruct": [ + "0x5596e0590e00-ExecutionPartConstruct" + ] + }, + { + "id": "0x5596e05862c8-ExecutionPartConstruct" + }, + { + "id": "0x5596e0590e00-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5596e0590e00-ExecutableConstruct" + }, + { + "id": "0x5596e0590e00-ExecutableConstruct", + "variantKey": "OpenMPConstruct", + "OpenMPConstruct": "0x5596e0596760-OpenMPConstruct" + }, + { + "id": "0x5596e0596760-OpenMPConstruct", + "variantKey": "OpenMPLoopConstruct", + "OpenMPLoopConstruct": "0x5596e0596760-OpenMPLoopConstruct" + }, + { + "id": "0x5596e0596760-OpenMPLoopConstruct", + "OmpBeginLoopDirective": "0x5596e0596820-OmpBeginLoopDirective", + "ExecutionPartConstruct": [ + "0x5596e05966a0-ExecutionPartConstruct" + ], + "OmpEndLoopDirective": "0x5596e0596770-OmpEndLoopDirective" + }, + { + "id": "0x5596e0596820-OmpBeginLoopDirective", + "OmpDirectiveName": "0x5596e0596898-OmpDirectiveName", + "OmpClauseList": "0x5596e0596838-OmpClauseList", + "Flags = {}": "0x5596e0596830-Flags = {}" + }, + { + "id": "0x5596e0596898-OmpDirectiveName", + "directive": "parallel do" + }, + { + "id": "0x5596e0596838-OmpClauseList", + "OmpClause": [ + "0x5596e0596160-OmpClause" + ] + }, + { + "id": "0x5596e0596160-OmpClause", + "variantKey": "Reduction", + "Reduction": "0x5596e0596170-Reduction" + }, + { + "id": "0x5596e0596170-Reduction", + "OmpReductionClause": "0x5596e0596170-OmpReductionClause", + "kind": "REDUCTION" + }, + { + "id": "0x5596e0596170-OmpReductionClause", + "Modifier": [ + "0x5596e05976a0-Modifier" + ], + "OmpObjectList": "0x5596e0596170-OmpObjectList" + }, + { + "id": "0x5596e05976a0-Modifier", + "variantKey": "OmpReductionIdentifier", + "OmpReductionIdentifier": "0x5596e05976b0-OmpReductionIdentifier" + }, + { + "id": "0x5596e05976b0-OmpReductionIdentifier", + "variantKey": "DefinedOperator", + "DefinedOperator": "0x5596e05976b0-DefinedOperator" + }, + { + "id": "0x5596e05976b0-DefinedOperator", + "op": "Add" + }, + { + "id": "0x5596e05976b0-IntrinsicOperator = Add", + "disambiguation": "Fortran::parser::DefinedOperator::IntrinsicOperator", + "value": "Add" + }, + { + "id": "0x5596e0596170-OmpObjectList", + "OmpObject": [ + "0x5596e0590730-OmpObject" + ] + }, + { + "id": "0x5596e0590730-OmpObject", + "variantKey": "Designator", + "Designator": "0x5596e0590730-Designator" + }, + { + "id": "0x5596e0590730-Designator", + "variantKey": "DataRef", + "DataRef": "0x5596e0590740-DataRef" + }, + { + "id": "0x5596e0590740-DataRef", + "variantKey": "Name", + "Name": "0x5596e0590740-Name" + }, + { + "id": "0x5596e0590740-Name", + "source": "total_sum" + }, + { + "id": "0x5596e0596808-ExecutionPartConstruct" + }, + { + "id": "0x5596e05966a0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5596e05966a0-ExecutableConstruct" + }, + { + "id": "0x5596e05966a0-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x5596e0530780-DoConstruct" + }, + { + "id": "0x5596e0530780-DoConstruct", + "Statement": "0x5596e05307d8-Statement", + "ExecutionPartConstruct": [ + "0x5596e0597640-ExecutionPartConstruct" + ], + "Statement": "0x5596e0530780-Statement" + }, + { + "id": "0x5596e05307d8-Statement", + "statement": "0x5596e05307e8-NonLabelDoStmt", + "source": "do i = 1, 2" + }, + { + "id": "0x5596e05307e8-NonLabelDoStmt", + "LoopControl": "0x5596e05307e8-LoopControl" + }, + { + "id": "0x5596e05307e8-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x5596e05307e8-LoopBounds" + }, + { + "id": "0x5596e05307e8-LoopBounds", + "var": "0x5596e05307e8-Name", + "lower": "0x5596e05964d0-Expr", + "upper": "0x5596e05965b0-Expr" + }, + { + "id": "0x5596e05307e8-Name", + "source": "i" + }, + { + "id": "0x5596e05964d0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5596e05964f0-LiteralConstant" + }, + { + "id": "0x5596e05964f0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5596e05964f0-IntLiteralConstant" + }, + { + "id": "0x5596e05964f0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5596e05965b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5596e05965d0-LiteralConstant" + }, + { + "id": "0x5596e05965d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5596e05965d0-IntLiteralConstant" + }, + { + "id": "0x5596e05965d0-IntLiteralConstant", + "CharBlock": "2" + }, + { + "id": "0x5596e05307c0-ExecutionPartConstruct" + }, + { + "id": "0x5596e0597640-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5596e0597640-ExecutableConstruct" + }, + { + "id": "0x5596e0597640-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5596e0597640-Statement" + }, + { + "id": "0x5596e0597640-Statement", + "statement": "0x5596e0597650-ActionStmt", + "source": "total_sum = total_sum + 1" + }, + { + "id": "0x5596e0597650-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x5596e0568ce0-AssignmentStmt" + }, + { + "id": "0x5596e0568ce0-AssignmentStmt", + "Variable": "0x5596e0568dc0-Variable", + "Expr": "0x5596e0568cf0-Expr" + }, + { + "id": "0x5596e0568dc0-Variable", + "variantKey": "Designator", + "Designator": "0x5596e058f750-Designator" + }, + { + "id": "0x5596e058f750-Designator", + "variantKey": "DataRef", + "DataRef": "0x5596e058f760-DataRef" + }, + { + "id": "0x5596e058f760-DataRef", + "variantKey": "Name", + "Name": "0x5596e058f760-Name" + }, + { + "id": "0x5596e058f760-Name", + "source": "total_sum" + }, + { + "id": "0x5596e0568cf0-Expr", + "variantKey": "Add", + "Add": "0x5596e0568d10-Add" + }, + { + "id": "0x5596e0568d10-Add", + "left": "0x5596e0596250-Expr", + "right": "0x5596e0595940-Expr", + "op": "ADD" + }, + { + "id": "0x5596e0596250-Expr", + "variantKey": "Designator", + "Designator": "0x5596e05963b0-Designator" + }, + { + "id": "0x5596e05963b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5596e05963c0-DataRef" + }, + { + "id": "0x5596e05963c0-DataRef", + "variantKey": "Name", + "Name": "0x5596e05963c0-Name" + }, + { + "id": "0x5596e05963c0-Name", + "source": "total_sum" + }, + { + "id": "0x5596e0595940-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5596e0595960-LiteralConstant" + }, + { + "id": "0x5596e0595960-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5596e0595960-IntLiteralConstant" + }, + { + "id": "0x5596e0595960-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5596e0530780-Statement", + "statement": "0x5596e0530790-EndDoStmt", + "source": "end do" + }, + { + "id": "0x5596e0530790-EndDoStmt" + }, + { + "id": "0x5596e0596770-OmpEndLoopDirective", + "OmpDirectiveName": "0x5596e05967e8-OmpDirectiveName", + "OmpClauseList": "0x5596e0596788-OmpClauseList", + "Flags = {}": "0x5596e0596780-Flags = {}" + }, + { + "id": "0x5596e05967e8-OmpDirectiveName", + "directive": "parallel do" + }, + { + "id": "0x5596e0596788-OmpClauseList" + }, + { + "id": "0x5596e0586240-Statement", + "statement": "0x5596e0586250-EndProgramStmt", + "source": "end program OPENMP_DEMO" + }, + { + "id": "0x5596e0586250-EndProgramStmt", + "Name": "0x5596e0586250-Name" + }, + { + "id": "0x5596e0586250-Name", + "source": "OPENMP_DEMO" + } + ], + "comments": [], "enums": { - "Fortran::common::CUDADataAttr": ["Constant", "Device", "Managed", "Pinned", "Shared", "Texture", "Unified"], - "Fortran::common::CUDASubprogramAttrs": ["Host", "Device", "HostDevice", "Global", "Grid_Global"], - "Fortran::common::ImportKind": ["Default", "Only", "None", "All"], - "Fortran::common::OmpDependenceKind": ["In", "Out", "Inout", "Inoutset", "Mutexinoutset", "Depobj"], - "Fortran::common::OmpMemoryOrderType": ["Acq_Rel", "Acquire", "Relaxed", "Release", "Seq_Cst"], - "Fortran::common::OpenACCDeviceType": ["Star", "Default", "Nvidia", "Radeon", "Host", "Multicore", "None"], - "Fortran::parser::AccDataModifier::Modifier": ["ReadOnly", "Zero"], - "Fortran::parser::AccessSpec::Kind": ["Public", "Private"], - "Fortran::parser::BindEntity::Kind": ["Object", "Common"], - "Fortran::parser::CompilerDirective::VectorLength::Kind": ["Auto", "Fixed", "Scalable"], - "Fortran::parser::ConnectSpec::CharExpr::Kind": ["Access", "Action", "Asynchronous", "Blank", "Decimal", "Delim", "Encoding", "Form", "Pad", "Position", "Round", "Sign", "Carriagecontrol", "Convert", "Dispose"], - "Fortran::parser::DefinedOperator::IntrinsicOperator": ["Power", "Multiply", "Divide", "Add", "Subtract", "Concat", "LT", "LE", "EQ", "NE", "GE", "GT", "NOT", "AND", "OR", "EQV", "NEQV"], - "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec": ["External", "Type"], - "Fortran::parser::InquireSpec::CharVar::Kind": ["Access", "Action", "Asynchronous", "Blank", "Decimal", "Delim", "Direct", "Encoding", "Form", "Formatted", "Iomsg", "Name", "Pad", "Position", "Read", "Readwrite", "Round", "Sequential", "Sign", "Stream", "Status", "Unformatted", "Write", "Carriagecontrol", "Convert", "Dispose"], - "Fortran::parser::InquireSpec::IntVar::Kind": ["Iostat", "Nextrec", "Number", "Pos", "Recl", "Size"], - "Fortran::parser::InquireSpec::LogVar::Kind": ["Exist", "Named", "Opened", "Pending"], - "Fortran::parser::IntentSpec::Intent": ["In", "Out", "InOut"], - "Fortran::parser::IoControlSpec::CharExpr::Kind": ["Advance", "Blank", "Decimal", "Delim", "Pad", "Round", "Sign"], - "Fortran::parser::ReductionOperator::Operator": ["Plus", "Multiply", "Max", "Min", "Iand", "Ior", "Ieor", "And", "Or", "Eqv", "Neqv"], - "Fortran::parser::OmpAccessGroup::Value": ["Cgroup"], - "Fortran::parser::OmpAdjustArgsClause::OmpAdjustOp::Value": ["Nothing", "Need_Device_Ptr"], - "Fortran::parser::OmpAlwaysModifier::Value": ["Always"], - "Fortran::parser::OmpAtClause::ActionTime": ["Compilation", "Execution"], - "Fortran::parser::OmpAttachModifier::Value": ["Always", "Never", "Auto"], - "Fortran::parser::OmpAutomapModifier::Value": ["Automap"], - "Fortran::parser::OmpBindClause::Binding": ["Parallel", "Teams", "Thread"], - "Fortran::parser::OmpChunkModifier::Value": ["Simd"], - "Fortran::parser::OmpCloseModifier::Value": ["Close"], - "Fortran::parser::OmpDefaultClause::DataSharingAttribute": ["Private", "Firstprivate", "Shared", "None"], - "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": ["Alloc", "To", "From", "Tofrom", "Firstprivate", "None", "Default", "Present"], - "Fortran::parser::OmpDeleteModifier::Value": ["Delete"], - "Fortran::parser::OmpDependenceType::Value": ["Sink", "Source"], - "Fortran::parser::OmpDeviceModifier::Value": ["Ancestor", "Device_Num"], - "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": ["Any", "Host", "Nohost"], - "Fortran::parser::OmpDirectiveSpecification::Flag": ["DeprecatedSyntax", "CrossesLabelDo"], - "Fortran::parser::OmpExpectation::Value": ["Present"], - "Fortran::parser::OmpInteropType::Value": ["Target", "Targetsync"], - "Fortran::parser::OmpLastprivateModifier::Value": ["Conditional"], - "Fortran::parser::OmpLinearModifier::Value": ["Ref", "Uval", "Val"], - "Fortran::parser::OmpMapType::Value": ["Alloc", "Delete", "From", "Release", "Storage", "To", "Tofrom"], - "Fortran::parser::OmpMapTypeModifier::Value": ["Always", "Close", "Present", "Ompx_Hold"], - "Fortran::parser::OmpObject::Invalid::Kind": ["BlankCommonBlock"], - "Fortran::parser::OmpOrderClause::Ordering": ["Concurrent"], - "Fortran::parser::OmpOrderingModifier::Value": ["Monotonic", "Nonmonotonic", "Simd"], - "Fortran::parser::OmpOrderModifier::Value": ["Reproducible", "Unconstrained"], - "Fortran::parser::OmpPrescriptiveness::Value": ["Strict"], - "Fortran::parser::OmpPresentModifier::Value": ["Present"], - "Fortran::parser::OmpProcBindClause::AffinityPolicy": ["Close", "Master", "Spread", "Primary"], - "Fortran::parser::OmpReductionModifier::Value": ["Default", "Inscan", "Task"], - "Fortran::parser::OmpRefModifier::Value": ["Ref_Ptee", "Ref_Ptr", "Ref_Ptr_Ptee"], - "Fortran::parser::OmpScheduleClause::Kind": ["Static", "Dynamic", "Guided", "Auto", "Runtime"], - "Fortran::parser::OmpSelfModifier::Value": ["Self"], - "Fortran::parser::OmpSeverityClause::SevLevel": ["Fatal", "Warning"], - "Fortran::parser::OmpThreadsetClause::ThreadsetPolicy": ["Omp_Pool", "Omp_Team"], - "Fortran::parser::OmpTraitSelectorName::Value": ["Arch", "Atomic_Default_Mem_Order", "Condition", "Device_Num", "Extension", "Isa", "Kind", "Requires", "Simd", "Uid", "Vendor"], - "Fortran::parser::OmpTraitSetSelectorName::Value": ["Construct", "Device", "Implementation", "Target_Device", "User"], - "Fortran::parser::OmpVariableCategory::Value": ["Aggregate", "All", "Allocatable", "Pointer", "Scalar"], - "Fortran::parser::OmpxHoldModifier::Value": ["Ompx_Hold"], - "Fortran::parser::ProcedureStmt::Kind": ["ModuleProcedure", "Procedure"], - "Fortran::parser::SavedEntity::Kind": ["Entity", "Common"], - "Fortran::parser::StopStmt::Kind": ["Stop", "ErrorStop"], - "Fortran::parser::UseStmt::ModuleNature": ["Intrinsic", "Non_Intrinsic"] + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "Fortran::common::ImportKind": [ + "Default", + "Only", + "None", + "All" + ], + "Fortran::common::OmpDependenceKind": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::common::OmpMemoryOrderType": [ + "Acq_Rel", + "Acquire", + "Relaxed", + "Release", + "Seq_Cst" + ], + "Fortran::common::OpenACCDeviceType": [ + "Star", + "Default", + "Nvidia", + "Radeon", + "Host", + "Multicore", + "None" + ], + "Fortran::parser::AccDataModifier::Modifier": [ + "ReadOnly", + "Zero" + ], + "Fortran::parser::AccessSpec::Kind": [ + "Public", + "Private" + ], + "Fortran::parser::BindEntity::Kind": [ + "Object", + "Common" + ], + "Fortran::parser::CompilerDirective::VectorLength::Kind": [ + "Auto", + "Fixed", + "Scalable" + ], + "Fortran::parser::ConnectSpec::CharExpr::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Encoding", + "Form", + "Pad", + "Position", + "Round", + "Sign", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::DefinedOperator::IntrinsicOperator": [ + "Power", + "Multiply", + "Divide", + "Add", + "Subtract", + "Concat", + "LT", + "LE", + "EQ", + "NE", + "GE", + "GT", + "NOT", + "AND", + "OR", + "EQV", + "NEQV" + ], + "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec": [ + "External", + "Type" + ], + "Fortran::parser::InquireSpec::CharVar::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Direct", + "Encoding", + "Form", + "Formatted", + "Iomsg", + "Name", + "Pad", + "Position", + "Read", + "Readwrite", + "Round", + "Sequential", + "Sign", + "Stream", + "Status", + "Unformatted", + "Write", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::InquireSpec::IntVar::Kind": [ + "Iostat", + "Nextrec", + "Number", + "Pos", + "Recl", + "Size" + ], + "Fortran::parser::InquireSpec::LogVar::Kind": [ + "Exist", + "Named", + "Opened", + "Pending" + ], + "Fortran::parser::IntentSpec::Intent": [ + "In", + "Out", + "InOut" + ], + "Fortran::parser::IoControlSpec::CharExpr::Kind": [ + "Advance", + "Blank", + "Decimal", + "Delim", + "Pad", + "Round", + "Sign" + ], + "Fortran::parser::ReductionOperator::Operator": [ + "Plus", + "Multiply", + "Max", + "Min", + "Iand", + "Ior", + "Ieor", + "And", + "Or", + "Eqv", + "Neqv" + ], + "Fortran::parser::OmpAccessGroup::Value": [ + "Cgroup" + ], + "Fortran::parser::OmpAdjustArgsClause::OmpAdjustOp::Value": [ + "Nothing", + "Need_Device_Ptr" + ], + "Fortran::parser::OmpAlwaysModifier::Value": [ + "Always" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpAttachModifier::Value": [ + "Always", + "Never", + "Auto" + ], + "Fortran::parser::OmpAutomapModifier::Value": [ + "Automap" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpCloseModifier::Value": [ + "Close" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default", + "Present" + ], + "Fortran::parser::OmpDeleteModifier::Value": [ + "Delete" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpDirectiveSpecification::Flag": [ + "DeprecatedSyntax", + "CrossesLabelDo" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpInteropType::Value": [ + "Target", + "Targetsync" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "Storage", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpObject::Invalid::Kind": [ + "BlankCommonBlock" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpPresentModifier::Value": [ + "Present" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpRefModifier::Value": [ + "Ref_Ptee", + "Ref_Ptr", + "Ref_Ptr_Ptee" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpSelfModifier::Value": [ + "Self" + ], + "Fortran::parser::OmpSeverityClause::SevLevel": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpThreadsetClause::ThreadsetPolicy": [ + "Omp_Pool", + "Omp_Team" + ], + "Fortran::parser::OmpTraitSelectorName::Value": [ + "Arch", + "Atomic_Default_Mem_Order", + "Condition", + "Device_Num", + "Extension", + "Isa", + "Kind", + "Requires", + "Simd", + "Uid", + "Vendor" + ], + "Fortran::parser::OmpTraitSetSelectorName::Value": [ + "Construct", + "Device", + "Implementation", + "Target_Device", + "User" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpxHoldModifier::Value": [ + "Ompx_Hold" + ], + "Fortran::parser::ProcedureStmt::Kind": [ + "ModuleProcedure", + "Procedure" + ], + "Fortran::parser::SavedEntity::Kind": [ + "Entity", + "Common" + ], + "Fortran::parser::StopStmt::Kind": [ + "Stop", + "ErrorStop" + ], + "Fortran::parser::UseStmt::ModuleNature": [ + "Intrinsic", + "Non_Intrinsic" + ] } -} \ No newline at end of file +} diff --git a/FortranParser/resources-test/fortran/parser/stmt/stop.expected.f90 b/FortranParser/resources-test/fortran/parser/stmt/stop.expected.f90 index 8bee84e1..17d47877 100644 --- a/FortranParser/resources-test/fortran/parser/stmt/stop.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/stmt/stop.expected.f90 @@ -12,5 +12,5 @@ PROGRAM STOP ERROR STOP "Fatal error: Something went terribly wrong!" PRINT *, "Executing quiet STOP..." - STOP 55, QUIET = .true. + STOP 55, QUIET = .TRUE. END PROGRAM STOP \ No newline at end of file From b42c34e4b3459b04aecbefc99d8fc73fcae8ae82 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 22 Jul 2026 23:43:53 +0100 Subject: [PATCH 081/260] Fix processing of named constants and problems with NamedConstantDef --- .../ast/nodes/specification/NamedConstantDef.java | 9 +++++---- .../specs/fortran/parser/processors/ExprProcessors.java | 5 +++++ .../pt/up/fe/specs/fortran/parser/processors/Nodes.java | 1 + 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/NamedConstantDef.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/NamedConstantDef.java index eac0ffe7..5559b7f8 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/NamedConstantDef.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/NamedConstantDef.java @@ -4,6 +4,7 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.expr.DataRef; import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; +import pt.up.fe.specs.fortran.ast.nodes.expr.NamedLiteral; import java.util.Collection; @@ -12,16 +13,16 @@ public NamedConstantDef(DataStore data, Collection childr super(data, children); } - public DataRef getRef() { - return (DataRef) getChild(0); + public NamedLiteral getName() { + return getChild(NamedLiteral.class, 0); } public Expr getExpr() { - return (Expr) getChild(1); + return getChild(Expr.class, 1); } @Override public String getCode() { - return getRef().getCode() + " = " + getExpr().getCode(); + return getName().getCode() + " = " + getExpr().getCode(); } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java index ec2df0c9..53986f75 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java @@ -85,6 +85,11 @@ public void realLiteral(RealLiteral realLiteral) { realLiteral.set(RealLiteral.KIND_PARAM, kindParam); } + public void namedLiteral(NamedLiteral namedLiteral) { + var name = attributes().getString(namedLiteral, "source", FlangName.NAME); + namedLiteral.set(NamedLiteral.NAME, name); + } + public void parenExpr(ParenExpr parenExpr) { parenExpr.addChild(getChild(parenExpr, FlangName.EXPR)); } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index a4f2965b..67ca8f3a 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -126,6 +126,7 @@ public Nodes(FortranJsonResult data) { processors.put(IntLiteral.class, e::intLiteral); processors.put(LogicalLiteral.class, e::logicalLiteral); processors.put(RealLiteral.class, e::realLiteral); + processors.put(NamedLiteral.class, e::namedLiteral); processors.put(ParenExpr.class, e::parenExpr); processors.put(UnaryOperator.class, e::unaryOperator); processors.put(BinaryOperator.class, e::binaryOperator); From e4ed35b13000f8832fb510561eafd12a809b1cd2 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 22 Jul 2026 23:45:16 +0100 Subject: [PATCH 082/260] Fix expected code of Fujitsu 0000_0033 --- .../fortran/parser/fujitsu/0000/0000_0033.expected.f90 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.expected.f90 index 754c3776..9ea75fc7 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.expected.f90 @@ -1,6 +1,6 @@ COMMON /com/ ok LOGICAL(1) ok -ok = .true. +ok = .TRUE. CALL test1() CALL test2() @@ -20,7 +20,7 @@ SUBROUTINE test1() PARAMETER (m = 19, d = 3, ans = 1) IF (mod(m, d) /= ans) THEN - ok = .false. + ok = .FALSE. PRINT *, "TEST1-NG =>", mod(m, d) END IF END SUBROUTINE test1 @@ -32,7 +32,7 @@ SUBROUTINE test2() PARAMETER (m = 19, d = 3, ans = 1) IF (mod(m, d) /= ans) THEN - ok = .false. + ok = .FALSE. PRINT *, "TEST2-NG =>", mod(m, d) END IF END SUBROUTINE test2 @@ -44,7 +44,7 @@ SUBROUTINE test3() PARAMETER (m = 19, d = 3, ans = 1) IF (mod(m, d) /= ans) THEN - ok = .false. + ok = .FALSE. PRINT *, "TEST3-NG =>", mod(m, d) END IF END SUBROUTINE test3 \ No newline at end of file From 071fe61dbcbf368bd16b6ad91c50ca5cd5111fe4 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 22 Jul 2026 23:46:21 +0100 Subject: [PATCH 083/260] Regenerate dump --- .../parser/fujitsu/0001/0001_0032.json | 4798 ++++++++--------- 1 file changed, 2399 insertions(+), 2399 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0032.json b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0032.json index ea7fa4ca..e5e9bb5a 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0032.json +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0032.json @@ -2,5989 +2,5989 @@ "fileExtension": "f", "nodes": [ { - "id": "0x561b7de96f00-Program", + "id": "0x55fb7c1c6f00-Program", "ProgramUnit": [ - "0x561b7ded2e90-ProgramUnit", - "0x561b7ded3410-ProgramUnit", - "0x561b7ded22f0-ProgramUnit" + "0x55fb7c202e90-ProgramUnit", + "0x55fb7c203410-ProgramUnit", + "0x55fb7c2022f0-ProgramUnit" ] }, { - "id": "0x561b7ded2e90-ProgramUnit", + "id": "0x55fb7c202e90-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x561b7ded3fe0-MainProgram" + "MainProgram": "0x55fb7c203fe0-MainProgram" }, { - "id": "0x561b7ded3fe0-MainProgram", - "SpecificationPart": "0x561b7ded4080-SpecificationPart", - "ExecutionPart": "0x561b7ded4068-ExecutionPart", - "Statement": "0x561b7ded3fe0-Statement" + "id": "0x55fb7c203fe0-MainProgram", + "SpecificationPart": "0x55fb7c204080-SpecificationPart", + "ExecutionPart": "0x55fb7c204068-ExecutionPart", + "Statement": "0x55fb7c203fe0-Statement" }, { - "id": "0x561b7ded4080-SpecificationPart", - "ImplicitPart": "0x561b7ded4098-ImplicitPart", + "id": "0x55fb7c204080-SpecificationPart", + "ImplicitPart": "0x55fb7c204098-ImplicitPart", "DeclarationConstruct": [ - "0x561b7dea3da0-DeclarationConstruct", - "0x561b7dea4110-DeclarationConstruct", - "0x561b7dec4050-DeclarationConstruct", - "0x561b7dec5140-DeclarationConstruct", - "0x561b7dec54e0-DeclarationConstruct", - "0x561b7dec5480-DeclarationConstruct" + "0x55fb7c1d3da0-DeclarationConstruct", + "0x55fb7c1d4110-DeclarationConstruct", + "0x55fb7c1f4050-DeclarationConstruct", + "0x55fb7c1f5140-DeclarationConstruct", + "0x55fb7c1f54e0-DeclarationConstruct", + "0x55fb7c1f5480-DeclarationConstruct" ] }, { - "id": "0x561b7ded4098-ImplicitPart" + "id": "0x55fb7c204098-ImplicitPart" }, { - "id": "0x561b7dea3da0-DeclarationConstruct", + "id": "0x55fb7c1d3da0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x561b7dea3da0-SpecificationConstruct" + "SpecificationConstruct": "0x55fb7c1d3da0-SpecificationConstruct" }, { - "id": "0x561b7dea3da0-SpecificationConstruct", + "id": "0x55fb7c1d3da0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x561b7dea3da0-Statement" + "Statement": "0x55fb7c1d3da0-Statement" }, { - "id": "0x561b7dea3da0-Statement", - "statement": "0x561b7ded3e50-TypeDeclarationStmt", + "id": "0x55fb7c1d3da0-Statement", + "statement": "0x55fb7c203e50-TypeDeclarationStmt", "source": "integer*4error,i" }, { - "id": "0x561b7ded3e50-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x561b7ded3e80-DeclarationTypeSpec", + "id": "0x55fb7c203e50-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55fb7c203e80-DeclarationTypeSpec", "EntityDecl": [ - "0x561b7de4c1e0-EntityDecl", - "0x561b7dec3680-EntityDecl" + "0x55fb7c17c1e0-EntityDecl", + "0x55fb7c1f3680-EntityDecl" ] }, { - "id": "0x561b7ded3e80-DeclarationTypeSpec", + "id": "0x55fb7c203e80-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x561b7ded3e80-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55fb7c203e80-IntrinsicTypeSpec" }, { - "id": "0x561b7ded3e80-IntrinsicTypeSpec", + "id": "0x55fb7c203e80-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x561b7ded3e80-IntegerTypeSpec" + "IntegerTypeSpec": "0x55fb7c203e80-IntegerTypeSpec" }, { - "id": "0x561b7ded3e80-IntegerTypeSpec", - "KindSelector": "0x561b7ded3e80-KindSelector" + "id": "0x55fb7c203e80-IntegerTypeSpec", + "KindSelector": "0x55fb7c203e80-KindSelector" }, { - "id": "0x561b7ded3e80-KindSelector", + "id": "0x55fb7c203e80-KindSelector", "variantKey": "StarSize", - "StarSize": "0x561b7ded3e80-StarSize" + "StarSize": "0x55fb7c203e80-StarSize" }, { - "id": "0x561b7ded3e80-StarSize", + "id": "0x55fb7c203e80-StarSize", "uint64_t": "4" }, { - "id": "0x561b7de4c1e0-EntityDecl", - "Name": "0x561b7de4c298-Name" + "id": "0x55fb7c17c1e0-EntityDecl", + "Name": "0x55fb7c17c298-Name" }, { - "id": "0x561b7de4c298-Name", + "id": "0x55fb7c17c298-Name", "source": "error" }, { - "id": "0x561b7dec3680-EntityDecl", - "Name": "0x561b7dec3738-Name" + "id": "0x55fb7c1f3680-EntityDecl", + "Name": "0x55fb7c1f3738-Name" }, { - "id": "0x561b7dec3738-Name", + "id": "0x55fb7c1f3738-Name", "source": "i" }, { - "id": "0x561b7dea4110-DeclarationConstruct", + "id": "0x55fb7c1d4110-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x561b7dea4110-SpecificationConstruct" + "SpecificationConstruct": "0x55fb7c1d4110-SpecificationConstruct" }, { - "id": "0x561b7dea4110-SpecificationConstruct", + "id": "0x55fb7c1d4110-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x561b7dea4110-Statement" + "Statement": "0x55fb7c1d4110-Statement" }, { - "id": "0x561b7dea4110-Statement", - "statement": "0x561b7dec43b0-TypeDeclarationStmt", + "id": "0x55fb7c1d4110-Statement", + "statement": "0x55fb7c1f43b0-TypeDeclarationStmt", "source": "complex*8s_a,s_b,v_a,v_b,s_dvt" }, { - "id": "0x561b7dec43b0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x561b7dec43e0-DeclarationTypeSpec", + "id": "0x55fb7c1f43b0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55fb7c1f43e0-DeclarationTypeSpec", "EntityDecl": [ - "0x561b7dec2f40-EntityDecl", - "0x561b7dec3810-EntityDecl", - "0x561b7decd3b0-EntityDecl", - "0x561b7decd4a0-EntityDecl", - "0x561b7decd590-EntityDecl" + "0x55fb7c1f2f40-EntityDecl", + "0x55fb7c1f3810-EntityDecl", + "0x55fb7c1fd3b0-EntityDecl", + "0x55fb7c1fd4a0-EntityDecl", + "0x55fb7c1fd590-EntityDecl" ] }, { - "id": "0x561b7dec43e0-DeclarationTypeSpec", + "id": "0x55fb7c1f43e0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x561b7dec43e0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55fb7c1f43e0-IntrinsicTypeSpec" }, { - "id": "0x561b7dec43e0-IntrinsicTypeSpec", + "id": "0x55fb7c1f43e0-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x561b7dec43e0-Complex" + "Complex": "0x55fb7c1f43e0-Complex" }, { - "id": "0x561b7dec43e0-Complex", - "KindSelector": "0x561b7dec43e0-KindSelector" + "id": "0x55fb7c1f43e0-Complex", + "KindSelector": "0x55fb7c1f43e0-KindSelector" }, { - "id": "0x561b7dec43e0-KindSelector", + "id": "0x55fb7c1f43e0-KindSelector", "variantKey": "StarSize", - "StarSize": "0x561b7dec43e0-StarSize" + "StarSize": "0x55fb7c1f43e0-StarSize" }, { - "id": "0x561b7dec43e0-StarSize", + "id": "0x55fb7c1f43e0-StarSize", "uint64_t": "8" }, { - "id": "0x561b7dec2f40-EntityDecl", - "Name": "0x561b7dec2ff8-Name" + "id": "0x55fb7c1f2f40-EntityDecl", + "Name": "0x55fb7c1f2ff8-Name" }, { - "id": "0x561b7dec2ff8-Name", + "id": "0x55fb7c1f2ff8-Name", "source": "s_a" }, { - "id": "0x561b7dec3810-EntityDecl", - "Name": "0x561b7dec38c8-Name" + "id": "0x55fb7c1f3810-EntityDecl", + "Name": "0x55fb7c1f38c8-Name" }, { - "id": "0x561b7dec38c8-Name", + "id": "0x55fb7c1f38c8-Name", "source": "s_b" }, { - "id": "0x561b7decd3b0-EntityDecl", - "Name": "0x561b7decd468-Name" + "id": "0x55fb7c1fd3b0-EntityDecl", + "Name": "0x55fb7c1fd468-Name" }, { - "id": "0x561b7decd468-Name", + "id": "0x55fb7c1fd468-Name", "source": "v_a" }, { - "id": "0x561b7decd4a0-EntityDecl", - "Name": "0x561b7decd558-Name" + "id": "0x55fb7c1fd4a0-EntityDecl", + "Name": "0x55fb7c1fd558-Name" }, { - "id": "0x561b7decd558-Name", + "id": "0x55fb7c1fd558-Name", "source": "v_b" }, { - "id": "0x561b7decd590-EntityDecl", - "Name": "0x561b7decd648-Name" + "id": "0x55fb7c1fd590-EntityDecl", + "Name": "0x55fb7c1fd648-Name" }, { - "id": "0x561b7decd648-Name", + "id": "0x55fb7c1fd648-Name", "source": "s_dvt" }, { - "id": "0x561b7dec4050-DeclarationConstruct", + "id": "0x55fb7c1f4050-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x561b7dec4050-SpecificationConstruct" + "SpecificationConstruct": "0x55fb7c1f4050-SpecificationConstruct" }, { - "id": "0x561b7dec4050-SpecificationConstruct", + "id": "0x55fb7c1f4050-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x561b7dec4050-Statement" + "Statement": "0x55fb7c1f4050-Statement" }, { - "id": "0x561b7dec4050-Statement", - "statement": "0x561b7dec4060-OtherSpecificationStmt", + "id": "0x55fb7c1f4050-Statement", + "statement": "0x55fb7c1f4060-OtherSpecificationStmt", "source": "dimensions_a(10),s_b(10),v_a(10),v_b(10),s_dvt(10)" }, { - "id": "0x561b7dec4060-OtherSpecificationStmt", + "id": "0x55fb7c1f4060-OtherSpecificationStmt", "variantKey": "DimensionStmt", - "DimensionStmt": "0x561b7ded61c0-DimensionStmt" + "DimensionStmt": "0x55fb7c2061c0-DimensionStmt" }, { - "id": "0x561b7ded61c0-DimensionStmt", + "id": "0x55fb7c2061c0-DimensionStmt", "Declaration": [ - "0x561b7dec3de0-Declaration", - "0x561b7dec3200-Declaration", - "0x561b7dec45a0-Declaration", - "0x561b7dec4900-Declaration", - "0x561b7dec3d80-Declaration" + "0x55fb7c1f3de0-Declaration", + "0x55fb7c1f3200-Declaration", + "0x55fb7c1f45a0-Declaration", + "0x55fb7c1f4900-Declaration", + "0x55fb7c1f3d80-Declaration" ] }, { - "id": "0x561b7dec3de0-Declaration", - "Name": "0x561b7dec3e10-Name", - "ArraySpec": "0x561b7dec3de0-ArraySpec" + "id": "0x55fb7c1f3de0-Declaration", + "Name": "0x55fb7c1f3e10-Name", + "ArraySpec": "0x55fb7c1f3de0-ArraySpec" }, { - "id": "0x561b7dec3e10-Name", + "id": "0x55fb7c1f3e10-Name", "source": "s_a" }, { - "id": "0x561b7dec3de0-ArraySpec", + "id": "0x55fb7c1f3de0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x561b7ded60b0-ExplicitShapeSpec" + "0x55fb7c2060b0-ExplicitShapeSpec" ] }, { - "id": "0x561b7ded60b0-ExplicitShapeSpec", - "upper_bound": "0x561b7ded60b0-SpecificationExpr" + "id": "0x55fb7c2060b0-ExplicitShapeSpec", + "upper_bound": "0x55fb7c2060b0-SpecificationExpr" }, { - "id": "0x561b7ded60b0-SpecificationExpr", - "Expr": "0x561b7de36790-Expr" + "id": "0x55fb7c2060b0-SpecificationExpr", + "Expr": "0x55fb7c166790-Expr" }, { - "id": "0x561b7de36790-Expr", + "id": "0x55fb7c166790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7de367b0-LiteralConstant" + "LiteralConstant": "0x55fb7c1667b0-LiteralConstant" }, { - "id": "0x561b7de367b0-LiteralConstant", + "id": "0x55fb7c1667b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7de367b0-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1667b0-IntLiteralConstant" }, { - "id": "0x561b7de367b0-IntLiteralConstant", + "id": "0x55fb7c1667b0-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x561b7dec3200-Declaration", - "Name": "0x561b7dec3230-Name", - "ArraySpec": "0x561b7dec3200-ArraySpec" + "id": "0x55fb7c1f3200-Declaration", + "Name": "0x55fb7c1f3230-Name", + "ArraySpec": "0x55fb7c1f3200-ArraySpec" }, { - "id": "0x561b7dec3230-Name", + "id": "0x55fb7c1f3230-Name", "source": "s_b" }, { - "id": "0x561b7dec3200-ArraySpec", + "id": "0x55fb7c1f3200-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x561b7ded60e0-ExplicitShapeSpec" + "0x55fb7c2060e0-ExplicitShapeSpec" ] }, { - "id": "0x561b7ded60e0-ExplicitShapeSpec", - "upper_bound": "0x561b7ded60e0-SpecificationExpr" + "id": "0x55fb7c2060e0-ExplicitShapeSpec", + "upper_bound": "0x55fb7c2060e0-SpecificationExpr" }, { - "id": "0x561b7ded60e0-SpecificationExpr", - "Expr": "0x561b7dec3110-Expr" + "id": "0x55fb7c2060e0-SpecificationExpr", + "Expr": "0x55fb7c1f3110-Expr" }, { - "id": "0x561b7dec3110-Expr", + "id": "0x55fb7c1f3110-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dec3130-LiteralConstant" + "LiteralConstant": "0x55fb7c1f3130-LiteralConstant" }, { - "id": "0x561b7dec3130-LiteralConstant", + "id": "0x55fb7c1f3130-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dec3130-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1f3130-IntLiteralConstant" }, { - "id": "0x561b7dec3130-IntLiteralConstant", + "id": "0x55fb7c1f3130-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x561b7dec45a0-Declaration", - "Name": "0x561b7dec45d0-Name", - "ArraySpec": "0x561b7dec45a0-ArraySpec" + "id": "0x55fb7c1f45a0-Declaration", + "Name": "0x55fb7c1f45d0-Name", + "ArraySpec": "0x55fb7c1f45a0-ArraySpec" }, { - "id": "0x561b7dec45d0-Name", + "id": "0x55fb7c1f45d0-Name", "source": "v_a" }, { - "id": "0x561b7dec45a0-ArraySpec", + "id": "0x55fb7c1f45a0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x561b7ded6110-ExplicitShapeSpec" + "0x55fb7c206110-ExplicitShapeSpec" ] }, { - "id": "0x561b7ded6110-ExplicitShapeSpec", - "upper_bound": "0x561b7ded6110-SpecificationExpr" + "id": "0x55fb7c206110-ExplicitShapeSpec", + "upper_bound": "0x55fb7c206110-SpecificationExpr" }, { - "id": "0x561b7ded6110-SpecificationExpr", - "Expr": "0x561b7dec44b0-Expr" + "id": "0x55fb7c206110-SpecificationExpr", + "Expr": "0x55fb7c1f44b0-Expr" }, { - "id": "0x561b7dec44b0-Expr", + "id": "0x55fb7c1f44b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dec44d0-LiteralConstant" + "LiteralConstant": "0x55fb7c1f44d0-LiteralConstant" }, { - "id": "0x561b7dec44d0-LiteralConstant", + "id": "0x55fb7c1f44d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dec44d0-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1f44d0-IntLiteralConstant" }, { - "id": "0x561b7dec44d0-IntLiteralConstant", + "id": "0x55fb7c1f44d0-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x561b7dec4900-Declaration", - "Name": "0x561b7dec4930-Name", - "ArraySpec": "0x561b7dec4900-ArraySpec" + "id": "0x55fb7c1f4900-Declaration", + "Name": "0x55fb7c1f4930-Name", + "ArraySpec": "0x55fb7c1f4900-ArraySpec" }, { - "id": "0x561b7dec4930-Name", + "id": "0x55fb7c1f4930-Name", "source": "v_b" }, { - "id": "0x561b7dec4900-ArraySpec", + "id": "0x55fb7c1f4900-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x561b7ded6160-ExplicitShapeSpec" + "0x55fb7c206160-ExplicitShapeSpec" ] }, { - "id": "0x561b7ded6160-ExplicitShapeSpec", - "upper_bound": "0x561b7ded6160-SpecificationExpr" + "id": "0x55fb7c206160-ExplicitShapeSpec", + "upper_bound": "0x55fb7c206160-SpecificationExpr" }, { - "id": "0x561b7ded6160-SpecificationExpr", - "Expr": "0x561b7dec4810-Expr" + "id": "0x55fb7c206160-SpecificationExpr", + "Expr": "0x55fb7c1f4810-Expr" }, { - "id": "0x561b7dec4810-Expr", + "id": "0x55fb7c1f4810-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dec4830-LiteralConstant" + "LiteralConstant": "0x55fb7c1f4830-LiteralConstant" }, { - "id": "0x561b7dec4830-LiteralConstant", + "id": "0x55fb7c1f4830-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dec4830-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1f4830-IntLiteralConstant" }, { - "id": "0x561b7dec4830-IntLiteralConstant", + "id": "0x55fb7c1f4830-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x561b7dec3d80-Declaration", - "Name": "0x561b7dec3db0-Name", - "ArraySpec": "0x561b7dec3d80-ArraySpec" + "id": "0x55fb7c1f3d80-Declaration", + "Name": "0x55fb7c1f3db0-Name", + "ArraySpec": "0x55fb7c1f3d80-ArraySpec" }, { - "id": "0x561b7dec3db0-Name", + "id": "0x55fb7c1f3db0-Name", "source": "s_dvt" }, { - "id": "0x561b7dec3d80-ArraySpec", + "id": "0x55fb7c1f3d80-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x561b7ded6270-ExplicitShapeSpec" + "0x55fb7c206270-ExplicitShapeSpec" ] }, { - "id": "0x561b7ded6270-ExplicitShapeSpec", - "upper_bound": "0x561b7ded6270-SpecificationExpr" + "id": "0x55fb7c206270-ExplicitShapeSpec", + "upper_bound": "0x55fb7c206270-SpecificationExpr" }, { - "id": "0x561b7ded6270-SpecificationExpr", - "Expr": "0x561b7dec3c90-Expr" + "id": "0x55fb7c206270-SpecificationExpr", + "Expr": "0x55fb7c1f3c90-Expr" }, { - "id": "0x561b7dec3c90-Expr", + "id": "0x55fb7c1f3c90-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dec3cb0-LiteralConstant" + "LiteralConstant": "0x55fb7c1f3cb0-LiteralConstant" }, { - "id": "0x561b7dec3cb0-LiteralConstant", + "id": "0x55fb7c1f3cb0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dec3cb0-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1f3cb0-IntLiteralConstant" }, { - "id": "0x561b7dec3cb0-IntLiteralConstant", + "id": "0x55fb7c1f3cb0-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x561b7dec5140-DeclarationConstruct", + "id": "0x55fb7c1f5140-DeclarationConstruct", "variantKey": "Statement", - "Statement": "0x561b7dec5140-Statement" + "Statement": "0x55fb7c1f5140-Statement" }, { - "id": "0x561b7dec5140-Statement", - "statement": "0x561b7ded6130-DataStmt", + "id": "0x55fb7c1f5140-Statement", + "statement": "0x55fb7c206130-DataStmt", "source": "datas_a,s_b/10*(1.0,2.0),10*(2.0,1.0)/" }, { - "id": "0x561b7ded6130-DataStmt", + "id": "0x55fb7c206130-DataStmt", "DataStmtSet": [ - "0x561b7decd1e0-DataStmtSet" + "0x55fb7c1fd1e0-DataStmtSet" ] }, { - "id": "0x561b7decd1e0-DataStmtSet", + "id": "0x55fb7c1fd1e0-DataStmtSet", "DataStmtObject": [ - "0x561b7dec3a30-DataStmtObject", - "0x561b7dec3450-DataStmtObject" + "0x55fb7c1f3a30-DataStmtObject", + "0x55fb7c1f3450-DataStmtObject" ], "DataStmtValue": [ - "0x561b7dec4d20-DataStmtValue", - "0x561b7dec4be0-DataStmtValue" + "0x55fb7c1f4d20-DataStmtValue", + "0x55fb7c1f4be0-DataStmtValue" ] }, { - "id": "0x561b7dec3a30-DataStmtObject", + "id": "0x55fb7c1f3a30-DataStmtObject", "variantKey": "Variable", - "Variable": "0x561b7ded6290-Variable" + "Variable": "0x55fb7c206290-Variable" }, { - "id": "0x561b7ded6290-Variable", + "id": "0x55fb7c206290-Variable", "variantKey": "Designator", - "Designator": "0x561b7dea4160-Designator" + "Designator": "0x55fb7c1d4160-Designator" }, { - "id": "0x561b7dea4160-Designator", + "id": "0x55fb7c1d4160-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dea4170-DataRef" + "DataRef": "0x55fb7c1d4170-DataRef" }, { - "id": "0x561b7dea4170-DataRef", + "id": "0x55fb7c1d4170-DataRef", "variantKey": "Name", - "Name": "0x561b7dea4170-Name" + "Name": "0x55fb7c1d4170-Name" }, { - "id": "0x561b7dea4170-Name", + "id": "0x55fb7c1d4170-Name", "source": "s_a" }, { - "id": "0x561b7dec3450-DataStmtObject", + "id": "0x55fb7c1f3450-DataStmtObject", "variantKey": "Variable", - "Variable": "0x561b7ded62e0-Variable" + "Variable": "0x55fb7c2062e0-Variable" }, { - "id": "0x561b7ded62e0-Variable", + "id": "0x55fb7c2062e0-Variable", "variantKey": "Designator", - "Designator": "0x561b7dec45f0-Designator" + "Designator": "0x55fb7c1f45f0-Designator" }, { - "id": "0x561b7dec45f0-Designator", + "id": "0x55fb7c1f45f0-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dec4600-DataRef" + "DataRef": "0x55fb7c1f4600-DataRef" }, { - "id": "0x561b7dec4600-DataRef", + "id": "0x55fb7c1f4600-DataRef", "variantKey": "Name", - "Name": "0x561b7dec4600-Name" + "Name": "0x55fb7c1f4600-Name" }, { - "id": "0x561b7dec4600-Name", + "id": "0x55fb7c1f4600-Name", "source": "s_b" }, { - "id": "0x561b7dec4d20-DataStmtValue", - "DataStmtRepeat": "0x561b7dec4df8-DataStmtRepeat", - "DataStmtConstant": "0x561b7dec4d28-DataStmtConstant" + "id": "0x55fb7c1f4d20-DataStmtValue", + "DataStmtRepeat": "0x55fb7c1f4df8-DataStmtRepeat", + "DataStmtConstant": "0x55fb7c1f4d28-DataStmtConstant" }, { - "id": "0x561b7dec4df8-DataStmtRepeat", + "id": "0x55fb7c1f4df8-DataStmtRepeat", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dec4df8-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1f4df8-IntLiteralConstant" }, { - "id": "0x561b7dec4df8-IntLiteralConstant", + "id": "0x55fb7c1f4df8-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x561b7dec4d28-DataStmtConstant", + "id": "0x55fb7c1f4d28-DataStmtConstant", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dec4d48-LiteralConstant" + "LiteralConstant": "0x55fb7c1f4d48-LiteralConstant" }, { - "id": "0x561b7dec4d48-LiteralConstant", + "id": "0x55fb7c1f4d48-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x561b7dec4d48-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x55fb7c1f4d48-ComplexLiteralConstant" }, { - "id": "0x561b7dec4d48-ComplexLiteralConstant", - "real": "0x561b7dec4d98-ComplexPart", - "imaginary": "0x561b7dec4d48-ComplexPart" + "id": "0x55fb7c1f4d48-ComplexLiteralConstant", + "real": "0x55fb7c1f4d98-ComplexPart", + "imaginary": "0x55fb7c1f4d48-ComplexPart" }, { - "id": "0x561b7dec4d98-ComplexPart", + "id": "0x55fb7c1f4d98-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x561b7dec4d98-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55fb7c1f4d98-SignedRealLiteralConstant" }, { - "id": "0x561b7dec4d98-SignedRealLiteralConstant", - "RealLiteralConstant": "0x561b7dec4d98-RealLiteralConstant" + "id": "0x55fb7c1f4d98-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55fb7c1f4d98-RealLiteralConstant" }, { - "id": "0x561b7dec4d98-RealLiteralConstant", - "real": "0x561b7dec4d98-Real" + "id": "0x55fb7c1f4d98-RealLiteralConstant", + "real": "0x55fb7c1f4d98-Real" }, { - "id": "0x561b7dec4d98-Real", + "id": "0x55fb7c1f4d98-Real", "source": "1.0" }, { - "id": "0x561b7dec4d48-ComplexPart", + "id": "0x55fb7c1f4d48-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x561b7dec4d48-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55fb7c1f4d48-SignedRealLiteralConstant" }, { - "id": "0x561b7dec4d48-SignedRealLiteralConstant", - "RealLiteralConstant": "0x561b7dec4d48-RealLiteralConstant" + "id": "0x55fb7c1f4d48-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55fb7c1f4d48-RealLiteralConstant" }, { - "id": "0x561b7dec4d48-RealLiteralConstant", - "real": "0x561b7dec4d48-Real" + "id": "0x55fb7c1f4d48-RealLiteralConstant", + "real": "0x55fb7c1f4d48-Real" }, { - "id": "0x561b7dec4d48-Real", + "id": "0x55fb7c1f4d48-Real", "source": "2.0" }, { - "id": "0x561b7dec4be0-DataStmtValue", - "DataStmtRepeat": "0x561b7dec4cb8-DataStmtRepeat", - "DataStmtConstant": "0x561b7dec4be8-DataStmtConstant" + "id": "0x55fb7c1f4be0-DataStmtValue", + "DataStmtRepeat": "0x55fb7c1f4cb8-DataStmtRepeat", + "DataStmtConstant": "0x55fb7c1f4be8-DataStmtConstant" }, { - "id": "0x561b7dec4cb8-DataStmtRepeat", + "id": "0x55fb7c1f4cb8-DataStmtRepeat", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dec4cb8-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1f4cb8-IntLiteralConstant" }, { - "id": "0x561b7dec4cb8-IntLiteralConstant", + "id": "0x55fb7c1f4cb8-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x561b7dec4be8-DataStmtConstant", + "id": "0x55fb7c1f4be8-DataStmtConstant", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dec4c08-LiteralConstant" + "LiteralConstant": "0x55fb7c1f4c08-LiteralConstant" }, { - "id": "0x561b7dec4c08-LiteralConstant", + "id": "0x55fb7c1f4c08-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x561b7dec4c08-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x55fb7c1f4c08-ComplexLiteralConstant" }, { - "id": "0x561b7dec4c08-ComplexLiteralConstant", - "real": "0x561b7dec4c58-ComplexPart", - "imaginary": "0x561b7dec4c08-ComplexPart" + "id": "0x55fb7c1f4c08-ComplexLiteralConstant", + "real": "0x55fb7c1f4c58-ComplexPart", + "imaginary": "0x55fb7c1f4c08-ComplexPart" }, { - "id": "0x561b7dec4c58-ComplexPart", + "id": "0x55fb7c1f4c58-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x561b7dec4c58-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55fb7c1f4c58-SignedRealLiteralConstant" }, { - "id": "0x561b7dec4c58-SignedRealLiteralConstant", - "RealLiteralConstant": "0x561b7dec4c58-RealLiteralConstant" + "id": "0x55fb7c1f4c58-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55fb7c1f4c58-RealLiteralConstant" }, { - "id": "0x561b7dec4c58-RealLiteralConstant", - "real": "0x561b7dec4c58-Real" + "id": "0x55fb7c1f4c58-RealLiteralConstant", + "real": "0x55fb7c1f4c58-Real" }, { - "id": "0x561b7dec4c58-Real", + "id": "0x55fb7c1f4c58-Real", "source": "2.0" }, { - "id": "0x561b7dec4c08-ComplexPart", + "id": "0x55fb7c1f4c08-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x561b7dec4c08-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55fb7c1f4c08-SignedRealLiteralConstant" }, { - "id": "0x561b7dec4c08-SignedRealLiteralConstant", - "RealLiteralConstant": "0x561b7dec4c08-RealLiteralConstant" + "id": "0x55fb7c1f4c08-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55fb7c1f4c08-RealLiteralConstant" }, { - "id": "0x561b7dec4c08-RealLiteralConstant", - "real": "0x561b7dec4c08-Real" + "id": "0x55fb7c1f4c08-RealLiteralConstant", + "real": "0x55fb7c1f4c08-Real" }, { - "id": "0x561b7dec4c08-Real", + "id": "0x55fb7c1f4c08-Real", "source": "1.0" }, { - "id": "0x561b7dec54e0-DeclarationConstruct", + "id": "0x55fb7c1f54e0-DeclarationConstruct", "variantKey": "Statement", - "Statement": "0x561b7dec54e0-Statement" + "Statement": "0x55fb7c1f54e0-Statement" }, { - "id": "0x561b7dec54e0-Statement", - "statement": "0x561b7ded6050-DataStmt", + "id": "0x55fb7c1f54e0-Statement", + "statement": "0x55fb7c206050-DataStmt", "source": "datav_a,v_b/10*(1.0,2.0),10*(2.0,1.0)/" }, { - "id": "0x561b7ded6050-DataStmt", + "id": "0x55fb7c206050-DataStmt", "DataStmtSet": [ - "0x561b7decdc00-DataStmtSet" + "0x55fb7c1fdc00-DataStmtSet" ] }, { - "id": "0x561b7decdc00-DataStmtSet", + "id": "0x55fb7c1fdc00-DataStmtSet", "DataStmtObject": [ - "0x561b7de4c0c0-DataStmtObject", - "0x561b7dec3ac0-DataStmtObject" + "0x55fb7c17c0c0-DataStmtObject", + "0x55fb7c1f3ac0-DataStmtObject" ], "DataStmtValue": [ - "0x561b7dec52e0-DataStmtValue", - "0x561b7dec51a0-DataStmtValue" + "0x55fb7c1f52e0-DataStmtValue", + "0x55fb7c1f51a0-DataStmtValue" ] }, { - "id": "0x561b7de4c0c0-DataStmtObject", + "id": "0x55fb7c17c0c0-DataStmtObject", "variantKey": "Variable", - "Variable": "0x561b7ded3590-Variable" + "Variable": "0x55fb7c203590-Variable" }, { - "id": "0x561b7ded3590-Variable", + "id": "0x55fb7c203590-Variable", "variantKey": "Designator", - "Designator": "0x561b7dec4a50-Designator" + "Designator": "0x55fb7c1f4a50-Designator" }, { - "id": "0x561b7dec4a50-Designator", + "id": "0x55fb7c1f4a50-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dec4a60-DataRef" + "DataRef": "0x55fb7c1f4a60-DataRef" }, { - "id": "0x561b7dec4a60-DataRef", + "id": "0x55fb7c1f4a60-DataRef", "variantKey": "Name", - "Name": "0x561b7dec4a60-Name" + "Name": "0x55fb7c1f4a60-Name" }, { - "id": "0x561b7dec4a60-Name", + "id": "0x55fb7c1f4a60-Name", "source": "v_a" }, { - "id": "0x561b7dec3ac0-DataStmtObject", + "id": "0x55fb7c1f3ac0-DataStmtObject", "variantKey": "Variable", - "Variable": "0x561b7ded2be0-Variable" + "Variable": "0x55fb7c202be0-Variable" }, { - "id": "0x561b7ded2be0-Variable", + "id": "0x55fb7c202be0-Variable", "variantKey": "Designator", - "Designator": "0x561b7dec4b70-Designator" + "Designator": "0x55fb7c1f4b70-Designator" }, { - "id": "0x561b7dec4b70-Designator", + "id": "0x55fb7c1f4b70-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dec4b80-DataRef" + "DataRef": "0x55fb7c1f4b80-DataRef" }, { - "id": "0x561b7dec4b80-DataRef", + "id": "0x55fb7c1f4b80-DataRef", "variantKey": "Name", - "Name": "0x561b7dec4b80-Name" + "Name": "0x55fb7c1f4b80-Name" }, { - "id": "0x561b7dec4b80-Name", + "id": "0x55fb7c1f4b80-Name", "source": "v_b" }, { - "id": "0x561b7dec52e0-DataStmtValue", - "DataStmtRepeat": "0x561b7dec53b8-DataStmtRepeat", - "DataStmtConstant": "0x561b7dec52e8-DataStmtConstant" + "id": "0x55fb7c1f52e0-DataStmtValue", + "DataStmtRepeat": "0x55fb7c1f53b8-DataStmtRepeat", + "DataStmtConstant": "0x55fb7c1f52e8-DataStmtConstant" }, { - "id": "0x561b7dec53b8-DataStmtRepeat", + "id": "0x55fb7c1f53b8-DataStmtRepeat", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dec53b8-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1f53b8-IntLiteralConstant" }, { - "id": "0x561b7dec53b8-IntLiteralConstant", + "id": "0x55fb7c1f53b8-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x561b7dec52e8-DataStmtConstant", + "id": "0x55fb7c1f52e8-DataStmtConstant", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dec5308-LiteralConstant" + "LiteralConstant": "0x55fb7c1f5308-LiteralConstant" }, { - "id": "0x561b7dec5308-LiteralConstant", + "id": "0x55fb7c1f5308-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x561b7dec5308-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x55fb7c1f5308-ComplexLiteralConstant" }, { - "id": "0x561b7dec5308-ComplexLiteralConstant", - "real": "0x561b7dec5358-ComplexPart", - "imaginary": "0x561b7dec5308-ComplexPart" + "id": "0x55fb7c1f5308-ComplexLiteralConstant", + "real": "0x55fb7c1f5358-ComplexPart", + "imaginary": "0x55fb7c1f5308-ComplexPart" }, { - "id": "0x561b7dec5358-ComplexPart", + "id": "0x55fb7c1f5358-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x561b7dec5358-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55fb7c1f5358-SignedRealLiteralConstant" }, { - "id": "0x561b7dec5358-SignedRealLiteralConstant", - "RealLiteralConstant": "0x561b7dec5358-RealLiteralConstant" + "id": "0x55fb7c1f5358-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55fb7c1f5358-RealLiteralConstant" }, { - "id": "0x561b7dec5358-RealLiteralConstant", - "real": "0x561b7dec5358-Real" + "id": "0x55fb7c1f5358-RealLiteralConstant", + "real": "0x55fb7c1f5358-Real" }, { - "id": "0x561b7dec5358-Real", + "id": "0x55fb7c1f5358-Real", "source": "1.0" }, { - "id": "0x561b7dec5308-ComplexPart", + "id": "0x55fb7c1f5308-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x561b7dec5308-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55fb7c1f5308-SignedRealLiteralConstant" }, { - "id": "0x561b7dec5308-SignedRealLiteralConstant", - "RealLiteralConstant": "0x561b7dec5308-RealLiteralConstant" + "id": "0x55fb7c1f5308-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55fb7c1f5308-RealLiteralConstant" }, { - "id": "0x561b7dec5308-RealLiteralConstant", - "real": "0x561b7dec5308-Real" + "id": "0x55fb7c1f5308-RealLiteralConstant", + "real": "0x55fb7c1f5308-Real" }, { - "id": "0x561b7dec5308-Real", + "id": "0x55fb7c1f5308-Real", "source": "2.0" }, { - "id": "0x561b7dec51a0-DataStmtValue", - "DataStmtRepeat": "0x561b7dec5278-DataStmtRepeat", - "DataStmtConstant": "0x561b7dec51a8-DataStmtConstant" + "id": "0x55fb7c1f51a0-DataStmtValue", + "DataStmtRepeat": "0x55fb7c1f5278-DataStmtRepeat", + "DataStmtConstant": "0x55fb7c1f51a8-DataStmtConstant" }, { - "id": "0x561b7dec5278-DataStmtRepeat", + "id": "0x55fb7c1f5278-DataStmtRepeat", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dec5278-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1f5278-IntLiteralConstant" }, { - "id": "0x561b7dec5278-IntLiteralConstant", + "id": "0x55fb7c1f5278-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x561b7dec51a8-DataStmtConstant", + "id": "0x55fb7c1f51a8-DataStmtConstant", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dec51c8-LiteralConstant" + "LiteralConstant": "0x55fb7c1f51c8-LiteralConstant" }, { - "id": "0x561b7dec51c8-LiteralConstant", + "id": "0x55fb7c1f51c8-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x561b7dec51c8-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x55fb7c1f51c8-ComplexLiteralConstant" }, { - "id": "0x561b7dec51c8-ComplexLiteralConstant", - "real": "0x561b7dec5218-ComplexPart", - "imaginary": "0x561b7dec51c8-ComplexPart" + "id": "0x55fb7c1f51c8-ComplexLiteralConstant", + "real": "0x55fb7c1f5218-ComplexPart", + "imaginary": "0x55fb7c1f51c8-ComplexPart" }, { - "id": "0x561b7dec5218-ComplexPart", + "id": "0x55fb7c1f5218-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x561b7dec5218-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55fb7c1f5218-SignedRealLiteralConstant" }, { - "id": "0x561b7dec5218-SignedRealLiteralConstant", - "RealLiteralConstant": "0x561b7dec5218-RealLiteralConstant" + "id": "0x55fb7c1f5218-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55fb7c1f5218-RealLiteralConstant" }, { - "id": "0x561b7dec5218-RealLiteralConstant", - "real": "0x561b7dec5218-Real" + "id": "0x55fb7c1f5218-RealLiteralConstant", + "real": "0x55fb7c1f5218-Real" }, { - "id": "0x561b7dec5218-Real", + "id": "0x55fb7c1f5218-Real", "source": "2.0" }, { - "id": "0x561b7dec51c8-ComplexPart", + "id": "0x55fb7c1f51c8-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x561b7dec51c8-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55fb7c1f51c8-SignedRealLiteralConstant" }, { - "id": "0x561b7dec51c8-SignedRealLiteralConstant", - "RealLiteralConstant": "0x561b7dec51c8-RealLiteralConstant" + "id": "0x55fb7c1f51c8-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55fb7c1f51c8-RealLiteralConstant" }, { - "id": "0x561b7dec51c8-RealLiteralConstant", - "real": "0x561b7dec51c8-Real" + "id": "0x55fb7c1f51c8-RealLiteralConstant", + "real": "0x55fb7c1f51c8-Real" }, { - "id": "0x561b7dec51c8-Real", + "id": "0x55fb7c1f51c8-Real", "source": "1.0" }, { - "id": "0x561b7dec5480-DeclarationConstruct", + "id": "0x55fb7c1f5480-DeclarationConstruct", "variantKey": "Statement", - "Statement": "0x561b7dec5480-Statement" + "Statement": "0x55fb7c1f5480-Statement" }, { - "id": "0x561b7dec5480-Statement", - "statement": "0x561b7ded6000-DataStmt", + "id": "0x55fb7c1f5480-Statement", + "statement": "0x55fb7c206000-DataStmt", "source": "dataerror/0/" }, { - "id": "0x561b7ded6000-DataStmt", + "id": "0x55fb7c206000-DataStmt", "DataStmtSet": [ - "0x561b7dedae40-DataStmtSet" + "0x55fb7c20ae40-DataStmtSet" ] }, { - "id": "0x561b7dedae40-DataStmtSet", + "id": "0x55fb7c20ae40-DataStmtSet", "DataStmtObject": [ - "0x561b7dec35f0-DataStmtObject" + "0x55fb7c1f35f0-DataStmtObject" ], "DataStmtValue": [ - "0x561b7dec5540-DataStmtValue" + "0x55fb7c1f5540-DataStmtValue" ] }, { - "id": "0x561b7dec35f0-DataStmtObject", + "id": "0x55fb7c1f35f0-DataStmtObject", "variantKey": "Variable", - "Variable": "0x561b7ded2dd0-Variable" + "Variable": "0x55fb7c202dd0-Variable" }, { - "id": "0x561b7ded2dd0-Variable", + "id": "0x55fb7c202dd0-Variable", "variantKey": "Designator", - "Designator": "0x561b7de954d0-Designator" + "Designator": "0x55fb7c1c54d0-Designator" }, { - "id": "0x561b7de954d0-Designator", + "id": "0x55fb7c1c54d0-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7de954e0-DataRef" + "DataRef": "0x55fb7c1c54e0-DataRef" }, { - "id": "0x561b7de954e0-DataRef", + "id": "0x55fb7c1c54e0-DataRef", "variantKey": "Name", - "Name": "0x561b7de954e0-Name" + "Name": "0x55fb7c1c54e0-Name" }, { - "id": "0x561b7de954e0-Name", + "id": "0x55fb7c1c54e0-Name", "source": "error" }, { - "id": "0x561b7dec5540-DataStmtValue", - "DataStmtConstant": "0x561b7dec5548-DataStmtConstant" + "id": "0x55fb7c1f5540-DataStmtValue", + "DataStmtConstant": "0x55fb7c1f5548-DataStmtConstant" }, { - "id": "0x561b7dec5548-DataStmtConstant", + "id": "0x55fb7c1f5548-DataStmtConstant", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dec5568-LiteralConstant" + "LiteralConstant": "0x55fb7c1f5568-LiteralConstant" }, { - "id": "0x561b7dec5568-LiteralConstant", + "id": "0x55fb7c1f5568-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dec5568-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1f5568-IntLiteralConstant" }, { - "id": "0x561b7dec5568-IntLiteralConstant", + "id": "0x55fb7c1f5568-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x561b7ded4068-ExecutionPart", + "id": "0x55fb7c204068-ExecutionPart", "ExecutionPartConstruct": [ - "0x561b7dec5420-ExecutionPartConstruct", - "0x561b7dec72b0-ExecutionPartConstruct", - "0x561b7dec7d30-ExecutionPartConstruct", - "0x561b7dec8e00-ExecutionPartConstruct", - "0x561b7deca550-ExecutionPartConstruct", - "0x561b7decaee0-ExecutionPartConstruct", - "0x561b7decbe40-ExecutionPartConstruct", - "0x561b7deccac0-ExecutionPartConstruct", - "0x561b7decc4a0-ExecutionPartConstruct", - "0x561b7dee0170-ExecutionPartConstruct", - "0x561b7dedf250-ExecutionPartConstruct" + "0x55fb7c1f5420-ExecutionPartConstruct", + "0x55fb7c1f72b0-ExecutionPartConstruct", + "0x55fb7c1f7d30-ExecutionPartConstruct", + "0x55fb7c1f8e00-ExecutionPartConstruct", + "0x55fb7c1fa550-ExecutionPartConstruct", + "0x55fb7c1faee0-ExecutionPartConstruct", + "0x55fb7c1fbe40-ExecutionPartConstruct", + "0x55fb7c1fcac0-ExecutionPartConstruct", + "0x55fb7c1fc4a0-ExecutionPartConstruct", + "0x55fb7c210170-ExecutionPartConstruct", + "0x55fb7c20f250-ExecutionPartConstruct" ] }, { - "id": "0x561b7ded4068-ExecutionPartConstruct" + "id": "0x55fb7c204068-ExecutionPartConstruct" }, { - "id": "0x561b7dec5420-ExecutionPartConstruct", + "id": "0x55fb7c1f5420-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dec5420-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c1f5420-ExecutableConstruct" }, { - "id": "0x561b7dec5420-ExecutableConstruct", + "id": "0x55fb7c1f5420-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x561b7dedbd40-DoConstruct" + "DoConstruct": "0x55fb7c20bd40-DoConstruct" }, { - "id": "0x561b7dedbd40-DoConstruct", - "Statement": "0x561b7dedbd98-Statement", + "id": "0x55fb7c20bd40-DoConstruct", + "Statement": "0x55fb7c20bd98-Statement", "ExecutionPartConstruct": [ - "0x561b7dec7380-ExecutionPartConstruct", - "0x561b7dec5d60-ExecutionPartConstruct" + "0x55fb7c1f7380-ExecutionPartConstruct", + "0x55fb7c1f5d60-ExecutionPartConstruct" ], - "Statement": "0x561b7dedbd40-Statement" + "Statement": "0x55fb7c20bd40-Statement" }, { - "id": "0x561b7dedbd98-Statement", - "statement": "0x561b7dedbda8-NonLabelDoStmt", + "id": "0x55fb7c20bd98-Statement", + "statement": "0x55fb7c20bda8-NonLabelDoStmt", "source": "do10i=1,5,1" }, { - "id": "0x561b7dedbda8-NonLabelDoStmt", - "LoopControl": "0x561b7dedbda8-LoopControl" + "id": "0x55fb7c20bda8-NonLabelDoStmt", + "LoopControl": "0x55fb7c20bda8-LoopControl" }, { - "id": "0x561b7dedbda8-LoopControl", + "id": "0x55fb7c20bda8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x561b7dedbda8-LoopBounds" + "LoopBounds": "0x55fb7c20bda8-LoopBounds" }, { - "id": "0x561b7dedbda8-LoopBounds", - "var": "0x561b7dedbda8-Name", - "lower": "0x561b7dec60e0-Expr", - "upper": "0x561b7dec61c0-Expr", - "step": "0x561b7dec5670-Expr" + "id": "0x55fb7c20bda8-LoopBounds", + "var": "0x55fb7c20bda8-Name", + "lower": "0x55fb7c1f60e0-Expr", + "upper": "0x55fb7c1f61c0-Expr", + "step": "0x55fb7c1f5670-Expr" }, { - "id": "0x561b7dedbda8-Name", + "id": "0x55fb7c20bda8-Name", "source": "i" }, { - "id": "0x561b7dec60e0-Expr", + "id": "0x55fb7c1f60e0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dec6100-LiteralConstant" + "LiteralConstant": "0x55fb7c1f6100-LiteralConstant" }, { - "id": "0x561b7dec6100-LiteralConstant", + "id": "0x55fb7c1f6100-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dec6100-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1f6100-IntLiteralConstant" }, { - "id": "0x561b7dec6100-IntLiteralConstant", + "id": "0x55fb7c1f6100-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x561b7dec61c0-Expr", + "id": "0x55fb7c1f61c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dec61e0-LiteralConstant" + "LiteralConstant": "0x55fb7c1f61e0-LiteralConstant" }, { - "id": "0x561b7dec61e0-LiteralConstant", + "id": "0x55fb7c1f61e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dec61e0-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1f61e0-IntLiteralConstant" }, { - "id": "0x561b7dec61e0-IntLiteralConstant", + "id": "0x55fb7c1f61e0-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x561b7dec5670-Expr", + "id": "0x55fb7c1f5670-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dec5690-LiteralConstant" + "LiteralConstant": "0x55fb7c1f5690-LiteralConstant" }, { - "id": "0x561b7dec5690-LiteralConstant", + "id": "0x55fb7c1f5690-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dec5690-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1f5690-IntLiteralConstant" }, { - "id": "0x561b7dec5690-IntLiteralConstant", + "id": "0x55fb7c1f5690-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x561b7dedbd80-ExecutionPartConstruct" + "id": "0x55fb7c20bd80-ExecutionPartConstruct" }, { - "id": "0x561b7dec7380-ExecutionPartConstruct", + "id": "0x55fb7c1f7380-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dec7380-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c1f7380-ExecutableConstruct" }, { - "id": "0x561b7dec7380-ExecutableConstruct", + "id": "0x55fb7c1f7380-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561b7dec7380-Statement" + "Statement": "0x55fb7c1f7380-Statement" }, { - "id": "0x561b7dec7380-Statement", - "statement": "0x561b7dec7390-ActionStmt", + "id": "0x55fb7c1f7380-Statement", + "statement": "0x55fb7c1f7390-ActionStmt", "source": "s_dvt(i)=s_a(i)+s_b(i)" }, { - "id": "0x561b7dec7390-ActionStmt", + "id": "0x55fb7c1f7390-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x561b7dec7190-AssignmentStmt" + "AssignmentStmt": "0x55fb7c1f7190-AssignmentStmt" }, { - "id": "0x561b7dec7190-AssignmentStmt", - "Variable": "0x561b7dec7270-Variable", - "Expr": "0x561b7dec71a0-Expr" + "id": "0x55fb7c1f7190-AssignmentStmt", + "Variable": "0x55fb7c1f7270-Variable", + "Expr": "0x55fb7c1f71a0-Expr" }, { - "id": "0x561b7dec7270-Variable", + "id": "0x55fb7c1f7270-Variable", "variantKey": "Designator", - "Designator": "0x561b7deed3f0-Designator" + "Designator": "0x55fb7c21d3f0-Designator" }, { - "id": "0x561b7deed3f0-Designator", + "id": "0x55fb7c21d3f0-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7deed400-DataRef" + "DataRef": "0x55fb7c21d400-DataRef" }, { - "id": "0x561b7deed400-DataRef", + "id": "0x55fb7c21d400-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x561b7dee6d30-ArrayElement" + "ArrayElement": "0x55fb7c216d30-ArrayElement" }, { - "id": "0x561b7dee6d30-ArrayElement", - "base": "0x561b7dee6d30-DataRef", + "id": "0x55fb7c216d30-ArrayElement", + "base": "0x55fb7c216d30-DataRef", "subscripts": [ - "0x561b7deea790-SectionSubscript" + "0x55fb7c21a790-SectionSubscript" ] }, { - "id": "0x561b7dee6d30-DataRef", + "id": "0x55fb7c216d30-DataRef", "variantKey": "Name", - "Name": "0x561b7dee6d30-Name" + "Name": "0x55fb7c216d30-Name" }, { - "id": "0x561b7dee6d30-Name", + "id": "0x55fb7c216d30-Name", "source": "s_dvt" }, { - "id": "0x561b7deea790-SectionSubscript", + "id": "0x55fb7c21a790-SectionSubscript", "variantKey": "Expr", - "Expr": "0x561b7df087b0-Expr" + "Expr": "0x55fb7c2387b0-Expr" }, { - "id": "0x561b7df087b0-Expr", + "id": "0x55fb7c2387b0-Expr", "variantKey": "Designator", - "Designator": "0x561b7dec4ab0-Designator" + "Designator": "0x55fb7c1f4ab0-Designator" }, { - "id": "0x561b7dec4ab0-Designator", + "id": "0x55fb7c1f4ab0-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dec4ac0-DataRef" + "DataRef": "0x55fb7c1f4ac0-DataRef" }, { - "id": "0x561b7dec4ac0-DataRef", + "id": "0x55fb7c1f4ac0-DataRef", "variantKey": "Name", - "Name": "0x561b7dec4ac0-Name" + "Name": "0x55fb7c1f4ac0-Name" }, { - "id": "0x561b7dec4ac0-Name", + "id": "0x55fb7c1f4ac0-Name", "source": "i" }, { - "id": "0x561b7dec71a0-Expr", + "id": "0x55fb7c1f71a0-Expr", "variantKey": "Add", - "Add": "0x561b7dec71c0-Add" + "Add": "0x55fb7c1f71c0-Add" }, { - "id": "0x561b7dec71c0-Add", - "left": "0x561b7dec7040-Expr", - "right": "0x561b7dec6f60-Expr", + "id": "0x55fb7c1f71c0-Add", + "left": "0x55fb7c1f7040-Expr", + "right": "0x55fb7c1f6f60-Expr", "op": "ADD" }, { - "id": "0x561b7dec7040-Expr", + "id": "0x55fb7c1f7040-Expr", "variantKey": "Designator", - "Designator": "0x561b7df0bc00-Designator" + "Designator": "0x55fb7c23bc00-Designator" }, { - "id": "0x561b7df0bc00-Designator", + "id": "0x55fb7c23bc00-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7df0bc10-DataRef" + "DataRef": "0x55fb7c23bc10-DataRef" }, { - "id": "0x561b7df0bc10-DataRef", + "id": "0x55fb7c23bc10-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x561b7dec2e00-ArrayElement" + "ArrayElement": "0x55fb7c1f2e00-ArrayElement" }, { - "id": "0x561b7dec2e00-ArrayElement", - "base": "0x561b7dec2e00-DataRef", + "id": "0x55fb7c1f2e00-ArrayElement", + "base": "0x55fb7c1f2e00-DataRef", "subscripts": [ - "0x561b7ded6700-SectionSubscript" + "0x55fb7c206700-SectionSubscript" ] }, { - "id": "0x561b7dec2e00-DataRef", + "id": "0x55fb7c1f2e00-DataRef", "variantKey": "Name", - "Name": "0x561b7dec2e00-Name" + "Name": "0x55fb7c1f2e00-Name" }, { - "id": "0x561b7dec2e00-Name", + "id": "0x55fb7c1f2e00-Name", "source": "s_a" }, { - "id": "0x561b7ded6700-SectionSubscript", + "id": "0x55fb7c206700-SectionSubscript", "variantKey": "Expr", - "Expr": "0x561b7dec5750-Expr" + "Expr": "0x55fb7c1f5750-Expr" }, { - "id": "0x561b7dec5750-Expr", + "id": "0x55fb7c1f5750-Expr", "variantKey": "Designator", - "Designator": "0x561b7dec4e50-Designator" + "Designator": "0x55fb7c1f4e50-Designator" }, { - "id": "0x561b7dec4e50-Designator", + "id": "0x55fb7c1f4e50-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dec4e60-DataRef" + "DataRef": "0x55fb7c1f4e60-DataRef" }, { - "id": "0x561b7dec4e60-DataRef", + "id": "0x55fb7c1f4e60-DataRef", "variantKey": "Name", - "Name": "0x561b7dec4e60-Name" + "Name": "0x55fb7c1f4e60-Name" }, { - "id": "0x561b7dec4e60-Name", + "id": "0x55fb7c1f4e60-Name", "source": "i" }, { - "id": "0x561b7dec6f60-Expr", + "id": "0x55fb7c1f6f60-Expr", "variantKey": "Designator", - "Designator": "0x561b7df0b260-Designator" + "Designator": "0x55fb7c23b260-Designator" }, { - "id": "0x561b7df0b260-Designator", + "id": "0x55fb7c23b260-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7df0b270-DataRef" + "DataRef": "0x55fb7c23b270-DataRef" }, { - "id": "0x561b7df0b270-DataRef", + "id": "0x55fb7c23b270-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x561b7df089b0-ArrayElement" + "ArrayElement": "0x55fb7c2389b0-ArrayElement" }, { - "id": "0x561b7df089b0-ArrayElement", - "base": "0x561b7df089b0-DataRef", + "id": "0x55fb7c2389b0-ArrayElement", + "base": "0x55fb7c2389b0-DataRef", "subscripts": [ - "0x561b7decf650-SectionSubscript" + "0x55fb7c1ff650-SectionSubscript" ] }, { - "id": "0x561b7df089b0-DataRef", + "id": "0x55fb7c2389b0-DataRef", "variantKey": "Name", - "Name": "0x561b7df089b0-Name" + "Name": "0x55fb7c2389b0-Name" }, { - "id": "0x561b7df089b0-Name", + "id": "0x55fb7c2389b0-Name", "source": "s_b" }, { - "id": "0x561b7decf650-SectionSubscript", + "id": "0x55fb7c1ff650-SectionSubscript", "variantKey": "Expr", - "Expr": "0x561b7dec5930-Expr" + "Expr": "0x55fb7c1f5930-Expr" }, { - "id": "0x561b7dec5930-Expr", + "id": "0x55fb7c1f5930-Expr", "variantKey": "Designator", - "Designator": "0x561b7dec6a10-Designator" + "Designator": "0x55fb7c1f6a10-Designator" }, { - "id": "0x561b7dec6a10-Designator", + "id": "0x55fb7c1f6a10-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dec6a20-DataRef" + "DataRef": "0x55fb7c1f6a20-DataRef" }, { - "id": "0x561b7dec6a20-DataRef", + "id": "0x55fb7c1f6a20-DataRef", "variantKey": "Name", - "Name": "0x561b7dec6a20-Name" + "Name": "0x55fb7c1f6a20-Name" }, { - "id": "0x561b7dec6a20-Name", + "id": "0x55fb7c1f6a20-Name", "source": "i" }, { - "id": "0x561b7dec5d60-ExecutionPartConstruct", + "id": "0x55fb7c1f5d60-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dec5d60-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c1f5d60-ExecutableConstruct" }, { - "id": "0x561b7dec5d60-ExecutableConstruct", + "id": "0x55fb7c1f5d60-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561b7dec5d60-Statement" + "Statement": "0x55fb7c1f5d60-Statement" }, { - "id": "0x561b7dec5d60-Statement", - "statement": "0x561b7dec5d70-ActionStmt", + "id": "0x55fb7c1f5d60-Statement", + "statement": "0x55fb7c1f5d70-ActionStmt", "label": "10", "source": "10continue" }, { - "id": "0x561b7dec5d70-ActionStmt", + "id": "0x55fb7c1f5d70-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x561b7dec5d70-ContinueStmt" + "ContinueStmt": "0x55fb7c1f5d70-ContinueStmt" }, { - "id": "0x561b7dec5d70-ContinueStmt" + "id": "0x55fb7c1f5d70-ContinueStmt" }, { - "id": "0x561b7dedbd40-Statement", - "statement": "0x561b7dedbd50-EndDoStmt", + "id": "0x55fb7c20bd40-Statement", + "statement": "0x55fb7c20bd50-EndDoStmt", "source": "" }, { - "id": "0x561b7dedbd50-EndDoStmt" + "id": "0x55fb7c20bd50-EndDoStmt" }, { - "id": "0x561b7dec72b0-ExecutionPartConstruct", + "id": "0x55fb7c1f72b0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dec72b0-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c1f72b0-ExecutableConstruct" }, { - "id": "0x561b7dec72b0-ExecutableConstruct", + "id": "0x55fb7c1f72b0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x561b7ded9360-DoConstruct" + "DoConstruct": "0x55fb7c209360-DoConstruct" }, { - "id": "0x561b7ded9360-DoConstruct", - "Statement": "0x561b7ded93b8-Statement", + "id": "0x55fb7c209360-DoConstruct", + "Statement": "0x55fb7c2093b8-Statement", "ExecutionPartConstruct": [ - "0x561b7dec7d90-ExecutionPartConstruct", - "0x561b7dec4210-ExecutionPartConstruct" + "0x55fb7c1f7d90-ExecutionPartConstruct", + "0x55fb7c1f4210-ExecutionPartConstruct" ], - "Statement": "0x561b7ded9360-Statement" + "Statement": "0x55fb7c209360-Statement" }, { - "id": "0x561b7ded93b8-Statement", - "statement": "0x561b7ded93c8-NonLabelDoStmt", + "id": "0x55fb7c2093b8-Statement", + "statement": "0x55fb7c2093c8-NonLabelDoStmt", "source": "do20i=1,5,1" }, { - "id": "0x561b7ded93c8-NonLabelDoStmt", - "LoopControl": "0x561b7ded93c8-LoopControl" + "id": "0x55fb7c2093c8-NonLabelDoStmt", + "LoopControl": "0x55fb7c2093c8-LoopControl" }, { - "id": "0x561b7ded93c8-LoopControl", + "id": "0x55fb7c2093c8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x561b7ded93c8-LoopBounds" + "LoopBounds": "0x55fb7c2093c8-LoopBounds" }, { - "id": "0x561b7ded93c8-LoopBounds", - "var": "0x561b7ded93c8-Name", - "lower": "0x561b7dec73d0-Expr", - "upper": "0x561b7dec74b0-Expr", - "step": "0x561b7dec7590-Expr" + "id": "0x55fb7c2093c8-LoopBounds", + "var": "0x55fb7c2093c8-Name", + "lower": "0x55fb7c1f73d0-Expr", + "upper": "0x55fb7c1f74b0-Expr", + "step": "0x55fb7c1f7590-Expr" }, { - "id": "0x561b7ded93c8-Name", + "id": "0x55fb7c2093c8-Name", "source": "i" }, { - "id": "0x561b7dec73d0-Expr", + "id": "0x55fb7c1f73d0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dec73f0-LiteralConstant" + "LiteralConstant": "0x55fb7c1f73f0-LiteralConstant" }, { - "id": "0x561b7dec73f0-LiteralConstant", + "id": "0x55fb7c1f73f0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dec73f0-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1f73f0-IntLiteralConstant" }, { - "id": "0x561b7dec73f0-IntLiteralConstant", + "id": "0x55fb7c1f73f0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x561b7dec74b0-Expr", + "id": "0x55fb7c1f74b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dec74d0-LiteralConstant" + "LiteralConstant": "0x55fb7c1f74d0-LiteralConstant" }, { - "id": "0x561b7dec74d0-LiteralConstant", + "id": "0x55fb7c1f74d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dec74d0-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1f74d0-IntLiteralConstant" }, { - "id": "0x561b7dec74d0-IntLiteralConstant", + "id": "0x55fb7c1f74d0-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x561b7dec7590-Expr", + "id": "0x55fb7c1f7590-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dec75b0-LiteralConstant" + "LiteralConstant": "0x55fb7c1f75b0-LiteralConstant" }, { - "id": "0x561b7dec75b0-LiteralConstant", + "id": "0x55fb7c1f75b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dec75b0-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1f75b0-IntLiteralConstant" }, { - "id": "0x561b7dec75b0-IntLiteralConstant", + "id": "0x55fb7c1f75b0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x561b7ded93a0-ExecutionPartConstruct" + "id": "0x55fb7c2093a0-ExecutionPartConstruct" }, { - "id": "0x561b7dec7d90-ExecutionPartConstruct", + "id": "0x55fb7c1f7d90-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dec7d90-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c1f7d90-ExecutableConstruct" }, { - "id": "0x561b7dec7d90-ExecutableConstruct", + "id": "0x55fb7c1f7d90-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561b7dec7d90-Statement" + "Statement": "0x55fb7c1f7d90-Statement" }, { - "id": "0x561b7dec7d90-Statement", - "statement": "0x561b7dec7da0-ActionStmt", + "id": "0x55fb7c1f7d90-Statement", + "statement": "0x55fb7c1f7da0-ActionStmt", "source": "s_a(i+1)=s_dvt(i)" }, { - "id": "0x561b7dec7da0-ActionStmt", + "id": "0x55fb7c1f7da0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x561b7dec7c10-AssignmentStmt" + "AssignmentStmt": "0x55fb7c1f7c10-AssignmentStmt" }, { - "id": "0x561b7dec7c10-AssignmentStmt", - "Variable": "0x561b7dec7cf0-Variable", - "Expr": "0x561b7dec7c20-Expr" + "id": "0x55fb7c1f7c10-AssignmentStmt", + "Variable": "0x55fb7c1f7cf0-Variable", + "Expr": "0x55fb7c1f7c20-Expr" }, { - "id": "0x561b7dec7cf0-Variable", + "id": "0x55fb7c1f7cf0-Variable", "variantKey": "Designator", - "Designator": "0x561b7def36b0-Designator" + "Designator": "0x55fb7c2236b0-Designator" }, { - "id": "0x561b7def36b0-Designator", + "id": "0x55fb7c2236b0-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7def36c0-DataRef" + "DataRef": "0x55fb7c2236c0-DataRef" }, { - "id": "0x561b7def36c0-DataRef", + "id": "0x55fb7c2236c0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x561b7ded4d70-ArrayElement" + "ArrayElement": "0x55fb7c204d70-ArrayElement" }, { - "id": "0x561b7ded4d70-ArrayElement", - "base": "0x561b7ded4d70-DataRef", + "id": "0x55fb7c204d70-ArrayElement", + "base": "0x55fb7c204d70-DataRef", "subscripts": [ - "0x561b7def3a80-SectionSubscript" + "0x55fb7c223a80-SectionSubscript" ] }, { - "id": "0x561b7ded4d70-DataRef", + "id": "0x55fb7c204d70-DataRef", "variantKey": "Name", - "Name": "0x561b7ded4d70-Name" + "Name": "0x55fb7c204d70-Name" }, { - "id": "0x561b7ded4d70-Name", + "id": "0x55fb7c204d70-Name", "source": "s_a" }, { - "id": "0x561b7def3a80-SectionSubscript", + "id": "0x55fb7c223a80-SectionSubscript", "variantKey": "Expr", - "Expr": "0x561b7dec6ae0-Expr" + "Expr": "0x55fb7c1f6ae0-Expr" }, { - "id": "0x561b7dec6ae0-Expr", + "id": "0x55fb7c1f6ae0-Expr", "variantKey": "Add", - "Add": "0x561b7dec6b00-Add" + "Add": "0x55fb7c1f6b00-Add" }, { - "id": "0x561b7dec6b00-Add", - "left": "0x561b7dec7830-Expr", - "right": "0x561b7dec7750-Expr", + "id": "0x55fb7c1f6b00-Add", + "left": "0x55fb7c1f7830-Expr", + "right": "0x55fb7c1f7750-Expr", "op": "ADD" }, { - "id": "0x561b7dec7830-Expr", + "id": "0x55fb7c1f7830-Expr", "variantKey": "Designator", - "Designator": "0x561b7dec3250-Designator" + "Designator": "0x55fb7c1f3250-Designator" }, { - "id": "0x561b7dec3250-Designator", + "id": "0x55fb7c1f3250-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dec3260-DataRef" + "DataRef": "0x55fb7c1f3260-DataRef" }, { - "id": "0x561b7dec3260-DataRef", + "id": "0x55fb7c1f3260-DataRef", "variantKey": "Name", - "Name": "0x561b7dec3260-Name" + "Name": "0x55fb7c1f3260-Name" }, { - "id": "0x561b7dec3260-Name", + "id": "0x55fb7c1f3260-Name", "source": "i" }, { - "id": "0x561b7dec7750-Expr", + "id": "0x55fb7c1f7750-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dec7770-LiteralConstant" + "LiteralConstant": "0x55fb7c1f7770-LiteralConstant" }, { - "id": "0x561b7dec7770-LiteralConstant", + "id": "0x55fb7c1f7770-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dec7770-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1f7770-IntLiteralConstant" }, { - "id": "0x561b7dec7770-IntLiteralConstant", + "id": "0x55fb7c1f7770-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x561b7dec7c20-Expr", + "id": "0x55fb7c1f7c20-Expr", "variantKey": "Designator", - "Designator": "0x561b7def1f40-Designator" + "Designator": "0x55fb7c221f40-Designator" }, { - "id": "0x561b7def1f40-Designator", + "id": "0x55fb7c221f40-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7def1f50-DataRef" + "DataRef": "0x55fb7c221f50-DataRef" }, { - "id": "0x561b7def1f50-DataRef", + "id": "0x55fb7c221f50-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x561b7dedd330-ArrayElement" + "ArrayElement": "0x55fb7c20d330-ArrayElement" }, { - "id": "0x561b7dedd330-ArrayElement", - "base": "0x561b7dedd330-DataRef", + "id": "0x55fb7c20d330-ArrayElement", + "base": "0x55fb7c20d330-DataRef", "subscripts": [ - "0x561b7ded6620-SectionSubscript" + "0x55fb7c206620-SectionSubscript" ] }, { - "id": "0x561b7dedd330-DataRef", + "id": "0x55fb7c20d330-DataRef", "variantKey": "Name", - "Name": "0x561b7dedd330-Name" + "Name": "0x55fb7c20d330-Name" }, { - "id": "0x561b7dedd330-Name", + "id": "0x55fb7c20d330-Name", "source": "s_dvt" }, { - "id": "0x561b7ded6620-SectionSubscript", + "id": "0x55fb7c206620-SectionSubscript", "variantKey": "Expr", - "Expr": "0x561b7dec7670-Expr" + "Expr": "0x55fb7c1f7670-Expr" }, { - "id": "0x561b7dec7670-Expr", + "id": "0x55fb7c1f7670-Expr", "variantKey": "Designator", - "Designator": "0x561b7dec65d0-Designator" + "Designator": "0x55fb7c1f65d0-Designator" }, { - "id": "0x561b7dec65d0-Designator", + "id": "0x55fb7c1f65d0-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dec65e0-DataRef" + "DataRef": "0x55fb7c1f65e0-DataRef" }, { - "id": "0x561b7dec65e0-DataRef", + "id": "0x55fb7c1f65e0-DataRef", "variantKey": "Name", - "Name": "0x561b7dec65e0-Name" + "Name": "0x55fb7c1f65e0-Name" }, { - "id": "0x561b7dec65e0-Name", + "id": "0x55fb7c1f65e0-Name", "source": "i" }, { - "id": "0x561b7dec4210-ExecutionPartConstruct", + "id": "0x55fb7c1f4210-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dec4210-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c1f4210-ExecutableConstruct" }, { - "id": "0x561b7dec4210-ExecutableConstruct", + "id": "0x55fb7c1f4210-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561b7dec4210-Statement" + "Statement": "0x55fb7c1f4210-Statement" }, { - "id": "0x561b7dec4210-Statement", - "statement": "0x561b7dec4220-ActionStmt", + "id": "0x55fb7c1f4210-Statement", + "statement": "0x55fb7c1f4220-ActionStmt", "label": "20", "source": "20continue" }, { - "id": "0x561b7dec4220-ActionStmt", + "id": "0x55fb7c1f4220-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x561b7dec4220-ContinueStmt" + "ContinueStmt": "0x55fb7c1f4220-ContinueStmt" }, { - "id": "0x561b7dec4220-ContinueStmt" + "id": "0x55fb7c1f4220-ContinueStmt" }, { - "id": "0x561b7ded9360-Statement", - "statement": "0x561b7ded9370-EndDoStmt", + "id": "0x55fb7c209360-Statement", + "statement": "0x55fb7c209370-EndDoStmt", "source": "" }, { - "id": "0x561b7ded9370-EndDoStmt" + "id": "0x55fb7c209370-EndDoStmt" }, { - "id": "0x561b7dec7d30-ExecutionPartConstruct", + "id": "0x55fb7c1f7d30-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dec7d30-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c1f7d30-ExecutableConstruct" }, { - "id": "0x561b7dec7d30-ExecutableConstruct", + "id": "0x55fb7c1f7d30-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x561b7ded9480-DoConstruct" + "DoConstruct": "0x55fb7c209480-DoConstruct" }, { - "id": "0x561b7ded9480-DoConstruct", - "Statement": "0x561b7ded94d8-Statement", + "id": "0x55fb7c209480-DoConstruct", + "Statement": "0x55fb7c2094d8-Statement", "ExecutionPartConstruct": [ - "0x561b7dec8ed0-ExecutionPartConstruct", - "0x561b7dec8530-ExecutionPartConstruct" + "0x55fb7c1f8ed0-ExecutionPartConstruct", + "0x55fb7c1f8530-ExecutionPartConstruct" ], - "Statement": "0x561b7ded9480-Statement" + "Statement": "0x55fb7c209480-Statement" }, { - "id": "0x561b7ded94d8-Statement", - "statement": "0x561b7ded94e8-NonLabelDoStmt", + "id": "0x55fb7c2094d8-Statement", + "statement": "0x55fb7c2094e8-NonLabelDoStmt", "source": "do30i=1,5,1" }, { - "id": "0x561b7ded94e8-NonLabelDoStmt", - "LoopControl": "0x561b7ded94e8-LoopControl" + "id": "0x55fb7c2094e8-NonLabelDoStmt", + "LoopControl": "0x55fb7c2094e8-LoopControl" }, { - "id": "0x561b7ded94e8-LoopControl", + "id": "0x55fb7c2094e8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x561b7ded94e8-LoopBounds" + "LoopBounds": "0x55fb7c2094e8-LoopBounds" }, { - "id": "0x561b7ded94e8-LoopBounds", - "var": "0x561b7ded94e8-Name", - "lower": "0x561b7dec7de0-Expr", - "upper": "0x561b7dec7ec0-Expr", - "step": "0x561b7dec7fa0-Expr" + "id": "0x55fb7c2094e8-LoopBounds", + "var": "0x55fb7c2094e8-Name", + "lower": "0x55fb7c1f7de0-Expr", + "upper": "0x55fb7c1f7ec0-Expr", + "step": "0x55fb7c1f7fa0-Expr" }, { - "id": "0x561b7ded94e8-Name", + "id": "0x55fb7c2094e8-Name", "source": "i" }, { - "id": "0x561b7dec7de0-Expr", + "id": "0x55fb7c1f7de0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dec7e00-LiteralConstant" + "LiteralConstant": "0x55fb7c1f7e00-LiteralConstant" }, { - "id": "0x561b7dec7e00-LiteralConstant", + "id": "0x55fb7c1f7e00-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dec7e00-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1f7e00-IntLiteralConstant" }, { - "id": "0x561b7dec7e00-IntLiteralConstant", + "id": "0x55fb7c1f7e00-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x561b7dec7ec0-Expr", + "id": "0x55fb7c1f7ec0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dec7ee0-LiteralConstant" + "LiteralConstant": "0x55fb7c1f7ee0-LiteralConstant" }, { - "id": "0x561b7dec7ee0-LiteralConstant", + "id": "0x55fb7c1f7ee0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dec7ee0-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1f7ee0-IntLiteralConstant" }, { - "id": "0x561b7dec7ee0-IntLiteralConstant", + "id": "0x55fb7c1f7ee0-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x561b7dec7fa0-Expr", + "id": "0x55fb7c1f7fa0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dec7fc0-LiteralConstant" + "LiteralConstant": "0x55fb7c1f7fc0-LiteralConstant" }, { - "id": "0x561b7dec7fc0-LiteralConstant", + "id": "0x55fb7c1f7fc0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dec7fc0-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1f7fc0-IntLiteralConstant" }, { - "id": "0x561b7dec7fc0-IntLiteralConstant", + "id": "0x55fb7c1f7fc0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x561b7ded94c0-ExecutionPartConstruct" + "id": "0x55fb7c2094c0-ExecutionPartConstruct" }, { - "id": "0x561b7dec8ed0-ExecutionPartConstruct", + "id": "0x55fb7c1f8ed0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dec8ed0-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c1f8ed0-ExecutableConstruct" }, { - "id": "0x561b7dec8ed0-ExecutableConstruct", + "id": "0x55fb7c1f8ed0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561b7dec8ed0-Statement" + "Statement": "0x55fb7c1f8ed0-Statement" }, { - "id": "0x561b7dec8ed0-Statement", - "statement": "0x561b7dec8ee0-ActionStmt", + "id": "0x55fb7c1f8ed0-Statement", + "statement": "0x55fb7c1f8ee0-ActionStmt", "source": "s_dvt(i)=s_b(i)+s_a(i)" }, { - "id": "0x561b7dec8ee0-ActionStmt", + "id": "0x55fb7c1f8ee0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x561b7dec8ce0-AssignmentStmt" + "AssignmentStmt": "0x55fb7c1f8ce0-AssignmentStmt" }, { - "id": "0x561b7dec8ce0-AssignmentStmt", - "Variable": "0x561b7dec8dc0-Variable", - "Expr": "0x561b7dec8cf0-Expr" + "id": "0x55fb7c1f8ce0-AssignmentStmt", + "Variable": "0x55fb7c1f8dc0-Variable", + "Expr": "0x55fb7c1f8cf0-Expr" }, { - "id": "0x561b7dec8dc0-Variable", + "id": "0x55fb7c1f8dc0-Variable", "variantKey": "Designator", - "Designator": "0x561b7df0c5a0-Designator" + "Designator": "0x55fb7c23c5a0-Designator" }, { - "id": "0x561b7df0c5a0-Designator", + "id": "0x55fb7c23c5a0-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7df0c5b0-DataRef" + "DataRef": "0x55fb7c23c5b0-DataRef" }, { - "id": "0x561b7df0c5b0-DataRef", + "id": "0x55fb7c23c5b0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x561b7deddfa0-ArrayElement" + "ArrayElement": "0x55fb7c20dfa0-ArrayElement" }, { - "id": "0x561b7deddfa0-ArrayElement", - "base": "0x561b7deddfa0-DataRef", + "id": "0x55fb7c20dfa0-ArrayElement", + "base": "0x55fb7c20dfa0-DataRef", "subscripts": [ - "0x561b7defc370-SectionSubscript" + "0x55fb7c22c370-SectionSubscript" ] }, { - "id": "0x561b7deddfa0-DataRef", + "id": "0x55fb7c20dfa0-DataRef", "variantKey": "Name", - "Name": "0x561b7deddfa0-Name" + "Name": "0x55fb7c20dfa0-Name" }, { - "id": "0x561b7deddfa0-Name", + "id": "0x55fb7c20dfa0-Name", "source": "s_dvt" }, { - "id": "0x561b7defc370-SectionSubscript", + "id": "0x55fb7c22c370-SectionSubscript", "variantKey": "Expr", - "Expr": "0x561b7dec7a20-Expr" + "Expr": "0x55fb7c1f7a20-Expr" }, { - "id": "0x561b7dec7a20-Expr", + "id": "0x55fb7c1f7a20-Expr", "variantKey": "Designator", - "Designator": "0x561b7dec4b10-Designator" + "Designator": "0x55fb7c1f4b10-Designator" }, { - "id": "0x561b7dec4b10-Designator", + "id": "0x55fb7c1f4b10-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dec4b20-DataRef" + "DataRef": "0x55fb7c1f4b20-DataRef" }, { - "id": "0x561b7dec4b20-DataRef", + "id": "0x55fb7c1f4b20-DataRef", "variantKey": "Name", - "Name": "0x561b7dec4b20-Name" + "Name": "0x55fb7c1f4b20-Name" }, { - "id": "0x561b7dec4b20-Name", + "id": "0x55fb7c1f4b20-Name", "source": "i" }, { - "id": "0x561b7dec8cf0-Expr", + "id": "0x55fb7c1f8cf0-Expr", "variantKey": "Add", - "Add": "0x561b7dec8d10-Add" + "Add": "0x55fb7c1f8d10-Add" }, { - "id": "0x561b7dec8d10-Add", - "left": "0x561b7dec8b90-Expr", - "right": "0x561b7dec8ab0-Expr", + "id": "0x55fb7c1f8d10-Add", + "left": "0x55fb7c1f8b90-Expr", + "right": "0x55fb7c1f8ab0-Expr", "op": "ADD" }, { - "id": "0x561b7dec8b90-Expr", + "id": "0x55fb7c1f8b90-Expr", "variantKey": "Designator", - "Designator": "0x561b7dea4da0-Designator" + "Designator": "0x55fb7c1d4da0-Designator" }, { - "id": "0x561b7dea4da0-Designator", + "id": "0x55fb7c1d4da0-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dea4db0-DataRef" + "DataRef": "0x55fb7c1d4db0-DataRef" }, { - "id": "0x561b7dea4db0-DataRef", + "id": "0x55fb7c1d4db0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x561b7dec24f0-ArrayElement" + "ArrayElement": "0x55fb7c1f24f0-ArrayElement" }, { - "id": "0x561b7dec24f0-ArrayElement", - "base": "0x561b7dec24f0-DataRef", + "id": "0x55fb7c1f24f0-ArrayElement", + "base": "0x55fb7c1f24f0-DataRef", "subscripts": [ - "0x561b7defb9b0-SectionSubscript" + "0x55fb7c22b9b0-SectionSubscript" ] }, { - "id": "0x561b7dec24f0-DataRef", + "id": "0x55fb7c1f24f0-DataRef", "variantKey": "Name", - "Name": "0x561b7dec24f0-Name" + "Name": "0x55fb7c1f24f0-Name" }, { - "id": "0x561b7dec24f0-Name", + "id": "0x55fb7c1f24f0-Name", "source": "s_b" }, { - "id": "0x561b7defb9b0-SectionSubscript", + "id": "0x55fb7c22b9b0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x561b7dec8080-Expr" + "Expr": "0x55fb7c1f8080-Expr" }, { - "id": "0x561b7dec8080-Expr", + "id": "0x55fb7c1f8080-Expr", "variantKey": "Designator", - "Designator": "0x561b7dec8270-Designator" + "Designator": "0x55fb7c1f8270-Designator" }, { - "id": "0x561b7dec8270-Designator", + "id": "0x55fb7c1f8270-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dec8280-DataRef" + "DataRef": "0x55fb7c1f8280-DataRef" }, { - "id": "0x561b7dec8280-DataRef", + "id": "0x55fb7c1f8280-DataRef", "variantKey": "Name", - "Name": "0x561b7dec8280-Name" + "Name": "0x55fb7c1f8280-Name" }, { - "id": "0x561b7dec8280-Name", + "id": "0x55fb7c1f8280-Name", "source": "i" }, { - "id": "0x561b7dec8ab0-Expr", + "id": "0x55fb7c1f8ab0-Expr", "variantKey": "Designator", - "Designator": "0x561b7dedc2e0-Designator" + "Designator": "0x55fb7c20c2e0-Designator" }, { - "id": "0x561b7dedc2e0-Designator", + "id": "0x55fb7c20c2e0-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dedc2f0-DataRef" + "DataRef": "0x55fb7c20c2f0-DataRef" }, { - "id": "0x561b7dedc2f0-DataRef", + "id": "0x55fb7c20c2f0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x561b7deea740-ArrayElement" + "ArrayElement": "0x55fb7c21a740-ArrayElement" }, { - "id": "0x561b7deea740-ArrayElement", - "base": "0x561b7deea740-DataRef", + "id": "0x55fb7c21a740-ArrayElement", + "base": "0x55fb7c21a740-DataRef", "subscripts": [ - "0x561b7ded9a40-SectionSubscript" + "0x55fb7c209a40-SectionSubscript" ] }, { - "id": "0x561b7deea740-DataRef", + "id": "0x55fb7c21a740-DataRef", "variantKey": "Name", - "Name": "0x561b7deea740-Name" + "Name": "0x55fb7c21a740-Name" }, { - "id": "0x561b7deea740-Name", + "id": "0x55fb7c21a740-Name", "source": "s_a" }, { - "id": "0x561b7ded9a40-SectionSubscript", + "id": "0x55fb7c209a40-SectionSubscript", "variantKey": "Expr", - "Expr": "0x561b7dec82d0-Expr" + "Expr": "0x55fb7c1f82d0-Expr" }, { - "id": "0x561b7dec82d0-Expr", + "id": "0x55fb7c1f82d0-Expr", "variantKey": "Designator", - "Designator": "0x561b7dec8640-Designator" + "Designator": "0x55fb7c1f8640-Designator" }, { - "id": "0x561b7dec8640-Designator", + "id": "0x55fb7c1f8640-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dec8650-DataRef" + "DataRef": "0x55fb7c1f8650-DataRef" }, { - "id": "0x561b7dec8650-DataRef", + "id": "0x55fb7c1f8650-DataRef", "variantKey": "Name", - "Name": "0x561b7dec8650-Name" + "Name": "0x55fb7c1f8650-Name" }, { - "id": "0x561b7dec8650-Name", + "id": "0x55fb7c1f8650-Name", "source": "i" }, { - "id": "0x561b7dec8530-ExecutionPartConstruct", + "id": "0x55fb7c1f8530-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dec8530-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c1f8530-ExecutableConstruct" }, { - "id": "0x561b7dec8530-ExecutableConstruct", + "id": "0x55fb7c1f8530-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561b7dec8530-Statement" + "Statement": "0x55fb7c1f8530-Statement" }, { - "id": "0x561b7dec8530-Statement", - "statement": "0x561b7dec8540-ActionStmt", + "id": "0x55fb7c1f8530-Statement", + "statement": "0x55fb7c1f8540-ActionStmt", "label": "30", "source": "30continue" }, { - "id": "0x561b7dec8540-ActionStmt", + "id": "0x55fb7c1f8540-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x561b7dec8540-ContinueStmt" + "ContinueStmt": "0x55fb7c1f8540-ContinueStmt" }, { - "id": "0x561b7dec8540-ContinueStmt" + "id": "0x55fb7c1f8540-ContinueStmt" }, { - "id": "0x561b7ded9480-Statement", - "statement": "0x561b7ded9490-EndDoStmt", + "id": "0x55fb7c209480-Statement", + "statement": "0x55fb7c209490-EndDoStmt", "source": "" }, { - "id": "0x561b7ded9490-EndDoStmt" + "id": "0x55fb7c209490-EndDoStmt" }, { - "id": "0x561b7dec8e00-ExecutionPartConstruct", + "id": "0x55fb7c1f8e00-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dec8e00-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c1f8e00-ExecutableConstruct" }, { - "id": "0x561b7dec8e00-ExecutableConstruct", + "id": "0x55fb7c1f8e00-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x561b7ded95a0-DoConstruct" + "DoConstruct": "0x55fb7c2095a0-DoConstruct" }, { - "id": "0x561b7ded95a0-DoConstruct", - "Statement": "0x561b7ded95f8-Statement", + "id": "0x55fb7c2095a0-DoConstruct", + "Statement": "0x55fb7c2095f8-Statement", "ExecutionPartConstruct": [ - "0x561b7dec9960-ExecutionPartConstruct", - "0x561b7dec6bd0-ExecutionPartConstruct" + "0x55fb7c1f9960-ExecutionPartConstruct", + "0x55fb7c1f6bd0-ExecutionPartConstruct" ], - "Statement": "0x561b7ded95a0-Statement" + "Statement": "0x55fb7c2095a0-Statement" }, { - "id": "0x561b7ded95f8-Statement", - "statement": "0x561b7ded9608-NonLabelDoStmt", + "id": "0x55fb7c2095f8-Statement", + "statement": "0x55fb7c209608-NonLabelDoStmt", "source": "do40i=1,5,1" }, { - "id": "0x561b7ded9608-NonLabelDoStmt", - "LoopControl": "0x561b7ded9608-LoopControl" + "id": "0x55fb7c209608-NonLabelDoStmt", + "LoopControl": "0x55fb7c209608-LoopControl" }, { - "id": "0x561b7ded9608-LoopControl", + "id": "0x55fb7c209608-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x561b7ded9608-LoopBounds" + "LoopBounds": "0x55fb7c209608-LoopBounds" }, { - "id": "0x561b7ded9608-LoopBounds", - "var": "0x561b7ded9608-Name", - "lower": "0x561b7dec8f20-Expr", - "upper": "0x561b7dec9000-Expr", - "step": "0x561b7dec90e0-Expr" + "id": "0x55fb7c209608-LoopBounds", + "var": "0x55fb7c209608-Name", + "lower": "0x55fb7c1f8f20-Expr", + "upper": "0x55fb7c1f9000-Expr", + "step": "0x55fb7c1f90e0-Expr" }, { - "id": "0x561b7ded9608-Name", + "id": "0x55fb7c209608-Name", "source": "i" }, { - "id": "0x561b7dec8f20-Expr", + "id": "0x55fb7c1f8f20-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dec8f40-LiteralConstant" + "LiteralConstant": "0x55fb7c1f8f40-LiteralConstant" }, { - "id": "0x561b7dec8f40-LiteralConstant", + "id": "0x55fb7c1f8f40-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dec8f40-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1f8f40-IntLiteralConstant" }, { - "id": "0x561b7dec8f40-IntLiteralConstant", + "id": "0x55fb7c1f8f40-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x561b7dec9000-Expr", + "id": "0x55fb7c1f9000-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dec9020-LiteralConstant" + "LiteralConstant": "0x55fb7c1f9020-LiteralConstant" }, { - "id": "0x561b7dec9020-LiteralConstant", + "id": "0x55fb7c1f9020-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dec9020-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1f9020-IntLiteralConstant" }, { - "id": "0x561b7dec9020-IntLiteralConstant", + "id": "0x55fb7c1f9020-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x561b7dec90e0-Expr", + "id": "0x55fb7c1f90e0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dec9100-LiteralConstant" + "LiteralConstant": "0x55fb7c1f9100-LiteralConstant" }, { - "id": "0x561b7dec9100-LiteralConstant", + "id": "0x55fb7c1f9100-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dec9100-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1f9100-IntLiteralConstant" }, { - "id": "0x561b7dec9100-IntLiteralConstant", + "id": "0x55fb7c1f9100-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x561b7ded95e0-ExecutionPartConstruct" + "id": "0x55fb7c2095e0-ExecutionPartConstruct" }, { - "id": "0x561b7dec9960-ExecutionPartConstruct", + "id": "0x55fb7c1f9960-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dec9960-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c1f9960-ExecutableConstruct" }, { - "id": "0x561b7dec9960-ExecutableConstruct", + "id": "0x55fb7c1f9960-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561b7dec9960-Statement" + "Statement": "0x55fb7c1f9960-Statement" }, { - "id": "0x561b7dec9960-Statement", - "statement": "0x561b7dec9970-ActionStmt", + "id": "0x55fb7c1f9960-Statement", + "statement": "0x55fb7c1f9970-ActionStmt", "source": "s_b(i+1)=s_dvt(i)" }, { - "id": "0x561b7dec9970-ActionStmt", + "id": "0x55fb7c1f9970-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x561b7dec97e0-AssignmentStmt" + "AssignmentStmt": "0x55fb7c1f97e0-AssignmentStmt" }, { - "id": "0x561b7dec97e0-AssignmentStmt", - "Variable": "0x561b7dec98c0-Variable", - "Expr": "0x561b7dec97f0-Expr" + "id": "0x55fb7c1f97e0-AssignmentStmt", + "Variable": "0x55fb7c1f98c0-Variable", + "Expr": "0x55fb7c1f97f0-Expr" }, { - "id": "0x561b7dec98c0-Variable", + "id": "0x55fb7c1f98c0-Variable", "variantKey": "Designator", - "Designator": "0x561b7dec5ba0-Designator" + "Designator": "0x55fb7c1f5ba0-Designator" }, { - "id": "0x561b7dec5ba0-Designator", + "id": "0x55fb7c1f5ba0-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dec5bb0-DataRef" + "DataRef": "0x55fb7c1f5bb0-DataRef" }, { - "id": "0x561b7dec5bb0-DataRef", + "id": "0x55fb7c1f5bb0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x561b7dee0490-ArrayElement" + "ArrayElement": "0x55fb7c210490-ArrayElement" }, { - "id": "0x561b7dee0490-ArrayElement", - "base": "0x561b7dee0490-DataRef", + "id": "0x55fb7c210490-ArrayElement", + "base": "0x55fb7c210490-DataRef", "subscripts": [ - "0x561b7def39e0-SectionSubscript" + "0x55fb7c2239e0-SectionSubscript" ] }, { - "id": "0x561b7dee0490-DataRef", + "id": "0x55fb7c210490-DataRef", "variantKey": "Name", - "Name": "0x561b7dee0490-Name" + "Name": "0x55fb7c210490-Name" }, { - "id": "0x561b7dee0490-Name", + "id": "0x55fb7c210490-Name", "source": "s_b" }, { - "id": "0x561b7def39e0-SectionSubscript", + "id": "0x55fb7c2239e0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x561b7dec86a0-Expr" + "Expr": "0x55fb7c1f86a0-Expr" }, { - "id": "0x561b7dec86a0-Expr", + "id": "0x55fb7c1f86a0-Expr", "variantKey": "Add", - "Add": "0x561b7dec86c0-Add" + "Add": "0x55fb7c1f86c0-Add" }, { - "id": "0x561b7dec86c0-Add", - "left": "0x561b7dec9400-Expr", - "right": "0x561b7dec9320-Expr", + "id": "0x55fb7c1f86c0-Add", + "left": "0x55fb7c1f9400-Expr", + "right": "0x55fb7c1f9320-Expr", "op": "ADD" }, { - "id": "0x561b7dec9400-Expr", + "id": "0x55fb7c1f9400-Expr", "variantKey": "Designator", - "Designator": "0x561b7dec3e30-Designator" + "Designator": "0x55fb7c1f3e30-Designator" }, { - "id": "0x561b7dec3e30-Designator", + "id": "0x55fb7c1f3e30-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dec3e40-DataRef" + "DataRef": "0x55fb7c1f3e40-DataRef" }, { - "id": "0x561b7dec3e40-DataRef", + "id": "0x55fb7c1f3e40-DataRef", "variantKey": "Name", - "Name": "0x561b7dec3e40-Name" + "Name": "0x55fb7c1f3e40-Name" }, { - "id": "0x561b7dec3e40-Name", + "id": "0x55fb7c1f3e40-Name", "source": "i" }, { - "id": "0x561b7dec9320-Expr", + "id": "0x55fb7c1f9320-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dec9340-LiteralConstant" + "LiteralConstant": "0x55fb7c1f9340-LiteralConstant" }, { - "id": "0x561b7dec9340-LiteralConstant", + "id": "0x55fb7c1f9340-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dec9340-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1f9340-IntLiteralConstant" }, { - "id": "0x561b7dec9340-IntLiteralConstant", + "id": "0x55fb7c1f9340-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x561b7dec97f0-Expr", + "id": "0x55fb7c1f97f0-Expr", "variantKey": "Designator", - "Designator": "0x561b7dec8900-Designator" + "Designator": "0x55fb7c1f8900-Designator" }, { - "id": "0x561b7dec8900-Designator", + "id": "0x55fb7c1f8900-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dec8910-DataRef" + "DataRef": "0x55fb7c1f8910-DataRef" }, { - "id": "0x561b7dec8910-DataRef", + "id": "0x55fb7c1f8910-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x561b7dee7540-ArrayElement" + "ArrayElement": "0x55fb7c217540-ArrayElement" }, { - "id": "0x561b7dee7540-ArrayElement", - "base": "0x561b7dee7540-DataRef", + "id": "0x55fb7c217540-ArrayElement", + "base": "0x55fb7c217540-DataRef", "subscripts": [ - "0x561b7ded6670-SectionSubscript" + "0x55fb7c206670-SectionSubscript" ] }, { - "id": "0x561b7dee7540-DataRef", + "id": "0x55fb7c217540-DataRef", "variantKey": "Name", - "Name": "0x561b7dee7540-Name" + "Name": "0x55fb7c217540-Name" }, { - "id": "0x561b7dee7540-Name", + "id": "0x55fb7c217540-Name", "source": "s_dvt" }, { - "id": "0x561b7ded6670-SectionSubscript", + "id": "0x55fb7c206670-SectionSubscript", "variantKey": "Expr", - "Expr": "0x561b7dec9240-Expr" + "Expr": "0x55fb7c1f9240-Expr" }, { - "id": "0x561b7dec9240-Expr", + "id": "0x55fb7c1f9240-Expr", "variantKey": "Designator", - "Designator": "0x561b7dec8580-Designator" + "Designator": "0x55fb7c1f8580-Designator" }, { - "id": "0x561b7dec8580-Designator", + "id": "0x55fb7c1f8580-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dec8590-DataRef" + "DataRef": "0x55fb7c1f8590-DataRef" }, { - "id": "0x561b7dec8590-DataRef", + "id": "0x55fb7c1f8590-DataRef", "variantKey": "Name", - "Name": "0x561b7dec8590-Name" + "Name": "0x55fb7c1f8590-Name" }, { - "id": "0x561b7dec8590-Name", + "id": "0x55fb7c1f8590-Name", "source": "i" }, { - "id": "0x561b7dec6bd0-ExecutionPartConstruct", + "id": "0x55fb7c1f6bd0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dec6bd0-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c1f6bd0-ExecutableConstruct" }, { - "id": "0x561b7dec6bd0-ExecutableConstruct", + "id": "0x55fb7c1f6bd0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561b7dec6bd0-Statement" + "Statement": "0x55fb7c1f6bd0-Statement" }, { - "id": "0x561b7dec6bd0-Statement", - "statement": "0x561b7dec6be0-ActionStmt", + "id": "0x55fb7c1f6bd0-Statement", + "statement": "0x55fb7c1f6be0-ActionStmt", "label": "40", "source": "40continue" }, { - "id": "0x561b7dec6be0-ActionStmt", + "id": "0x55fb7c1f6be0-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x561b7dec6be0-ContinueStmt" + "ContinueStmt": "0x55fb7c1f6be0-ContinueStmt" }, { - "id": "0x561b7dec6be0-ContinueStmt" + "id": "0x55fb7c1f6be0-ContinueStmt" }, { - "id": "0x561b7ded95a0-Statement", - "statement": "0x561b7ded95b0-EndDoStmt", + "id": "0x55fb7c2095a0-Statement", + "statement": "0x55fb7c2095b0-EndDoStmt", "source": "" }, { - "id": "0x561b7ded95b0-EndDoStmt" + "id": "0x55fb7c2095b0-EndDoStmt" }, { - "id": "0x561b7deca550-ExecutionPartConstruct", + "id": "0x55fb7c1fa550-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7deca550-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c1fa550-ExecutableConstruct" }, { - "id": "0x561b7deca550-ExecutableConstruct", + "id": "0x55fb7c1fa550-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561b7deca550-Statement" + "Statement": "0x55fb7c1fa550-Statement" }, { - "id": "0x561b7deca550-Statement", - "statement": "0x561b7deca560-ActionStmt", + "id": "0x55fb7c1fa550-Statement", + "statement": "0x55fb7c1fa560-ActionStmt", "source": "v_a(2:6)=v_a(1:5)+v_b(1:5)" }, { - "id": "0x561b7deca560-ActionStmt", + "id": "0x55fb7c1fa560-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x561b7dec9b70-AssignmentStmt" + "AssignmentStmt": "0x55fb7c1f9b70-AssignmentStmt" }, { - "id": "0x561b7dec9b70-AssignmentStmt", - "Variable": "0x561b7dec9c50-Variable", - "Expr": "0x561b7dec9b80-Expr" + "id": "0x55fb7c1f9b70-AssignmentStmt", + "Variable": "0x55fb7c1f9c50-Variable", + "Expr": "0x55fb7c1f9b80-Expr" }, { - "id": "0x561b7dec9c50-Variable", + "id": "0x55fb7c1f9c50-Variable", "variantKey": "Designator", - "Designator": "0x561b7dec83b0-Designator" + "Designator": "0x55fb7c1f83b0-Designator" }, { - "id": "0x561b7dec83b0-Designator", + "id": "0x55fb7c1f83b0-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dec83c0-DataRef" + "DataRef": "0x55fb7c1f83c0-DataRef" }, { - "id": "0x561b7dec83c0-DataRef", + "id": "0x55fb7c1f83c0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x561b7ded4db0-ArrayElement" + "ArrayElement": "0x55fb7c204db0-ArrayElement" }, { - "id": "0x561b7ded4db0-ArrayElement", - "base": "0x561b7ded4db0-DataRef", + "id": "0x55fb7c204db0-ArrayElement", + "base": "0x55fb7c204db0-DataRef", "subscripts": [ - "0x561b7decdc50-SectionSubscript" + "0x55fb7c1fdc50-SectionSubscript" ] }, { - "id": "0x561b7ded4db0-DataRef", + "id": "0x55fb7c204db0-DataRef", "variantKey": "Name", - "Name": "0x561b7ded4db0-Name" + "Name": "0x55fb7c204db0-Name" }, { - "id": "0x561b7ded4db0-Name", + "id": "0x55fb7c204db0-Name", "source": "v_a" }, { - "id": "0x561b7decdc50-SectionSubscript", + "id": "0x55fb7c1fdc50-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x561b7decdc50-SubscriptTriplet" + "SubscriptTriplet": "0x55fb7c1fdc50-SubscriptTriplet" }, { - "id": "0x561b7decdc50-SubscriptTriplet", - "start": "0x561b7dec99b0-Expr", - "end": "0x561b7dec9a90-Expr" + "id": "0x55fb7c1fdc50-SubscriptTriplet", + "start": "0x55fb7c1f99b0-Expr", + "end": "0x55fb7c1f9a90-Expr" }, { - "id": "0x561b7dec99b0-Expr", + "id": "0x55fb7c1f99b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dec99d0-LiteralConstant" + "LiteralConstant": "0x55fb7c1f99d0-LiteralConstant" }, { - "id": "0x561b7dec99d0-LiteralConstant", + "id": "0x55fb7c1f99d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dec99d0-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1f99d0-IntLiteralConstant" }, { - "id": "0x561b7dec99d0-IntLiteralConstant", + "id": "0x55fb7c1f99d0-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x561b7dec9a90-Expr", + "id": "0x55fb7c1f9a90-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dec9ab0-LiteralConstant" + "LiteralConstant": "0x55fb7c1f9ab0-LiteralConstant" }, { - "id": "0x561b7dec9ab0-LiteralConstant", + "id": "0x55fb7c1f9ab0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dec9ab0-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1f9ab0-IntLiteralConstant" }, { - "id": "0x561b7dec9ab0-IntLiteralConstant", + "id": "0x55fb7c1f9ab0-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x561b7dec9b80-Expr", + "id": "0x55fb7c1f9b80-Expr", "variantKey": "Add", - "Add": "0x561b7dec9ba0-Add" + "Add": "0x55fb7c1f9ba0-Add" }, { - "id": "0x561b7dec9ba0-Add", - "left": "0x561b7deca320-Expr", - "right": "0x561b7deca240-Expr", + "id": "0x55fb7c1f9ba0-Add", + "left": "0x55fb7c1fa320-Expr", + "right": "0x55fb7c1fa240-Expr", "op": "ADD" }, { - "id": "0x561b7deca320-Expr", + "id": "0x55fb7c1fa320-Expr", "variantKey": "Designator", - "Designator": "0x561b7dec9e40-Designator" + "Designator": "0x55fb7c1f9e40-Designator" }, { - "id": "0x561b7dec9e40-Designator", + "id": "0x55fb7c1f9e40-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dec9e50-DataRef" + "DataRef": "0x55fb7c1f9e50-DataRef" }, { - "id": "0x561b7dec9e50-DataRef", + "id": "0x55fb7c1f9e50-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x561b7ded5490-ArrayElement" + "ArrayElement": "0x55fb7c205490-ArrayElement" }, { - "id": "0x561b7ded5490-ArrayElement", - "base": "0x561b7ded5490-DataRef", + "id": "0x55fb7c205490-ArrayElement", + "base": "0x55fb7c205490-DataRef", "subscripts": [ - "0x561b7decde30-SectionSubscript" + "0x55fb7c1fde30-SectionSubscript" ] }, { - "id": "0x561b7ded5490-DataRef", + "id": "0x55fb7c205490-DataRef", "variantKey": "Name", - "Name": "0x561b7ded5490-Name" + "Name": "0x55fb7c205490-Name" }, { - "id": "0x561b7ded5490-Name", + "id": "0x55fb7c205490-Name", "source": "v_a" }, { - "id": "0x561b7decde30-SectionSubscript", + "id": "0x55fb7c1fde30-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x561b7decde30-SubscriptTriplet" + "SubscriptTriplet": "0x55fb7c1fde30-SubscriptTriplet" }, { - "id": "0x561b7decde30-SubscriptTriplet", - "start": "0x561b7dec9c80-Expr", - "end": "0x561b7dec9d60-Expr" + "id": "0x55fb7c1fde30-SubscriptTriplet", + "start": "0x55fb7c1f9c80-Expr", + "end": "0x55fb7c1f9d60-Expr" }, { - "id": "0x561b7dec9c80-Expr", + "id": "0x55fb7c1f9c80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dec9ca0-LiteralConstant" + "LiteralConstant": "0x55fb7c1f9ca0-LiteralConstant" }, { - "id": "0x561b7dec9ca0-LiteralConstant", + "id": "0x55fb7c1f9ca0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dec9ca0-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1f9ca0-IntLiteralConstant" }, { - "id": "0x561b7dec9ca0-IntLiteralConstant", + "id": "0x55fb7c1f9ca0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x561b7dec9d60-Expr", + "id": "0x55fb7c1f9d60-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dec9d80-LiteralConstant" + "LiteralConstant": "0x55fb7c1f9d80-LiteralConstant" }, { - "id": "0x561b7dec9d80-LiteralConstant", + "id": "0x55fb7c1f9d80-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dec9d80-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1f9d80-IntLiteralConstant" }, { - "id": "0x561b7dec9d80-IntLiteralConstant", + "id": "0x55fb7c1f9d80-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x561b7deca240-Expr", + "id": "0x55fb7c1fa240-Expr", "variantKey": "Designator", - "Designator": "0x561b7deca1e0-Designator" + "Designator": "0x55fb7c1fa1e0-Designator" }, { - "id": "0x561b7deca1e0-Designator", + "id": "0x55fb7c1fa1e0-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7deca1f0-DataRef" + "DataRef": "0x55fb7c1fa1f0-DataRef" }, { - "id": "0x561b7deca1f0-DataRef", + "id": "0x55fb7c1fa1f0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x561b7ded5550-ArrayElement" + "ArrayElement": "0x55fb7c205550-ArrayElement" }, { - "id": "0x561b7ded5550-ArrayElement", - "base": "0x561b7ded5550-DataRef", + "id": "0x55fb7c205550-ArrayElement", + "base": "0x55fb7c205550-DataRef", "subscripts": [ - "0x561b7decdfd0-SectionSubscript" + "0x55fb7c1fdfd0-SectionSubscript" ] }, { - "id": "0x561b7ded5550-DataRef", + "id": "0x55fb7c205550-DataRef", "variantKey": "Name", - "Name": "0x561b7ded5550-Name" + "Name": "0x55fb7c205550-Name" }, { - "id": "0x561b7ded5550-Name", + "id": "0x55fb7c205550-Name", "source": "v_b" }, { - "id": "0x561b7decdfd0-SectionSubscript", + "id": "0x55fb7c1fdfd0-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x561b7decdfd0-SubscriptTriplet" + "SubscriptTriplet": "0x55fb7c1fdfd0-SubscriptTriplet" }, { - "id": "0x561b7decdfd0-SubscriptTriplet", - "start": "0x561b7dec9f60-Expr", - "end": "0x561b7deca0a0-Expr" + "id": "0x55fb7c1fdfd0-SubscriptTriplet", + "start": "0x55fb7c1f9f60-Expr", + "end": "0x55fb7c1fa0a0-Expr" }, { - "id": "0x561b7dec9f60-Expr", + "id": "0x55fb7c1f9f60-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dec9f80-LiteralConstant" + "LiteralConstant": "0x55fb7c1f9f80-LiteralConstant" }, { - "id": "0x561b7dec9f80-LiteralConstant", + "id": "0x55fb7c1f9f80-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dec9f80-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1f9f80-IntLiteralConstant" }, { - "id": "0x561b7dec9f80-IntLiteralConstant", + "id": "0x55fb7c1f9f80-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x561b7deca0a0-Expr", + "id": "0x55fb7c1fa0a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7deca0c0-LiteralConstant" + "LiteralConstant": "0x55fb7c1fa0c0-LiteralConstant" }, { - "id": "0x561b7deca0c0-LiteralConstant", + "id": "0x55fb7c1fa0c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7deca0c0-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1fa0c0-IntLiteralConstant" }, { - "id": "0x561b7deca0c0-IntLiteralConstant", + "id": "0x55fb7c1fa0c0-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x561b7decaee0-ExecutionPartConstruct", + "id": "0x55fb7c1faee0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7decaee0-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c1faee0-ExecutableConstruct" }, { - "id": "0x561b7decaee0-ExecutableConstruct", + "id": "0x55fb7c1faee0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561b7decaee0-Statement" + "Statement": "0x55fb7c1faee0-Statement" }, { - "id": "0x561b7decaee0-Statement", - "statement": "0x561b7decaef0-ActionStmt", + "id": "0x55fb7c1faee0-Statement", + "statement": "0x55fb7c1faef0-ActionStmt", "source": "v_b(2:6)=v_b(1:5)+v_a(1:5)" }, { - "id": "0x561b7decaef0-ActionStmt", + "id": "0x55fb7c1faef0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x561b7deca760-AssignmentStmt" + "AssignmentStmt": "0x55fb7c1fa760-AssignmentStmt" }, { - "id": "0x561b7deca760-AssignmentStmt", - "Variable": "0x561b7deca840-Variable", - "Expr": "0x561b7deca770-Expr" + "id": "0x55fb7c1fa760-AssignmentStmt", + "Variable": "0x55fb7c1fa840-Variable", + "Expr": "0x55fb7c1fa770-Expr" }, { - "id": "0x561b7deca840-Variable", + "id": "0x55fb7c1fa840-Variable", "variantKey": "Designator", - "Designator": "0x561b7dec9f00-Designator" + "Designator": "0x55fb7c1f9f00-Designator" }, { - "id": "0x561b7dec9f00-Designator", + "id": "0x55fb7c1f9f00-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dec9f10-DataRef" + "DataRef": "0x55fb7c1f9f10-DataRef" }, { - "id": "0x561b7dec9f10-DataRef", + "id": "0x55fb7c1f9f10-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x561b7ded5950-ArrayElement" + "ArrayElement": "0x55fb7c205950-ArrayElement" }, { - "id": "0x561b7ded5950-ArrayElement", - "base": "0x561b7ded5950-DataRef", + "id": "0x55fb7c205950-ArrayElement", + "base": "0x55fb7c205950-DataRef", "subscripts": [ - "0x561b7dece180-SectionSubscript" + "0x55fb7c1fe180-SectionSubscript" ] }, { - "id": "0x561b7ded5950-DataRef", + "id": "0x55fb7c205950-DataRef", "variantKey": "Name", - "Name": "0x561b7ded5950-Name" + "Name": "0x55fb7c205950-Name" }, { - "id": "0x561b7ded5950-Name", + "id": "0x55fb7c205950-Name", "source": "v_b" }, { - "id": "0x561b7dece180-SectionSubscript", + "id": "0x55fb7c1fe180-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x561b7dece180-SubscriptTriplet" + "SubscriptTriplet": "0x55fb7c1fe180-SubscriptTriplet" }, { - "id": "0x561b7dece180-SubscriptTriplet", - "start": "0x561b7deca5a0-Expr", - "end": "0x561b7deca680-Expr" + "id": "0x55fb7c1fe180-SubscriptTriplet", + "start": "0x55fb7c1fa5a0-Expr", + "end": "0x55fb7c1fa680-Expr" }, { - "id": "0x561b7deca5a0-Expr", + "id": "0x55fb7c1fa5a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7deca5c0-LiteralConstant" + "LiteralConstant": "0x55fb7c1fa5c0-LiteralConstant" }, { - "id": "0x561b7deca5c0-LiteralConstant", + "id": "0x55fb7c1fa5c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7deca5c0-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1fa5c0-IntLiteralConstant" }, { - "id": "0x561b7deca5c0-IntLiteralConstant", + "id": "0x55fb7c1fa5c0-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x561b7deca680-Expr", + "id": "0x55fb7c1fa680-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7deca6a0-LiteralConstant" + "LiteralConstant": "0x55fb7c1fa6a0-LiteralConstant" }, { - "id": "0x561b7deca6a0-LiteralConstant", + "id": "0x55fb7c1fa6a0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7deca6a0-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1fa6a0-IntLiteralConstant" }, { - "id": "0x561b7deca6a0-IntLiteralConstant", + "id": "0x55fb7c1fa6a0-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x561b7deca770-Expr", + "id": "0x55fb7c1fa770-Expr", "variantKey": "Add", - "Add": "0x561b7deca790-Add" + "Add": "0x55fb7c1fa790-Add" }, { - "id": "0x561b7deca790-Add", - "left": "0x561b7decad90-Expr", - "right": "0x561b7decacb0-Expr", + "id": "0x55fb7c1fa790-Add", + "left": "0x55fb7c1fad90-Expr", + "right": "0x55fb7c1facb0-Expr", "op": "ADD" }, { - "id": "0x561b7decad90-Expr", + "id": "0x55fb7c1fad90-Expr", "variantKey": "Designator", - "Designator": "0x561b7dec8780-Designator" + "Designator": "0x55fb7c1f8780-Designator" }, { - "id": "0x561b7dec8780-Designator", + "id": "0x55fb7c1f8780-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dec8790-DataRef" + "DataRef": "0x55fb7c1f8790-DataRef" }, { - "id": "0x561b7dec8790-DataRef", + "id": "0x55fb7c1f8790-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x561b7ded6180-ArrayElement" + "ArrayElement": "0x55fb7c206180-ArrayElement" }, { - "id": "0x561b7ded6180-ArrayElement", - "base": "0x561b7ded6180-DataRef", + "id": "0x55fb7c206180-ArrayElement", + "base": "0x55fb7c206180-DataRef", "subscripts": [ - "0x561b7ded36f0-SectionSubscript" + "0x55fb7c2036f0-SectionSubscript" ] }, { - "id": "0x561b7ded6180-DataRef", + "id": "0x55fb7c206180-DataRef", "variantKey": "Name", - "Name": "0x561b7ded6180-Name" + "Name": "0x55fb7c206180-Name" }, { - "id": "0x561b7ded6180-Name", + "id": "0x55fb7c206180-Name", "source": "v_b" }, { - "id": "0x561b7ded36f0-SectionSubscript", + "id": "0x55fb7c2036f0-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x561b7ded36f0-SubscriptTriplet" + "SubscriptTriplet": "0x55fb7c2036f0-SubscriptTriplet" }, { - "id": "0x561b7ded36f0-SubscriptTriplet", - "start": "0x561b7deca870-Expr", - "end": "0x561b7deca950-Expr" + "id": "0x55fb7c2036f0-SubscriptTriplet", + "start": "0x55fb7c1fa870-Expr", + "end": "0x55fb7c1fa950-Expr" }, { - "id": "0x561b7deca870-Expr", + "id": "0x55fb7c1fa870-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7deca890-LiteralConstant" + "LiteralConstant": "0x55fb7c1fa890-LiteralConstant" }, { - "id": "0x561b7deca890-LiteralConstant", + "id": "0x55fb7c1fa890-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7deca890-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1fa890-IntLiteralConstant" }, { - "id": "0x561b7deca890-IntLiteralConstant", + "id": "0x55fb7c1fa890-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x561b7deca950-Expr", + "id": "0x55fb7c1fa950-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7deca970-LiteralConstant" + "LiteralConstant": "0x55fb7c1fa970-LiteralConstant" }, { - "id": "0x561b7deca970-LiteralConstant", + "id": "0x55fb7c1fa970-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7deca970-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1fa970-IntLiteralConstant" }, { - "id": "0x561b7deca970-IntLiteralConstant", + "id": "0x55fb7c1fa970-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x561b7decacb0-Expr", + "id": "0x55fb7c1facb0-Expr", "variantKey": "Designator", - "Designator": "0x561b7decac50-Designator" + "Designator": "0x55fb7c1fac50-Designator" }, { - "id": "0x561b7decac50-Designator", + "id": "0x55fb7c1fac50-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7decac60-DataRef" + "DataRef": "0x55fb7c1fac60-DataRef" }, { - "id": "0x561b7decac60-DataRef", + "id": "0x55fb7c1fac60-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x561b7ded61e0-ArrayElement" + "ArrayElement": "0x55fb7c2061e0-ArrayElement" }, { - "id": "0x561b7ded61e0-ArrayElement", - "base": "0x561b7ded61e0-DataRef", + "id": "0x55fb7c2061e0-ArrayElement", + "base": "0x55fb7c2061e0-DataRef", "subscripts": [ - "0x561b7decd7f0-SectionSubscript" + "0x55fb7c1fd7f0-SectionSubscript" ] }, { - "id": "0x561b7ded61e0-DataRef", + "id": "0x55fb7c2061e0-DataRef", "variantKey": "Name", - "Name": "0x561b7ded61e0-Name" + "Name": "0x55fb7c2061e0-Name" }, { - "id": "0x561b7ded61e0-Name", + "id": "0x55fb7c2061e0-Name", "source": "v_a" }, { - "id": "0x561b7decd7f0-SectionSubscript", + "id": "0x55fb7c1fd7f0-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x561b7decd7f0-SubscriptTriplet" + "SubscriptTriplet": "0x55fb7c1fd7f0-SubscriptTriplet" }, { - "id": "0x561b7decd7f0-SubscriptTriplet", - "start": "0x561b7decaa30-Expr", - "end": "0x561b7decab10-Expr" + "id": "0x55fb7c1fd7f0-SubscriptTriplet", + "start": "0x55fb7c1faa30-Expr", + "end": "0x55fb7c1fab10-Expr" }, { - "id": "0x561b7decaa30-Expr", + "id": "0x55fb7c1faa30-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7decaa50-LiteralConstant" + "LiteralConstant": "0x55fb7c1faa50-LiteralConstant" }, { - "id": "0x561b7decaa50-LiteralConstant", + "id": "0x55fb7c1faa50-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7decaa50-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1faa50-IntLiteralConstant" }, { - "id": "0x561b7decaa50-IntLiteralConstant", + "id": "0x55fb7c1faa50-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x561b7decab10-Expr", + "id": "0x55fb7c1fab10-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7decab30-LiteralConstant" + "LiteralConstant": "0x55fb7c1fab30-LiteralConstant" }, { - "id": "0x561b7decab30-LiteralConstant", + "id": "0x55fb7c1fab30-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7decab30-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1fab30-IntLiteralConstant" }, { - "id": "0x561b7decab30-IntLiteralConstant", + "id": "0x55fb7c1fab30-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x561b7decbe40-ExecutionPartConstruct", + "id": "0x55fb7c1fbe40-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7decbe40-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c1fbe40-ExecutableConstruct" }, { - "id": "0x561b7decbe40-ExecutableConstruct", + "id": "0x55fb7c1fbe40-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561b7decbe40-Statement" + "Statement": "0x55fb7c1fbe40-Statement" }, { - "id": "0x561b7decbe40-Statement", - "statement": "0x561b7decbe50-ActionStmt", + "id": "0x55fb7c1fbe40-Statement", + "statement": "0x55fb7c1fbe50-ActionStmt", "source": "callsub1(error,v_a,v_b,v_a+v_b)" }, { - "id": "0x561b7decbe50-ActionStmt", + "id": "0x55fb7c1fbe50-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x561b7decde70-CallStmt" + "CallStmt": "0x55fb7c1fde70-CallStmt" }, { - "id": "0x561b7decde70-CallStmt", - "call": "0x561b7decde70-Call" + "id": "0x55fb7c1fde70-CallStmt", + "call": "0x55fb7c1fde70-Call" }, { - "id": "0x561b7decde70-Call", - "ProcedureDesignator": "0x561b7decde88-ProcedureDesignator", + "id": "0x55fb7c1fde70-Call", + "ProcedureDesignator": "0x55fb7c1fde88-ProcedureDesignator", "ActualArgSpec": [ - "0x561b7decb9d0-ActualArgSpec", - "0x561b7decb8c0-ActualArgSpec", - "0x561b7decb7b0-ActualArgSpec", - "0x561b7decb6a0-ActualArgSpec" + "0x55fb7c1fb9d0-ActualArgSpec", + "0x55fb7c1fb8c0-ActualArgSpec", + "0x55fb7c1fb7b0-ActualArgSpec", + "0x55fb7c1fb6a0-ActualArgSpec" ] }, { - "id": "0x561b7decde88-ProcedureDesignator", + "id": "0x55fb7c1fde88-ProcedureDesignator", "variantKey": "Name", - "Name": "0x561b7decde88-Name" + "Name": "0x55fb7c1fde88-Name" }, { - "id": "0x561b7decde88-Name", + "id": "0x55fb7c1fde88-Name", "source": "sub1" }, { - "id": "0x561b7decb9d0-ActualArgSpec", - "ActualArg": "0x561b7decb9d0-ActualArg" + "id": "0x55fb7c1fb9d0-ActualArgSpec", + "ActualArg": "0x55fb7c1fb9d0-ActualArg" }, { - "id": "0x561b7decb9d0-ActualArg", + "id": "0x55fb7c1fb9d0-ActualArg", "variantKey": "Expr", - "Expr": "0x561b7decb3d0-Expr" + "Expr": "0x55fb7c1fb3d0-Expr" }, { - "id": "0x561b7decb3d0-Expr", + "id": "0x55fb7c1fb3d0-Expr", "variantKey": "Designator", - "Designator": "0x561b7decb290-Designator" + "Designator": "0x55fb7c1fb290-Designator" }, { - "id": "0x561b7decb290-Designator", + "id": "0x55fb7c1fb290-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7decb2a0-DataRef" + "DataRef": "0x55fb7c1fb2a0-DataRef" }, { - "id": "0x561b7decb2a0-DataRef", + "id": "0x55fb7c1fb2a0-DataRef", "variantKey": "Name", - "Name": "0x561b7decb2a0-Name" + "Name": "0x55fb7c1fb2a0-Name" }, { - "id": "0x561b7decb2a0-Name", + "id": "0x55fb7c1fb2a0-Name", "source": "error" }, { - "id": "0x561b7decb8c0-ActualArgSpec", - "ActualArg": "0x561b7decb8c0-ActualArg" + "id": "0x55fb7c1fb8c0-ActualArgSpec", + "ActualArg": "0x55fb7c1fb8c0-ActualArg" }, { - "id": "0x561b7decb8c0-ActualArg", + "id": "0x55fb7c1fb8c0-ActualArg", "variantKey": "Expr", - "Expr": "0x561b7decb4b0-Expr" + "Expr": "0x55fb7c1fb4b0-Expr" }, { - "id": "0x561b7decb4b0-Expr", + "id": "0x55fb7c1fb4b0-Expr", "variantKey": "Designator", - "Designator": "0x561b7dec9ea0-Designator" + "Designator": "0x55fb7c1f9ea0-Designator" }, { - "id": "0x561b7dec9ea0-Designator", + "id": "0x55fb7c1f9ea0-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dec9eb0-DataRef" + "DataRef": "0x55fb7c1f9eb0-DataRef" }, { - "id": "0x561b7dec9eb0-DataRef", + "id": "0x55fb7c1f9eb0-DataRef", "variantKey": "Name", - "Name": "0x561b7dec9eb0-Name" + "Name": "0x55fb7c1f9eb0-Name" }, { - "id": "0x561b7dec9eb0-Name", + "id": "0x55fb7c1f9eb0-Name", "source": "v_a" }, { - "id": "0x561b7decb7b0-ActualArgSpec", - "ActualArg": "0x561b7decb7b0-ActualArg" + "id": "0x55fb7c1fb7b0-ActualArgSpec", + "ActualArg": "0x55fb7c1fb7b0-ActualArg" }, { - "id": "0x561b7decb7b0-ActualArg", + "id": "0x55fb7c1fb7b0-ActualArg", "variantKey": "Expr", - "Expr": "0x561b7decb2f0-Expr" + "Expr": "0x55fb7c1fb2f0-Expr" }, { - "id": "0x561b7decb2f0-Expr", + "id": "0x55fb7c1fb2f0-Expr", "variantKey": "Designator", - "Designator": "0x561b7dec5060-Designator" + "Designator": "0x55fb7c1f5060-Designator" }, { - "id": "0x561b7dec5060-Designator", + "id": "0x55fb7c1f5060-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dec5070-DataRef" + "DataRef": "0x55fb7c1f5070-DataRef" }, { - "id": "0x561b7dec5070-DataRef", + "id": "0x55fb7c1f5070-DataRef", "variantKey": "Name", - "Name": "0x561b7dec5070-Name" + "Name": "0x55fb7c1f5070-Name" }, { - "id": "0x561b7dec5070-Name", + "id": "0x55fb7c1f5070-Name", "source": "v_b" }, { - "id": "0x561b7decb6a0-ActualArgSpec", - "ActualArg": "0x561b7decb6a0-ActualArg" + "id": "0x55fb7c1fb6a0-ActualArgSpec", + "ActualArg": "0x55fb7c1fb6a0-ActualArg" }, { - "id": "0x561b7decb6a0-ActualArg", + "id": "0x55fb7c1fb6a0-ActualArg", "variantKey": "Expr", - "Expr": "0x561b7decb0f0-Expr" + "Expr": "0x55fb7c1fb0f0-Expr" }, { - "id": "0x561b7decb0f0-Expr", + "id": "0x55fb7c1fb0f0-Expr", "variantKey": "Add", - "Add": "0x561b7decb110-Add" + "Add": "0x55fb7c1fb110-Add" }, { - "id": "0x561b7decb110-Add", - "left": "0x561b7decaf30-Expr", - "right": "0x561b7decb010-Expr", + "id": "0x55fb7c1fb110-Add", + "left": "0x55fb7c1faf30-Expr", + "right": "0x55fb7c1fb010-Expr", "op": "ADD" }, { - "id": "0x561b7decaf30-Expr", + "id": "0x55fb7c1faf30-Expr", "variantKey": "Designator", - "Designator": "0x561b7decabf0-Designator" + "Designator": "0x55fb7c1fabf0-Designator" }, { - "id": "0x561b7decabf0-Designator", + "id": "0x55fb7c1fabf0-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7decac00-DataRef" + "DataRef": "0x55fb7c1fac00-DataRef" }, { - "id": "0x561b7decac00-DataRef", + "id": "0x55fb7c1fac00-DataRef", "variantKey": "Name", - "Name": "0x561b7decac00-Name" + "Name": "0x55fb7c1fac00-Name" }, { - "id": "0x561b7decac00-Name", + "id": "0x55fb7c1fac00-Name", "source": "v_a" }, { - "id": "0x561b7decb010-Expr", + "id": "0x55fb7c1fb010-Expr", "variantKey": "Designator", - "Designator": "0x561b7decbc90-Designator" + "Designator": "0x55fb7c1fbc90-Designator" }, { - "id": "0x561b7decbc90-Designator", + "id": "0x55fb7c1fbc90-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7decbca0-DataRef" + "DataRef": "0x55fb7c1fbca0-DataRef" }, { - "id": "0x561b7decbca0-DataRef", + "id": "0x55fb7c1fbca0-DataRef", "variantKey": "Name", - "Name": "0x561b7decbca0-Name" + "Name": "0x55fb7c1fbca0-Name" }, { - "id": "0x561b7decbca0-Name", + "id": "0x55fb7c1fbca0-Name", "source": "v_b" }, { - "id": "0x561b7deccac0-ExecutionPartConstruct", + "id": "0x55fb7c1fcac0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7deccac0-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c1fcac0-ExecutableConstruct" }, { - "id": "0x561b7deccac0-ExecutableConstruct", + "id": "0x55fb7c1fcac0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561b7deccac0-Statement" + "Statement": "0x55fb7c1fcac0-Statement" }, { - "id": "0x561b7deccac0-Statement", - "statement": "0x561b7deccad0-ActionStmt", + "id": "0x55fb7c1fcac0-Statement", + "statement": "0x55fb7c1fcad0-ActionStmt", "source": "callsub2(error,v_a,v_b,v_a-v_b)" }, { - "id": "0x561b7deccad0-ActionStmt", + "id": "0x55fb7c1fcad0-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x561b7decc990-CallStmt" + "CallStmt": "0x55fb7c1fc990-CallStmt" }, { - "id": "0x561b7decc990-CallStmt", - "call": "0x561b7decc990-Call" + "id": "0x55fb7c1fc990-CallStmt", + "call": "0x55fb7c1fc990-Call" }, { - "id": "0x561b7decc990-Call", - "ProcedureDesignator": "0x561b7decc9a8-ProcedureDesignator", + "id": "0x55fb7c1fc990-Call", + "ProcedureDesignator": "0x55fb7c1fc9a8-ProcedureDesignator", "ActualArgSpec": [ - "0x561b7decc830-ActualArgSpec", - "0x561b7decc720-ActualArgSpec", - "0x561b7decc610-ActualArgSpec", - "0x561b7decc500-ActualArgSpec" + "0x55fb7c1fc830-ActualArgSpec", + "0x55fb7c1fc720-ActualArgSpec", + "0x55fb7c1fc610-ActualArgSpec", + "0x55fb7c1fc500-ActualArgSpec" ] }, { - "id": "0x561b7decc9a8-ProcedureDesignator", + "id": "0x55fb7c1fc9a8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x561b7decc9a8-Name" + "Name": "0x55fb7c1fc9a8-Name" }, { - "id": "0x561b7decc9a8-Name", + "id": "0x55fb7c1fc9a8-Name", "source": "sub2" }, { - "id": "0x561b7decc830-ActualArgSpec", - "ActualArg": "0x561b7decc830-ActualArg" + "id": "0x55fb7c1fc830-ActualArgSpec", + "ActualArg": "0x55fb7c1fc830-ActualArg" }, { - "id": "0x561b7decc830-ActualArg", + "id": "0x55fb7c1fc830-ActualArg", "variantKey": "Expr", - "Expr": "0x561b7decc2d0-Expr" + "Expr": "0x55fb7c1fc2d0-Expr" }, { - "id": "0x561b7decc2d0-Expr", + "id": "0x55fb7c1fc2d0-Expr", "variantKey": "Designator", - "Designator": "0x561b7decc190-Designator" + "Designator": "0x55fb7c1fc190-Designator" }, { - "id": "0x561b7decc190-Designator", + "id": "0x55fb7c1fc190-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7decc1a0-DataRef" + "DataRef": "0x55fb7c1fc1a0-DataRef" }, { - "id": "0x561b7decc1a0-DataRef", + "id": "0x55fb7c1fc1a0-DataRef", "variantKey": "Name", - "Name": "0x561b7decc1a0-Name" + "Name": "0x55fb7c1fc1a0-Name" }, { - "id": "0x561b7decc1a0-Name", + "id": "0x55fb7c1fc1a0-Name", "source": "error" }, { - "id": "0x561b7decc720-ActualArgSpec", - "ActualArg": "0x561b7decc720-ActualArg" + "id": "0x55fb7c1fc720-ActualArgSpec", + "ActualArg": "0x55fb7c1fc720-ActualArg" }, { - "id": "0x561b7decc720-ActualArg", + "id": "0x55fb7c1fc720-ActualArg", "variantKey": "Expr", - "Expr": "0x561b7decc3b0-Expr" + "Expr": "0x55fb7c1fc3b0-Expr" }, { - "id": "0x561b7decc3b0-Expr", + "id": "0x55fb7c1fc3b0-Expr", "variantKey": "Designator", - "Designator": "0x561b7dec3f00-Designator" + "Designator": "0x55fb7c1f3f00-Designator" }, { - "id": "0x561b7dec3f00-Designator", + "id": "0x55fb7c1f3f00-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dec3f10-DataRef" + "DataRef": "0x55fb7c1f3f10-DataRef" }, { - "id": "0x561b7dec3f10-DataRef", + "id": "0x55fb7c1f3f10-DataRef", "variantKey": "Name", - "Name": "0x561b7dec3f10-Name" + "Name": "0x55fb7c1f3f10-Name" }, { - "id": "0x561b7dec3f10-Name", + "id": "0x55fb7c1f3f10-Name", "source": "v_a" }, { - "id": "0x561b7decc610-ActualArgSpec", - "ActualArg": "0x561b7decc610-ActualArg" + "id": "0x55fb7c1fc610-ActualArgSpec", + "ActualArg": "0x55fb7c1fc610-ActualArg" }, { - "id": "0x561b7decc610-ActualArg", + "id": "0x55fb7c1fc610-ActualArg", "variantKey": "Expr", - "Expr": "0x561b7decc1f0-Expr" + "Expr": "0x55fb7c1fc1f0-Expr" }, { - "id": "0x561b7decc1f0-Expr", + "id": "0x55fb7c1fc1f0-Expr", "variantKey": "Designator", - "Designator": "0x561b7dec98f0-Designator" + "Designator": "0x55fb7c1f98f0-Designator" }, { - "id": "0x561b7dec98f0-Designator", + "id": "0x55fb7c1f98f0-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dec9900-DataRef" + "DataRef": "0x55fb7c1f9900-DataRef" }, { - "id": "0x561b7dec9900-DataRef", + "id": "0x55fb7c1f9900-DataRef", "variantKey": "Name", - "Name": "0x561b7dec9900-Name" + "Name": "0x55fb7c1f9900-Name" }, { - "id": "0x561b7dec9900-Name", + "id": "0x55fb7c1f9900-Name", "source": "v_b" }, { - "id": "0x561b7decc500-ActualArgSpec", - "ActualArg": "0x561b7decc500-ActualArg" + "id": "0x55fb7c1fc500-ActualArgSpec", + "ActualArg": "0x55fb7c1fc500-ActualArg" }, { - "id": "0x561b7decc500-ActualArg", + "id": "0x55fb7c1fc500-ActualArg", "variantKey": "Expr", - "Expr": "0x561b7decc050-Expr" + "Expr": "0x55fb7c1fc050-Expr" }, { - "id": "0x561b7decc050-Expr", + "id": "0x55fb7c1fc050-Expr", "variantKey": "Subtract", - "Subtract": "0x561b7decc070-Subtract" + "Subtract": "0x55fb7c1fc070-Subtract" }, { - "id": "0x561b7decc070-Subtract", - "left": "0x561b7decbe90-Expr", - "right": "0x561b7decbf70-Expr", + "id": "0x55fb7c1fc070-Subtract", + "left": "0x55fb7c1fbe90-Expr", + "right": "0x55fb7c1fbf70-Expr", "op": "SUBTRACT" }, { - "id": "0x561b7decbe90-Expr", + "id": "0x55fb7c1fbe90-Expr", "variantKey": "Designator", - "Designator": "0x561b7decb630-Designator" + "Designator": "0x55fb7c1fb630-Designator" }, { - "id": "0x561b7decb630-Designator", + "id": "0x55fb7c1fb630-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7decb640-DataRef" + "DataRef": "0x55fb7c1fb640-DataRef" }, { - "id": "0x561b7decb640-DataRef", + "id": "0x55fb7c1fb640-DataRef", "variantKey": "Name", - "Name": "0x561b7decb640-Name" + "Name": "0x55fb7c1fb640-Name" }, { - "id": "0x561b7decb640-Name", + "id": "0x55fb7c1fb640-Name", "source": "v_a" }, { - "id": "0x561b7decbf70-Expr", + "id": "0x55fb7c1fbf70-Expr", "variantKey": "Designator", - "Designator": "0x561b7decc930-Designator" + "Designator": "0x55fb7c1fc930-Designator" }, { - "id": "0x561b7decc930-Designator", + "id": "0x55fb7c1fc930-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7decc940-DataRef" + "DataRef": "0x55fb7c1fc940-DataRef" }, { - "id": "0x561b7decc940-DataRef", + "id": "0x55fb7c1fc940-DataRef", "variantKey": "Name", - "Name": "0x561b7decc940-Name" + "Name": "0x55fb7c1fc940-Name" }, { - "id": "0x561b7decc940-Name", + "id": "0x55fb7c1fc940-Name", "source": "v_b" }, { - "id": "0x561b7decc4a0-ExecutionPartConstruct", + "id": "0x55fb7c1fc4a0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7decc4a0-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c1fc4a0-ExecutableConstruct" }, { - "id": "0x561b7decc4a0-ExecutableConstruct", + "id": "0x55fb7c1fc4a0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x561b7ded96c0-DoConstruct" + "DoConstruct": "0x55fb7c2096c0-DoConstruct" }, { - "id": "0x561b7ded96c0-DoConstruct", - "Statement": "0x561b7ded9718-Statement", + "id": "0x55fb7c2096c0-DoConstruct", + "Statement": "0x55fb7c209718-Statement", "ExecutionPartConstruct": [ - "0x561b7dedb790-ExecutionPartConstruct", - "0x561b7deddeb0-ExecutionPartConstruct", - "0x561b7dedd790-ExecutionPartConstruct" + "0x55fb7c20b790-ExecutionPartConstruct", + "0x55fb7c20deb0-ExecutionPartConstruct", + "0x55fb7c20d790-ExecutionPartConstruct" ], - "Statement": "0x561b7ded96c0-Statement" + "Statement": "0x55fb7c2096c0-Statement" }, { - "id": "0x561b7ded9718-Statement", - "statement": "0x561b7ded9728-NonLabelDoStmt", + "id": "0x55fb7c209718-Statement", + "statement": "0x55fb7c209728-NonLabelDoStmt", "source": "do50i=1,10,1" }, { - "id": "0x561b7ded9728-NonLabelDoStmt", - "LoopControl": "0x561b7ded9728-LoopControl" + "id": "0x55fb7c209728-NonLabelDoStmt", + "LoopControl": "0x55fb7c209728-LoopControl" }, { - "id": "0x561b7ded9728-LoopControl", + "id": "0x55fb7c209728-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x561b7ded9728-LoopBounds" + "LoopBounds": "0x55fb7c209728-LoopBounds" }, { - "id": "0x561b7ded9728-LoopBounds", - "var": "0x561b7ded9728-Name", - "lower": "0x561b7deccb10-Expr", - "upper": "0x561b7deccbf0-Expr", - "step": "0x561b7decccd0-Expr" + "id": "0x55fb7c209728-LoopBounds", + "var": "0x55fb7c209728-Name", + "lower": "0x55fb7c1fcb10-Expr", + "upper": "0x55fb7c1fcbf0-Expr", + "step": "0x55fb7c1fccd0-Expr" }, { - "id": "0x561b7ded9728-Name", + "id": "0x55fb7c209728-Name", "source": "i" }, { - "id": "0x561b7deccb10-Expr", + "id": "0x55fb7c1fcb10-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7deccb30-LiteralConstant" + "LiteralConstant": "0x55fb7c1fcb30-LiteralConstant" }, { - "id": "0x561b7deccb30-LiteralConstant", + "id": "0x55fb7c1fcb30-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7deccb30-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1fcb30-IntLiteralConstant" }, { - "id": "0x561b7deccb30-IntLiteralConstant", + "id": "0x55fb7c1fcb30-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x561b7deccbf0-Expr", + "id": "0x55fb7c1fcbf0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7deccc10-LiteralConstant" + "LiteralConstant": "0x55fb7c1fcc10-LiteralConstant" }, { - "id": "0x561b7deccc10-LiteralConstant", + "id": "0x55fb7c1fcc10-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7deccc10-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1fcc10-IntLiteralConstant" }, { - "id": "0x561b7deccc10-IntLiteralConstant", + "id": "0x55fb7c1fcc10-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x561b7decccd0-Expr", + "id": "0x55fb7c1fccd0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7decccf0-LiteralConstant" + "LiteralConstant": "0x55fb7c1fccf0-LiteralConstant" }, { - "id": "0x561b7decccf0-LiteralConstant", + "id": "0x55fb7c1fccf0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7decccf0-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c1fccf0-IntLiteralConstant" }, { - "id": "0x561b7decccf0-IntLiteralConstant", + "id": "0x55fb7c1fccf0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x561b7ded9700-ExecutionPartConstruct" + "id": "0x55fb7c209700-ExecutionPartConstruct" }, { - "id": "0x561b7dedb790-ExecutionPartConstruct", + "id": "0x55fb7c20b790-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dedb790-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c20b790-ExecutableConstruct" }, { - "id": "0x561b7dedb790-ExecutableConstruct", + "id": "0x55fb7c20b790-ExecutableConstruct", "variantKey": "IfConstruct", - "IfConstruct": "0x561b7de6c780-IfConstruct" + "IfConstruct": "0x55fb7c19c780-IfConstruct" }, { - "id": "0x561b7de6c780-IfConstruct", - "Statement": "0x561b7de6c850-Statement", + "id": "0x55fb7c19c780-IfConstruct", + "Statement": "0x55fb7c19c850-Statement", "ExecutionPartConstruct": [ - "0x561b7dec41b0-ExecutionPartConstruct" + "0x55fb7c1f41b0-ExecutionPartConstruct" ], - "Statement": "0x561b7de6c780-Statement" + "Statement": "0x55fb7c19c780-Statement" }, { - "id": "0x561b7de6c850-Statement", - "statement": "0x561b7de6c860-IfThenStmt", + "id": "0x55fb7c19c850-Statement", + "statement": "0x55fb7c19c860-IfThenStmt", "source": "if(v_a(i).ne.s_a(i))then" }, { - "id": "0x561b7de6c860-IfThenStmt", - "Expr": "0x561b7dedb440-Expr" + "id": "0x55fb7c19c860-IfThenStmt", + "Expr": "0x55fb7c20b440-Expr" }, { - "id": "0x561b7dedb440-Expr", + "id": "0x55fb7c20b440-Expr", "variantKey": "NE", - "NE": "0x561b7dedb460-NE" + "NE": "0x55fb7c20b460-NE" }, { - "id": "0x561b7dedb460-NE", - "left": "0x561b7deccf30-Expr", - "right": "0x561b7dedb360-Expr", + "id": "0x55fb7c20b460-NE", + "left": "0x55fb7c1fcf30-Expr", + "right": "0x55fb7c20b360-Expr", "op": "NE" }, { - "id": "0x561b7deccf30-Expr", + "id": "0x55fb7c1fcf30-Expr", "variantKey": "Designator", - "Designator": "0x561b7dec79c0-Designator" + "Designator": "0x55fb7c1f79c0-Designator" }, { - "id": "0x561b7dec79c0-Designator", + "id": "0x55fb7c1f79c0-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dec79d0-DataRef" + "DataRef": "0x55fb7c1f79d0-DataRef" }, { - "id": "0x561b7dec79d0-DataRef", + "id": "0x55fb7c1f79d0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x561b7ded7b60-ArrayElement" + "ArrayElement": "0x55fb7c207b60-ArrayElement" }, { - "id": "0x561b7ded7b60-ArrayElement", - "base": "0x561b7ded7b60-DataRef", + "id": "0x55fb7c207b60-ArrayElement", + "base": "0x55fb7c207b60-DataRef", "subscripts": [ - "0x561b7df006d0-SectionSubscript" + "0x55fb7c2306d0-SectionSubscript" ] }, { - "id": "0x561b7ded7b60-DataRef", + "id": "0x55fb7c207b60-DataRef", "variantKey": "Name", - "Name": "0x561b7ded7b60-Name" + "Name": "0x55fb7c207b60-Name" }, { - "id": "0x561b7ded7b60-Name", + "id": "0x55fb7c207b60-Name", "source": "v_a" }, { - "id": "0x561b7df006d0-SectionSubscript", + "id": "0x55fb7c2306d0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x561b7dec95f0-Expr" + "Expr": "0x55fb7c1f95f0-Expr" }, { - "id": "0x561b7dec95f0-Expr", + "id": "0x55fb7c1f95f0-Expr", "variantKey": "Designator", - "Designator": "0x561b7deca040-Designator" + "Designator": "0x55fb7c1fa040-Designator" }, { - "id": "0x561b7deca040-Designator", + "id": "0x55fb7c1fa040-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7deca050-DataRef" + "DataRef": "0x55fb7c1fa050-DataRef" }, { - "id": "0x561b7deca050-DataRef", + "id": "0x55fb7c1fa050-DataRef", "variantKey": "Name", - "Name": "0x561b7deca050-Name" + "Name": "0x55fb7c1fa050-Name" }, { - "id": "0x561b7deca050-Name", + "id": "0x55fb7c1fa050-Name", "source": "i" }, { - "id": "0x561b7dedb360-Expr", + "id": "0x55fb7c20b360-Expr", "variantKey": "Designator", - "Designator": "0x561b7dec84c0-Designator" + "Designator": "0x55fb7c1f84c0-Designator" }, { - "id": "0x561b7dec84c0-Designator", + "id": "0x55fb7c1f84c0-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dec84d0-DataRef" + "DataRef": "0x55fb7c1f84d0-DataRef" }, { - "id": "0x561b7dec84d0-DataRef", + "id": "0x55fb7c1f84d0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x561b7dedadf0-ArrayElement" + "ArrayElement": "0x55fb7c20adf0-ArrayElement" }, { - "id": "0x561b7dedadf0-ArrayElement", - "base": "0x561b7dedadf0-DataRef", + "id": "0x55fb7c20adf0-ArrayElement", + "base": "0x55fb7c20adf0-DataRef", "subscripts": [ - "0x561b7dee90e0-SectionSubscript" + "0x55fb7c2190e0-SectionSubscript" ] }, { - "id": "0x561b7dedadf0-DataRef", + "id": "0x55fb7c20adf0-DataRef", "variantKey": "Name", - "Name": "0x561b7dedadf0-Name" + "Name": "0x55fb7c20adf0-Name" }, { - "id": "0x561b7dedadf0-Name", + "id": "0x55fb7c20adf0-Name", "source": "s_a" }, { - "id": "0x561b7dee90e0-SectionSubscript", + "id": "0x55fb7c2190e0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x561b7dedb280-Expr" + "Expr": "0x55fb7c20b280-Expr" }, { - "id": "0x561b7dedb280-Expr", + "id": "0x55fb7c20b280-Expr", "variantKey": "Designator", - "Designator": "0x561b7decb230-Designator" + "Designator": "0x55fb7c1fb230-Designator" }, { - "id": "0x561b7decb230-Designator", + "id": "0x55fb7c1fb230-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7decb240-DataRef" + "DataRef": "0x55fb7c1fb240-DataRef" }, { - "id": "0x561b7decb240-DataRef", + "id": "0x55fb7c1fb240-DataRef", "variantKey": "Name", - "Name": "0x561b7decb240-Name" + "Name": "0x55fb7c1fb240-Name" }, { - "id": "0x561b7decb240-Name", + "id": "0x55fb7c1fb240-Name", "source": "i" }, { - "id": "0x561b7de6c838-ExecutionPartConstruct" + "id": "0x55fb7c19c838-ExecutionPartConstruct" }, { - "id": "0x561b7dec41b0-ExecutionPartConstruct", + "id": "0x55fb7c1f41b0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dec41b0-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c1f41b0-ExecutableConstruct" }, { - "id": "0x561b7dec41b0-ExecutableConstruct", + "id": "0x55fb7c1f41b0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561b7dec41b0-Statement" + "Statement": "0x55fb7c1f41b0-Statement" }, { - "id": "0x561b7dec41b0-Statement", - "statement": "0x561b7dec41c0-ActionStmt", + "id": "0x55fb7c1f41b0-Statement", + "statement": "0x55fb7c1f41c0-ActionStmt", "source": "error=error+1" }, { - "id": "0x561b7dec41c0-ActionStmt", + "id": "0x55fb7c1f41c0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x561b7decd010-AssignmentStmt" + "AssignmentStmt": "0x55fb7c1fd010-AssignmentStmt" }, { - "id": "0x561b7decd010-AssignmentStmt", - "Variable": "0x561b7decd0f0-Variable", - "Expr": "0x561b7decd020-Expr" + "id": "0x55fb7c1fd010-AssignmentStmt", + "Variable": "0x55fb7c1fd0f0-Variable", + "Expr": "0x55fb7c1fd020-Expr" }, { - "id": "0x561b7decd0f0-Variable", + "id": "0x55fb7c1fd0f0-Variable", "variantKey": "Designator", - "Designator": "0x561b7decca50-Designator" + "Designator": "0x55fb7c1fca50-Designator" }, { - "id": "0x561b7decca50-Designator", + "id": "0x55fb7c1fca50-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7decca60-DataRef" + "DataRef": "0x55fb7c1fca60-DataRef" }, { - "id": "0x561b7decca60-DataRef", + "id": "0x55fb7c1fca60-DataRef", "variantKey": "Name", - "Name": "0x561b7decca60-Name" + "Name": "0x55fb7c1fca60-Name" }, { - "id": "0x561b7decca60-Name", + "id": "0x55fb7c1fca60-Name", "source": "error" }, { - "id": "0x561b7decd020-Expr", + "id": "0x55fb7c1fd020-Expr", "variantKey": "Add", - "Add": "0x561b7decd040-Add" + "Add": "0x55fb7c1fd040-Add" }, { - "id": "0x561b7decd040-Add", - "left": "0x561b7dedd450-Expr", - "right": "0x561b7dedd370-Expr", + "id": "0x55fb7c1fd040-Add", + "left": "0x55fb7c20d450-Expr", + "right": "0x55fb7c20d370-Expr", "op": "ADD" }, { - "id": "0x561b7dedd450-Expr", + "id": "0x55fb7c20d450-Expr", "variantKey": "Designator", - "Designator": "0x561b7deca180-Designator" + "Designator": "0x55fb7c1fa180-Designator" }, { - "id": "0x561b7deca180-Designator", + "id": "0x55fb7c1fa180-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7deca190-DataRef" + "DataRef": "0x55fb7c1fa190-DataRef" }, { - "id": "0x561b7deca190-DataRef", + "id": "0x55fb7c1fa190-DataRef", "variantKey": "Name", - "Name": "0x561b7deca190-Name" + "Name": "0x55fb7c1fa190-Name" }, { - "id": "0x561b7deca190-Name", + "id": "0x55fb7c1fa190-Name", "source": "error" }, { - "id": "0x561b7dedd370-Expr", + "id": "0x55fb7c20d370-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dedd390-LiteralConstant" + "LiteralConstant": "0x55fb7c20d390-LiteralConstant" }, { - "id": "0x561b7dedd390-LiteralConstant", + "id": "0x55fb7c20d390-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dedd390-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c20d390-IntLiteralConstant" }, { - "id": "0x561b7dedd390-IntLiteralConstant", + "id": "0x55fb7c20d390-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x561b7de6c780-Statement", - "statement": "0x561b7de6c790-EndIfStmt", + "id": "0x55fb7c19c780-Statement", + "statement": "0x55fb7c19c790-EndIfStmt", "source": "endif" }, { - "id": "0x561b7de6c790-EndIfStmt" + "id": "0x55fb7c19c790-EndIfStmt" }, { - "id": "0x561b7deddeb0-ExecutionPartConstruct", + "id": "0x55fb7c20deb0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7deddeb0-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c20deb0-ExecutableConstruct" }, { - "id": "0x561b7deddeb0-ExecutableConstruct", + "id": "0x55fb7c20deb0-ExecutableConstruct", "variantKey": "IfConstruct", - "IfConstruct": "0x561b7dede1a0-IfConstruct" + "IfConstruct": "0x55fb7c20e1a0-IfConstruct" }, { - "id": "0x561b7dede1a0-IfConstruct", - "Statement": "0x561b7dede270-Statement", + "id": "0x55fb7c20e1a0-IfConstruct", + "Statement": "0x55fb7c20e270-Statement", "ExecutionPartConstruct": [ - "0x561b7dec6800-ExecutionPartConstruct" + "0x55fb7c1f6800-ExecutionPartConstruct" ], - "Statement": "0x561b7dede1a0-Statement" + "Statement": "0x55fb7c20e1a0-Statement" }, { - "id": "0x561b7dede270-Statement", - "statement": "0x561b7dede280-IfThenStmt", + "id": "0x55fb7c20e270-Statement", + "statement": "0x55fb7c20e280-IfThenStmt", "source": "if(v_b(i).ne.s_b(i))then" }, { - "id": "0x561b7dede280-IfThenStmt", - "Expr": "0x561b7deddbf0-Expr" + "id": "0x55fb7c20e280-IfThenStmt", + "Expr": "0x55fb7c20dbf0-Expr" }, { - "id": "0x561b7deddbf0-Expr", + "id": "0x55fb7c20dbf0-Expr", "variantKey": "NE", - "NE": "0x561b7deddc10-NE" + "NE": "0x55fb7c20dc10-NE" }, { - "id": "0x561b7deddc10-NE", - "left": "0x561b7dedd530-Expr", - "right": "0x561b7deddb10-Expr", + "id": "0x55fb7c20dc10-NE", + "left": "0x55fb7c20d530-Expr", + "right": "0x55fb7c20db10-Expr", "op": "NE" }, { - "id": "0x561b7dedd530-Expr", + "id": "0x55fb7c20d530-Expr", "variantKey": "Designator", - "Designator": "0x561b7dec7bb0-Designator" + "Designator": "0x55fb7c1f7bb0-Designator" }, { - "id": "0x561b7dec7bb0-Designator", + "id": "0x55fb7c1f7bb0-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dec7bc0-DataRef" + "DataRef": "0x55fb7c1f7bc0-DataRef" }, { - "id": "0x561b7dec7bc0-DataRef", + "id": "0x55fb7c1f7bc0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x561b7deebcd0-ArrayElement" + "ArrayElement": "0x55fb7c21bcd0-ArrayElement" }, { - "id": "0x561b7deebcd0-ArrayElement", - "base": "0x561b7deebcd0-DataRef", + "id": "0x55fb7c21bcd0-ArrayElement", + "base": "0x55fb7c21bcd0-DataRef", "subscripts": [ - "0x561b7deea4f0-SectionSubscript" + "0x55fb7c21a4f0-SectionSubscript" ] }, { - "id": "0x561b7deebcd0-DataRef", + "id": "0x55fb7c21bcd0-DataRef", "variantKey": "Name", - "Name": "0x561b7deebcd0-Name" + "Name": "0x55fb7c21bcd0-Name" }, { - "id": "0x561b7deebcd0-Name", + "id": "0x55fb7c21bcd0-Name", "source": "v_b" }, { - "id": "0x561b7deea4f0-SectionSubscript", + "id": "0x55fb7c21a4f0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x561b7dedb090-Expr" + "Expr": "0x55fb7c20b090-Expr" }, { - "id": "0x561b7dedb090-Expr", + "id": "0x55fb7c20b090-Expr", "variantKey": "Designator", - "Designator": "0x561b7dedde40-Designator" + "Designator": "0x55fb7c20de40-Designator" }, { - "id": "0x561b7dedde40-Designator", + "id": "0x55fb7c20de40-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dedde50-DataRef" + "DataRef": "0x55fb7c20de50-DataRef" }, { - "id": "0x561b7dedde50-DataRef", + "id": "0x55fb7c20de50-DataRef", "variantKey": "Name", - "Name": "0x561b7dedde50-Name" + "Name": "0x55fb7c20de50-Name" }, { - "id": "0x561b7dedde50-Name", + "id": "0x55fb7c20de50-Name", "source": "i" }, { - "id": "0x561b7deddb10-Expr", + "id": "0x55fb7c20db10-Expr", "variantKey": "Designator", - "Designator": "0x561b7deea0a0-Designator" + "Designator": "0x55fb7c21a0a0-Designator" }, { - "id": "0x561b7deea0a0-Designator", + "id": "0x55fb7c21a0a0-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7deea0b0-DataRef" + "DataRef": "0x55fb7c21a0b0-DataRef" }, { - "id": "0x561b7deea0b0-DataRef", + "id": "0x55fb7c21a0b0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x561b7dee9a50-ArrayElement" + "ArrayElement": "0x55fb7c219a50-ArrayElement" }, { - "id": "0x561b7dee9a50-ArrayElement", - "base": "0x561b7dee9a50-DataRef", + "id": "0x55fb7c219a50-ArrayElement", + "base": "0x55fb7c219a50-DataRef", "subscripts": [ - "0x561b7deea540-SectionSubscript" + "0x55fb7c21a540-SectionSubscript" ] }, { - "id": "0x561b7dee9a50-DataRef", + "id": "0x55fb7c219a50-DataRef", "variantKey": "Name", - "Name": "0x561b7dee9a50-Name" + "Name": "0x55fb7c219a50-Name" }, { - "id": "0x561b7dee9a50-Name", + "id": "0x55fb7c219a50-Name", "source": "s_b" }, { - "id": "0x561b7deea540-SectionSubscript", + "id": "0x55fb7c21a540-SectionSubscript", "variantKey": "Expr", - "Expr": "0x561b7dedda30-Expr" + "Expr": "0x55fb7c20da30-Expr" }, { - "id": "0x561b7dedda30-Expr", + "id": "0x55fb7c20da30-Expr", "variantKey": "Designator", - "Designator": "0x561b7deca470-Designator" + "Designator": "0x55fb7c1fa470-Designator" }, { - "id": "0x561b7deca470-Designator", + "id": "0x55fb7c1fa470-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7deca480-DataRef" + "DataRef": "0x55fb7c1fa480-DataRef" }, { - "id": "0x561b7deca480-DataRef", + "id": "0x55fb7c1fa480-DataRef", "variantKey": "Name", - "Name": "0x561b7deca480-Name" + "Name": "0x55fb7c1fa480-Name" }, { - "id": "0x561b7deca480-Name", + "id": "0x55fb7c1fa480-Name", "source": "i" }, { - "id": "0x561b7dede258-ExecutionPartConstruct" + "id": "0x55fb7c20e258-ExecutionPartConstruct" }, { - "id": "0x561b7dec6800-ExecutionPartConstruct", + "id": "0x55fb7c1f6800-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dec6800-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c1f6800-ExecutableConstruct" }, { - "id": "0x561b7dec6800-ExecutableConstruct", + "id": "0x55fb7c1f6800-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561b7dec6800-Statement" + "Statement": "0x55fb7c1f6800-Statement" }, { - "id": "0x561b7dec6800-Statement", - "statement": "0x561b7dec6810-ActionStmt", + "id": "0x55fb7c1f6800-Statement", + "statement": "0x55fb7c1f6810-ActionStmt", "source": "error=error+1" }, { - "id": "0x561b7dec6810-ActionStmt", + "id": "0x55fb7c1f6810-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x561b7dedd610-AssignmentStmt" + "AssignmentStmt": "0x55fb7c20d610-AssignmentStmt" }, { - "id": "0x561b7dedd610-AssignmentStmt", - "Variable": "0x561b7dedd6f0-Variable", - "Expr": "0x561b7dedd620-Expr" + "id": "0x55fb7c20d610-AssignmentStmt", + "Variable": "0x55fb7c20d6f0-Variable", + "Expr": "0x55fb7c20d620-Expr" }, { - "id": "0x561b7dedd6f0-Variable", + "id": "0x55fb7c20d6f0-Variable", "variantKey": "Designator", - "Designator": "0x561b7decb1d0-Designator" + "Designator": "0x55fb7c1fb1d0-Designator" }, { - "id": "0x561b7decb1d0-Designator", + "id": "0x55fb7c1fb1d0-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7decb1e0-DataRef" + "DataRef": "0x55fb7c1fb1e0-DataRef" }, { - "id": "0x561b7decb1e0-DataRef", + "id": "0x55fb7c1fb1e0-DataRef", "variantKey": "Name", - "Name": "0x561b7decb1e0-Name" + "Name": "0x55fb7c1fb1e0-Name" }, { - "id": "0x561b7decb1e0-Name", + "id": "0x55fb7c1fb1e0-Name", "source": "error" }, { - "id": "0x561b7dedd620-Expr", + "id": "0x55fb7c20d620-Expr", "variantKey": "Add", - "Add": "0x561b7dedd640-Add" + "Add": "0x55fb7c20d640-Add" }, { - "id": "0x561b7dedd640-Add", - "left": "0x561b7dede0c0-Expr", - "right": "0x561b7deddfe0-Expr", + "id": "0x55fb7c20d640-Add", + "left": "0x55fb7c20e0c0-Expr", + "right": "0x55fb7c20dfe0-Expr", "op": "ADD" }, { - "id": "0x561b7dede0c0-Expr", + "id": "0x55fb7c20e0c0-Expr", "variantKey": "Designator", - "Designator": "0x561b7decc130-Designator" + "Designator": "0x55fb7c1fc130-Designator" }, { - "id": "0x561b7decc130-Designator", + "id": "0x55fb7c1fc130-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7decc140-DataRef" + "DataRef": "0x55fb7c1fc140-DataRef" }, { - "id": "0x561b7decc140-DataRef", + "id": "0x55fb7c1fc140-DataRef", "variantKey": "Name", - "Name": "0x561b7decc140-Name" + "Name": "0x55fb7c1fc140-Name" }, { - "id": "0x561b7decc140-Name", + "id": "0x55fb7c1fc140-Name", "source": "error" }, { - "id": "0x561b7deddfe0-Expr", + "id": "0x55fb7c20dfe0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dede000-LiteralConstant" + "LiteralConstant": "0x55fb7c20e000-LiteralConstant" }, { - "id": "0x561b7dede000-LiteralConstant", + "id": "0x55fb7c20e000-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dede000-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c20e000-IntLiteralConstant" }, { - "id": "0x561b7dede000-IntLiteralConstant", + "id": "0x55fb7c20e000-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x561b7dede1a0-Statement", - "statement": "0x561b7dede1b0-EndIfStmt", + "id": "0x55fb7c20e1a0-Statement", + "statement": "0x55fb7c20e1b0-EndIfStmt", "source": "endif" }, { - "id": "0x561b7dede1b0-EndIfStmt" + "id": "0x55fb7c20e1b0-EndIfStmt" }, { - "id": "0x561b7dedd790-ExecutionPartConstruct", + "id": "0x55fb7c20d790-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dedd790-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c20d790-ExecutableConstruct" }, { - "id": "0x561b7dedd790-ExecutableConstruct", + "id": "0x55fb7c20d790-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561b7dedd790-Statement" + "Statement": "0x55fb7c20d790-Statement" }, { - "id": "0x561b7dedd790-Statement", - "statement": "0x561b7dedd7a0-ActionStmt", + "id": "0x55fb7c20d790-Statement", + "statement": "0x55fb7c20d7a0-ActionStmt", "label": "50", "source": "50continue" }, { - "id": "0x561b7dedd7a0-ActionStmt", + "id": "0x55fb7c20d7a0-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x561b7dedd7a0-ContinueStmt" + "ContinueStmt": "0x55fb7c20d7a0-ContinueStmt" }, { - "id": "0x561b7dedd7a0-ContinueStmt" + "id": "0x55fb7c20d7a0-ContinueStmt" }, { - "id": "0x561b7ded96c0-Statement", - "statement": "0x561b7ded96d0-EndDoStmt", + "id": "0x55fb7c2096c0-Statement", + "statement": "0x55fb7c2096d0-EndDoStmt", "source": "" }, { - "id": "0x561b7ded96d0-EndDoStmt" + "id": "0x55fb7c2096d0-EndDoStmt" }, { - "id": "0x561b7dee0170-ExecutionPartConstruct", + "id": "0x55fb7c210170-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dee0170-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c210170-ExecutableConstruct" }, { - "id": "0x561b7dee0170-ExecutableConstruct", + "id": "0x55fb7c210170-ExecutableConstruct", "variantKey": "IfConstruct", - "IfConstruct": "0x561b7dee0220-IfConstruct" + "IfConstruct": "0x55fb7c210220-IfConstruct" }, { - "id": "0x561b7dee0220-IfConstruct", - "Statement": "0x561b7dee02f0-Statement", + "id": "0x55fb7c210220-IfConstruct", + "Statement": "0x55fb7c2102f0-Statement", "ExecutionPartConstruct": [ - "0x561b7dec4fa0-ExecutionPartConstruct" + "0x55fb7c1f4fa0-ExecutionPartConstruct" ], - "ElseBlock": "0x561b7dee0260-ElseBlock", - "Statement": "0x561b7dee0220-Statement" + "ElseBlock": "0x55fb7c210260-ElseBlock", + "Statement": "0x55fb7c210220-Statement" }, { - "id": "0x561b7dee02f0-Statement", - "statement": "0x561b7dee0300-IfThenStmt", + "id": "0x55fb7c2102f0-Statement", + "statement": "0x55fb7c210300-IfThenStmt", "source": "if(error.eq.0)then" }, { - "id": "0x561b7dee0300-IfThenStmt", - "Expr": "0x561b7dede2c0-Expr" + "id": "0x55fb7c210300-IfThenStmt", + "Expr": "0x55fb7c20e2c0-Expr" }, { - "id": "0x561b7dede2c0-Expr", + "id": "0x55fb7c20e2c0-Expr", "variantKey": "EQ", - "EQ": "0x561b7dede2e0-EQ" + "EQ": "0x55fb7c20e2e0-EQ" }, { - "id": "0x561b7dede2e0-EQ", - "left": "0x561b7dede480-Expr", - "right": "0x561b7dede3a0-Expr", + "id": "0x55fb7c20e2e0-EQ", + "left": "0x55fb7c20e480-Expr", + "right": "0x55fb7c20e3a0-Expr", "op": "EQ" }, { - "id": "0x561b7dede480-Expr", + "id": "0x55fb7c20e480-Expr", "variantKey": "Designator", - "Designator": "0x561b7dedd8c0-Designator" + "Designator": "0x55fb7c20d8c0-Designator" }, { - "id": "0x561b7dedd8c0-Designator", + "id": "0x55fb7c20d8c0-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dedd8d0-DataRef" + "DataRef": "0x55fb7c20d8d0-DataRef" }, { - "id": "0x561b7dedd8d0-DataRef", + "id": "0x55fb7c20d8d0-DataRef", "variantKey": "Name", - "Name": "0x561b7dedd8d0-Name" + "Name": "0x55fb7c20d8d0-Name" }, { - "id": "0x561b7dedd8d0-Name", + "id": "0x55fb7c20d8d0-Name", "source": "error" }, { - "id": "0x561b7dede3a0-Expr", + "id": "0x55fb7c20e3a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dede3c0-LiteralConstant" + "LiteralConstant": "0x55fb7c20e3c0-LiteralConstant" }, { - "id": "0x561b7dede3c0-LiteralConstant", + "id": "0x55fb7c20e3c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dede3c0-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c20e3c0-IntLiteralConstant" }, { - "id": "0x561b7dede3c0-IntLiteralConstant", + "id": "0x55fb7c20e3c0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x561b7dee02d8-ExecutionPartConstruct" + "id": "0x55fb7c2102d8-ExecutionPartConstruct" }, { - "id": "0x561b7dec4fa0-ExecutionPartConstruct", + "id": "0x55fb7c1f4fa0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dec4fa0-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c1f4fa0-ExecutableConstruct" }, { - "id": "0x561b7dec4fa0-ExecutableConstruct", + "id": "0x55fb7c1f4fa0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561b7dec4fa0-Statement" + "Statement": "0x55fb7c1f4fa0-Statement" }, { - "id": "0x561b7dec4fa0-Statement", - "statement": "0x561b7dec4fb0-ActionStmt", + "id": "0x55fb7c1f4fa0-Statement", + "statement": "0x55fb7c1f4fb0-ActionStmt", "source": "write(6,*)'OK'" }, { - "id": "0x561b7dec4fb0-ActionStmt", + "id": "0x55fb7c1f4fb0-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x561b7dede8a0-WriteStmt" + "WriteStmt": "0x55fb7c20e8a0-WriteStmt" }, { - "id": "0x561b7dede8a0-WriteStmt", - "iounit": "0x561b7dede8a0-IoUnit", - "format": "0x561b7dede8d0-Format", + "id": "0x55fb7c20e8a0-WriteStmt", + "iounit": "0x55fb7c20e8a0-IoUnit", + "format": "0x55fb7c20e8d0-Format", "controls": [], "items": [ - "0x561b7dede7c0-OutputItem" + "0x55fb7c20e7c0-OutputItem" ] }, { - "id": "0x561b7dede8a0-IoUnit", + "id": "0x55fb7c20e8a0-IoUnit", "variantKey": "Expr", - "Expr": "0x561b7dede6d0-Expr" + "Expr": "0x55fb7c20e6d0-Expr" }, { - "id": "0x561b7dede6d0-Expr", + "id": "0x55fb7c20e6d0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dede6f0-LiteralConstant" + "LiteralConstant": "0x55fb7c20e6f0-LiteralConstant" }, { - "id": "0x561b7dede6f0-LiteralConstant", + "id": "0x55fb7c20e6f0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dede6f0-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c20e6f0-IntLiteralConstant" }, { - "id": "0x561b7dede6f0-IntLiteralConstant", + "id": "0x55fb7c20e6f0-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x561b7dede8d0-Format", + "id": "0x55fb7c20e8d0-Format", "variantKey": "Star", - "Star": "0x561b7dede8d0-Star" + "Star": "0x55fb7c20e8d0-Star" }, { - "id": "0x561b7dede8d0-Star" + "id": "0x55fb7c20e8d0-Star" }, { - "id": "0x561b7dede7c0-OutputItem", + "id": "0x55fb7c20e7c0-OutputItem", "variantKey": "Expr", - "Expr": "0x561b7dede7c0-Expr" + "Expr": "0x55fb7c20e7c0-Expr" }, { - "id": "0x561b7dede7c0-Expr", + "id": "0x55fb7c20e7c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dede7e0-LiteralConstant" + "LiteralConstant": "0x55fb7c20e7e0-LiteralConstant" }, { - "id": "0x561b7dede7e0-LiteralConstant", + "id": "0x55fb7c20e7e0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x561b7dede7e0-CharLiteralConstant" + "CharLiteralConstant": "0x55fb7c20e7e0-CharLiteralConstant" }, { - "id": "0x561b7dede7e0-CharLiteralConstant", + "id": "0x55fb7c20e7e0-CharLiteralConstant", "string": "OK" }, { - "id": "0x561b7dee0260-ElseBlock", - "Statement": "0x561b7dee0278-Statement", + "id": "0x55fb7c210260-ElseBlock", + "Statement": "0x55fb7c210278-Statement", "ExecutionPartConstruct": [ - "0x561b7deded20-ExecutionPartConstruct", - "0x561b7dedf2b0-ExecutionPartConstruct", - "0x561b7dedf630-ExecutionPartConstruct", - "0x561b7dedfa10-ExecutionPartConstruct", - "0x561b7dedfdf0-ExecutionPartConstruct", - "0x561b7dee01d0-ExecutionPartConstruct" + "0x55fb7c20ed20-ExecutionPartConstruct", + "0x55fb7c20f2b0-ExecutionPartConstruct", + "0x55fb7c20f630-ExecutionPartConstruct", + "0x55fb7c20fa10-ExecutionPartConstruct", + "0x55fb7c20fdf0-ExecutionPartConstruct", + "0x55fb7c2101d0-ExecutionPartConstruct" ] }, { - "id": "0x561b7dee0278-Statement", - "statement": "0x561b7dee0288-ElseStmt", + "id": "0x55fb7c210278-Statement", + "statement": "0x55fb7c210288-ElseStmt", "source": "else" }, { - "id": "0x561b7dee0288-ElseStmt" + "id": "0x55fb7c210288-ElseStmt" }, { - "id": "0x561b7dee0260-ExecutionPartConstruct" + "id": "0x55fb7c210260-ExecutionPartConstruct" }, { - "id": "0x561b7deded20-ExecutionPartConstruct", + "id": "0x55fb7c20ed20-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7deded20-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c20ed20-ExecutableConstruct" }, { - "id": "0x561b7deded20-ExecutableConstruct", + "id": "0x55fb7c20ed20-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561b7deded20-Statement" + "Statement": "0x55fb7c20ed20-Statement" }, { - "id": "0x561b7deded20-Statement", - "statement": "0x561b7deded30-ActionStmt", + "id": "0x55fb7c20ed20-Statement", + "statement": "0x55fb7c20ed30-ActionStmt", "source": "write(6,*)'NG'" }, { - "id": "0x561b7deded30-ActionStmt", + "id": "0x55fb7c20ed30-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x561b7dedebc0-WriteStmt" + "WriteStmt": "0x55fb7c20ebc0-WriteStmt" }, { - "id": "0x561b7dedebc0-WriteStmt", - "iounit": "0x561b7dedebc0-IoUnit", - "format": "0x561b7dedebf0-Format", + "id": "0x55fb7c20ebc0-WriteStmt", + "iounit": "0x55fb7c20ebc0-IoUnit", + "format": "0x55fb7c20ebf0-Format", "controls": [], "items": [ - "0x561b7dedeae0-OutputItem" + "0x55fb7c20eae0-OutputItem" ] }, { - "id": "0x561b7dedebc0-IoUnit", + "id": "0x55fb7c20ebc0-IoUnit", "variantKey": "Expr", - "Expr": "0x561b7dede9f0-Expr" + "Expr": "0x55fb7c20e9f0-Expr" }, { - "id": "0x561b7dede9f0-Expr", + "id": "0x55fb7c20e9f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dedea10-LiteralConstant" + "LiteralConstant": "0x55fb7c20ea10-LiteralConstant" }, { - "id": "0x561b7dedea10-LiteralConstant", + "id": "0x55fb7c20ea10-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dedea10-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c20ea10-IntLiteralConstant" }, { - "id": "0x561b7dedea10-IntLiteralConstant", + "id": "0x55fb7c20ea10-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x561b7dedebf0-Format", + "id": "0x55fb7c20ebf0-Format", "variantKey": "Star", - "Star": "0x561b7dedebf0-Star" + "Star": "0x55fb7c20ebf0-Star" }, { - "id": "0x561b7dedebf0-Star" + "id": "0x55fb7c20ebf0-Star" }, { - "id": "0x561b7dedeae0-OutputItem", + "id": "0x55fb7c20eae0-OutputItem", "variantKey": "Expr", - "Expr": "0x561b7dedeae0-Expr" + "Expr": "0x55fb7c20eae0-Expr" }, { - "id": "0x561b7dedeae0-Expr", + "id": "0x55fb7c20eae0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dedeb00-LiteralConstant" + "LiteralConstant": "0x55fb7c20eb00-LiteralConstant" }, { - "id": "0x561b7dedeb00-LiteralConstant", + "id": "0x55fb7c20eb00-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x561b7dedeb00-CharLiteralConstant" + "CharLiteralConstant": "0x55fb7c20eb00-CharLiteralConstant" }, { - "id": "0x561b7dedeb00-CharLiteralConstant", + "id": "0x55fb7c20eb00-CharLiteralConstant", "string": "NG" }, { - "id": "0x561b7dedf2b0-ExecutionPartConstruct", + "id": "0x55fb7c20f2b0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dedf2b0-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c20f2b0-ExecutableConstruct" }, { - "id": "0x561b7dedf2b0-ExecutableConstruct", + "id": "0x55fb7c20f2b0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561b7dedf2b0-Statement" + "Statement": "0x55fb7c20f2b0-Statement" }, { - "id": "0x561b7dedf2b0-Statement", - "statement": "0x561b7dedf2c0-ActionStmt", + "id": "0x55fb7c20f2b0-Statement", + "statement": "0x55fb7c20f2c0-ActionStmt", "source": "write(6,*)'ERROR=',error" }, { - "id": "0x561b7dedf2c0-ActionStmt", + "id": "0x55fb7c20f2c0-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x561b7dedf0f0-WriteStmt" + "WriteStmt": "0x55fb7c20f0f0-WriteStmt" }, { - "id": "0x561b7dedf0f0-WriteStmt", - "iounit": "0x561b7dedf0f0-IoUnit", - "format": "0x561b7dedf120-Format", + "id": "0x55fb7c20f0f0-WriteStmt", + "iounit": "0x55fb7c20f0f0-IoUnit", + "format": "0x55fb7c20f120-Format", "controls": [], "items": [ - "0x561b7dedf010-OutputItem", - "0x561b7dedef20-OutputItem" + "0x55fb7c20f010-OutputItem", + "0x55fb7c20ef20-OutputItem" ] }, { - "id": "0x561b7dedf0f0-IoUnit", + "id": "0x55fb7c20f0f0-IoUnit", "variantKey": "Expr", - "Expr": "0x561b7deded70-Expr" + "Expr": "0x55fb7c20ed70-Expr" }, { - "id": "0x561b7deded70-Expr", + "id": "0x55fb7c20ed70-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7deded90-LiteralConstant" + "LiteralConstant": "0x55fb7c20ed90-LiteralConstant" }, { - "id": "0x561b7deded90-LiteralConstant", + "id": "0x55fb7c20ed90-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7deded90-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c20ed90-IntLiteralConstant" }, { - "id": "0x561b7deded90-IntLiteralConstant", + "id": "0x55fb7c20ed90-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x561b7dedf120-Format", + "id": "0x55fb7c20f120-Format", "variantKey": "Star", - "Star": "0x561b7dedf120-Star" + "Star": "0x55fb7c20f120-Star" }, { - "id": "0x561b7dedf120-Star" + "id": "0x55fb7c20f120-Star" }, { - "id": "0x561b7dedf010-OutputItem", + "id": "0x55fb7c20f010-OutputItem", "variantKey": "Expr", - "Expr": "0x561b7dedf010-Expr" + "Expr": "0x55fb7c20f010-Expr" }, { - "id": "0x561b7dedf010-Expr", + "id": "0x55fb7c20f010-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dedf030-LiteralConstant" + "LiteralConstant": "0x55fb7c20f030-LiteralConstant" }, { - "id": "0x561b7dedf030-LiteralConstant", + "id": "0x55fb7c20f030-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x561b7dedf030-CharLiteralConstant" + "CharLiteralConstant": "0x55fb7c20f030-CharLiteralConstant" }, { - "id": "0x561b7dedf030-CharLiteralConstant", + "id": "0x55fb7c20f030-CharLiteralConstant", "string": "ERROR=" }, { - "id": "0x561b7dedef20-OutputItem", + "id": "0x55fb7c20ef20-OutputItem", "variantKey": "Expr", - "Expr": "0x561b7dedef20-Expr" + "Expr": "0x55fb7c20ef20-Expr" }, { - "id": "0x561b7dedef20-Expr", + "id": "0x55fb7c20ef20-Expr", "variantKey": "Designator", - "Designator": "0x561b7dedeeb0-Designator" + "Designator": "0x55fb7c20eeb0-Designator" }, { - "id": "0x561b7dedeeb0-Designator", + "id": "0x55fb7c20eeb0-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dedeec0-DataRef" + "DataRef": "0x55fb7c20eec0-DataRef" }, { - "id": "0x561b7dedeec0-DataRef", + "id": "0x55fb7c20eec0-DataRef", "variantKey": "Name", - "Name": "0x561b7dedeec0-Name" + "Name": "0x55fb7c20eec0-Name" }, { - "id": "0x561b7dedeec0-Name", + "id": "0x55fb7c20eec0-Name", "source": "error" }, { - "id": "0x561b7dedf630-ExecutionPartConstruct", + "id": "0x55fb7c20f630-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dedf630-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c20f630-ExecutableConstruct" }, { - "id": "0x561b7dedf630-ExecutableConstruct", + "id": "0x55fb7c20f630-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561b7dedf630-Statement" + "Statement": "0x55fb7c20f630-Statement" }, { - "id": "0x561b7dedf630-Statement", - "statement": "0x561b7dedf640-ActionStmt", + "id": "0x55fb7c20f630-Statement", + "statement": "0x55fb7c20f640-ActionStmt", "source": "write(6,*)s_a" }, { - "id": "0x561b7dedf640-ActionStmt", + "id": "0x55fb7c20f640-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x561b7dedf4d0-WriteStmt" + "WriteStmt": "0x55fb7c20f4d0-WriteStmt" }, { - "id": "0x561b7dedf4d0-WriteStmt", - "iounit": "0x561b7dedf4d0-IoUnit", - "format": "0x561b7dedf500-Format", + "id": "0x55fb7c20f4d0-WriteStmt", + "iounit": "0x55fb7c20f4d0-IoUnit", + "format": "0x55fb7c20f500-Format", "controls": [], "items": [ - "0x561b7dedf3f0-OutputItem" + "0x55fb7c20f3f0-OutputItem" ] }, { - "id": "0x561b7dedf4d0-IoUnit", + "id": "0x55fb7c20f4d0-IoUnit", "variantKey": "Expr", - "Expr": "0x561b7dedf300-Expr" + "Expr": "0x55fb7c20f300-Expr" }, { - "id": "0x561b7dedf300-Expr", + "id": "0x55fb7c20f300-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dedf320-LiteralConstant" + "LiteralConstant": "0x55fb7c20f320-LiteralConstant" }, { - "id": "0x561b7dedf320-LiteralConstant", + "id": "0x55fb7c20f320-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dedf320-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c20f320-IntLiteralConstant" }, { - "id": "0x561b7dedf320-IntLiteralConstant", + "id": "0x55fb7c20f320-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x561b7dedf500-Format", + "id": "0x55fb7c20f500-Format", "variantKey": "Star", - "Star": "0x561b7dedf500-Star" + "Star": "0x55fb7c20f500-Star" }, { - "id": "0x561b7dedf500-Star" + "id": "0x55fb7c20f500-Star" }, { - "id": "0x561b7dedf3f0-OutputItem", + "id": "0x55fb7c20f3f0-OutputItem", "variantKey": "Expr", - "Expr": "0x561b7dedf3f0-Expr" + "Expr": "0x55fb7c20f3f0-Expr" }, { - "id": "0x561b7dedf3f0-Expr", + "id": "0x55fb7c20f3f0-Expr", "variantKey": "Designator", - "Designator": "0x561b7dedee50-Designator" + "Designator": "0x55fb7c20ee50-Designator" }, { - "id": "0x561b7dedee50-Designator", + "id": "0x55fb7c20ee50-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dedee60-DataRef" + "DataRef": "0x55fb7c20ee60-DataRef" }, { - "id": "0x561b7dedee60-DataRef", + "id": "0x55fb7c20ee60-DataRef", "variantKey": "Name", - "Name": "0x561b7dedee60-Name" + "Name": "0x55fb7c20ee60-Name" }, { - "id": "0x561b7dedee60-Name", + "id": "0x55fb7c20ee60-Name", "source": "s_a" }, { - "id": "0x561b7dedfa10-ExecutionPartConstruct", + "id": "0x55fb7c20fa10-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dedfa10-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c20fa10-ExecutableConstruct" }, { - "id": "0x561b7dedfa10-ExecutableConstruct", + "id": "0x55fb7c20fa10-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561b7dedfa10-Statement" + "Statement": "0x55fb7c20fa10-Statement" }, { - "id": "0x561b7dedfa10-Statement", - "statement": "0x561b7dedfa20-ActionStmt", + "id": "0x55fb7c20fa10-Statement", + "statement": "0x55fb7c20fa20-ActionStmt", "source": "write(6,*)v_a" }, { - "id": "0x561b7dedfa20-ActionStmt", + "id": "0x55fb7c20fa20-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x561b7dedf850-WriteStmt" + "WriteStmt": "0x55fb7c20f850-WriteStmt" }, { - "id": "0x561b7dedf850-WriteStmt", - "iounit": "0x561b7dedf850-IoUnit", - "format": "0x561b7dedf880-Format", + "id": "0x55fb7c20f850-WriteStmt", + "iounit": "0x55fb7c20f850-IoUnit", + "format": "0x55fb7c20f880-Format", "controls": [], "items": [ - "0x561b7dedf770-OutputItem" + "0x55fb7c20f770-OutputItem" ] }, { - "id": "0x561b7dedf850-IoUnit", + "id": "0x55fb7c20f850-IoUnit", "variantKey": "Expr", - "Expr": "0x561b7dedf680-Expr" + "Expr": "0x55fb7c20f680-Expr" }, { - "id": "0x561b7dedf680-Expr", + "id": "0x55fb7c20f680-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dedf6a0-LiteralConstant" + "LiteralConstant": "0x55fb7c20f6a0-LiteralConstant" }, { - "id": "0x561b7dedf6a0-LiteralConstant", + "id": "0x55fb7c20f6a0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dedf6a0-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c20f6a0-IntLiteralConstant" }, { - "id": "0x561b7dedf6a0-IntLiteralConstant", + "id": "0x55fb7c20f6a0-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x561b7dedf880-Format", + "id": "0x55fb7c20f880-Format", "variantKey": "Star", - "Star": "0x561b7dedf880-Star" + "Star": "0x55fb7c20f880-Star" }, { - "id": "0x561b7dedf880-Star" + "id": "0x55fb7c20f880-Star" }, { - "id": "0x561b7dedf770-OutputItem", + "id": "0x55fb7c20f770-OutputItem", "variantKey": "Expr", - "Expr": "0x561b7dedf770-Expr" + "Expr": "0x55fb7c20f770-Expr" }, { - "id": "0x561b7dedf770-Expr", + "id": "0x55fb7c20f770-Expr", "variantKey": "Designator", - "Designator": "0x561b7dedd720-Designator" + "Designator": "0x55fb7c20d720-Designator" }, { - "id": "0x561b7dedd720-Designator", + "id": "0x55fb7c20d720-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dedd730-DataRef" + "DataRef": "0x55fb7c20d730-DataRef" }, { - "id": "0x561b7dedd730-DataRef", + "id": "0x55fb7c20d730-DataRef", "variantKey": "Name", - "Name": "0x561b7dedd730-Name" + "Name": "0x55fb7c20d730-Name" }, { - "id": "0x561b7dedd730-Name", + "id": "0x55fb7c20d730-Name", "source": "v_a" }, { - "id": "0x561b7dedfdf0-ExecutionPartConstruct", + "id": "0x55fb7c20fdf0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dedfdf0-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c20fdf0-ExecutableConstruct" }, { - "id": "0x561b7dedfdf0-ExecutableConstruct", + "id": "0x55fb7c20fdf0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561b7dedfdf0-Statement" + "Statement": "0x55fb7c20fdf0-Statement" }, { - "id": "0x561b7dedfdf0-Statement", - "statement": "0x561b7dedfe00-ActionStmt", + "id": "0x55fb7c20fdf0-Statement", + "statement": "0x55fb7c20fe00-ActionStmt", "source": "write(6,*)s_b" }, { - "id": "0x561b7dedfe00-ActionStmt", + "id": "0x55fb7c20fe00-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x561b7dedfc30-WriteStmt" + "WriteStmt": "0x55fb7c20fc30-WriteStmt" }, { - "id": "0x561b7dedfc30-WriteStmt", - "iounit": "0x561b7dedfc30-IoUnit", - "format": "0x561b7dedfc60-Format", + "id": "0x55fb7c20fc30-WriteStmt", + "iounit": "0x55fb7c20fc30-IoUnit", + "format": "0x55fb7c20fc60-Format", "controls": [], "items": [ - "0x561b7dedfb50-OutputItem" + "0x55fb7c20fb50-OutputItem" ] }, { - "id": "0x561b7dedfc30-IoUnit", + "id": "0x55fb7c20fc30-IoUnit", "variantKey": "Expr", - "Expr": "0x561b7dedfa60-Expr" + "Expr": "0x55fb7c20fa60-Expr" }, { - "id": "0x561b7dedfa60-Expr", + "id": "0x55fb7c20fa60-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dedfa80-LiteralConstant" + "LiteralConstant": "0x55fb7c20fa80-LiteralConstant" }, { - "id": "0x561b7dedfa80-LiteralConstant", + "id": "0x55fb7c20fa80-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dedfa80-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c20fa80-IntLiteralConstant" }, { - "id": "0x561b7dedfa80-IntLiteralConstant", + "id": "0x55fb7c20fa80-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x561b7dedfc60-Format", + "id": "0x55fb7c20fc60-Format", "variantKey": "Star", - "Star": "0x561b7dedfc60-Star" + "Star": "0x55fb7c20fc60-Star" }, { - "id": "0x561b7dedfc60-Star" + "id": "0x55fb7c20fc60-Star" }, { - "id": "0x561b7dedfb50-OutputItem", + "id": "0x55fb7c20fb50-OutputItem", "variantKey": "Expr", - "Expr": "0x561b7dedfb50-Expr" + "Expr": "0x55fb7c20fb50-Expr" }, { - "id": "0x561b7dedfb50-Expr", + "id": "0x55fb7c20fb50-Expr", "variantKey": "Designator", - "Designator": "0x561b7decbd60-Designator" + "Designator": "0x55fb7c1fbd60-Designator" }, { - "id": "0x561b7decbd60-Designator", + "id": "0x55fb7c1fbd60-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7decbd70-DataRef" + "DataRef": "0x55fb7c1fbd70-DataRef" }, { - "id": "0x561b7decbd70-DataRef", + "id": "0x55fb7c1fbd70-DataRef", "variantKey": "Name", - "Name": "0x561b7decbd70-Name" + "Name": "0x55fb7c1fbd70-Name" }, { - "id": "0x561b7decbd70-Name", + "id": "0x55fb7c1fbd70-Name", "source": "s_b" }, { - "id": "0x561b7dee01d0-ExecutionPartConstruct", + "id": "0x55fb7c2101d0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dee01d0-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c2101d0-ExecutableConstruct" }, { - "id": "0x561b7dee01d0-ExecutableConstruct", + "id": "0x55fb7c2101d0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561b7dee01d0-Statement" + "Statement": "0x55fb7c2101d0-Statement" }, { - "id": "0x561b7dee01d0-Statement", - "statement": "0x561b7dee01e0-ActionStmt", + "id": "0x55fb7c2101d0-Statement", + "statement": "0x55fb7c2101e0-ActionStmt", "source": "write(6,*)v_b" }, { - "id": "0x561b7dee01e0-ActionStmt", + "id": "0x55fb7c2101e0-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x561b7dee0010-WriteStmt" + "WriteStmt": "0x55fb7c210010-WriteStmt" }, { - "id": "0x561b7dee0010-WriteStmt", - "iounit": "0x561b7dee0010-IoUnit", - "format": "0x561b7dee0040-Format", + "id": "0x55fb7c210010-WriteStmt", + "iounit": "0x55fb7c210010-IoUnit", + "format": "0x55fb7c210040-Format", "controls": [], "items": [ - "0x561b7dedff30-OutputItem" + "0x55fb7c20ff30-OutputItem" ] }, { - "id": "0x561b7dee0010-IoUnit", + "id": "0x55fb7c210010-IoUnit", "variantKey": "Expr", - "Expr": "0x561b7dedfe40-Expr" + "Expr": "0x55fb7c20fe40-Expr" }, { - "id": "0x561b7dedfe40-Expr", + "id": "0x55fb7c20fe40-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dedfe60-LiteralConstant" + "LiteralConstant": "0x55fb7c20fe60-LiteralConstant" }, { - "id": "0x561b7dedfe60-LiteralConstant", + "id": "0x55fb7c20fe60-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dedfe60-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c20fe60-IntLiteralConstant" }, { - "id": "0x561b7dedfe60-IntLiteralConstant", + "id": "0x55fb7c20fe60-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x561b7dee0040-Format", + "id": "0x55fb7c210040-Format", "variantKey": "Star", - "Star": "0x561b7dee0040-Star" + "Star": "0x55fb7c210040-Star" }, { - "id": "0x561b7dee0040-Star" + "id": "0x55fb7c210040-Star" }, { - "id": "0x561b7dedff30-OutputItem", + "id": "0x55fb7c20ff30-OutputItem", "variantKey": "Expr", - "Expr": "0x561b7dedff30-Expr" + "Expr": "0x55fb7c20ff30-Expr" }, { - "id": "0x561b7dedff30-Expr", + "id": "0x55fb7c20ff30-Expr", "variantKey": "Designator", - "Designator": "0x561b7deddcd0-Designator" + "Designator": "0x55fb7c20dcd0-Designator" }, { - "id": "0x561b7deddcd0-Designator", + "id": "0x55fb7c20dcd0-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7deddce0-DataRef" + "DataRef": "0x55fb7c20dce0-DataRef" }, { - "id": "0x561b7deddce0-DataRef", + "id": "0x55fb7c20dce0-DataRef", "variantKey": "Name", - "Name": "0x561b7deddce0-Name" + "Name": "0x55fb7c20dce0-Name" }, { - "id": "0x561b7deddce0-Name", + "id": "0x55fb7c20dce0-Name", "source": "v_b" }, { - "id": "0x561b7dee0220-Statement", - "statement": "0x561b7dee0230-EndIfStmt", + "id": "0x55fb7c210220-Statement", + "statement": "0x55fb7c210230-EndIfStmt", "source": "endif" }, { - "id": "0x561b7dee0230-EndIfStmt" + "id": "0x55fb7c210230-EndIfStmt" }, { - "id": "0x561b7dedf250-ExecutionPartConstruct", + "id": "0x55fb7c20f250-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dedf250-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c20f250-ExecutableConstruct" }, { - "id": "0x561b7dedf250-ExecutableConstruct", + "id": "0x55fb7c20f250-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561b7dedf250-Statement" + "Statement": "0x55fb7c20f250-Statement" }, { - "id": "0x561b7dedf250-Statement", - "statement": "0x561b7dedf260-ActionStmt", + "id": "0x55fb7c20f250-Statement", + "statement": "0x55fb7c20f260-ActionStmt", "source": "stop" }, { - "id": "0x561b7dedf260-ActionStmt", + "id": "0x55fb7c20f260-ActionStmt", "variantKey": "StopStmt", - "StopStmt": "0x561b7dee0340-StopStmt" + "StopStmt": "0x55fb7c210340-StopStmt" }, { - "id": "0x561b7dee0340-StopStmt", - "kind": "0x561b7dee0428-Kind = Stop" + "id": "0x55fb7c210340-StopStmt", + "kind": "0x55fb7c210428-Kind = Stop" }, { - "id": "0x561b7dee0428-Kind = Stop", + "id": "0x55fb7c210428-Kind = Stop", "disambiguation": "Fortran::parser::StopStmt::Kind", "value": "Stop" }, { - "id": "0x561b7ded3fe0-Statement", - "statement": "0x561b7ded3ff0-EndProgramStmt", + "id": "0x55fb7c203fe0-Statement", + "statement": "0x55fb7c203ff0-EndProgramStmt", "source": "end" }, { - "id": "0x561b7ded3ff0-EndProgramStmt" + "id": "0x55fb7c203ff0-EndProgramStmt" }, { - "id": "0x561b7ded3410-ProgramUnit", + "id": "0x55fb7c203410-ProgramUnit", "variantKey": "SubroutineSubprogram", - "SubroutineSubprogram": "0x561b7dee5ae0-SubroutineSubprogram" + "SubroutineSubprogram": "0x55fb7c215ae0-SubroutineSubprogram" }, { - "id": "0x561b7dee5ae0-SubroutineSubprogram", - "Statement": "0x561b7dee5c28-Statement", - "SpecificationPart": "0x561b7dee5b80-SpecificationPart", - "ExecutionPart": "0x561b7dee5b68-ExecutionPart", - "Statement": "0x561b7dee5ae0-Statement" + "id": "0x55fb7c215ae0-SubroutineSubprogram", + "Statement": "0x55fb7c215c28-Statement", + "SpecificationPart": "0x55fb7c215b80-SpecificationPart", + "ExecutionPart": "0x55fb7c215b68-ExecutionPart", + "Statement": "0x55fb7c215ae0-Statement" }, { - "id": "0x561b7dee5c28-Statement", - "statement": "0x561b7dee5c38-SubroutineStmt", + "id": "0x55fb7c215c28-Statement", + "statement": "0x55fb7c215c38-SubroutineStmt", "source": "subroutinesub1(error,a,b,c)" }, { - "id": "0x561b7dee5c38-SubroutineStmt", - "Name": "0x561b7dee5c70-Name", + "id": "0x55fb7c215c38-SubroutineStmt", + "Name": "0x55fb7c215c70-Name", "DummyArg": [ - "0x561b7ded3560-DummyArg", - "0x561b7ded6230-DummyArg", - "0x561b7ded4d40-DummyArg", - "0x561b7ded3520-DummyArg" + "0x55fb7c203560-DummyArg", + "0x55fb7c206230-DummyArg", + "0x55fb7c204d40-DummyArg", + "0x55fb7c203520-DummyArg" ] }, { - "id": "0x561b7dee5c70-Name", + "id": "0x55fb7c215c70-Name", "source": "sub1" }, { - "id": "0x561b7ded3560-DummyArg", + "id": "0x55fb7c203560-DummyArg", "variantKey": "Name", - "Name": "0x561b7ded3560-Name" + "Name": "0x55fb7c203560-Name" }, { - "id": "0x561b7ded3560-Name", + "id": "0x55fb7c203560-Name", "source": "error" }, { - "id": "0x561b7ded6230-DummyArg", + "id": "0x55fb7c206230-DummyArg", "variantKey": "Name", - "Name": "0x561b7ded6230-Name" + "Name": "0x55fb7c206230-Name" }, { - "id": "0x561b7ded6230-Name", + "id": "0x55fb7c206230-Name", "source": "a" }, { - "id": "0x561b7ded4d40-DummyArg", + "id": "0x55fb7c204d40-DummyArg", "variantKey": "Name", - "Name": "0x561b7ded4d40-Name" + "Name": "0x55fb7c204d40-Name" }, { - "id": "0x561b7ded4d40-Name", + "id": "0x55fb7c204d40-Name", "source": "b" }, { - "id": "0x561b7ded3520-DummyArg", + "id": "0x55fb7c203520-DummyArg", "variantKey": "Name", - "Name": "0x561b7ded3520-Name" + "Name": "0x55fb7c203520-Name" }, { - "id": "0x561b7ded3520-Name", + "id": "0x55fb7c203520-Name", "source": "c" }, { - "id": "0x561b7dee5b80-SpecificationPart", - "ImplicitPart": "0x561b7dee5b98-ImplicitPart", + "id": "0x55fb7c215b80-SpecificationPart", + "ImplicitPart": "0x55fb7c215b98-ImplicitPart", "DeclarationConstruct": [ - "0x561b7decae80-DeclarationConstruct", - "0x561b7dede680-DeclarationConstruct", - "0x561b7dee12e0-DeclarationConstruct" + "0x55fb7c1fae80-DeclarationConstruct", + "0x55fb7c20e680-DeclarationConstruct", + "0x55fb7c2112e0-DeclarationConstruct" ] }, { - "id": "0x561b7dee5b98-ImplicitPart" + "id": "0x55fb7c215b98-ImplicitPart" }, { - "id": "0x561b7decae80-DeclarationConstruct", + "id": "0x55fb7c1fae80-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x561b7decae80-SpecificationConstruct" + "SpecificationConstruct": "0x55fb7c1fae80-SpecificationConstruct" }, { - "id": "0x561b7decae80-SpecificationConstruct", + "id": "0x55fb7c1fae80-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x561b7decae80-Statement" + "Statement": "0x55fb7c1fae80-Statement" }, { - "id": "0x561b7decae80-Statement", - "statement": "0x561b7dee0680-TypeDeclarationStmt", + "id": "0x55fb7c1fae80-Statement", + "statement": "0x55fb7c210680-TypeDeclarationStmt", "source": "integer*4error" }, { - "id": "0x561b7dee0680-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x561b7dee06b0-DeclarationTypeSpec", + "id": "0x55fb7c210680-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55fb7c2106b0-DeclarationTypeSpec", "EntityDecl": [ - "0x561b7dee1030-EntityDecl" + "0x55fb7c211030-EntityDecl" ] }, { - "id": "0x561b7dee06b0-DeclarationTypeSpec", + "id": "0x55fb7c2106b0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x561b7dee06b0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55fb7c2106b0-IntrinsicTypeSpec" }, { - "id": "0x561b7dee06b0-IntrinsicTypeSpec", + "id": "0x55fb7c2106b0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x561b7dee06b0-IntegerTypeSpec" + "IntegerTypeSpec": "0x55fb7c2106b0-IntegerTypeSpec" }, { - "id": "0x561b7dee06b0-IntegerTypeSpec", - "KindSelector": "0x561b7dee06b0-KindSelector" + "id": "0x55fb7c2106b0-IntegerTypeSpec", + "KindSelector": "0x55fb7c2106b0-KindSelector" }, { - "id": "0x561b7dee06b0-KindSelector", + "id": "0x55fb7c2106b0-KindSelector", "variantKey": "StarSize", - "StarSize": "0x561b7dee06b0-StarSize" + "StarSize": "0x55fb7c2106b0-StarSize" }, { - "id": "0x561b7dee06b0-StarSize", + "id": "0x55fb7c2106b0-StarSize", "uint64_t": "4" }, { - "id": "0x561b7dee1030-EntityDecl", - "Name": "0x561b7dee10e8-Name" + "id": "0x55fb7c211030-EntityDecl", + "Name": "0x55fb7c2110e8-Name" }, { - "id": "0x561b7dee10e8-Name", + "id": "0x55fb7c2110e8-Name", "source": "error" }, { - "id": "0x561b7dede680-DeclarationConstruct", + "id": "0x55fb7c20e680-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x561b7dede680-SpecificationConstruct" + "SpecificationConstruct": "0x55fb7c20e680-SpecificationConstruct" }, { - "id": "0x561b7dede680-SpecificationConstruct", + "id": "0x55fb7c20e680-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x561b7dede680-Statement" + "Statement": "0x55fb7c20e680-Statement" }, { - "id": "0x561b7dede680-Statement", - "statement": "0x561b7dec91c0-TypeDeclarationStmt", + "id": "0x55fb7c20e680-Statement", + "statement": "0x55fb7c1f91c0-TypeDeclarationStmt", "source": "complex*8a,b,c" }, { - "id": "0x561b7dec91c0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x561b7dec91f0-DeclarationTypeSpec", + "id": "0x55fb7c1f91c0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55fb7c1f91f0-DeclarationTypeSpec", "EntityDecl": [ - "0x561b7dee0820-EntityDecl", - "0x561b7dec5ed0-EntityDecl", - "0x561b7dee04e0-EntityDecl" + "0x55fb7c210820-EntityDecl", + "0x55fb7c1f5ed0-EntityDecl", + "0x55fb7c2104e0-EntityDecl" ] }, { - "id": "0x561b7dec91f0-DeclarationTypeSpec", + "id": "0x55fb7c1f91f0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x561b7dec91f0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55fb7c1f91f0-IntrinsicTypeSpec" }, { - "id": "0x561b7dec91f0-IntrinsicTypeSpec", + "id": "0x55fb7c1f91f0-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x561b7dec91f0-Complex" + "Complex": "0x55fb7c1f91f0-Complex" }, { - "id": "0x561b7dec91f0-Complex", - "KindSelector": "0x561b7dec91f0-KindSelector" + "id": "0x55fb7c1f91f0-Complex", + "KindSelector": "0x55fb7c1f91f0-KindSelector" }, { - "id": "0x561b7dec91f0-KindSelector", + "id": "0x55fb7c1f91f0-KindSelector", "variantKey": "StarSize", - "StarSize": "0x561b7dec91f0-StarSize" + "StarSize": "0x55fb7c1f91f0-StarSize" }, { - "id": "0x561b7dec91f0-StarSize", + "id": "0x55fb7c1f91f0-StarSize", "uint64_t": "8" }, { - "id": "0x561b7dee0820-EntityDecl", - "Name": "0x561b7dee08d8-Name" + "id": "0x55fb7c210820-EntityDecl", + "Name": "0x55fb7c2108d8-Name" }, { - "id": "0x561b7dee08d8-Name", + "id": "0x55fb7c2108d8-Name", "source": "a" }, { - "id": "0x561b7dec5ed0-EntityDecl", - "Name": "0x561b7dec5f88-Name" + "id": "0x55fb7c1f5ed0-EntityDecl", + "Name": "0x55fb7c1f5f88-Name" }, { - "id": "0x561b7dec5f88-Name", + "id": "0x55fb7c1f5f88-Name", "source": "b" }, { - "id": "0x561b7dee04e0-EntityDecl", - "Name": "0x561b7dee0598-Name" + "id": "0x55fb7c2104e0-EntityDecl", + "Name": "0x55fb7c210598-Name" }, { - "id": "0x561b7dee0598-Name", + "id": "0x55fb7c210598-Name", "source": "c" }, { - "id": "0x561b7dee12e0-DeclarationConstruct", + "id": "0x55fb7c2112e0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x561b7dee12e0-SpecificationConstruct" + "SpecificationConstruct": "0x55fb7c2112e0-SpecificationConstruct" }, { - "id": "0x561b7dee12e0-SpecificationConstruct", + "id": "0x55fb7c2112e0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x561b7dee12e0-Statement" + "Statement": "0x55fb7c2112e0-Statement" }, { - "id": "0x561b7dee12e0-Statement", - "statement": "0x561b7dee12f0-OtherSpecificationStmt", + "id": "0x55fb7c2112e0-Statement", + "statement": "0x55fb7c2112f0-OtherSpecificationStmt", "source": "dimensiona(10),b(10),c(10)" }, { - "id": "0x561b7dee12f0-OtherSpecificationStmt", + "id": "0x55fb7c2112f0-OtherSpecificationStmt", "variantKey": "DimensionStmt", - "DimensionStmt": "0x561b7ded28b0-DimensionStmt" + "DimensionStmt": "0x55fb7c2028b0-DimensionStmt" }, { - "id": "0x561b7ded28b0-DimensionStmt", + "id": "0x55fb7c2028b0-DimensionStmt", "Declaration": [ - "0x561b7dee09f0-Declaration", - "0x561b7dec85f0-Declaration", - "0x561b7dee2e10-Declaration" + "0x55fb7c2109f0-Declaration", + "0x55fb7c1f85f0-Declaration", + "0x55fb7c212e10-Declaration" ] }, { - "id": "0x561b7dee09f0-Declaration", - "Name": "0x561b7dee0a20-Name", - "ArraySpec": "0x561b7dee09f0-ArraySpec" + "id": "0x55fb7c2109f0-Declaration", + "Name": "0x55fb7c210a20-Name", + "ArraySpec": "0x55fb7c2109f0-ArraySpec" }, { - "id": "0x561b7dee0a20-Name", + "id": "0x55fb7c210a20-Name", "source": "a" }, { - "id": "0x561b7dee09f0-ArraySpec", + "id": "0x55fb7c2109f0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x561b7ded2fa0-ExplicitShapeSpec" + "0x55fb7c202fa0-ExplicitShapeSpec" ] }, { - "id": "0x561b7ded2fa0-ExplicitShapeSpec", - "upper_bound": "0x561b7ded2fa0-SpecificationExpr" + "id": "0x55fb7c202fa0-ExplicitShapeSpec", + "upper_bound": "0x55fb7c202fa0-SpecificationExpr" }, { - "id": "0x561b7ded2fa0-SpecificationExpr", - "Expr": "0x561b7dee0900-Expr" + "id": "0x55fb7c202fa0-SpecificationExpr", + "Expr": "0x55fb7c210900-Expr" }, { - "id": "0x561b7dee0900-Expr", + "id": "0x55fb7c210900-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dee0920-LiteralConstant" + "LiteralConstant": "0x55fb7c210920-LiteralConstant" }, { - "id": "0x561b7dee0920-LiteralConstant", + "id": "0x55fb7c210920-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dee0920-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c210920-IntLiteralConstant" }, { - "id": "0x561b7dee0920-IntLiteralConstant", + "id": "0x55fb7c210920-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x561b7dec85f0-Declaration", - "Name": "0x561b7dec8620-Name", - "ArraySpec": "0x561b7dec85f0-ArraySpec" + "id": "0x55fb7c1f85f0-Declaration", + "Name": "0x55fb7c1f8620-Name", + "ArraySpec": "0x55fb7c1f85f0-ArraySpec" }, { - "id": "0x561b7dec8620-Name", + "id": "0x55fb7c1f8620-Name", "source": "b" }, { - "id": "0x561b7dec85f0-ArraySpec", + "id": "0x55fb7c1f85f0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x561b7ded3130-ExplicitShapeSpec" + "0x55fb7c203130-ExplicitShapeSpec" ] }, { - "id": "0x561b7ded3130-ExplicitShapeSpec", - "upper_bound": "0x561b7ded3130-SpecificationExpr" + "id": "0x55fb7c203130-ExplicitShapeSpec", + "upper_bound": "0x55fb7c203130-SpecificationExpr" }, { - "id": "0x561b7ded3130-SpecificationExpr", - "Expr": "0x561b7dee2be0-Expr" + "id": "0x55fb7c203130-SpecificationExpr", + "Expr": "0x55fb7c212be0-Expr" }, { - "id": "0x561b7dee2be0-Expr", + "id": "0x55fb7c212be0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dee2c00-LiteralConstant" + "LiteralConstant": "0x55fb7c212c00-LiteralConstant" }, { - "id": "0x561b7dee2c00-LiteralConstant", + "id": "0x55fb7c212c00-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dee2c00-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c212c00-IntLiteralConstant" }, { - "id": "0x561b7dee2c00-IntLiteralConstant", + "id": "0x55fb7c212c00-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x561b7dee2e10-Declaration", - "Name": "0x561b7dee2e40-Name", - "ArraySpec": "0x561b7dee2e10-ArraySpec" + "id": "0x55fb7c212e10-Declaration", + "Name": "0x55fb7c212e40-Name", + "ArraySpec": "0x55fb7c212e10-ArraySpec" }, { - "id": "0x561b7dee2e40-Name", + "id": "0x55fb7c212e40-Name", "source": "c" }, { - "id": "0x561b7dee2e10-ArraySpec", + "id": "0x55fb7c212e10-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x561b7ded31a0-ExplicitShapeSpec" + "0x55fb7c2031a0-ExplicitShapeSpec" ] }, { - "id": "0x561b7ded31a0-ExplicitShapeSpec", - "upper_bound": "0x561b7ded31a0-SpecificationExpr" + "id": "0x55fb7c2031a0-ExplicitShapeSpec", + "upper_bound": "0x55fb7c2031a0-SpecificationExpr" }, { - "id": "0x561b7ded31a0-SpecificationExpr", - "Expr": "0x561b7dee2d20-Expr" + "id": "0x55fb7c2031a0-SpecificationExpr", + "Expr": "0x55fb7c212d20-Expr" }, { - "id": "0x561b7dee2d20-Expr", + "id": "0x55fb7c212d20-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dee2d40-LiteralConstant" + "LiteralConstant": "0x55fb7c212d40-LiteralConstant" }, { - "id": "0x561b7dee2d40-LiteralConstant", + "id": "0x55fb7c212d40-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dee2d40-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c212d40-IntLiteralConstant" }, { - "id": "0x561b7dee2d40-IntLiteralConstant", + "id": "0x55fb7c212d40-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x561b7dee5b68-ExecutionPart", + "id": "0x55fb7c215b68-ExecutionPart", "ExecutionPartConstruct": [ - "0x561b7dee2190-ExecutionPartConstruct", - "0x561b7dee2590-ExecutionPartConstruct" + "0x55fb7c212190-ExecutionPartConstruct", + "0x55fb7c212590-ExecutionPartConstruct" ] }, { - "id": "0x561b7dee5b68-ExecutionPartConstruct" + "id": "0x55fb7c215b68-ExecutionPartConstruct" }, { - "id": "0x561b7dee2190-ExecutionPartConstruct", + "id": "0x55fb7c212190-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dee2190-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c212190-ExecutableConstruct" }, { - "id": "0x561b7dee2190-ExecutableConstruct", + "id": "0x55fb7c212190-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x561b7ded97e0-DoConstruct" + "DoConstruct": "0x55fb7c2097e0-DoConstruct" }, { - "id": "0x561b7ded97e0-DoConstruct", - "Statement": "0x561b7ded9838-Statement", + "id": "0x55fb7c2097e0-DoConstruct", + "Statement": "0x55fb7c209838-Statement", "ExecutionPartConstruct": [ - "0x561b7dee2130-ExecutionPartConstruct", - "0x561b7dee3370-ExecutionPartConstruct" + "0x55fb7c212130-ExecutionPartConstruct", + "0x55fb7c213370-ExecutionPartConstruct" ], - "Statement": "0x561b7ded97e0-Statement" + "Statement": "0x55fb7c2097e0-Statement" }, { - "id": "0x561b7ded9838-Statement", - "statement": "0x561b7ded9848-NonLabelDoStmt", + "id": "0x55fb7c209838-Statement", + "statement": "0x55fb7c209848-NonLabelDoStmt", "source": "do60i=1,10,1" }, { - "id": "0x561b7ded9848-NonLabelDoStmt", - "LoopControl": "0x561b7ded9848-LoopControl" + "id": "0x55fb7c209848-NonLabelDoStmt", + "LoopControl": "0x55fb7c209848-LoopControl" }, { - "id": "0x561b7ded9848-LoopControl", + "id": "0x55fb7c209848-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x561b7ded9848-LoopBounds" + "LoopBounds": "0x55fb7c209848-LoopBounds" }, { - "id": "0x561b7ded9848-LoopBounds", - "var": "0x561b7ded9848-Name", - "lower": "0x561b7dee1e80-Expr", - "upper": "0x561b7dee1f60-Expr", - "step": "0x561b7dee2040-Expr" + "id": "0x55fb7c209848-LoopBounds", + "var": "0x55fb7c209848-Name", + "lower": "0x55fb7c211e80-Expr", + "upper": "0x55fb7c211f60-Expr", + "step": "0x55fb7c212040-Expr" }, { - "id": "0x561b7ded9848-Name", + "id": "0x55fb7c209848-Name", "source": "i" }, { - "id": "0x561b7dee1e80-Expr", + "id": "0x55fb7c211e80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dee1ea0-LiteralConstant" + "LiteralConstant": "0x55fb7c211ea0-LiteralConstant" }, { - "id": "0x561b7dee1ea0-LiteralConstant", + "id": "0x55fb7c211ea0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dee1ea0-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c211ea0-IntLiteralConstant" }, { - "id": "0x561b7dee1ea0-IntLiteralConstant", + "id": "0x55fb7c211ea0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x561b7dee1f60-Expr", + "id": "0x55fb7c211f60-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dee1f80-LiteralConstant" + "LiteralConstant": "0x55fb7c211f80-LiteralConstant" }, { - "id": "0x561b7dee1f80-LiteralConstant", + "id": "0x55fb7c211f80-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dee1f80-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c211f80-IntLiteralConstant" }, { - "id": "0x561b7dee1f80-IntLiteralConstant", + "id": "0x55fb7c211f80-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x561b7dee2040-Expr", + "id": "0x55fb7c212040-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dee2060-LiteralConstant" + "LiteralConstant": "0x55fb7c212060-LiteralConstant" }, { - "id": "0x561b7dee2060-LiteralConstant", + "id": "0x55fb7c212060-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dee2060-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c212060-IntLiteralConstant" }, { - "id": "0x561b7dee2060-IntLiteralConstant", + "id": "0x55fb7c212060-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x561b7ded9820-ExecutionPartConstruct" + "id": "0x55fb7c209820-ExecutionPartConstruct" }, { - "id": "0x561b7dee2130-ExecutionPartConstruct", + "id": "0x55fb7c212130-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dee2130-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c212130-ExecutableConstruct" }, { - "id": "0x561b7dee2130-ExecutableConstruct", + "id": "0x55fb7c212130-ExecutableConstruct", "variantKey": "IfConstruct", - "IfConstruct": "0x561b7dee4220-IfConstruct" + "IfConstruct": "0x55fb7c214220-IfConstruct" }, { - "id": "0x561b7dee4220-IfConstruct", - "Statement": "0x561b7dee42f0-Statement", + "id": "0x55fb7c214220-IfConstruct", + "Statement": "0x55fb7c2142f0-Statement", "ExecutionPartConstruct": [ - "0x561b7dee3040-ExecutionPartConstruct" + "0x55fb7c213040-ExecutionPartConstruct" ], - "Statement": "0x561b7dee4220-Statement" + "Statement": "0x55fb7c214220-Statement" }, { - "id": "0x561b7dee42f0-Statement", - "statement": "0x561b7dee4300-IfThenStmt", + "id": "0x55fb7c2142f0-Statement", + "statement": "0x55fb7c214300-IfThenStmt", "source": "if(c(i).ne.a(i)+b(i))then" }, { - "id": "0x561b7dee4300-IfThenStmt", - "Expr": "0x561b7dee3f80-Expr" + "id": "0x55fb7c214300-IfThenStmt", + "Expr": "0x55fb7c213f80-Expr" }, { - "id": "0x561b7dee3f80-Expr", + "id": "0x55fb7c213f80-Expr", "variantKey": "NE", - "NE": "0x561b7dee3fa0-NE" + "NE": "0x55fb7c213fa0-NE" }, { - "id": "0x561b7dee3fa0-NE", - "left": "0x561b7dee3bd0-Expr", - "right": "0x561b7dee3af0-Expr", + "id": "0x55fb7c213fa0-NE", + "left": "0x55fb7c213bd0-Expr", + "right": "0x55fb7c213af0-Expr", "op": "NE" }, { - "id": "0x561b7dee3bd0-Expr", + "id": "0x55fb7c213bd0-Expr", "variantKey": "Designator", - "Designator": "0x561b7deed130-Designator" + "Designator": "0x55fb7c21d130-Designator" }, { - "id": "0x561b7deed130-Designator", + "id": "0x55fb7c21d130-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7deed140-DataRef" + "DataRef": "0x55fb7c21d140-DataRef" }, { - "id": "0x561b7deed140-DataRef", + "id": "0x55fb7c21d140-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x561b7dee9210-ArrayElement" + "ArrayElement": "0x55fb7c219210-ArrayElement" }, { - "id": "0x561b7dee9210-ArrayElement", - "base": "0x561b7dee9210-DataRef", + "id": "0x55fb7c219210-ArrayElement", + "base": "0x55fb7c219210-DataRef", "subscripts": [ - "0x561b7ded8d50-SectionSubscript" + "0x55fb7c208d50-SectionSubscript" ] }, { - "id": "0x561b7dee9210-DataRef", + "id": "0x55fb7c219210-DataRef", "variantKey": "Name", - "Name": "0x561b7dee9210-Name" + "Name": "0x55fb7c219210-Name" }, { - "id": "0x561b7dee9210-Name", + "id": "0x55fb7c219210-Name", "source": "c" }, { - "id": "0x561b7ded8d50-SectionSubscript", + "id": "0x55fb7c208d50-SectionSubscript", "variantKey": "Expr", - "Expr": "0x561b7dedd7e0-Expr" + "Expr": "0x55fb7c20d7e0-Expr" }, { - "id": "0x561b7dedd7e0-Expr", + "id": "0x55fb7c20d7e0-Expr", "variantKey": "Designator", - "Designator": "0x561b7dee1d70-Designator" + "Designator": "0x55fb7c211d70-Designator" }, { - "id": "0x561b7dee1d70-Designator", + "id": "0x55fb7c211d70-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dee1d80-DataRef" + "DataRef": "0x55fb7c211d80-DataRef" }, { - "id": "0x561b7dee1d80-DataRef", + "id": "0x55fb7c211d80-DataRef", "variantKey": "Name", - "Name": "0x561b7dee1d80-Name" + "Name": "0x55fb7c211d80-Name" }, { - "id": "0x561b7dee1d80-Name", + "id": "0x55fb7c211d80-Name", "source": "i" }, { - "id": "0x561b7dee3af0-Expr", + "id": "0x55fb7c213af0-Expr", "variantKey": "Add", - "Add": "0x561b7dee3b10-Add" + "Add": "0x55fb7c213b10-Add" }, { - "id": "0x561b7dee3b10-Add", - "left": "0x561b7dee3a10-Expr", - "right": "0x561b7dee3930-Expr", + "id": "0x55fb7c213b10-Add", + "left": "0x55fb7c213a10-Expr", + "right": "0x55fb7c213930-Expr", "op": "ADD" }, { - "id": "0x561b7dee3a10-Expr", + "id": "0x55fb7c213a10-Expr", "variantKey": "Designator", - "Designator": "0x561b7ded1a70-Designator" + "Designator": "0x55fb7c201a70-Designator" }, { - "id": "0x561b7ded1a70-Designator", + "id": "0x55fb7c201a70-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7ded1a80-DataRef" + "DataRef": "0x55fb7c201a80-DataRef" }, { - "id": "0x561b7ded1a80-DataRef", + "id": "0x55fb7c201a80-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x561b7dedb5d0-ArrayElement" + "ArrayElement": "0x55fb7c20b5d0-ArrayElement" }, { - "id": "0x561b7dedb5d0-ArrayElement", - "base": "0x561b7dedb5d0-DataRef", + "id": "0x55fb7c20b5d0-ArrayElement", + "base": "0x55fb7c20b5d0-DataRef", "subscripts": [ - "0x561b7dee3e50-SectionSubscript" + "0x55fb7c213e50-SectionSubscript" ] }, { - "id": "0x561b7dedb5d0-DataRef", + "id": "0x55fb7c20b5d0-DataRef", "variantKey": "Name", - "Name": "0x561b7dedb5d0-Name" + "Name": "0x55fb7c20b5d0-Name" }, { - "id": "0x561b7dedb5d0-Name", + "id": "0x55fb7c20b5d0-Name", "source": "a" }, { - "id": "0x561b7dee3e50-SectionSubscript", + "id": "0x55fb7c213e50-SectionSubscript", "variantKey": "Expr", - "Expr": "0x561b7dee3470-Expr" + "Expr": "0x55fb7c213470-Expr" }, { - "id": "0x561b7dee3470-Expr", + "id": "0x55fb7c213470-Expr", "variantKey": "Designator", - "Designator": "0x561b7dee1a40-Designator" + "Designator": "0x55fb7c211a40-Designator" }, { - "id": "0x561b7dee1a40-Designator", + "id": "0x55fb7c211a40-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dee1a50-DataRef" + "DataRef": "0x55fb7c211a50-DataRef" }, { - "id": "0x561b7dee1a50-DataRef", + "id": "0x55fb7c211a50-DataRef", "variantKey": "Name", - "Name": "0x561b7dee1a50-Name" + "Name": "0x55fb7c211a50-Name" }, { - "id": "0x561b7dee1a50-Name", + "id": "0x55fb7c211a50-Name", "source": "i" }, { - "id": "0x561b7dee3930-Expr", + "id": "0x55fb7c213930-Expr", "variantKey": "Designator", - "Designator": "0x561b7dec89d0-Designator" + "Designator": "0x55fb7c1f89d0-Designator" }, { - "id": "0x561b7dec89d0-Designator", + "id": "0x55fb7c1f89d0-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dec89e0-DataRef" + "DataRef": "0x55fb7c1f89e0-DataRef" }, { - "id": "0x561b7dec89e0-DataRef", + "id": "0x55fb7c1f89e0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x561b7deea580-ArrayElement" + "ArrayElement": "0x55fb7c21a580-ArrayElement" }, { - "id": "0x561b7deea580-ArrayElement", - "base": "0x561b7deea580-DataRef", + "id": "0x55fb7c21a580-ArrayElement", + "base": "0x55fb7c21a580-DataRef", "subscripts": [ - "0x561b7dec30b0-SectionSubscript" + "0x55fb7c1f30b0-SectionSubscript" ] }, { - "id": "0x561b7deea580-DataRef", + "id": "0x55fb7c21a580-DataRef", "variantKey": "Name", - "Name": "0x561b7deea580-Name" + "Name": "0x55fb7c21a580-Name" }, { - "id": "0x561b7deea580-Name", + "id": "0x55fb7c21a580-Name", "source": "b" }, { - "id": "0x561b7dec30b0-SectionSubscript", + "id": "0x55fb7c1f30b0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x561b7dee3550-Expr" + "Expr": "0x55fb7c213550-Expr" }, { - "id": "0x561b7dee3550-Expr", + "id": "0x55fb7c213550-Expr", "variantKey": "Designator", - "Designator": "0x561b7dedfd80-Designator" + "Designator": "0x55fb7c20fd80-Designator" }, { - "id": "0x561b7dedfd80-Designator", + "id": "0x55fb7c20fd80-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dedfd90-DataRef" + "DataRef": "0x55fb7c20fd90-DataRef" }, { - "id": "0x561b7dedfd90-DataRef", + "id": "0x55fb7c20fd90-DataRef", "variantKey": "Name", - "Name": "0x561b7dedfd90-Name" + "Name": "0x55fb7c20fd90-Name" }, { - "id": "0x561b7dedfd90-Name", + "id": "0x55fb7c20fd90-Name", "source": "i" }, { - "id": "0x561b7dee42d8-ExecutionPartConstruct" + "id": "0x55fb7c2142d8-ExecutionPartConstruct" }, { - "id": "0x561b7dee3040-ExecutionPartConstruct", + "id": "0x55fb7c213040-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dee3040-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c213040-ExecutableConstruct" }, { - "id": "0x561b7dee3040-ExecutableConstruct", + "id": "0x55fb7c213040-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561b7dee3040-Statement" + "Statement": "0x55fb7c213040-Statement" }, { - "id": "0x561b7dee3040-Statement", - "statement": "0x561b7dee3050-ActionStmt", + "id": "0x55fb7c213040-Statement", + "statement": "0x55fb7c213050-ActionStmt", "source": "error=error+1" }, { - "id": "0x561b7dee3050-ActionStmt", + "id": "0x55fb7c213050-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x561b7dede560-AssignmentStmt" + "AssignmentStmt": "0x55fb7c20e560-AssignmentStmt" }, { - "id": "0x561b7dede560-AssignmentStmt", - "Variable": "0x561b7dede640-Variable", - "Expr": "0x561b7dede570-Expr" + "id": "0x55fb7c20e560-AssignmentStmt", + "Variable": "0x55fb7c20e640-Variable", + "Expr": "0x55fb7c20e570-Expr" }, { - "id": "0x561b7dede640-Variable", + "id": "0x55fb7c20e640-Variable", "variantKey": "Designator", - "Designator": "0x561b7dee1b50-Designator" + "Designator": "0x55fb7c211b50-Designator" }, { - "id": "0x561b7dee1b50-Designator", + "id": "0x55fb7c211b50-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dee1b60-DataRef" + "DataRef": "0x55fb7c211b60-DataRef" }, { - "id": "0x561b7dee1b60-DataRef", + "id": "0x55fb7c211b60-DataRef", "variantKey": "Name", - "Name": "0x561b7dee1b60-Name" + "Name": "0x55fb7c211b60-Name" }, { - "id": "0x561b7dee1b60-Name", + "id": "0x55fb7c211b60-Name", "source": "error" }, { - "id": "0x561b7dede570-Expr", + "id": "0x55fb7c20e570-Expr", "variantKey": "Add", - "Add": "0x561b7dede590-Add" + "Add": "0x55fb7c20e590-Add" }, { - "id": "0x561b7dede590-Add", - "left": "0x561b7dee4140-Expr", - "right": "0x561b7dee4060-Expr", + "id": "0x55fb7c20e590-Add", + "left": "0x55fb7c214140-Expr", + "right": "0x55fb7c214060-Expr", "op": "ADD" }, { - "id": "0x561b7dee4140-Expr", + "id": "0x55fb7c214140-Expr", "variantKey": "Designator", - "Designator": "0x561b7dedf9a0-Designator" + "Designator": "0x55fb7c20f9a0-Designator" }, { - "id": "0x561b7dedf9a0-Designator", + "id": "0x55fb7c20f9a0-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dedf9b0-DataRef" + "DataRef": "0x55fb7c20f9b0-DataRef" }, { - "id": "0x561b7dedf9b0-DataRef", + "id": "0x55fb7c20f9b0-DataRef", "variantKey": "Name", - "Name": "0x561b7dedf9b0-Name" + "Name": "0x55fb7c20f9b0-Name" }, { - "id": "0x561b7dedf9b0-Name", + "id": "0x55fb7c20f9b0-Name", "source": "error" }, { - "id": "0x561b7dee4060-Expr", + "id": "0x55fb7c214060-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dee4080-LiteralConstant" + "LiteralConstant": "0x55fb7c214080-LiteralConstant" }, { - "id": "0x561b7dee4080-LiteralConstant", + "id": "0x55fb7c214080-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dee4080-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c214080-IntLiteralConstant" }, { - "id": "0x561b7dee4080-IntLiteralConstant", + "id": "0x55fb7c214080-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x561b7dee4220-Statement", - "statement": "0x561b7dee4230-EndIfStmt", + "id": "0x55fb7c214220-Statement", + "statement": "0x55fb7c214230-EndIfStmt", "source": "endif" }, { - "id": "0x561b7dee4230-EndIfStmt" + "id": "0x55fb7c214230-EndIfStmt" }, { - "id": "0x561b7dee3370-ExecutionPartConstruct", + "id": "0x55fb7c213370-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dee3370-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c213370-ExecutableConstruct" }, { - "id": "0x561b7dee3370-ExecutableConstruct", + "id": "0x55fb7c213370-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561b7dee3370-Statement" + "Statement": "0x55fb7c213370-Statement" }, { - "id": "0x561b7dee3370-Statement", - "statement": "0x561b7dee3380-ActionStmt", + "id": "0x55fb7c213370-Statement", + "statement": "0x55fb7c213380-ActionStmt", "label": "60", "source": "60continue" }, { - "id": "0x561b7dee3380-ActionStmt", + "id": "0x55fb7c213380-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x561b7dee3380-ContinueStmt" + "ContinueStmt": "0x55fb7c213380-ContinueStmt" }, { - "id": "0x561b7dee3380-ContinueStmt" + "id": "0x55fb7c213380-ContinueStmt" }, { - "id": "0x561b7ded97e0-Statement", - "statement": "0x561b7ded97f0-EndDoStmt", + "id": "0x55fb7c2097e0-Statement", + "statement": "0x55fb7c2097f0-EndDoStmt", "source": "" }, { - "id": "0x561b7ded97f0-EndDoStmt" + "id": "0x55fb7c2097f0-EndDoStmt" }, { - "id": "0x561b7dee2590-ExecutionPartConstruct", + "id": "0x55fb7c212590-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dee2590-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c212590-ExecutableConstruct" }, { - "id": "0x561b7dee2590-ExecutableConstruct", + "id": "0x55fb7c212590-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561b7dee2590-Statement" + "Statement": "0x55fb7c212590-Statement" }, { - "id": "0x561b7dee2590-Statement", - "statement": "0x561b7dee25a0-ActionStmt", + "id": "0x55fb7c212590-Statement", + "statement": "0x55fb7c2125a0-ActionStmt", "source": "return" }, { - "id": "0x561b7dee25a0-ActionStmt", + "id": "0x55fb7c2125a0-ActionStmt", "variantKey": "ReturnStmt", - "ReturnStmt": "0x561b7ded2a70-ReturnStmt" + "ReturnStmt": "0x55fb7c202a70-ReturnStmt" }, { - "id": "0x561b7ded2a70-ReturnStmt" + "id": "0x55fb7c202a70-ReturnStmt" }, { - "id": "0x561b7dee5ae0-Statement", - "statement": "0x561b7dee5af0-EndSubroutineStmt", + "id": "0x55fb7c215ae0-Statement", + "statement": "0x55fb7c215af0-EndSubroutineStmt", "source": "endsubroutinesub1" }, { - "id": "0x561b7dee5af0-EndSubroutineStmt", - "Name": "0x561b7dee5af0-Name" + "id": "0x55fb7c215af0-EndSubroutineStmt", + "Name": "0x55fb7c215af0-Name" }, { - "id": "0x561b7dee5af0-Name", + "id": "0x55fb7c215af0-Name", "source": "sub1" }, { - "id": "0x561b7ded22f0-ProgramUnit", + "id": "0x55fb7c2022f0-ProgramUnit", "variantKey": "SubroutineSubprogram", - "SubroutineSubprogram": "0x561b7dee7e70-SubroutineSubprogram" + "SubroutineSubprogram": "0x55fb7c217e70-SubroutineSubprogram" }, { - "id": "0x561b7dee7e70-SubroutineSubprogram", - "Statement": "0x561b7dee7fb8-Statement", - "SpecificationPart": "0x561b7dee7f10-SpecificationPart", - "ExecutionPart": "0x561b7dee7ef8-ExecutionPart", - "Statement": "0x561b7dee7e70-Statement" + "id": "0x55fb7c217e70-SubroutineSubprogram", + "Statement": "0x55fb7c217fb8-Statement", + "SpecificationPart": "0x55fb7c217f10-SpecificationPart", + "ExecutionPart": "0x55fb7c217ef8-ExecutionPart", + "Statement": "0x55fb7c217e70-Statement" }, { - "id": "0x561b7dee7fb8-Statement", - "statement": "0x561b7dee7fc8-SubroutineStmt", + "id": "0x55fb7c217fb8-Statement", + "statement": "0x55fb7c217fc8-SubroutineStmt", "source": "subroutinesub2(error,a,b,c)" }, { - "id": "0x561b7dee7fc8-SubroutineStmt", - "Name": "0x561b7dee8000-Name", + "id": "0x55fb7c217fc8-SubroutineStmt", + "Name": "0x55fb7c218000-Name", "DummyArg": [ - "0x561b7ded36b0-DummyArg", - "0x561b7ded3610-DummyArg", - "0x561b7ded35d0-DummyArg", - "0x561b7ded3650-DummyArg" + "0x55fb7c2036b0-DummyArg", + "0x55fb7c203610-DummyArg", + "0x55fb7c2035d0-DummyArg", + "0x55fb7c203650-DummyArg" ] }, { - "id": "0x561b7dee8000-Name", + "id": "0x55fb7c218000-Name", "source": "sub2" }, { - "id": "0x561b7ded36b0-DummyArg", + "id": "0x55fb7c2036b0-DummyArg", "variantKey": "Name", - "Name": "0x561b7ded36b0-Name" + "Name": "0x55fb7c2036b0-Name" }, { - "id": "0x561b7ded36b0-Name", + "id": "0x55fb7c2036b0-Name", "source": "error" }, { - "id": "0x561b7ded3610-DummyArg", + "id": "0x55fb7c203610-DummyArg", "variantKey": "Name", - "Name": "0x561b7ded3610-Name" + "Name": "0x55fb7c203610-Name" }, { - "id": "0x561b7ded3610-Name", + "id": "0x55fb7c203610-Name", "source": "a" }, { - "id": "0x561b7ded35d0-DummyArg", + "id": "0x55fb7c2035d0-DummyArg", "variantKey": "Name", - "Name": "0x561b7ded35d0-Name" + "Name": "0x55fb7c2035d0-Name" }, { - "id": "0x561b7ded35d0-Name", + "id": "0x55fb7c2035d0-Name", "source": "b" }, { - "id": "0x561b7ded3650-DummyArg", + "id": "0x55fb7c203650-DummyArg", "variantKey": "Name", - "Name": "0x561b7ded3650-Name" + "Name": "0x55fb7c203650-Name" }, { - "id": "0x561b7ded3650-Name", + "id": "0x55fb7c203650-Name", "source": "c" }, { - "id": "0x561b7dee7f10-SpecificationPart", - "ImplicitPart": "0x561b7dee7f28-ImplicitPart", + "id": "0x55fb7c217f10-SpecificationPart", + "ImplicitPart": "0x55fb7c217f28-ImplicitPart", "DeclarationConstruct": [ - "0x561b7dee27b0-DeclarationConstruct", - "0x561b7dee1500-DeclarationConstruct", - "0x561b7dee46e0-DeclarationConstruct" + "0x55fb7c2127b0-DeclarationConstruct", + "0x55fb7c211500-DeclarationConstruct", + "0x55fb7c2146e0-DeclarationConstruct" ] }, { - "id": "0x561b7dee7f28-ImplicitPart" + "id": "0x55fb7c217f28-ImplicitPart" }, { - "id": "0x561b7dee27b0-DeclarationConstruct", + "id": "0x55fb7c2127b0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x561b7dee27b0-SpecificationConstruct" + "SpecificationConstruct": "0x55fb7c2127b0-SpecificationConstruct" }, { - "id": "0x561b7dee27b0-SpecificationConstruct", + "id": "0x55fb7c2127b0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x561b7dee27b0-Statement" + "Statement": "0x55fb7c2127b0-Statement" }, { - "id": "0x561b7dee27b0-Statement", - "statement": "0x561b7dee2720-TypeDeclarationStmt", + "id": "0x55fb7c2127b0-Statement", + "statement": "0x55fb7c212720-TypeDeclarationStmt", "source": "integer*4error" }, { - "id": "0x561b7dee2720-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x561b7dee2750-DeclarationTypeSpec", + "id": "0x55fb7c212720-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55fb7c212750-DeclarationTypeSpec", "EntityDecl": [ - "0x561b7dee5cd0-EntityDecl" + "0x55fb7c215cd0-EntityDecl" ] }, { - "id": "0x561b7dee2750-DeclarationTypeSpec", + "id": "0x55fb7c212750-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x561b7dee2750-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55fb7c212750-IntrinsicTypeSpec" }, { - "id": "0x561b7dee2750-IntrinsicTypeSpec", + "id": "0x55fb7c212750-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x561b7dee2750-IntegerTypeSpec" + "IntegerTypeSpec": "0x55fb7c212750-IntegerTypeSpec" }, { - "id": "0x561b7dee2750-IntegerTypeSpec", - "KindSelector": "0x561b7dee2750-KindSelector" + "id": "0x55fb7c212750-IntegerTypeSpec", + "KindSelector": "0x55fb7c212750-KindSelector" }, { - "id": "0x561b7dee2750-KindSelector", + "id": "0x55fb7c212750-KindSelector", "variantKey": "StarSize", - "StarSize": "0x561b7dee2750-StarSize" + "StarSize": "0x55fb7c212750-StarSize" }, { - "id": "0x561b7dee2750-StarSize", + "id": "0x55fb7c212750-StarSize", "uint64_t": "4" }, { - "id": "0x561b7dee5cd0-EntityDecl", - "Name": "0x561b7dee5d88-Name" + "id": "0x55fb7c215cd0-EntityDecl", + "Name": "0x55fb7c215d88-Name" }, { - "id": "0x561b7dee5d88-Name", + "id": "0x55fb7c215d88-Name", "source": "error" }, { - "id": "0x561b7dee1500-DeclarationConstruct", + "id": "0x55fb7c211500-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x561b7dee1500-SpecificationConstruct" + "SpecificationConstruct": "0x55fb7c211500-SpecificationConstruct" }, { - "id": "0x561b7dee1500-SpecificationConstruct", + "id": "0x55fb7c211500-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x561b7dee1500-Statement" + "Statement": "0x55fb7c211500-Statement" }, { - "id": "0x561b7dee1500-Statement", - "statement": "0x561b7dec5fe0-TypeDeclarationStmt", + "id": "0x55fb7c211500-Statement", + "statement": "0x55fb7c1f5fe0-TypeDeclarationStmt", "source": "complex*8a,b,c" }, { - "id": "0x561b7dec5fe0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x561b7dec6010-DeclarationTypeSpec", + "id": "0x55fb7c1f5fe0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55fb7c1f6010-DeclarationTypeSpec", "EntityDecl": [ - "0x561b7dee4350-EntityDecl", - "0x561b7dec62c0-EntityDecl", - "0x561b7dee58b0-EntityDecl" + "0x55fb7c214350-EntityDecl", + "0x55fb7c1f62c0-EntityDecl", + "0x55fb7c2158b0-EntityDecl" ] }, { - "id": "0x561b7dec6010-DeclarationTypeSpec", + "id": "0x55fb7c1f6010-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x561b7dec6010-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55fb7c1f6010-IntrinsicTypeSpec" }, { - "id": "0x561b7dec6010-IntrinsicTypeSpec", + "id": "0x55fb7c1f6010-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x561b7dec6010-Complex" + "Complex": "0x55fb7c1f6010-Complex" }, { - "id": "0x561b7dec6010-Complex", - "KindSelector": "0x561b7dec6010-KindSelector" + "id": "0x55fb7c1f6010-Complex", + "KindSelector": "0x55fb7c1f6010-KindSelector" }, { - "id": "0x561b7dec6010-KindSelector", + "id": "0x55fb7c1f6010-KindSelector", "variantKey": "StarSize", - "StarSize": "0x561b7dec6010-StarSize" + "StarSize": "0x55fb7c1f6010-StarSize" }, { - "id": "0x561b7dec6010-StarSize", + "id": "0x55fb7c1f6010-StarSize", "uint64_t": "8" }, { - "id": "0x561b7dee4350-EntityDecl", - "Name": "0x561b7dee4408-Name" + "id": "0x55fb7c214350-EntityDecl", + "Name": "0x55fb7c214408-Name" }, { - "id": "0x561b7dee4408-Name", + "id": "0x55fb7c214408-Name", "source": "a" }, { - "id": "0x561b7dec62c0-EntityDecl", - "Name": "0x561b7dec6378-Name" + "id": "0x55fb7c1f62c0-EntityDecl", + "Name": "0x55fb7c1f6378-Name" }, { - "id": "0x561b7dec6378-Name", + "id": "0x55fb7c1f6378-Name", "source": "b" }, { - "id": "0x561b7dee58b0-EntityDecl", - "Name": "0x561b7dee5968-Name" + "id": "0x55fb7c2158b0-EntityDecl", + "Name": "0x55fb7c215968-Name" }, { - "id": "0x561b7dee5968-Name", + "id": "0x55fb7c215968-Name", "source": "c" }, { - "id": "0x561b7dee46e0-DeclarationConstruct", + "id": "0x55fb7c2146e0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x561b7dee46e0-SpecificationConstruct" + "SpecificationConstruct": "0x55fb7c2146e0-SpecificationConstruct" }, { - "id": "0x561b7dee46e0-SpecificationConstruct", + "id": "0x55fb7c2146e0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x561b7dee46e0-Statement" + "Statement": "0x55fb7c2146e0-Statement" }, { - "id": "0x561b7dee46e0-Statement", - "statement": "0x561b7dee46f0-OtherSpecificationStmt", + "id": "0x55fb7c2146e0-Statement", + "statement": "0x55fb7c2146f0-OtherSpecificationStmt", "source": "dimensiona(10),b(10),c(10)" }, { - "id": "0x561b7dee46f0-OtherSpecificationStmt", + "id": "0x55fb7c2146f0-OtherSpecificationStmt", "variantKey": "DimensionStmt", - "DimensionStmt": "0x561b7ded2d10-DimensionStmt" + "DimensionStmt": "0x55fb7c202d10-DimensionStmt" }, { - "id": "0x561b7ded2d10-DimensionStmt", + "id": "0x55fb7c202d10-DimensionStmt", "Declaration": [ - "0x561b7dee1c70-Declaration", - "0x561b7dee1830-Declaration", - "0x561b7dee26a0-Declaration" + "0x55fb7c211c70-Declaration", + "0x55fb7c211830-Declaration", + "0x55fb7c2126a0-Declaration" ] }, { - "id": "0x561b7dee1c70-Declaration", - "Name": "0x561b7dee1ca0-Name", - "ArraySpec": "0x561b7dee1c70-ArraySpec" + "id": "0x55fb7c211c70-Declaration", + "Name": "0x55fb7c211ca0-Name", + "ArraySpec": "0x55fb7c211c70-ArraySpec" }, { - "id": "0x561b7dee1ca0-Name", + "id": "0x55fb7c211ca0-Name", "source": "a" }, { - "id": "0x561b7dee1c70-ArraySpec", + "id": "0x55fb7c211c70-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x561b7ded2b40-ExplicitShapeSpec" + "0x55fb7c202b40-ExplicitShapeSpec" ] }, { - "id": "0x561b7ded2b40-ExplicitShapeSpec", - "upper_bound": "0x561b7ded2b40-SpecificationExpr" + "id": "0x55fb7c202b40-ExplicitShapeSpec", + "upper_bound": "0x55fb7c202b40-SpecificationExpr" }, { - "id": "0x561b7ded2b40-SpecificationExpr", - "Expr": "0x561b7dee4430-Expr" + "id": "0x55fb7c202b40-SpecificationExpr", + "Expr": "0x55fb7c214430-Expr" }, { - "id": "0x561b7dee4430-Expr", + "id": "0x55fb7c214430-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dee4450-LiteralConstant" + "LiteralConstant": "0x55fb7c214450-LiteralConstant" }, { - "id": "0x561b7dee4450-LiteralConstant", + "id": "0x55fb7c214450-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dee4450-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c214450-IntLiteralConstant" }, { - "id": "0x561b7dee4450-IntLiteralConstant", + "id": "0x55fb7c214450-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x561b7dee1830-Declaration", - "Name": "0x561b7dee1860-Name", - "ArraySpec": "0x561b7dee1830-ArraySpec" + "id": "0x55fb7c211830-Declaration", + "Name": "0x55fb7c211860-Name", + "ArraySpec": "0x55fb7c211830-ArraySpec" }, { - "id": "0x561b7dee1860-Name", + "id": "0x55fb7c211860-Name", "source": "b" }, { - "id": "0x561b7dee1830-ArraySpec", + "id": "0x55fb7c211830-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x561b7ded1f10-ExplicitShapeSpec" + "0x55fb7c201f10-ExplicitShapeSpec" ] }, { - "id": "0x561b7ded1f10-ExplicitShapeSpec", - "upper_bound": "0x561b7ded1f10-SpecificationExpr" + "id": "0x55fb7c201f10-ExplicitShapeSpec", + "upper_bound": "0x55fb7c201f10-SpecificationExpr" }, { - "id": "0x561b7ded1f10-SpecificationExpr", - "Expr": "0x561b7dee4510-Expr" + "id": "0x55fb7c201f10-SpecificationExpr", + "Expr": "0x55fb7c214510-Expr" }, { - "id": "0x561b7dee4510-Expr", + "id": "0x55fb7c214510-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dee4530-LiteralConstant" + "LiteralConstant": "0x55fb7c214530-LiteralConstant" }, { - "id": "0x561b7dee4530-LiteralConstant", + "id": "0x55fb7c214530-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dee4530-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c214530-IntLiteralConstant" }, { - "id": "0x561b7dee4530-IntLiteralConstant", + "id": "0x55fb7c214530-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x561b7dee26a0-Declaration", - "Name": "0x561b7dee26d0-Name", - "ArraySpec": "0x561b7dee26a0-ArraySpec" + "id": "0x55fb7c2126a0-Declaration", + "Name": "0x55fb7c2126d0-Name", + "ArraySpec": "0x55fb7c2126a0-ArraySpec" }, { - "id": "0x561b7dee26d0-Name", + "id": "0x55fb7c2126d0-Name", "source": "c" }, { - "id": "0x561b7dee26a0-ArraySpec", + "id": "0x55fb7c2126a0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x561b7ded20a0-ExplicitShapeSpec" + "0x55fb7c2020a0-ExplicitShapeSpec" ] }, { - "id": "0x561b7ded20a0-ExplicitShapeSpec", - "upper_bound": "0x561b7ded20a0-SpecificationExpr" + "id": "0x55fb7c2020a0-ExplicitShapeSpec", + "upper_bound": "0x55fb7c2020a0-SpecificationExpr" }, { - "id": "0x561b7ded20a0-SpecificationExpr", - "Expr": "0x561b7dee45f0-Expr" + "id": "0x55fb7c2020a0-SpecificationExpr", + "Expr": "0x55fb7c2145f0-Expr" }, { - "id": "0x561b7dee45f0-Expr", + "id": "0x55fb7c2145f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dee4610-LiteralConstant" + "LiteralConstant": "0x55fb7c214610-LiteralConstant" }, { - "id": "0x561b7dee4610-LiteralConstant", + "id": "0x55fb7c214610-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dee4610-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c214610-IntLiteralConstant" }, { - "id": "0x561b7dee4610-IntLiteralConstant", + "id": "0x55fb7c214610-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x561b7dee7ef8-ExecutionPart", + "id": "0x55fb7c217ef8-ExecutionPart", "ExecutionPartConstruct": [ - "0x561b7dee54e0-ExecutionPartConstruct", - "0x561b7dee0f20-ExecutionPartConstruct" + "0x55fb7c2154e0-ExecutionPartConstruct", + "0x55fb7c210f20-ExecutionPartConstruct" ] }, { - "id": "0x561b7dee7ef8-ExecutionPartConstruct" + "id": "0x55fb7c217ef8-ExecutionPartConstruct" }, { - "id": "0x561b7dee54e0-ExecutionPartConstruct", + "id": "0x55fb7c2154e0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dee54e0-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c2154e0-ExecutableConstruct" }, { - "id": "0x561b7dee54e0-ExecutableConstruct", + "id": "0x55fb7c2154e0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x561b7df85680-DoConstruct" + "DoConstruct": "0x55fb7c2b5680-DoConstruct" }, { - "id": "0x561b7df85680-DoConstruct", - "Statement": "0x561b7df856d8-Statement", + "id": "0x55fb7c2b5680-DoConstruct", + "Statement": "0x55fb7c2b56d8-Statement", "ExecutionPartConstruct": [ - "0x561b7dee5480-ExecutionPartConstruct", - "0x561b7dee5740-ExecutionPartConstruct" + "0x55fb7c215480-ExecutionPartConstruct", + "0x55fb7c215740-ExecutionPartConstruct" ], - "Statement": "0x561b7df85680-Statement" + "Statement": "0x55fb7c2b5680-Statement" }, { - "id": "0x561b7df856d8-Statement", - "statement": "0x561b7df856e8-NonLabelDoStmt", + "id": "0x55fb7c2b56d8-Statement", + "statement": "0x55fb7c2b56e8-NonLabelDoStmt", "source": "do70i=1,10,1" }, { - "id": "0x561b7df856e8-NonLabelDoStmt", - "LoopControl": "0x561b7df856e8-LoopControl" + "id": "0x55fb7c2b56e8-NonLabelDoStmt", + "LoopControl": "0x55fb7c2b56e8-LoopControl" }, { - "id": "0x561b7df856e8-LoopControl", + "id": "0x55fb7c2b56e8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x561b7df856e8-LoopBounds" + "LoopBounds": "0x55fb7c2b56e8-LoopBounds" }, { - "id": "0x561b7df856e8-LoopBounds", - "var": "0x561b7df856e8-Name", - "lower": "0x561b7dee51d0-Expr", - "upper": "0x561b7dee52b0-Expr", - "step": "0x561b7dee5390-Expr" + "id": "0x55fb7c2b56e8-LoopBounds", + "var": "0x55fb7c2b56e8-Name", + "lower": "0x55fb7c2151d0-Expr", + "upper": "0x55fb7c2152b0-Expr", + "step": "0x55fb7c215390-Expr" }, { - "id": "0x561b7df856e8-Name", + "id": "0x55fb7c2b56e8-Name", "source": "i" }, { - "id": "0x561b7dee51d0-Expr", + "id": "0x55fb7c2151d0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dee51f0-LiteralConstant" + "LiteralConstant": "0x55fb7c2151f0-LiteralConstant" }, { - "id": "0x561b7dee51f0-LiteralConstant", + "id": "0x55fb7c2151f0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dee51f0-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c2151f0-IntLiteralConstant" }, { - "id": "0x561b7dee51f0-IntLiteralConstant", + "id": "0x55fb7c2151f0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x561b7dee52b0-Expr", + "id": "0x55fb7c2152b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dee52d0-LiteralConstant" + "LiteralConstant": "0x55fb7c2152d0-LiteralConstant" }, { - "id": "0x561b7dee52d0-LiteralConstant", + "id": "0x55fb7c2152d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dee52d0-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c2152d0-IntLiteralConstant" }, { - "id": "0x561b7dee52d0-IntLiteralConstant", + "id": "0x55fb7c2152d0-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x561b7dee5390-Expr", + "id": "0x55fb7c215390-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dee53b0-LiteralConstant" + "LiteralConstant": "0x55fb7c2153b0-LiteralConstant" }, { - "id": "0x561b7dee53b0-LiteralConstant", + "id": "0x55fb7c2153b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dee53b0-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c2153b0-IntLiteralConstant" }, { - "id": "0x561b7dee53b0-IntLiteralConstant", + "id": "0x55fb7c2153b0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x561b7df856c0-ExecutionPartConstruct" + "id": "0x55fb7c2b56c0-ExecutionPartConstruct" }, { - "id": "0x561b7dee5480-ExecutionPartConstruct", + "id": "0x55fb7c215480-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dee5480-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c215480-ExecutableConstruct" }, { - "id": "0x561b7dee5480-ExecutableConstruct", + "id": "0x55fb7c215480-ExecutableConstruct", "variantKey": "IfConstruct", - "IfConstruct": "0x561b7dee66d0-IfConstruct" + "IfConstruct": "0x55fb7c2166d0-IfConstruct" }, { - "id": "0x561b7dee66d0-IfConstruct", - "Statement": "0x561b7dee67a0-Statement", + "id": "0x55fb7c2166d0-IfConstruct", + "Statement": "0x55fb7c2167a0-Statement", "ExecutionPartConstruct": [ - "0x561b7dee49f0-ExecutionPartConstruct" + "0x55fb7c2149f0-ExecutionPartConstruct" ], - "Statement": "0x561b7dee66d0-Statement" + "Statement": "0x55fb7c2166d0-Statement" }, { - "id": "0x561b7dee67a0-Statement", - "statement": "0x561b7dee67b0-IfThenStmt", + "id": "0x55fb7c2167a0-Statement", + "statement": "0x55fb7c2167b0-IfThenStmt", "source": "if(c(i).ne.a(i)-b(i))then" }, { - "id": "0x561b7dee67b0-IfThenStmt", - "Expr": "0x561b7dee6320-Expr" + "id": "0x55fb7c2167b0-IfThenStmt", + "Expr": "0x55fb7c216320-Expr" }, { - "id": "0x561b7dee6320-Expr", + "id": "0x55fb7c216320-Expr", "variantKey": "NE", - "NE": "0x561b7dee6340-NE" + "NE": "0x55fb7c216340-NE" }, { - "id": "0x561b7dee6340-NE", - "left": "0x561b7dee6240-Expr", - "right": "0x561b7dee6160-Expr", + "id": "0x55fb7c216340-NE", + "left": "0x55fb7c216240-Expr", + "right": "0x55fb7c216160-Expr", "op": "NE" }, { - "id": "0x561b7dee6240-Expr", + "id": "0x55fb7c216240-Expr", "variantKey": "Designator", - "Designator": "0x561b7dee9b10-Designator" + "Designator": "0x55fb7c219b10-Designator" }, { - "id": "0x561b7dee9b10-Designator", + "id": "0x55fb7c219b10-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dee9b20-DataRef" + "DataRef": "0x55fb7c219b20-DataRef" }, { - "id": "0x561b7dee9b20-DataRef", + "id": "0x55fb7c219b20-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x561b7df8a710-ArrayElement" + "ArrayElement": "0x55fb7c2ba710-ArrayElement" }, { - "id": "0x561b7df8a710-ArrayElement", - "base": "0x561b7df8a710-DataRef", + "id": "0x55fb7c2ba710-ArrayElement", + "base": "0x55fb7c2ba710-DataRef", "subscripts": [ - "0x561b7df8b5d0-SectionSubscript" + "0x55fb7c2bb5d0-SectionSubscript" ] }, { - "id": "0x561b7df8a710-DataRef", + "id": "0x55fb7c2ba710-DataRef", "variantKey": "Name", - "Name": "0x561b7df8a710-Name" + "Name": "0x55fb7c2ba710-Name" }, { - "id": "0x561b7df8a710-Name", + "id": "0x55fb7c2ba710-Name", "source": "c" }, { - "id": "0x561b7df8b5d0-SectionSubscript", + "id": "0x55fb7c2bb5d0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x561b7dee3740-Expr" + "Expr": "0x55fb7c213740-Expr" }, { - "id": "0x561b7dee3740-Expr", + "id": "0x55fb7c213740-Expr", "variantKey": "Designator", - "Designator": "0x561b7dee4aa0-Designator" + "Designator": "0x55fb7c214aa0-Designator" }, { - "id": "0x561b7dee4aa0-Designator", + "id": "0x55fb7c214aa0-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dee4ab0-DataRef" + "DataRef": "0x55fb7c214ab0-DataRef" }, { - "id": "0x561b7dee4ab0-DataRef", + "id": "0x55fb7c214ab0-DataRef", "variantKey": "Name", - "Name": "0x561b7dee4ab0-Name" + "Name": "0x55fb7c214ab0-Name" }, { - "id": "0x561b7dee4ab0-Name", + "id": "0x55fb7c214ab0-Name", "source": "i" }, { - "id": "0x561b7dee6160-Expr", + "id": "0x55fb7c216160-Expr", "variantKey": "Subtract", - "Subtract": "0x561b7dee6180-Subtract" + "Subtract": "0x55fb7c216180-Subtract" }, { - "id": "0x561b7dee6180-Subtract", - "left": "0x561b7dee4e30-Expr", - "right": "0x561b7dee4d50-Expr", + "id": "0x55fb7c216180-Subtract", + "left": "0x55fb7c214e30-Expr", + "right": "0x55fb7c214d50-Expr", "op": "SUBTRACT" }, { - "id": "0x561b7dee4e30-Expr", + "id": "0x55fb7c214e30-Expr", "variantKey": "Designator", - "Designator": "0x561b7df8b180-Designator" + "Designator": "0x55fb7c2bb180-Designator" }, { - "id": "0x561b7df8b180-Designator", + "id": "0x55fb7c2bb180-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7df8b190-DataRef" + "DataRef": "0x55fb7c2bb190-DataRef" }, { - "id": "0x561b7df8b190-DataRef", + "id": "0x55fb7c2bb190-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x561b7df8a8e0-ArrayElement" + "ArrayElement": "0x55fb7c2ba8e0-ArrayElement" }, { - "id": "0x561b7df8a8e0-ArrayElement", - "base": "0x561b7df8a8e0-DataRef", + "id": "0x55fb7c2ba8e0-ArrayElement", + "base": "0x55fb7c2ba8e0-DataRef", "subscripts": [ - "0x561b7dee64c0-SectionSubscript" + "0x55fb7c2164c0-SectionSubscript" ] }, { - "id": "0x561b7df8a8e0-DataRef", + "id": "0x55fb7c2ba8e0-DataRef", "variantKey": "Name", - "Name": "0x561b7df8a8e0-Name" + "Name": "0x55fb7c2ba8e0-Name" }, { - "id": "0x561b7df8a8e0-Name", + "id": "0x55fb7c2ba8e0-Name", "source": "a" }, { - "id": "0x561b7dee64c0-SectionSubscript", + "id": "0x55fb7c2164c0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x561b7dee5530-Expr" + "Expr": "0x55fb7c215530-Expr" }, { - "id": "0x561b7dee5530-Expr", + "id": "0x55fb7c215530-Expr", "variantKey": "Designator", - "Designator": "0x561b7dee56d0-Designator" + "Designator": "0x55fb7c2156d0-Designator" }, { - "id": "0x561b7dee56d0-Designator", + "id": "0x55fb7c2156d0-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dee56e0-DataRef" + "DataRef": "0x55fb7c2156e0-DataRef" }, { - "id": "0x561b7dee56e0-DataRef", + "id": "0x55fb7c2156e0-DataRef", "variantKey": "Name", - "Name": "0x561b7dee56e0-Name" + "Name": "0x55fb7c2156e0-Name" }, { - "id": "0x561b7dee56e0-Name", + "id": "0x55fb7c2156e0-Name", "source": "i" }, { - "id": "0x561b7dee4d50-Expr", + "id": "0x55fb7c214d50-Expr", "variantKey": "Designator", - "Designator": "0x561b7df8b6c0-Designator" + "Designator": "0x55fb7c2bb6c0-Designator" }, { - "id": "0x561b7df8b6c0-Designator", + "id": "0x55fb7c2bb6c0-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7df8b6d0-DataRef" + "DataRef": "0x55fb7c2bb6d0-DataRef" }, { - "id": "0x561b7df8b6d0-DataRef", + "id": "0x55fb7c2bb6d0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x561b7deea6b0-ArrayElement" + "ArrayElement": "0x55fb7c21a6b0-ArrayElement" }, { - "id": "0x561b7deea6b0-ArrayElement", - "base": "0x561b7deea6b0-DataRef", + "id": "0x55fb7c21a6b0-ArrayElement", + "base": "0x55fb7c21a6b0-DataRef", "subscripts": [ - "0x561b7dee4d00-SectionSubscript" + "0x55fb7c214d00-SectionSubscript" ] }, { - "id": "0x561b7deea6b0-DataRef", + "id": "0x55fb7c21a6b0-DataRef", "variantKey": "Name", - "Name": "0x561b7deea6b0-Name" + "Name": "0x55fb7c21a6b0-Name" }, { - "id": "0x561b7deea6b0-Name", + "id": "0x55fb7c21a6b0-Name", "source": "b" }, { - "id": "0x561b7dee4d00-SectionSubscript", + "id": "0x55fb7c214d00-SectionSubscript", "variantKey": "Expr", - "Expr": "0x561b7dee4730-Expr" + "Expr": "0x55fb7c214730-Expr" }, { - "id": "0x561b7dee4730-Expr", + "id": "0x55fb7c214730-Expr", "variantKey": "Designator", - "Designator": "0x561b7dee0be0-Designator" + "Designator": "0x55fb7c210be0-Designator" }, { - "id": "0x561b7dee0be0-Designator", + "id": "0x55fb7c210be0-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dee0bf0-DataRef" + "DataRef": "0x55fb7c210bf0-DataRef" }, { - "id": "0x561b7dee0bf0-DataRef", + "id": "0x55fb7c210bf0-DataRef", "variantKey": "Name", - "Name": "0x561b7dee0bf0-Name" + "Name": "0x55fb7c210bf0-Name" }, { - "id": "0x561b7dee0bf0-Name", + "id": "0x55fb7c210bf0-Name", "source": "i" }, { - "id": "0x561b7dee6788-ExecutionPartConstruct" + "id": "0x55fb7c216788-ExecutionPartConstruct" }, { - "id": "0x561b7dee49f0-ExecutionPartConstruct", + "id": "0x55fb7c2149f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dee49f0-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c2149f0-ExecutableConstruct" }, { - "id": "0x561b7dee49f0-ExecutableConstruct", + "id": "0x55fb7c2149f0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561b7dee49f0-Statement" + "Statement": "0x55fb7c2149f0-Statement" }, { - "id": "0x561b7dee49f0-Statement", - "statement": "0x561b7dee4a00-ActionStmt", + "id": "0x55fb7c2149f0-Statement", + "statement": "0x55fb7c214a00-ActionStmt", "source": "error=error+1" }, { - "id": "0x561b7dee4a00-ActionStmt", + "id": "0x55fb7c214a00-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x561b7dee50c0-AssignmentStmt" + "AssignmentStmt": "0x55fb7c2150c0-AssignmentStmt" }, { - "id": "0x561b7dee50c0-AssignmentStmt", - "Variable": "0x561b7dee51a0-Variable", - "Expr": "0x561b7dee50d0-Expr" + "id": "0x55fb7c2150c0-AssignmentStmt", + "Variable": "0x55fb7c2151a0-Variable", + "Expr": "0x55fb7c2150d0-Expr" }, { - "id": "0x561b7dee51a0-Variable", + "id": "0x55fb7c2151a0-Variable", "variantKey": "Designator", - "Designator": "0x561b7dee5670-Designator" + "Designator": "0x55fb7c215670-Designator" }, { - "id": "0x561b7dee5670-Designator", + "id": "0x55fb7c215670-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dee5680-DataRef" + "DataRef": "0x55fb7c215680-DataRef" }, { - "id": "0x561b7dee5680-DataRef", + "id": "0x55fb7c215680-DataRef", "variantKey": "Name", - "Name": "0x561b7dee5680-Name" + "Name": "0x55fb7c215680-Name" }, { - "id": "0x561b7dee5680-Name", + "id": "0x55fb7c215680-Name", "source": "error" }, { - "id": "0x561b7dee50d0-Expr", + "id": "0x55fb7c2150d0-Expr", "variantKey": "Add", - "Add": "0x561b7dee50f0-Add" + "Add": "0x55fb7c2150f0-Add" }, { - "id": "0x561b7dee50f0-Add", - "left": "0x561b7dee65f0-Expr", - "right": "0x561b7dee6510-Expr", + "id": "0x55fb7c2150f0-Add", + "left": "0x55fb7c2165f0-Expr", + "right": "0x55fb7c216510-Expr", "op": "ADD" }, { - "id": "0x561b7dee65f0-Expr", + "id": "0x55fb7c2165f0-Expr", "variantKey": "Designator", - "Designator": "0x561b7dee1930-Designator" + "Designator": "0x55fb7c211930-Designator" }, { - "id": "0x561b7dee1930-Designator", + "id": "0x55fb7c211930-Designator", "variantKey": "DataRef", - "DataRef": "0x561b7dee1940-DataRef" + "DataRef": "0x55fb7c211940-DataRef" }, { - "id": "0x561b7dee1940-DataRef", + "id": "0x55fb7c211940-DataRef", "variantKey": "Name", - "Name": "0x561b7dee1940-Name" + "Name": "0x55fb7c211940-Name" }, { - "id": "0x561b7dee1940-Name", + "id": "0x55fb7c211940-Name", "source": "error" }, { - "id": "0x561b7dee6510-Expr", + "id": "0x55fb7c216510-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561b7dee6530-LiteralConstant" + "LiteralConstant": "0x55fb7c216530-LiteralConstant" }, { - "id": "0x561b7dee6530-LiteralConstant", + "id": "0x55fb7c216530-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561b7dee6530-IntLiteralConstant" + "IntLiteralConstant": "0x55fb7c216530-IntLiteralConstant" }, { - "id": "0x561b7dee6530-IntLiteralConstant", + "id": "0x55fb7c216530-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x561b7dee66d0-Statement", - "statement": "0x561b7dee66e0-EndIfStmt", + "id": "0x55fb7c2166d0-Statement", + "statement": "0x55fb7c2166e0-EndIfStmt", "source": "endif" }, { - "id": "0x561b7dee66e0-EndIfStmt" + "id": "0x55fb7c2166e0-EndIfStmt" }, { - "id": "0x561b7dee5740-ExecutionPartConstruct", + "id": "0x55fb7c215740-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dee5740-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c215740-ExecutableConstruct" }, { - "id": "0x561b7dee5740-ExecutableConstruct", + "id": "0x55fb7c215740-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561b7dee5740-Statement" + "Statement": "0x55fb7c215740-Statement" }, { - "id": "0x561b7dee5740-Statement", - "statement": "0x561b7dee5750-ActionStmt", + "id": "0x55fb7c215740-Statement", + "statement": "0x55fb7c215750-ActionStmt", "label": "70", "source": "70continue" }, { - "id": "0x561b7dee5750-ActionStmt", + "id": "0x55fb7c215750-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x561b7dee5750-ContinueStmt" + "ContinueStmt": "0x55fb7c215750-ContinueStmt" }, { - "id": "0x561b7dee5750-ContinueStmt" + "id": "0x55fb7c215750-ContinueStmt" }, { - "id": "0x561b7df85680-Statement", - "statement": "0x561b7df85690-EndDoStmt", + "id": "0x55fb7c2b5680-Statement", + "statement": "0x55fb7c2b5690-EndDoStmt", "source": "" }, { - "id": "0x561b7df85690-EndDoStmt" + "id": "0x55fb7c2b5690-EndDoStmt" }, { - "id": "0x561b7dee0f20-ExecutionPartConstruct", + "id": "0x55fb7c210f20-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x561b7dee0f20-ExecutableConstruct" + "ExecutableConstruct": "0x55fb7c210f20-ExecutableConstruct" }, { - "id": "0x561b7dee0f20-ExecutableConstruct", + "id": "0x55fb7c210f20-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x561b7dee0f20-Statement" + "Statement": "0x55fb7c210f20-Statement" }, { - "id": "0x561b7dee0f20-Statement", - "statement": "0x561b7dee0f30-ActionStmt", + "id": "0x55fb7c210f20-Statement", + "statement": "0x55fb7c210f30-ActionStmt", "source": "return" }, { - "id": "0x561b7dee0f30-ActionStmt", + "id": "0x55fb7c210f30-ActionStmt", "variantKey": "ReturnStmt", - "ReturnStmt": "0x561b7ded2ef0-ReturnStmt" + "ReturnStmt": "0x55fb7c202ef0-ReturnStmt" }, { - "id": "0x561b7ded2ef0-ReturnStmt" + "id": "0x55fb7c202ef0-ReturnStmt" }, { - "id": "0x561b7dee7e70-Statement", - "statement": "0x561b7dee7e80-EndSubroutineStmt", + "id": "0x55fb7c217e70-Statement", + "statement": "0x55fb7c217e80-EndSubroutineStmt", "source": "endsubroutinesub2" }, { - "id": "0x561b7dee7e80-EndSubroutineStmt", - "Name": "0x561b7dee7e80-Name" + "id": "0x55fb7c217e80-EndSubroutineStmt", + "Name": "0x55fb7c217e80-Name" }, { - "id": "0x561b7dee7e80-Name", + "id": "0x55fb7c217e80-Name", "source": "sub2" } ], "comments": [ { "text": "", - "stmtId": "0x561b7dedbd98-Statement", + "stmtId": "0x55fb7c20bd98-Statement", "trailing": false }, { "text": "", - "stmtId": "0x561b7deca550-Statement", + "stmtId": "0x55fb7c1fa550-Statement", "trailing": false }, { "text": "", - "stmtId": "0x561b7ded9718-Statement", + "stmtId": "0x55fb7c209718-Statement", "trailing": false }, { "text": "", - "stmtId": "0x561b7dedf250-Statement", + "stmtId": "0x55fb7c20f250-Statement", "trailing": false }, { "text": "", - "stmtId": "0x561b7dee5c28-Statement", + "stmtId": "0x55fb7c215c28-Statement", "trailing": false }, { "text": "", - "stmtId": "0x561b7ded9838-Statement", + "stmtId": "0x55fb7c209838-Statement", "trailing": false }, { "text": "", - "stmtId": "0x561b7dee2590-Statement", + "stmtId": "0x55fb7c212590-Statement", "trailing": false }, { "text": "", - "stmtId": "0x561b7dee7fb8-Statement", + "stmtId": "0x55fb7c217fb8-Statement", "trailing": false }, { "text": "", - "stmtId": "0x561b7df856d8-Statement", + "stmtId": "0x55fb7c2b56d8-Statement", "trailing": false }, { "text": "", - "stmtId": "0x561b7dee0f20-Statement", + "stmtId": "0x55fb7c210f20-Statement", "trailing": false } ], From f99b9ed49ddc8b6db772b1f62e75e29f73361b69 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 22 Jul 2026 23:58:17 +0100 Subject: [PATCH 084/260] Add dimension statement node to AST --- .../ast/nodes/stmt/dimstmt/DimensionDecl.java | 30 ++++++++++++++++ .../ast/nodes/stmt/dimstmt/DimensionStmt.java | 36 +++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/dimstmt/DimensionDecl.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/dimstmt/DimensionStmt.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/dimstmt/DimensionDecl.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/dimstmt/DimensionDecl.java new file mode 100644 index 00000000..be77f809 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/dimstmt/DimensionDecl.java @@ -0,0 +1,30 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.dimstmt; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; + +import java.util.Collection; + +public class DimensionDecl extends FortranNode { + public static final DataKey NAME = KeyFactory.string("name"); + + public DimensionDecl(DataStore data, Collection children) { + super(data, children); + } + + public String getName() { + return get(NAME); + } + + public ArraySpecification getArraySpecification() { + return getChild(ArraySpecification.class); + } + + @Override + public String getCode() { + return getName() + "(" + getArraySpecification().getCode() + ")"; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/dimstmt/DimensionStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/dimstmt/DimensionStmt.java new file mode 100644 index 00000000..92be62f1 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/dimstmt/DimensionStmt.java @@ -0,0 +1,36 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.dimstmt; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +public class DimensionStmt extends Stmt { + public DimensionStmt(DataStore data, Collection children) { + super(data, children); + } + + public List getDimensionDecls() { + return getChildrenOf(DimensionDecl.class); + } + + @Override + public String getStmtCode() { + var code = new StringBuilder(); + + code.append(keyword(FortranKeyword.DIMENSION)) + .append(!fixedForm() ? " :: " : " "); + + var decls = getDimensionDecls(); + var declsCode = decls.stream() + .map(DimensionDecl::getCode) + .collect(Collectors.joining("," + optSpc())); + code.append(declsCode); + + return code.toString(); + } +} From cc455f0b87eaf22bc88f6cae1ccf2cb612bdee40 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Jul 2026 00:03:32 +0100 Subject: [PATCH 085/260] Add processing of dimension statements --- .../up/fe/specs/fortran/parser/FlangName.java | 2 ++ .../fe/specs/fortran/parser/FlangToClass.java | 4 ++++ .../specs/fortran/parser/processors/Nodes.java | 4 ++++ .../parser/processors/StmtProcessors.java | 17 +++++++++++++++++ 4 files changed, 27 insertions(+) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index d9659c23..1973d615 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -70,6 +70,8 @@ public enum FlangName implements StringProvider { COMMON_STMT_BLOCK, COMMON_BLOCK_OBJECT, RETURN_STMT, + DIMENSION_STMT, + DECLARATION, /// Conditional Statements IF_CONSTRUCT, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index e18f62fa..886b69bc 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -19,6 +19,8 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.*; import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmtSet; +import pt.up.fe.specs.fortran.ast.nodes.stmt.dimstmt.DimensionDecl; +import pt.up.fe.specs.fortran.ast.nodes.stmt.dimstmt.DimensionStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.ifstmt.*; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoStmt; @@ -113,6 +115,8 @@ public class FlangToClass { NAME_TO_CLASS.put(FlangName.DATA_STMT, DataStmt.class); NAME_TO_CLASS.put(FlangName.DATA_STMT_SET, DataStmtSet.class); NAME_TO_CLASS.put(FlangName.RETURN_STMT, ReturnStmt.class); + NAME_TO_CLASS.put(FlangName.DIMENSION_STMT, DimensionStmt.class); + NAME_TO_CLASS.put(FlangName.DECLARATION, DimensionDecl.class); /// Variables //NAME_TO_CLASS.put(FlangName.DATA_REF, DataRef.class); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 67ca8f3a..8b44bbaa 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -19,6 +19,8 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.*; import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmtSet; +import pt.up.fe.specs.fortran.ast.nodes.stmt.dimstmt.DimensionDecl; +import pt.up.fe.specs.fortran.ast.nodes.stmt.dimstmt.DimensionStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.ifstmt.*; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoStmt; @@ -120,6 +122,8 @@ public Nodes(FortranJsonResult data) { processors.put(SubroutineStmt.class, s::subroutineStmt); processors.put(EndSubroutineStmt.class, s::endSubroutineStmt); processors.put(ReturnStmt.class, s::returnStmt); + processors.put(DimensionStmt.class, s::dimensionStmt); + processors.put(DimensionDecl.class, s::dimensionDecl); var e = new ExprProcessors(data); processors.put(StringLiteral.class, e::stringLiteral); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index d03776a3..71e6bf82 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -11,6 +11,8 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmtObject; import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmtSet; import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmtVariable; +import pt.up.fe.specs.fortran.ast.nodes.stmt.dimstmt.DimensionDecl; +import pt.up.fe.specs.fortran.ast.nodes.stmt.dimstmt.DimensionStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.ifstmt.*; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoStmt; @@ -641,4 +643,19 @@ public void returnStmt(ReturnStmt returnStmt) { .map(Integer::parseInt); returnStmt.set(ReturnStmt.TARGET, target); } + + public void dimensionStmt(DimensionStmt dimensionStmt) { + stmt(dimensionStmt); + + var decls = getChildren(dimensionStmt, FlangName.DECLARATION); + dimensionStmt.addChildren(decls); + } + + public void dimensionDecl(DimensionDecl dimensionDecl) { + var name = attributes().getString(dimensionDecl, "source", FlangName.NAME); + dimensionDecl.set(DimensionDecl.NAME, name); + + var arraySpec = getChild(dimensionDecl, FlangName.ARRAY_SPEC); + dimensionDecl.addChild(arraySpec); + } } From b1b4363334b84f81018a74ba5a0bd2f3ba901515 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Jul 2026 00:04:20 +0100 Subject: [PATCH 086/260] Fix dimension statement code gen --- .../fe/specs/fortran/ast/nodes/stmt/dimstmt/DimensionDecl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/dimstmt/DimensionDecl.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/dimstmt/DimensionDecl.java index be77f809..e2ef0d2a 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/dimstmt/DimensionDecl.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/dimstmt/DimensionDecl.java @@ -25,6 +25,6 @@ public ArraySpecification getArraySpecification() { @Override public String getCode() { - return getName() + "(" + getArraySpecification().getCode() + ")"; + return getName() + getArraySpecification().getCode(); } } From 30322412f2602e4215882503b0297f5a45bcdab5 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Jul 2026 00:16:53 +0100 Subject: [PATCH 087/260] Fix Fujitsu test 0001_0032 --- .../ast/nodes/loops/RangeLoopControl.java | 2 +- .../fortran/ast/nodes/stmt/loop/DoStmt.java | 4 +--- .../parser/fujitsu/0001/0001_0032.expected.f | 18 +++++++++--------- 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/loops/RangeLoopControl.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/loops/RangeLoopControl.java index 94a75051..783f38d5 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/loops/RangeLoopControl.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/loops/RangeLoopControl.java @@ -50,7 +50,7 @@ public String getCode() { .append(getLower().getCode()).append(",").append(optSpc()) .append(getUpper().getCode()); - getStep().ifPresent(step -> code.append(", ").append(step.getCode())); + getStep().ifPresent(step -> code.append(",").append(optSpc()).append(step.getCode())); return code.toString(); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoStmt.java index 4a09e3f9..5af86e36 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoStmt.java @@ -1,7 +1,5 @@ package pt.up.fe.specs.fortran.ast.nodes.stmt.loop; -import org.suikasoft.jOptions.Datakey.DataKey; -import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; @@ -30,7 +28,7 @@ public String getStmtCode() { var code = new StringBuilder(); - doNameOpt.ifPresent(doName -> code.append(doName).append(" : ")); + doNameOpt.ifPresent(doName -> code.append(doName).append(optSpc()).append(":").append(optSpc())); code.append(keyword(FortranKeyword.DO)); diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0032.expected.f b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0032.expected.f index f5ed2784..87f35e82 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0032.expected.f +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0032.expected.f @@ -30,7 +30,7 @@ IF(v_b(i)/=s_b(i))THEN error=error+1 ENDIF - 50 CONTINUE + 50 CONTINUE IF(error==0)THEN WRITE(6,*)"OK" ELSE @@ -45,13 +45,13 @@ STOP END C - SUBROUTINE sub1(error,A,B,C) + SUBROUTINE sub1(error,a,b,c) INTEGER*4 error - COMPLEX*8 A,B,C - DIMENSION A(10),B(10),C(10) + COMPLEX*8 a,b,c + DIMENSION a(10),b(10),c(10) C DO 60 i=1,10,1 - IF(C(i)/=A(i)+B(i))THEN + IF(c(i)/=a(i)+b(i))THEN error=error+1 ENDIF 60 CONTINUE @@ -59,13 +59,13 @@ SUBROUTINE sub1(error,A,B,C) RETURN END C - SUBROUTINE sub2(error,A,B,C) + SUBROUTINE sub2(error,a,b,c) INTEGER*4 error - COMPLEX*8 A,B,C - DIMENSION A(10),B(10),C(10) + COMPLEX*8 a,b,c + DIMENSION a(10),b(10),c(10) C DO 70 i=1,10,1 - IF(C(i)/=A(i)-B(i))THEN + IF(c(i)/=a(i)-b(i))THEN error=error+1 ENDIF 70 CONTINUE From b97b58452a426990be3b740f49c200e9886c803b Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Jul 2026 00:24:08 +0100 Subject: [PATCH 088/260] Go back on type declaration statement usage of :: --- .../ast/nodes/stmt/TypeDeclarationStmt.java | 2 +- .../parser/arrays/array_implied_do.expected.f90 | 2 +- .../parser/arrays/element_access.expected.f90 | 4 ++-- .../fortran/parser/binary_operator.expected.f90 | 4 ++-- .../fortran/parser/concurrent.expected.f90 | 4 ++-- .../parser/conditionalstmt/chained_if.expected.f90 | 2 +- .../parser/conditionalstmt/if_then.expected.f90 | 2 +- .../conditionalstmt/if_then_else.expected.f90 | 2 +- .../parser/conditionalstmt/logical_if.expected.f90 | 4 ++-- .../conditionalstmt/named_chained_if.expected.f90 | 2 +- .../conditionalstmt/named_select_case.expected.f90 | 2 +- .../conditionalstmt/select_case.expected.f90 | 2 +- .../conditionalstmt/select_case_list.expected.f90 | 2 +- .../conditionalstmt/select_case_range.expected.f90 | 2 +- .../fortran/parser/decl/kind_selector.expected.f90 | 4 ++-- .../parser/decl/legacy_kind_selector.expected.f90 | 4 ++-- .../fortran/parser/declaration.expected.f90 | 2 +- .../fortran/parser/directive.expected.f90 | 4 ++-- .../resources-test/fortran/parser/do.expected.f90 | 2 +- .../parser/expr/complex_literal.expected.f90 | 12 ++++++------ .../fortran/parser/expr/negate.expected.f90 | 2 +- .../fortran/parser/expr/not.expected.f90 | 2 +- .../fortran/parser/expr/parentheses.expected.f90 | 2 +- .../parser/expr/subscript_triplet.expected.f90 | 2 +- .../fortran/parser/expr/unary_plus.expected.f90 | 2 +- .../parser/fujitsu/0000/0000_0000.expected.f90 | 4 ++-- .../parser/fujitsu/0000/0000_0001.expected.f90 | 6 +++--- .../parser/fujitsu/0000/0000_0002.expected.f90 | 6 +++--- .../parser/fujitsu/0000/0000_0003.expected.f90 | 6 +++--- .../parser/fujitsu/0000/0000_0004.expected.f90 | 6 +++--- .../parser/fujitsu/0000/0000_0007.expected.f90 | 6 +++--- .../parser/fujitsu/0000/0000_0019.expected.f90 | 6 +++--- .../parser/fujitsu/0000/0000_0023.expected.f90 | 4 ++-- .../parser/fujitsu/0000/0000_0024.expected.f90 | 2 +- .../parser/fujitsu/0000/0000_0033.expected.f90 | 14 +++++++------- .../fortran/parser/logical_expression.expected.f90 | 4 ++-- .../fortran/parser/omp/omp_basic.expected.f90 | 2 +- .../fortran/parser/omp/omp_clause.expected.f90 | 4 ++-- .../fortran/parser/omp/omp_do.expected.f90 | 4 ++-- .../fortran/parser/omp/omp_reduction.expected.f90 | 4 ++-- .../fortran/parser/parameter.expected.f90 | 4 ++-- .../fortran/parser/parenexpr.expected.f90 | 4 ++-- .../fortran/parser/polybench/3mm.expected.f90 | 14 +++++++------- .../fortran/parser/stmt/common_stmt.expected.f90 | 4 ++-- .../fortran/parser/subroutine.expected.f90 | 2 +- 45 files changed, 90 insertions(+), 90 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java index 6024c75f..0675cdbd 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java @@ -47,7 +47,7 @@ public String getStmtCode() { code.append(",").append(optSpc()).append(attributesCode) .append(optSpc()).append("::").append(optSpc()); } else { - code.append(" "); + code.append(!fixedForm() ? " :: " : " "); } var declsCode = decls.stream().map(EntityDecl::getCode) diff --git a/FortranParser/resources-test/fortran/parser/arrays/array_implied_do.expected.f90 b/FortranParser/resources-test/fortran/parser/arrays/array_implied_do.expected.f90 index 7bb5a4e5..acc281ac 100644 --- a/FortranParser/resources-test/fortran/parser/arrays/array_implied_do.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/arrays/array_implied_do.expected.f90 @@ -1,5 +1,5 @@ PROGRAM TEST_IMPLIED_DO - INTEGER i, j + INTEGER :: i, j INTEGER, DIMENSION(5) :: arr1, arr2, arr3 INTEGER, DIMENSION(10) :: arr4, arr5 INTEGER, DIMENSION(9) :: arr6 diff --git a/FortranParser/resources-test/fortran/parser/arrays/element_access.expected.f90 b/FortranParser/resources-test/fortran/parser/arrays/element_access.expected.f90 index bbdabc56..d0a58bed 100644 --- a/FortranParser/resources-test/fortran/parser/arrays/element_access.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/arrays/element_access.expected.f90 @@ -1,7 +1,7 @@ PROGRAM ARRAY_DEMONSTRATION - INTEGER vec(5) = [10, 20, 30, 40, 50] - INTEGER matrix(3, 3) + INTEGER :: vec(5) = [10, 20, 30, 40, 50] + INTEGER :: matrix(3, 3) PRINT *, "The second element is:", vec(2) PRINT *, "Multi dimensional:", matrix(1, 2) diff --git a/FortranParser/resources-test/fortran/parser/binary_operator.expected.f90 b/FortranParser/resources-test/fortran/parser/binary_operator.expected.f90 index a15f2efa..900293fa 100644 --- a/FortranParser/resources-test/fortran/parser/binary_operator.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/binary_operator.expected.f90 @@ -1,6 +1,6 @@ PROGRAM TEST_EXPRS - LOGICAL l - INTEGER i, a = 1, b = 1 + LOGICAL :: l + INTEGER :: i, a = 1, b = 1 l = 0 < a l = 2 <= 3 l = b > 5 diff --git a/FortranParser/resources-test/fortran/parser/concurrent.expected.f90 b/FortranParser/resources-test/fortran/parser/concurrent.expected.f90 index 605455b0..a93d2cdf 100644 --- a/FortranParser/resources-test/fortran/parser/concurrent.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/concurrent.expected.f90 @@ -1,6 +1,6 @@ PROGRAM SIMPLE_LOOP - INTEGER i, j - REAL x + INTEGER :: i, j + REAL :: x DO CONCURRENT (i = 1:10:1, j = 1:10, i > 5) x = 0.0 diff --git a/FortranParser/resources-test/fortran/parser/conditionalstmt/chained_if.expected.f90 b/FortranParser/resources-test/fortran/parser/conditionalstmt/chained_if.expected.f90 index d628d919..0d87e340 100644 --- a/FortranParser/resources-test/fortran/parser/conditionalstmt/chained_if.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/conditionalstmt/chained_if.expected.f90 @@ -1,5 +1,5 @@ PROGRAM IF - LOGICAL cond1, cond2 + LOGICAL :: cond1, cond2 cond1 = .FALSE. cond2 = .TRUE. diff --git a/FortranParser/resources-test/fortran/parser/conditionalstmt/if_then.expected.f90 b/FortranParser/resources-test/fortran/parser/conditionalstmt/if_then.expected.f90 index 0ab5ec33..47be87bf 100644 --- a/FortranParser/resources-test/fortran/parser/conditionalstmt/if_then.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/conditionalstmt/if_then.expected.f90 @@ -1,5 +1,5 @@ PROGRAM IF - LOGICAL cond + LOGICAL :: cond cond = .FALSE. IF (cond) THEN diff --git a/FortranParser/resources-test/fortran/parser/conditionalstmt/if_then_else.expected.f90 b/FortranParser/resources-test/fortran/parser/conditionalstmt/if_then_else.expected.f90 index a96973ee..8a7c7d0c 100644 --- a/FortranParser/resources-test/fortran/parser/conditionalstmt/if_then_else.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/conditionalstmt/if_then_else.expected.f90 @@ -1,5 +1,5 @@ PROGRAM IF - LOGICAL cond + LOGICAL :: cond cond = .FALSE. IF (cond) THEN diff --git a/FortranParser/resources-test/fortran/parser/conditionalstmt/logical_if.expected.f90 b/FortranParser/resources-test/fortran/parser/conditionalstmt/logical_if.expected.f90 index fd68a9eb..1f9a31dc 100644 --- a/FortranParser/resources-test/fortran/parser/conditionalstmt/logical_if.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/conditionalstmt/logical_if.expected.f90 @@ -1,6 +1,6 @@ PROGRAM LOGICAL_IF - LOGICAL cond - INTEGER result + LOGICAL :: cond + INTEGER :: result cond = .FALSE. result = 2 IF (cond) result = 3 diff --git a/FortranParser/resources-test/fortran/parser/conditionalstmt/named_chained_if.expected.f90 b/FortranParser/resources-test/fortran/parser/conditionalstmt/named_chained_if.expected.f90 index eaba715a..e8c1e53d 100644 --- a/FortranParser/resources-test/fortran/parser/conditionalstmt/named_chained_if.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/conditionalstmt/named_chained_if.expected.f90 @@ -1,5 +1,5 @@ PROGRAM IF - LOGICAL cond1, cond2 + LOGICAL :: cond1, cond2 cond1 = .FALSE. cond2 = .TRUE. diff --git a/FortranParser/resources-test/fortran/parser/conditionalstmt/named_select_case.expected.f90 b/FortranParser/resources-test/fortran/parser/conditionalstmt/named_select_case.expected.f90 index 12a15378..45149ff1 100644 --- a/FortranParser/resources-test/fortran/parser/conditionalstmt/named_select_case.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/conditionalstmt/named_select_case.expected.f90 @@ -1,5 +1,5 @@ PROGRAM NAMED_SELECT_CASE - INTEGER val, result + INTEGER :: val, result val = 2 named_select : SELECT CASE (val) diff --git a/FortranParser/resources-test/fortran/parser/conditionalstmt/select_case.expected.f90 b/FortranParser/resources-test/fortran/parser/conditionalstmt/select_case.expected.f90 index 22e22bfb..4d5866ce 100644 --- a/FortranParser/resources-test/fortran/parser/conditionalstmt/select_case.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/conditionalstmt/select_case.expected.f90 @@ -1,5 +1,5 @@ PROGRAM SELECT_CASE - INTEGER val, result + INTEGER :: val, result val = 2 SELECT CASE (val) diff --git a/FortranParser/resources-test/fortran/parser/conditionalstmt/select_case_list.expected.f90 b/FortranParser/resources-test/fortran/parser/conditionalstmt/select_case_list.expected.f90 index 49fda5a4..82cdeaa6 100644 --- a/FortranParser/resources-test/fortran/parser/conditionalstmt/select_case_list.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/conditionalstmt/select_case_list.expected.f90 @@ -1,5 +1,5 @@ PROGRAM SELECT_CASE_LIST - INTEGER val, result + INTEGER :: val, result val = 2 SELECT CASE (val) diff --git a/FortranParser/resources-test/fortran/parser/conditionalstmt/select_case_range.expected.f90 b/FortranParser/resources-test/fortran/parser/conditionalstmt/select_case_range.expected.f90 index 97f77e20..443a952d 100644 --- a/FortranParser/resources-test/fortran/parser/conditionalstmt/select_case_range.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/conditionalstmt/select_case_range.expected.f90 @@ -1,5 +1,5 @@ PROGRAM SELECT_CASE_RANGE - INTEGER val, result + INTEGER :: val, result val = 5 SELECT CASE (val) diff --git a/FortranParser/resources-test/fortran/parser/decl/kind_selector.expected.f90 b/FortranParser/resources-test/fortran/parser/decl/kind_selector.expected.f90 index 98d44ab7..1dd568e6 100644 --- a/FortranParser/resources-test/fortran/parser/decl/kind_selector.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/decl/kind_selector.expected.f90 @@ -1,6 +1,6 @@ PROGRAM KIND_SELECTOR - INTEGER(4) i4 = 1 - REAL(8) r8 = 2.0 + INTEGER(4) :: i4 = 1 + REAL(8) :: r8 = 2.0 PRINT *, i4, r8 END PROGRAM KIND_SELECTOR \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/decl/legacy_kind_selector.expected.f90 b/FortranParser/resources-test/fortran/parser/decl/legacy_kind_selector.expected.f90 index 8ef414dc..bfed9f06 100644 --- a/FortranParser/resources-test/fortran/parser/decl/legacy_kind_selector.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/decl/legacy_kind_selector.expected.f90 @@ -1,6 +1,6 @@ PROGRAM LEGACY_KIND_SELECTOR - INTEGER*4 i4 = 1 - REAL*8 r8 = 2.0 + INTEGER*4 :: i4 = 1 + REAL*8 :: r8 = 2.0 PRINT *, i4, r8 END PROGRAM LEGACY_KIND_SELECTOR \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/declaration.expected.f90 b/FortranParser/resources-test/fortran/parser/declaration.expected.f90 index fc2dc3f8..8215c220 100644 --- a/FortranParser/resources-test/fortran/parser/declaration.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/declaration.expected.f90 @@ -1,6 +1,6 @@ PROGRAM DECLARATION - INTEGER a, b = 1 + INTEGER :: a, b = 1 !integer i; ! i = 1 diff --git a/FortranParser/resources-test/fortran/parser/directive.expected.f90 b/FortranParser/resources-test/fortran/parser/directive.expected.f90 index 5f0b1ef3..e2adbb45 100644 --- a/FortranParser/resources-test/fortran/parser/directive.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/directive.expected.f90 @@ -1,6 +1,6 @@ PROGRAM DIR - INTEGER result - INTEGER a = 5 + INTEGER :: result + INTEGER :: a = 5 !DIR$ scop result = (5) diff --git a/FortranParser/resources-test/fortran/parser/do.expected.f90 b/FortranParser/resources-test/fortran/parser/do.expected.f90 index cac480ce..73949512 100644 --- a/FortranParser/resources-test/fortran/parser/do.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/do.expected.f90 @@ -1,6 +1,6 @@ PROGRAM SIMPLE_LOOP !use omp_lib - INTEGER i, dummy, a = 2 + INTEGER :: i, dummy, a = 2 !$OMP PARALLEL DO DO i = 1, 5, a diff --git a/FortranParser/resources-test/fortran/parser/expr/complex_literal.expected.f90 b/FortranParser/resources-test/fortran/parser/expr/complex_literal.expected.f90 index 9a3acaf4..73525103 100644 --- a/FortranParser/resources-test/fortran/parser/expr/complex_literal.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/expr/complex_literal.expected.f90 @@ -2,18 +2,18 @@ PROGRAM COMPLEX_LITERAL USE, INTRINSIC :: iso_fortran_env, ONLY : sp => real32, dp => real64 ! 1. Basic Default Real Literals - COMPLEX c_default = (3.0, 4.0) + COMPLEX :: c_default = (3.0, 4.0) ! 2. Integer Components (automatically converted to real) - COMPLEX c_int = (1, -2) + COMPLEX :: c_int = (1, -2) ! 3. Scientific / Exponential Notation - COMPLEX c_exp = (1.5e2, -2.0e-1) ! Represents (150.0, -0.2) + COMPLEX :: c_exp = (1.5e2, -2.0e-1) ! Represents (150.0, -0.2) ! 4. Double Precision (using 'd' exponent notation) - COMPLEX(dp) c_double_d = (1.0d0, 3.141592653589793d0) + COMPLEX(dp) :: c_double_d = (1.0d0, 3.141592653589793d0) ! 5. Kind Parameter Suffixes (Modern Standard) - COMPLEX(dp) c_double_kind = (2.5_dp, -5.5_dp) - COMPLEX(sp) c_single_kind = (1.0_sp, 0.5_sp) + COMPLEX(dp) :: c_double_kind = (2.5_dp, -5.5_dp) + COMPLEX(sp) :: c_single_kind = (1.0_sp, 0.5_sp) END PROGRAM COMPLEX_LITERAL \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/expr/negate.expected.f90 b/FortranParser/resources-test/fortran/parser/expr/negate.expected.f90 index 3b587155..79013ecb 100644 --- a/FortranParser/resources-test/fortran/parser/expr/negate.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/expr/negate.expected.f90 @@ -1,3 +1,3 @@ PROGRAM NEGATE - INTEGER a = -10 + INTEGER :: a = -10 END PROGRAM NEGATE \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/expr/not.expected.f90 b/FortranParser/resources-test/fortran/parser/expr/not.expected.f90 index 986eee34..956bcbd8 100644 --- a/FortranParser/resources-test/fortran/parser/expr/not.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/expr/not.expected.f90 @@ -1,3 +1,3 @@ PROGRAM NOT - LOGICAL a = .NOT. .TRUE. + LOGICAL :: a = .NOT. .TRUE. END PROGRAM NOT \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/expr/parentheses.expected.f90 b/FortranParser/resources-test/fortran/parser/expr/parentheses.expected.f90 index bf216cf1..5ce7b114 100644 --- a/FortranParser/resources-test/fortran/parser/expr/parentheses.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/expr/parentheses.expected.f90 @@ -1,3 +1,3 @@ PROGRAM PARENTHESES - INTEGER a = (10) + INTEGER :: a = (10) END PROGRAM PARENTHESES \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/expr/subscript_triplet.expected.f90 b/FortranParser/resources-test/fortran/parser/expr/subscript_triplet.expected.f90 index 53a25a83..4e67a337 100644 --- a/FortranParser/resources-test/fortran/parser/expr/subscript_triplet.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/expr/subscript_triplet.expected.f90 @@ -1,5 +1,5 @@ PROGRAM SUBSCRIPT_TRIPLET - INTEGER vec(10) = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] + INTEGER :: vec(10) = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] PRINT *, vec(2:5) PRINT *, vec(:4) diff --git a/FortranParser/resources-test/fortran/parser/expr/unary_plus.expected.f90 b/FortranParser/resources-test/fortran/parser/expr/unary_plus.expected.f90 index 3409b97a..d25737b4 100644 --- a/FortranParser/resources-test/fortran/parser/expr/unary_plus.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/expr/unary_plus.expected.f90 @@ -1,3 +1,3 @@ PROGRAM UNARY_PLUS - INTEGER a = +10 + INTEGER :: a = +10 END PROGRAM UNARY_PLUS \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0000.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0000.expected.f90 index 751a8def..cfb99316 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0000.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0000.expected.f90 @@ -1,6 +1,6 @@ PROGRAM MAIN - INTEGER*8 i8, j /-20/, k /20/ - INTEGER kkk /0/ + INTEGER*8 :: i8, j /-20/, k /20/ + INTEGER :: kkk /0/ DO i8 = j, k kkk = kkk + i8 END DO diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0001.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0001.expected.f90 index d5d6fca0..666a3d51 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0001.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0001.expected.f90 @@ -1,6 +1,6 @@ -INTEGER*1 a1, a2 -REAL*16 b1, b2 -LOGICAL ok +INTEGER*1 :: a1, a2 +REAL*16 :: b1, b2 +LOGICAL :: ok ok = .true. diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.expected.f90 index f47e4eff..e8cbc034 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.expected.f90 @@ -1,6 +1,6 @@ -INTEGER*1 a1, a2 -REAL*4 b1, b2 -LOGICAL ok +INTEGER*1 :: a1, a2 +REAL*4 :: b1, b2 +LOGICAL :: ok ok = .TRUE. diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0003.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0003.expected.f90 index b4f8918d..4ade56d1 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0003.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0003.expected.f90 @@ -1,6 +1,6 @@ -INTEGER*1 a1, a2 -REAL*4 b1, b2 -LOGICAL ok +INTEGER*1 :: a1, a2 +REAL*4 :: b1, b2 +LOGICAL :: ok ok = .TRUE. diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0004.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0004.expected.f90 index 319c333a..241af1a8 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0004.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0004.expected.f90 @@ -1,6 +1,6 @@ -INTEGER*1 a1, a2 -REAL*8 b1, b2 -LOGICAL ok +INTEGER*1 :: a1, a2 +REAL*8 :: b1, b2 +LOGICAL :: ok ok = .TRUE. diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0007.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0007.expected.f90 index d03b7747..649b4a12 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0007.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0007.expected.f90 @@ -1,6 +1,6 @@ -INTEGER*2 a1, a2 -REAL*4 b1, b2 -LOGICAL ok +INTEGER*2 :: a1, a2 +REAL*4 :: b1, b2 +LOGICAL :: ok ok = .TRUE. diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0019.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0019.expected.f90 index fd9346fc..bf2e14d7 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0019.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0019.expected.f90 @@ -1,6 +1,6 @@ -INTEGER*8 a1, a2 -REAL*8 b1, b2 -LOGICAL ok +INTEGER*8 :: a1, a2 +REAL*8 :: b1, b2 +LOGICAL :: ok ok = .TRUE. diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0023.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0023.expected.f90 index 5e833674..c6d28935 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0023.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0023.expected.f90 @@ -13,8 +13,8 @@ PROGRAM MAIN INTEGER(8), PARAMETER :: i8_mzero = -i8_zero INTEGER(8), PARAMETER :: i8_mone = -i8_one - INTEGER(4) i4a, i4b, i4c - INTEGER(8) i8a, i8b, i8c + INTEGER(4) :: i4a, i4b, i4c + INTEGER(8) :: i8a, i8b, i8c i4a = i4_max i4b = i4_zero diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0024.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0024.expected.f90 index aac76602..c7019a3c 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0024.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0024.expected.f90 @@ -1,4 +1,4 @@ -REAL a, ans +REAL :: a, ans PARAMETER (ans = 2.0) a = 2 * 2147483648_8 - 2147483648_8 - 2147483646_8 diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.expected.f90 index 9ea75fc7..9d186cc3 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.expected.f90 @@ -1,5 +1,5 @@ COMMON /com/ ok -LOGICAL(1) ok +LOGICAL(1) :: ok ok = .TRUE. CALL test1() @@ -15,8 +15,8 @@ SUBROUTINE test1() COMMON /com/ ok - LOGICAL(1) ok - INTEGER*4 m, d, ans + LOGICAL(1) :: ok + INTEGER*4 :: m, d, ans PARAMETER (m = 19, d = 3, ans = 1) IF (mod(m, d) /= ans) THEN @@ -27,8 +27,8 @@ END SUBROUTINE test1 SUBROUTINE test2() COMMON /com/ ok - LOGICAL(1) ok - INTEGER*2 m, d, ans + LOGICAL(1) :: ok + INTEGER*2 :: m, d, ans PARAMETER (m = 19, d = 3, ans = 1) IF (mod(m, d) /= ans) THEN @@ -39,8 +39,8 @@ END SUBROUTINE test2 SUBROUTINE test3() COMMON /com/ ok - LOGICAL(1) ok - INTEGER*1 m, d, ans + LOGICAL(1) :: ok + INTEGER*1 :: m, d, ans PARAMETER (m = 19, d = 3, ans = 1) IF (mod(m, d) /= ans) THEN diff --git a/FortranParser/resources-test/fortran/parser/logical_expression.expected.f90 b/FortranParser/resources-test/fortran/parser/logical_expression.expected.f90 index d031ccbd..b66063a7 100644 --- a/FortranParser/resources-test/fortran/parser/logical_expression.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/logical_expression.expected.f90 @@ -1,6 +1,6 @@ PROGRAM LOGICAL_EXPRESSION - INTEGER a1, b1, a2, b2 - LOGICAL ok + INTEGER :: a1, b1, a2, b2 + LOGICAL :: ok ok = .TRUE. diff --git a/FortranParser/resources-test/fortran/parser/omp/omp_basic.expected.f90 b/FortranParser/resources-test/fortran/parser/omp/omp_basic.expected.f90 index 709ec4a2..a0d2ca06 100644 --- a/FortranParser/resources-test/fortran/parser/omp/omp_basic.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/omp/omp_basic.expected.f90 @@ -1,7 +1,7 @@ PROGRAM OPENMP_DEMO USE omp_lib - INTEGER total_sum + INTEGER :: total_sum !$OMP PARALLEL total_sum = total_sum + 1 diff --git a/FortranParser/resources-test/fortran/parser/omp/omp_clause.expected.f90 b/FortranParser/resources-test/fortran/parser/omp/omp_clause.expected.f90 index c7de5009..97f53ebb 100644 --- a/FortranParser/resources-test/fortran/parser/omp/omp_clause.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/omp/omp_clause.expected.f90 @@ -1,8 +1,8 @@ PROGRAM OPENMP_DEMO USE omp_lib - INTEGER i, thread_id, num_threads, total_sum - INTEGER shared_counter = 0 + INTEGER :: i, thread_id, num_threads, total_sum + INTEGER :: shared_counter = 0 !$OMP PARALLEL private(i) shared(num_threads) !$OMP DO diff --git a/FortranParser/resources-test/fortran/parser/omp/omp_do.expected.f90 b/FortranParser/resources-test/fortran/parser/omp/omp_do.expected.f90 index 2d1061ca..2499bd91 100644 --- a/FortranParser/resources-test/fortran/parser/omp/omp_do.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/omp/omp_do.expected.f90 @@ -1,8 +1,8 @@ PROGRAM OPENMP_DEMO USE omp_lib - INTEGER i, thread_id, num_threads, total_sum - INTEGER shared_counter = 0 + INTEGER :: i, thread_id, num_threads, total_sum + INTEGER :: shared_counter = 0 !$OMP PARALLEL !$OMP DO diff --git a/FortranParser/resources-test/fortran/parser/omp/omp_reduction.expected.f90 b/FortranParser/resources-test/fortran/parser/omp/omp_reduction.expected.f90 index 207cb7d1..db7a3799 100644 --- a/FortranParser/resources-test/fortran/parser/omp/omp_reduction.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/omp/omp_reduction.expected.f90 @@ -1,8 +1,8 @@ PROGRAM OPENMP_DEMO USE omp_lib - INTEGER i, thread_id, num_threads, total_sum - INTEGER shared_counter = 0 + INTEGER :: i, thread_id, num_threads, total_sum + INTEGER :: shared_counter = 0 !$OMP PARALLEL DO reduction(+:total_sum) DO i = 1, 2 diff --git a/FortranParser/resources-test/fortran/parser/parameter.expected.f90 b/FortranParser/resources-test/fortran/parser/parameter.expected.f90 index 6f82a5eb..3dd695ad 100644 --- a/FortranParser/resources-test/fortran/parser/parameter.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/parameter.expected.f90 @@ -1,7 +1,7 @@ PROGRAM OPENMP_DEMO - INTEGER i, total_sum - INTEGER shared_counter = 0 + INTEGER :: i, total_sum + INTEGER :: shared_counter = 0 INTEGER, PARAMETER :: n = 32 DO i = 1, 2 diff --git a/FortranParser/resources-test/fortran/parser/parenexpr.expected.f90 b/FortranParser/resources-test/fortran/parser/parenexpr.expected.f90 index 424fa806..f79eceb9 100644 --- a/FortranParser/resources-test/fortran/parser/parenexpr.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/parenexpr.expected.f90 @@ -1,6 +1,6 @@ PROGRAM PARENEXPR - INTEGER result - INTEGER a = 5 + INTEGER :: result + INTEGER :: a = 5 result = (5) END PROGRAM PARENEXPR \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/polybench/3mm.expected.f90 b/FortranParser/resources-test/fortran/parser/polybench/3mm.expected.f90 index 3168e8ad..b28baed9 100644 --- a/FortranParser/resources-test/fortran/parser/polybench/3mm.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/polybench/3mm.expected.f90 @@ -17,7 +17,7 @@ PROGRAM THREE_MM DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: e DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: f DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: g -INTEGER i +INTEGER :: i ! Allocation of Arrays ALLOCATE(a(32 + 0, 32 + 0), STAT=i) CALL check_err(i) @@ -57,8 +57,8 @@ SUBROUTINE init_array(ni, nj, nk, nl, nm, a, b, c, d) DOUBLE PRECISION, DIMENSION(nj, nk) :: b DOUBLE PRECISION, DIMENSION(nm, nj) :: c DOUBLE PRECISION, DIMENSION(nl, nm) :: d -INTEGER ni, nj, nk, nl, nm -INTEGER i, j +INTEGER :: ni, nj, nk, nl, nm +INTEGER :: i, j DO i = 1, ni DO j = 1, nk a(j, i) = dble(i - 1) * dble(j - 1) / ni @@ -82,8 +82,8 @@ SUBROUTINE init_array(ni, nj, nk, nl, nm, a, b, c, d) END SUBROUTINE init_array SUBROUTINE print_array(ni, nl, g) DOUBLE PRECISION, DIMENSION(nl, ni) :: g -INTEGER ni, nl -INTEGER i, j +INTEGER :: ni, nl +INTEGER :: i, j DO i = 1, ni DO j = 1, nl WRITE(0, "(f0.2,1x)", advance="no") g(j, i) @@ -102,8 +102,8 @@ SUBROUTINE kernel_3mm(ni, nj, nk, nl, nm, e, a, b, f, c, d, g) DOUBLE PRECISION, DIMENSION(nj, ni) :: e DOUBLE PRECISION, DIMENSION(nl, nj) :: f DOUBLE PRECISION, DIMENSION(nl, ni) :: g -INTEGER ni, nj, nk, nl, nm -INTEGER i, j, k +INTEGER :: ni, nj, nk, nl, nm +INTEGER :: i, j, k !$pragma scop ! E := A*B DO i = 1, ni diff --git a/FortranParser/resources-test/fortran/parser/stmt/common_stmt.expected.f90 b/FortranParser/resources-test/fortran/parser/stmt/common_stmt.expected.f90 index 9e87cd90..6c5d115a 100644 --- a/FortranParser/resources-test/fortran/parser/stmt/common_stmt.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/stmt/common_stmt.expected.f90 @@ -1,7 +1,7 @@ PROGRAM COMMON_STMT - REAL x + REAL :: x COMMON /data_block/ x, my_array(5) - INTEGER my_array + INTEGER :: my_array x = 42.0 END PROGRAM COMMON_STMT \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/subroutine.expected.f90 b/FortranParser/resources-test/fortran/parser/subroutine.expected.f90 index dec28e0c..fb5650c7 100644 --- a/FortranParser/resources-test/fortran/parser/subroutine.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/subroutine.expected.f90 @@ -7,7 +7,7 @@ SUBROUTINE add_numbers(a, b, result, useless) END SUBROUTINE add_numbers PROGRAM MAIN - INTEGER x, y, total, useless + INTEGER :: x, y, total, useless x = 5 y = 12 From b3d5bfed5668351138eb18bc34d0e2675add7224 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Jul 2026 00:31:55 +0100 Subject: [PATCH 089/260] FIx weaver --- .../specs/fortran/ast/FortranNodeFactory.java | 11 + .../fortran/weaverspecs/artifacts.xml | 1 - .../fortran/weaverspecs/joinPointModel.xml | 4 + .../fortran/weaver/FortranJoinpoints.java | 1 + .../specs/fortran/weaver/FortranWeaver.json | 532 ++++++++++++++++-- .../fortran/weaver/importable/AstFactory.java | 8 +- .../fortran/weaver/joinpoints/FLiteral.java | 5 - .../weaver/joinpoints/FSpecification.java | 3 +- .../weaver/joinpoints/FUseStatement.java | 2 +- 9 files changed, 524 insertions(+), 43 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java index 41900dd8..154bc303 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java @@ -25,6 +25,7 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.EndDoStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.UseOnlyStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.UseRenameStmt; import pt.up.fe.specs.fortran.ast.nodes.utils.Format; import pt.up.fe.specs.fortran.ast.nodes.utils.LabelRef; import pt.up.fe.specs.fortran.ast.nodes.utils.Star; @@ -268,6 +269,16 @@ public DataRef dataRef(String name) { return newNode; } + public UseRenameStmt useRenameStmt(String moduleName) { + DataStore data = newDataStore(UseRenameStmt.class); + + UseRenameStmt newNode = new UseRenameStmt(data, Collections.emptyList()); + + newNode.set(UseRenameStmt.NAME, moduleName); + + return newNode; + } + public UseOnlyStmt useOnlyStmt(String moduleName) { DataStore data = newDataStore(UseOnlyStmt.class); diff --git a/FortranWeaver/resources/fortran/weaverspecs/artifacts.xml b/FortranWeaver/resources/fortran/weaverspecs/artifacts.xml index e6b2590b..3eb583ba 100644 --- a/FortranWeaver/resources/fortran/weaverspecs/artifacts.xml +++ b/FortranWeaver/resources/fortran/weaverspecs/artifacts.xml @@ -74,7 +74,6 @@ - diff --git a/FortranWeaver/resources/fortran/weaverspecs/joinPointModel.xml b/FortranWeaver/resources/fortran/weaverspecs/joinPointModel.xml index 68a32ad3..c9a1a4ef 100644 --- a/FortranWeaver/resources/fortran/weaverspecs/joinPointModel.xml +++ b/FortranWeaver/resources/fortran/weaverspecs/joinPointModel.xml @@ -73,6 +73,10 @@ + + + + diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranJoinpoints.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranJoinpoints.java index 5a94bcc7..ef8f7bb8 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranJoinpoints.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranJoinpoints.java @@ -32,6 +32,7 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.*; import pt.up.fe.specs.fortran.ast.nodes.stmt.ifstmt.*; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; +import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.UseStmt; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.AttributeSpecifier; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.KeywordAttributeSpecifier; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.ParameterKeyword; diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json index c2848081..bfb7267e 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json @@ -6316,14 +6316,6 @@ "name": "intLiteral", "extends": "literal" , "children": [ - { - "type": "attribute", - "children": [ - { - "type": "String", - "name": "literal" - }] - }, { "type": "attribute", "tooltip": "Returns an array with the children of the node", @@ -6777,14 +6769,6 @@ "extends": "expr" , "tooltip": "Represents a literal", "children": [ - { - "type": "attribute", - "children": [ - { - "type": "String", - "name": "literal" - }] - }, { "type": "attribute", "tooltip": "Returns an array with the children of the node", @@ -10398,14 +10382,6 @@ "name": "realLiteral", "extends": "literal" , "children": [ - { - "type": "attribute", - "children": [ - { - "type": "String", - "name": "literal" - }] - }, { "type": "attribute", "tooltip": "Returns an array with the children of the node", @@ -11607,14 +11583,6 @@ "name": "stringLiteral", "extends": "literal" , "children": [ - { - "type": "attribute", - "children": [ - { - "type": "String", - "name": "literal" - }] - }, { "type": "attribute", "tooltip": "Returns an array with the children of the node", @@ -12337,6 +12305,506 @@ }] }] }, + { + "type": "joinpoint", + "name": "useOnlyStatement", + "extends": "useStatement" , + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "String", + "name": "moduleName" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isFirst" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isLast" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "useRenameStatement", + "extends": "useStatement" , + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "String", + "name": "moduleName" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isFirst" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isLast" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, { "type": "joinpoint", "name": "useStatement", diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/importable/AstFactory.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/importable/AstFactory.java index fab2dafc..915a3ddc 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/importable/AstFactory.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/importable/AstFactory.java @@ -50,8 +50,12 @@ public static ADataRef dataRef(String name) { return FortranJoinpoints.create(FortranWeaver.getFactory().dataRef(name), ADataRef.class); } - public static AUseStatement useStatement(String moduleName) { - return FortranJoinpoints.create(FortranWeaver.getFactory().useStmt(moduleName), AUseStatement.class); + public static AUseRenameStatement useRenameStatement(String moduleName) { + return FortranJoinpoints.create(FortranWeaver.getFactory().useRenameStmt(moduleName), AUseRenameStatement.class); + } + + public static AUseOnlyStatement useOnlyStatement(String moduleName) { + return FortranJoinpoints.create(FortranWeaver.getFactory().useOnlyStmt(moduleName), AUseOnlyStatement.class); } public static AOmpReductionClause ompReductionClause(String operator, Object[] args) { diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FLiteral.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FLiteral.java index f4c24ba6..c4593251 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FLiteral.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FLiteral.java @@ -14,11 +14,6 @@ public FLiteral(Literal literal) { this.literal = literal; } - @Override - public String getLiteralImpl() { - return literal.getLiteral(); - } - @Override public FortranNode getNode() { return literal; diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSpecification.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSpecification.java index 6c22f902..c0631888 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSpecification.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSpecification.java @@ -2,9 +2,8 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.program.Specification; -import pt.up.fe.specs.fortran.ast.nodes.stmt.UseStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.UseStmt; import pt.up.fe.specs.fortran.weaver.FortranJoinpoints; -import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AExpr; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.ASpecification; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.ASpecificationStatement; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AUseStatement; diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FUseStatement.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FUseStatement.java index f48db5e9..9b13dfae 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FUseStatement.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FUseStatement.java @@ -1,7 +1,7 @@ package pt.up.fe.specs.fortran.weaver.joinpoints; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.stmt.UseStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.UseStmt; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AUseStatement; public class FUseStatement extends AUseStatement { From 9e0bb9d18bd85941cf33abde5d5d10e3b6f53f48 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Jul 2026 14:03:43 +0100 Subject: [PATCH 090/260] Add substring test --- .../ast/nodes/stmt/loop/DoConstruct.java | 2 +- .../parser/expr/substring.expected.f90 | 6 + .../fortran/parser/expr/substring.f90 | 6 + .../fortran/parser/expr/substring.json | 1077 +++++++++++++++++ .../fortran/parser/FortranParserTest.java | 12 + 5 files changed, 1102 insertions(+), 1 deletion(-) create mode 100644 FortranParser/resources-test/fortran/parser/expr/substring.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/expr/substring.f90 create mode 100644 FortranParser/resources-test/fortran/parser/expr/substring.json diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java index a1c8739d..04610738 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java @@ -69,7 +69,7 @@ public String getCode() { code.append(doStmt.getCode()).append(ln()) .append(indent(body.getCode())); - var endDoStmtCode = endDoStmt.getStmtCode(); + var endDoStmtCode = endDoStmt.getCode(); if (!endDoStmtCode.isEmpty()) { code.append(ln()).append(endDoStmtCode); } diff --git a/FortranParser/resources-test/fortran/parser/expr/substring.expected.f90 b/FortranParser/resources-test/fortran/parser/expr/substring.expected.f90 new file mode 100644 index 00000000..0c7d8216 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/expr/substring.expected.f90 @@ -0,0 +1,6 @@ +program substring + CHARACTER(LEN = 8) S_CHA, S_CHB, V_CHA, V_CHB + DIMENSION S_CHA(10), S_CHB(10), V_CHA(10), V_CHB(10) + + V_CHA(1:10)(1:8) = V_CHA(1:10)(1:4) // V_CHB(1:10)(5:8) +end program substring \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/expr/substring.f90 b/FortranParser/resources-test/fortran/parser/expr/substring.f90 new file mode 100644 index 00000000..0c7d8216 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/expr/substring.f90 @@ -0,0 +1,6 @@ +program substring + CHARACTER(LEN = 8) S_CHA, S_CHB, V_CHA, V_CHB + DIMENSION S_CHA(10), S_CHB(10), V_CHA(10), V_CHB(10) + + V_CHA(1:10)(1:8) = V_CHA(1:10)(1:4) // V_CHB(1:10)(5:8) +end program substring \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/expr/substring.json b/FortranParser/resources-test/fortran/parser/expr/substring.json new file mode 100644 index 00000000..66a670da --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/expr/substring.json @@ -0,0 +1,1077 @@ +{ + "fileExtension": "f90", + "nodes": [ + { + "id": "0x56069f445f00-Program", + "ProgramUnit": [ + "0x56069f47af00-ProgramUnit" + ] + }, + { + "id": "0x56069f47af00-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x56069f475b20-MainProgram" + }, + { + "id": "0x56069f475b20-MainProgram", + "Statement": "0x56069f475c68-Statement", + "SpecificationPart": "0x56069f475bc0-SpecificationPart", + "ExecutionPart": "0x56069f475ba8-ExecutionPart", + "Statement": "0x56069f475b20-Statement" + }, + { + "id": "0x56069f475c68-Statement", + "statement": "0x56069f475c78-ProgramStmt", + "source": "program SUBSTRING" + }, + { + "id": "0x56069f475c78-ProgramStmt", + "Name": "0x56069f475c78-Name" + }, + { + "id": "0x56069f475c78-Name", + "source": "SUBSTRING" + }, + { + "id": "0x56069f475bc0-SpecificationPart", + "ImplicitPart": "0x56069f475bd8-ImplicitPart", + "DeclarationConstruct": [ + "0x56069f453110-DeclarationConstruct", + "0x56069f486040-DeclarationConstruct" + ] + }, + { + "id": "0x56069f475bd8-ImplicitPart" + }, + { + "id": "0x56069f453110-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x56069f453110-SpecificationConstruct" + }, + { + "id": "0x56069f453110-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x56069f453110-Statement" + }, + { + "id": "0x56069f453110-Statement", + "statement": "0x56069f484f10-TypeDeclarationStmt", + "source": "character(len = 8) s_cha, s_chb, v_cha, v_chb" + }, + { + "id": "0x56069f484f10-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x56069f484f40-DeclarationTypeSpec", + "EntityDecl": [ + "0x56069f4853e0-EntityDecl", + "0x56069f485110-EntityDecl", + "0x56069f485200-EntityDecl", + "0x56069f4852f0-EntityDecl" + ] + }, + { + "id": "0x56069f484f40-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x56069f484f40-IntrinsicTypeSpec" + }, + { + "id": "0x56069f484f40-IntrinsicTypeSpec", + "variantKey": "Character", + "Character": "0x56069f484f40-Character" + }, + { + "id": "0x56069f484f40-Character", + "CharSelector": "0x56069f484f40-CharSelector" + }, + { + "id": "0x56069f484f40-CharSelector", + "variantKey": "LengthSelector", + "LengthSelector": "0x56069f484f40-LengthSelector" + }, + { + "id": "0x56069f484f40-LengthSelector", + "variantKey": "TypeParamValue", + "TypeParamValue": "0x56069f484f40-TypeParamValue" + }, + { + "id": "0x56069f484f40-TypeParamValue", + "variantKey": "Expr", + "Expr": "0x56069f3e5790-Expr" + }, + { + "id": "0x56069f3e5790-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56069f3e57b0-LiteralConstant" + }, + { + "id": "0x56069f3e57b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56069f3e57b0-IntLiteralConstant" + }, + { + "id": "0x56069f3e57b0-IntLiteralConstant", + "CharBlock": "8" + }, + { + "id": "0x56069f4853e0-EntityDecl", + "Name": "0x56069f485498-Name" + }, + { + "id": "0x56069f485498-Name", + "source": "s_cha" + }, + { + "id": "0x56069f485110-EntityDecl", + "Name": "0x56069f4851c8-Name" + }, + { + "id": "0x56069f4851c8-Name", + "source": "s_chb" + }, + { + "id": "0x56069f485200-EntityDecl", + "Name": "0x56069f4852b8-Name" + }, + { + "id": "0x56069f4852b8-Name", + "source": "v_cha" + }, + { + "id": "0x56069f4852f0-EntityDecl", + "Name": "0x56069f4853a8-Name" + }, + { + "id": "0x56069f4853a8-Name", + "source": "v_chb" + }, + { + "id": "0x56069f486040-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x56069f486040-SpecificationConstruct" + }, + { + "id": "0x56069f486040-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x56069f486040-Statement" + }, + { + "id": "0x56069f486040-Statement", + "statement": "0x56069f486050-OtherSpecificationStmt", + "source": "dimension s_cha(10), s_chb(10), v_cha(10), v_chb(10)" + }, + { + "id": "0x56069f486050-OtherSpecificationStmt", + "variantKey": "DimensionStmt", + "DimensionStmt": "0x56069f487a90-DimensionStmt" + }, + { + "id": "0x56069f487a90-DimensionStmt", + "Declaration": [ + "0x56069f485e30-Declaration", + "0x56069f452da0-Declaration", + "0x56069f485a70-Declaration", + "0x56069f485dd0-Declaration" + ] + }, + { + "id": "0x56069f485e30-Declaration", + "Name": "0x56069f485e60-Name", + "ArraySpec": "0x56069f485e30-ArraySpec" + }, + { + "id": "0x56069f485e60-Name", + "source": "s_cha" + }, + { + "id": "0x56069f485e30-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x56069f47ad40-ExplicitShapeSpec" + ] + }, + { + "id": "0x56069f47ad40-ExplicitShapeSpec", + "upper_bound": "0x56069f47ad40-SpecificationExpr" + }, + { + "id": "0x56069f47ad40-SpecificationExpr", + "Expr": "0x56069f4855a0-Expr" + }, + { + "id": "0x56069f4855a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56069f4855c0-LiteralConstant" + }, + { + "id": "0x56069f4855c0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56069f4855c0-IntLiteralConstant" + }, + { + "id": "0x56069f4855c0-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x56069f452da0-Declaration", + "Name": "0x56069f452dd0-Name", + "ArraySpec": "0x56069f452da0-ArraySpec" + }, + { + "id": "0x56069f452dd0-Name", + "source": "s_chb" + }, + { + "id": "0x56069f452da0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x56069f47ad70-ExplicitShapeSpec" + ] + }, + { + "id": "0x56069f47ad70-ExplicitShapeSpec", + "upper_bound": "0x56069f47ad70-SpecificationExpr" + }, + { + "id": "0x56069f47ad70-SpecificationExpr", + "Expr": "0x56069f485680-Expr" + }, + { + "id": "0x56069f485680-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56069f4856a0-LiteralConstant" + }, + { + "id": "0x56069f4856a0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56069f4856a0-IntLiteralConstant" + }, + { + "id": "0x56069f4856a0-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x56069f485a70-Declaration", + "Name": "0x56069f485aa0-Name", + "ArraySpec": "0x56069f485a70-ArraySpec" + }, + { + "id": "0x56069f485aa0-Name", + "source": "v_cha" + }, + { + "id": "0x56069f485a70-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x56069f47ada0-ExplicitShapeSpec" + ] + }, + { + "id": "0x56069f47ada0-ExplicitShapeSpec", + "upper_bound": "0x56069f47ada0-SpecificationExpr" + }, + { + "id": "0x56069f47ada0-SpecificationExpr", + "Expr": "0x56069f485980-Expr" + }, + { + "id": "0x56069f485980-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56069f4859a0-LiteralConstant" + }, + { + "id": "0x56069f4859a0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56069f4859a0-IntLiteralConstant" + }, + { + "id": "0x56069f4859a0-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x56069f485dd0-Declaration", + "Name": "0x56069f485e00-Name", + "ArraySpec": "0x56069f485dd0-ArraySpec" + }, + { + "id": "0x56069f485e00-Name", + "source": "v_chb" + }, + { + "id": "0x56069f485dd0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x56069f47adf0-ExplicitShapeSpec" + ] + }, + { + "id": "0x56069f47adf0-ExplicitShapeSpec", + "upper_bound": "0x56069f47adf0-SpecificationExpr" + }, + { + "id": "0x56069f47adf0-SpecificationExpr", + "Expr": "0x56069f485ce0-Expr" + }, + { + "id": "0x56069f485ce0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56069f485d00-LiteralConstant" + }, + { + "id": "0x56069f485d00-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56069f485d00-IntLiteralConstant" + }, + { + "id": "0x56069f485d00-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x56069f475ba8-ExecutionPart", + "ExecutionPartConstruct": [ + "0x56069f472aa0-ExecutionPartConstruct" + ] + }, + { + "id": "0x56069f475ba8-ExecutionPartConstruct" + }, + { + "id": "0x56069f472aa0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x56069f472aa0-ExecutableConstruct" + }, + { + "id": "0x56069f472aa0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x56069f472aa0-Statement" + }, + { + "id": "0x56069f472aa0-Statement", + "statement": "0x56069f472ab0-ActionStmt", + "source": "v_cha(1:10)(1:8) = v_cha(1:10)(1:4) // v_chb(1:10)(5:8)" + }, + { + "id": "0x56069f472ab0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x56069f453ce0-AssignmentStmt" + }, + { + "id": "0x56069f453ce0-AssignmentStmt", + "Variable": "0x56069f453dc0-Variable", + "Expr": "0x56069f453cf0-Expr" + }, + { + "id": "0x56069f453dc0-Variable", + "variantKey": "Designator", + "Designator": "0x56069f4862f0-Designator" + }, + { + "id": "0x56069f4862f0-Designator", + "variantKey": "Substring", + "Substring": "0x56069f486300-Substring" + }, + { + "id": "0x56069f486300-Substring", + "DataRef": "0x56069f486320-DataRef", + "SubstringRange": "0x56069f486300-SubstringRange" + }, + { + "id": "0x56069f486320-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x56069f488b40-ArrayElement" + }, + { + "id": "0x56069f488b40-ArrayElement", + "base": "0x56069f488b40-DataRef", + "subscripts": [ + "0x56069f45ec80-SectionSubscript" + ] + }, + { + "id": "0x56069f488b40-DataRef", + "variantKey": "Name", + "Name": "0x56069f488b40-Name" + }, + { + "id": "0x56069f488b40-Name", + "source": "v_cha" + }, + { + "id": "0x56069f45ec80-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x56069f45ec80-SubscriptTriplet" + }, + { + "id": "0x56069f45ec80-SubscriptTriplet", + "start": "0x56069f486760-Expr", + "end": "0x56069f470bb0-Expr" + }, + { + "id": "0x56069f486760-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56069f486780-LiteralConstant" + }, + { + "id": "0x56069f486780-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56069f486780-IntLiteralConstant" + }, + { + "id": "0x56069f486780-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x56069f470bb0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56069f470bd0-LiteralConstant" + }, + { + "id": "0x56069f470bd0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56069f470bd0-IntLiteralConstant" + }, + { + "id": "0x56069f470bd0-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x56069f486300-SubstringRange", + "Expr": "0x56069f486210-Expr" + }, + { + "id": "0x56069f470770-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56069f470790-LiteralConstant" + }, + { + "id": "0x56069f470790-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56069f470790-IntLiteralConstant" + }, + { + "id": "0x56069f470790-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x56069f486210-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56069f486230-LiteralConstant" + }, + { + "id": "0x56069f486230-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56069f486230-IntLiteralConstant" + }, + { + "id": "0x56069f486230-IntLiteralConstant", + "CharBlock": "8" + }, + { + "id": "0x56069f453cf0-Expr", + "variantKey": "Concat", + "Concat": "0x56069f453d10-Concat" + }, + { + "id": "0x56069f453d10-Concat", + "Expr": "0x56069f4728d0-Expr" + }, + { + "id": "0x56069f4729b0-Expr", + "variantKey": "Designator", + "Designator": "0x56069f453160-Designator" + }, + { + "id": "0x56069f453160-Designator", + "variantKey": "Substring", + "Substring": "0x56069f453170-Substring" + }, + { + "id": "0x56069f453170-Substring", + "DataRef": "0x56069f453190-DataRef", + "SubstringRange": "0x56069f453170-SubstringRange" + }, + { + "id": "0x56069f453190-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x56069f488a80-ArrayElement" + }, + { + "id": "0x56069f488a80-ArrayElement", + "base": "0x56069f488a80-DataRef", + "subscripts": [ + "0x56069f482650-SectionSubscript" + ] + }, + { + "id": "0x56069f488a80-DataRef", + "variantKey": "Name", + "Name": "0x56069f488a80-Name" + }, + { + "id": "0x56069f488a80-Name", + "source": "v_cha" + }, + { + "id": "0x56069f482650-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x56069f482650-SubscriptTriplet" + }, + { + "id": "0x56069f482650-SubscriptTriplet", + "start": "0x56069f482300-Expr", + "end": "0x56069f486c20-Expr" + }, + { + "id": "0x56069f482300-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56069f482320-LiteralConstant" + }, + { + "id": "0x56069f482320-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56069f482320-IntLiteralConstant" + }, + { + "id": "0x56069f482320-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x56069f486c20-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56069f486c40-LiteralConstant" + }, + { + "id": "0x56069f486c40-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56069f486c40-IntLiteralConstant" + }, + { + "id": "0x56069f486c40-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x56069f453170-SubstringRange", + "Expr": "0x56069f470eb0-Expr" + }, + { + "id": "0x56069f484c80-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56069f484ca0-LiteralConstant" + }, + { + "id": "0x56069f484ca0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56069f484ca0-IntLiteralConstant" + }, + { + "id": "0x56069f484ca0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x56069f470eb0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56069f470ed0-LiteralConstant" + }, + { + "id": "0x56069f470ed0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56069f470ed0-IntLiteralConstant" + }, + { + "id": "0x56069f470ed0-IntLiteralConstant", + "CharBlock": "4" + }, + { + "id": "0x56069f4728d0-Expr", + "variantKey": "Designator", + "Designator": "0x56069f484dd0-Designator" + }, + { + "id": "0x56069f484dd0-Designator", + "variantKey": "Substring", + "Substring": "0x56069f484de0-Substring" + }, + { + "id": "0x56069f484de0-Substring", + "DataRef": "0x56069f484e00-DataRef", + "SubstringRange": "0x56069f484de0-SubstringRange" + }, + { + "id": "0x56069f484e00-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x56069f4883a0-ArrayElement" + }, + { + "id": "0x56069f4883a0-ArrayElement", + "base": "0x56069f4883a0-DataRef", + "subscripts": [ + "0x56069f4897b0-SectionSubscript" + ] + }, + { + "id": "0x56069f4883a0-DataRef", + "variantKey": "Name", + "Name": "0x56069f4883a0-Name" + }, + { + "id": "0x56069f4883a0-Name", + "source": "v_chb" + }, + { + "id": "0x56069f4897b0-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x56069f4897b0-SubscriptTriplet" + }, + { + "id": "0x56069f4897b0-SubscriptTriplet", + "start": "0x56069f472110-Expr", + "end": "0x56069f472410-Expr" + }, + { + "id": "0x56069f472110-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56069f472130-LiteralConstant" + }, + { + "id": "0x56069f472130-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56069f472130-IntLiteralConstant" + }, + { + "id": "0x56069f472130-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x56069f472410-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56069f472430-LiteralConstant" + }, + { + "id": "0x56069f472430-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56069f472430-IntLiteralConstant" + }, + { + "id": "0x56069f472430-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x56069f484de0-SubstringRange", + "Expr": "0x56069f471c60-Expr" + }, + { + "id": "0x56069f471960-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56069f471980-LiteralConstant" + }, + { + "id": "0x56069f471980-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56069f471980-IntLiteralConstant" + }, + { + "id": "0x56069f471980-IntLiteralConstant", + "CharBlock": "5" + }, + { + "id": "0x56069f471c60-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56069f471c80-LiteralConstant" + }, + { + "id": "0x56069f471c80-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56069f471c80-IntLiteralConstant" + }, + { + "id": "0x56069f471c80-IntLiteralConstant", + "CharBlock": "8" + }, + { + "id": "0x56069f475b20-Statement", + "statement": "0x56069f475b30-EndProgramStmt", + "source": "end program SUBSTRING" + }, + { + "id": "0x56069f475b30-EndProgramStmt", + "Name": "0x56069f475b30-Name" + }, + { + "id": "0x56069f475b30-Name", + "source": "SUBSTRING" + } + ], + "comments": [], + "enums": { + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "Fortran::common::ImportKind": [ + "Default", + "Only", + "None", + "All" + ], + "Fortran::common::OmpDependenceKind": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::common::OmpMemoryOrderType": [ + "Acq_Rel", + "Acquire", + "Relaxed", + "Release", + "Seq_Cst" + ], + "Fortran::common::OpenACCDeviceType": [ + "Star", + "Default", + "Nvidia", + "Radeon", + "Host", + "Multicore", + "None" + ], + "Fortran::parser::AccDataModifier::Modifier": [ + "ReadOnly", + "Zero" + ], + "Fortran::parser::AccessSpec::Kind": [ + "Public", + "Private" + ], + "Fortran::parser::BindEntity::Kind": [ + "Object", + "Common" + ], + "Fortran::parser::CompilerDirective::VectorLength::Kind": [ + "Auto", + "Fixed", + "Scalable" + ], + "Fortran::parser::ConnectSpec::CharExpr::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Encoding", + "Form", + "Pad", + "Position", + "Round", + "Sign", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::DefinedOperator::IntrinsicOperator": [ + "Power", + "Multiply", + "Divide", + "Add", + "Subtract", + "Concat", + "LT", + "LE", + "EQ", + "NE", + "GE", + "GT", + "NOT", + "AND", + "OR", + "EQV", + "NEQV" + ], + "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec": [ + "External", + "Type" + ], + "Fortran::parser::InquireSpec::CharVar::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Direct", + "Encoding", + "Form", + "Formatted", + "Iomsg", + "Name", + "Pad", + "Position", + "Read", + "Readwrite", + "Round", + "Sequential", + "Sign", + "Stream", + "Status", + "Unformatted", + "Write", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::InquireSpec::IntVar::Kind": [ + "Iostat", + "Nextrec", + "Number", + "Pos", + "Recl", + "Size" + ], + "Fortran::parser::InquireSpec::LogVar::Kind": [ + "Exist", + "Named", + "Opened", + "Pending" + ], + "Fortran::parser::IntentSpec::Intent": [ + "In", + "Out", + "InOut" + ], + "Fortran::parser::IoControlSpec::CharExpr::Kind": [ + "Advance", + "Blank", + "Decimal", + "Delim", + "Pad", + "Round", + "Sign" + ], + "Fortran::parser::ReductionOperator::Operator": [ + "Plus", + "Multiply", + "Max", + "Min", + "Iand", + "Ior", + "Ieor", + "And", + "Or", + "Eqv", + "Neqv" + ], + "Fortran::parser::OmpAccessGroup::Value": [ + "Cgroup" + ], + "Fortran::parser::OmpAdjustArgsClause::OmpAdjustOp::Value": [ + "Nothing", + "Need_Device_Ptr" + ], + "Fortran::parser::OmpAlwaysModifier::Value": [ + "Always" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpAttachModifier::Value": [ + "Always", + "Never", + "Auto" + ], + "Fortran::parser::OmpAutomapModifier::Value": [ + "Automap" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpCloseModifier::Value": [ + "Close" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default", + "Present" + ], + "Fortran::parser::OmpDeleteModifier::Value": [ + "Delete" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpDirectiveSpecification::Flag": [ + "DeprecatedSyntax", + "CrossesLabelDo" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpInteropType::Value": [ + "Target", + "Targetsync" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "Storage", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpObject::Invalid::Kind": [ + "BlankCommonBlock" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpPresentModifier::Value": [ + "Present" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpRefModifier::Value": [ + "Ref_Ptee", + "Ref_Ptr", + "Ref_Ptr_Ptee" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpSelfModifier::Value": [ + "Self" + ], + "Fortran::parser::OmpSeverityClause::SevLevel": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpThreadsetClause::ThreadsetPolicy": [ + "Omp_Pool", + "Omp_Team" + ], + "Fortran::parser::OmpTraitSelectorName::Value": [ + "Arch", + "Atomic_Default_Mem_Order", + "Condition", + "Device_Num", + "Extension", + "Isa", + "Kind", + "Requires", + "Simd", + "Uid", + "Vendor" + ], + "Fortran::parser::OmpTraitSetSelectorName::Value": [ + "Construct", + "Device", + "Implementation", + "Target_Device", + "User" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpxHoldModifier::Value": [ + "Ompx_Hold" + ], + "Fortran::parser::ProcedureStmt::Kind": [ + "ModuleProcedure", + "Procedure" + ], + "Fortran::parser::SavedEntity::Kind": [ + "Entity", + "Common" + ], + "Fortran::parser::StopStmt::Kind": [ + "Stop", + "ErrorStop" + ], + "Fortran::parser::UseStmt::ModuleNature": [ + "Intrinsic", + "Non_Intrinsic" + ] + } +} diff --git a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java index ee10aeb9..b838200c 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -572,6 +572,18 @@ void testComplexLiteralNative() { } } + @Test + void testSubstring() { + testJson("expr/substring.json"); + } + + @Test + void testSubstringNative() { + if (SpecsPlatforms.isLinux()) { + testNative("expr/substring.f90"); + } + } + @Test void testFujitsu0000_0000() { testJson("fujitsu/0000/0000_0000.json"); From d1384bcf93a49759cd533278369b5fd5cb5d4a49 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Jul 2026 19:07:09 +0100 Subject: [PATCH 091/260] Create substring node --- .../fortran/ast/nodes/expr/Substring.java | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/Substring.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/Substring.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/Substring.java new file mode 100644 index 00000000..3eca44a7 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/Substring.java @@ -0,0 +1,39 @@ +package pt.up.fe.specs.fortran.ast.nodes.expr; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; +import java.util.Optional; + +public class Substring extends Designator { + public static final DataKey> LOWER_IDX = KeyFactory.optional("lowerIdx"); + public static final DataKey> UPPER_IDX = KeyFactory.optional("upperIdx"); + + public Substring(DataStore data, Collection children) { + super(data, children); + } + + public DataRef getRef() { + return getChild(DataRef.class, 0); + } + + public Optional getLowerBound() { + return get(LOWER_IDX).map(idx -> getChild(Expr.class, idx)); + } + + public Optional getUpperBound() { + return get(UPPER_IDX).map(idx -> getChild(Expr.class, idx)); + } + + @Override + public String getCode() { + var refCode = getRef().getCode(); + var lowerCode = getLowerBound().map(Expr::getCode).orElse(""); + var upperCode = getUpperBound().map(Expr::getCode).orElse(""); + + return refCode + "(" + lowerCode + ":" + upperCode + ")"; + } +} From 19db421693be26619759c5f5551e829e7b305d86 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Jul 2026 19:10:42 +0100 Subject: [PATCH 092/260] Add substring node to class map --- FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java | 1 + .../src/pt/up/fe/specs/fortran/parser/FlangToClass.java | 1 + 2 files changed, 2 insertions(+) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 1973d615..8305126a 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -133,6 +133,7 @@ public enum FlangName implements StringProvider { NAMED_LITERAL, COMPLEX_PART, COMPLEX_LITERAL_CONSTANT, + SUBSTRING, // ARRAYs ARRAY_CONSTRUCTOR, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 886b69bc..cec8e108 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -160,6 +160,7 @@ public class FlangToClass { NAME_TO_CLASS.put(FlangName.COMPLEX_LITERAL_CONSTANT, ComplexLiteral.class); NAME_TO_CLASS.put(FlangName.COMPLEX_PART, ComplexPart.class); NAME_TO_CONCRETE_CLASS.put(FlangName.COMPLEX_PART, FlangToClass::chooseComplexPart); + NAME_TO_CLASS.put(FlangName.SUBSTRING, Substring.class); /// TYPEs NAME_TO_CLASS.put(FlangName.INTEGER_TYPE_SPEC, IntegerType.class); From e1fb10e736c78316eb18d1ebef2594b8a7e174df Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Jul 2026 19:20:34 +0100 Subject: [PATCH 093/260] Regenerate dump --- .../fortran/parser/expr/substring.json | 567 +++++++++--------- 1 file changed, 285 insertions(+), 282 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/expr/substring.json b/FortranParser/resources-test/fortran/parser/expr/substring.json index 66a670da..0f19177f 100644 --- a/FortranParser/resources-test/fortran/parser/expr/substring.json +++ b/FortranParser/resources-test/fortran/parser/expr/substring.json @@ -2,700 +2,703 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x56069f445f00-Program", + "id": "0x55e3621a3f00-Program", "ProgramUnit": [ - "0x56069f47af00-ProgramUnit" + "0x55e3621d8f00-ProgramUnit" ] }, { - "id": "0x56069f47af00-ProgramUnit", + "id": "0x55e3621d8f00-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x56069f475b20-MainProgram" + "MainProgram": "0x55e3621d3b20-MainProgram" }, { - "id": "0x56069f475b20-MainProgram", - "Statement": "0x56069f475c68-Statement", - "SpecificationPart": "0x56069f475bc0-SpecificationPart", - "ExecutionPart": "0x56069f475ba8-ExecutionPart", - "Statement": "0x56069f475b20-Statement" + "id": "0x55e3621d3b20-MainProgram", + "Statement": "0x55e3621d3c68-Statement", + "SpecificationPart": "0x55e3621d3bc0-SpecificationPart", + "ExecutionPart": "0x55e3621d3ba8-ExecutionPart", + "Statement": "0x55e3621d3b20-Statement" }, { - "id": "0x56069f475c68-Statement", - "statement": "0x56069f475c78-ProgramStmt", + "id": "0x55e3621d3c68-Statement", + "statement": "0x55e3621d3c78-ProgramStmt", "source": "program SUBSTRING" }, { - "id": "0x56069f475c78-ProgramStmt", - "Name": "0x56069f475c78-Name" + "id": "0x55e3621d3c78-ProgramStmt", + "Name": "0x55e3621d3c78-Name" }, { - "id": "0x56069f475c78-Name", + "id": "0x55e3621d3c78-Name", "source": "SUBSTRING" }, { - "id": "0x56069f475bc0-SpecificationPart", - "ImplicitPart": "0x56069f475bd8-ImplicitPart", + "id": "0x55e3621d3bc0-SpecificationPart", + "ImplicitPart": "0x55e3621d3bd8-ImplicitPart", "DeclarationConstruct": [ - "0x56069f453110-DeclarationConstruct", - "0x56069f486040-DeclarationConstruct" + "0x55e3621b1110-DeclarationConstruct", + "0x55e3621e4040-DeclarationConstruct" ] }, { - "id": "0x56069f475bd8-ImplicitPart" + "id": "0x55e3621d3bd8-ImplicitPart" }, { - "id": "0x56069f453110-DeclarationConstruct", + "id": "0x55e3621b1110-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x56069f453110-SpecificationConstruct" + "SpecificationConstruct": "0x55e3621b1110-SpecificationConstruct" }, { - "id": "0x56069f453110-SpecificationConstruct", + "id": "0x55e3621b1110-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x56069f453110-Statement" + "Statement": "0x55e3621b1110-Statement" }, { - "id": "0x56069f453110-Statement", - "statement": "0x56069f484f10-TypeDeclarationStmt", + "id": "0x55e3621b1110-Statement", + "statement": "0x55e3621e2f10-TypeDeclarationStmt", "source": "character(len = 8) s_cha, s_chb, v_cha, v_chb" }, { - "id": "0x56069f484f10-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x56069f484f40-DeclarationTypeSpec", + "id": "0x55e3621e2f10-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e3621e2f40-DeclarationTypeSpec", "EntityDecl": [ - "0x56069f4853e0-EntityDecl", - "0x56069f485110-EntityDecl", - "0x56069f485200-EntityDecl", - "0x56069f4852f0-EntityDecl" + "0x55e3621e33e0-EntityDecl", + "0x55e3621e3110-EntityDecl", + "0x55e3621e3200-EntityDecl", + "0x55e3621e32f0-EntityDecl" ] }, { - "id": "0x56069f484f40-DeclarationTypeSpec", + "id": "0x55e3621e2f40-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x56069f484f40-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55e3621e2f40-IntrinsicTypeSpec" }, { - "id": "0x56069f484f40-IntrinsicTypeSpec", + "id": "0x55e3621e2f40-IntrinsicTypeSpec", "variantKey": "Character", - "Character": "0x56069f484f40-Character" + "Character": "0x55e3621e2f40-Character" }, { - "id": "0x56069f484f40-Character", - "CharSelector": "0x56069f484f40-CharSelector" + "id": "0x55e3621e2f40-Character", + "CharSelector": "0x55e3621e2f40-CharSelector" }, { - "id": "0x56069f484f40-CharSelector", + "id": "0x55e3621e2f40-CharSelector", "variantKey": "LengthSelector", - "LengthSelector": "0x56069f484f40-LengthSelector" + "LengthSelector": "0x55e3621e2f40-LengthSelector" }, { - "id": "0x56069f484f40-LengthSelector", + "id": "0x55e3621e2f40-LengthSelector", "variantKey": "TypeParamValue", - "TypeParamValue": "0x56069f484f40-TypeParamValue" + "TypeParamValue": "0x55e3621e2f40-TypeParamValue" }, { - "id": "0x56069f484f40-TypeParamValue", + "id": "0x55e3621e2f40-TypeParamValue", "variantKey": "Expr", - "Expr": "0x56069f3e5790-Expr" + "Expr": "0x55e362143790-Expr" }, { - "id": "0x56069f3e5790-Expr", + "id": "0x55e362143790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56069f3e57b0-LiteralConstant" + "LiteralConstant": "0x55e3621437b0-LiteralConstant" }, { - "id": "0x56069f3e57b0-LiteralConstant", + "id": "0x55e3621437b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56069f3e57b0-IntLiteralConstant" + "IntLiteralConstant": "0x55e3621437b0-IntLiteralConstant" }, { - "id": "0x56069f3e57b0-IntLiteralConstant", + "id": "0x55e3621437b0-IntLiteralConstant", "CharBlock": "8" }, { - "id": "0x56069f4853e0-EntityDecl", - "Name": "0x56069f485498-Name" + "id": "0x55e3621e33e0-EntityDecl", + "Name": "0x55e3621e3498-Name" }, { - "id": "0x56069f485498-Name", + "id": "0x55e3621e3498-Name", "source": "s_cha" }, { - "id": "0x56069f485110-EntityDecl", - "Name": "0x56069f4851c8-Name" + "id": "0x55e3621e3110-EntityDecl", + "Name": "0x55e3621e31c8-Name" }, { - "id": "0x56069f4851c8-Name", + "id": "0x55e3621e31c8-Name", "source": "s_chb" }, { - "id": "0x56069f485200-EntityDecl", - "Name": "0x56069f4852b8-Name" + "id": "0x55e3621e3200-EntityDecl", + "Name": "0x55e3621e32b8-Name" }, { - "id": "0x56069f4852b8-Name", + "id": "0x55e3621e32b8-Name", "source": "v_cha" }, { - "id": "0x56069f4852f0-EntityDecl", - "Name": "0x56069f4853a8-Name" + "id": "0x55e3621e32f0-EntityDecl", + "Name": "0x55e3621e33a8-Name" }, { - "id": "0x56069f4853a8-Name", + "id": "0x55e3621e33a8-Name", "source": "v_chb" }, { - "id": "0x56069f486040-DeclarationConstruct", + "id": "0x55e3621e4040-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x56069f486040-SpecificationConstruct" + "SpecificationConstruct": "0x55e3621e4040-SpecificationConstruct" }, { - "id": "0x56069f486040-SpecificationConstruct", + "id": "0x55e3621e4040-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x56069f486040-Statement" + "Statement": "0x55e3621e4040-Statement" }, { - "id": "0x56069f486040-Statement", - "statement": "0x56069f486050-OtherSpecificationStmt", + "id": "0x55e3621e4040-Statement", + "statement": "0x55e3621e4050-OtherSpecificationStmt", "source": "dimension s_cha(10), s_chb(10), v_cha(10), v_chb(10)" }, { - "id": "0x56069f486050-OtherSpecificationStmt", + "id": "0x55e3621e4050-OtherSpecificationStmt", "variantKey": "DimensionStmt", - "DimensionStmt": "0x56069f487a90-DimensionStmt" + "DimensionStmt": "0x55e3621e5a90-DimensionStmt" }, { - "id": "0x56069f487a90-DimensionStmt", + "id": "0x55e3621e5a90-DimensionStmt", "Declaration": [ - "0x56069f485e30-Declaration", - "0x56069f452da0-Declaration", - "0x56069f485a70-Declaration", - "0x56069f485dd0-Declaration" + "0x55e3621e3e30-Declaration", + "0x55e3621b0da0-Declaration", + "0x55e3621e3a70-Declaration", + "0x55e3621e3dd0-Declaration" ] }, { - "id": "0x56069f485e30-Declaration", - "Name": "0x56069f485e60-Name", - "ArraySpec": "0x56069f485e30-ArraySpec" + "id": "0x55e3621e3e30-Declaration", + "Name": "0x55e3621e3e60-Name", + "ArraySpec": "0x55e3621e3e30-ArraySpec" }, { - "id": "0x56069f485e60-Name", + "id": "0x55e3621e3e60-Name", "source": "s_cha" }, { - "id": "0x56069f485e30-ArraySpec", + "id": "0x55e3621e3e30-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x56069f47ad40-ExplicitShapeSpec" + "0x55e3621d8d40-ExplicitShapeSpec" ] }, { - "id": "0x56069f47ad40-ExplicitShapeSpec", - "upper_bound": "0x56069f47ad40-SpecificationExpr" + "id": "0x55e3621d8d40-ExplicitShapeSpec", + "upper_bound": "0x55e3621d8d40-SpecificationExpr" }, { - "id": "0x56069f47ad40-SpecificationExpr", - "Expr": "0x56069f4855a0-Expr" + "id": "0x55e3621d8d40-SpecificationExpr", + "Expr": "0x55e3621e35a0-Expr" }, { - "id": "0x56069f4855a0-Expr", + "id": "0x55e3621e35a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56069f4855c0-LiteralConstant" + "LiteralConstant": "0x55e3621e35c0-LiteralConstant" }, { - "id": "0x56069f4855c0-LiteralConstant", + "id": "0x55e3621e35c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56069f4855c0-IntLiteralConstant" + "IntLiteralConstant": "0x55e3621e35c0-IntLiteralConstant" }, { - "id": "0x56069f4855c0-IntLiteralConstant", + "id": "0x55e3621e35c0-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x56069f452da0-Declaration", - "Name": "0x56069f452dd0-Name", - "ArraySpec": "0x56069f452da0-ArraySpec" + "id": "0x55e3621b0da0-Declaration", + "Name": "0x55e3621b0dd0-Name", + "ArraySpec": "0x55e3621b0da0-ArraySpec" }, { - "id": "0x56069f452dd0-Name", + "id": "0x55e3621b0dd0-Name", "source": "s_chb" }, { - "id": "0x56069f452da0-ArraySpec", + "id": "0x55e3621b0da0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x56069f47ad70-ExplicitShapeSpec" + "0x55e3621d8d70-ExplicitShapeSpec" ] }, { - "id": "0x56069f47ad70-ExplicitShapeSpec", - "upper_bound": "0x56069f47ad70-SpecificationExpr" + "id": "0x55e3621d8d70-ExplicitShapeSpec", + "upper_bound": "0x55e3621d8d70-SpecificationExpr" }, { - "id": "0x56069f47ad70-SpecificationExpr", - "Expr": "0x56069f485680-Expr" + "id": "0x55e3621d8d70-SpecificationExpr", + "Expr": "0x55e3621e3680-Expr" }, { - "id": "0x56069f485680-Expr", + "id": "0x55e3621e3680-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56069f4856a0-LiteralConstant" + "LiteralConstant": "0x55e3621e36a0-LiteralConstant" }, { - "id": "0x56069f4856a0-LiteralConstant", + "id": "0x55e3621e36a0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56069f4856a0-IntLiteralConstant" + "IntLiteralConstant": "0x55e3621e36a0-IntLiteralConstant" }, { - "id": "0x56069f4856a0-IntLiteralConstant", + "id": "0x55e3621e36a0-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x56069f485a70-Declaration", - "Name": "0x56069f485aa0-Name", - "ArraySpec": "0x56069f485a70-ArraySpec" + "id": "0x55e3621e3a70-Declaration", + "Name": "0x55e3621e3aa0-Name", + "ArraySpec": "0x55e3621e3a70-ArraySpec" }, { - "id": "0x56069f485aa0-Name", + "id": "0x55e3621e3aa0-Name", "source": "v_cha" }, { - "id": "0x56069f485a70-ArraySpec", + "id": "0x55e3621e3a70-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x56069f47ada0-ExplicitShapeSpec" + "0x55e3621d8da0-ExplicitShapeSpec" ] }, { - "id": "0x56069f47ada0-ExplicitShapeSpec", - "upper_bound": "0x56069f47ada0-SpecificationExpr" + "id": "0x55e3621d8da0-ExplicitShapeSpec", + "upper_bound": "0x55e3621d8da0-SpecificationExpr" }, { - "id": "0x56069f47ada0-SpecificationExpr", - "Expr": "0x56069f485980-Expr" + "id": "0x55e3621d8da0-SpecificationExpr", + "Expr": "0x55e3621e3980-Expr" }, { - "id": "0x56069f485980-Expr", + "id": "0x55e3621e3980-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56069f4859a0-LiteralConstant" + "LiteralConstant": "0x55e3621e39a0-LiteralConstant" }, { - "id": "0x56069f4859a0-LiteralConstant", + "id": "0x55e3621e39a0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56069f4859a0-IntLiteralConstant" + "IntLiteralConstant": "0x55e3621e39a0-IntLiteralConstant" }, { - "id": "0x56069f4859a0-IntLiteralConstant", + "id": "0x55e3621e39a0-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x56069f485dd0-Declaration", - "Name": "0x56069f485e00-Name", - "ArraySpec": "0x56069f485dd0-ArraySpec" + "id": "0x55e3621e3dd0-Declaration", + "Name": "0x55e3621e3e00-Name", + "ArraySpec": "0x55e3621e3dd0-ArraySpec" }, { - "id": "0x56069f485e00-Name", + "id": "0x55e3621e3e00-Name", "source": "v_chb" }, { - "id": "0x56069f485dd0-ArraySpec", + "id": "0x55e3621e3dd0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x56069f47adf0-ExplicitShapeSpec" + "0x55e3621d8df0-ExplicitShapeSpec" ] }, { - "id": "0x56069f47adf0-ExplicitShapeSpec", - "upper_bound": "0x56069f47adf0-SpecificationExpr" + "id": "0x55e3621d8df0-ExplicitShapeSpec", + "upper_bound": "0x55e3621d8df0-SpecificationExpr" }, { - "id": "0x56069f47adf0-SpecificationExpr", - "Expr": "0x56069f485ce0-Expr" + "id": "0x55e3621d8df0-SpecificationExpr", + "Expr": "0x55e3621e3ce0-Expr" }, { - "id": "0x56069f485ce0-Expr", + "id": "0x55e3621e3ce0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56069f485d00-LiteralConstant" + "LiteralConstant": "0x55e3621e3d00-LiteralConstant" }, { - "id": "0x56069f485d00-LiteralConstant", + "id": "0x55e3621e3d00-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56069f485d00-IntLiteralConstant" + "IntLiteralConstant": "0x55e3621e3d00-IntLiteralConstant" }, { - "id": "0x56069f485d00-IntLiteralConstant", + "id": "0x55e3621e3d00-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x56069f475ba8-ExecutionPart", + "id": "0x55e3621d3ba8-ExecutionPart", "ExecutionPartConstruct": [ - "0x56069f472aa0-ExecutionPartConstruct" + "0x55e3621d0aa0-ExecutionPartConstruct" ] }, { - "id": "0x56069f475ba8-ExecutionPartConstruct" + "id": "0x55e3621d3ba8-ExecutionPartConstruct" }, { - "id": "0x56069f472aa0-ExecutionPartConstruct", + "id": "0x55e3621d0aa0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56069f472aa0-ExecutableConstruct" + "ExecutableConstruct": "0x55e3621d0aa0-ExecutableConstruct" }, { - "id": "0x56069f472aa0-ExecutableConstruct", + "id": "0x55e3621d0aa0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56069f472aa0-Statement" + "Statement": "0x55e3621d0aa0-Statement" }, { - "id": "0x56069f472aa0-Statement", - "statement": "0x56069f472ab0-ActionStmt", + "id": "0x55e3621d0aa0-Statement", + "statement": "0x55e3621d0ab0-ActionStmt", "source": "v_cha(1:10)(1:8) = v_cha(1:10)(1:4) // v_chb(1:10)(5:8)" }, { - "id": "0x56069f472ab0-ActionStmt", + "id": "0x55e3621d0ab0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x56069f453ce0-AssignmentStmt" + "AssignmentStmt": "0x55e3621b1ce0-AssignmentStmt" }, { - "id": "0x56069f453ce0-AssignmentStmt", - "Variable": "0x56069f453dc0-Variable", - "Expr": "0x56069f453cf0-Expr" + "id": "0x55e3621b1ce0-AssignmentStmt", + "Variable": "0x55e3621b1dc0-Variable", + "Expr": "0x55e3621b1cf0-Expr" }, { - "id": "0x56069f453dc0-Variable", + "id": "0x55e3621b1dc0-Variable", "variantKey": "Designator", - "Designator": "0x56069f4862f0-Designator" + "Designator": "0x55e3621e42f0-Designator" }, { - "id": "0x56069f4862f0-Designator", + "id": "0x55e3621e42f0-Designator", "variantKey": "Substring", - "Substring": "0x56069f486300-Substring" + "Substring": "0x55e3621e4300-Substring" }, { - "id": "0x56069f486300-Substring", - "DataRef": "0x56069f486320-DataRef", - "SubstringRange": "0x56069f486300-SubstringRange" + "id": "0x55e3621e4300-Substring", + "DataRef": "0x55e3621e4320-DataRef", + "SubstringRange": "0x55e3621e4300-SubstringRange" }, { - "id": "0x56069f486320-DataRef", + "id": "0x55e3621e4320-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x56069f488b40-ArrayElement" + "ArrayElement": "0x55e3621e6b40-ArrayElement" }, { - "id": "0x56069f488b40-ArrayElement", - "base": "0x56069f488b40-DataRef", + "id": "0x55e3621e6b40-ArrayElement", + "base": "0x55e3621e6b40-DataRef", "subscripts": [ - "0x56069f45ec80-SectionSubscript" + "0x55e3621bcc80-SectionSubscript" ] }, { - "id": "0x56069f488b40-DataRef", + "id": "0x55e3621e6b40-DataRef", "variantKey": "Name", - "Name": "0x56069f488b40-Name" + "Name": "0x55e3621e6b40-Name" }, { - "id": "0x56069f488b40-Name", + "id": "0x55e3621e6b40-Name", "source": "v_cha" }, { - "id": "0x56069f45ec80-SectionSubscript", + "id": "0x55e3621bcc80-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x56069f45ec80-SubscriptTriplet" + "SubscriptTriplet": "0x55e3621bcc80-SubscriptTriplet" }, { - "id": "0x56069f45ec80-SubscriptTriplet", - "start": "0x56069f486760-Expr", - "end": "0x56069f470bb0-Expr" + "id": "0x55e3621bcc80-SubscriptTriplet", + "start": "0x55e3621e4760-Expr", + "end": "0x55e3621cebb0-Expr" }, { - "id": "0x56069f486760-Expr", + "id": "0x55e3621e4760-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56069f486780-LiteralConstant" + "LiteralConstant": "0x55e3621e4780-LiteralConstant" }, { - "id": "0x56069f486780-LiteralConstant", + "id": "0x55e3621e4780-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56069f486780-IntLiteralConstant" + "IntLiteralConstant": "0x55e3621e4780-IntLiteralConstant" }, { - "id": "0x56069f486780-IntLiteralConstant", + "id": "0x55e3621e4780-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x56069f470bb0-Expr", + "id": "0x55e3621cebb0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56069f470bd0-LiteralConstant" + "LiteralConstant": "0x55e3621cebd0-LiteralConstant" }, { - "id": "0x56069f470bd0-LiteralConstant", + "id": "0x55e3621cebd0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56069f470bd0-IntLiteralConstant" + "IntLiteralConstant": "0x55e3621cebd0-IntLiteralConstant" }, { - "id": "0x56069f470bd0-IntLiteralConstant", + "id": "0x55e3621cebd0-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x56069f486300-SubstringRange", - "Expr": "0x56069f486210-Expr" + "id": "0x55e3621e4300-SubstringRange", + "lower": "0x55e3621ce770-Expr", + "upper": "0x55e3621e4210-Expr" }, { - "id": "0x56069f470770-Expr", + "id": "0x55e3621ce770-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56069f470790-LiteralConstant" + "LiteralConstant": "0x55e3621ce790-LiteralConstant" }, { - "id": "0x56069f470790-LiteralConstant", + "id": "0x55e3621ce790-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56069f470790-IntLiteralConstant" + "IntLiteralConstant": "0x55e3621ce790-IntLiteralConstant" }, { - "id": "0x56069f470790-IntLiteralConstant", + "id": "0x55e3621ce790-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x56069f486210-Expr", + "id": "0x55e3621e4210-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56069f486230-LiteralConstant" + "LiteralConstant": "0x55e3621e4230-LiteralConstant" }, { - "id": "0x56069f486230-LiteralConstant", + "id": "0x55e3621e4230-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56069f486230-IntLiteralConstant" + "IntLiteralConstant": "0x55e3621e4230-IntLiteralConstant" }, { - "id": "0x56069f486230-IntLiteralConstant", + "id": "0x55e3621e4230-IntLiteralConstant", "CharBlock": "8" }, { - "id": "0x56069f453cf0-Expr", + "id": "0x55e3621b1cf0-Expr", "variantKey": "Concat", - "Concat": "0x56069f453d10-Concat" + "Concat": "0x55e3621b1d10-Concat" }, { - "id": "0x56069f453d10-Concat", - "Expr": "0x56069f4728d0-Expr" + "id": "0x55e3621b1d10-Concat", + "Expr": "0x55e3621d08d0-Expr" }, { - "id": "0x56069f4729b0-Expr", + "id": "0x55e3621d09b0-Expr", "variantKey": "Designator", - "Designator": "0x56069f453160-Designator" + "Designator": "0x55e3621b1160-Designator" }, { - "id": "0x56069f453160-Designator", + "id": "0x55e3621b1160-Designator", "variantKey": "Substring", - "Substring": "0x56069f453170-Substring" + "Substring": "0x55e3621b1170-Substring" }, { - "id": "0x56069f453170-Substring", - "DataRef": "0x56069f453190-DataRef", - "SubstringRange": "0x56069f453170-SubstringRange" + "id": "0x55e3621b1170-Substring", + "DataRef": "0x55e3621b1190-DataRef", + "SubstringRange": "0x55e3621b1170-SubstringRange" }, { - "id": "0x56069f453190-DataRef", + "id": "0x55e3621b1190-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x56069f488a80-ArrayElement" + "ArrayElement": "0x55e3621e6a80-ArrayElement" }, { - "id": "0x56069f488a80-ArrayElement", - "base": "0x56069f488a80-DataRef", + "id": "0x55e3621e6a80-ArrayElement", + "base": "0x55e3621e6a80-DataRef", "subscripts": [ - "0x56069f482650-SectionSubscript" + "0x55e3621e0650-SectionSubscript" ] }, { - "id": "0x56069f488a80-DataRef", + "id": "0x55e3621e6a80-DataRef", "variantKey": "Name", - "Name": "0x56069f488a80-Name" + "Name": "0x55e3621e6a80-Name" }, { - "id": "0x56069f488a80-Name", + "id": "0x55e3621e6a80-Name", "source": "v_cha" }, { - "id": "0x56069f482650-SectionSubscript", + "id": "0x55e3621e0650-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x56069f482650-SubscriptTriplet" + "SubscriptTriplet": "0x55e3621e0650-SubscriptTriplet" }, { - "id": "0x56069f482650-SubscriptTriplet", - "start": "0x56069f482300-Expr", - "end": "0x56069f486c20-Expr" + "id": "0x55e3621e0650-SubscriptTriplet", + "start": "0x55e3621e0300-Expr", + "end": "0x55e3621e4c20-Expr" }, { - "id": "0x56069f482300-Expr", + "id": "0x55e3621e0300-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56069f482320-LiteralConstant" + "LiteralConstant": "0x55e3621e0320-LiteralConstant" }, { - "id": "0x56069f482320-LiteralConstant", + "id": "0x55e3621e0320-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56069f482320-IntLiteralConstant" + "IntLiteralConstant": "0x55e3621e0320-IntLiteralConstant" }, { - "id": "0x56069f482320-IntLiteralConstant", + "id": "0x55e3621e0320-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x56069f486c20-Expr", + "id": "0x55e3621e4c20-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56069f486c40-LiteralConstant" + "LiteralConstant": "0x55e3621e4c40-LiteralConstant" }, { - "id": "0x56069f486c40-LiteralConstant", + "id": "0x55e3621e4c40-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56069f486c40-IntLiteralConstant" + "IntLiteralConstant": "0x55e3621e4c40-IntLiteralConstant" }, { - "id": "0x56069f486c40-IntLiteralConstant", + "id": "0x55e3621e4c40-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x56069f453170-SubstringRange", - "Expr": "0x56069f470eb0-Expr" + "id": "0x55e3621b1170-SubstringRange", + "lower": "0x55e3621e2c80-Expr", + "upper": "0x55e3621ceeb0-Expr" }, { - "id": "0x56069f484c80-Expr", + "id": "0x55e3621e2c80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56069f484ca0-LiteralConstant" + "LiteralConstant": "0x55e3621e2ca0-LiteralConstant" }, { - "id": "0x56069f484ca0-LiteralConstant", + "id": "0x55e3621e2ca0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56069f484ca0-IntLiteralConstant" + "IntLiteralConstant": "0x55e3621e2ca0-IntLiteralConstant" }, { - "id": "0x56069f484ca0-IntLiteralConstant", + "id": "0x55e3621e2ca0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x56069f470eb0-Expr", + "id": "0x55e3621ceeb0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56069f470ed0-LiteralConstant" + "LiteralConstant": "0x55e3621ceed0-LiteralConstant" }, { - "id": "0x56069f470ed0-LiteralConstant", + "id": "0x55e3621ceed0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56069f470ed0-IntLiteralConstant" + "IntLiteralConstant": "0x55e3621ceed0-IntLiteralConstant" }, { - "id": "0x56069f470ed0-IntLiteralConstant", + "id": "0x55e3621ceed0-IntLiteralConstant", "CharBlock": "4" }, { - "id": "0x56069f4728d0-Expr", + "id": "0x55e3621d08d0-Expr", "variantKey": "Designator", - "Designator": "0x56069f484dd0-Designator" + "Designator": "0x55e3621e2dd0-Designator" }, { - "id": "0x56069f484dd0-Designator", + "id": "0x55e3621e2dd0-Designator", "variantKey": "Substring", - "Substring": "0x56069f484de0-Substring" + "Substring": "0x55e3621e2de0-Substring" }, { - "id": "0x56069f484de0-Substring", - "DataRef": "0x56069f484e00-DataRef", - "SubstringRange": "0x56069f484de0-SubstringRange" + "id": "0x55e3621e2de0-Substring", + "DataRef": "0x55e3621e2e00-DataRef", + "SubstringRange": "0x55e3621e2de0-SubstringRange" }, { - "id": "0x56069f484e00-DataRef", + "id": "0x55e3621e2e00-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x56069f4883a0-ArrayElement" + "ArrayElement": "0x55e3621e63a0-ArrayElement" }, { - "id": "0x56069f4883a0-ArrayElement", - "base": "0x56069f4883a0-DataRef", + "id": "0x55e3621e63a0-ArrayElement", + "base": "0x55e3621e63a0-DataRef", "subscripts": [ - "0x56069f4897b0-SectionSubscript" + "0x55e3621e77b0-SectionSubscript" ] }, { - "id": "0x56069f4883a0-DataRef", + "id": "0x55e3621e63a0-DataRef", "variantKey": "Name", - "Name": "0x56069f4883a0-Name" + "Name": "0x55e3621e63a0-Name" }, { - "id": "0x56069f4883a0-Name", + "id": "0x55e3621e63a0-Name", "source": "v_chb" }, { - "id": "0x56069f4897b0-SectionSubscript", + "id": "0x55e3621e77b0-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x56069f4897b0-SubscriptTriplet" + "SubscriptTriplet": "0x55e3621e77b0-SubscriptTriplet" }, { - "id": "0x56069f4897b0-SubscriptTriplet", - "start": "0x56069f472110-Expr", - "end": "0x56069f472410-Expr" + "id": "0x55e3621e77b0-SubscriptTriplet", + "start": "0x55e3621d0110-Expr", + "end": "0x55e3621d0410-Expr" }, { - "id": "0x56069f472110-Expr", + "id": "0x55e3621d0110-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56069f472130-LiteralConstant" + "LiteralConstant": "0x55e3621d0130-LiteralConstant" }, { - "id": "0x56069f472130-LiteralConstant", + "id": "0x55e3621d0130-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56069f472130-IntLiteralConstant" + "IntLiteralConstant": "0x55e3621d0130-IntLiteralConstant" }, { - "id": "0x56069f472130-IntLiteralConstant", + "id": "0x55e3621d0130-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x56069f472410-Expr", + "id": "0x55e3621d0410-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56069f472430-LiteralConstant" + "LiteralConstant": "0x55e3621d0430-LiteralConstant" }, { - "id": "0x56069f472430-LiteralConstant", + "id": "0x55e3621d0430-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56069f472430-IntLiteralConstant" + "IntLiteralConstant": "0x55e3621d0430-IntLiteralConstant" }, { - "id": "0x56069f472430-IntLiteralConstant", + "id": "0x55e3621d0430-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x56069f484de0-SubstringRange", - "Expr": "0x56069f471c60-Expr" + "id": "0x55e3621e2de0-SubstringRange", + "lower": "0x55e3621cf960-Expr", + "upper": "0x55e3621cfc60-Expr" }, { - "id": "0x56069f471960-Expr", + "id": "0x55e3621cf960-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56069f471980-LiteralConstant" + "LiteralConstant": "0x55e3621cf980-LiteralConstant" }, { - "id": "0x56069f471980-LiteralConstant", + "id": "0x55e3621cf980-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56069f471980-IntLiteralConstant" + "IntLiteralConstant": "0x55e3621cf980-IntLiteralConstant" }, { - "id": "0x56069f471980-IntLiteralConstant", + "id": "0x55e3621cf980-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x56069f471c60-Expr", + "id": "0x55e3621cfc60-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56069f471c80-LiteralConstant" + "LiteralConstant": "0x55e3621cfc80-LiteralConstant" }, { - "id": "0x56069f471c80-LiteralConstant", + "id": "0x55e3621cfc80-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56069f471c80-IntLiteralConstant" + "IntLiteralConstant": "0x55e3621cfc80-IntLiteralConstant" }, { - "id": "0x56069f471c80-IntLiteralConstant", + "id": "0x55e3621cfc80-IntLiteralConstant", "CharBlock": "8" }, { - "id": "0x56069f475b20-Statement", - "statement": "0x56069f475b30-EndProgramStmt", + "id": "0x55e3621d3b20-Statement", + "statement": "0x55e3621d3b30-EndProgramStmt", "source": "end program SUBSTRING" }, { - "id": "0x56069f475b30-EndProgramStmt", - "Name": "0x56069f475b30-Name" + "id": "0x55e3621d3b30-EndProgramStmt", + "Name": "0x55e3621d3b30-Name" }, { - "id": "0x56069f475b30-Name", + "id": "0x55e3621d3b30-Name", "source": "SUBSTRING" } ], From 4fc6700bb0bdc8c4c830b6031c11a223a30adc37 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Jul 2026 19:26:08 +0100 Subject: [PATCH 094/260] Add processing of substrings --- .../pt/up/fe/specs/fortran/parser/FlangName.java | 1 + .../fortran/parser/processors/ExprProcessors.java | 13 +++++++++++++ .../fe/specs/fortran/parser/processors/Nodes.java | 1 + 3 files changed, 15 insertions(+) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 8305126a..cc6f5573 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -134,6 +134,7 @@ public enum FlangName implements StringProvider { COMPLEX_PART, COMPLEX_LITERAL_CONSTANT, SUBSTRING, + SUBSTRING_RANGE, // ARRAYs ARRAY_CONSTRUCTOR, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java index 53986f75..e9e0cb50 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java @@ -220,4 +220,17 @@ public void complexLiteral(ComplexLiteral complexLiteral) { var imaginary = getChild(complexLiteral, "imaginary"); complexLiteral.addChild(imaginary); } + + public void substring(Substring substring) { + var ref = getChild(substring, FlangName.DATA_REF); + substring.addChild(ref); + + var lowerId = attributes().getOptionalString(substring, "lower", FlangName.SUBSTRING_RANGE); + var lowerExpr = lowerId.map(this::getChild); + lowerExpr.ifPresent(substring::addChild); + + var upperId = attributes().getOptionalString(substring, "upper", FlangName.SUBSTRING_RANGE); + var upperExpr = upperId.map(this::getChild); + upperExpr.ifPresent(substring::addChild); + } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 8b44bbaa..92d5b6b8 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -146,6 +146,7 @@ public Nodes(FortranJsonResult data) { processors.put(RealComplexPart.class, e::realComplexPart); processors.put(NamedComplexPart.class, e::namedComplexPart); processors.put(ComplexLiteral.class, e::complexLiteral); + processors.put(Substring.class, e::substring); var t = new TypeProcessors(data); processors.put(IntegerType.class, t::integerType); From be6c7887158c0f70e5c34906af9e553feedbfad1 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Jul 2026 19:29:30 +0100 Subject: [PATCH 095/260] Fix substring processing --- .../fortran/parser/processors/ExprProcessors.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java index e9e0cb50..65c9281d 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java @@ -227,10 +227,16 @@ public void substring(Substring substring) { var lowerId = attributes().getOptionalString(substring, "lower", FlangName.SUBSTRING_RANGE); var lowerExpr = lowerId.map(this::getChild); - lowerExpr.ifPresent(substring::addChild); + lowerExpr.ifPresent(lower -> { + substring.addChild(lower); + substring.setOptional(Substring.LOWER_IDX, lower.indexOfSelf()); + }); var upperId = attributes().getOptionalString(substring, "upper", FlangName.SUBSTRING_RANGE); var upperExpr = upperId.map(this::getChild); - upperExpr.ifPresent(substring::addChild); + upperExpr.ifPresent(upper -> { + substring.addChild(upper); + substring.setOptional(Substring.UPPER_IDX, upper.indexOfSelf()); + }); } } From 70b7c4eac4cf750ec7c59a451c420bf0d55090c5 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Jul 2026 19:42:27 +0100 Subject: [PATCH 096/260] Add variable node --- .../ast/nodes/decl/DesignatorVariable.java | 22 +++++++++++++++++++ .../ast/nodes/decl/FunctionRefVariable.java | 13 +++++++++++ .../fortran/ast/nodes/decl/Variable.java | 12 ++++++++++ .../ast/nodes/stmt/AssignmentStmt.java | 5 +++-- 4 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/DesignatorVariable.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/FunctionRefVariable.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/Variable.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/DesignatorVariable.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/DesignatorVariable.java new file mode 100644 index 00000000..fbee9642 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/DesignatorVariable.java @@ -0,0 +1,22 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.expr.Designator; + +import java.util.Collection; + +public class DesignatorVariable extends Variable { + public DesignatorVariable(DataStore data, Collection children) { + super(data, children); + } + + public Designator getDesignator() { + return getChild(Designator.class, 0); + } + + @Override + public String getCode() { + return getDesignator().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/FunctionRefVariable.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/FunctionRefVariable.java new file mode 100644 index 00000000..d99fa29f --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/FunctionRefVariable.java @@ -0,0 +1,13 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +// TODO(Process-ing): Develop and use this node +public class FunctionRefVariable extends Variable { + public FunctionRefVariable(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/Variable.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/Variable.java new file mode 100644 index 00000000..b7dd0f71 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/Variable.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class Variable extends FortranNode { + public Variable(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AssignmentStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AssignmentStmt.java index 149b962e..dc48d00e 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AssignmentStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AssignmentStmt.java @@ -2,6 +2,7 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.decl.Variable; import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; import pt.up.fe.specs.fortran.ast.nodes.expr.DataRef; @@ -12,8 +13,8 @@ public AssignmentStmt(DataStore data, Collection children super(data, children); } - public DataRef getVariable() { - return getChild(DataRef.class, 0); + public Variable getVariable() { + return getChild(Variable.class, 0); } public Expr getExpression() { From 851f3617d35710fb61669842a851f5d399bfc07c Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Jul 2026 19:52:19 +0100 Subject: [PATCH 097/260] Add variable node to class mapping --- .../pt/up/fe/specs/fortran/parser/FlangToClass.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index cec8e108..68994108 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -119,8 +119,10 @@ public class FlangToClass { NAME_TO_CLASS.put(FlangName.DECLARATION, DimensionDecl.class); /// Variables - //NAME_TO_CLASS.put(FlangName.DATA_REF, DataRef.class); + //NAME_TO_CLASS.put(FlangName.DATA_REF, DataRef.class); // TODO(Process-ing): Improve this NAME_TO_CLASS.put(FlangName.NAME, DataRef.class); + NAME_TO_CLASS.put(FlangName.VARIABLE, Variable.class); + NAME_TO_CONCRETE_CLASS.put(FlangName.VARIABLE, FlangToClass::chooseVariable); /// EXPRs NAME_TO_CLASS.put(FlangName.CHAR_LITERAL_CONSTANT, StringLiteral.class); @@ -238,6 +240,14 @@ private static Optional> chooseUseStmt(FlangAttribu return Optional.empty(); } + public static Optional> chooseVariable(FlangAttributes attrs) { + return switch (attrs.getVariantKey()) { + case "DataRef" -> Optional.of(DesignatorVariable.class); + case "FunctionReference" -> Optional.of(FunctionRefVariable.class); + default -> Optional.empty(); + }; + } + public static boolean isClass(String type) { return FlangName.convertTry(type).map(NAME_TO_CLASS::containsKey).orElse(false); From bdfef3b58243075923a72e4e226b2680768c6cda Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Jul 2026 19:55:50 +0100 Subject: [PATCH 098/260] Add processing of designator variables --- .../fe/specs/fortran/parser/processors/Nodes.java | 3 ++- .../parser/processors/VariableProcessor.java | 14 ++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 92d5b6b8..50a31aa1 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -70,7 +70,8 @@ public Nodes(FortranJsonResult data) { processors.put(StarParameter.class, d::starParameter); var v = new VariableProcessor(data); - processors.put(DataRef.class, v::dataRefProcessor); + processors.put(DataRef.class, v::dataRef); + processors.put(DesignatorVariable.class, v::designatorVariable); var s = new StmtProcessors(data); processors.put(PrintStmt.class, s::printStmt); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/VariableProcessor.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/VariableProcessor.java index cbca9f37..96a13537 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/VariableProcessor.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/VariableProcessor.java @@ -1,6 +1,9 @@ package pt.up.fe.specs.fortran.parser.processors; +import pt.up.fe.specs.fortran.ast.nodes.decl.DesignatorVariable; +import pt.up.fe.specs.fortran.ast.nodes.decl.Variable; import pt.up.fe.specs.fortran.ast.nodes.expr.DataRef; +import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; public class VariableProcessor extends ANodeProcessor { @@ -8,10 +11,13 @@ public VariableProcessor(FortranJsonResult data) { super(data); } - public void dataRefProcessor(DataRef dataRef) { - - String name = attributes(dataRef).getString("source"); - + public void dataRef(DataRef dataRef) { + var name = attributes(dataRef).getString("source"); dataRef.set(DataRef.NAME, name); } + + public void designatorVariable(DesignatorVariable variable) { + var designator = getChild(variable, FlangName.DESIGNATOR); + variable.addChild(designator); + } } From 5ba1b7a2e7519ecea0b8509973d5ff9f681bfca7 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Jul 2026 20:07:36 +0100 Subject: [PATCH 099/260] Fix assignment statement processing to use variable node --- .../src/pt/up/fe/specs/fortran/parser/FlangToClass.java | 2 +- .../up/fe/specs/fortran/parser/processors/StmtProcessors.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 68994108..c0e202fb 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -242,7 +242,7 @@ private static Optional> chooseUseStmt(FlangAttribu public static Optional> chooseVariable(FlangAttributes attrs) { return switch (attrs.getVariantKey()) { - case "DataRef" -> Optional.of(DesignatorVariable.class); + case "Designator" -> Optional.of(DesignatorVariable.class); case "FunctionReference" -> Optional.of(FunctionRefVariable.class); default -> Optional.empty(); }; diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 71e6bf82..2ec9036d 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -107,8 +107,9 @@ public void assignmentStmt(AssignmentStmt assignmentStmt) { actionStmt(assignmentStmt); var variable = getChild(assignmentStmt, FlangName.VARIABLE); - var expression = getChild(assignmentStmt, FlangName.EXPR); assignmentStmt.addChild(variable); + + var expression = getChild(assignmentStmt, FlangName.EXPR); assignmentStmt.addChild(expression); } From 4366a4602e5e03b0b35ae65e3786fdce7692e7d6 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Jul 2026 20:30:33 +0100 Subject: [PATCH 100/260] Add full support for string concatenation --- .../specs/fortran/ast/nodes/expr/enums/BinaryOperatorKind.java | 3 ++- FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java | 1 + .../src/pt/up/fe/specs/fortran/parser/FlangToClass.java | 1 + .../up/fe/specs/fortran/parser/processors/ExprProcessors.java | 3 +-- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/enums/BinaryOperatorKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/enums/BinaryOperatorKind.java index 911e4da8..75eacdba 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/enums/BinaryOperatorKind.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/enums/BinaryOperatorKind.java @@ -13,7 +13,8 @@ public enum BinaryOperatorKind implements StringProvider { GE(">="), EQ("=="), NE("/="), - AND(".AND."); + AND(".AND."), + CONCAT("//"); private final String opString; diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index cc6f5573..675517c2 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -125,6 +125,7 @@ public enum FlangName implements StringProvider { GT("GT"), GE("GE"), AND("AND"), + CONCAT, SCALAR, PROCEDURE_DESIGNATOR, ACTUAL_ARG_SPEC, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index c0e202fb..9b5c7a2d 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -149,6 +149,7 @@ public class FlangToClass { NAME_TO_CLASS.put(FlangName.GT, BinaryOperator.class); NAME_TO_CLASS.put(FlangName.GE, BinaryOperator.class); NAME_TO_CLASS.put(FlangName.AND, BinaryOperator.class); + NAME_TO_CLASS.put(FlangName.CONCAT, BinaryOperator.class); NAME_TO_CLASS.put(FlangName.ARRAY_CONSTRUCTOR, ArrayConstructor.class); NAME_TO_CLASS.put(FlangName.AC_SPEC, AcSpecification.class); NAME_TO_CLASS.put(FlangName.ARRAY_ELEMENT, ArraySubscriptExpr.class); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java index 65c9281d..b8020962 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java @@ -106,8 +106,7 @@ public void binaryOperator(BinaryOperator binaryOperator) { binaryOperator.addChild(getChild(binaryOperator, "left")); binaryOperator.addChild(getChild(binaryOperator, "right")); - String opName = attributes().getString(binaryOperator, "op"); - + var opName = attributes().getString(binaryOperator, "op"); binaryOperator.set(BinaryOperator.OP, BinaryOperatorKind.valueOf(opName.toUpperCase())); } From debdaa97503d712bef70a1e173246ad553cfb670 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Jul 2026 20:30:41 +0100 Subject: [PATCH 101/260] Fix substring test --- .../parser/expr/substring.expected.f90 | 10 +- .../fortran/parser/expr/substring.json | 572 +++++++++--------- 2 files changed, 292 insertions(+), 290 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/expr/substring.expected.f90 b/FortranParser/resources-test/fortran/parser/expr/substring.expected.f90 index 0c7d8216..449a6a00 100644 --- a/FortranParser/resources-test/fortran/parser/expr/substring.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/expr/substring.expected.f90 @@ -1,6 +1,6 @@ -program substring - CHARACTER(LEN = 8) S_CHA, S_CHB, V_CHA, V_CHB - DIMENSION S_CHA(10), S_CHB(10), V_CHA(10), V_CHB(10) +PROGRAM SUBSTRING + CHARACTER(LEN = 8) :: s_cha, s_chb, v_cha, v_chb + DIMENSION :: s_cha(10), s_chb(10), v_cha(10), v_chb(10) - V_CHA(1:10)(1:8) = V_CHA(1:10)(1:4) // V_CHB(1:10)(5:8) -end program substring \ No newline at end of file + v_cha(1:10)(1:8) = v_cha(1:10)(1:4) // v_chb(1:10)(5:8) +END PROGRAM SUBSTRING \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/expr/substring.json b/FortranParser/resources-test/fortran/parser/expr/substring.json index 0f19177f..7afb2561 100644 --- a/FortranParser/resources-test/fortran/parser/expr/substring.json +++ b/FortranParser/resources-test/fortran/parser/expr/substring.json @@ -2,703 +2,705 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x55e3621a3f00-Program", + "id": "0x55fc4bcd1f00-Program", "ProgramUnit": [ - "0x55e3621d8f00-ProgramUnit" + "0x55fc4bd06f00-ProgramUnit" ] }, { - "id": "0x55e3621d8f00-ProgramUnit", + "id": "0x55fc4bd06f00-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x55e3621d3b20-MainProgram" + "MainProgram": "0x55fc4bd01b20-MainProgram" }, { - "id": "0x55e3621d3b20-MainProgram", - "Statement": "0x55e3621d3c68-Statement", - "SpecificationPart": "0x55e3621d3bc0-SpecificationPart", - "ExecutionPart": "0x55e3621d3ba8-ExecutionPart", - "Statement": "0x55e3621d3b20-Statement" + "id": "0x55fc4bd01b20-MainProgram", + "Statement": "0x55fc4bd01c68-Statement", + "SpecificationPart": "0x55fc4bd01bc0-SpecificationPart", + "ExecutionPart": "0x55fc4bd01ba8-ExecutionPart", + "Statement": "0x55fc4bd01b20-Statement" }, { - "id": "0x55e3621d3c68-Statement", - "statement": "0x55e3621d3c78-ProgramStmt", + "id": "0x55fc4bd01c68-Statement", + "statement": "0x55fc4bd01c78-ProgramStmt", "source": "program SUBSTRING" }, { - "id": "0x55e3621d3c78-ProgramStmt", - "Name": "0x55e3621d3c78-Name" + "id": "0x55fc4bd01c78-ProgramStmt", + "Name": "0x55fc4bd01c78-Name" }, { - "id": "0x55e3621d3c78-Name", + "id": "0x55fc4bd01c78-Name", "source": "SUBSTRING" }, { - "id": "0x55e3621d3bc0-SpecificationPart", - "ImplicitPart": "0x55e3621d3bd8-ImplicitPart", + "id": "0x55fc4bd01bc0-SpecificationPart", + "ImplicitPart": "0x55fc4bd01bd8-ImplicitPart", "DeclarationConstruct": [ - "0x55e3621b1110-DeclarationConstruct", - "0x55e3621e4040-DeclarationConstruct" + "0x55fc4bcdf110-DeclarationConstruct", + "0x55fc4bd12040-DeclarationConstruct" ] }, { - "id": "0x55e3621d3bd8-ImplicitPart" + "id": "0x55fc4bd01bd8-ImplicitPart" }, { - "id": "0x55e3621b1110-DeclarationConstruct", + "id": "0x55fc4bcdf110-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55e3621b1110-SpecificationConstruct" + "SpecificationConstruct": "0x55fc4bcdf110-SpecificationConstruct" }, { - "id": "0x55e3621b1110-SpecificationConstruct", + "id": "0x55fc4bcdf110-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55e3621b1110-Statement" + "Statement": "0x55fc4bcdf110-Statement" }, { - "id": "0x55e3621b1110-Statement", - "statement": "0x55e3621e2f10-TypeDeclarationStmt", + "id": "0x55fc4bcdf110-Statement", + "statement": "0x55fc4bd10f10-TypeDeclarationStmt", "source": "character(len = 8) s_cha, s_chb, v_cha, v_chb" }, { - "id": "0x55e3621e2f10-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55e3621e2f40-DeclarationTypeSpec", + "id": "0x55fc4bd10f10-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55fc4bd10f40-DeclarationTypeSpec", "EntityDecl": [ - "0x55e3621e33e0-EntityDecl", - "0x55e3621e3110-EntityDecl", - "0x55e3621e3200-EntityDecl", - "0x55e3621e32f0-EntityDecl" + "0x55fc4bd113e0-EntityDecl", + "0x55fc4bd11110-EntityDecl", + "0x55fc4bd11200-EntityDecl", + "0x55fc4bd112f0-EntityDecl" ] }, { - "id": "0x55e3621e2f40-DeclarationTypeSpec", + "id": "0x55fc4bd10f40-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55e3621e2f40-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55fc4bd10f40-IntrinsicTypeSpec" }, { - "id": "0x55e3621e2f40-IntrinsicTypeSpec", + "id": "0x55fc4bd10f40-IntrinsicTypeSpec", "variantKey": "Character", - "Character": "0x55e3621e2f40-Character" + "Character": "0x55fc4bd10f40-Character" }, { - "id": "0x55e3621e2f40-Character", - "CharSelector": "0x55e3621e2f40-CharSelector" + "id": "0x55fc4bd10f40-Character", + "CharSelector": "0x55fc4bd10f40-CharSelector" }, { - "id": "0x55e3621e2f40-CharSelector", + "id": "0x55fc4bd10f40-CharSelector", "variantKey": "LengthSelector", - "LengthSelector": "0x55e3621e2f40-LengthSelector" + "LengthSelector": "0x55fc4bd10f40-LengthSelector" }, { - "id": "0x55e3621e2f40-LengthSelector", + "id": "0x55fc4bd10f40-LengthSelector", "variantKey": "TypeParamValue", - "TypeParamValue": "0x55e3621e2f40-TypeParamValue" + "TypeParamValue": "0x55fc4bd10f40-TypeParamValue" }, { - "id": "0x55e3621e2f40-TypeParamValue", + "id": "0x55fc4bd10f40-TypeParamValue", "variantKey": "Expr", - "Expr": "0x55e362143790-Expr" + "Expr": "0x55fc4bc71790-Expr" }, { - "id": "0x55e362143790-Expr", + "id": "0x55fc4bc71790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e3621437b0-LiteralConstant" + "LiteralConstant": "0x55fc4bc717b0-LiteralConstant" }, { - "id": "0x55e3621437b0-LiteralConstant", + "id": "0x55fc4bc717b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e3621437b0-IntLiteralConstant" + "IntLiteralConstant": "0x55fc4bc717b0-IntLiteralConstant" }, { - "id": "0x55e3621437b0-IntLiteralConstant", + "id": "0x55fc4bc717b0-IntLiteralConstant", "CharBlock": "8" }, { - "id": "0x55e3621e33e0-EntityDecl", - "Name": "0x55e3621e3498-Name" + "id": "0x55fc4bd113e0-EntityDecl", + "Name": "0x55fc4bd11498-Name" }, { - "id": "0x55e3621e3498-Name", + "id": "0x55fc4bd11498-Name", "source": "s_cha" }, { - "id": "0x55e3621e3110-EntityDecl", - "Name": "0x55e3621e31c8-Name" + "id": "0x55fc4bd11110-EntityDecl", + "Name": "0x55fc4bd111c8-Name" }, { - "id": "0x55e3621e31c8-Name", + "id": "0x55fc4bd111c8-Name", "source": "s_chb" }, { - "id": "0x55e3621e3200-EntityDecl", - "Name": "0x55e3621e32b8-Name" + "id": "0x55fc4bd11200-EntityDecl", + "Name": "0x55fc4bd112b8-Name" }, { - "id": "0x55e3621e32b8-Name", + "id": "0x55fc4bd112b8-Name", "source": "v_cha" }, { - "id": "0x55e3621e32f0-EntityDecl", - "Name": "0x55e3621e33a8-Name" + "id": "0x55fc4bd112f0-EntityDecl", + "Name": "0x55fc4bd113a8-Name" }, { - "id": "0x55e3621e33a8-Name", + "id": "0x55fc4bd113a8-Name", "source": "v_chb" }, { - "id": "0x55e3621e4040-DeclarationConstruct", + "id": "0x55fc4bd12040-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55e3621e4040-SpecificationConstruct" + "SpecificationConstruct": "0x55fc4bd12040-SpecificationConstruct" }, { - "id": "0x55e3621e4040-SpecificationConstruct", + "id": "0x55fc4bd12040-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55e3621e4040-Statement" + "Statement": "0x55fc4bd12040-Statement" }, { - "id": "0x55e3621e4040-Statement", - "statement": "0x55e3621e4050-OtherSpecificationStmt", + "id": "0x55fc4bd12040-Statement", + "statement": "0x55fc4bd12050-OtherSpecificationStmt", "source": "dimension s_cha(10), s_chb(10), v_cha(10), v_chb(10)" }, { - "id": "0x55e3621e4050-OtherSpecificationStmt", + "id": "0x55fc4bd12050-OtherSpecificationStmt", "variantKey": "DimensionStmt", - "DimensionStmt": "0x55e3621e5a90-DimensionStmt" + "DimensionStmt": "0x55fc4bd13a90-DimensionStmt" }, { - "id": "0x55e3621e5a90-DimensionStmt", + "id": "0x55fc4bd13a90-DimensionStmt", "Declaration": [ - "0x55e3621e3e30-Declaration", - "0x55e3621b0da0-Declaration", - "0x55e3621e3a70-Declaration", - "0x55e3621e3dd0-Declaration" + "0x55fc4bd11e30-Declaration", + "0x55fc4bcdeda0-Declaration", + "0x55fc4bd11a70-Declaration", + "0x55fc4bd11dd0-Declaration" ] }, { - "id": "0x55e3621e3e30-Declaration", - "Name": "0x55e3621e3e60-Name", - "ArraySpec": "0x55e3621e3e30-ArraySpec" + "id": "0x55fc4bd11e30-Declaration", + "Name": "0x55fc4bd11e60-Name", + "ArraySpec": "0x55fc4bd11e30-ArraySpec" }, { - "id": "0x55e3621e3e60-Name", + "id": "0x55fc4bd11e60-Name", "source": "s_cha" }, { - "id": "0x55e3621e3e30-ArraySpec", + "id": "0x55fc4bd11e30-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55e3621d8d40-ExplicitShapeSpec" + "0x55fc4bd06d40-ExplicitShapeSpec" ] }, { - "id": "0x55e3621d8d40-ExplicitShapeSpec", - "upper_bound": "0x55e3621d8d40-SpecificationExpr" + "id": "0x55fc4bd06d40-ExplicitShapeSpec", + "upper_bound": "0x55fc4bd06d40-SpecificationExpr" }, { - "id": "0x55e3621d8d40-SpecificationExpr", - "Expr": "0x55e3621e35a0-Expr" + "id": "0x55fc4bd06d40-SpecificationExpr", + "Expr": "0x55fc4bd115a0-Expr" }, { - "id": "0x55e3621e35a0-Expr", + "id": "0x55fc4bd115a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e3621e35c0-LiteralConstant" + "LiteralConstant": "0x55fc4bd115c0-LiteralConstant" }, { - "id": "0x55e3621e35c0-LiteralConstant", + "id": "0x55fc4bd115c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e3621e35c0-IntLiteralConstant" + "IntLiteralConstant": "0x55fc4bd115c0-IntLiteralConstant" }, { - "id": "0x55e3621e35c0-IntLiteralConstant", + "id": "0x55fc4bd115c0-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x55e3621b0da0-Declaration", - "Name": "0x55e3621b0dd0-Name", - "ArraySpec": "0x55e3621b0da0-ArraySpec" + "id": "0x55fc4bcdeda0-Declaration", + "Name": "0x55fc4bcdedd0-Name", + "ArraySpec": "0x55fc4bcdeda0-ArraySpec" }, { - "id": "0x55e3621b0dd0-Name", + "id": "0x55fc4bcdedd0-Name", "source": "s_chb" }, { - "id": "0x55e3621b0da0-ArraySpec", + "id": "0x55fc4bcdeda0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55e3621d8d70-ExplicitShapeSpec" + "0x55fc4bd06d70-ExplicitShapeSpec" ] }, { - "id": "0x55e3621d8d70-ExplicitShapeSpec", - "upper_bound": "0x55e3621d8d70-SpecificationExpr" + "id": "0x55fc4bd06d70-ExplicitShapeSpec", + "upper_bound": "0x55fc4bd06d70-SpecificationExpr" }, { - "id": "0x55e3621d8d70-SpecificationExpr", - "Expr": "0x55e3621e3680-Expr" + "id": "0x55fc4bd06d70-SpecificationExpr", + "Expr": "0x55fc4bd11680-Expr" }, { - "id": "0x55e3621e3680-Expr", + "id": "0x55fc4bd11680-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e3621e36a0-LiteralConstant" + "LiteralConstant": "0x55fc4bd116a0-LiteralConstant" }, { - "id": "0x55e3621e36a0-LiteralConstant", + "id": "0x55fc4bd116a0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e3621e36a0-IntLiteralConstant" + "IntLiteralConstant": "0x55fc4bd116a0-IntLiteralConstant" }, { - "id": "0x55e3621e36a0-IntLiteralConstant", + "id": "0x55fc4bd116a0-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x55e3621e3a70-Declaration", - "Name": "0x55e3621e3aa0-Name", - "ArraySpec": "0x55e3621e3a70-ArraySpec" + "id": "0x55fc4bd11a70-Declaration", + "Name": "0x55fc4bd11aa0-Name", + "ArraySpec": "0x55fc4bd11a70-ArraySpec" }, { - "id": "0x55e3621e3aa0-Name", + "id": "0x55fc4bd11aa0-Name", "source": "v_cha" }, { - "id": "0x55e3621e3a70-ArraySpec", + "id": "0x55fc4bd11a70-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55e3621d8da0-ExplicitShapeSpec" + "0x55fc4bd06da0-ExplicitShapeSpec" ] }, { - "id": "0x55e3621d8da0-ExplicitShapeSpec", - "upper_bound": "0x55e3621d8da0-SpecificationExpr" + "id": "0x55fc4bd06da0-ExplicitShapeSpec", + "upper_bound": "0x55fc4bd06da0-SpecificationExpr" }, { - "id": "0x55e3621d8da0-SpecificationExpr", - "Expr": "0x55e3621e3980-Expr" + "id": "0x55fc4bd06da0-SpecificationExpr", + "Expr": "0x55fc4bd11980-Expr" }, { - "id": "0x55e3621e3980-Expr", + "id": "0x55fc4bd11980-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e3621e39a0-LiteralConstant" + "LiteralConstant": "0x55fc4bd119a0-LiteralConstant" }, { - "id": "0x55e3621e39a0-LiteralConstant", + "id": "0x55fc4bd119a0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e3621e39a0-IntLiteralConstant" + "IntLiteralConstant": "0x55fc4bd119a0-IntLiteralConstant" }, { - "id": "0x55e3621e39a0-IntLiteralConstant", + "id": "0x55fc4bd119a0-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x55e3621e3dd0-Declaration", - "Name": "0x55e3621e3e00-Name", - "ArraySpec": "0x55e3621e3dd0-ArraySpec" + "id": "0x55fc4bd11dd0-Declaration", + "Name": "0x55fc4bd11e00-Name", + "ArraySpec": "0x55fc4bd11dd0-ArraySpec" }, { - "id": "0x55e3621e3e00-Name", + "id": "0x55fc4bd11e00-Name", "source": "v_chb" }, { - "id": "0x55e3621e3dd0-ArraySpec", + "id": "0x55fc4bd11dd0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55e3621d8df0-ExplicitShapeSpec" + "0x55fc4bd06df0-ExplicitShapeSpec" ] }, { - "id": "0x55e3621d8df0-ExplicitShapeSpec", - "upper_bound": "0x55e3621d8df0-SpecificationExpr" + "id": "0x55fc4bd06df0-ExplicitShapeSpec", + "upper_bound": "0x55fc4bd06df0-SpecificationExpr" }, { - "id": "0x55e3621d8df0-SpecificationExpr", - "Expr": "0x55e3621e3ce0-Expr" + "id": "0x55fc4bd06df0-SpecificationExpr", + "Expr": "0x55fc4bd11ce0-Expr" }, { - "id": "0x55e3621e3ce0-Expr", + "id": "0x55fc4bd11ce0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e3621e3d00-LiteralConstant" + "LiteralConstant": "0x55fc4bd11d00-LiteralConstant" }, { - "id": "0x55e3621e3d00-LiteralConstant", + "id": "0x55fc4bd11d00-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e3621e3d00-IntLiteralConstant" + "IntLiteralConstant": "0x55fc4bd11d00-IntLiteralConstant" }, { - "id": "0x55e3621e3d00-IntLiteralConstant", + "id": "0x55fc4bd11d00-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x55e3621d3ba8-ExecutionPart", + "id": "0x55fc4bd01ba8-ExecutionPart", "ExecutionPartConstruct": [ - "0x55e3621d0aa0-ExecutionPartConstruct" + "0x55fc4bcfeaa0-ExecutionPartConstruct" ] }, { - "id": "0x55e3621d3ba8-ExecutionPartConstruct" + "id": "0x55fc4bd01ba8-ExecutionPartConstruct" }, { - "id": "0x55e3621d0aa0-ExecutionPartConstruct", + "id": "0x55fc4bcfeaa0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55e3621d0aa0-ExecutableConstruct" + "ExecutableConstruct": "0x55fc4bcfeaa0-ExecutableConstruct" }, { - "id": "0x55e3621d0aa0-ExecutableConstruct", + "id": "0x55fc4bcfeaa0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55e3621d0aa0-Statement" + "Statement": "0x55fc4bcfeaa0-Statement" }, { - "id": "0x55e3621d0aa0-Statement", - "statement": "0x55e3621d0ab0-ActionStmt", + "id": "0x55fc4bcfeaa0-Statement", + "statement": "0x55fc4bcfeab0-ActionStmt", "source": "v_cha(1:10)(1:8) = v_cha(1:10)(1:4) // v_chb(1:10)(5:8)" }, { - "id": "0x55e3621d0ab0-ActionStmt", + "id": "0x55fc4bcfeab0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55e3621b1ce0-AssignmentStmt" + "AssignmentStmt": "0x55fc4bcdfce0-AssignmentStmt" }, { - "id": "0x55e3621b1ce0-AssignmentStmt", - "Variable": "0x55e3621b1dc0-Variable", - "Expr": "0x55e3621b1cf0-Expr" + "id": "0x55fc4bcdfce0-AssignmentStmt", + "Variable": "0x55fc4bcdfdc0-Variable", + "Expr": "0x55fc4bcdfcf0-Expr" }, { - "id": "0x55e3621b1dc0-Variable", + "id": "0x55fc4bcdfdc0-Variable", "variantKey": "Designator", - "Designator": "0x55e3621e42f0-Designator" + "Designator": "0x55fc4bd122f0-Designator" }, { - "id": "0x55e3621e42f0-Designator", + "id": "0x55fc4bd122f0-Designator", "variantKey": "Substring", - "Substring": "0x55e3621e4300-Substring" + "Substring": "0x55fc4bd12300-Substring" }, { - "id": "0x55e3621e4300-Substring", - "DataRef": "0x55e3621e4320-DataRef", - "SubstringRange": "0x55e3621e4300-SubstringRange" + "id": "0x55fc4bd12300-Substring", + "DataRef": "0x55fc4bd12320-DataRef", + "SubstringRange": "0x55fc4bd12300-SubstringRange" }, { - "id": "0x55e3621e4320-DataRef", + "id": "0x55fc4bd12320-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55e3621e6b40-ArrayElement" + "ArrayElement": "0x55fc4bd14b40-ArrayElement" }, { - "id": "0x55e3621e6b40-ArrayElement", - "base": "0x55e3621e6b40-DataRef", + "id": "0x55fc4bd14b40-ArrayElement", + "base": "0x55fc4bd14b40-DataRef", "subscripts": [ - "0x55e3621bcc80-SectionSubscript" + "0x55fc4bceac80-SectionSubscript" ] }, { - "id": "0x55e3621e6b40-DataRef", + "id": "0x55fc4bd14b40-DataRef", "variantKey": "Name", - "Name": "0x55e3621e6b40-Name" + "Name": "0x55fc4bd14b40-Name" }, { - "id": "0x55e3621e6b40-Name", + "id": "0x55fc4bd14b40-Name", "source": "v_cha" }, { - "id": "0x55e3621bcc80-SectionSubscript", + "id": "0x55fc4bceac80-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x55e3621bcc80-SubscriptTriplet" + "SubscriptTriplet": "0x55fc4bceac80-SubscriptTriplet" }, { - "id": "0x55e3621bcc80-SubscriptTriplet", - "start": "0x55e3621e4760-Expr", - "end": "0x55e3621cebb0-Expr" + "id": "0x55fc4bceac80-SubscriptTriplet", + "start": "0x55fc4bd12760-Expr", + "end": "0x55fc4bcfcbb0-Expr" }, { - "id": "0x55e3621e4760-Expr", + "id": "0x55fc4bd12760-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e3621e4780-LiteralConstant" + "LiteralConstant": "0x55fc4bd12780-LiteralConstant" }, { - "id": "0x55e3621e4780-LiteralConstant", + "id": "0x55fc4bd12780-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e3621e4780-IntLiteralConstant" + "IntLiteralConstant": "0x55fc4bd12780-IntLiteralConstant" }, { - "id": "0x55e3621e4780-IntLiteralConstant", + "id": "0x55fc4bd12780-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55e3621cebb0-Expr", + "id": "0x55fc4bcfcbb0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e3621cebd0-LiteralConstant" + "LiteralConstant": "0x55fc4bcfcbd0-LiteralConstant" }, { - "id": "0x55e3621cebd0-LiteralConstant", + "id": "0x55fc4bcfcbd0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e3621cebd0-IntLiteralConstant" + "IntLiteralConstant": "0x55fc4bcfcbd0-IntLiteralConstant" }, { - "id": "0x55e3621cebd0-IntLiteralConstant", + "id": "0x55fc4bcfcbd0-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x55e3621e4300-SubstringRange", - "lower": "0x55e3621ce770-Expr", - "upper": "0x55e3621e4210-Expr" + "id": "0x55fc4bd12300-SubstringRange", + "lower": "0x55fc4bcfc770-Expr", + "upper": "0x55fc4bd12210-Expr" }, { - "id": "0x55e3621ce770-Expr", + "id": "0x55fc4bcfc770-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e3621ce790-LiteralConstant" + "LiteralConstant": "0x55fc4bcfc790-LiteralConstant" }, { - "id": "0x55e3621ce790-LiteralConstant", + "id": "0x55fc4bcfc790-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e3621ce790-IntLiteralConstant" + "IntLiteralConstant": "0x55fc4bcfc790-IntLiteralConstant" }, { - "id": "0x55e3621ce790-IntLiteralConstant", + "id": "0x55fc4bcfc790-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55e3621e4210-Expr", + "id": "0x55fc4bd12210-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e3621e4230-LiteralConstant" + "LiteralConstant": "0x55fc4bd12230-LiteralConstant" }, { - "id": "0x55e3621e4230-LiteralConstant", + "id": "0x55fc4bd12230-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e3621e4230-IntLiteralConstant" + "IntLiteralConstant": "0x55fc4bd12230-IntLiteralConstant" }, { - "id": "0x55e3621e4230-IntLiteralConstant", + "id": "0x55fc4bd12230-IntLiteralConstant", "CharBlock": "8" }, { - "id": "0x55e3621b1cf0-Expr", + "id": "0x55fc4bcdfcf0-Expr", "variantKey": "Concat", - "Concat": "0x55e3621b1d10-Concat" + "Concat": "0x55fc4bcdfd10-Concat" }, { - "id": "0x55e3621b1d10-Concat", - "Expr": "0x55e3621d08d0-Expr" + "id": "0x55fc4bcdfd10-Concat", + "left": "0x55fc4bcfe9b0-Expr", + "right": "0x55fc4bcfe8d0-Expr", + "op": "CONCAT" }, { - "id": "0x55e3621d09b0-Expr", + "id": "0x55fc4bcfe9b0-Expr", "variantKey": "Designator", - "Designator": "0x55e3621b1160-Designator" + "Designator": "0x55fc4bcdf160-Designator" }, { - "id": "0x55e3621b1160-Designator", + "id": "0x55fc4bcdf160-Designator", "variantKey": "Substring", - "Substring": "0x55e3621b1170-Substring" + "Substring": "0x55fc4bcdf170-Substring" }, { - "id": "0x55e3621b1170-Substring", - "DataRef": "0x55e3621b1190-DataRef", - "SubstringRange": "0x55e3621b1170-SubstringRange" + "id": "0x55fc4bcdf170-Substring", + "DataRef": "0x55fc4bcdf190-DataRef", + "SubstringRange": "0x55fc4bcdf170-SubstringRange" }, { - "id": "0x55e3621b1190-DataRef", + "id": "0x55fc4bcdf190-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55e3621e6a80-ArrayElement" + "ArrayElement": "0x55fc4bd14a80-ArrayElement" }, { - "id": "0x55e3621e6a80-ArrayElement", - "base": "0x55e3621e6a80-DataRef", + "id": "0x55fc4bd14a80-ArrayElement", + "base": "0x55fc4bd14a80-DataRef", "subscripts": [ - "0x55e3621e0650-SectionSubscript" + "0x55fc4bd0e650-SectionSubscript" ] }, { - "id": "0x55e3621e6a80-DataRef", + "id": "0x55fc4bd14a80-DataRef", "variantKey": "Name", - "Name": "0x55e3621e6a80-Name" + "Name": "0x55fc4bd14a80-Name" }, { - "id": "0x55e3621e6a80-Name", + "id": "0x55fc4bd14a80-Name", "source": "v_cha" }, { - "id": "0x55e3621e0650-SectionSubscript", + "id": "0x55fc4bd0e650-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x55e3621e0650-SubscriptTriplet" + "SubscriptTriplet": "0x55fc4bd0e650-SubscriptTriplet" }, { - "id": "0x55e3621e0650-SubscriptTriplet", - "start": "0x55e3621e0300-Expr", - "end": "0x55e3621e4c20-Expr" + "id": "0x55fc4bd0e650-SubscriptTriplet", + "start": "0x55fc4bd0e300-Expr", + "end": "0x55fc4bd12c20-Expr" }, { - "id": "0x55e3621e0300-Expr", + "id": "0x55fc4bd0e300-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e3621e0320-LiteralConstant" + "LiteralConstant": "0x55fc4bd0e320-LiteralConstant" }, { - "id": "0x55e3621e0320-LiteralConstant", + "id": "0x55fc4bd0e320-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e3621e0320-IntLiteralConstant" + "IntLiteralConstant": "0x55fc4bd0e320-IntLiteralConstant" }, { - "id": "0x55e3621e0320-IntLiteralConstant", + "id": "0x55fc4bd0e320-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55e3621e4c20-Expr", + "id": "0x55fc4bd12c20-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e3621e4c40-LiteralConstant" + "LiteralConstant": "0x55fc4bd12c40-LiteralConstant" }, { - "id": "0x55e3621e4c40-LiteralConstant", + "id": "0x55fc4bd12c40-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e3621e4c40-IntLiteralConstant" + "IntLiteralConstant": "0x55fc4bd12c40-IntLiteralConstant" }, { - "id": "0x55e3621e4c40-IntLiteralConstant", + "id": "0x55fc4bd12c40-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x55e3621b1170-SubstringRange", - "lower": "0x55e3621e2c80-Expr", - "upper": "0x55e3621ceeb0-Expr" + "id": "0x55fc4bcdf170-SubstringRange", + "lower": "0x55fc4bd10c80-Expr", + "upper": "0x55fc4bcfceb0-Expr" }, { - "id": "0x55e3621e2c80-Expr", + "id": "0x55fc4bd10c80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e3621e2ca0-LiteralConstant" + "LiteralConstant": "0x55fc4bd10ca0-LiteralConstant" }, { - "id": "0x55e3621e2ca0-LiteralConstant", + "id": "0x55fc4bd10ca0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e3621e2ca0-IntLiteralConstant" + "IntLiteralConstant": "0x55fc4bd10ca0-IntLiteralConstant" }, { - "id": "0x55e3621e2ca0-IntLiteralConstant", + "id": "0x55fc4bd10ca0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55e3621ceeb0-Expr", + "id": "0x55fc4bcfceb0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e3621ceed0-LiteralConstant" + "LiteralConstant": "0x55fc4bcfced0-LiteralConstant" }, { - "id": "0x55e3621ceed0-LiteralConstant", + "id": "0x55fc4bcfced0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e3621ceed0-IntLiteralConstant" + "IntLiteralConstant": "0x55fc4bcfced0-IntLiteralConstant" }, { - "id": "0x55e3621ceed0-IntLiteralConstant", + "id": "0x55fc4bcfced0-IntLiteralConstant", "CharBlock": "4" }, { - "id": "0x55e3621d08d0-Expr", + "id": "0x55fc4bcfe8d0-Expr", "variantKey": "Designator", - "Designator": "0x55e3621e2dd0-Designator" + "Designator": "0x55fc4bd10dd0-Designator" }, { - "id": "0x55e3621e2dd0-Designator", + "id": "0x55fc4bd10dd0-Designator", "variantKey": "Substring", - "Substring": "0x55e3621e2de0-Substring" + "Substring": "0x55fc4bd10de0-Substring" }, { - "id": "0x55e3621e2de0-Substring", - "DataRef": "0x55e3621e2e00-DataRef", - "SubstringRange": "0x55e3621e2de0-SubstringRange" + "id": "0x55fc4bd10de0-Substring", + "DataRef": "0x55fc4bd10e00-DataRef", + "SubstringRange": "0x55fc4bd10de0-SubstringRange" }, { - "id": "0x55e3621e2e00-DataRef", + "id": "0x55fc4bd10e00-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55e3621e63a0-ArrayElement" + "ArrayElement": "0x55fc4bd143a0-ArrayElement" }, { - "id": "0x55e3621e63a0-ArrayElement", - "base": "0x55e3621e63a0-DataRef", + "id": "0x55fc4bd143a0-ArrayElement", + "base": "0x55fc4bd143a0-DataRef", "subscripts": [ - "0x55e3621e77b0-SectionSubscript" + "0x55fc4bd157b0-SectionSubscript" ] }, { - "id": "0x55e3621e63a0-DataRef", + "id": "0x55fc4bd143a0-DataRef", "variantKey": "Name", - "Name": "0x55e3621e63a0-Name" + "Name": "0x55fc4bd143a0-Name" }, { - "id": "0x55e3621e63a0-Name", + "id": "0x55fc4bd143a0-Name", "source": "v_chb" }, { - "id": "0x55e3621e77b0-SectionSubscript", + "id": "0x55fc4bd157b0-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x55e3621e77b0-SubscriptTriplet" + "SubscriptTriplet": "0x55fc4bd157b0-SubscriptTriplet" }, { - "id": "0x55e3621e77b0-SubscriptTriplet", - "start": "0x55e3621d0110-Expr", - "end": "0x55e3621d0410-Expr" + "id": "0x55fc4bd157b0-SubscriptTriplet", + "start": "0x55fc4bcfe110-Expr", + "end": "0x55fc4bcfe410-Expr" }, { - "id": "0x55e3621d0110-Expr", + "id": "0x55fc4bcfe110-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e3621d0130-LiteralConstant" + "LiteralConstant": "0x55fc4bcfe130-LiteralConstant" }, { - "id": "0x55e3621d0130-LiteralConstant", + "id": "0x55fc4bcfe130-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e3621d0130-IntLiteralConstant" + "IntLiteralConstant": "0x55fc4bcfe130-IntLiteralConstant" }, { - "id": "0x55e3621d0130-IntLiteralConstant", + "id": "0x55fc4bcfe130-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55e3621d0410-Expr", + "id": "0x55fc4bcfe410-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e3621d0430-LiteralConstant" + "LiteralConstant": "0x55fc4bcfe430-LiteralConstant" }, { - "id": "0x55e3621d0430-LiteralConstant", + "id": "0x55fc4bcfe430-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e3621d0430-IntLiteralConstant" + "IntLiteralConstant": "0x55fc4bcfe430-IntLiteralConstant" }, { - "id": "0x55e3621d0430-IntLiteralConstant", + "id": "0x55fc4bcfe430-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x55e3621e2de0-SubstringRange", - "lower": "0x55e3621cf960-Expr", - "upper": "0x55e3621cfc60-Expr" + "id": "0x55fc4bd10de0-SubstringRange", + "lower": "0x55fc4bcfd960-Expr", + "upper": "0x55fc4bcfdc60-Expr" }, { - "id": "0x55e3621cf960-Expr", + "id": "0x55fc4bcfd960-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e3621cf980-LiteralConstant" + "LiteralConstant": "0x55fc4bcfd980-LiteralConstant" }, { - "id": "0x55e3621cf980-LiteralConstant", + "id": "0x55fc4bcfd980-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e3621cf980-IntLiteralConstant" + "IntLiteralConstant": "0x55fc4bcfd980-IntLiteralConstant" }, { - "id": "0x55e3621cf980-IntLiteralConstant", + "id": "0x55fc4bcfd980-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x55e3621cfc60-Expr", + "id": "0x55fc4bcfdc60-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e3621cfc80-LiteralConstant" + "LiteralConstant": "0x55fc4bcfdc80-LiteralConstant" }, { - "id": "0x55e3621cfc80-LiteralConstant", + "id": "0x55fc4bcfdc80-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e3621cfc80-IntLiteralConstant" + "IntLiteralConstant": "0x55fc4bcfdc80-IntLiteralConstant" }, { - "id": "0x55e3621cfc80-IntLiteralConstant", + "id": "0x55fc4bcfdc80-IntLiteralConstant", "CharBlock": "8" }, { - "id": "0x55e3621d3b20-Statement", - "statement": "0x55e3621d3b30-EndProgramStmt", + "id": "0x55fc4bd01b20-Statement", + "statement": "0x55fc4bd01b30-EndProgramStmt", "source": "end program SUBSTRING" }, { - "id": "0x55e3621d3b30-EndProgramStmt", - "Name": "0x55e3621d3b30-Name" + "id": "0x55fc4bd01b30-EndProgramStmt", + "Name": "0x55fc4bd01b30-Name" }, { - "id": "0x55e3621d3b30-Name", + "id": "0x55fc4bd01b30-Name", "source": "SUBSTRING" } ], From e67aa2b5cd91169c5942e03dfb3dd8e988097174 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Jul 2026 20:38:11 +0100 Subject: [PATCH 102/260] Fix usage of variables across nodes --- .../fe/specs/fortran/ast/FortranKeyword.java | 1 + .../ast/nodes/alloc/StatAllocOption.java | 24 +++++++++++++++++++ .../fortran/ast/nodes/alloc/StatVariable.java | 22 ----------------- .../nodes/stmt/datastmt/DataStmtVariable.java | 9 ++++--- .../fe/specs/fortran/parser/FlangToClass.java | 4 ++-- .../parser/processors/AllocProcessors.java | 6 ++--- .../fortran/parser/processors/Nodes.java | 4 ++-- 7 files changed, 36 insertions(+), 34 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/StatAllocOption.java delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/StatVariable.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java index 5bcbc8ec..d7519cee 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -50,6 +50,7 @@ public enum FortranKeyword { DATA, COMMON, INTENT, + STAT, OMP; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/StatAllocOption.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/StatAllocOption.java new file mode 100644 index 00000000..04171d50 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/StatAllocOption.java @@ -0,0 +1,24 @@ +package pt.up.fe.specs.fortran.ast.nodes.alloc; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.decl.Variable; +import pt.up.fe.specs.fortran.ast.nodes.expr.DataRef; + +import java.util.Collection; + +public class StatAllocOption extends AllocOption { + public StatAllocOption(DataStore data, Collection children) { + super(data, children); + } + + public Variable getRef() { + return getChild(Variable.class); + } + + @Override + public String getCode() { + return keyword(FortranKeyword.STAT) + "=" + getRef().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/StatVariable.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/StatVariable.java deleted file mode 100644 index bbeb3e1c..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/StatVariable.java +++ /dev/null @@ -1,22 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.alloc; - -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.expr.DataRef; - -import java.util.Collection; - -public class StatVariable extends AllocOption { - public StatVariable(DataStore data, Collection children) { - super(data, children); - } - - public DataRef getRef() { - return getChild(DataRef.class); - } - - @Override - public String getCode() { - return "STAT=" + getRef().getCode(); - } -} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmtVariable.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmtVariable.java index 7adb38ec..4ed091bf 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmtVariable.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmtVariable.java @@ -2,6 +2,7 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.decl.Variable; import pt.up.fe.specs.fortran.ast.nodes.expr.DataRef; import java.util.Collection; @@ -11,14 +12,12 @@ public DataStmtVariable(DataStore data, Collection childr super(data, children); } - public DataRef getVariable() { - return getChild(DataRef.class); + public Variable getVariable() { + return getChild(Variable.class); } @Override public String getCode() { - var variable = getVariable(); - - return variable.getCode(); + return getVariable().getCode(); } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 9b5c7a2d..edc50c6b 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -2,7 +2,7 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.alloc.Allocation; -import pt.up.fe.specs.fortran.ast.nodes.alloc.StatVariable; +import pt.up.fe.specs.fortran.ast.nodes.alloc.StatAllocOption; import pt.up.fe.specs.fortran.ast.nodes.decl.*; import pt.up.fe.specs.fortran.ast.nodes.expr.*; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentLoopControl; @@ -194,7 +194,7 @@ public class FlangToClass { NAME_TO_CLASS.put(FlangName.NAME_VALUE, NameValue.class); NAME_TO_CLASS.put(FlangName.IO_UNIT, IoUnit.class); NAME_TO_CLASS.put(FlangName.IO_CONTROL_SPEC, IoControlSpec.class); - NAME_TO_CLASS.put(FlangName.STAT_VARIABLE, StatVariable.class); + NAME_TO_CLASS.put(FlangName.STAT_VARIABLE, StatAllocOption.class); /// OPENMP NAME_TO_CLASS.put(FlangName.OMP_BLOCK_CONSTRUCT, OmpBlockConstruct.class); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AllocProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AllocProcessors.java index 21deb8e0..41a6abd4 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AllocProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AllocProcessors.java @@ -1,7 +1,7 @@ package pt.up.fe.specs.fortran.parser.processors; import pt.up.fe.specs.fortran.ast.nodes.alloc.Allocation; -import pt.up.fe.specs.fortran.ast.nodes.alloc.StatVariable; +import pt.up.fe.specs.fortran.ast.nodes.alloc.StatAllocOption; import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; @@ -15,7 +15,7 @@ public void allocation(Allocation allocation) { allocation.addChildren(getChildren(allocation, FlangName.ALLOCATE_SHAPE_SPEC)); } - public void statVariable(StatVariable statVariable) { - statVariable.addChild(getChild(statVariable, FlangName.EXPR)); + public void statAllocOption(StatAllocOption statAllocOption) { + statAllocOption.addChild(getChild(statAllocOption, FlangName.EXPR)); } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 50a31aa1..7c5af5c1 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -2,7 +2,7 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.alloc.Allocation; -import pt.up.fe.specs.fortran.ast.nodes.alloc.StatVariable; +import pt.up.fe.specs.fortran.ast.nodes.alloc.StatAllocOption; import pt.up.fe.specs.fortran.ast.nodes.decl.*; import pt.up.fe.specs.fortran.ast.nodes.expr.*; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentLoopControl; @@ -61,7 +61,7 @@ public Nodes(FortranJsonResult data) { var alloc = new AllocProcessors(data); processors.put(Allocation.class, alloc::allocation); - processors.put(StatVariable.class, alloc::statVariable); + processors.put(StatAllocOption.class, alloc::statAllocOption); var d = new DeclProcessors(data); processors.put(EntityDecl.class, d::entityDecl); From a3c3d39dd54c378911204b57c440543e9c6b4920 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Jul 2026 22:06:54 +0100 Subject: [PATCH 103/260] Add compaction for fixed-form woven code --- .../ast/nodes/program/FortranFile.java | 51 ++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java index 597201bc..fb8d7792 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java @@ -3,9 +3,11 @@ import org.suikasoft.jOptions.Datakey.DataKey; import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranAstOptions; import pt.up.fe.specs.fortran.ast.FortranContext; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.util.SpecsIo; +import pt.up.fe.specs.util.utilities.StringLines; import java.util.Collection; import java.util.List; @@ -67,7 +69,54 @@ public String getCode() { .map(ProgramUnit::getCode) .collect(Collectors.joining("\n")); - return programUnitsCode + commentSuffix; + var code = programUnitsCode + commentSuffix; + if (fixedForm) { + code = compactCode(code); + } + return code; + } + + /** + * Compacts the code by removing as many spaces as possible in fixed-form Fortran code. + * This is useful for making sure the code fits within the 72-character limit of fixed-form Fortran. + * + * @param code The code to compact. + * @return The compacted code. + */ + private String compactCode(String code) { + return StringLines.getLines(code).stream() + .map(this::compactLine) + .collect(Collectors.joining(ln())); + } + + /** + * Compacts a line of code by removing spaces after the first 6 characters, except for spaces inside string literals. + * + * @param line The line of code to compact. + * @return The compacted line of code. + */ + private String compactLine(String line) { + if (line.length() <= 6) { + return line; + } + + var newLine = new StringBuilder(line.substring(0, 6)); + var stringDelimiter = getContext().getFortranOptions().get(FortranAstOptions.SINGLE_QUOTE_STRINGS) + ? '\'' : '"'; + var inString = false; + + for (var i = 6; i < line.length(); i++) { + var c = line.charAt(i); + if (c == stringDelimiter) { + inString = !inString; + } + if (!inString && c == ' ') { + continue; + } + newLine.append(c); + } + + return newLine.toString(); } } From 6a0f58c725cb64549d4dfe0dd43ad09b49aa8641 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Jul 2026 23:04:36 +0100 Subject: [PATCH 104/260] Remove usage of optional space --- .../pt/up/fe/specs/fortran/ast/nodes/FortranNode.java | 6 +----- .../specs/fortran/ast/nodes/expr/BinaryOperator.java | 2 +- .../pt/up/fe/specs/fortran/ast/nodes/expr/Call.java | 11 ++++++----- .../specs/fortran/ast/nodes/expr/ComplexLiteral.java | 2 +- .../fortran/ast/nodes/loops/ConcurrentRange.java | 3 +-- .../fortran/ast/nodes/loops/RangeLoopControl.java | 7 +++---- .../fortran/ast/nodes/loops/WhileLoopControl.java | 2 +- .../fortran/ast/nodes/program/SubroutineStmt.java | 2 +- .../specs/fortran/ast/nodes/stmt/AssignmentStmt.java | 2 +- .../up/fe/specs/fortran/ast/nodes/stmt/GotoStmt.java | 2 +- .../fortran/ast/nodes/stmt/TypeDeclarationStmt.java | 5 ++--- .../up/fe/specs/fortran/ast/nodes/stmt/WriteStmt.java | 6 +++--- .../fortran/ast/nodes/stmt/datastmt/DataStmt.java | 2 +- .../fortran/ast/nodes/stmt/datastmt/DataStmtSet.java | 6 +++--- .../fortran/ast/nodes/stmt/dimstmt/DimensionStmt.java | 2 +- .../fortran/ast/nodes/stmt/ifstmt/ElseIfStmt.java | 8 ++------ .../fortran/ast/nodes/stmt/ifstmt/EndIfStmt.java | 4 +--- .../specs/fortran/ast/nodes/stmt/ifstmt/IfStmt.java | 4 +--- .../fortran/ast/nodes/stmt/ifstmt/IfThenStmt.java | 6 ++---- .../fe/specs/fortran/ast/nodes/stmt/loop/DoStmt.java | 2 +- .../fortran/ast/nodes/stmt/usestmt/NamesRename.java | 2 +- .../fortran/ast/nodes/stmt/usestmt/UseOnlyStmt.java | 5 ++--- .../fortran/ast/nodes/stmt/usestmt/UseRenameStmt.java | 2 +- .../specs/fortran/ast/nodes/stmt/usestmt/UseStmt.java | 5 ++--- .../fortran/parser/omp/omp_basic.expected.f90 | 2 +- .../fortran/parser/omp/omp_clause.expected.f90 | 2 +- .../fortran/parser/omp/omp_do.expected.f90 | 2 +- .../fortran/parser/omp/omp_reduction.expected.f90 | 2 +- 28 files changed, 44 insertions(+), 62 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java index 4fd9a4d5..e4db64e1 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java @@ -145,11 +145,6 @@ protected String getCommentStarter() { return fixedForm() ? "C" : "!"; } - // Represents an optional space, omitted when generating fixed-form code - protected String optSpc() { - return !fixedForm() ? " " : ""; - } - public FortranNodeFactory getFactory() { return get(FortranNode.CONTEXT).get(FortranContext.FACTORY); } @@ -165,6 +160,7 @@ public FortranNode insert(Position position, FortranNode newNode) { return newNode; } + @Deprecated public FortranNode insert(Position position, String code) { // By default, transforms code into a literal statement. // This might need to evolve in the future, depending on where the code is inserted diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/BinaryOperator.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/BinaryOperator.java index 0754cd94..3fe7e372 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/BinaryOperator.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/BinaryOperator.java @@ -40,7 +40,7 @@ public BinaryOperatorKind getOp() { @Override public String getCode() { return getLhs().getCode() + - optSpc() + encase(get(OP).getString()) + optSpc() + + " " + encase(get(OP).getString()) + " " + getRhs().getCode(); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/Call.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/Call.java index db6fc60a..a53ae949 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/Call.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/Call.java @@ -23,10 +23,11 @@ public List getArgs() { @Override public String getCode() { - return getCallee().getCode() + "(" + - getArgs().stream() - .map(Argument::getCode) - .collect(Collectors.joining("," + optSpc())) + - ")"; + var calleeCode = getCallee().getCode(); + var argsCode = getArgs().stream() + .map(Argument::getCode) + .collect(Collectors.joining(", ", "(", ")")); + + return calleeCode + argsCode; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/ComplexLiteral.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/ComplexLiteral.java index cee7c2d6..860667c5 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/ComplexLiteral.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/ComplexLiteral.java @@ -22,6 +22,6 @@ public String getCode() { var real = getRealPart(); var imag = getImaginaryPart(); - return "(" + real.getCode() + "," + optSpc() + imag.getCode() + ")"; + return "(" + real.getCode() + ", " + imag.getCode() + ")"; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/loops/ConcurrentRange.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/loops/ConcurrentRange.java index 75cde34c..47d9575f 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/loops/ConcurrentRange.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/loops/ConcurrentRange.java @@ -15,8 +15,7 @@ public ConcurrentRange(DataStore data, Collection childre public String getCode() { StringBuilder code = new StringBuilder(); - code.append(getVar().getCode()) - .append(optSpc()).append("=").append(optSpc()) + code.append(getVar().getCode()).append(" = ") .append(getLower().getCode()).append(":") .append(getUpper().getCode()); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/loops/RangeLoopControl.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/loops/RangeLoopControl.java index 783f38d5..6393d699 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/loops/RangeLoopControl.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/loops/RangeLoopControl.java @@ -45,12 +45,11 @@ public void setStep(Expr newStep) { public String getCode() { StringBuilder code = new StringBuilder(); - code.append(getVar().getCode()) - .append(optSpc()).append("=").append(optSpc()) - .append(getLower().getCode()).append(",").append(optSpc()) + code.append(getVar().getCode()).append(" = ") + .append(getLower().getCode()).append(", ") .append(getUpper().getCode()); - getStep().ifPresent(step -> code.append(",").append(optSpc()).append(step.getCode())); + getStep().ifPresent(step -> code.append(", ").append(step.getCode())); return code.toString(); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/loops/WhileLoopControl.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/loops/WhileLoopControl.java index 23423a8f..53ba2b74 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/loops/WhileLoopControl.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/loops/WhileLoopControl.java @@ -21,7 +21,7 @@ public Optional getCond() { @Override public String getCode() { return getCond().map( - expr -> keyword(FortranKeyword.WHILE) + optSpc() + "(" + expr.getCode() + ")" + expr -> keyword(FortranKeyword.WHILE) + " (" + expr.getCode() + ")" ).orElse(""); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/SubroutineStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/SubroutineStmt.java index 7a5f99b7..3ac2a80a 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/SubroutineStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/SubroutineStmt.java @@ -26,7 +26,7 @@ public String getStmtCode() { var argCode = getParameters().stream() .map(Parameter::getCode) - .collect(Collectors.joining("," + optSpc(), "(", ")")); + .collect(Collectors.joining(", ", "(", ")")); return keyword(SUBROUTINE) + " " + subroutineName + argCode; } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AssignmentStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AssignmentStmt.java index dc48d00e..4a20c85e 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AssignmentStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AssignmentStmt.java @@ -29,7 +29,7 @@ public String getStmtCode() { var variable = getVariable(); code.append(variable.getCode()); - code.append(optSpc()).append("=").append(optSpc()); + code.append(" = "); var expression = getExpression(); code.append(expression.getCode()); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/GotoStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/GotoStmt.java index 80d5becd..e4e761ad 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/GotoStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/GotoStmt.java @@ -23,6 +23,6 @@ public int getGotoLabel() { public String getStmtCode() { var label = getGotoLabel(); - return keyword(FortranKeyword.GO) + optSpc() + keyword(FortranKeyword.TO) + " " + label; + return keyword(FortranKeyword.GO) + " " + keyword(FortranKeyword.TO) + " " + label; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java index 0675cdbd..fe808efd 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java @@ -44,14 +44,13 @@ public String getStmtCode() { code.append(type.getCode()); if (!attributes.isEmpty()) { var attributesCode = getAttributesCode(attributes); - code.append(",").append(optSpc()).append(attributesCode) - .append(optSpc()).append("::").append(optSpc()); + code.append(", ").append(attributesCode).append(" :: "); } else { code.append(!fixedForm() ? " :: " : " "); } var declsCode = decls.stream().map(EntityDecl::getCode) - .collect(Collectors.joining("," + optSpc())); + .collect(Collectors.joining(", ")); code.append(declsCode); return code.toString(); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/WriteStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/WriteStmt.java index 4216c36c..13b3390a 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/WriteStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/WriteStmt.java @@ -48,15 +48,15 @@ public String getStmtCode() { getControlSpecs().forEach(spec -> parts.add(spec.getCode())); - code.append(String.join("," + optSpc(), parts)); + code.append(String.join(", ", parts)); - code.append(")").append(optSpc()); + code.append(") "); code.append( getOutputItems() .stream() .map(Expr::getCode) - .collect(Collectors.joining("," + optSpc())) + .collect(Collectors.joining(", ")) ); return code.toString(); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmt.java index f0a6387a..ef2208de 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmt.java @@ -24,7 +24,7 @@ public String getStmtCode() { var dataSetsCode = dataSets.stream() .map(DataStmtSet::getCode) - .collect(Collectors.joining("," + optSpc())); + .collect(Collectors.joining(", ")); return keyword(FortranKeyword.DATA) + " " + dataSetsCode; } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmtSet.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmtSet.java index 76135144..f5c26f03 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmtSet.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmtSet.java @@ -28,11 +28,11 @@ public String getCode() { var objectsCode = objects.stream() .map(DataStmtObject::getCode) - .collect(Collectors.joining("," + optSpc())); + .collect(Collectors.joining(", ")); var valuesCode = values.stream() .map(DataStmtValue::getCode) - .collect(Collectors.joining("," + optSpc())); + .collect(Collectors.joining(", ")); - return objectsCode + optSpc() + "/" + optSpc() + valuesCode + optSpc() + "/"; + return objectsCode + " / " + valuesCode + " /"; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/dimstmt/DimensionStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/dimstmt/DimensionStmt.java index 92be62f1..41299323 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/dimstmt/DimensionStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/dimstmt/DimensionStmt.java @@ -28,7 +28,7 @@ public String getStmtCode() { var decls = getDimensionDecls(); var declsCode = decls.stream() .map(DimensionDecl::getCode) - .collect(Collectors.joining("," + optSpc())); + .collect(Collectors.joining(", ")); code.append(declsCode); return code.toString(); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseIfStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseIfStmt.java index cc87669b..bac12de0 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseIfStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseIfStmt.java @@ -26,12 +26,8 @@ public String getStmtCode() { var code = new StringBuilder(); - code.append(keyword(FortranKeyword.ELSE)) - .append(optSpc()) - .append(keyword(FortranKeyword.IF)) - .append(optSpc()).append("(") - .append(condition.getCode()) - .append(")").append(optSpc()) + code.append(keyword(FortranKeyword.ELSE)).append(" ").append(keyword(FortranKeyword.IF)) + .append(" (").append(condition.getCode()).append(") ") .append(keyword(FortranKeyword.THEN)); nameOpt.ifPresent(name -> code.append(" ").append(name)); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/EndIfStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/EndIfStmt.java index ae447630..7a647d5b 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/EndIfStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/EndIfStmt.java @@ -21,9 +21,7 @@ public String getStmtCode() { var code = new StringBuilder(); - code.append(keyword(FortranKeyword.END)) - .append(optSpc()) - .append(keyword(FortranKeyword.IF)); + code.append(keyword(FortranKeyword.END)).append(" ").append(keyword(FortranKeyword.IF)); if (!fixedForm()) { nameOpt.ifPresent(name -> code.append(" ").append(name)); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfStmt.java index 231850bb..5c9542b8 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfStmt.java @@ -26,8 +26,6 @@ public String getStmtCode() { var condition = getCondition(); var thenAction = getThenAction(); - return keyword(FortranKeyword.IF) + optSpc() + - "(" + condition.getCode() + ")" + optSpc() + - thenAction.getStmtCode(); + return keyword(FortranKeyword.IF) + " (" + condition.getCode() + ") " + thenAction.getStmtCode(); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfThenStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfThenStmt.java index d5f6b7b7..49baf6f8 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfThenStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfThenStmt.java @@ -27,12 +27,10 @@ public String getStmtCode() { var code = new StringBuilder(); - nameOpt.ifPresent(name -> code.append(name).append(optSpc()).append(":").append(optSpc())); + nameOpt.ifPresent(name -> code.append(name).append(" : ")); code.append(keyword(FortranKeyword.IF)) - .append(optSpc()).append("(") - .append(condition.getCode()) - .append(")").append(optSpc()) + .append(" (").append(condition.getCode()).append(") ") .append(keyword(FortranKeyword.THEN)); return code.toString(); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoStmt.java index 5af86e36..965c3024 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoStmt.java @@ -28,7 +28,7 @@ public String getStmtCode() { var code = new StringBuilder(); - doNameOpt.ifPresent(doName -> code.append(doName).append(optSpc()).append(":").append(optSpc())); + doNameOpt.ifPresent(doName -> code.append(doName).append(" : ")); code.append(keyword(FortranKeyword.DO)); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/NamesRename.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/NamesRename.java index dde5616d..7e3b8953 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/NamesRename.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/NamesRename.java @@ -28,6 +28,6 @@ public String getCode() { var localName = getLocalName(); var globalName = getGlobalName(); - return localName + optSpc() + "=>" + optSpc() + globalName; + return localName + " => " + globalName; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/UseOnlyStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/UseOnlyStmt.java index ae9982bc..e6fe0807 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/UseOnlyStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/UseOnlyStmt.java @@ -23,9 +23,8 @@ public String getStmtCode() { var onlyListSuffix = getOnlySpecs().stream() .map(Only::getCode) - .collect(Collectors.joining("," + optSpc())); + .collect(Collectors.joining(", ")); - return usePrefix + "," + optSpc() + keyword(FortranKeyword.ONLY) - + optSpc() + ":" + optSpc() + onlyListSuffix; + return usePrefix + ", " + keyword(FortranKeyword.ONLY) + " : " + onlyListSuffix; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/UseRenameStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/UseRenameStmt.java index 89354b7d..0dc934b2 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/UseRenameStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/UseRenameStmt.java @@ -21,7 +21,7 @@ public String getStmtCode() { var usePrefix = getUseStmtPrefix(); var renamesSuffix = getRenames().stream() - .map(rename -> "," + optSpc() + rename.getCode()) + .map(rename -> ", " + rename.getCode()) .collect(Collectors.joining()); return usePrefix + renamesSuffix; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/UseStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/UseStmt.java index 3fdf6651..1b5787f7 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/UseStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/usestmt/UseStmt.java @@ -37,10 +37,9 @@ protected String getUseStmtPrefix() { intrinsic.ifPresentOrElse(intrinsicVal -> { var intrinsicCode = keyword(intrinsicVal ? FortranKeyword.INTRINSIC : FortranKeyword.NON_INTRINSIC); - code.append(",").append(optSpc()).append(intrinsicCode) - .append(optSpc()).append("::").append(optSpc()); + code.append(", ").append(intrinsicCode).append(" :: "); }, () -> { - code.append(" "); + code.append(!fixedForm() ? " :: " : " "); }); code.append(name); diff --git a/FortranParser/resources-test/fortran/parser/omp/omp_basic.expected.f90 b/FortranParser/resources-test/fortran/parser/omp/omp_basic.expected.f90 index a0d2ca06..1ffe8799 100644 --- a/FortranParser/resources-test/fortran/parser/omp/omp_basic.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/omp/omp_basic.expected.f90 @@ -1,5 +1,5 @@ PROGRAM OPENMP_DEMO - USE omp_lib + USE :: omp_lib INTEGER :: total_sum diff --git a/FortranParser/resources-test/fortran/parser/omp/omp_clause.expected.f90 b/FortranParser/resources-test/fortran/parser/omp/omp_clause.expected.f90 index 97f53ebb..55d43c7d 100644 --- a/FortranParser/resources-test/fortran/parser/omp/omp_clause.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/omp/omp_clause.expected.f90 @@ -1,5 +1,5 @@ PROGRAM OPENMP_DEMO - USE omp_lib + USE :: omp_lib INTEGER :: i, thread_id, num_threads, total_sum INTEGER :: shared_counter = 0 diff --git a/FortranParser/resources-test/fortran/parser/omp/omp_do.expected.f90 b/FortranParser/resources-test/fortran/parser/omp/omp_do.expected.f90 index 2499bd91..72a24455 100644 --- a/FortranParser/resources-test/fortran/parser/omp/omp_do.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/omp/omp_do.expected.f90 @@ -1,5 +1,5 @@ PROGRAM OPENMP_DEMO - USE omp_lib + USE :: omp_lib INTEGER :: i, thread_id, num_threads, total_sum INTEGER :: shared_counter = 0 diff --git a/FortranParser/resources-test/fortran/parser/omp/omp_reduction.expected.f90 b/FortranParser/resources-test/fortran/parser/omp/omp_reduction.expected.f90 index db7a3799..0c5d8c78 100644 --- a/FortranParser/resources-test/fortran/parser/omp/omp_reduction.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/omp/omp_reduction.expected.f90 @@ -1,5 +1,5 @@ PROGRAM OPENMP_DEMO - USE omp_lib + USE :: omp_lib INTEGER :: i, thread_id, num_threads, total_sum INTEGER :: shared_counter = 0 From e382cef1ace4ff97ea951313bf093aa0d7c64154 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Jul 2026 23:08:36 +0100 Subject: [PATCH 105/260] Update expected code of tests with fixed-form code --- .../parser/fujitsu/0001/0001_0000.expected.f | 6 +-- .../parser/fujitsu/0001/0001_0007.expected.f | 22 ++++----- .../parser/fujitsu/0001/0001_0011.expected.f | 22 ++++----- .../parser/fujitsu/0001/0001_0032.expected.f | 46 +++++++++---------- 4 files changed, 48 insertions(+), 48 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f index 43a8e5e0..4795b657 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0000.expected.f @@ -1,13 +1,13 @@ - INTEGER a(1000) + INTEGERa(1000) a=0 a=a+1 - DO 10 i=1,1000 + DO10i=1,1000 IF(a(i)/=1)THEN WRITE(6,*)"NG" WRITE(6,*)"ELEMENT NUMBER = A(",i,")" - GOTO 20 + GOTO20 ENDIF 10 CONTINUE diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.expected.f b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.expected.f index 36460ab4..39682a43 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.expected.f +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0007.expected.f @@ -1,47 +1,47 @@ - INTEGER a(1000),b(1000),c(1000),code - DATA a/1000*0/,b/1000*0/,c/1000*0/ + INTEGERa(1000),b(1000),c(1000),code + DATAa/1000*0/,b/1000*0/,c/1000*0/ C code=0 - CALL sub1(a,b,c,1000,code) + CALLsub1(a,b,c,1000,code) C IF(code==0)WRITE(6,*)"OK" C STOP END C - SUBROUTINE sub1(a,b,c,n,code) - INTEGER a(n),b(n),c(n),code + SUBROUTINEsub1(a,b,c,n,code) + INTEGERa(n),b(n),c(n),code C a(1:n)=b(1:n)+1 b(1:n)=b(1:n)+1 c(1:n)=c(1:n)+1 C - DO 10 i=1,1000 + DO10i=1,1000 IF(a(i)/=1)THEN WRITE(6,*)"NG" WRITE(6,*)"ELEMENT NUMBER = A(",i,")" code=1 - GOTO 20 + GOTO20 ENDIF 10 CONTINUE C 20 CONTINUE - DO 30 i=1,1000 + DO30i=1,1000 IF(b(i)/=1)THEN WRITE(6,*)"NG" WRITE(6,*)"ELEMENT NUMBER = B(",i,")" code=1 - GOTO 40 + GOTO40 ENDIF 30 CONTINUE C 40 CONTINUE - DO 50 i=1,1000 + DO50i=1,1000 IF(c(i)/=1)THEN WRITE(6,*)"NG" WRITE(6,*)"ELEMENT NUMBER = C(",i,")" code=1 - GOTO 60 + GOTO60 ENDIF 50 CONTINUE C diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0011.expected.f b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0011.expected.f index 0582b512..bb804ebf 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0011.expected.f +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0011.expected.f @@ -1,8 +1,8 @@ - INTEGER a(1000),b(1000),c(1000),d(1000),e(1000),f(1000),code - DATA a/1000*1/,b/1000*2/,c/1000*3/,d/1000*4/,e/1000*5/,f/1000*6/ + INTEGERa(1000),b(1000),c(1000),d(1000),e(1000),f(1000),code + DATAa/1000*1/,b/1000*2/,c/1000*3/,d/1000*4/,e/1000*5/,f/1000*6/ C code=0 - CALL sub1(a+b,c+d,e+f,code) + CALLsub1(a+b,c+d,e+f,code) C IF(code==0)WRITE(6,*)"OK" C @@ -10,35 +10,35 @@ END C C - SUBROUTINE sub1(a,b,c,code) - INTEGER a(1000),b(1000),c(1000),code + SUBROUTINEsub1(a,b,c,code) + INTEGERa(1000),b(1000),c(1000),code C - DO 10 i=1,1000 + DO10i=1,1000 IF(a(i)/=3)THEN WRITE(6,*)"NG" WRITE(6,*)"ELEMENT NUMBER = A(",i,")" code=1 - GOTO 20 + GOTO20 ENDIF 10 CONTINUE C 20 CONTINUE - DO 30 i=1,1000 + DO30i=1,1000 IF(b(i)/=7)THEN WRITE(6,*)"NG" WRITE(6,*)"ELEMENT NUMBER = B(",i,")" code=1 - GOTO 40 + GOTO40 ENDIF 30 CONTINUE C 40 CONTINUE - DO 50 i=1,1000 + DO50i=1,1000 IF(c(i)/=11)THEN WRITE(6,*)"NG" WRITE(6,*)"ELEMENT NUMBER = C(",i,")" code=1 - GOTO 60 + GOTO60 ENDIF 50 CONTINUE C diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0032.expected.f b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0032.expected.f index 87f35e82..6f29cc5b 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0032.expected.f +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0001/0001_0032.expected.f @@ -1,29 +1,29 @@ - INTEGER*4 error,i - COMPLEX*8 s_a,s_b,v_a,v_b,s_dvt - DIMENSION s_a(10),s_b(10),v_a(10),v_b(10),s_dvt(10) - DATA s_a,s_b/10*(1.0,2.0),10*(2.0,1.0)/ - DATA v_a,v_b/10*(1.0,2.0),10*(2.0,1.0)/ - DATA error/0/ + INTEGER*4error,i + COMPLEX*8s_a,s_b,v_a,v_b,s_dvt + DIMENSIONs_a(10),s_b(10),v_a(10),v_b(10),s_dvt(10) + DATAs_a,s_b/10*(1.0,2.0),10*(2.0,1.0)/ + DATAv_a,v_b/10*(1.0,2.0),10*(2.0,1.0)/ + DATAerror/0/ C - DO 10 i=1,5,1 + DO10i=1,5,1 s_dvt(i)=s_a(i)+s_b(i) 10 CONTINUE - DO 20 i=1,5,1 + DO20i=1,5,1 s_a(i+1)=s_dvt(i) 20 CONTINUE - DO 30 i=1,5,1 + DO30i=1,5,1 s_dvt(i)=s_b(i)+s_a(i) 30 CONTINUE - DO 40 i=1,5,1 + DO40i=1,5,1 s_b(i+1)=s_dvt(i) 40 CONTINUE C v_a(2:6)=v_a(1:5)+v_b(1:5) v_b(2:6)=v_b(1:5)+v_a(1:5) - CALL sub1(error,v_a,v_b,v_a+v_b) - CALL sub2(error,v_a,v_b,v_a-v_b) + CALLsub1(error,v_a,v_b,v_a+v_b) + CALLsub2(error,v_a,v_b,v_a-v_b) C - DO 50 i=1,10,1 + DO50i=1,10,1 IF(v_a(i)/=s_a(i))THEN error=error+1 ENDIF @@ -45,12 +45,12 @@ STOP END C - SUBROUTINE sub1(error,a,b,c) - INTEGER*4 error - COMPLEX*8 a,b,c - DIMENSION a(10),b(10),c(10) + SUBROUTINEsub1(error,a,b,c) + INTEGER*4error + COMPLEX*8a,b,c + DIMENSIONa(10),b(10),c(10) C - DO 60 i=1,10,1 + DO60i=1,10,1 IF(c(i)/=a(i)+b(i))THEN error=error+1 ENDIF @@ -59,12 +59,12 @@ SUBROUTINE sub1(error,a,b,c) RETURN END C - SUBROUTINE sub2(error,a,b,c) - INTEGER*4 error - COMPLEX*8 a,b,c - DIMENSION a(10),b(10),c(10) + SUBROUTINEsub2(error,a,b,c) + INTEGER*4error + COMPLEX*8a,b,c + DIMENSIONa(10),b(10),c(10) C - DO 70 i=1,10,1 + DO70i=1,10,1 IF(c(i)/=a(i)-b(i))THEN error=error+1 ENDIF From ab505d766c5ab14096f04552dbcee5faf505fd79 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Jul 2026 23:29:30 +0100 Subject: [PATCH 106/260] Add continuation line test --- .../parser/continuation_line.expected.f | 4 + .../fortran/parser/continuation_line.f | 4 + .../fortran/parser/continuation_line.json | 765 ++++++++++++++++++ .../fortran/parser/FortranParserTest.java | 12 + 4 files changed, 785 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/continuation_line.expected.f create mode 100644 FortranParser/resources-test/fortran/parser/continuation_line.f create mode 100644 FortranParser/resources-test/fortran/parser/continuation_line.json diff --git a/FortranParser/resources-test/fortran/parser/continuation_line.expected.f b/FortranParser/resources-test/fortran/parser/continuation_line.expected.f new file mode 100644 index 00000000..a5f07785 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/continuation_line.expected.f @@ -0,0 +1,4 @@ + PROGRAMCONTINUATION_LINE + INTEGERa(1000),b(100),c(100),d(100),e(100),f(100),g(100),code,err + +or + ENDPROGRAMCONTINUATION_LINE \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/continuation_line.f b/FortranParser/resources-test/fortran/parser/continuation_line.f new file mode 100644 index 00000000..dfa89b0d --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/continuation_line.f @@ -0,0 +1,4 @@ + program continuation_line + integer a(1000),b(100),c(100),d(100),e(100),f(100),g(100),code + + ,error + end program continuation_line \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/continuation_line.json b/FortranParser/resources-test/fortran/parser/continuation_line.json new file mode 100644 index 00000000..83dbf196 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/continuation_line.json @@ -0,0 +1,765 @@ +{ + "fileExtension": "f", + "nodes": [ + { + "id": "0x561c6f709f00-Program", + "ProgramUnit": [ + "0x561c6f74c0c0-ProgramUnit" + ] + }, + { + "id": "0x561c6f74c0c0-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x561c6f737cc0-MainProgram" + }, + { + "id": "0x561c6f737cc0-MainProgram", + "Statement": "0x561c6f737e08-Statement", + "SpecificationPart": "0x561c6f737d60-SpecificationPart", + "ExecutionPart": "0x561c6f737d48-ExecutionPart", + "Statement": "0x561c6f737cc0-Statement" + }, + { + "id": "0x561c6f737e08-Statement", + "statement": "0x561c6f737e18-ProgramStmt", + "source": "programCONTINUATION_LINE" + }, + { + "id": "0x561c6f737e18-ProgramStmt", + "Name": "0x561c6f737e18-Name" + }, + { + "id": "0x561c6f737e18-Name", + "source": "CONTINUATION_LINE" + }, + { + "id": "0x561c6f737d60-SpecificationPart", + "ImplicitPart": "0x561c6f737d78-ImplicitPart", + "DeclarationConstruct": [ + "0x561c6f74aca0-DeclarationConstruct" + ] + }, + { + "id": "0x561c6f737d78-ImplicitPart" + }, + { + "id": "0x561c6f74aca0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x561c6f74aca0-SpecificationConstruct" + }, + { + "id": "0x561c6f74aca0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x561c6f74aca0-Statement" + }, + { + "id": "0x561c6f74aca0-Statement", + "statement": "0x561c6f748f50-TypeDeclarationStmt", + "source": "integera(1000),b(100),c(100),d(100),e(100),f(100),g(100),code,error" + }, + { + "id": "0x561c6f748f50-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x561c6f748f80-DeclarationTypeSpec", + "EntityDecl": [ + "0x561c6f74aa70-EntityDecl", + "0x561c6f749450-EntityDecl", + "0x561c6f7497e0-EntityDecl", + "0x561c6f749bd0-EntityDecl", + "0x561c6f749fc0-EntityDecl", + "0x561c6f74a3b0-EntityDecl", + "0x561c6f74a7a0-EntityDecl", + "0x561c6f74a890-EntityDecl", + "0x561c6f74a980-EntityDecl" + ] + }, + { + "id": "0x561c6f748f80-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x561c6f748f80-IntrinsicTypeSpec" + }, + { + "id": "0x561c6f748f80-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x561c6f748f80-IntegerTypeSpec" + }, + { + "id": "0x561c6f748f80-IntegerTypeSpec" + }, + { + "id": "0x561c6f74aa70-EntityDecl", + "Name": "0x561c6f74ab28-Name", + "ArraySpec": "0x561c6f74aaf0-ArraySpec" + }, + { + "id": "0x561c6f74ab28-Name", + "source": "a" + }, + { + "id": "0x561c6f74aaf0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x561c6f73ee30-ExplicitShapeSpec" + ] + }, + { + "id": "0x561c6f73ee30-ExplicitShapeSpec", + "upper_bound": "0x561c6f73ee30-SpecificationExpr" + }, + { + "id": "0x561c6f73ee30-SpecificationExpr", + "Expr": "0x561c6f7490c0-Expr" + }, + { + "id": "0x561c6f7490c0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561c6f7490e0-LiteralConstant" + }, + { + "id": "0x561c6f7490e0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561c6f7490e0-IntLiteralConstant" + }, + { + "id": "0x561c6f7490e0-IntLiteralConstant", + "CharBlock": "1000" + }, + { + "id": "0x561c6f749450-EntityDecl", + "Name": "0x561c6f749508-Name", + "ArraySpec": "0x561c6f7494d0-ArraySpec" + }, + { + "id": "0x561c6f749508-Name", + "source": "b" + }, + { + "id": "0x561c6f7494d0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x561c6f73ee60-ExplicitShapeSpec" + ] + }, + { + "id": "0x561c6f73ee60-ExplicitShapeSpec", + "upper_bound": "0x561c6f73ee60-SpecificationExpr" + }, + { + "id": "0x561c6f73ee60-SpecificationExpr", + "Expr": "0x561c6f749360-Expr" + }, + { + "id": "0x561c6f749360-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561c6f749380-LiteralConstant" + }, + { + "id": "0x561c6f749380-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561c6f749380-IntLiteralConstant" + }, + { + "id": "0x561c6f749380-IntLiteralConstant", + "CharBlock": "100" + }, + { + "id": "0x561c6f7497e0-EntityDecl", + "Name": "0x561c6f749898-Name", + "ArraySpec": "0x561c6f749860-ArraySpec" + }, + { + "id": "0x561c6f749898-Name", + "source": "c" + }, + { + "id": "0x561c6f749860-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x561c6f73ee90-ExplicitShapeSpec" + ] + }, + { + "id": "0x561c6f73ee90-ExplicitShapeSpec", + "upper_bound": "0x561c6f73ee90-SpecificationExpr" + }, + { + "id": "0x561c6f73ee90-SpecificationExpr", + "Expr": "0x561c6f7496f0-Expr" + }, + { + "id": "0x561c6f7496f0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561c6f749710-LiteralConstant" + }, + { + "id": "0x561c6f749710-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561c6f749710-IntLiteralConstant" + }, + { + "id": "0x561c6f749710-IntLiteralConstant", + "CharBlock": "100" + }, + { + "id": "0x561c6f749bd0-EntityDecl", + "Name": "0x561c6f749c88-Name", + "ArraySpec": "0x561c6f749c50-ArraySpec" + }, + { + "id": "0x561c6f749c88-Name", + "source": "d" + }, + { + "id": "0x561c6f749c50-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x561c6f73eee0-ExplicitShapeSpec" + ] + }, + { + "id": "0x561c6f73eee0-ExplicitShapeSpec", + "upper_bound": "0x561c6f73eee0-SpecificationExpr" + }, + { + "id": "0x561c6f73eee0-SpecificationExpr", + "Expr": "0x561c6f749ae0-Expr" + }, + { + "id": "0x561c6f749ae0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561c6f749b00-LiteralConstant" + }, + { + "id": "0x561c6f749b00-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561c6f749b00-IntLiteralConstant" + }, + { + "id": "0x561c6f749b00-IntLiteralConstant", + "CharBlock": "100" + }, + { + "id": "0x561c6f749fc0-EntityDecl", + "Name": "0x561c6f74a078-Name", + "ArraySpec": "0x561c6f74a040-ArraySpec" + }, + { + "id": "0x561c6f74a078-Name", + "source": "e" + }, + { + "id": "0x561c6f74a040-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x561c6f73eff0-ExplicitShapeSpec" + ] + }, + { + "id": "0x561c6f73eff0-ExplicitShapeSpec", + "upper_bound": "0x561c6f73eff0-SpecificationExpr" + }, + { + "id": "0x561c6f73eff0-SpecificationExpr", + "Expr": "0x561c6f749ed0-Expr" + }, + { + "id": "0x561c6f749ed0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561c6f749ef0-LiteralConstant" + }, + { + "id": "0x561c6f749ef0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561c6f749ef0-IntLiteralConstant" + }, + { + "id": "0x561c6f749ef0-IntLiteralConstant", + "CharBlock": "100" + }, + { + "id": "0x561c6f74a3b0-EntityDecl", + "Name": "0x561c6f74a468-Name", + "ArraySpec": "0x561c6f74a430-ArraySpec" + }, + { + "id": "0x561c6f74a468-Name", + "source": "f" + }, + { + "id": "0x561c6f74a430-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x561c6f73f020-ExplicitShapeSpec" + ] + }, + { + "id": "0x561c6f73f020-ExplicitShapeSpec", + "upper_bound": "0x561c6f73f020-SpecificationExpr" + }, + { + "id": "0x561c6f73f020-SpecificationExpr", + "Expr": "0x561c6f74a2c0-Expr" + }, + { + "id": "0x561c6f74a2c0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561c6f74a2e0-LiteralConstant" + }, + { + "id": "0x561c6f74a2e0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561c6f74a2e0-IntLiteralConstant" + }, + { + "id": "0x561c6f74a2e0-IntLiteralConstant", + "CharBlock": "100" + }, + { + "id": "0x561c6f74a7a0-EntityDecl", + "Name": "0x561c6f74a858-Name", + "ArraySpec": "0x561c6f74a820-ArraySpec" + }, + { + "id": "0x561c6f74a858-Name", + "source": "g" + }, + { + "id": "0x561c6f74a820-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x561c6f73f070-ExplicitShapeSpec" + ] + }, + { + "id": "0x561c6f73f070-ExplicitShapeSpec", + "upper_bound": "0x561c6f73f070-SpecificationExpr" + }, + { + "id": "0x561c6f73f070-SpecificationExpr", + "Expr": "0x561c6f74a6b0-Expr" + }, + { + "id": "0x561c6f74a6b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561c6f74a6d0-LiteralConstant" + }, + { + "id": "0x561c6f74a6d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561c6f74a6d0-IntLiteralConstant" + }, + { + "id": "0x561c6f74a6d0-IntLiteralConstant", + "CharBlock": "100" + }, + { + "id": "0x561c6f74a890-EntityDecl", + "Name": "0x561c6f74a948-Name" + }, + { + "id": "0x561c6f74a948-Name", + "source": "code" + }, + { + "id": "0x561c6f74a980-EntityDecl", + "Name": "0x561c6f74aa38-Name" + }, + { + "id": "0x561c6f74aa38-Name", + "source": "error" + }, + { + "id": "0x561c6f737d48-ExecutionPart" + }, + { + "id": "0x561c6f737d48-list" + }, + { + "id": "0x561c6f737cc0-Statement", + "statement": "0x561c6f737cd0-EndProgramStmt", + "source": "endprogramCONTINUATION_LINE" + }, + { + "id": "0x561c6f737cd0-EndProgramStmt", + "Name": "0x561c6f737cd0-Name" + }, + { + "id": "0x561c6f737cd0-Name", + "source": "CONTINUATION_LINE" + } + ], + "comments": [], + "enums": { + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "Fortran::common::ImportKind": [ + "Default", + "Only", + "None", + "All" + ], + "Fortran::common::OmpDependenceKind": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::common::OmpMemoryOrderType": [ + "Acq_Rel", + "Acquire", + "Relaxed", + "Release", + "Seq_Cst" + ], + "Fortran::common::OpenACCDeviceType": [ + "Star", + "Default", + "Nvidia", + "Radeon", + "Host", + "Multicore", + "None" + ], + "Fortran::parser::AccDataModifier::Modifier": [ + "ReadOnly", + "Zero" + ], + "Fortran::parser::AccessSpec::Kind": [ + "Public", + "Private" + ], + "Fortran::parser::BindEntity::Kind": [ + "Object", + "Common" + ], + "Fortran::parser::CompilerDirective::VectorLength::Kind": [ + "Auto", + "Fixed", + "Scalable" + ], + "Fortran::parser::ConnectSpec::CharExpr::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Encoding", + "Form", + "Pad", + "Position", + "Round", + "Sign", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::DefinedOperator::IntrinsicOperator": [ + "Power", + "Multiply", + "Divide", + "Add", + "Subtract", + "Concat", + "LT", + "LE", + "EQ", + "NE", + "GE", + "GT", + "NOT", + "AND", + "OR", + "EQV", + "NEQV" + ], + "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec": [ + "External", + "Type" + ], + "Fortran::parser::InquireSpec::CharVar::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Direct", + "Encoding", + "Form", + "Formatted", + "Iomsg", + "Name", + "Pad", + "Position", + "Read", + "Readwrite", + "Round", + "Sequential", + "Sign", + "Stream", + "Status", + "Unformatted", + "Write", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::InquireSpec::IntVar::Kind": [ + "Iostat", + "Nextrec", + "Number", + "Pos", + "Recl", + "Size" + ], + "Fortran::parser::InquireSpec::LogVar::Kind": [ + "Exist", + "Named", + "Opened", + "Pending" + ], + "Fortran::parser::IntentSpec::Intent": [ + "In", + "Out", + "InOut" + ], + "Fortran::parser::IoControlSpec::CharExpr::Kind": [ + "Advance", + "Blank", + "Decimal", + "Delim", + "Pad", + "Round", + "Sign" + ], + "Fortran::parser::ReductionOperator::Operator": [ + "Plus", + "Multiply", + "Max", + "Min", + "Iand", + "Ior", + "Ieor", + "And", + "Or", + "Eqv", + "Neqv" + ], + "Fortran::parser::OmpAccessGroup::Value": [ + "Cgroup" + ], + "Fortran::parser::OmpAdjustArgsClause::OmpAdjustOp::Value": [ + "Nothing", + "Need_Device_Ptr" + ], + "Fortran::parser::OmpAlwaysModifier::Value": [ + "Always" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpAttachModifier::Value": [ + "Always", + "Never", + "Auto" + ], + "Fortran::parser::OmpAutomapModifier::Value": [ + "Automap" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpCloseModifier::Value": [ + "Close" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default", + "Present" + ], + "Fortran::parser::OmpDeleteModifier::Value": [ + "Delete" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpDirectiveSpecification::Flag": [ + "DeprecatedSyntax", + "CrossesLabelDo" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpInteropType::Value": [ + "Target", + "Targetsync" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "Storage", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpObject::Invalid::Kind": [ + "BlankCommonBlock" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpPresentModifier::Value": [ + "Present" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpRefModifier::Value": [ + "Ref_Ptee", + "Ref_Ptr", + "Ref_Ptr_Ptee" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpSelfModifier::Value": [ + "Self" + ], + "Fortran::parser::OmpSeverityClause::SevLevel": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpThreadsetClause::ThreadsetPolicy": [ + "Omp_Pool", + "Omp_Team" + ], + "Fortran::parser::OmpTraitSelectorName::Value": [ + "Arch", + "Atomic_Default_Mem_Order", + "Condition", + "Device_Num", + "Extension", + "Isa", + "Kind", + "Requires", + "Simd", + "Uid", + "Vendor" + ], + "Fortran::parser::OmpTraitSetSelectorName::Value": [ + "Construct", + "Device", + "Implementation", + "Target_Device", + "User" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpxHoldModifier::Value": [ + "Ompx_Hold" + ], + "Fortran::parser::ProcedureStmt::Kind": [ + "ModuleProcedure", + "Procedure" + ], + "Fortran::parser::SavedEntity::Kind": [ + "Entity", + "Common" + ], + "Fortran::parser::StopStmt::Kind": [ + "Stop", + "ErrorStop" + ], + "Fortran::parser::UseStmt::ModuleNature": [ + "Intrinsic", + "Non_Intrinsic" + ] + } +} diff --git a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java index b838200c..71c4dd2e 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -584,6 +584,18 @@ void testSubstringNative() { } } + @Test + void testContinuationLine() { + testJson("continuation_line.json"); + } + + @Test + void testContinuationLineNative() { + if (SpecsPlatforms.isLinux()) { + testNative("continuation_line.f"); + } + } + @Test void testFujitsu0000_0000() { testJson("fujitsu/0000/0000_0000.json"); From 22c4ce43cad394127b8205387ef1b95266452784 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Jul 2026 23:30:52 +0100 Subject: [PATCH 107/260] Add continuation line addition for fixed-form Fortran code --- .../fortran/ast/nodes/program/FortranFile.java | 15 +++++++++++++-- .../fortran/parser/continuation_line.expected.f | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java index fb8d7792..a97481b0 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java @@ -19,6 +19,7 @@ * The root node of a Fortran application. Contains one or more ProgramUnit children. */ public class FortranFile extends FortranNode { + public static final int COLUMN_LIMIT = 72; /** * The name of this file. @@ -78,7 +79,7 @@ public String getCode() { } /** - * Compacts the code by removing as many spaces as possible in fixed-form Fortran code. + * Compacts the code by removing as many spaces as possible dividing lines when needed. * This is useful for making sure the code fits within the 72-character limit of fixed-form Fortran. * * @param code The code to compact. @@ -91,7 +92,9 @@ private String compactCode(String code) { } /** - * Compacts a line of code by removing spaces after the first 6 characters, except for spaces inside string literals. + * Compacts a line of code. + * It removes spaces after the first 6 characters, except for spaces inside string literals, and divides lines + * when they reach the 72th column to prevent overflow. * * @param line The line of code to compact. * @return The compacted line of code. @@ -105,6 +108,7 @@ private String compactLine(String line) { var stringDelimiter = getContext().getFortranOptions().get(FortranAstOptions.SINGLE_QUOTE_STRINGS) ? '\'' : '"'; var inString = false; + var lineSize = 6; for (var i = 6; i < line.length(); i++) { var c = line.charAt(i); @@ -114,7 +118,14 @@ private String compactLine(String line) { if (!inString && c == ' ') { continue; } + + if (lineSize == COLUMN_LIMIT - 1) { + newLine.append("\n +"); + lineSize = 6; + } + newLine.append(c); + lineSize++; } return newLine.toString(); diff --git a/FortranParser/resources-test/fortran/parser/continuation_line.expected.f b/FortranParser/resources-test/fortran/parser/continuation_line.expected.f index a5f07785..2c047efc 100644 --- a/FortranParser/resources-test/fortran/parser/continuation_line.expected.f +++ b/FortranParser/resources-test/fortran/parser/continuation_line.expected.f @@ -1,4 +1,4 @@ PROGRAMCONTINUATION_LINE INTEGERa(1000),b(100),c(100),d(100),e(100),f(100),g(100),code,err +or - ENDPROGRAMCONTINUATION_LINE \ No newline at end of file + END \ No newline at end of file From 3ec09369509c5e67440e544961a0f2434dd29dee Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Jul 2026 23:47:49 +0100 Subject: [PATCH 108/260] Fix processing of allocate statements with no options and code generation --- .../fortran/ast/nodes/stmt/AllocateStmt.java | 22 +++++-------------- .../parser/processors/StmtProcessors.java | 9 ++++++-- 2 files changed, 13 insertions(+), 18 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AllocateStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AllocateStmt.java index ed424546..54e91b4c 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AllocateStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AllocateStmt.java @@ -26,24 +26,14 @@ public List getOptions() { @Override public String getStmtCode() { - StringBuilder code = new StringBuilder(); - - code.append(keyword(FortranKeyword.ALLOCATE)).append("("); - - List components = new ArrayList<>(); - - getAllocations().stream() + var allocationsCode = getAllocations().stream() .map(FortranNode::getCode) - .forEach(components::add); - - getOptions().stream() - .map(FortranNode::getCode) - .forEach(components::add); - - code.append(String.join(", ", components)); + .collect(Collectors.joining(", ")); - code.append(")"); + var optionsCode = getOptions().stream() + .map(option -> ", " + option.getCode()) + .collect(Collectors.joining()); - return code.toString(); + return keyword(FortranKeyword.ALLOCATE) + "(" + allocationsCode + optionsCode + ")"; } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 2ec9036d..1a0154cd 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -466,8 +466,13 @@ public void containsStmt(ContainsStmt containsStmt) { public void allocateStmt(AllocateStmt allocateStmt) { actionStmt(allocateStmt); - allocateStmt.addChildren(getChildren(allocateStmt, FlangName.ALLOCATION)); - allocateStmt.addChildren(getChildren(allocateStmt, FlangName.ALLOC_OPT)); + var allocations = getChildren(allocateStmt, FlangName.ALLOCATION); + allocateStmt.addChildren(allocations); + + if (attributes(allocateStmt).has(FlangName.ALLOC_OPT)) { + var options = getChildren(allocateStmt, FlangName.ALLOC_OPT); + allocateStmt.addChildren(options); + } } public void deallocateStmt(DeallocateStmt deallocateStmt) { From a21f70038dc462942c67ec0a9dccc862510ca1c4 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 24 Jul 2026 09:58:14 +0100 Subject: [PATCH 109/260] Extend character selector --- .../fe/specs/fortran/ast/FortranKeyword.java | 2 ++ .../typeparam/DeferredTypeParamValue.java | 17 ++++++++++ .../typeparam/ExprTypeParamValue.java} | 10 +++--- .../decl/typeparam/StarTypeParamValue.java | 17 ++++++++++ .../nodes/decl/typeparam/TypeParamValue.java | 12 +++++++ .../fortran/ast/nodes/type/CharSelector.java | 12 ------- .../fortran/ast/nodes/type/CharacterType.java | 9 +++-- .../type/lenselector/ConstLenSelector.java | 25 ++++++++++++++ .../lenselector/KindParamLenSelector.java | 34 +++++++++++++++++++ .../nodes/type/lenselector/LenSelector.java | 12 +++++++ .../type/lenselector/ParamLenSelector.java | 25 ++++++++++++++ .../fe/specs/fortran/parser/FlangToClass.java | 3 +- .../fortran/parser/processors/Nodes.java | 3 +- .../parser/processors/TypeProcessors.java | 3 +- 14 files changed, 161 insertions(+), 23 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/typeparam/DeferredTypeParamValue.java rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/{type/LengthSelector.java => decl/typeparam/ExprTypeParamValue.java} (52%) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/typeparam/StarTypeParamValue.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/typeparam/TypeParamValue.java delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/CharSelector.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/ConstLenSelector.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/KindParamLenSelector.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/LenSelector.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/ParamLenSelector.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java index d7519cee..0d25ac76 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -51,6 +51,8 @@ public enum FortranKeyword { COMMON, INTENT, STAT, + LEN, + KIND, OMP; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/typeparam/DeferredTypeParamValue.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/typeparam/DeferredTypeParamValue.java new file mode 100644 index 00000000..06089db0 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/typeparam/DeferredTypeParamValue.java @@ -0,0 +1,17 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl.typeparam; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class DeferredTypeParamValue extends TypeParamValue { + public DeferredTypeParamValue(DataStore data, Collection children) { + super(data, children); + } + + @Override + public String getCode() { + return ":"; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/LengthSelector.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/typeparam/ExprTypeParamValue.java similarity index 52% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/LengthSelector.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/typeparam/ExprTypeParamValue.java index 05f9ae64..1e358723 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/LengthSelector.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/typeparam/ExprTypeParamValue.java @@ -1,4 +1,4 @@ -package pt.up.fe.specs.fortran.ast.nodes.type; +package pt.up.fe.specs.fortran.ast.nodes.decl.typeparam; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; @@ -6,17 +6,17 @@ import java.util.Collection; -public class LengthSelector extends CharSelector { - public LengthSelector(DataStore data, Collection children) { +public class ExprTypeParamValue extends TypeParamValue { + public ExprTypeParamValue(DataStore data, Collection children) { super(data, children); } public Expr getExpr() { - return getChild(Expr.class); + return getChild(Expr.class, 0); } @Override public String getCode() { - return "(LEN = " + getExpr().getCode() + ")"; + return getExpr().getCode(); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/typeparam/StarTypeParamValue.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/typeparam/StarTypeParamValue.java new file mode 100644 index 00000000..857b7b68 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/typeparam/StarTypeParamValue.java @@ -0,0 +1,17 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl.typeparam; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class StarTypeParamValue extends TypeParamValue { + public StarTypeParamValue(DataStore data, Collection children) { + super(data, children); + } + + @Override + public String getCode() { + return "*"; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/typeparam/TypeParamValue.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/typeparam/TypeParamValue.java new file mode 100644 index 00000000..cbc83200 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/typeparam/TypeParamValue.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl.typeparam; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class TypeParamValue extends FortranNode { + public TypeParamValue(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/CharSelector.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/CharSelector.java deleted file mode 100644 index 975df102..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/CharSelector.java +++ /dev/null @@ -1,12 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.type; - -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; - -import java.util.Collection; - -public class CharSelector extends FortranNode { - public CharSelector(DataStore data, Collection children) { - super(data, children); - } -} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/CharacterType.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/CharacterType.java index 10cffbfb..a7523b55 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/CharacterType.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/CharacterType.java @@ -3,6 +3,7 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.LenSelector; import java.util.Collection; import java.util.Optional; @@ -12,12 +13,14 @@ public CharacterType(DataStore data, Collection children) super(data, children); } - public Optional getSelector() { - return getChildTry(CharSelector.class); + public Optional getSelector() { + return getChildTry(LenSelector.class); } @Override public String getCode() { - return keyword(FortranKeyword.CHARACTER) + getSelector().map(CharSelector::getCode).orElse(""); + var selectorCode = getSelector().map(LenSelector::getCode).orElse(""); + + return keyword(FortranKeyword.CHARACTER) + selectorCode; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/ConstLenSelector.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/ConstLenSelector.java new file mode 100644 index 00000000..8abb643c --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/ConstLenSelector.java @@ -0,0 +1,25 @@ +package pt.up.fe.specs.fortran.ast.nodes.type.lenselector; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class ConstLenSelector extends LenSelector { + public static final DataKey LENGTH = KeyFactory.longInt("length"); + + public ConstLenSelector(DataStore data, Collection children) { + super(data, children); + } + + public long getLength() { + return get(LENGTH); + } + + @Override + public String getCode() { + return "*" + getLength(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/KindParamLenSelector.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/KindParamLenSelector.java new file mode 100644 index 00000000..26590ac5 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/KindParamLenSelector.java @@ -0,0 +1,34 @@ +package pt.up.fe.specs.fortran.ast.nodes.type.lenselector; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.TypeParamValue; +import pt.up.fe.specs.fortran.ast.nodes.expr.IntLiteral; + +import java.util.Collection; +import java.util.Optional; + +public class KindParamLenSelector extends LenSelector { + public KindParamLenSelector(DataStore data, Collection children) { + super(data, children); + } + + public IntLiteral getKind() { + return getChild(IntLiteral.class, 0); + } + + public Optional getLength() { + return getChildTry(TypeParamValue.class, 1); + } + + @Override + public String getCode() { + var kindCode = keyword(FortranKeyword.KIND) + " = " + getKind().getCode(); + var lenCode = getLength() + .map(len -> ", LEN = " + len.getCode()) + .orElseGet(() -> ""); + + return "(" + kindCode + lenCode + ")"; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/LenSelector.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/LenSelector.java new file mode 100644 index 00000000..51262b7e --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/LenSelector.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.type.lenselector; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class LenSelector extends FortranNode { + public LenSelector(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/ParamLenSelector.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/ParamLenSelector.java new file mode 100644 index 00000000..8a1f6516 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/ParamLenSelector.java @@ -0,0 +1,25 @@ +package pt.up.fe.specs.fortran.ast.nodes.type.lenselector; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.TypeParamValue; + +import java.util.Collection; + +public class ParamLenSelector extends LenSelector { + public ParamLenSelector(DataStore data, Collection children) { + super(data, children); + } + + public TypeParamValue getLength() { + return getChild(TypeParamValue.class, 0); + } + + @Override + public String getCode() { + var lenCode = keyword(FortranKeyword.LEN) + " = " + getLength().getCode(); + + return "(" + lenCode + ")"; + } +} diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index edc50c6b..55df7295 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -34,6 +34,7 @@ import pt.up.fe.specs.fortran.ast.nodes.type.attributes.AllocatableKeyword; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.IntentSpec; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.ParameterKeyword; +import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ParamLenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.shapes.AllocateShapeSpecification; import pt.up.fe.specs.fortran.ast.nodes.type.shapes.DeferredShapeSpecList; import pt.up.fe.specs.fortran.ast.nodes.type.shapes.ExplicitShapeSpecification; @@ -172,7 +173,7 @@ public class FlangToClass { NAME_TO_CLASS.put(FlangName.CHARACTER, CharacterType.class); NAME_TO_CLASS.put(FlangName.REAL, RealType.class); NAME_TO_CLASS.put(FlangName.COMPLEX, ComplexType.class); - NAME_TO_CLASS.put(FlangName.LENGTH_SELECTOR, LengthSelector.class); + NAME_TO_CLASS.put(FlangName.LENGTH_SELECTOR, ParamLenSelector.class); /// LOOP NAME_TO_CLASS.put(FlangName.LOOP_BOUNDS, RangeLoopControl.class); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 7c5af5c1..d4c0d111 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -33,6 +33,7 @@ import pt.up.fe.specs.fortran.ast.nodes.type.*; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.IntentSpec; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.KeywordAttributeSpecifier; +import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ParamLenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.shapes.AllocateShapeSpecification; import pt.up.fe.specs.fortran.ast.nodes.type.shapes.DeferredShapeSpecList; import pt.up.fe.specs.fortran.ast.nodes.type.shapes.ExplicitShapeSpecification; @@ -156,7 +157,7 @@ public Nodes(FortranJsonResult data) { processors.put(DoublePrecisionType.class, t::doublePrecisionType); processors.put(CharacterType.class, t::characterType); processors.put(RealType.class, t::realType); - processors.put(LengthSelector.class, t::lengthSelector); + processors.put(ParamLenSelector.class, t::lengthSelector); processors.put(ComplexType.class, t::complexType); var a = new AttributesProcessor(data); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java index 599d279d..77a18b23 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java @@ -2,6 +2,7 @@ import pt.up.fe.specs.fortran.ast.nodes.decl.KindSelector; import pt.up.fe.specs.fortran.ast.nodes.type.*; +import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ParamLenSelector; import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; @@ -67,7 +68,7 @@ public void realType(RealType realType) { } } - public void lengthSelector(LengthSelector lengthSelector) { + public void lengthSelector(ParamLenSelector lengthSelector) { var childId = attributes(lengthSelector).getVariantString(); lengthSelector.addChild(getChild(attributes().get(childId).getVariantString())); } From ceb90d22063ac97a8610dac92ea11a990c64a675 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 24 Jul 2026 10:20:56 +0100 Subject: [PATCH 110/260] Add new nodes to class map --- .../up/fe/specs/fortran/parser/FlangName.java | 3 ++ .../fe/specs/fortran/parser/FlangToClass.java | 29 ++++++++++++++++++- .../parser/processors/TypeProcessors.java | 2 -- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 675517c2..a4347284 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -30,6 +30,7 @@ public enum FlangName implements StringProvider { DATA_STMT_VALUE, DATA_STMT_REPEAT, DATA_STMT_CONSTANT, + TYPE_PARAM_VALUE, /// STMTs STATEMENT, @@ -158,7 +159,9 @@ public enum FlangName implements StringProvider { CHARACTER, REAL, CHAR_SELECTOR, + CHAR_LENGTH, LENGTH_SELECTOR, + LENGTH_AND_KIND, COMPLEX, /// LOOP diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 55df7295..69234f99 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -4,6 +4,10 @@ import pt.up.fe.specs.fortran.ast.nodes.alloc.Allocation; import pt.up.fe.specs.fortran.ast.nodes.alloc.StatAllocOption; import pt.up.fe.specs.fortran.ast.nodes.decl.*; +import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.DeferredTypeParamValue; +import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.ExprTypeParamValue; +import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.StarTypeParamValue; +import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.TypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.expr.*; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentLoopControl; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentRange; @@ -34,6 +38,9 @@ import pt.up.fe.specs.fortran.ast.nodes.type.attributes.AllocatableKeyword; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.IntentSpec; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.ParameterKeyword; +import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ConstLenSelector; +import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.KindParamLenSelector; +import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.LenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ParamLenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.shapes.AllocateShapeSpecification; import pt.up.fe.specs.fortran.ast.nodes.type.shapes.DeferredShapeSpecList; @@ -69,6 +76,8 @@ public class FlangToClass { NAME_TO_CLASS.put(FlangName.DUMMY_ARG, Parameter.class); NAME_TO_CONCRETE_CLASS.put(FlangName.DUMMY_ARG, FlangToClass::chooseParameter); NAME_TO_CLASS.put(FlangName.DATA_STMT_VALUE, DataStmtValue.class); + NAME_TO_CLASS.put(FlangName.TYPE_PARAM_VALUE, TypeParamValue.class); + NAME_TO_CONCRETE_CLASS.put(FlangName.TYPE_PARAM_VALUE, FlangToClass::chooseTypeParamValue); /// STMTs NAME_TO_CLASS.put(FlangName.PRINT_STMT, PrintStmt.class); @@ -173,7 +182,10 @@ public class FlangToClass { NAME_TO_CLASS.put(FlangName.CHARACTER, CharacterType.class); NAME_TO_CLASS.put(FlangName.REAL, RealType.class); NAME_TO_CLASS.put(FlangName.COMPLEX, ComplexType.class); - NAME_TO_CLASS.put(FlangName.LENGTH_SELECTOR, ParamLenSelector.class); + NAME_TO_CLASS.put(FlangName.CHAR_LENGTH, ConstLenSelector.class); + NAME_TO_CLASS.put(FlangName.LENGTH_SELECTOR, LenSelector.class); + NAME_TO_CONCRETE_CLASS.put(FlangName.LENGTH_SELECTOR, FlangToClass::chooseLengthSelector); + NAME_TO_CLASS.put(FlangName.LENGTH_AND_KIND, KindParamLenSelector.class); /// LOOP NAME_TO_CLASS.put(FlangName.LOOP_BOUNDS, RangeLoopControl.class); @@ -216,6 +228,12 @@ private static Optional> chooseComplexPart(FlangAtt }; } + private static Optional> chooseLengthSelector(FlangAttributes attrs) { + return attrs.has("TypeParamValue") + ? Optional.of(ParamLenSelector.class) + : Optional.empty(); + } + private static Optional> chooseOnly(FlangAttributes attrs) { return switch (attrs.getVariantKey()) { case "GenericSpec" -> Optional.of(OnlyGenericSpec.class); @@ -232,6 +250,15 @@ private static Optional> chooseParameter(FlangAttri }; } + private static Optional> chooseTypeParamValue(FlangAttributes attrs) { + return switch (attrs.getVariantKey()) { + case "Expr" -> Optional.of(ExprTypeParamValue.class); + case "Star" -> Optional.of(StarTypeParamValue.class); + case "Deferred" -> Optional.of(DeferredTypeParamValue.class); + default -> Optional.empty(); + }; + } + private static Optional> chooseUseStmt(FlangAttributes attrs) { if (attrs.has("renameList")) { return Optional.of(UseRenameStmt.class); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java index 77a18b23..7311a56e 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java @@ -7,8 +7,6 @@ import pt.up.fe.specs.fortran.parser.FortranJsonResult; public class TypeProcessors extends ANodeProcessor { - - public TypeProcessors(FortranJsonResult data) { super(data); } From 9bdbbdce9b71a7d72fb4d9c21c3624651b688421 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 24 Jul 2026 17:15:51 +0100 Subject: [PATCH 111/260] Create new approach for matching Flang names to AST node classes --- .../fortran/parser/concurrent.json | 548 ++++++++------ .../fortran/parser/expr/complex_literal.json | 699 +++++++++--------- .../fortran/parser/omp/omp_basic.json | 217 +++--- .../fortran/parser/omp/omp_clause.json | 449 +++++------ .../fortran/parser/omp/omp_do.json | 545 +++++++------- .../fortran/parser/omp/omp_reduction.json | 405 +++++----- .../fortran/parser/AlwaysClassMapper.java | 23 + .../specs/fortran/parser/CaseClassMapper.java | 44 ++ .../fe/specs/fortran/parser/ClassMapper.java | 18 + .../up/fe/specs/fortran/parser/FlangData.java | 2 +- .../up/fe/specs/fortran/parser/FlangName.java | 4 + .../fe/specs/fortran/parser/FlangToClass.java | 379 ++++------ .../fortran/parser/FortranJsonParser.java | 2 +- .../parser/processors/StmtProcessors.java | 4 +- 14 files changed, 1716 insertions(+), 1623 deletions(-) create mode 100644 FortranParser/src/pt/up/fe/specs/fortran/parser/AlwaysClassMapper.java create mode 100644 FortranParser/src/pt/up/fe/specs/fortran/parser/CaseClassMapper.java create mode 100644 FortranParser/src/pt/up/fe/specs/fortran/parser/ClassMapper.java diff --git a/FortranParser/resources-test/fortran/parser/concurrent.json b/FortranParser/resources-test/fortran/parser/concurrent.json index 7e0abca8..685edd05 100644 --- a/FortranParser/resources-test/fortran/parser/concurrent.json +++ b/FortranParser/resources-test/fortran/parser/concurrent.json @@ -1,417 +1,419 @@ { + "fileExtension": "f90", "nodes": [ { - "id": "0x7fffcdb2a400-Program", + "id": "0x55b25f6e2f00-Program", "ProgramUnit": [ - "0x7fffcdb54000-ProgramUnit" + "0x55b25f718e20-ProgramUnit" ] }, { - "id": "0x7fffcdb54000-ProgramUnit", + "id": "0x55b25f718e20-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x7fffcdb56a30-MainProgram" + "MainProgram": "0x55b25f7108b0-MainProgram" }, { - "id": "0x7fffcdb56a30-MainProgram", - "Statement": "0x7fffcdb56b78-Statement", - "SpecificationPart": "0x7fffcdb56ad0-SpecificationPart", - "ExecutionPart": "0x7fffcdb56ab8-ExecutionPart", - "Statement": "0x7fffcdb56a30-Statement" + "id": "0x55b25f7108b0-MainProgram", + "Statement": "0x55b25f7109f8-Statement", + "SpecificationPart": "0x55b25f710950-SpecificationPart", + "ExecutionPart": "0x55b25f710938-ExecutionPart", + "Statement": "0x55b25f7108b0-Statement" }, { - "id": "0x7fffcdb56b78-Statement", - "statement": "0x7fffcdb56b88-ProgramStmt", + "id": "0x55b25f7109f8-Statement", + "statement": "0x55b25f710a08-ProgramStmt", "source": "program SIMPLE_LOOP" }, { - "id": "0x7fffcdb56b88-ProgramStmt", - "Name": "0x7fffcdb56b88-Name" + "id": "0x55b25f710a08-ProgramStmt", + "Name": "0x55b25f710a08-Name" }, { - "id": "0x7fffcdb56b88-Name", + "id": "0x55b25f710a08-Name", "source": "SIMPLE_LOOP" }, { - "id": "0x7fffcdb56ad0-SpecificationPart", - "ImplicitPart": "0x7fffcdb56ae8-ImplicitPart", + "id": "0x55b25f710950-SpecificationPart", + "ImplicitPart": "0x55b25f710968-ImplicitPart", "DeclarationConstruct": [ - "0x7fffcdb30d50-DeclarationConstruct", - "0x7fffcdb30980-DeclarationConstruct" + "0x55b25f6f0170-DeclarationConstruct", + "0x55b25f6f0110-DeclarationConstruct" ] }, { - "id": "0x7fffcdb56ae8-ImplicitPart" + "id": "0x55b25f710968-ImplicitPart" }, { - "id": "0x7fffcdb30d50-DeclarationConstruct", + "id": "0x55b25f6f0170-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x7fffcdb30d50-SpecificationConstruct" + "SpecificationConstruct": "0x55b25f6f0170-SpecificationConstruct" }, { - "id": "0x7fffcdb30d50-SpecificationConstruct", + "id": "0x55b25f6f0170-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x7fffcdb30d50-Statement" + "Statement": "0x55b25f6f0170-Statement" }, { - "id": "0x7fffcdb30d50-Statement", - "statement": "0x7fffcdb38910-TypeDeclarationStmt", + "id": "0x55b25f6f0170-Statement", + "statement": "0x55b25f71cd20-TypeDeclarationStmt", "source": "integer :: i, j" }, { - "id": "0x7fffcdb38910-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x7fffcdb38940-DeclarationTypeSpec", + "id": "0x55b25f71cd20-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55b25f71cd50-DeclarationTypeSpec", "EntityDecl": [ - "0x7fffcdb54830-EntityDecl", - "0x7fffcdb546a0-EntityDecl" + "0x55b25f71cf20-EntityDecl", + "0x55b25f71ce30-EntityDecl" ] }, { - "id": "0x7fffcdb38940-DeclarationTypeSpec", + "id": "0x55b25f71cd50-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x7fffcdb38940-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55b25f71cd50-IntrinsicTypeSpec" }, { - "id": "0x7fffcdb38940-IntrinsicTypeSpec", + "id": "0x55b25f71cd50-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x7fffcdb38940-IntegerTypeSpec" + "IntegerTypeSpec": "0x55b25f71cd50-IntegerTypeSpec" }, { - "id": "0x7fffcdb38940-IntegerTypeSpec" + "id": "0x55b25f71cd50-IntegerTypeSpec" }, { - "id": "0x7fffcdb54830-EntityDecl", - "Name": "0x7fffcdb548e8-Name" + "id": "0x55b25f71cf20-EntityDecl", + "Name": "0x55b25f71cfd8-Name" }, { - "id": "0x7fffcdb548e8-Name", + "id": "0x55b25f71cfd8-Name", "source": "i" }, { - "id": "0x7fffcdb546a0-EntityDecl", - "Name": "0x7fffcdb54758-Name" + "id": "0x55b25f71ce30-EntityDecl", + "Name": "0x55b25f71cee8-Name" }, { - "id": "0x7fffcdb54758-Name", + "id": "0x55b25f71cee8-Name", "source": "j" }, { - "id": "0x7fffcdb30980-DeclarationConstruct", + "id": "0x55b25f6f0110-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x7fffcdb30980-SpecificationConstruct" + "SpecificationConstruct": "0x55b25f6f0110-SpecificationConstruct" }, { - "id": "0x7fffcdb30980-SpecificationConstruct", + "id": "0x55b25f6f0110-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x7fffcdb30980-Statement" + "Statement": "0x55b25f6f0110-Statement" }, { - "id": "0x7fffcdb30980-Statement", - "statement": "0x7fffcdb54910-TypeDeclarationStmt", + "id": "0x55b25f6f0110-Statement", + "statement": "0x55b25f71cda0-TypeDeclarationStmt", "source": "real :: x" }, { - "id": "0x7fffcdb54910-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x7fffcdb54940-DeclarationTypeSpec", + "id": "0x55b25f71cda0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55b25f71cdd0-DeclarationTypeSpec", "EntityDecl": [ - "0x7fffcdb549a0-EntityDecl" + "0x55b25f71d090-EntityDecl" ] }, { - "id": "0x7fffcdb54940-DeclarationTypeSpec", + "id": "0x55b25f71cdd0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x7fffcdb54940-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55b25f71cdd0-IntrinsicTypeSpec" }, { - "id": "0x7fffcdb54940-IntrinsicTypeSpec", + "id": "0x55b25f71cdd0-IntrinsicTypeSpec", "variantKey": "Real", - "Real": "0x7fffcdb54940-Real" + "Real": "0x55b25f71cdd0-Real" }, { - "id": "0x7fffcdb54940-Real" + "id": "0x55b25f71cdd0-Real" }, { - "id": "0x7fffcdb549a0-EntityDecl", - "Name": "0x7fffcdb54a58-Name" + "id": "0x55b25f71d090-EntityDecl", + "Name": "0x55b25f71d148-Name" }, { - "id": "0x7fffcdb54a58-Name", + "id": "0x55b25f71d148-Name", "source": "x" }, { - "id": "0x7fffcdb56ab8-ExecutionPart", + "id": "0x55b25f710938-ExecutionPart", "ExecutionPartConstruct": [ - "0x7fffcdb56310-ExecutionPartConstruct" + "0x55b25f71ea10-ExecutionPartConstruct" ] }, { - "id": "0x7fffcdb56ab8-ExecutionPartConstruct" + "id": "0x55b25f710938-ExecutionPartConstruct" }, { - "id": "0x7fffcdb56310-ExecutionPartConstruct", + "id": "0x55b25f71ea10-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x7fffcdb56310-ExecutableConstruct" + "ExecutableConstruct": "0x55b25f71ea10-ExecutableConstruct" }, { - "id": "0x7fffcdb56310-ExecutableConstruct", + "id": "0x55b25f71ea10-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x7fffcdb15490-DoConstruct" + "DoConstruct": "0x55b25f6b8780-DoConstruct" }, { - "id": "0x7fffcdb15490-DoConstruct", - "Statement": "0x7fffcdb154e8-Statement", + "id": "0x55b25f6b8780-DoConstruct", + "Statement": "0x55b25f6b87d8-Statement", "ExecutionPartConstruct": [ - "0x7fffcdb56450-ExecutionPartConstruct" + "0x55b25f71eb50-ExecutionPartConstruct" ], - "Statement": "0x7fffcdb15490-Statement" + "Statement": "0x55b25f6b8780-Statement" }, { - "id": "0x7fffcdb154e8-Statement", - "statement": "0x7fffcdb154f8-NonLabelDoStmt", + "id": "0x55b25f6b87d8-Statement", + "statement": "0x55b25f6b87e8-NonLabelDoStmt", "source": "do concurrent(i = 1:10:1, j = 1:10, i > 5)" }, { - "id": "0x7fffcdb154f8-NonLabelDoStmt", - "LoopControl": "0x7fffcdb154f8-LoopControl" + "id": "0x55b25f6b87e8-NonLabelDoStmt", + "LoopControl": "0x55b25f6b87e8-LoopControl" }, { - "id": "0x7fffcdb154f8-LoopControl", + "id": "0x55b25f6b87e8-LoopControl", "variantKey": "Concurrent", - "Concurrent": "0x7fffcdb154f8-Concurrent" + "Concurrent": "0x55b25f6b87e8-Concurrent" }, { - "id": "0x7fffcdb154f8-Concurrent", - "ConcurrentHeader": "0x7fffcdb15510-ConcurrentHeader" + "id": "0x55b25f6b87e8-Concurrent", + "ConcurrentHeader": "0x55b25f6b8800-ConcurrentHeader" }, { - "id": "0x7fffcdb15510-ConcurrentHeader", + "id": "0x55b25f6b8800-ConcurrentHeader", "ConcurrentControl": [ - "0x7fffcdb52e40-ConcurrentControl", - "0x7fffcdb52db0-ConcurrentControl" + "0x55b25f726680-ConcurrentControl", + "0x55b25f70a100-ConcurrentControl" ], - "Expr": "0x7fffcdb56780-Expr" + "Expr": "0x55b25f70d770-Expr" }, { - "id": "0x7fffcdb52e40-ConcurrentControl", - "var": "0x7fffcdb52e60-Name", - "lower": "0x7fffcdb531d0-Expr", - "upper": "0x7fffcdb56060-Expr", - "step": "0x7fffcdb56140-Expr" + "id": "0x55b25f726680-ConcurrentControl", + "var": "0x55b25f7266a0-Name", + "lower": "0x55b25f71e620-Expr", + "upper": "0x55b25f71e700-Expr", + "step": "0x55b25f71e7e0-Expr" }, { - "id": "0x7fffcdb52e60-Name", + "id": "0x55b25f7266a0-Name", "source": "i" }, { - "id": "0x7fffcdb531d0-Expr", + "id": "0x55b25f71e620-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x7fffcdb531f0-LiteralConstant" + "LiteralConstant": "0x55b25f71e640-LiteralConstant" }, { - "id": "0x7fffcdb531f0-LiteralConstant", + "id": "0x55b25f71e640-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x7fffcdb531f0-IntLiteralConstant" + "IntLiteralConstant": "0x55b25f71e640-IntLiteralConstant" }, { - "id": "0x7fffcdb531f0-IntLiteralConstant", + "id": "0x55b25f71e640-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x7fffcdb56060-Expr", + "id": "0x55b25f71e700-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x7fffcdb56080-LiteralConstant" + "LiteralConstant": "0x55b25f71e720-LiteralConstant" }, { - "id": "0x7fffcdb56080-LiteralConstant", + "id": "0x55b25f71e720-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x7fffcdb56080-IntLiteralConstant" + "IntLiteralConstant": "0x55b25f71e720-IntLiteralConstant" }, { - "id": "0x7fffcdb56080-IntLiteralConstant", + "id": "0x55b25f71e720-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x7fffcdb56140-Expr", + "id": "0x55b25f71e7e0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x7fffcdb56160-LiteralConstant" + "LiteralConstant": "0x55b25f71e800-LiteralConstant" }, { - "id": "0x7fffcdb56160-LiteralConstant", + "id": "0x55b25f71e800-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x7fffcdb56160-IntLiteralConstant" + "IntLiteralConstant": "0x55b25f71e800-IntLiteralConstant" }, { - "id": "0x7fffcdb56160-IntLiteralConstant", + "id": "0x55b25f71e800-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x7fffcdb52db0-ConcurrentControl", - "var": "0x7fffcdb52dd0-Name", - "lower": "0x7fffcdb56220-Expr", - "upper": "0x7fffcdb56360-Expr" + "id": "0x55b25f70a100-ConcurrentControl", + "var": "0x55b25f70a120-Name", + "lower": "0x55b25f71e920-Expr", + "upper": "0x55b25f71ea60-Expr" }, { - "id": "0x7fffcdb52dd0-Name", + "id": "0x55b25f70a120-Name", "source": "j" }, { - "id": "0x7fffcdb56220-Expr", + "id": "0x55b25f71e920-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x7fffcdb56240-LiteralConstant" + "LiteralConstant": "0x55b25f71e940-LiteralConstant" }, { - "id": "0x7fffcdb56240-LiteralConstant", + "id": "0x55b25f71e940-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x7fffcdb56240-IntLiteralConstant" + "IntLiteralConstant": "0x55b25f71e940-IntLiteralConstant" }, { - "id": "0x7fffcdb56240-IntLiteralConstant", + "id": "0x55b25f71e940-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x7fffcdb56360-Expr", + "id": "0x55b25f71ea60-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x7fffcdb56380-LiteralConstant" + "LiteralConstant": "0x55b25f71ea80-LiteralConstant" }, { - "id": "0x7fffcdb56380-LiteralConstant", + "id": "0x55b25f71ea80-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x7fffcdb56380-IntLiteralConstant" + "IntLiteralConstant": "0x55b25f71ea80-IntLiteralConstant" }, { - "id": "0x7fffcdb56380-IntLiteralConstant", + "id": "0x55b25f71ea80-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x7fffcdb56780-Expr", + "id": "0x55b25f70d770-Expr", "variantKey": "GT", - "GT": "0x7fffcdb567a0-GT" + "GT": "0x55b25f70d790-GT" }, { - "id": "0x7fffcdb567a0-GT", - "left": "0x7fffcdb566a0-Expr", - "right": "0x7fffcdb565c0-Expr", + "id": "0x55b25f70d790-GT", + "left": "0x55b25f71eda0-Expr", + "right": "0x55b25f71ecc0-Expr", "op": "GT" }, { - "id": "0x7fffcdb566a0-Expr", + "id": "0x55b25f71eda0-Expr", "variantKey": "Designator", - "Designator": "0x7fffcdb56500-Designator" + "Designator": "0x55b25f71ec00-Designator" }, { - "id": "0x7fffcdb56500-Designator", + "id": "0x55b25f71ec00-Designator", "variantKey": "DataRef", - "DataRef": "0x7fffcdb56510-DataRef" + "DataRef": "0x55b25f71ec10-DataRef" }, { - "id": "0x7fffcdb56510-DataRef", + "id": "0x55b25f71ec10-DataRef", "variantKey": "Name", - "Name": "0x7fffcdb56510-Name" + "Name": "0x55b25f71ec10-Name" }, { - "id": "0x7fffcdb56510-Name", + "id": "0x55b25f71ec10-Name", "source": "i" }, { - "id": "0x7fffcdb565c0-Expr", + "id": "0x55b25f71ecc0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x7fffcdb565e0-LiteralConstant" + "LiteralConstant": "0x55b25f71ece0-LiteralConstant" }, { - "id": "0x7fffcdb565e0-LiteralConstant", + "id": "0x55b25f71ece0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x7fffcdb565e0-IntLiteralConstant" + "IntLiteralConstant": "0x55b25f71ece0-IntLiteralConstant" }, { - "id": "0x7fffcdb565e0-IntLiteralConstant", + "id": "0x55b25f71ece0-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x7fffcdb154d0-ExecutionPartConstruct" + "id": "0x55b25f6b87c0-ExecutionPartConstruct" }, { - "id": "0x7fffcdb56450-ExecutionPartConstruct", + "id": "0x55b25f71eb50-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x7fffcdb56450-ExecutableConstruct" + "ExecutableConstruct": "0x55b25f71eb50-ExecutableConstruct" }, { - "id": "0x7fffcdb56450-ExecutableConstruct", + "id": "0x55b25f71eb50-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x7fffcdb56450-Statement" + "Statement": "0x55b25f71eb50-Statement" }, { - "id": "0x7fffcdb56450-Statement", - "statement": "0x7fffcdb56460-ActionStmt", + "id": "0x55b25f71eb50-Statement", + "statement": "0x55b25f71eb60-ActionStmt", "source": "x = 0.0" }, { - "id": "0x7fffcdb56460-ActionStmt", + "id": "0x55b25f71eb60-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x7fffcdb53a60-AssignmentStmt" + "AssignmentStmt": "0x55b25f6f0ce0-AssignmentStmt" }, { - "id": "0x7fffcdb53a60-AssignmentStmt", - "Variable": "0x7fffcdb53b40-Variable", - "Expr": "0x7fffcdb53a70-Expr" + "id": "0x55b25f6f0ce0-AssignmentStmt", + "Variable": "0x55b25f6f0dc0-Variable", + "Expr": "0x55b25f6f0cf0-Expr" }, { - "id": "0x7fffcdb53b40-Variable", + "id": "0x55b25f6f0dc0-Variable", "variantKey": "Designator", - "Designator": "0x7fffcdb55690-Designator" + "Designator": "0x55b25f71e8c0-Designator" }, { - "id": "0x7fffcdb55690-Designator", + "id": "0x55b25f71e8c0-Designator", "variantKey": "DataRef", - "DataRef": "0x7fffcdb556a0-DataRef" + "DataRef": "0x55b25f71e8d0-DataRef" }, { - "id": "0x7fffcdb556a0-DataRef", + "id": "0x55b25f71e8d0-DataRef", "variantKey": "Name", - "Name": "0x7fffcdb556a0-Name" + "Name": "0x55b25f71e8d0-Name" }, { - "id": "0x7fffcdb556a0-Name", + "id": "0x55b25f71e8d0-Name", "source": "x" }, { - "id": "0x7fffcdb53a70-Expr", + "id": "0x55b25f6f0cf0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x7fffcdb53a90-LiteralConstant" + "LiteralConstant": "0x55b25f6f0d10-LiteralConstant" }, { - "id": "0x7fffcdb53a90-LiteralConstant", + "id": "0x55b25f6f0d10-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x7fffcdb53a90-RealLiteralConstant" + "RealLiteralConstant": "0x55b25f6f0d10-RealLiteralConstant" }, { - "id": "0x7fffcdb53a90-RealLiteralConstant", - "real": "0x7fffcdb53a90-Real" + "id": "0x55b25f6f0d10-RealLiteralConstant", + "real": "0x55b25f6f0d10-Real" }, { - "id": "0x7fffcdb53a90-Real", + "id": "0x55b25f6f0d10-Real", "source": "0.0" }, { - "id": "0x7fffcdb15490-Statement", - "statement": "0x7fffcdb154a0-EndDoStmt", + "id": "0x55b25f6b8780-Statement", + "statement": "0x55b25f6b8790-EndDoStmt", "source": "end do" }, { - "id": "0x7fffcdb154a0-EndDoStmt" + "id": "0x55b25f6b8790-EndDoStmt" }, { - "id": "0x7fffcdb56a30-Statement", - "statement": "0x7fffcdb56a40-EndProgramStmt", + "id": "0x55b25f7108b0-Statement", + "statement": "0x55b25f7108c0-EndProgramStmt", "source": "end program SIMPLE_LOOP" }, { - "id": "0x7fffcdb56a40-EndProgramStmt", - "Name": "0x7fffcdb56a40-Name" + "id": "0x55b25f7108c0-EndProgramStmt", + "Name": "0x55b25f7108c0-Name" }, { - "id": "0x7fffcdb56a40-Name", + "id": "0x55b25f7108c0-Name", "source": "SIMPLE_LOOP" } ], + "comments": [], "enums": { "Fortran::common::CUDADataAttr": [ "Constant", @@ -429,6 +431,27 @@ "Global", "Grid_Global" ], + "Fortran::common::ImportKind": [ + "Default", + "Only", + "None", + "All" + ], + "Fortran::common::OmpDependenceKind": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::common::OmpMemoryOrderType": [ + "Acq_Rel", + "Acquire", + "Relaxed", + "Release", + "Seq_Cst" + ], "Fortran::common::OpenACCDeviceType": [ "Star", "Default", @@ -450,6 +473,11 @@ "Object", "Common" ], + "Fortran::parser::CompilerDirective::VectorLength::Kind": [ + "Auto", + "Fixed", + "Scalable" + ], "Fortran::parser::ConnectSpec::CharExpr::Kind": [ "Access", "Action", @@ -559,53 +587,38 @@ "Eqv", "Neqv" ], - "Fortran::parser::OmpTraitSelectorName::Value": [ - "Arch", - "Atomic_Default_Mem_Order", - "Condition", - "Device_Num", - "Extension", - "Isa", - "Kind", - "Requires", - "Simd", - "Uid", - "Vendor" + "Fortran::parser::OmpAccessGroup::Value": [ + "Cgroup" ], - "Fortran::parser::OmpTraitSetSelectorName::Value": [ - "Construct", - "Device", - "Implementation", - "Target_Device", - "User" + "Fortran::parser::OmpAdjustArgsClause::OmpAdjustOp::Value": [ + "Nothing", + "Need_Device_Ptr" ], - "Fortran::parser::OmpMapType::Value": [ - "Alloc", - "Delete", - "From", - "Release", - "To", - "Tofrom" - ], - "Fortran::parser::OmpMapTypeModifier::Value": [ - "Always", - "Close", - "Present", - "Ompx_Hold" + "Fortran::parser::OmpAlwaysModifier::Value": [ + "Always" ], "Fortran::parser::OmpAtClause::ActionTime": [ "Compilation", "Execution" ], - "Fortran::parser::OmpSeverityClause::Severity": [ - "Fatal", - "Warning" + "Fortran::parser::OmpAttachModifier::Value": [ + "Always", + "Never", + "Auto" ], - "Fortran::parser::OmpCancelType::Type": [ + "Fortran::parser::OmpAutomapModifier::Value": [ + "Automap" + ], + "Fortran::parser::OmpBindClause::Binding": [ "Parallel", - "Sections", - "Do", - "Taskgroup" + "Teams", + "Thread" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpCloseModifier::Value": [ + "Close" ], "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ "Private", @@ -613,13 +626,6 @@ "Shared", "None" ], - "Fortran::parser::OmpVariableCategory::Value": [ - "Aggregate", - "All", - "Allocatable", - "Pointer", - "Scalar" - ], "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ "Alloc", "To", @@ -627,23 +633,36 @@ "Tofrom", "Firstprivate", "None", - "Default" + "Default", + "Present" + ], + "Fortran::parser::OmpDeleteModifier::Value": [ + "Delete" ], "Fortran::parser::OmpDependenceType::Value": [ "Sink", "Source" ], - "Fortran::parser::OmpTaskDependenceType::Value": [ - "In", - "Out", - "Inout", - "Inoutset", - "Mutexinoutset", - "Depobj" + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpDirectiveSpecification::Flag": [ + "DeprecatedSyntax", + "CrossesLabelDo" ], "Fortran::parser::OmpExpectation::Value": [ "Present" ], + "Fortran::parser::OmpInteropType::Value": [ + "Target", + "Targetsync" + ], "Fortran::parser::OmpLastprivateModifier::Value": [ "Conditional" ], @@ -652,9 +671,32 @@ "Uval", "Val" ], + "Fortran::parser::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "Storage", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpObject::Invalid::Kind": [ + "BlankCommonBlock" + ], "Fortran::parser::OmpOrderClause::Ordering": [ "Concurrent" ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], "Fortran::parser::OmpOrderModifier::Value": [ "Reproducible", "Unconstrained" @@ -662,10 +704,8 @@ "Fortran::parser::OmpPrescriptiveness::Value": [ "Strict" ], - "Fortran::parser::OmpBindClause::Binding": [ - "Parallel", - "Teams", - "Thread" + "Fortran::parser::OmpPresentModifier::Value": [ + "Present" ], "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ "Close", @@ -678,6 +718,11 @@ "Inscan", "Task" ], + "Fortran::parser::OmpRefModifier::Value": [ + "Ref_Ptee", + "Ref_Ptr", + "Ref_Ptr_Ptee" + ], "Fortran::parser::OmpScheduleClause::Kind": [ "Static", "Dynamic", @@ -685,27 +730,46 @@ "Auto", "Runtime" ], - "Fortran::parser::OmpDeviceModifier::Value": [ - "Ancestor", - "Device_Num" + "Fortran::parser::OmpSelfModifier::Value": [ + "Self" ], - "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ - "Any", - "Host", - "Nohost" + "Fortran::parser::OmpSeverityClause::SevLevel": [ + "Fatal", + "Warning" ], - "Fortran::parser::OmpChunkModifier::Value": [ - "Simd" + "Fortran::parser::OmpThreadsetClause::ThreadsetPolicy": [ + "Omp_Pool", + "Omp_Team" ], - "Fortran::parser::OmpOrderingModifier::Value": [ - "Monotonic", - "Nonmonotonic", - "Simd" + "Fortran::parser::OmpTraitSelectorName::Value": [ + "Arch", + "Atomic_Default_Mem_Order", + "Condition", + "Device_Num", + "Extension", + "Isa", + "Kind", + "Requires", + "Simd", + "Uid", + "Vendor" + ], + "Fortran::parser::OmpTraitSetSelectorName::Value": [ + "Construct", + "Device", + "Implementation", + "Target_Device", + "User" ], - "Fortran::common::OmpAtomicDefaultMemOrderType": [ - "SeqCst", - "AcqRel", - "Relaxed" + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpxHoldModifier::Value": [ + "Ompx_Hold" ], "Fortran::parser::ProcedureStmt::Kind": [ "ModuleProcedure", @@ -724,4 +788,4 @@ "Non_Intrinsic" ] } -} \ No newline at end of file +} diff --git a/FortranParser/resources-test/fortran/parser/expr/complex_literal.json b/FortranParser/resources-test/fortran/parser/expr/complex_literal.json index 114875c7..fa43b595 100644 --- a/FortranParser/resources-test/fortran/parser/expr/complex_literal.json +++ b/FortranParser/resources-test/fortran/parser/expr/complex_literal.json @@ -2,863 +2,864 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x5591e0573f00-Program", + "id": "0x555883433f00-Program", "ProgramUnit": [ - "0x5591e05afef0-ProgramUnit" + "0x55588346fef0-ProgramUnit" ] }, { - "id": "0x5591e05afef0-ProgramUnit", + "id": "0x55588346fef0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x5591e05a4010-MainProgram" + "MainProgram": "0x555883464010-MainProgram" }, { - "id": "0x5591e05a4010-MainProgram", - "Statement": "0x5591e05a4158-Statement", - "SpecificationPart": "0x5591e05a40b0-SpecificationPart", - "ExecutionPart": "0x5591e05a4098-ExecutionPart", - "Statement": "0x5591e05a4010-Statement" + "id": "0x555883464010-MainProgram", + "Statement": "0x555883464158-Statement", + "SpecificationPart": "0x5558834640b0-SpecificationPart", + "ExecutionPart": "0x555883464098-ExecutionPart", + "Statement": "0x555883464010-Statement" }, { - "id": "0x5591e05a4158-Statement", - "statement": "0x5591e05a4168-ProgramStmt", + "id": "0x555883464158-Statement", + "statement": "0x555883464168-ProgramStmt", "source": "program COMPLEX_LITERAL" }, { - "id": "0x5591e05a4168-ProgramStmt", - "Name": "0x5591e05a4168-Name" + "id": "0x555883464168-ProgramStmt", + "Name": "0x555883464168-Name" }, { - "id": "0x5591e05a4168-Name", + "id": "0x555883464168-Name", "source": "COMPLEX_LITERAL" }, { - "id": "0x5591e05a40b0-SpecificationPart", + "id": "0x5558834640b0-SpecificationPart", "Statement": [ - "0x5591e05aec00-Statement" + "0x55588346ec00-Statement" ], - "ImplicitPart": "0x5591e05a40c8-ImplicitPart", + "ImplicitPart": "0x5558834640c8-ImplicitPart", "DeclarationConstruct": [ - "0x5591e059eab0-DeclarationConstruct", - "0x5591e059ed60-DeclarationConstruct", - "0x5591e059f010-DeclarationConstruct", - "0x5591e059fa30-DeclarationConstruct", - "0x5591e059fe20-DeclarationConstruct", - "0x5591e05a0210-DeclarationConstruct" + "0x55588345eab0-DeclarationConstruct", + "0x55588345ed60-DeclarationConstruct", + "0x55588345f010-DeclarationConstruct", + "0x55588345fa30-DeclarationConstruct", + "0x55588345fe20-DeclarationConstruct", + "0x555883460210-DeclarationConstruct" ] }, { - "id": "0x5591e05aec00-Statement", - "statement": "0x5591e05b7cb0-UseStmt", + "id": "0x55588346ec00-Statement", + "statement": "0x555883477cb0-UseStmt", "source": "use, intrinsic :: iso_fortran_env, only: sp => real32, dp => real64" }, { - "id": "0x5591e05b7cb0-UseStmt", - "nature": "0x5591e05b7cb0-ModuleNature = Intrinsic", - "moduleName": "0x5591e05b7cb8-Name", - "onlyList": [ - "0x5591e0581170-Only", - "0x5591e05724e0-Only" + "id": "0x555883477cb0-UseStmt", + "nature": "0x555883477cb0-ModuleNature = Intrinsic", + "moduleName": "0x555883477cb8-Name", + "variantKey": "Only", + "Only": [ + "0x555883441170-Only", + "0x5558834324e0-Only" ] }, { - "id": "0x5591e05b7cb0-ModuleNature = Intrinsic", + "id": "0x555883477cb0-ModuleNature = Intrinsic", "disambiguation": "Fortran::parser::UseStmt::ModuleNature", "value": "Intrinsic" }, { - "id": "0x5591e05b7cb8-Name", + "id": "0x555883477cb8-Name", "source": "iso_fortran_env" }, { - "id": "0x5591e0581170-Only", + "id": "0x555883441170-Only", "variantKey": "Rename", - "Rename": "0x5591e0581170-Rename" + "Rename": "0x555883441170-Rename" }, { - "id": "0x5591e0581170-Rename", + "id": "0x555883441170-Rename", "variantKey": "Names", - "Names": "0x5591e0581170-Names" + "Names": "0x555883441170-Names" }, { - "id": "0x5591e0581170-Names", - "local": "0x5591e0581188-Name", - "global": "0x5591e0581170-Name" + "id": "0x555883441170-Names", + "local": "0x555883441188-Name", + "global": "0x555883441170-Name" }, { - "id": "0x5591e0581188-Name", + "id": "0x555883441188-Name", "source": "sp" }, { - "id": "0x5591e0581170-Name", + "id": "0x555883441170-Name", "source": "real32" }, { - "id": "0x5591e05724e0-Only", + "id": "0x5558834324e0-Only", "variantKey": "Rename", - "Rename": "0x5591e05724e0-Rename" + "Rename": "0x5558834324e0-Rename" }, { - "id": "0x5591e05724e0-Rename", + "id": "0x5558834324e0-Rename", "variantKey": "Names", - "Names": "0x5591e05724e0-Names" + "Names": "0x5558834324e0-Names" }, { - "id": "0x5591e05724e0-Names", - "local": "0x5591e05724f8-Name", - "global": "0x5591e05724e0-Name" + "id": "0x5558834324e0-Names", + "local": "0x5558834324f8-Name", + "global": "0x5558834324e0-Name" }, { - "id": "0x5591e05724f8-Name", + "id": "0x5558834324f8-Name", "source": "dp" }, { - "id": "0x5591e05724e0-Name", + "id": "0x5558834324e0-Name", "source": "real64" }, { - "id": "0x5591e05a40c8-ImplicitPart" + "id": "0x5558834640c8-ImplicitPart" }, { - "id": "0x5591e059eab0-DeclarationConstruct", + "id": "0x55588345eab0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5591e059eab0-SpecificationConstruct" + "SpecificationConstruct": "0x55588345eab0-SpecificationConstruct" }, { - "id": "0x5591e059eab0-SpecificationConstruct", + "id": "0x55588345eab0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5591e059eab0-Statement" + "Statement": "0x55588345eab0-Statement" }, { - "id": "0x5591e059eab0-Statement", - "statement": "0x5591e05b0710-TypeDeclarationStmt", + "id": "0x55588345eab0-Statement", + "statement": "0x555883470710-TypeDeclarationStmt", "source": "complex :: c_default =(3.0, 4.0)" }, { - "id": "0x5591e05b0710-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5591e05b0740-DeclarationTypeSpec", + "id": "0x555883470710-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x555883470740-DeclarationTypeSpec", "EntityDecl": [ - "0x5591e059e8e0-EntityDecl" + "0x55588345e8e0-EntityDecl" ] }, { - "id": "0x5591e05b0740-DeclarationTypeSpec", + "id": "0x555883470740-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5591e05b0740-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x555883470740-IntrinsicTypeSpec" }, { - "id": "0x5591e05b0740-IntrinsicTypeSpec", + "id": "0x555883470740-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x5591e05b0740-Complex" + "Complex": "0x555883470740-Complex" }, { - "id": "0x5591e05b0740-Complex" + "id": "0x555883470740-Complex" }, { - "id": "0x5591e059e8e0-EntityDecl", - "Name": "0x5591e059e998-Name", - "Initialization": "0x5591e059e8e0-Initialization" + "id": "0x55588345e8e0-EntityDecl", + "Name": "0x55588345e998-Name", + "Initialization": "0x55588345e8e0-Initialization" }, { - "id": "0x5591e059e998-Name", + "id": "0x55588345e998-Name", "source": "c_default" }, { - "id": "0x5591e059e8e0-Initialization", + "id": "0x55588345e8e0-Initialization", "variantKey": "Expr", - "Expr": "0x5591e0513790-Expr" + "Expr": "0x5558833d3790-Expr" }, { - "id": "0x5591e0513790-Expr", + "id": "0x5558833d3790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5591e05137b0-LiteralConstant" + "LiteralConstant": "0x5558833d37b0-LiteralConstant" }, { - "id": "0x5591e05137b0-LiteralConstant", + "id": "0x5558833d37b0-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x5591e05137b0-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x5558833d37b0-ComplexLiteralConstant" }, { - "id": "0x5591e05137b0-ComplexLiteralConstant", - "real": "0x5591e0513800-ComplexPart", - "imaginary": "0x5591e05137b0-ComplexPart" + "id": "0x5558833d37b0-ComplexLiteralConstant", + "real": "0x5558833d3800-ComplexPart", + "imaginary": "0x5558833d37b0-ComplexPart" }, { - "id": "0x5591e0513800-ComplexPart", + "id": "0x5558833d3800-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x5591e0513800-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x5558833d3800-SignedRealLiteralConstant" }, { - "id": "0x5591e0513800-SignedRealLiteralConstant", - "RealLiteralConstant": "0x5591e0513800-RealLiteralConstant" + "id": "0x5558833d3800-SignedRealLiteralConstant", + "RealLiteralConstant": "0x5558833d3800-RealLiteralConstant" }, { - "id": "0x5591e0513800-RealLiteralConstant", - "real": "0x5591e0513800-Real" + "id": "0x5558833d3800-RealLiteralConstant", + "real": "0x5558833d3800-Real" }, { - "id": "0x5591e0513800-Real", + "id": "0x5558833d3800-Real", "source": "3.0" }, { - "id": "0x5591e05137b0-ComplexPart", + "id": "0x5558833d37b0-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x5591e05137b0-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x5558833d37b0-SignedRealLiteralConstant" }, { - "id": "0x5591e05137b0-SignedRealLiteralConstant", - "RealLiteralConstant": "0x5591e05137b0-RealLiteralConstant" + "id": "0x5558833d37b0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x5558833d37b0-RealLiteralConstant" }, { - "id": "0x5591e05137b0-RealLiteralConstant", - "real": "0x5591e05137b0-Real" + "id": "0x5558833d37b0-RealLiteralConstant", + "real": "0x5558833d37b0-Real" }, { - "id": "0x5591e05137b0-Real", + "id": "0x5558833d37b0-Real", "source": "4.0" }, { - "id": "0x5591e059ed60-DeclarationConstruct", + "id": "0x55588345ed60-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5591e059ed60-SpecificationConstruct" + "SpecificationConstruct": "0x55588345ed60-SpecificationConstruct" }, { - "id": "0x5591e059ed60-SpecificationConstruct", + "id": "0x55588345ed60-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5591e059ed60-Statement" + "Statement": "0x55588345ed60-Statement" }, { - "id": "0x5591e059ed60-Statement", - "statement": "0x5591e05b0790-TypeDeclarationStmt", + "id": "0x55588345ed60-Statement", + "statement": "0x555883470790-TypeDeclarationStmt", "source": "complex :: c_int =(1, -2)" }, { - "id": "0x5591e05b0790-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5591e05b07c0-DeclarationTypeSpec", + "id": "0x555883470790-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5558834707c0-DeclarationTypeSpec", "EntityDecl": [ - "0x5591e059ec70-EntityDecl" + "0x55588345ec70-EntityDecl" ] }, { - "id": "0x5591e05b07c0-DeclarationTypeSpec", + "id": "0x5558834707c0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5591e05b07c0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5558834707c0-IntrinsicTypeSpec" }, { - "id": "0x5591e05b07c0-IntrinsicTypeSpec", + "id": "0x5558834707c0-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x5591e05b07c0-Complex" + "Complex": "0x5558834707c0-Complex" }, { - "id": "0x5591e05b07c0-Complex" + "id": "0x5558834707c0-Complex" }, { - "id": "0x5591e059ec70-EntityDecl", - "Name": "0x5591e059ed28-Name", - "Initialization": "0x5591e059ec70-Initialization" + "id": "0x55588345ec70-EntityDecl", + "Name": "0x55588345ed28-Name", + "Initialization": "0x55588345ec70-Initialization" }, { - "id": "0x5591e059ed28-Name", + "id": "0x55588345ed28-Name", "source": "c_int" }, { - "id": "0x5591e059ec70-Initialization", + "id": "0x55588345ec70-Initialization", "variantKey": "Expr", - "Expr": "0x5591e059eb80-Expr" + "Expr": "0x55588345eb80-Expr" }, { - "id": "0x5591e059eb80-Expr", + "id": "0x55588345eb80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5591e059eba0-LiteralConstant" + "LiteralConstant": "0x55588345eba0-LiteralConstant" }, { - "id": "0x5591e059eba0-LiteralConstant", + "id": "0x55588345eba0-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x5591e059eba0-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x55588345eba0-ComplexLiteralConstant" }, { - "id": "0x5591e059eba0-ComplexLiteralConstant", - "real": "0x5591e059ebf0-ComplexPart", - "imaginary": "0x5591e059eba0-ComplexPart" + "id": "0x55588345eba0-ComplexLiteralConstant", + "real": "0x55588345ebf0-ComplexPart", + "imaginary": "0x55588345eba0-ComplexPart" }, { - "id": "0x5591e059ebf0-ComplexPart", + "id": "0x55588345ebf0-ComplexPart", "variantKey": "SignedIntLiteralConstant", - "SignedIntLiteralConstant": "0x5591e059ebf0-SignedIntLiteralConstant" + "SignedIntLiteralConstant": "0x55588345ebf0-SignedIntLiteralConstant" }, { - "id": "0x5591e059ebf0-SignedIntLiteralConstant", + "id": "0x55588345ebf0-SignedIntLiteralConstant", "CharBlock": "1", "source": "1" }, { - "id": "0x5591e059eba0-ComplexPart", + "id": "0x55588345eba0-ComplexPart", "variantKey": "SignedIntLiteralConstant", - "SignedIntLiteralConstant": "0x5591e059eba0-SignedIntLiteralConstant" + "SignedIntLiteralConstant": "0x55588345eba0-SignedIntLiteralConstant" }, { - "id": "0x5591e059eba0-SignedIntLiteralConstant", + "id": "0x55588345eba0-SignedIntLiteralConstant", "CharBlock": "-2", "source": "-2" }, { - "id": "0x5591e059f010-DeclarationConstruct", + "id": "0x55588345f010-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5591e059f010-SpecificationConstruct" + "SpecificationConstruct": "0x55588345f010-SpecificationConstruct" }, { - "id": "0x5591e059f010-SpecificationConstruct", + "id": "0x55588345f010-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5591e059f010-Statement" + "Statement": "0x55588345f010-Statement" }, { - "id": "0x5591e059f010-Statement", - "statement": "0x5591e059eb00-TypeDeclarationStmt", + "id": "0x55588345f010-Statement", + "statement": "0x55588345eb00-TypeDeclarationStmt", "source": "complex :: c_exp =(1.5e2, -2.0e-1)" }, { - "id": "0x5591e059eb00-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5591e059eb30-DeclarationTypeSpec", + "id": "0x55588345eb00-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55588345eb30-DeclarationTypeSpec", "EntityDecl": [ - "0x5591e059ef20-EntityDecl" + "0x55588345ef20-EntityDecl" ] }, { - "id": "0x5591e059eb30-DeclarationTypeSpec", + "id": "0x55588345eb30-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5591e059eb30-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55588345eb30-IntrinsicTypeSpec" }, { - "id": "0x5591e059eb30-IntrinsicTypeSpec", + "id": "0x55588345eb30-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x5591e059eb30-Complex" + "Complex": "0x55588345eb30-Complex" }, { - "id": "0x5591e059eb30-Complex" + "id": "0x55588345eb30-Complex" }, { - "id": "0x5591e059ef20-EntityDecl", - "Name": "0x5591e059efd8-Name", - "Initialization": "0x5591e059ef20-Initialization" + "id": "0x55588345ef20-EntityDecl", + "Name": "0x55588345efd8-Name", + "Initialization": "0x55588345ef20-Initialization" }, { - "id": "0x5591e059efd8-Name", + "id": "0x55588345efd8-Name", "source": "c_exp" }, { - "id": "0x5591e059ef20-Initialization", + "id": "0x55588345ef20-Initialization", "variantKey": "Expr", - "Expr": "0x5591e059ee30-Expr" + "Expr": "0x55588345ee30-Expr" }, { - "id": "0x5591e059ee30-Expr", + "id": "0x55588345ee30-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5591e059ee50-LiteralConstant" + "LiteralConstant": "0x55588345ee50-LiteralConstant" }, { - "id": "0x5591e059ee50-LiteralConstant", + "id": "0x55588345ee50-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x5591e059ee50-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x55588345ee50-ComplexLiteralConstant" }, { - "id": "0x5591e059ee50-ComplexLiteralConstant", - "real": "0x5591e059eea0-ComplexPart", - "imaginary": "0x5591e059ee50-ComplexPart" + "id": "0x55588345ee50-ComplexLiteralConstant", + "real": "0x55588345eea0-ComplexPart", + "imaginary": "0x55588345ee50-ComplexPart" }, { - "id": "0x5591e059eea0-ComplexPart", + "id": "0x55588345eea0-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x5591e059eea0-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55588345eea0-SignedRealLiteralConstant" }, { - "id": "0x5591e059eea0-SignedRealLiteralConstant", - "RealLiteralConstant": "0x5591e059eea0-RealLiteralConstant" + "id": "0x55588345eea0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55588345eea0-RealLiteralConstant" }, { - "id": "0x5591e059eea0-RealLiteralConstant", - "real": "0x5591e059eea0-Real" + "id": "0x55588345eea0-RealLiteralConstant", + "real": "0x55588345eea0-Real" }, { - "id": "0x5591e059eea0-Real", + "id": "0x55588345eea0-Real", "source": "1.5e2" }, { - "id": "0x5591e059ee50-ComplexPart", + "id": "0x55588345ee50-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x5591e059ee50-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55588345ee50-SignedRealLiteralConstant" }, { - "id": "0x5591e059ee50-SignedRealLiteralConstant", + "id": "0x55588345ee50-SignedRealLiteralConstant", "Sign": "-", - "RealLiteralConstant": "0x5591e059ee50-RealLiteralConstant" + "RealLiteralConstant": "0x55588345ee50-RealLiteralConstant" }, { - "id": "0x5591e059ee50-RealLiteralConstant", - "real": "0x5591e059ee50-Real" + "id": "0x55588345ee50-RealLiteralConstant", + "real": "0x55588345ee50-Real" }, { - "id": "0x5591e059ee50-Real", + "id": "0x55588345ee50-Real", "source": "2.0e-1" }, { - "id": "0x5591e059fa30-DeclarationConstruct", + "id": "0x55588345fa30-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5591e059fa30-SpecificationConstruct" + "SpecificationConstruct": "0x55588345fa30-SpecificationConstruct" }, { - "id": "0x5591e059fa30-SpecificationConstruct", + "id": "0x55588345fa30-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5591e059fa30-Statement" + "Statement": "0x55588345fa30-Statement" }, { - "id": "0x5591e059fa30-Statement", - "statement": "0x5591e059edb0-TypeDeclarationStmt", + "id": "0x55588345fa30-Statement", + "statement": "0x55588345edb0-TypeDeclarationStmt", "source": "complex(dp) :: c_double_d =(1.0d0, 3.141592653589793d0)" }, { - "id": "0x5591e059edb0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5591e059ede0-DeclarationTypeSpec", + "id": "0x55588345edb0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55588345ede0-DeclarationTypeSpec", "EntityDecl": [ - "0x5591e059f860-EntityDecl" + "0x55588345f860-EntityDecl" ] }, { - "id": "0x5591e059ede0-DeclarationTypeSpec", + "id": "0x55588345ede0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5591e059ede0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55588345ede0-IntrinsicTypeSpec" }, { - "id": "0x5591e059ede0-IntrinsicTypeSpec", + "id": "0x55588345ede0-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x5591e059ede0-Complex" + "Complex": "0x55588345ede0-Complex" }, { - "id": "0x5591e059ede0-Complex", - "KindSelector": "0x5591e059ede0-KindSelector" + "id": "0x55588345ede0-Complex", + "KindSelector": "0x55588345ede0-KindSelector" }, { - "id": "0x5591e059ede0-KindSelector", + "id": "0x55588345ede0-KindSelector", "variantKey": "Expr", - "Expr": "0x5591e059f260-Expr" + "Expr": "0x55588345f260-Expr" }, { - "id": "0x5591e059f260-Expr", + "id": "0x55588345f260-Expr", "variantKey": "Designator", - "Designator": "0x5591e05b7b90-Designator" + "Designator": "0x555883477b90-Designator" }, { - "id": "0x5591e05b7b90-Designator", + "id": "0x555883477b90-Designator", "variantKey": "DataRef", - "DataRef": "0x5591e05b7ba0-DataRef" + "DataRef": "0x555883477ba0-DataRef" }, { - "id": "0x5591e05b7ba0-DataRef", + "id": "0x555883477ba0-DataRef", "variantKey": "Name", - "Name": "0x5591e05b7ba0-Name" + "Name": "0x555883477ba0-Name" }, { - "id": "0x5591e05b7ba0-Name", + "id": "0x555883477ba0-Name", "source": "dp" }, { - "id": "0x5591e059f860-EntityDecl", - "Name": "0x5591e059f918-Name", - "Initialization": "0x5591e059f860-Initialization" + "id": "0x55588345f860-EntityDecl", + "Name": "0x55588345f918-Name", + "Initialization": "0x55588345f860-Initialization" }, { - "id": "0x5591e059f918-Name", + "id": "0x55588345f918-Name", "source": "c_double_d" }, { - "id": "0x5591e059f860-Initialization", + "id": "0x55588345f860-Initialization", "variantKey": "Expr", - "Expr": "0x5591e059f770-Expr" + "Expr": "0x55588345f770-Expr" }, { - "id": "0x5591e059f770-Expr", + "id": "0x55588345f770-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5591e059f790-LiteralConstant" + "LiteralConstant": "0x55588345f790-LiteralConstant" }, { - "id": "0x5591e059f790-LiteralConstant", + "id": "0x55588345f790-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x5591e059f790-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x55588345f790-ComplexLiteralConstant" }, { - "id": "0x5591e059f790-ComplexLiteralConstant", - "real": "0x5591e059f7e0-ComplexPart", - "imaginary": "0x5591e059f790-ComplexPart" + "id": "0x55588345f790-ComplexLiteralConstant", + "real": "0x55588345f7e0-ComplexPart", + "imaginary": "0x55588345f790-ComplexPart" }, { - "id": "0x5591e059f7e0-ComplexPart", + "id": "0x55588345f7e0-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x5591e059f7e0-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55588345f7e0-SignedRealLiteralConstant" }, { - "id": "0x5591e059f7e0-SignedRealLiteralConstant", - "RealLiteralConstant": "0x5591e059f7e0-RealLiteralConstant" + "id": "0x55588345f7e0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55588345f7e0-RealLiteralConstant" }, { - "id": "0x5591e059f7e0-RealLiteralConstant", - "real": "0x5591e059f7e0-Real" + "id": "0x55588345f7e0-RealLiteralConstant", + "real": "0x55588345f7e0-Real" }, { - "id": "0x5591e059f7e0-Real", + "id": "0x55588345f7e0-Real", "source": "1.0d0" }, { - "id": "0x5591e059f790-ComplexPart", + "id": "0x55588345f790-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x5591e059f790-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55588345f790-SignedRealLiteralConstant" }, { - "id": "0x5591e059f790-SignedRealLiteralConstant", - "RealLiteralConstant": "0x5591e059f790-RealLiteralConstant" + "id": "0x55588345f790-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55588345f790-RealLiteralConstant" }, { - "id": "0x5591e059f790-RealLiteralConstant", - "real": "0x5591e059f790-Real" + "id": "0x55588345f790-RealLiteralConstant", + "real": "0x55588345f790-Real" }, { - "id": "0x5591e059f790-Real", + "id": "0x55588345f790-Real", "source": "3.141592653589793d0" }, { - "id": "0x5591e059fe20-DeclarationConstruct", + "id": "0x55588345fe20-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5591e059fe20-SpecificationConstruct" + "SpecificationConstruct": "0x55588345fe20-SpecificationConstruct" }, { - "id": "0x5591e059fe20-SpecificationConstruct", + "id": "0x55588345fe20-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5591e059fe20-Statement" + "Statement": "0x55588345fe20-Statement" }, { - "id": "0x5591e059fe20-Statement", - "statement": "0x5591e059f060-TypeDeclarationStmt", + "id": "0x55588345fe20-Statement", + "statement": "0x55588345f060-TypeDeclarationStmt", "source": "complex(dp) :: c_double_kind =(2.5_dp, -5.5_dp)" }, { - "id": "0x5591e059f060-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5591e059f090-DeclarationTypeSpec", + "id": "0x55588345f060-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55588345f090-DeclarationTypeSpec", "EntityDecl": [ - "0x5591e059fd30-EntityDecl" + "0x55588345fd30-EntityDecl" ] }, { - "id": "0x5591e059f090-DeclarationTypeSpec", + "id": "0x55588345f090-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5591e059f090-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55588345f090-IntrinsicTypeSpec" }, { - "id": "0x5591e059f090-IntrinsicTypeSpec", + "id": "0x55588345f090-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x5591e059f090-Complex" + "Complex": "0x55588345f090-Complex" }, { - "id": "0x5591e059f090-Complex", - "KindSelector": "0x5591e059f090-KindSelector" + "id": "0x55588345f090-Complex", + "KindSelector": "0x55588345f090-KindSelector" }, { - "id": "0x5591e059f090-KindSelector", + "id": "0x55588345f090-KindSelector", "variantKey": "Expr", - "Expr": "0x5591e059fb00-Expr" + "Expr": "0x55588345fb00-Expr" }, { - "id": "0x5591e059fb00-Expr", + "id": "0x55588345fb00-Expr", "variantKey": "Designator", - "Designator": "0x5591e0580d90-Designator" + "Designator": "0x555883440d90-Designator" }, { - "id": "0x5591e0580d90-Designator", + "id": "0x555883440d90-Designator", "variantKey": "DataRef", - "DataRef": "0x5591e0580da0-DataRef" + "DataRef": "0x555883440da0-DataRef" }, { - "id": "0x5591e0580da0-DataRef", + "id": "0x555883440da0-DataRef", "variantKey": "Name", - "Name": "0x5591e0580da0-Name" + "Name": "0x555883440da0-Name" }, { - "id": "0x5591e0580da0-Name", + "id": "0x555883440da0-Name", "source": "dp" }, { - "id": "0x5591e059fd30-EntityDecl", - "Name": "0x5591e059fde8-Name", - "Initialization": "0x5591e059fd30-Initialization" + "id": "0x55588345fd30-EntityDecl", + "Name": "0x55588345fde8-Name", + "Initialization": "0x55588345fd30-Initialization" }, { - "id": "0x5591e059fde8-Name", + "id": "0x55588345fde8-Name", "source": "c_double_kind" }, { - "id": "0x5591e059fd30-Initialization", + "id": "0x55588345fd30-Initialization", "variantKey": "Expr", - "Expr": "0x5591e059fc40-Expr" + "Expr": "0x55588345fc40-Expr" }, { - "id": "0x5591e059fc40-Expr", + "id": "0x55588345fc40-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5591e059fc60-LiteralConstant" + "LiteralConstant": "0x55588345fc60-LiteralConstant" }, { - "id": "0x5591e059fc60-LiteralConstant", + "id": "0x55588345fc60-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x5591e059fc60-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x55588345fc60-ComplexLiteralConstant" }, { - "id": "0x5591e059fc60-ComplexLiteralConstant", - "real": "0x5591e059fcb0-ComplexPart", - "imaginary": "0x5591e059fc60-ComplexPart" + "id": "0x55588345fc60-ComplexLiteralConstant", + "real": "0x55588345fcb0-ComplexPart", + "imaginary": "0x55588345fc60-ComplexPart" }, { - "id": "0x5591e059fcb0-ComplexPart", + "id": "0x55588345fcb0-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x5591e059fcb0-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55588345fcb0-SignedRealLiteralConstant" }, { - "id": "0x5591e059fcb0-SignedRealLiteralConstant", - "RealLiteralConstant": "0x5591e059fcb0-RealLiteralConstant" + "id": "0x55588345fcb0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55588345fcb0-RealLiteralConstant" }, { - "id": "0x5591e059fcb0-RealLiteralConstant", - "real": "0x5591e059fcb0-Real", - "kind": "0x5591e059fcc0-KindParam" + "id": "0x55588345fcb0-RealLiteralConstant", + "real": "0x55588345fcb0-Real", + "kind": "0x55588345fcc0-KindParam" }, { - "id": "0x5591e059fcb0-Real", + "id": "0x55588345fcb0-Real", "source": "2.5" }, { - "id": "0x5591e059fcc0-KindParam", + "id": "0x55588345fcc0-KindParam", "variantKey": "Expr", - "Expr": "0x5591e059fcc0-Name" + "Expr": "0x55588345fcc0-Name" }, { - "id": "0x5591e059fcc0-Name", + "id": "0x55588345fcc0-Name", "source": "dp" }, { - "id": "0x5591e059fc60-ComplexPart", + "id": "0x55588345fc60-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x5591e059fc60-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55588345fc60-SignedRealLiteralConstant" }, { - "id": "0x5591e059fc60-SignedRealLiteralConstant", + "id": "0x55588345fc60-SignedRealLiteralConstant", "Sign": "-", - "RealLiteralConstant": "0x5591e059fc60-RealLiteralConstant" + "RealLiteralConstant": "0x55588345fc60-RealLiteralConstant" }, { - "id": "0x5591e059fc60-RealLiteralConstant", - "real": "0x5591e059fc60-Real", - "kind": "0x5591e059fc70-KindParam" + "id": "0x55588345fc60-RealLiteralConstant", + "real": "0x55588345fc60-Real", + "kind": "0x55588345fc70-KindParam" }, { - "id": "0x5591e059fc60-Real", + "id": "0x55588345fc60-Real", "source": "5.5" }, { - "id": "0x5591e059fc70-KindParam", + "id": "0x55588345fc70-KindParam", "variantKey": "Expr", - "Expr": "0x5591e059fc70-Name" + "Expr": "0x55588345fc70-Name" }, { - "id": "0x5591e059fc70-Name", + "id": "0x55588345fc70-Name", "source": "dp" }, { - "id": "0x5591e05a0210-DeclarationConstruct", + "id": "0x555883460210-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5591e05a0210-SpecificationConstruct" + "SpecificationConstruct": "0x555883460210-SpecificationConstruct" }, { - "id": "0x5591e05a0210-SpecificationConstruct", + "id": "0x555883460210-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5591e05a0210-Statement" + "Statement": "0x555883460210-Statement" }, { - "id": "0x5591e05a0210-Statement", - "statement": "0x5591e059f0e0-TypeDeclarationStmt", + "id": "0x555883460210-Statement", + "statement": "0x55588345f0e0-TypeDeclarationStmt", "source": "complex(sp) :: c_single_kind =(1.0_sp, 0.5_sp)" }, { - "id": "0x5591e059f0e0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5591e059f110-DeclarationTypeSpec", + "id": "0x55588345f0e0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55588345f110-DeclarationTypeSpec", "EntityDecl": [ - "0x5591e05a0120-EntityDecl" + "0x555883460120-EntityDecl" ] }, { - "id": "0x5591e059f110-DeclarationTypeSpec", + "id": "0x55588345f110-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5591e059f110-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55588345f110-IntrinsicTypeSpec" }, { - "id": "0x5591e059f110-IntrinsicTypeSpec", + "id": "0x55588345f110-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x5591e059f110-Complex" + "Complex": "0x55588345f110-Complex" }, { - "id": "0x5591e059f110-Complex", - "KindSelector": "0x5591e059f110-KindSelector" + "id": "0x55588345f110-Complex", + "KindSelector": "0x55588345f110-KindSelector" }, { - "id": "0x5591e059f110-KindSelector", + "id": "0x55588345f110-KindSelector", "variantKey": "Expr", - "Expr": "0x5591e059fef0-Expr" + "Expr": "0x55588345fef0-Expr" }, { - "id": "0x5591e059fef0-Expr", + "id": "0x55588345fef0-Expr", "variantKey": "Designator", - "Designator": "0x5591e0581100-Designator" + "Designator": "0x555883441100-Designator" }, { - "id": "0x5591e0581100-Designator", + "id": "0x555883441100-Designator", "variantKey": "DataRef", - "DataRef": "0x5591e0581110-DataRef" + "DataRef": "0x555883441110-DataRef" }, { - "id": "0x5591e0581110-DataRef", + "id": "0x555883441110-DataRef", "variantKey": "Name", - "Name": "0x5591e0581110-Name" + "Name": "0x555883441110-Name" }, { - "id": "0x5591e0581110-Name", + "id": "0x555883441110-Name", "source": "sp" }, { - "id": "0x5591e05a0120-EntityDecl", - "Name": "0x5591e05a01d8-Name", - "Initialization": "0x5591e05a0120-Initialization" + "id": "0x555883460120-EntityDecl", + "Name": "0x5558834601d8-Name", + "Initialization": "0x555883460120-Initialization" }, { - "id": "0x5591e05a01d8-Name", + "id": "0x5558834601d8-Name", "source": "c_single_kind" }, { - "id": "0x5591e05a0120-Initialization", + "id": "0x555883460120-Initialization", "variantKey": "Expr", - "Expr": "0x5591e05a0030-Expr" + "Expr": "0x555883460030-Expr" }, { - "id": "0x5591e05a0030-Expr", + "id": "0x555883460030-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5591e05a0050-LiteralConstant" + "LiteralConstant": "0x555883460050-LiteralConstant" }, { - "id": "0x5591e05a0050-LiteralConstant", + "id": "0x555883460050-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x5591e05a0050-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x555883460050-ComplexLiteralConstant" }, { - "id": "0x5591e05a0050-ComplexLiteralConstant", - "real": "0x5591e05a00a0-ComplexPart", - "imaginary": "0x5591e05a0050-ComplexPart" + "id": "0x555883460050-ComplexLiteralConstant", + "real": "0x5558834600a0-ComplexPart", + "imaginary": "0x555883460050-ComplexPart" }, { - "id": "0x5591e05a00a0-ComplexPart", + "id": "0x5558834600a0-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x5591e05a00a0-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x5558834600a0-SignedRealLiteralConstant" }, { - "id": "0x5591e05a00a0-SignedRealLiteralConstant", - "RealLiteralConstant": "0x5591e05a00a0-RealLiteralConstant" + "id": "0x5558834600a0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x5558834600a0-RealLiteralConstant" }, { - "id": "0x5591e05a00a0-RealLiteralConstant", - "real": "0x5591e05a00a0-Real", - "kind": "0x5591e05a00b0-KindParam" + "id": "0x5558834600a0-RealLiteralConstant", + "real": "0x5558834600a0-Real", + "kind": "0x5558834600b0-KindParam" }, { - "id": "0x5591e05a00a0-Real", + "id": "0x5558834600a0-Real", "source": "1.0" }, { - "id": "0x5591e05a00b0-KindParam", + "id": "0x5558834600b0-KindParam", "variantKey": "Expr", - "Expr": "0x5591e05a00b0-Name" + "Expr": "0x5558834600b0-Name" }, { - "id": "0x5591e05a00b0-Name", + "id": "0x5558834600b0-Name", "source": "sp" }, { - "id": "0x5591e05a0050-ComplexPart", + "id": "0x555883460050-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x5591e05a0050-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x555883460050-SignedRealLiteralConstant" }, { - "id": "0x5591e05a0050-SignedRealLiteralConstant", - "RealLiteralConstant": "0x5591e05a0050-RealLiteralConstant" + "id": "0x555883460050-SignedRealLiteralConstant", + "RealLiteralConstant": "0x555883460050-RealLiteralConstant" }, { - "id": "0x5591e05a0050-RealLiteralConstant", - "real": "0x5591e05a0050-Real", - "kind": "0x5591e05a0060-KindParam" + "id": "0x555883460050-RealLiteralConstant", + "real": "0x555883460050-Real", + "kind": "0x555883460060-KindParam" }, { - "id": "0x5591e05a0050-Real", + "id": "0x555883460050-Real", "source": "0.5" }, { - "id": "0x5591e05a0060-KindParam", + "id": "0x555883460060-KindParam", "variantKey": "Expr", - "Expr": "0x5591e05a0060-Name" + "Expr": "0x555883460060-Name" }, { - "id": "0x5591e05a0060-Name", + "id": "0x555883460060-Name", "source": "sp" }, { - "id": "0x5591e05a4098-ExecutionPart" + "id": "0x555883464098-ExecutionPart" }, { - "id": "0x5591e05a4098-list" + "id": "0x555883464098-list" }, { - "id": "0x5591e05a4010-Statement", - "statement": "0x5591e05a4020-EndProgramStmt", + "id": "0x555883464010-Statement", + "statement": "0x555883464020-EndProgramStmt", "source": "end program COMPLEX_LITERAL" }, { - "id": "0x5591e05a4020-EndProgramStmt", - "Name": "0x5591e05a4020-Name" + "id": "0x555883464020-EndProgramStmt", + "Name": "0x555883464020-Name" }, { - "id": "0x5591e05a4020-Name", + "id": "0x555883464020-Name", "source": "COMPLEX_LITERAL" } ], "comments": [ { "text": " 1. Basic Default Real Literals", - "stmtId": "0x5591e059eab0-Statement", + "stmtId": "0x55588345eab0-Statement", "trailing": false }, { "text": " 2. Integer Components (automatically converted to real)", - "stmtId": "0x5591e059ed60-Statement", + "stmtId": "0x55588345ed60-Statement", "trailing": false }, { "text": " 3. Scientific / Exponential Notation", - "stmtId": "0x5591e059f010-Statement", + "stmtId": "0x55588345f010-Statement", "trailing": false }, { "text": " Represents (150.0, -0.2)", - "stmtId": "0x5591e059f010-Statement", + "stmtId": "0x55588345f010-Statement", "trailing": true }, { "text": " 4. Double Precision (using 'd' exponent notation)", - "stmtId": "0x5591e059fa30-Statement", + "stmtId": "0x55588345fa30-Statement", "trailing": false }, { "text": " 5. Kind Parameter Suffixes (Modern Standard)", - "stmtId": "0x5591e059fe20-Statement", + "stmtId": "0x55588345fe20-Statement", "trailing": false } ], diff --git a/FortranParser/resources-test/fortran/parser/omp/omp_basic.json b/FortranParser/resources-test/fortran/parser/omp/omp_basic.json index 022b647b..7e815e70 100644 --- a/FortranParser/resources-test/fortran/parser/omp/omp_basic.json +++ b/FortranParser/resources-test/fortran/parser/omp/omp_basic.json @@ -2,266 +2,267 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x557e00a61f00-Program", + "id": "0x562f9e471f00-Program", "ProgramUnit": [ - "0x557e00a9bae0-ProgramUnit" + "0x562f9e4abae0-ProgramUnit" ] }, { - "id": "0x557e00a9bae0-ProgramUnit", + "id": "0x562f9e4abae0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x557e00a8cae0-MainProgram" + "MainProgram": "0x562f9e49cae0-MainProgram" }, { - "id": "0x557e00a8cae0-MainProgram", - "Statement": "0x557e00a8cc28-Statement", - "SpecificationPart": "0x557e00a8cb80-SpecificationPart", - "ExecutionPart": "0x557e00a8cb68-ExecutionPart", - "Statement": "0x557e00a8cae0-Statement" + "id": "0x562f9e49cae0-MainProgram", + "Statement": "0x562f9e49cc28-Statement", + "SpecificationPart": "0x562f9e49cb80-SpecificationPart", + "ExecutionPart": "0x562f9e49cb68-ExecutionPart", + "Statement": "0x562f9e49cae0-Statement" }, { - "id": "0x557e00a8cc28-Statement", - "statement": "0x557e00a8cc38-ProgramStmt", + "id": "0x562f9e49cc28-Statement", + "statement": "0x562f9e49cc38-ProgramStmt", "source": "program OPENMP_DEMO" }, { - "id": "0x557e00a8cc38-ProgramStmt", - "Name": "0x557e00a8cc38-Name" + "id": "0x562f9e49cc38-ProgramStmt", + "Name": "0x562f9e49cc38-Name" }, { - "id": "0x557e00a8cc38-Name", + "id": "0x562f9e49cc38-Name", "source": "OPENMP_DEMO" }, { - "id": "0x557e00a8cb80-SpecificationPart", + "id": "0x562f9e49cb80-SpecificationPart", "Statement": [ - "0x557e00a96c00-Statement" + "0x562f9e4a6c00-Statement" ], - "ImplicitPart": "0x557e00a8cb98-ImplicitPart", + "ImplicitPart": "0x562f9e49cb98-ImplicitPart", "DeclarationConstruct": [ - "0x557e00a6f170-DeclarationConstruct" + "0x562f9e47f170-DeclarationConstruct" ] }, { - "id": "0x557e00a96c00-Statement", - "statement": "0x557e00aa5600-UseStmt", + "id": "0x562f9e4a6c00-Statement", + "statement": "0x562f9e4b5600-UseStmt", "source": "use omp_lib" }, { - "id": "0x557e00aa5600-UseStmt", - "moduleName": "0x557e00aa5608-Name", - "renameList": [] + "id": "0x562f9e4b5600-UseStmt", + "moduleName": "0x562f9e4b5608-Name", + "variantKey": "Rename", + "Rename": [] }, { - "id": "0x557e00aa5608-Name", + "id": "0x562f9e4b5608-Name", "source": "omp_lib" }, { - "id": "0x557e00a8cb98-ImplicitPart" + "id": "0x562f9e49cb98-ImplicitPart" }, { - "id": "0x557e00a6f170-DeclarationConstruct", + "id": "0x562f9e47f170-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x557e00a6f170-SpecificationConstruct" + "SpecificationConstruct": "0x562f9e47f170-SpecificationConstruct" }, { - "id": "0x557e00a6f170-SpecificationConstruct", + "id": "0x562f9e47f170-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x557e00a6f170-Statement" + "Statement": "0x562f9e47f170-Statement" }, { - "id": "0x557e00a6f170-Statement", - "statement": "0x557e00a9bde0-TypeDeclarationStmt", + "id": "0x562f9e47f170-Statement", + "statement": "0x562f9e4abde0-TypeDeclarationStmt", "source": "integer :: total_sum" }, { - "id": "0x557e00a9bde0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x557e00a9be10-DeclarationTypeSpec", + "id": "0x562f9e4abde0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x562f9e4abe10-DeclarationTypeSpec", "EntityDecl": [ - "0x557e00a9bef0-EntityDecl" + "0x562f9e4abef0-EntityDecl" ] }, { - "id": "0x557e00a9be10-DeclarationTypeSpec", + "id": "0x562f9e4abe10-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x557e00a9be10-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x562f9e4abe10-IntrinsicTypeSpec" }, { - "id": "0x557e00a9be10-IntrinsicTypeSpec", + "id": "0x562f9e4abe10-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x557e00a9be10-IntegerTypeSpec" + "IntegerTypeSpec": "0x562f9e4abe10-IntegerTypeSpec" }, { - "id": "0x557e00a9be10-IntegerTypeSpec" + "id": "0x562f9e4abe10-IntegerTypeSpec" }, { - "id": "0x557e00a9bef0-EntityDecl", - "Name": "0x557e00a9bfa8-Name" + "id": "0x562f9e4abef0-EntityDecl", + "Name": "0x562f9e4abfa8-Name" }, { - "id": "0x557e00a9bfa8-Name", + "id": "0x562f9e4abfa8-Name", "source": "total_sum" }, { - "id": "0x557e00a8cb68-ExecutionPart", + "id": "0x562f9e49cb68-ExecutionPart", "ExecutionPartConstruct": [ - "0x557e00a96700-ExecutionPartConstruct" + "0x562f9e4a6700-ExecutionPartConstruct" ] }, { - "id": "0x557e00a8cb68-ExecutionPartConstruct" + "id": "0x562f9e49cb68-ExecutionPartConstruct" }, { - "id": "0x557e00a96700-ExecutionPartConstruct", + "id": "0x562f9e4a6700-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557e00a96700-ExecutableConstruct" + "ExecutableConstruct": "0x562f9e4a6700-ExecutableConstruct" }, { - "id": "0x557e00a96700-ExecutableConstruct", + "id": "0x562f9e4a6700-ExecutableConstruct", "variantKey": "OpenMPConstruct", - "OpenMPConstruct": "0x557e00a9cb20-OpenMPConstruct" + "OpenMPConstruct": "0x562f9e4acb20-OpenMPConstruct" }, { - "id": "0x557e00a9cb20-OpenMPConstruct", + "id": "0x562f9e4acb20-OpenMPConstruct", "variantKey": "OmpBlockConstruct", - "OmpBlockConstruct": "0x557e00a9cb20-OmpBlockConstruct" + "OmpBlockConstruct": "0x562f9e4acb20-OmpBlockConstruct" }, { - "id": "0x557e00a9cb20-OmpBlockConstruct", - "OmpBeginDirective": "0x557e00a9cbe0-OmpBeginDirective", + "id": "0x562f9e4acb20-OmpBlockConstruct", + "OmpBeginDirective": "0x562f9e4acbe0-OmpBeginDirective", "ExecutionPartConstruct": [ - "0x557e00a9cad0-ExecutionPartConstruct" + "0x562f9e4acad0-ExecutionPartConstruct" ], - "OmpEndDirective": "0x557e00a9cb30-OmpEndDirective" + "OmpEndDirective": "0x562f9e4acb30-OmpEndDirective" }, { - "id": "0x557e00a9cbe0-OmpBeginDirective", - "OmpDirectiveName": "0x557e00a9cc58-OmpDirectiveName", - "OmpClauseList": "0x557e00a9cbf8-OmpClauseList", - "Flags = {}": "0x557e00a9cbf0-Flags = {}" + "id": "0x562f9e4acbe0-OmpBeginDirective", + "OmpDirectiveName": "0x562f9e4acc58-OmpDirectiveName", + "OmpClauseList": "0x562f9e4acbf8-OmpClauseList", + "Flags = {}": "0x562f9e4acbf0-Flags = {}" }, { - "id": "0x557e00a9cc58-OmpDirectiveName", + "id": "0x562f9e4acc58-OmpDirectiveName", "directive": "parallel" }, { - "id": "0x557e00a9cbf8-OmpClauseList" + "id": "0x562f9e4acbf8-OmpClauseList" }, { - "id": "0x557e00a9cbc8-ExecutionPartConstruct" + "id": "0x562f9e4acbc8-ExecutionPartConstruct" }, { - "id": "0x557e00a9cad0-ExecutionPartConstruct", + "id": "0x562f9e4acad0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557e00a9cad0-ExecutableConstruct" + "ExecutableConstruct": "0x562f9e4acad0-ExecutableConstruct" }, { - "id": "0x557e00a9cad0-ExecutableConstruct", + "id": "0x562f9e4acad0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x557e00a9cad0-Statement" + "Statement": "0x562f9e4acad0-Statement" }, { - "id": "0x557e00a9cad0-Statement", - "statement": "0x557e00a9cae0-ActionStmt", + "id": "0x562f9e4acad0-Statement", + "statement": "0x562f9e4acae0-ActionStmt", "source": "total_sum = total_sum + 1" }, { - "id": "0x557e00a9cae0-ActionStmt", + "id": "0x562f9e4acae0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x557e00a6fce0-AssignmentStmt" + "AssignmentStmt": "0x562f9e47fce0-AssignmentStmt" }, { - "id": "0x557e00a6fce0-AssignmentStmt", - "Variable": "0x557e00a6fdc0-Variable", - "Expr": "0x557e00a6fcf0-Expr" + "id": "0x562f9e47fce0-AssignmentStmt", + "Variable": "0x562f9e47fdc0-Variable", + "Expr": "0x562f9e47fcf0-Expr" }, { - "id": "0x557e00a6fdc0-Variable", + "id": "0x562f9e47fdc0-Variable", "variantKey": "Designator", - "Designator": "0x557e00a9e340-Designator" + "Designator": "0x562f9e4ae340-Designator" }, { - "id": "0x557e00a9e340-Designator", + "id": "0x562f9e4ae340-Designator", "variantKey": "DataRef", - "DataRef": "0x557e00a9e350-DataRef" + "DataRef": "0x562f9e4ae350-DataRef" }, { - "id": "0x557e00a9e350-DataRef", + "id": "0x562f9e4ae350-DataRef", "variantKey": "Name", - "Name": "0x557e00a9e350-Name" + "Name": "0x562f9e4ae350-Name" }, { - "id": "0x557e00a9e350-Name", + "id": "0x562f9e4ae350-Name", "source": "total_sum" }, { - "id": "0x557e00a6fcf0-Expr", + "id": "0x562f9e47fcf0-Expr", "variantKey": "Add", - "Add": "0x557e00a6fd10-Add" + "Add": "0x562f9e47fd10-Add" }, { - "id": "0x557e00a6fd10-Add", - "left": "0x557e00a9c980-Expr", - "right": "0x557e00a9c050-Expr", + "id": "0x562f9e47fd10-Add", + "left": "0x562f9e4ac980-Expr", + "right": "0x562f9e4ac050-Expr", "op": "ADD" }, { - "id": "0x557e00a9c980-Expr", + "id": "0x562f9e4ac980-Expr", "variantKey": "Designator", - "Designator": "0x557e00a9c8c0-Designator" + "Designator": "0x562f9e4ac8c0-Designator" }, { - "id": "0x557e00a9c8c0-Designator", + "id": "0x562f9e4ac8c0-Designator", "variantKey": "DataRef", - "DataRef": "0x557e00a9c8d0-DataRef" + "DataRef": "0x562f9e4ac8d0-DataRef" }, { - "id": "0x557e00a9c8d0-DataRef", + "id": "0x562f9e4ac8d0-DataRef", "variantKey": "Name", - "Name": "0x557e00a9c8d0-Name" + "Name": "0x562f9e4ac8d0-Name" }, { - "id": "0x557e00a9c8d0-Name", + "id": "0x562f9e4ac8d0-Name", "source": "total_sum" }, { - "id": "0x557e00a9c050-Expr", + "id": "0x562f9e4ac050-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x557e00a9c070-LiteralConstant" + "LiteralConstant": "0x562f9e4ac070-LiteralConstant" }, { - "id": "0x557e00a9c070-LiteralConstant", + "id": "0x562f9e4ac070-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x557e00a9c070-IntLiteralConstant" + "IntLiteralConstant": "0x562f9e4ac070-IntLiteralConstant" }, { - "id": "0x557e00a9c070-IntLiteralConstant", + "id": "0x562f9e4ac070-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x557e00a9cb30-OmpEndDirective", - "OmpDirectiveName": "0x557e00a9cba8-OmpDirectiveName", - "OmpClauseList": "0x557e00a9cb48-OmpClauseList", - "Flags = {}": "0x557e00a9cb40-Flags = {}" + "id": "0x562f9e4acb30-OmpEndDirective", + "OmpDirectiveName": "0x562f9e4acba8-OmpDirectiveName", + "OmpClauseList": "0x562f9e4acb48-OmpClauseList", + "Flags = {}": "0x562f9e4acb40-Flags = {}" }, { - "id": "0x557e00a9cba8-OmpDirectiveName", + "id": "0x562f9e4acba8-OmpDirectiveName", "directive": "parallel" }, { - "id": "0x557e00a9cb48-OmpClauseList" + "id": "0x562f9e4acb48-OmpClauseList" }, { - "id": "0x557e00a8cae0-Statement", - "statement": "0x557e00a8caf0-EndProgramStmt", + "id": "0x562f9e49cae0-Statement", + "statement": "0x562f9e49caf0-EndProgramStmt", "source": "end program OPENMP_DEMO" }, { - "id": "0x557e00a8caf0-EndProgramStmt", - "Name": "0x557e00a8caf0-Name" + "id": "0x562f9e49caf0-EndProgramStmt", + "Name": "0x562f9e49caf0-Name" }, { - "id": "0x557e00a8caf0-Name", + "id": "0x562f9e49caf0-Name", "source": "OPENMP_DEMO" } ], diff --git a/FortranParser/resources-test/fortran/parser/omp/omp_clause.json b/FortranParser/resources-test/fortran/parser/omp/omp_clause.json index 9a635d70..1995dcb7 100644 --- a/FortranParser/resources-test/fortran/parser/omp/omp_clause.json +++ b/FortranParser/resources-test/fortran/parser/omp/omp_clause.json @@ -2,551 +2,552 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x55df82fa3f00-Program", + "id": "0x556c88f9ef00-Program", "ProgramUnit": [ - "0x55df82fe0400-ProgramUnit" + "0x556c88fdb400-ProgramUnit" ] }, { - "id": "0x55df82fe0400-ProgramUnit", + "id": "0x556c88fdb400-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x55df82fcf5d0-MainProgram" + "MainProgram": "0x556c88fca5d0-MainProgram" }, { - "id": "0x55df82fcf5d0-MainProgram", - "Statement": "0x55df82fcf718-Statement", - "SpecificationPart": "0x55df82fcf670-SpecificationPart", - "ExecutionPart": "0x55df82fcf658-ExecutionPart", - "Statement": "0x55df82fcf5d0-Statement" + "id": "0x556c88fca5d0-MainProgram", + "Statement": "0x556c88fca718-Statement", + "SpecificationPart": "0x556c88fca670-SpecificationPart", + "ExecutionPart": "0x556c88fca658-ExecutionPart", + "Statement": "0x556c88fca5d0-Statement" }, { - "id": "0x55df82fcf718-Statement", - "statement": "0x55df82fcf728-ProgramStmt", + "id": "0x556c88fca718-Statement", + "statement": "0x556c88fca728-ProgramStmt", "source": "program OPENMP_DEMO" }, { - "id": "0x55df82fcf728-ProgramStmt", - "Name": "0x55df82fcf728-Name" + "id": "0x556c88fca728-ProgramStmt", + "Name": "0x556c88fca728-Name" }, { - "id": "0x55df82fcf728-Name", + "id": "0x556c88fca728-Name", "source": "OPENMP_DEMO" }, { - "id": "0x55df82fcf670-SpecificationPart", + "id": "0x556c88fca670-SpecificationPart", "Statement": [ - "0x55df82fd8cf0-Statement" + "0x556c88fd3cf0-Statement" ], - "ImplicitPart": "0x55df82fcf688-ImplicitPart", + "ImplicitPart": "0x556c88fca688-ImplicitPart", "DeclarationConstruct": [ - "0x55df82fb1170-DeclarationConstruct", - "0x55df82fb0da0-DeclarationConstruct" + "0x556c88fac170-DeclarationConstruct", + "0x556c88fabda0-DeclarationConstruct" ] }, { - "id": "0x55df82fd8cf0-Statement", - "statement": "0x55df82fe7950-UseStmt", + "id": "0x556c88fd3cf0-Statement", + "statement": "0x556c88fe2950-UseStmt", "source": "use omp_lib" }, { - "id": "0x55df82fe7950-UseStmt", - "moduleName": "0x55df82fe7958-Name", - "renameList": [] + "id": "0x556c88fe2950-UseStmt", + "moduleName": "0x556c88fe2958-Name", + "variantKey": "Rename", + "Rename": [] }, { - "id": "0x55df82fe7958-Name", + "id": "0x556c88fe2958-Name", "source": "omp_lib" }, { - "id": "0x55df82fcf688-ImplicitPart" + "id": "0x556c88fca688-ImplicitPart" }, { - "id": "0x55df82fb1170-DeclarationConstruct", + "id": "0x556c88fac170-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55df82fb1170-SpecificationConstruct" + "SpecificationConstruct": "0x556c88fac170-SpecificationConstruct" }, { - "id": "0x55df82fb1170-SpecificationConstruct", + "id": "0x556c88fac170-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55df82fb1170-Statement" + "Statement": "0x556c88fac170-Statement" }, { - "id": "0x55df82fb1170-Statement", - "statement": "0x55df82fde220-TypeDeclarationStmt", + "id": "0x556c88fac170-Statement", + "statement": "0x556c88fd9220-TypeDeclarationStmt", "source": "integer :: i, thread_id, num_threads, total_sum" }, { - "id": "0x55df82fde220-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55df82fde250-DeclarationTypeSpec", + "id": "0x556c88fd9220-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x556c88fd9250-DeclarationTypeSpec", "EntityDecl": [ - "0x55df82fde600-EntityDecl", - "0x55df82fde330-EntityDecl", - "0x55df82fde420-EntityDecl", - "0x55df82fde510-EntityDecl" + "0x556c88fd9600-EntityDecl", + "0x556c88fd9330-EntityDecl", + "0x556c88fd9420-EntityDecl", + "0x556c88fd9510-EntityDecl" ] }, { - "id": "0x55df82fde250-DeclarationTypeSpec", + "id": "0x556c88fd9250-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55df82fde250-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x556c88fd9250-IntrinsicTypeSpec" }, { - "id": "0x55df82fde250-IntrinsicTypeSpec", + "id": "0x556c88fd9250-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55df82fde250-IntegerTypeSpec" + "IntegerTypeSpec": "0x556c88fd9250-IntegerTypeSpec" }, { - "id": "0x55df82fde250-IntegerTypeSpec" + "id": "0x556c88fd9250-IntegerTypeSpec" }, { - "id": "0x55df82fde600-EntityDecl", - "Name": "0x55df82fde6b8-Name" + "id": "0x556c88fd9600-EntityDecl", + "Name": "0x556c88fd96b8-Name" }, { - "id": "0x55df82fde6b8-Name", + "id": "0x556c88fd96b8-Name", "source": "i" }, { - "id": "0x55df82fde330-EntityDecl", - "Name": "0x55df82fde3e8-Name" + "id": "0x556c88fd9330-EntityDecl", + "Name": "0x556c88fd93e8-Name" }, { - "id": "0x55df82fde3e8-Name", + "id": "0x556c88fd93e8-Name", "source": "thread_id" }, { - "id": "0x55df82fde420-EntityDecl", - "Name": "0x55df82fde4d8-Name" + "id": "0x556c88fd9420-EntityDecl", + "Name": "0x556c88fd94d8-Name" }, { - "id": "0x55df82fde4d8-Name", + "id": "0x556c88fd94d8-Name", "source": "num_threads" }, { - "id": "0x55df82fde510-EntityDecl", - "Name": "0x55df82fde5c8-Name" + "id": "0x556c88fd9510-EntityDecl", + "Name": "0x556c88fd95c8-Name" }, { - "id": "0x55df82fde5c8-Name", + "id": "0x556c88fd95c8-Name", "source": "total_sum" }, { - "id": "0x55df82fb0da0-DeclarationConstruct", + "id": "0x556c88fabda0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55df82fb0da0-SpecificationConstruct" + "SpecificationConstruct": "0x556c88fabda0-SpecificationConstruct" }, { - "id": "0x55df82fb0da0-SpecificationConstruct", + "id": "0x556c88fabda0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55df82fb0da0-Statement" + "Statement": "0x556c88fabda0-Statement" }, { - "id": "0x55df82fb0da0-Statement", - "statement": "0x55df82fde2a0-TypeDeclarationStmt", + "id": "0x556c88fabda0-Statement", + "statement": "0x556c88fd92a0-TypeDeclarationStmt", "source": "integer :: shared_counter = 0" }, { - "id": "0x55df82fde2a0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55df82fde2d0-DeclarationTypeSpec", + "id": "0x556c88fd92a0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x556c88fd92d0-DeclarationTypeSpec", "EntityDecl": [ - "0x55df82fde7e0-EntityDecl" + "0x556c88fd97e0-EntityDecl" ] }, { - "id": "0x55df82fde2d0-DeclarationTypeSpec", + "id": "0x556c88fd92d0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55df82fde2d0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x556c88fd92d0-IntrinsicTypeSpec" }, { - "id": "0x55df82fde2d0-IntrinsicTypeSpec", + "id": "0x556c88fd92d0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55df82fde2d0-IntegerTypeSpec" + "IntegerTypeSpec": "0x556c88fd92d0-IntegerTypeSpec" }, { - "id": "0x55df82fde2d0-IntegerTypeSpec" + "id": "0x556c88fd92d0-IntegerTypeSpec" }, { - "id": "0x55df82fde7e0-EntityDecl", - "Name": "0x55df82fde898-Name", - "Initialization": "0x55df82fde7e0-Initialization" + "id": "0x556c88fd97e0-EntityDecl", + "Name": "0x556c88fd9898-Name", + "Initialization": "0x556c88fd97e0-Initialization" }, { - "id": "0x55df82fde898-Name", + "id": "0x556c88fd9898-Name", "source": "shared_counter" }, { - "id": "0x55df82fde7e0-Initialization", + "id": "0x556c88fd97e0-Initialization", "variantKey": "Expr", - "Expr": "0x55df82f43790-Expr" + "Expr": "0x556c88f3e790-Expr" }, { - "id": "0x55df82f43790-Expr", + "id": "0x556c88f3e790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55df82f437b0-LiteralConstant" + "LiteralConstant": "0x556c88f3e7b0-LiteralConstant" }, { - "id": "0x55df82f437b0-LiteralConstant", + "id": "0x556c88f3e7b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55df82f437b0-IntLiteralConstant" + "IntLiteralConstant": "0x556c88f3e7b0-IntLiteralConstant" }, { - "id": "0x55df82f437b0-IntLiteralConstant", + "id": "0x556c88f3e7b0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55df82fcf658-ExecutionPart", + "id": "0x556c88fca658-ExecutionPart", "ExecutionPartConstruct": [ - "0x55df82fdf780-ExecutionPartConstruct" + "0x556c88fda780-ExecutionPartConstruct" ] }, { - "id": "0x55df82fcf658-ExecutionPartConstruct" + "id": "0x556c88fca658-ExecutionPartConstruct" }, { - "id": "0x55df82fdf780-ExecutionPartConstruct", + "id": "0x556c88fda780-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55df82fdf780-ExecutableConstruct" + "ExecutableConstruct": "0x556c88fda780-ExecutableConstruct" }, { - "id": "0x55df82fdf780-ExecutableConstruct", + "id": "0x556c88fda780-ExecutableConstruct", "variantKey": "OpenMPConstruct", - "OpenMPConstruct": "0x55df82fdfb90-OpenMPConstruct" + "OpenMPConstruct": "0x556c88fdab90-OpenMPConstruct" }, { - "id": "0x55df82fdfb90-OpenMPConstruct", + "id": "0x556c88fdab90-OpenMPConstruct", "variantKey": "OmpBlockConstruct", - "OmpBlockConstruct": "0x55df82fdfb90-OmpBlockConstruct" + "OmpBlockConstruct": "0x556c88fdab90-OmpBlockConstruct" }, { - "id": "0x55df82fdfb90-OmpBlockConstruct", - "OmpBeginDirective": "0x55df82fdfc50-OmpBeginDirective", + "id": "0x556c88fdab90-OmpBlockConstruct", + "OmpBeginDirective": "0x556c88fdac50-OmpBeginDirective", "ExecutionPartConstruct": [ - "0x55df82fdf720-ExecutionPartConstruct" + "0x556c88fda720-ExecutionPartConstruct" ], - "OmpEndDirective": "0x55df82fdfba0-OmpEndDirective" + "OmpEndDirective": "0x556c88fdaba0-OmpEndDirective" }, { - "id": "0x55df82fdfc50-OmpBeginDirective", - "OmpDirectiveName": "0x55df82fdfcc8-OmpDirectiveName", - "OmpClauseList": "0x55df82fdfc68-OmpClauseList", - "Flags = {}": "0x55df82fdfc60-Flags = {}" + "id": "0x556c88fdac50-OmpBeginDirective", + "OmpDirectiveName": "0x556c88fdacc8-OmpDirectiveName", + "OmpClauseList": "0x556c88fdac68-OmpClauseList", + "Flags = {}": "0x556c88fdac60-Flags = {}" }, { - "id": "0x55df82fdfcc8-OmpDirectiveName", + "id": "0x556c88fdacc8-OmpDirectiveName", "directive": "parallel" }, { - "id": "0x55df82fdfc68-OmpClauseList", + "id": "0x556c88fdac68-OmpClauseList", "OmpClause": [ - "0x55df82fdf240-OmpClause", - "0x55df82fdf3c0-OmpClause" + "0x556c88fda240-OmpClause", + "0x556c88fda3c0-OmpClause" ] }, { - "id": "0x55df82fdf240-OmpClause", + "id": "0x556c88fda240-OmpClause", "variantKey": "Private", - "Private": "0x55df82fdf250-Private" + "Private": "0x556c88fda250-Private" }, { - "id": "0x55df82fdf250-Private", - "OmpObjectList": "0x55df82fdf250-OmpObjectList", + "id": "0x556c88fda250-Private", + "OmpObjectList": "0x556c88fda250-OmpObjectList", "kind": "PRIVATE" }, { - "id": "0x55df82fdf250-OmpObjectList", + "id": "0x556c88fda250-OmpObjectList", "OmpObject": [ - "0x55df82fd9350-OmpObject" + "0x556c88fd4350-OmpObject" ] }, { - "id": "0x55df82fd9350-OmpObject", + "id": "0x556c88fd4350-OmpObject", "variantKey": "Designator", - "Designator": "0x55df82fd9350-Designator" + "Designator": "0x556c88fd4350-Designator" }, { - "id": "0x55df82fd9350-Designator", + "id": "0x556c88fd4350-Designator", "variantKey": "DataRef", - "DataRef": "0x55df82fd9360-DataRef" + "DataRef": "0x556c88fd4360-DataRef" }, { - "id": "0x55df82fd9360-DataRef", + "id": "0x556c88fd4360-DataRef", "variantKey": "Name", - "Name": "0x55df82fd9360-Name" + "Name": "0x556c88fd4360-Name" }, { - "id": "0x55df82fd9360-Name", + "id": "0x556c88fd4360-Name", "source": "i" }, { - "id": "0x55df82fdf3c0-OmpClause", + "id": "0x556c88fda3c0-OmpClause", "variantKey": "Shared", - "Shared": "0x55df82fdf3d0-Shared" + "Shared": "0x556c88fda3d0-Shared" }, { - "id": "0x55df82fdf3d0-Shared", - "OmpObjectList": "0x55df82fdf3d0-OmpObjectList", + "id": "0x556c88fda3d0-Shared", + "OmpObjectList": "0x556c88fda3d0-OmpObjectList", "kind": "SHARED" }, { - "id": "0x55df82fdf3d0-OmpObjectList", + "id": "0x556c88fda3d0-OmpObjectList", "OmpObject": [ - "0x55df82fe15f0-OmpObject" + "0x556c88fdc5f0-OmpObject" ] }, { - "id": "0x55df82fe15f0-OmpObject", + "id": "0x556c88fdc5f0-OmpObject", "variantKey": "Designator", - "Designator": "0x55df82fe15f0-Designator" + "Designator": "0x556c88fdc5f0-Designator" }, { - "id": "0x55df82fe15f0-Designator", + "id": "0x556c88fdc5f0-Designator", "variantKey": "DataRef", - "DataRef": "0x55df82fe1600-DataRef" + "DataRef": "0x556c88fdc600-DataRef" }, { - "id": "0x55df82fe1600-DataRef", + "id": "0x556c88fdc600-DataRef", "variantKey": "Name", - "Name": "0x55df82fe1600-Name" + "Name": "0x556c88fdc600-Name" }, { - "id": "0x55df82fe1600-Name", + "id": "0x556c88fdc600-Name", "source": "num_threads" }, { - "id": "0x55df82fdfc38-ExecutionPartConstruct" + "id": "0x556c88fdac38-ExecutionPartConstruct" }, { - "id": "0x55df82fdf720-ExecutionPartConstruct", + "id": "0x556c88fda720-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55df82fdf720-ExecutableConstruct" + "ExecutableConstruct": "0x556c88fda720-ExecutableConstruct" }, { - "id": "0x55df82fdf720-ExecutableConstruct", + "id": "0x556c88fda720-ExecutableConstruct", "variantKey": "OpenMPConstruct", - "OpenMPConstruct": "0x55df82fdf940-OpenMPConstruct" + "OpenMPConstruct": "0x556c88fda940-OpenMPConstruct" }, { - "id": "0x55df82fdf940-OpenMPConstruct", + "id": "0x556c88fda940-OpenMPConstruct", "variantKey": "OpenMPLoopConstruct", - "OpenMPLoopConstruct": "0x55df82fdf940-OpenMPLoopConstruct" + "OpenMPLoopConstruct": "0x556c88fda940-OpenMPLoopConstruct" }, { - "id": "0x55df82fdf940-OpenMPLoopConstruct", - "OmpBeginLoopDirective": "0x55df82fdfa00-OmpBeginLoopDirective", + "id": "0x556c88fda940-OpenMPLoopConstruct", + "OmpBeginLoopDirective": "0x556c88fdaa00-OmpBeginLoopDirective", "ExecutionPartConstruct": [ - "0x55df82fe06a0-ExecutionPartConstruct" + "0x556c88fdb6a0-ExecutionPartConstruct" ], - "OmpEndLoopDirective": "0x55df82fdf950-OmpEndLoopDirective" + "OmpEndLoopDirective": "0x556c88fda950-OmpEndLoopDirective" }, { - "id": "0x55df82fdfa00-OmpBeginLoopDirective", - "OmpDirectiveName": "0x55df82fdfa78-OmpDirectiveName", - "OmpClauseList": "0x55df82fdfa18-OmpClauseList", - "Flags = {}": "0x55df82fdfa10-Flags = {}" + "id": "0x556c88fdaa00-OmpBeginLoopDirective", + "OmpDirectiveName": "0x556c88fdaa78-OmpDirectiveName", + "OmpClauseList": "0x556c88fdaa18-OmpClauseList", + "Flags = {}": "0x556c88fdaa10-Flags = {}" }, { - "id": "0x55df82fdfa78-OmpDirectiveName", + "id": "0x556c88fdaa78-OmpDirectiveName", "directive": "do" }, { - "id": "0x55df82fdfa18-OmpClauseList" + "id": "0x556c88fdaa18-OmpClauseList" }, { - "id": "0x55df82fdf9e8-ExecutionPartConstruct" + "id": "0x556c88fda9e8-ExecutionPartConstruct" }, { - "id": "0x55df82fe06a0-ExecutionPartConstruct", + "id": "0x556c88fdb6a0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55df82fe06a0-ExecutableConstruct" + "ExecutableConstruct": "0x556c88fdb6a0-ExecutableConstruct" }, { - "id": "0x55df82fe06a0-ExecutableConstruct", + "id": "0x556c88fdb6a0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55df82f59260-DoConstruct" + "DoConstruct": "0x556c88f54260-DoConstruct" }, { - "id": "0x55df82f59260-DoConstruct", - "Statement": "0x55df82f592b8-Statement", + "id": "0x556c88f54260-DoConstruct", + "Statement": "0x556c88f542b8-Statement", "ExecutionPartConstruct": [ - "0x55df82fe0c90-ExecutionPartConstruct" + "0x556c88fdbc90-ExecutionPartConstruct" ], - "Statement": "0x55df82f59260-Statement" + "Statement": "0x556c88f54260-Statement" }, { - "id": "0x55df82f592b8-Statement", - "statement": "0x55df82f592c8-NonLabelDoStmt", + "id": "0x556c88f542b8-Statement", + "statement": "0x556c88f542c8-NonLabelDoStmt", "source": "do i = 1, 100" }, { - "id": "0x55df82f592c8-NonLabelDoStmt", - "LoopControl": "0x55df82f592c8-LoopControl" + "id": "0x556c88f542c8-NonLabelDoStmt", + "LoopControl": "0x556c88f542c8-LoopControl" }, { - "id": "0x55df82f592c8-LoopControl", + "id": "0x556c88f542c8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55df82f592c8-LoopBounds" + "LoopBounds": "0x556c88f542c8-LoopBounds" }, { - "id": "0x55df82f592c8-LoopBounds", - "var": "0x55df82f592c8-Name", - "lower": "0x55df82fdea20-Expr", - "upper": "0x55df82fdf4b0-Expr" + "id": "0x556c88f542c8-LoopBounds", + "var": "0x556c88f542c8-Name", + "lower": "0x556c88fd9a20-Expr", + "upper": "0x556c88fda4b0-Expr" }, { - "id": "0x55df82f592c8-Name", + "id": "0x556c88f542c8-Name", "source": "i" }, { - "id": "0x55df82fdea20-Expr", + "id": "0x556c88fd9a20-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55df82fdea40-LiteralConstant" + "LiteralConstant": "0x556c88fd9a40-LiteralConstant" }, { - "id": "0x55df82fdea40-LiteralConstant", + "id": "0x556c88fd9a40-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55df82fdea40-IntLiteralConstant" + "IntLiteralConstant": "0x556c88fd9a40-IntLiteralConstant" }, { - "id": "0x55df82fdea40-IntLiteralConstant", + "id": "0x556c88fd9a40-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55df82fdf4b0-Expr", + "id": "0x556c88fda4b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55df82fdf4d0-LiteralConstant" + "LiteralConstant": "0x556c88fda4d0-LiteralConstant" }, { - "id": "0x55df82fdf4d0-LiteralConstant", + "id": "0x556c88fda4d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55df82fdf4d0-IntLiteralConstant" + "IntLiteralConstant": "0x556c88fda4d0-IntLiteralConstant" }, { - "id": "0x55df82fdf4d0-IntLiteralConstant", + "id": "0x556c88fda4d0-IntLiteralConstant", "CharBlock": "100" }, { - "id": "0x55df82f592a0-ExecutionPartConstruct" + "id": "0x556c88f542a0-ExecutionPartConstruct" }, { - "id": "0x55df82fe0c90-ExecutionPartConstruct", + "id": "0x556c88fdbc90-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55df82fe0c90-ExecutableConstruct" + "ExecutableConstruct": "0x556c88fdbc90-ExecutableConstruct" }, { - "id": "0x55df82fe0c90-ExecutableConstruct", + "id": "0x556c88fdbc90-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55df82fe0c90-Statement" + "Statement": "0x556c88fdbc90-Statement" }, { - "id": "0x55df82fe0c90-Statement", - "statement": "0x55df82fe0ca0-ActionStmt", + "id": "0x556c88fdbc90-Statement", + "statement": "0x556c88fdbca0-ActionStmt", "source": "total_sum = total_sum" }, { - "id": "0x55df82fe0ca0-ActionStmt", + "id": "0x556c88fdbca0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55df82fb1ce0-AssignmentStmt" + "AssignmentStmt": "0x556c88facce0-AssignmentStmt" }, { - "id": "0x55df82fb1ce0-AssignmentStmt", - "Variable": "0x55df82fb1dc0-Variable", - "Expr": "0x55df82fb1cf0-Expr" + "id": "0x556c88facce0-AssignmentStmt", + "Variable": "0x556c88facdc0-Variable", + "Expr": "0x556c88faccf0-Expr" }, { - "id": "0x55df82fb1dc0-Variable", + "id": "0x556c88facdc0-Variable", "variantKey": "Designator", - "Designator": "0x55df82fd87e0-Designator" + "Designator": "0x556c88fd37e0-Designator" }, { - "id": "0x55df82fd87e0-Designator", + "id": "0x556c88fd37e0-Designator", "variantKey": "DataRef", - "DataRef": "0x55df82fd87f0-DataRef" + "DataRef": "0x556c88fd37f0-DataRef" }, { - "id": "0x55df82fd87f0-DataRef", + "id": "0x556c88fd37f0-DataRef", "variantKey": "Name", - "Name": "0x55df82fd87f0-Name" + "Name": "0x556c88fd37f0-Name" }, { - "id": "0x55df82fd87f0-Name", + "id": "0x556c88fd37f0-Name", "source": "total_sum" }, { - "id": "0x55df82fb1cf0-Expr", + "id": "0x556c88faccf0-Expr", "variantKey": "Designator", - "Designator": "0x55df82fd9820-Designator" + "Designator": "0x556c88fd4820-Designator" }, { - "id": "0x55df82fd9820-Designator", + "id": "0x556c88fd4820-Designator", "variantKey": "DataRef", - "DataRef": "0x55df82fd9830-DataRef" + "DataRef": "0x556c88fd4830-DataRef" }, { - "id": "0x55df82fd9830-DataRef", + "id": "0x556c88fd4830-DataRef", "variantKey": "Name", - "Name": "0x55df82fd9830-Name" + "Name": "0x556c88fd4830-Name" }, { - "id": "0x55df82fd9830-Name", + "id": "0x556c88fd4830-Name", "source": "total_sum" }, { - "id": "0x55df82f59260-Statement", - "statement": "0x55df82f59270-EndDoStmt", + "id": "0x556c88f54260-Statement", + "statement": "0x556c88f54270-EndDoStmt", "source": "end do" }, { - "id": "0x55df82f59270-EndDoStmt" + "id": "0x556c88f54270-EndDoStmt" }, { - "id": "0x55df82fdf950-OmpEndLoopDirective", - "OmpDirectiveName": "0x55df82fdf9c8-OmpDirectiveName", - "OmpClauseList": "0x55df82fdf968-OmpClauseList", - "Flags = {}": "0x55df82fdf960-Flags = {}" + "id": "0x556c88fda950-OmpEndLoopDirective", + "OmpDirectiveName": "0x556c88fda9c8-OmpDirectiveName", + "OmpClauseList": "0x556c88fda968-OmpClauseList", + "Flags = {}": "0x556c88fda960-Flags = {}" }, { - "id": "0x55df82fdf9c8-OmpDirectiveName", + "id": "0x556c88fda9c8-OmpDirectiveName", "directive": "do" }, { - "id": "0x55df82fdf968-OmpClauseList", + "id": "0x556c88fda968-OmpClauseList", "OmpClause": [ - "0x55df82fdf850-OmpClause" + "0x556c88fda850-OmpClause" ] }, { - "id": "0x55df82fdf850-OmpClause", + "id": "0x556c88fda850-OmpClause", "variantKey": "Nowait", - "Nowait": "0x55df82fdf860-Nowait" + "Nowait": "0x556c88fda860-Nowait" }, { - "id": "0x55df82fdf860-Nowait", + "id": "0x556c88fda860-Nowait", "kind": "NOWAIT" }, { - "id": "0x55df82fdfba0-OmpEndDirective", - "OmpDirectiveName": "0x55df82fdfc18-OmpDirectiveName", - "OmpClauseList": "0x55df82fdfbb8-OmpClauseList", - "Flags = {}": "0x55df82fdfbb0-Flags = {}" + "id": "0x556c88fdaba0-OmpEndDirective", + "OmpDirectiveName": "0x556c88fdac18-OmpDirectiveName", + "OmpClauseList": "0x556c88fdabb8-OmpClauseList", + "Flags = {}": "0x556c88fdabb0-Flags = {}" }, { - "id": "0x55df82fdfc18-OmpDirectiveName", + "id": "0x556c88fdac18-OmpDirectiveName", "directive": "parallel" }, { - "id": "0x55df82fdfbb8-OmpClauseList" + "id": "0x556c88fdabb8-OmpClauseList" }, { - "id": "0x55df82fcf5d0-Statement", - "statement": "0x55df82fcf5e0-EndProgramStmt", + "id": "0x556c88fca5d0-Statement", + "statement": "0x556c88fca5e0-EndProgramStmt", "source": "end program OPENMP_DEMO" }, { - "id": "0x55df82fcf5e0-EndProgramStmt", - "Name": "0x55df82fcf5e0-Name" + "id": "0x556c88fca5e0-EndProgramStmt", + "Name": "0x556c88fca5e0-Name" }, { - "id": "0x55df82fcf5e0-Name", + "id": "0x556c88fca5e0-Name", "source": "OPENMP_DEMO" } ], diff --git a/FortranParser/resources-test/fortran/parser/omp/omp_do.json b/FortranParser/resources-test/fortran/parser/omp/omp_do.json index 4a02762e..1dd266ff 100644 --- a/FortranParser/resources-test/fortran/parser/omp/omp_do.json +++ b/FortranParser/resources-test/fortran/parser/omp/omp_do.json @@ -2,657 +2,658 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x556bdcfdef00-Program", + "id": "0x55fd88743f00-Program", "ProgramUnit": [ - "0x556bdd01b8c0-ProgramUnit" + "0x55fd887808c0-ProgramUnit" ] }, { - "id": "0x556bdd01b8c0-ProgramUnit", + "id": "0x55fd887808c0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x556bdd01bb00-MainProgram" + "MainProgram": "0x55fd88780b00-MainProgram" }, { - "id": "0x556bdd01bb00-MainProgram", - "Statement": "0x556bdd01bc48-Statement", - "SpecificationPart": "0x556bdd01bba0-SpecificationPart", - "ExecutionPart": "0x556bdd01bb88-ExecutionPart", - "Statement": "0x556bdd01bb00-Statement" + "id": "0x55fd88780b00-MainProgram", + "Statement": "0x55fd88780c48-Statement", + "SpecificationPart": "0x55fd88780ba0-SpecificationPart", + "ExecutionPart": "0x55fd88780b88-ExecutionPart", + "Statement": "0x55fd88780b00-Statement" }, { - "id": "0x556bdd01bc48-Statement", - "statement": "0x556bdd01bc58-ProgramStmt", + "id": "0x55fd88780c48-Statement", + "statement": "0x55fd88780c58-ProgramStmt", "source": "program OPENMP_DEMO" }, { - "id": "0x556bdd01bc58-ProgramStmt", - "Name": "0x556bdd01bc58-Name" + "id": "0x55fd88780c58-ProgramStmt", + "Name": "0x55fd88780c58-Name" }, { - "id": "0x556bdd01bc58-Name", + "id": "0x55fd88780c58-Name", "source": "OPENMP_DEMO" }, { - "id": "0x556bdd01bba0-SpecificationPart", + "id": "0x55fd88780ba0-SpecificationPart", "Statement": [ - "0x556bdd014520-Statement" + "0x55fd88779520-Statement" ], - "ImplicitPart": "0x556bdd01bbb8-ImplicitPart", + "ImplicitPart": "0x55fd88780bb8-ImplicitPart", "DeclarationConstruct": [ - "0x556bdcfec170-DeclarationConstruct", - "0x556bdcfebda0-DeclarationConstruct" + "0x55fd88751170-DeclarationConstruct", + "0x55fd88750da0-DeclarationConstruct" ] }, { - "id": "0x556bdd014520-Statement", - "statement": "0x556bdd022a40-UseStmt", + "id": "0x55fd88779520-Statement", + "statement": "0x55fd88787a40-UseStmt", "source": "use omp_lib" }, { - "id": "0x556bdd022a40-UseStmt", - "moduleName": "0x556bdd022a48-Name", - "renameList": [] + "id": "0x55fd88787a40-UseStmt", + "moduleName": "0x55fd88787a48-Name", + "variantKey": "Rename", + "Rename": [] }, { - "id": "0x556bdd022a48-Name", + "id": "0x55fd88787a48-Name", "source": "omp_lib" }, { - "id": "0x556bdd01bbb8-ImplicitPart" + "id": "0x55fd88780bb8-ImplicitPart" }, { - "id": "0x556bdcfec170-DeclarationConstruct", + "id": "0x55fd88751170-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x556bdcfec170-SpecificationConstruct" + "SpecificationConstruct": "0x55fd88751170-SpecificationConstruct" }, { - "id": "0x556bdcfec170-SpecificationConstruct", + "id": "0x55fd88751170-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x556bdcfec170-Statement" + "Statement": "0x55fd88751170-Statement" }, { - "id": "0x556bdcfec170-Statement", - "statement": "0x556bdd019310-TypeDeclarationStmt", + "id": "0x55fd88751170-Statement", + "statement": "0x55fd8877e310-TypeDeclarationStmt", "source": "integer :: i, thread_id, num_threads, total_sum" }, { - "id": "0x556bdd019310-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x556bdd019340-DeclarationTypeSpec", + "id": "0x55fd8877e310-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55fd8877e340-DeclarationTypeSpec", "EntityDecl": [ - "0x556bdd0196f0-EntityDecl", - "0x556bdd019420-EntityDecl", - "0x556bdd019510-EntityDecl", - "0x556bdd019600-EntityDecl" + "0x55fd8877e6f0-EntityDecl", + "0x55fd8877e420-EntityDecl", + "0x55fd8877e510-EntityDecl", + "0x55fd8877e600-EntityDecl" ] }, { - "id": "0x556bdd019340-DeclarationTypeSpec", + "id": "0x55fd8877e340-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x556bdd019340-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55fd8877e340-IntrinsicTypeSpec" }, { - "id": "0x556bdd019340-IntrinsicTypeSpec", + "id": "0x55fd8877e340-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x556bdd019340-IntegerTypeSpec" + "IntegerTypeSpec": "0x55fd8877e340-IntegerTypeSpec" }, { - "id": "0x556bdd019340-IntegerTypeSpec" + "id": "0x55fd8877e340-IntegerTypeSpec" }, { - "id": "0x556bdd0196f0-EntityDecl", - "Name": "0x556bdd0197a8-Name" + "id": "0x55fd8877e6f0-EntityDecl", + "Name": "0x55fd8877e7a8-Name" }, { - "id": "0x556bdd0197a8-Name", + "id": "0x55fd8877e7a8-Name", "source": "i" }, { - "id": "0x556bdd019420-EntityDecl", - "Name": "0x556bdd0194d8-Name" + "id": "0x55fd8877e420-EntityDecl", + "Name": "0x55fd8877e4d8-Name" }, { - "id": "0x556bdd0194d8-Name", + "id": "0x55fd8877e4d8-Name", "source": "thread_id" }, { - "id": "0x556bdd019510-EntityDecl", - "Name": "0x556bdd0195c8-Name" + "id": "0x55fd8877e510-EntityDecl", + "Name": "0x55fd8877e5c8-Name" }, { - "id": "0x556bdd0195c8-Name", + "id": "0x55fd8877e5c8-Name", "source": "num_threads" }, { - "id": "0x556bdd019600-EntityDecl", - "Name": "0x556bdd0196b8-Name" + "id": "0x55fd8877e600-EntityDecl", + "Name": "0x55fd8877e6b8-Name" }, { - "id": "0x556bdd0196b8-Name", + "id": "0x55fd8877e6b8-Name", "source": "total_sum" }, { - "id": "0x556bdcfebda0-DeclarationConstruct", + "id": "0x55fd88750da0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x556bdcfebda0-SpecificationConstruct" + "SpecificationConstruct": "0x55fd88750da0-SpecificationConstruct" }, { - "id": "0x556bdcfebda0-SpecificationConstruct", + "id": "0x55fd88750da0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x556bdcfebda0-Statement" + "Statement": "0x55fd88750da0-Statement" }, { - "id": "0x556bdcfebda0-Statement", - "statement": "0x556bdd019390-TypeDeclarationStmt", + "id": "0x55fd88750da0-Statement", + "statement": "0x55fd8877e390-TypeDeclarationStmt", "source": "integer :: shared_counter = 0" }, { - "id": "0x556bdd019390-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x556bdd0193c0-DeclarationTypeSpec", + "id": "0x55fd8877e390-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55fd8877e3c0-DeclarationTypeSpec", "EntityDecl": [ - "0x556bdd0198d0-EntityDecl" + "0x55fd8877e8d0-EntityDecl" ] }, { - "id": "0x556bdd0193c0-DeclarationTypeSpec", + "id": "0x55fd8877e3c0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x556bdd0193c0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55fd8877e3c0-IntrinsicTypeSpec" }, { - "id": "0x556bdd0193c0-IntrinsicTypeSpec", + "id": "0x55fd8877e3c0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x556bdd0193c0-IntegerTypeSpec" + "IntegerTypeSpec": "0x55fd8877e3c0-IntegerTypeSpec" }, { - "id": "0x556bdd0193c0-IntegerTypeSpec" + "id": "0x55fd8877e3c0-IntegerTypeSpec" }, { - "id": "0x556bdd0198d0-EntityDecl", - "Name": "0x556bdd019988-Name", - "Initialization": "0x556bdd0198d0-Initialization" + "id": "0x55fd8877e8d0-EntityDecl", + "Name": "0x55fd8877e988-Name", + "Initialization": "0x55fd8877e8d0-Initialization" }, { - "id": "0x556bdd019988-Name", + "id": "0x55fd8877e988-Name", "source": "shared_counter" }, { - "id": "0x556bdd0198d0-Initialization", + "id": "0x55fd8877e8d0-Initialization", "variantKey": "Expr", - "Expr": "0x556bdcf7e790-Expr" + "Expr": "0x55fd886e3790-Expr" }, { - "id": "0x556bdcf7e790-Expr", + "id": "0x55fd886e3790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x556bdcf7e7b0-LiteralConstant" + "LiteralConstant": "0x55fd886e37b0-LiteralConstant" }, { - "id": "0x556bdcf7e7b0-LiteralConstant", + "id": "0x55fd886e37b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x556bdcf7e7b0-IntLiteralConstant" + "IntLiteralConstant": "0x55fd886e37b0-IntLiteralConstant" }, { - "id": "0x556bdcf7e7b0-IntLiteralConstant", + "id": "0x55fd886e37b0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x556bdd01bb88-ExecutionPart", + "id": "0x55fd88780b88-ExecutionPart", "ExecutionPartConstruct": [ - "0x556bdd01a7f0-ExecutionPartConstruct", - "0x556bdd01acc0-ExecutionPartConstruct" + "0x55fd8877f7f0-ExecutionPartConstruct", + "0x55fd8877fcc0-ExecutionPartConstruct" ] }, { - "id": "0x556bdd01bb88-ExecutionPartConstruct" + "id": "0x55fd88780b88-ExecutionPartConstruct" }, { - "id": "0x556bdd01a7f0-ExecutionPartConstruct", + "id": "0x55fd8877f7f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x556bdd01a7f0-ExecutableConstruct" + "ExecutableConstruct": "0x55fd8877f7f0-ExecutableConstruct" }, { - "id": "0x556bdd01a7f0-ExecutableConstruct", + "id": "0x55fd8877f7f0-ExecutableConstruct", "variantKey": "OpenMPConstruct", - "OpenMPConstruct": "0x556bdd01ab00-OpenMPConstruct" + "OpenMPConstruct": "0x55fd8877fb00-OpenMPConstruct" }, { - "id": "0x556bdd01ab00-OpenMPConstruct", + "id": "0x55fd8877fb00-OpenMPConstruct", "variantKey": "OmpBlockConstruct", - "OmpBlockConstruct": "0x556bdd01ab00-OmpBlockConstruct" + "OmpBlockConstruct": "0x55fd8877fb00-OmpBlockConstruct" }, { - "id": "0x556bdd01ab00-OmpBlockConstruct", - "OmpBeginDirective": "0x556bdd01abc0-OmpBeginDirective", + "id": "0x55fd8877fb00-OmpBlockConstruct", + "OmpBeginDirective": "0x55fd8877fbc0-OmpBeginDirective", "ExecutionPartConstruct": [ - "0x556bdd01a680-ExecutionPartConstruct" + "0x55fd8877f680-ExecutionPartConstruct" ], - "OmpEndDirective": "0x556bdd01ab10-OmpEndDirective" + "OmpEndDirective": "0x55fd8877fb10-OmpEndDirective" }, { - "id": "0x556bdd01abc0-OmpBeginDirective", - "OmpDirectiveName": "0x556bdd01ac38-OmpDirectiveName", - "OmpClauseList": "0x556bdd01abd8-OmpClauseList", - "Flags = {}": "0x556bdd01abd0-Flags = {}" + "id": "0x55fd8877fbc0-OmpBeginDirective", + "OmpDirectiveName": "0x55fd8877fc38-OmpDirectiveName", + "OmpClauseList": "0x55fd8877fbd8-OmpClauseList", + "Flags = {}": "0x55fd8877fbd0-Flags = {}" }, { - "id": "0x556bdd01ac38-OmpDirectiveName", + "id": "0x55fd8877fc38-OmpDirectiveName", "directive": "parallel" }, { - "id": "0x556bdd01abd8-OmpClauseList" + "id": "0x55fd8877fbd8-OmpClauseList" }, { - "id": "0x556bdd01aba8-ExecutionPartConstruct" + "id": "0x55fd8877fba8-ExecutionPartConstruct" }, { - "id": "0x556bdd01a680-ExecutionPartConstruct", + "id": "0x55fd8877f680-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x556bdd01a680-ExecutableConstruct" + "ExecutableConstruct": "0x55fd8877f680-ExecutableConstruct" }, { - "id": "0x556bdd01a680-ExecutableConstruct", + "id": "0x55fd8877f680-ExecutableConstruct", "variantKey": "OpenMPConstruct", - "OpenMPConstruct": "0x556bdd01a8b0-OpenMPConstruct" + "OpenMPConstruct": "0x55fd8877f8b0-OpenMPConstruct" }, { - "id": "0x556bdd01a8b0-OpenMPConstruct", + "id": "0x55fd8877f8b0-OpenMPConstruct", "variantKey": "OpenMPLoopConstruct", - "OpenMPLoopConstruct": "0x556bdd01a8b0-OpenMPLoopConstruct" + "OpenMPLoopConstruct": "0x55fd8877f8b0-OpenMPLoopConstruct" }, { - "id": "0x556bdd01a8b0-OpenMPLoopConstruct", - "OmpBeginLoopDirective": "0x556bdd01a970-OmpBeginLoopDirective", + "id": "0x55fd8877f8b0-OpenMPLoopConstruct", + "OmpBeginLoopDirective": "0x55fd8877f970-OmpBeginLoopDirective", "ExecutionPartConstruct": [ - "0x556bdd01a520-ExecutionPartConstruct" + "0x55fd8877f520-ExecutionPartConstruct" ], - "OmpEndLoopDirective": "0x556bdd01a8c0-OmpEndLoopDirective" + "OmpEndLoopDirective": "0x55fd8877f8c0-OmpEndLoopDirective" }, { - "id": "0x556bdd01a970-OmpBeginLoopDirective", - "OmpDirectiveName": "0x556bdd01a9e8-OmpDirectiveName", - "OmpClauseList": "0x556bdd01a988-OmpClauseList", - "Flags = {}": "0x556bdd01a980-Flags = {}" + "id": "0x55fd8877f970-OmpBeginLoopDirective", + "OmpDirectiveName": "0x55fd8877f9e8-OmpDirectiveName", + "OmpClauseList": "0x55fd8877f988-OmpClauseList", + "Flags = {}": "0x55fd8877f980-Flags = {}" }, { - "id": "0x556bdd01a9e8-OmpDirectiveName", + "id": "0x55fd8877f9e8-OmpDirectiveName", "directive": "do" }, { - "id": "0x556bdd01a988-OmpClauseList" + "id": "0x55fd8877f988-OmpClauseList" }, { - "id": "0x556bdd01a958-ExecutionPartConstruct" + "id": "0x55fd8877f958-ExecutionPartConstruct" }, { - "id": "0x556bdd01a520-ExecutionPartConstruct", + "id": "0x55fd8877f520-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x556bdd01a520-ExecutableConstruct" + "ExecutableConstruct": "0x55fd8877f520-ExecutableConstruct" }, { - "id": "0x556bdd01a520-ExecutableConstruct", + "id": "0x55fd8877f520-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x556bdcfb4780-DoConstruct" + "DoConstruct": "0x55fd88719780-DoConstruct" }, { - "id": "0x556bdcfb4780-DoConstruct", - "Statement": "0x556bdcfb47d8-Statement", + "id": "0x55fd88719780-DoConstruct", + "Statement": "0x55fd887197d8-Statement", "ExecutionPartConstruct": [ - "0x556bdd01a620-ExecutionPartConstruct" + "0x55fd8877f620-ExecutionPartConstruct" ], - "Statement": "0x556bdcfb4780-Statement" + "Statement": "0x55fd88719780-Statement" }, { - "id": "0x556bdcfb47d8-Statement", - "statement": "0x556bdcfb47e8-NonLabelDoStmt", + "id": "0x55fd887197d8-Statement", + "statement": "0x55fd887197e8-NonLabelDoStmt", "source": "do i = 1, 100" }, { - "id": "0x556bdcfb47e8-NonLabelDoStmt", - "LoopControl": "0x556bdcfb47e8-LoopControl" + "id": "0x55fd887197e8-NonLabelDoStmt", + "LoopControl": "0x55fd887197e8-LoopControl" }, { - "id": "0x556bdcfb47e8-LoopControl", + "id": "0x55fd887197e8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x556bdcfb47e8-LoopBounds" + "LoopBounds": "0x55fd887197e8-LoopBounds" }, { - "id": "0x556bdcfb47e8-LoopBounds", - "var": "0x556bdcfb47e8-Name", - "lower": "0x556bdd019b10-Expr", - "upper": "0x556bdd01a430-Expr" + "id": "0x55fd887197e8-LoopBounds", + "var": "0x55fd887197e8-Name", + "lower": "0x55fd8877eb10-Expr", + "upper": "0x55fd8877f430-Expr" }, { - "id": "0x556bdcfb47e8-Name", + "id": "0x55fd887197e8-Name", "source": "i" }, { - "id": "0x556bdd019b10-Expr", + "id": "0x55fd8877eb10-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x556bdd019b30-LiteralConstant" + "LiteralConstant": "0x55fd8877eb30-LiteralConstant" }, { - "id": "0x556bdd019b30-LiteralConstant", + "id": "0x55fd8877eb30-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x556bdd019b30-IntLiteralConstant" + "IntLiteralConstant": "0x55fd8877eb30-IntLiteralConstant" }, { - "id": "0x556bdd019b30-IntLiteralConstant", + "id": "0x55fd8877eb30-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x556bdd01a430-Expr", + "id": "0x55fd8877f430-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x556bdd01a450-LiteralConstant" + "LiteralConstant": "0x55fd8877f450-LiteralConstant" }, { - "id": "0x556bdd01a450-LiteralConstant", + "id": "0x55fd8877f450-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x556bdd01a450-IntLiteralConstant" + "IntLiteralConstant": "0x55fd8877f450-IntLiteralConstant" }, { - "id": "0x556bdd01a450-IntLiteralConstant", + "id": "0x55fd8877f450-IntLiteralConstant", "CharBlock": "100" }, { - "id": "0x556bdcfb47c0-ExecutionPartConstruct" + "id": "0x55fd887197c0-ExecutionPartConstruct" }, { - "id": "0x556bdd01a620-ExecutionPartConstruct", + "id": "0x55fd8877f620-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x556bdd01a620-ExecutableConstruct" + "ExecutableConstruct": "0x55fd8877f620-ExecutableConstruct" }, { - "id": "0x556bdd01a620-ExecutableConstruct", + "id": "0x55fd8877f620-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x556bdd01a620-Statement" + "Statement": "0x55fd8877f620-Statement" }, { - "id": "0x556bdd01a620-Statement", - "statement": "0x556bdd01a630-ActionStmt", + "id": "0x55fd8877f620-Statement", + "statement": "0x55fd8877f630-ActionStmt", "source": "total_sum = total_sum" }, { - "id": "0x556bdd01a630-ActionStmt", + "id": "0x55fd8877f630-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x556bdd01a6d0-AssignmentStmt" + "AssignmentStmt": "0x55fd8877f6d0-AssignmentStmt" }, { - "id": "0x556bdd01a6d0-AssignmentStmt", - "Variable": "0x556bdd01a7b0-Variable", - "Expr": "0x556bdd01a6e0-Expr" + "id": "0x55fd8877f6d0-AssignmentStmt", + "Variable": "0x55fd8877f7b0-Variable", + "Expr": "0x55fd8877f6e0-Expr" }, { - "id": "0x556bdd01a7b0-Variable", + "id": "0x55fd8877f7b0-Variable", "variantKey": "Designator", - "Designator": "0x556bdd013930-Designator" + "Designator": "0x55fd88778930-Designator" }, { - "id": "0x556bdd013930-Designator", + "id": "0x55fd88778930-Designator", "variantKey": "DataRef", - "DataRef": "0x556bdd013940-DataRef" + "DataRef": "0x55fd88778940-DataRef" }, { - "id": "0x556bdd013940-DataRef", + "id": "0x55fd88778940-DataRef", "variantKey": "Name", - "Name": "0x556bdd013940-Name" + "Name": "0x55fd88778940-Name" }, { - "id": "0x556bdd013940-Name", + "id": "0x55fd88778940-Name", "source": "total_sum" }, { - "id": "0x556bdd01a6e0-Expr", + "id": "0x55fd8877f6e0-Expr", "variantKey": "Designator", - "Designator": "0x556bdd015c50-Designator" + "Designator": "0x55fd8877ac50-Designator" }, { - "id": "0x556bdd015c50-Designator", + "id": "0x55fd8877ac50-Designator", "variantKey": "DataRef", - "DataRef": "0x556bdd015c60-DataRef" + "DataRef": "0x55fd8877ac60-DataRef" }, { - "id": "0x556bdd015c60-DataRef", + "id": "0x55fd8877ac60-DataRef", "variantKey": "Name", - "Name": "0x556bdd015c60-Name" + "Name": "0x55fd8877ac60-Name" }, { - "id": "0x556bdd015c60-Name", + "id": "0x55fd8877ac60-Name", "source": "total_sum" }, { - "id": "0x556bdcfb4780-Statement", - "statement": "0x556bdcfb4790-EndDoStmt", + "id": "0x55fd88719780-Statement", + "statement": "0x55fd88719790-EndDoStmt", "source": "end do" }, { - "id": "0x556bdcfb4790-EndDoStmt" + "id": "0x55fd88719790-EndDoStmt" }, { - "id": "0x556bdd01a8c0-OmpEndLoopDirective", - "OmpDirectiveName": "0x556bdd01a938-OmpDirectiveName", - "OmpClauseList": "0x556bdd01a8d8-OmpClauseList", - "Flags = {}": "0x556bdd01a8d0-Flags = {}" + "id": "0x55fd8877f8c0-OmpEndLoopDirective", + "OmpDirectiveName": "0x55fd8877f938-OmpDirectiveName", + "OmpClauseList": "0x55fd8877f8d8-OmpClauseList", + "Flags = {}": "0x55fd8877f8d0-Flags = {}" }, { - "id": "0x556bdd01a938-OmpDirectiveName", + "id": "0x55fd8877f938-OmpDirectiveName", "directive": "do" }, { - "id": "0x556bdd01a8d8-OmpClauseList" + "id": "0x55fd8877f8d8-OmpClauseList" }, { - "id": "0x556bdd01ab10-OmpEndDirective", - "OmpDirectiveName": "0x556bdd01ab88-OmpDirectiveName", - "OmpClauseList": "0x556bdd01ab28-OmpClauseList", - "Flags = {}": "0x556bdd01ab20-Flags = {}" + "id": "0x55fd8877fb10-OmpEndDirective", + "OmpDirectiveName": "0x55fd8877fb88-OmpDirectiveName", + "OmpClauseList": "0x55fd8877fb28-OmpClauseList", + "Flags = {}": "0x55fd8877fb20-Flags = {}" }, { - "id": "0x556bdd01ab88-OmpDirectiveName", + "id": "0x55fd8877fb88-OmpDirectiveName", "directive": "parallel" }, { - "id": "0x556bdd01ab28-OmpClauseList" + "id": "0x55fd8877fb28-OmpClauseList" }, { - "id": "0x556bdd01acc0-ExecutionPartConstruct", + "id": "0x55fd8877fcc0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x556bdd01acc0-ExecutableConstruct" + "ExecutableConstruct": "0x55fd8877fcc0-ExecutableConstruct" }, { - "id": "0x556bdd01acc0-ExecutableConstruct", + "id": "0x55fd8877fcc0-ExecutableConstruct", "variantKey": "OpenMPConstruct", - "OpenMPConstruct": "0x556bdd0202e0-OpenMPConstruct" + "OpenMPConstruct": "0x55fd887852e0-OpenMPConstruct" }, { - "id": "0x556bdd0202e0-OpenMPConstruct", + "id": "0x55fd887852e0-OpenMPConstruct", "variantKey": "OpenMPLoopConstruct", - "OpenMPLoopConstruct": "0x556bdd0202e0-OpenMPLoopConstruct" + "OpenMPLoopConstruct": "0x55fd887852e0-OpenMPLoopConstruct" }, { - "id": "0x556bdd0202e0-OpenMPLoopConstruct", - "OmpBeginLoopDirective": "0x556bdd0203a0-OmpBeginLoopDirective", + "id": "0x55fd887852e0-OpenMPLoopConstruct", + "OmpBeginLoopDirective": "0x55fd887853a0-OmpBeginLoopDirective", "ExecutionPartConstruct": [ - "0x556bdd01af40-ExecutionPartConstruct" + "0x55fd8877ff40-ExecutionPartConstruct" ], - "OmpEndLoopDirective": "0x556bdd0202f0-OmpEndLoopDirective" + "OmpEndLoopDirective": "0x55fd887852f0-OmpEndLoopDirective" }, { - "id": "0x556bdd0203a0-OmpBeginLoopDirective", - "OmpDirectiveName": "0x556bdd020418-OmpDirectiveName", - "OmpClauseList": "0x556bdd0203b8-OmpClauseList", - "Flags = {}": "0x556bdd0203b0-Flags = {}" + "id": "0x55fd887853a0-OmpBeginLoopDirective", + "OmpDirectiveName": "0x55fd88785418-OmpDirectiveName", + "OmpClauseList": "0x55fd887853b8-OmpClauseList", + "Flags = {}": "0x55fd887853b0-Flags = {}" }, { - "id": "0x556bdd020418-OmpDirectiveName", + "id": "0x55fd88785418-OmpDirectiveName", "directive": "parallel do" }, { - "id": "0x556bdd0203b8-OmpClauseList" + "id": "0x55fd887853b8-OmpClauseList" }, { - "id": "0x556bdd020388-ExecutionPartConstruct" + "id": "0x55fd88785388-ExecutionPartConstruct" }, { - "id": "0x556bdd01af40-ExecutionPartConstruct", + "id": "0x55fd8877ff40-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x556bdd01af40-ExecutableConstruct" + "ExecutableConstruct": "0x55fd8877ff40-ExecutableConstruct" }, { - "id": "0x556bdd01af40-ExecutableConstruct", + "id": "0x55fd8877ff40-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x556bdd01b100-DoConstruct" + "DoConstruct": "0x55fd88780100-DoConstruct" }, { - "id": "0x556bdd01b100-DoConstruct", - "Statement": "0x556bdd01b158-Statement", + "id": "0x55fd88780100-DoConstruct", + "Statement": "0x55fd88780158-Statement", "ExecutionPartConstruct": [ - "0x556bdd013ad0-ExecutionPartConstruct" + "0x55fd88778ad0-ExecutionPartConstruct" ], - "Statement": "0x556bdd01b100-Statement" + "Statement": "0x55fd88780100-Statement" }, { - "id": "0x556bdd01b158-Statement", - "statement": "0x556bdd01b168-NonLabelDoStmt", + "id": "0x55fd88780158-Statement", + "statement": "0x55fd88780168-NonLabelDoStmt", "source": "do i = 1, 2" }, { - "id": "0x556bdd01b168-NonLabelDoStmt", - "LoopControl": "0x556bdd01b168-LoopControl" + "id": "0x55fd88780168-NonLabelDoStmt", + "LoopControl": "0x55fd88780168-LoopControl" }, { - "id": "0x556bdd01b168-LoopControl", + "id": "0x55fd88780168-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x556bdd01b168-LoopBounds" + "LoopBounds": "0x55fd88780168-LoopBounds" }, { - "id": "0x556bdd01b168-LoopBounds", - "var": "0x556bdd01b168-Name", - "lower": "0x556bdd01ad10-Expr", - "upper": "0x556bdd01adf0-Expr" + "id": "0x55fd88780168-LoopBounds", + "var": "0x55fd88780168-Name", + "lower": "0x55fd8877fd10-Expr", + "upper": "0x55fd8877fdf0-Expr" }, { - "id": "0x556bdd01b168-Name", + "id": "0x55fd88780168-Name", "source": "i" }, { - "id": "0x556bdd01ad10-Expr", + "id": "0x55fd8877fd10-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x556bdd01ad30-LiteralConstant" + "LiteralConstant": "0x55fd8877fd30-LiteralConstant" }, { - "id": "0x556bdd01ad30-LiteralConstant", + "id": "0x55fd8877fd30-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x556bdd01ad30-IntLiteralConstant" + "IntLiteralConstant": "0x55fd8877fd30-IntLiteralConstant" }, { - "id": "0x556bdd01ad30-IntLiteralConstant", + "id": "0x55fd8877fd30-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x556bdd01adf0-Expr", + "id": "0x55fd8877fdf0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x556bdd01ae10-LiteralConstant" + "LiteralConstant": "0x55fd8877fe10-LiteralConstant" }, { - "id": "0x556bdd01ae10-LiteralConstant", + "id": "0x55fd8877fe10-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x556bdd01ae10-IntLiteralConstant" + "IntLiteralConstant": "0x55fd8877fe10-IntLiteralConstant" }, { - "id": "0x556bdd01ae10-IntLiteralConstant", + "id": "0x55fd8877fe10-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x556bdd01b140-ExecutionPartConstruct" + "id": "0x55fd88780140-ExecutionPartConstruct" }, { - "id": "0x556bdd013ad0-ExecutionPartConstruct", + "id": "0x55fd88778ad0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x556bdd013ad0-ExecutableConstruct" + "ExecutableConstruct": "0x55fd88778ad0-ExecutableConstruct" }, { - "id": "0x556bdd013ad0-ExecutableConstruct", + "id": "0x55fd88778ad0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x556bdd013ad0-Statement" + "Statement": "0x55fd88778ad0-Statement" }, { - "id": "0x556bdd013ad0-Statement", - "statement": "0x556bdd013ae0-ActionStmt", + "id": "0x55fd88778ad0-Statement", + "statement": "0x55fd88778ae0-ActionStmt", "source": "total_sum = 1" }, { - "id": "0x556bdd013ae0-ActionStmt", + "id": "0x55fd88778ae0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x556bdd01af90-AssignmentStmt" + "AssignmentStmt": "0x55fd8877ff90-AssignmentStmt" }, { - "id": "0x556bdd01af90-AssignmentStmt", - "Variable": "0x556bdd01b070-Variable", - "Expr": "0x556bdd01afa0-Expr" + "id": "0x55fd8877ff90-AssignmentStmt", + "Variable": "0x55fd88780070-Variable", + "Expr": "0x55fd8877ffa0-Expr" }, { - "id": "0x556bdd01b070-Variable", + "id": "0x55fd88780070-Variable", "variantKey": "Designator", - "Designator": "0x556bdd01aed0-Designator" + "Designator": "0x55fd8877fed0-Designator" }, { - "id": "0x556bdd01aed0-Designator", + "id": "0x55fd8877fed0-Designator", "variantKey": "DataRef", - "DataRef": "0x556bdd01aee0-DataRef" + "DataRef": "0x55fd8877fee0-DataRef" }, { - "id": "0x556bdd01aee0-DataRef", + "id": "0x55fd8877fee0-DataRef", "variantKey": "Name", - "Name": "0x556bdd01aee0-Name" + "Name": "0x55fd8877fee0-Name" }, { - "id": "0x556bdd01aee0-Name", + "id": "0x55fd8877fee0-Name", "source": "total_sum" }, { - "id": "0x556bdd01afa0-Expr", + "id": "0x55fd8877ffa0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x556bdd01afc0-LiteralConstant" + "LiteralConstant": "0x55fd8877ffc0-LiteralConstant" }, { - "id": "0x556bdd01afc0-LiteralConstant", + "id": "0x55fd8877ffc0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x556bdd01afc0-IntLiteralConstant" + "IntLiteralConstant": "0x55fd8877ffc0-IntLiteralConstant" }, { - "id": "0x556bdd01afc0-IntLiteralConstant", + "id": "0x55fd8877ffc0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x556bdd01b100-Statement", - "statement": "0x556bdd01b110-EndDoStmt", + "id": "0x55fd88780100-Statement", + "statement": "0x55fd88780110-EndDoStmt", "source": "end do" }, { - "id": "0x556bdd01b110-EndDoStmt" + "id": "0x55fd88780110-EndDoStmt" }, { - "id": "0x556bdd0202f0-OmpEndLoopDirective", - "OmpDirectiveName": "0x556bdd020368-OmpDirectiveName", - "OmpClauseList": "0x556bdd020308-OmpClauseList", - "Flags = {}": "0x556bdd020300-Flags = {}" + "id": "0x55fd887852f0-OmpEndLoopDirective", + "OmpDirectiveName": "0x55fd88785368-OmpDirectiveName", + "OmpClauseList": "0x55fd88785308-OmpClauseList", + "Flags = {}": "0x55fd88785300-Flags = {}" }, { - "id": "0x556bdd020368-OmpDirectiveName", + "id": "0x55fd88785368-OmpDirectiveName", "directive": "parallel do" }, { - "id": "0x556bdd020308-OmpClauseList" + "id": "0x55fd88785308-OmpClauseList" }, { - "id": "0x556bdd01bb00-Statement", - "statement": "0x556bdd01bb10-EndProgramStmt", + "id": "0x55fd88780b00-Statement", + "statement": "0x55fd88780b10-EndProgramStmt", "source": "end program OPENMP_DEMO" }, { - "id": "0x556bdd01bb10-EndProgramStmt", - "Name": "0x556bdd01bb10-Name" + "id": "0x55fd88780b10-EndProgramStmt", + "Name": "0x55fd88780b10-Name" }, { - "id": "0x556bdd01bb10-Name", + "id": "0x55fd88780b10-Name", "source": "OPENMP_DEMO" } ], diff --git a/FortranParser/resources-test/fortran/parser/omp/omp_reduction.json b/FortranParser/resources-test/fortran/parser/omp/omp_reduction.json index 57fea250..60f55a4b 100644 --- a/FortranParser/resources-test/fortran/parser/omp/omp_reduction.json +++ b/FortranParser/resources-test/fortran/parser/omp/omp_reduction.json @@ -2,502 +2,503 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x5596e055af00-Program", + "id": "0x564d6ede9f00-Program", "ProgramUnit": [ - "0x5596e058fb30-ProgramUnit" + "0x564d6ee1eb30-ProgramUnit" ] }, { - "id": "0x5596e058fb30-ProgramUnit", + "id": "0x564d6ee1eb30-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x5596e0586240-MainProgram" + "MainProgram": "0x564d6ee15240-MainProgram" }, { - "id": "0x5596e0586240-MainProgram", - "Statement": "0x5596e0586388-Statement", - "SpecificationPart": "0x5596e05862e0-SpecificationPart", - "ExecutionPart": "0x5596e05862c8-ExecutionPart", - "Statement": "0x5596e0586240-Statement" + "id": "0x564d6ee15240-MainProgram", + "Statement": "0x564d6ee15388-Statement", + "SpecificationPart": "0x564d6ee152e0-SpecificationPart", + "ExecutionPart": "0x564d6ee152c8-ExecutionPart", + "Statement": "0x564d6ee15240-Statement" }, { - "id": "0x5596e0586388-Statement", - "statement": "0x5596e0586398-ProgramStmt", + "id": "0x564d6ee15388-Statement", + "statement": "0x564d6ee15398-ProgramStmt", "source": "program OPENMP_DEMO" }, { - "id": "0x5596e0586398-ProgramStmt", - "Name": "0x5596e0586398-Name" + "id": "0x564d6ee15398-ProgramStmt", + "Name": "0x564d6ee15398-Name" }, { - "id": "0x5596e0586398-Name", + "id": "0x564d6ee15398-Name", "source": "OPENMP_DEMO" }, { - "id": "0x5596e05862e0-SpecificationPart", + "id": "0x564d6ee152e0-SpecificationPart", "Statement": [ - "0x5596e058fc60-Statement" + "0x564d6ee1ec60-Statement" ], - "ImplicitPart": "0x5596e05862f8-ImplicitPart", + "ImplicitPart": "0x564d6ee152f8-ImplicitPart", "DeclarationConstruct": [ - "0x5596e0568170-DeclarationConstruct", - "0x5596e0567da0-DeclarationConstruct" + "0x564d6edf7170-DeclarationConstruct", + "0x564d6edf6da0-DeclarationConstruct" ] }, { - "id": "0x5596e058fc60-Statement", - "statement": "0x5596e059e8f0-UseStmt", + "id": "0x564d6ee1ec60-Statement", + "statement": "0x564d6ee2d8f0-UseStmt", "source": "use omp_lib" }, { - "id": "0x5596e059e8f0-UseStmt", - "moduleName": "0x5596e059e8f8-Name", - "renameList": [] + "id": "0x564d6ee2d8f0-UseStmt", + "moduleName": "0x564d6ee2d8f8-Name", + "variantKey": "Rename", + "Rename": [] }, { - "id": "0x5596e059e8f8-Name", + "id": "0x564d6ee2d8f8-Name", "source": "omp_lib" }, { - "id": "0x5596e05862f8-ImplicitPart" + "id": "0x564d6ee152f8-ImplicitPart" }, { - "id": "0x5596e0568170-DeclarationConstruct", + "id": "0x564d6edf7170-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5596e0568170-SpecificationConstruct" + "SpecificationConstruct": "0x564d6edf7170-SpecificationConstruct" }, { - "id": "0x5596e0568170-SpecificationConstruct", + "id": "0x564d6edf7170-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5596e0568170-Statement" + "Statement": "0x564d6edf7170-Statement" }, { - "id": "0x5596e0568170-Statement", - "statement": "0x5596e0595140-TypeDeclarationStmt", + "id": "0x564d6edf7170-Statement", + "statement": "0x564d6ee24140-TypeDeclarationStmt", "source": "integer :: i, thread_id, num_threads, total_sum" }, { - "id": "0x5596e0595140-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5596e0595170-DeclarationTypeSpec", + "id": "0x564d6ee24140-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x564d6ee24170-DeclarationTypeSpec", "EntityDecl": [ - "0x5596e0595520-EntityDecl", - "0x5596e0595250-EntityDecl", - "0x5596e0595340-EntityDecl", - "0x5596e0595430-EntityDecl" + "0x564d6ee24520-EntityDecl", + "0x564d6ee24250-EntityDecl", + "0x564d6ee24340-EntityDecl", + "0x564d6ee24430-EntityDecl" ] }, { - "id": "0x5596e0595170-DeclarationTypeSpec", + "id": "0x564d6ee24170-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5596e0595170-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x564d6ee24170-IntrinsicTypeSpec" }, { - "id": "0x5596e0595170-IntrinsicTypeSpec", + "id": "0x564d6ee24170-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x5596e0595170-IntegerTypeSpec" + "IntegerTypeSpec": "0x564d6ee24170-IntegerTypeSpec" }, { - "id": "0x5596e0595170-IntegerTypeSpec" + "id": "0x564d6ee24170-IntegerTypeSpec" }, { - "id": "0x5596e0595520-EntityDecl", - "Name": "0x5596e05955d8-Name" + "id": "0x564d6ee24520-EntityDecl", + "Name": "0x564d6ee245d8-Name" }, { - "id": "0x5596e05955d8-Name", + "id": "0x564d6ee245d8-Name", "source": "i" }, { - "id": "0x5596e0595250-EntityDecl", - "Name": "0x5596e0595308-Name" + "id": "0x564d6ee24250-EntityDecl", + "Name": "0x564d6ee24308-Name" }, { - "id": "0x5596e0595308-Name", + "id": "0x564d6ee24308-Name", "source": "thread_id" }, { - "id": "0x5596e0595340-EntityDecl", - "Name": "0x5596e05953f8-Name" + "id": "0x564d6ee24340-EntityDecl", + "Name": "0x564d6ee243f8-Name" }, { - "id": "0x5596e05953f8-Name", + "id": "0x564d6ee243f8-Name", "source": "num_threads" }, { - "id": "0x5596e0595430-EntityDecl", - "Name": "0x5596e05954e8-Name" + "id": "0x564d6ee24430-EntityDecl", + "Name": "0x564d6ee244e8-Name" }, { - "id": "0x5596e05954e8-Name", + "id": "0x564d6ee244e8-Name", "source": "total_sum" }, { - "id": "0x5596e0567da0-DeclarationConstruct", + "id": "0x564d6edf6da0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5596e0567da0-SpecificationConstruct" + "SpecificationConstruct": "0x564d6edf6da0-SpecificationConstruct" }, { - "id": "0x5596e0567da0-SpecificationConstruct", + "id": "0x564d6edf6da0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5596e0567da0-Statement" + "Statement": "0x564d6edf6da0-Statement" }, { - "id": "0x5596e0567da0-Statement", - "statement": "0x5596e05951c0-TypeDeclarationStmt", + "id": "0x564d6edf6da0-Statement", + "statement": "0x564d6ee241c0-TypeDeclarationStmt", "source": "integer :: shared_counter = 0" }, { - "id": "0x5596e05951c0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5596e05951f0-DeclarationTypeSpec", + "id": "0x564d6ee241c0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x564d6ee241f0-DeclarationTypeSpec", "EntityDecl": [ - "0x5596e0595700-EntityDecl" + "0x564d6ee24700-EntityDecl" ] }, { - "id": "0x5596e05951f0-DeclarationTypeSpec", + "id": "0x564d6ee241f0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5596e05951f0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x564d6ee241f0-IntrinsicTypeSpec" }, { - "id": "0x5596e05951f0-IntrinsicTypeSpec", + "id": "0x564d6ee241f0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x5596e05951f0-IntegerTypeSpec" + "IntegerTypeSpec": "0x564d6ee241f0-IntegerTypeSpec" }, { - "id": "0x5596e05951f0-IntegerTypeSpec" + "id": "0x564d6ee241f0-IntegerTypeSpec" }, { - "id": "0x5596e0595700-EntityDecl", - "Name": "0x5596e05957b8-Name", - "Initialization": "0x5596e0595700-Initialization" + "id": "0x564d6ee24700-EntityDecl", + "Name": "0x564d6ee247b8-Name", + "Initialization": "0x564d6ee24700-Initialization" }, { - "id": "0x5596e05957b8-Name", + "id": "0x564d6ee247b8-Name", "source": "shared_counter" }, { - "id": "0x5596e0595700-Initialization", + "id": "0x564d6ee24700-Initialization", "variantKey": "Expr", - "Expr": "0x5596e04fa790-Expr" + "Expr": "0x564d6ed89790-Expr" }, { - "id": "0x5596e04fa790-Expr", + "id": "0x564d6ed89790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5596e04fa7b0-LiteralConstant" + "LiteralConstant": "0x564d6ed897b0-LiteralConstant" }, { - "id": "0x5596e04fa7b0-LiteralConstant", + "id": "0x564d6ed897b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5596e04fa7b0-IntLiteralConstant" + "IntLiteralConstant": "0x564d6ed897b0-IntLiteralConstant" }, { - "id": "0x5596e04fa7b0-IntLiteralConstant", + "id": "0x564d6ed897b0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x5596e05862c8-ExecutionPart", + "id": "0x564d6ee152c8-ExecutionPart", "ExecutionPartConstruct": [ - "0x5596e0590e00-ExecutionPartConstruct" + "0x564d6ee1fe00-ExecutionPartConstruct" ] }, { - "id": "0x5596e05862c8-ExecutionPartConstruct" + "id": "0x564d6ee152c8-ExecutionPartConstruct" }, { - "id": "0x5596e0590e00-ExecutionPartConstruct", + "id": "0x564d6ee1fe00-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5596e0590e00-ExecutableConstruct" + "ExecutableConstruct": "0x564d6ee1fe00-ExecutableConstruct" }, { - "id": "0x5596e0590e00-ExecutableConstruct", + "id": "0x564d6ee1fe00-ExecutableConstruct", "variantKey": "OpenMPConstruct", - "OpenMPConstruct": "0x5596e0596760-OpenMPConstruct" + "OpenMPConstruct": "0x564d6ee25760-OpenMPConstruct" }, { - "id": "0x5596e0596760-OpenMPConstruct", + "id": "0x564d6ee25760-OpenMPConstruct", "variantKey": "OpenMPLoopConstruct", - "OpenMPLoopConstruct": "0x5596e0596760-OpenMPLoopConstruct" + "OpenMPLoopConstruct": "0x564d6ee25760-OpenMPLoopConstruct" }, { - "id": "0x5596e0596760-OpenMPLoopConstruct", - "OmpBeginLoopDirective": "0x5596e0596820-OmpBeginLoopDirective", + "id": "0x564d6ee25760-OpenMPLoopConstruct", + "OmpBeginLoopDirective": "0x564d6ee25820-OmpBeginLoopDirective", "ExecutionPartConstruct": [ - "0x5596e05966a0-ExecutionPartConstruct" + "0x564d6ee256a0-ExecutionPartConstruct" ], - "OmpEndLoopDirective": "0x5596e0596770-OmpEndLoopDirective" + "OmpEndLoopDirective": "0x564d6ee25770-OmpEndLoopDirective" }, { - "id": "0x5596e0596820-OmpBeginLoopDirective", - "OmpDirectiveName": "0x5596e0596898-OmpDirectiveName", - "OmpClauseList": "0x5596e0596838-OmpClauseList", - "Flags = {}": "0x5596e0596830-Flags = {}" + "id": "0x564d6ee25820-OmpBeginLoopDirective", + "OmpDirectiveName": "0x564d6ee25898-OmpDirectiveName", + "OmpClauseList": "0x564d6ee25838-OmpClauseList", + "Flags = {}": "0x564d6ee25830-Flags = {}" }, { - "id": "0x5596e0596898-OmpDirectiveName", + "id": "0x564d6ee25898-OmpDirectiveName", "directive": "parallel do" }, { - "id": "0x5596e0596838-OmpClauseList", + "id": "0x564d6ee25838-OmpClauseList", "OmpClause": [ - "0x5596e0596160-OmpClause" + "0x564d6ee25160-OmpClause" ] }, { - "id": "0x5596e0596160-OmpClause", + "id": "0x564d6ee25160-OmpClause", "variantKey": "Reduction", - "Reduction": "0x5596e0596170-Reduction" + "Reduction": "0x564d6ee25170-Reduction" }, { - "id": "0x5596e0596170-Reduction", - "OmpReductionClause": "0x5596e0596170-OmpReductionClause", + "id": "0x564d6ee25170-Reduction", + "OmpReductionClause": "0x564d6ee25170-OmpReductionClause", "kind": "REDUCTION" }, { - "id": "0x5596e0596170-OmpReductionClause", + "id": "0x564d6ee25170-OmpReductionClause", "Modifier": [ - "0x5596e05976a0-Modifier" + "0x564d6ee266a0-Modifier" ], - "OmpObjectList": "0x5596e0596170-OmpObjectList" + "OmpObjectList": "0x564d6ee25170-OmpObjectList" }, { - "id": "0x5596e05976a0-Modifier", + "id": "0x564d6ee266a0-Modifier", "variantKey": "OmpReductionIdentifier", - "OmpReductionIdentifier": "0x5596e05976b0-OmpReductionIdentifier" + "OmpReductionIdentifier": "0x564d6ee266b0-OmpReductionIdentifier" }, { - "id": "0x5596e05976b0-OmpReductionIdentifier", + "id": "0x564d6ee266b0-OmpReductionIdentifier", "variantKey": "DefinedOperator", - "DefinedOperator": "0x5596e05976b0-DefinedOperator" + "DefinedOperator": "0x564d6ee266b0-DefinedOperator" }, { - "id": "0x5596e05976b0-DefinedOperator", + "id": "0x564d6ee266b0-DefinedOperator", "op": "Add" }, { - "id": "0x5596e05976b0-IntrinsicOperator = Add", + "id": "0x564d6ee266b0-IntrinsicOperator = Add", "disambiguation": "Fortran::parser::DefinedOperator::IntrinsicOperator", "value": "Add" }, { - "id": "0x5596e0596170-OmpObjectList", + "id": "0x564d6ee25170-OmpObjectList", "OmpObject": [ - "0x5596e0590730-OmpObject" + "0x564d6ee1f730-OmpObject" ] }, { - "id": "0x5596e0590730-OmpObject", + "id": "0x564d6ee1f730-OmpObject", "variantKey": "Designator", - "Designator": "0x5596e0590730-Designator" + "Designator": "0x564d6ee1f730-Designator" }, { - "id": "0x5596e0590730-Designator", + "id": "0x564d6ee1f730-Designator", "variantKey": "DataRef", - "DataRef": "0x5596e0590740-DataRef" + "DataRef": "0x564d6ee1f740-DataRef" }, { - "id": "0x5596e0590740-DataRef", + "id": "0x564d6ee1f740-DataRef", "variantKey": "Name", - "Name": "0x5596e0590740-Name" + "Name": "0x564d6ee1f740-Name" }, { - "id": "0x5596e0590740-Name", + "id": "0x564d6ee1f740-Name", "source": "total_sum" }, { - "id": "0x5596e0596808-ExecutionPartConstruct" + "id": "0x564d6ee25808-ExecutionPartConstruct" }, { - "id": "0x5596e05966a0-ExecutionPartConstruct", + "id": "0x564d6ee256a0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5596e05966a0-ExecutableConstruct" + "ExecutableConstruct": "0x564d6ee256a0-ExecutableConstruct" }, { - "id": "0x5596e05966a0-ExecutableConstruct", + "id": "0x564d6ee256a0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x5596e0530780-DoConstruct" + "DoConstruct": "0x564d6edbf780-DoConstruct" }, { - "id": "0x5596e0530780-DoConstruct", - "Statement": "0x5596e05307d8-Statement", + "id": "0x564d6edbf780-DoConstruct", + "Statement": "0x564d6edbf7d8-Statement", "ExecutionPartConstruct": [ - "0x5596e0597640-ExecutionPartConstruct" + "0x564d6ee26640-ExecutionPartConstruct" ], - "Statement": "0x5596e0530780-Statement" + "Statement": "0x564d6edbf780-Statement" }, { - "id": "0x5596e05307d8-Statement", - "statement": "0x5596e05307e8-NonLabelDoStmt", + "id": "0x564d6edbf7d8-Statement", + "statement": "0x564d6edbf7e8-NonLabelDoStmt", "source": "do i = 1, 2" }, { - "id": "0x5596e05307e8-NonLabelDoStmt", - "LoopControl": "0x5596e05307e8-LoopControl" + "id": "0x564d6edbf7e8-NonLabelDoStmt", + "LoopControl": "0x564d6edbf7e8-LoopControl" }, { - "id": "0x5596e05307e8-LoopControl", + "id": "0x564d6edbf7e8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x5596e05307e8-LoopBounds" + "LoopBounds": "0x564d6edbf7e8-LoopBounds" }, { - "id": "0x5596e05307e8-LoopBounds", - "var": "0x5596e05307e8-Name", - "lower": "0x5596e05964d0-Expr", - "upper": "0x5596e05965b0-Expr" + "id": "0x564d6edbf7e8-LoopBounds", + "var": "0x564d6edbf7e8-Name", + "lower": "0x564d6ee254d0-Expr", + "upper": "0x564d6ee255b0-Expr" }, { - "id": "0x5596e05307e8-Name", + "id": "0x564d6edbf7e8-Name", "source": "i" }, { - "id": "0x5596e05964d0-Expr", + "id": "0x564d6ee254d0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5596e05964f0-LiteralConstant" + "LiteralConstant": "0x564d6ee254f0-LiteralConstant" }, { - "id": "0x5596e05964f0-LiteralConstant", + "id": "0x564d6ee254f0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5596e05964f0-IntLiteralConstant" + "IntLiteralConstant": "0x564d6ee254f0-IntLiteralConstant" }, { - "id": "0x5596e05964f0-IntLiteralConstant", + "id": "0x564d6ee254f0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5596e05965b0-Expr", + "id": "0x564d6ee255b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5596e05965d0-LiteralConstant" + "LiteralConstant": "0x564d6ee255d0-LiteralConstant" }, { - "id": "0x5596e05965d0-LiteralConstant", + "id": "0x564d6ee255d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5596e05965d0-IntLiteralConstant" + "IntLiteralConstant": "0x564d6ee255d0-IntLiteralConstant" }, { - "id": "0x5596e05965d0-IntLiteralConstant", + "id": "0x564d6ee255d0-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x5596e05307c0-ExecutionPartConstruct" + "id": "0x564d6edbf7c0-ExecutionPartConstruct" }, { - "id": "0x5596e0597640-ExecutionPartConstruct", + "id": "0x564d6ee26640-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5596e0597640-ExecutableConstruct" + "ExecutableConstruct": "0x564d6ee26640-ExecutableConstruct" }, { - "id": "0x5596e0597640-ExecutableConstruct", + "id": "0x564d6ee26640-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5596e0597640-Statement" + "Statement": "0x564d6ee26640-Statement" }, { - "id": "0x5596e0597640-Statement", - "statement": "0x5596e0597650-ActionStmt", + "id": "0x564d6ee26640-Statement", + "statement": "0x564d6ee26650-ActionStmt", "source": "total_sum = total_sum + 1" }, { - "id": "0x5596e0597650-ActionStmt", + "id": "0x564d6ee26650-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5596e0568ce0-AssignmentStmt" + "AssignmentStmt": "0x564d6edf7ce0-AssignmentStmt" }, { - "id": "0x5596e0568ce0-AssignmentStmt", - "Variable": "0x5596e0568dc0-Variable", - "Expr": "0x5596e0568cf0-Expr" + "id": "0x564d6edf7ce0-AssignmentStmt", + "Variable": "0x564d6edf7dc0-Variable", + "Expr": "0x564d6edf7cf0-Expr" }, { - "id": "0x5596e0568dc0-Variable", + "id": "0x564d6edf7dc0-Variable", "variantKey": "Designator", - "Designator": "0x5596e058f750-Designator" + "Designator": "0x564d6ee1e750-Designator" }, { - "id": "0x5596e058f750-Designator", + "id": "0x564d6ee1e750-Designator", "variantKey": "DataRef", - "DataRef": "0x5596e058f760-DataRef" + "DataRef": "0x564d6ee1e760-DataRef" }, { - "id": "0x5596e058f760-DataRef", + "id": "0x564d6ee1e760-DataRef", "variantKey": "Name", - "Name": "0x5596e058f760-Name" + "Name": "0x564d6ee1e760-Name" }, { - "id": "0x5596e058f760-Name", + "id": "0x564d6ee1e760-Name", "source": "total_sum" }, { - "id": "0x5596e0568cf0-Expr", + "id": "0x564d6edf7cf0-Expr", "variantKey": "Add", - "Add": "0x5596e0568d10-Add" + "Add": "0x564d6edf7d10-Add" }, { - "id": "0x5596e0568d10-Add", - "left": "0x5596e0596250-Expr", - "right": "0x5596e0595940-Expr", + "id": "0x564d6edf7d10-Add", + "left": "0x564d6ee25250-Expr", + "right": "0x564d6ee24940-Expr", "op": "ADD" }, { - "id": "0x5596e0596250-Expr", + "id": "0x564d6ee25250-Expr", "variantKey": "Designator", - "Designator": "0x5596e05963b0-Designator" + "Designator": "0x564d6ee253b0-Designator" }, { - "id": "0x5596e05963b0-Designator", + "id": "0x564d6ee253b0-Designator", "variantKey": "DataRef", - "DataRef": "0x5596e05963c0-DataRef" + "DataRef": "0x564d6ee253c0-DataRef" }, { - "id": "0x5596e05963c0-DataRef", + "id": "0x564d6ee253c0-DataRef", "variantKey": "Name", - "Name": "0x5596e05963c0-Name" + "Name": "0x564d6ee253c0-Name" }, { - "id": "0x5596e05963c0-Name", + "id": "0x564d6ee253c0-Name", "source": "total_sum" }, { - "id": "0x5596e0595940-Expr", + "id": "0x564d6ee24940-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5596e0595960-LiteralConstant" + "LiteralConstant": "0x564d6ee24960-LiteralConstant" }, { - "id": "0x5596e0595960-LiteralConstant", + "id": "0x564d6ee24960-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5596e0595960-IntLiteralConstant" + "IntLiteralConstant": "0x564d6ee24960-IntLiteralConstant" }, { - "id": "0x5596e0595960-IntLiteralConstant", + "id": "0x564d6ee24960-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5596e0530780-Statement", - "statement": "0x5596e0530790-EndDoStmt", + "id": "0x564d6edbf780-Statement", + "statement": "0x564d6edbf790-EndDoStmt", "source": "end do" }, { - "id": "0x5596e0530790-EndDoStmt" + "id": "0x564d6edbf790-EndDoStmt" }, { - "id": "0x5596e0596770-OmpEndLoopDirective", - "OmpDirectiveName": "0x5596e05967e8-OmpDirectiveName", - "OmpClauseList": "0x5596e0596788-OmpClauseList", - "Flags = {}": "0x5596e0596780-Flags = {}" + "id": "0x564d6ee25770-OmpEndLoopDirective", + "OmpDirectiveName": "0x564d6ee257e8-OmpDirectiveName", + "OmpClauseList": "0x564d6ee25788-OmpClauseList", + "Flags = {}": "0x564d6ee25780-Flags = {}" }, { - "id": "0x5596e05967e8-OmpDirectiveName", + "id": "0x564d6ee257e8-OmpDirectiveName", "directive": "parallel do" }, { - "id": "0x5596e0596788-OmpClauseList" + "id": "0x564d6ee25788-OmpClauseList" }, { - "id": "0x5596e0586240-Statement", - "statement": "0x5596e0586250-EndProgramStmt", + "id": "0x564d6ee15240-Statement", + "statement": "0x564d6ee15250-EndProgramStmt", "source": "end program OPENMP_DEMO" }, { - "id": "0x5596e0586250-EndProgramStmt", - "Name": "0x5596e0586250-Name" + "id": "0x564d6ee15250-EndProgramStmt", + "Name": "0x564d6ee15250-Name" }, { - "id": "0x5596e0586250-Name", + "id": "0x564d6ee15250-Name", "source": "OPENMP_DEMO" } ], diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/AlwaysClassMapper.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/AlwaysClassMapper.java new file mode 100644 index 00000000..df5deb7c --- /dev/null +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/AlwaysClassMapper.java @@ -0,0 +1,23 @@ +package pt.up.fe.specs.fortran.parser; + +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Optional; + +public class AlwaysClassMapper extends ClassMapper { + private final Class clazz; + + public AlwaysClassMapper(Class clazz) { + this.clazz = clazz; + } + + @Override + public Optional> get(FlangAttributes attrs) { + return Optional.of(clazz); + } + + @Override + public boolean has(FlangAttributes attrs) { + return true; + } +} diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/CaseClassMapper.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/CaseClassMapper.java new file mode 100644 index 00000000..f2355769 --- /dev/null +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/CaseClassMapper.java @@ -0,0 +1,44 @@ +package pt.up.fe.specs.fortran.parser; + +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +public class CaseClassMapper extends ClassMapper { + private final Map>> caseMap; + + public CaseClassMapper(Map>> caseMap) { + this.caseMap = new HashMap<>(caseMap); + } + + public CaseClassMapper() { + this.caseMap = new HashMap<>(); + } + + public CaseClassMapper map(FlangName variantKey, Class clazz) { + caseMap.put(variantKey.getString(), Optional.of(clazz)); + return this; + } + + public CaseClassMapper ignore(FlangName variantKey) { + caseMap.put(variantKey.getString(), Optional.empty()); + return this; + } + + @Override + public Optional> get(FlangAttributes attrs) { + var clazz = caseMap.get(attrs.getVariantKey()); + Objects.requireNonNull(clazz, "Could not find variant node for node with attributes " + attrs); + + return clazz; + } + + @Override + public boolean has(FlangAttributes attrs) { + var clazz = caseMap.get(attrs.getVariantKey()); + return clazz != null && clazz.isPresent(); + } +} diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/ClassMapper.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/ClassMapper.java new file mode 100644 index 00000000..6ac2b71f --- /dev/null +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/ClassMapper.java @@ -0,0 +1,18 @@ +package pt.up.fe.specs.fortran.parser; + +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Optional; + +public abstract class ClassMapper { + public abstract Optional> get(FlangAttributes attrs); + public abstract boolean has(FlangAttributes attrs); + + public static AlwaysClassMapper always(Class clazz) { + return new AlwaysClassMapper<>(clazz); + } + + public static CaseClassMapper caseFor(Class ignoredClazz) { + return new CaseClassMapper<>(); + } +} diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangData.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangData.java index a3b2f168..06b01362 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangData.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangData.java @@ -53,7 +53,7 @@ public Optional getDerivedId(String id, boolean isNode) { } // If there is already a concrete FortranAst class for this id, there is no derivation - if (FlangToClass.isConcreteClass(getKind(id), getAttrs(id))) { + if (FlangToClass.isClass(getKind(id), getAttrs(id))) { return Optional.empty(); } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index a4347284..2d5baad2 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -31,6 +31,8 @@ public enum FlangName implements StringProvider { DATA_STMT_REPEAT, DATA_STMT_CONSTANT, TYPE_PARAM_VALUE, + DEFERRED, + GENERIC_SPEC, /// STMTs STATEMENT, @@ -60,6 +62,7 @@ public enum FlangName implements StringProvider { DEALLOCATE_STMT, USE_STMT, ONLY, + RENAME, NAMES, OPERATORS, CONTINUE_STMT, @@ -98,6 +101,7 @@ public enum FlangName implements StringProvider { VARIABLE, DESIGNATOR, DATA_REF, + FUNCTION_REFERENCE, /// EXPRs EXPR, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 69234f99..f71742ef 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -50,257 +50,192 @@ import java.util.HashMap; import java.util.Map; import java.util.Optional; -import java.util.function.Function; public class FlangToClass { - private static final Map> NAME_TO_CLASS = new HashMap<>(); - private static final Map>>> - NAME_TO_CONCRETE_CLASS = new HashMap<>(); + private static final Map> NAME_TO_MAPPER = new HashMap<>(); static { - NAME_TO_CLASS.put(FlangName.PROGRAM, FortranFile.class); - NAME_TO_CLASS.put(FlangName.MAIN_PROGRAM, MainProgram.class); - NAME_TO_CLASS.put(FlangName.PROGRAM_STMT, ProgramStmt.class); - NAME_TO_CLASS.put(FlangName.END_PROGRAM_STMT, EndProgramStmt.class); - NAME_TO_CLASS.put(FlangName.SPECIFICATION_PART, Specification.class); - NAME_TO_CLASS.put(FlangName.EXECUTION_PART, Execution.class); - NAME_TO_CLASS.put(FlangName.INTERNAL_SUBPROGRAM_PART, InternalSubprogram.class); - NAME_TO_CLASS.put(FlangName.SUBROUTINE_SUBPROGRAM, Subroutine.class); - NAME_TO_CLASS.put(FlangName.SUBROUTINE_STMT, SubroutineStmt.class); - NAME_TO_CLASS.put(FlangName.END_SUBROUTINE_STMT, EndSubroutineStmt.class); - NAME_TO_CLASS.put(FlangName.ALLOCATION, Allocation.class); + NAME_TO_MAPPER.put(FlangName.PROGRAM, ClassMapper.always(FortranFile.class)); + NAME_TO_MAPPER.put(FlangName.MAIN_PROGRAM, ClassMapper.always(MainProgram.class)); + NAME_TO_MAPPER.put(FlangName.PROGRAM_STMT, ClassMapper.always(ProgramStmt.class)); + NAME_TO_MAPPER.put(FlangName.END_PROGRAM_STMT, ClassMapper.always(EndProgramStmt.class)); + NAME_TO_MAPPER.put(FlangName.SPECIFICATION_PART, ClassMapper.always(Specification.class)); + NAME_TO_MAPPER.put(FlangName.EXECUTION_PART, ClassMapper.always(Execution.class)); + NAME_TO_MAPPER.put(FlangName.INTERNAL_SUBPROGRAM_PART, ClassMapper.always(InternalSubprogram.class)); + NAME_TO_MAPPER.put(FlangName.SUBROUTINE_SUBPROGRAM, ClassMapper.always(Subroutine.class)); + NAME_TO_MAPPER.put(FlangName.SUBROUTINE_STMT, ClassMapper.always(SubroutineStmt.class)); + NAME_TO_MAPPER.put(FlangName.END_SUBROUTINE_STMT, ClassMapper.always(EndSubroutineStmt.class)); + NAME_TO_MAPPER.put(FlangName.ALLOCATION, ClassMapper.always(Allocation.class)); /// DECLs - NAME_TO_CLASS.put(FlangName.ENTITY_DECL, EntityDecl.class); - NAME_TO_CLASS.put(FlangName.DUMMY_ARG, Parameter.class); - NAME_TO_CONCRETE_CLASS.put(FlangName.DUMMY_ARG, FlangToClass::chooseParameter); - NAME_TO_CLASS.put(FlangName.DATA_STMT_VALUE, DataStmtValue.class); - NAME_TO_CLASS.put(FlangName.TYPE_PARAM_VALUE, TypeParamValue.class); - NAME_TO_CONCRETE_CLASS.put(FlangName.TYPE_PARAM_VALUE, FlangToClass::chooseTypeParamValue); + NAME_TO_MAPPER.put(FlangName.ENTITY_DECL, ClassMapper.always(EntityDecl.class)); + NAME_TO_MAPPER.put(FlangName.DUMMY_ARG, ClassMapper.caseFor(Parameter.class) + .map(FlangName.NAME, NamedParameter.class) + .map(FlangName.STAR, StarParameter.class)); + NAME_TO_MAPPER.put(FlangName.DATA_STMT_VALUE, ClassMapper.always(DataStmtValue.class)); + NAME_TO_MAPPER.put(FlangName.TYPE_PARAM_VALUE, ClassMapper.caseFor(TypeParamValue.class) + .map(FlangName.EXPR, ExprTypeParamValue.class) + .map(FlangName.STAR, StarTypeParamValue.class) + .map(FlangName.DEFERRED, DeferredTypeParamValue.class)); /// STMTs - NAME_TO_CLASS.put(FlangName.PRINT_STMT, PrintStmt.class); - NAME_TO_CLASS.put(FlangName.FORMAT_STMT, FormatStmt.class); - NAME_TO_CLASS.put(FlangName.TYPE_DECLARATION_STMT, TypeDeclarationStmt.class); - NAME_TO_CLASS.put(FlangName.ASSIGNMENT_STMT, AssignmentStmt.class); - NAME_TO_CLASS.put(FlangName.DO_CONSTRUCT, DoConstruct.class); - NAME_TO_CLASS.put(FlangName.NON_LABEL_DO_STMT, DoStmt.class); - NAME_TO_CLASS.put(FlangName.END_DO_STMT, EndDoStmt.class); - NAME_TO_CLASS.put(FlangName.COMPILER_DIRECTIVE, CompilerDirective.class); - NAME_TO_CLASS.put(FlangName.GOTO_STMT, GotoStmt.class); - NAME_TO_CLASS.put(FlangName.STOP_STMT, StopStmt.class); - NAME_TO_CLASS.put(FlangName.COMMON_STMT, CommonStmt.class); - NAME_TO_CLASS.put(FlangName.COMMON_STMT_BLOCK, CommonBlock.class); - NAME_TO_CLASS.put(FlangName.COMMON_BLOCK_OBJECT, CommonBlockObject.class); - - NAME_TO_CLASS.put(FlangName.IF_CONSTRUCT, IfConstruct.class); - NAME_TO_CLASS.put(FlangName.IF_THEN_STMT, IfThenStmt.class); - NAME_TO_CLASS.put(FlangName.ELSE_IF_BLOCK, ElseIfBlock.class); - NAME_TO_CLASS.put(FlangName.ELSE_IF_STMT, ElseIfStmt.class); - NAME_TO_CLASS.put(FlangName.ELSE_BLOCK, ElseBlock.class); - NAME_TO_CLASS.put(FlangName.ELSE_STMT, ElseStmt.class); - NAME_TO_CLASS.put(FlangName.END_IF_STMT, EndIfStmt.class); - NAME_TO_CLASS.put(FlangName.IF_STMT, IfStmt.class); - - NAME_TO_CLASS.put(FlangName.CASE_CONSTRUCT, CaseConstruct.class); - NAME_TO_CLASS.put(FlangName.SELECT_CASE_STMT, SelectCaseStmt.class); - NAME_TO_CLASS.put(FlangName.CASE, CaseBlock.class); - NAME_TO_CLASS.put(FlangName.END_SELECT_STMT, EndSelectStmt.class); - - NAME_TO_CLASS.put(FlangName.CALL_STMT, CallStmt.class); - NAME_TO_CLASS.put(FlangName.WRITE_STMT, WriteStmt.class); - NAME_TO_CLASS.put(FlangName.CONTAINS_STMT, ContainsStmt.class); - NAME_TO_CLASS.put(FlangName.ALLOCATE_STMT, AllocateStmt.class); - NAME_TO_CLASS.put(FlangName.DEALLOCATE_STMT, DeallocateStmt.class); - NAME_TO_CLASS.put(FlangName.USE_STMT, UseStmt.class); - NAME_TO_CONCRETE_CLASS.put(FlangName.USE_STMT, FlangToClass::chooseUseStmt); - NAME_TO_CLASS.put(FlangName.ONLY, Only.class); - NAME_TO_CONCRETE_CLASS.put(FlangName.ONLY, FlangToClass::chooseOnly); - NAME_TO_CLASS.put(FlangName.NAMES, NamesRename.class); - NAME_TO_CLASS.put(FlangName.OPERATORS, OperatorsRename.class); - NAME_TO_CLASS.put(FlangName.CONTINUE_STMT, ContinueStmt.class); - NAME_TO_CLASS.put(FlangName.PARAMETER_STMT, ParameterStmt.class); - NAME_TO_CLASS.put(FlangName.NAMED_CONSTANT_DEF, NamedConstantDef.class); - NAME_TO_CLASS.put(FlangName.DATA_STMT, DataStmt.class); - NAME_TO_CLASS.put(FlangName.DATA_STMT_SET, DataStmtSet.class); - NAME_TO_CLASS.put(FlangName.RETURN_STMT, ReturnStmt.class); - NAME_TO_CLASS.put(FlangName.DIMENSION_STMT, DimensionStmt.class); - NAME_TO_CLASS.put(FlangName.DECLARATION, DimensionDecl.class); + NAME_TO_MAPPER.put(FlangName.PRINT_STMT, ClassMapper.always(PrintStmt.class)); + NAME_TO_MAPPER.put(FlangName.FORMAT_STMT, ClassMapper.always(FormatStmt.class)); + NAME_TO_MAPPER.put(FlangName.TYPE_DECLARATION_STMT, ClassMapper.always(TypeDeclarationStmt.class)); + NAME_TO_MAPPER.put(FlangName.ASSIGNMENT_STMT, ClassMapper.always(AssignmentStmt.class)); + NAME_TO_MAPPER.put(FlangName.DO_CONSTRUCT, ClassMapper.always(DoConstruct.class)); + NAME_TO_MAPPER.put(FlangName.NON_LABEL_DO_STMT, ClassMapper.always(DoStmt.class)); + NAME_TO_MAPPER.put(FlangName.END_DO_STMT, ClassMapper.always(EndDoStmt.class)); + NAME_TO_MAPPER.put(FlangName.COMPILER_DIRECTIVE, ClassMapper.always(CompilerDirective.class)); + NAME_TO_MAPPER.put(FlangName.GOTO_STMT, ClassMapper.always(GotoStmt.class)); + NAME_TO_MAPPER.put(FlangName.STOP_STMT, ClassMapper.always(StopStmt.class)); + NAME_TO_MAPPER.put(FlangName.COMMON_STMT, ClassMapper.always(CommonStmt.class)); + NAME_TO_MAPPER.put(FlangName.COMMON_STMT_BLOCK, ClassMapper.always(CommonBlock.class)); + NAME_TO_MAPPER.put(FlangName.COMMON_BLOCK_OBJECT, ClassMapper.always(CommonBlockObject.class)); + + NAME_TO_MAPPER.put(FlangName.IF_CONSTRUCT, ClassMapper.always(IfConstruct.class)); + NAME_TO_MAPPER.put(FlangName.IF_THEN_STMT, ClassMapper.always(IfThenStmt.class)); + NAME_TO_MAPPER.put(FlangName.ELSE_IF_BLOCK, ClassMapper.always(ElseIfBlock.class)); + NAME_TO_MAPPER.put(FlangName.ELSE_IF_STMT, ClassMapper.always(ElseIfStmt.class)); + NAME_TO_MAPPER.put(FlangName.ELSE_BLOCK, ClassMapper.always(ElseBlock.class)); + NAME_TO_MAPPER.put(FlangName.ELSE_STMT, ClassMapper.always(ElseStmt.class)); + NAME_TO_MAPPER.put(FlangName.END_IF_STMT, ClassMapper.always(EndIfStmt.class)); + NAME_TO_MAPPER.put(FlangName.IF_STMT, ClassMapper.always(IfStmt.class)); + + NAME_TO_MAPPER.put(FlangName.CASE_CONSTRUCT, ClassMapper.always(CaseConstruct.class)); + NAME_TO_MAPPER.put(FlangName.SELECT_CASE_STMT, ClassMapper.always(SelectCaseStmt.class)); + NAME_TO_MAPPER.put(FlangName.CASE, ClassMapper.always(CaseBlock.class)); + NAME_TO_MAPPER.put(FlangName.END_SELECT_STMT, ClassMapper.always(EndSelectStmt.class)); + + NAME_TO_MAPPER.put(FlangName.CALL_STMT, ClassMapper.always(CallStmt.class)); + NAME_TO_MAPPER.put(FlangName.WRITE_STMT, ClassMapper.always(WriteStmt.class)); + NAME_TO_MAPPER.put(FlangName.CONTAINS_STMT, ClassMapper.always(ContainsStmt.class)); + NAME_TO_MAPPER.put(FlangName.ALLOCATE_STMT, ClassMapper.always(AllocateStmt.class)); + NAME_TO_MAPPER.put(FlangName.DEALLOCATE_STMT, ClassMapper.always(DeallocateStmt.class)); + NAME_TO_MAPPER.put(FlangName.USE_STMT, ClassMapper.caseFor(UseStmt.class) + .map(FlangName.RENAME, UseRenameStmt.class) + .map(FlangName.ONLY, UseOnlyStmt.class)); + NAME_TO_MAPPER.put(FlangName.ONLY, ClassMapper.caseFor(Only.class) + .map(FlangName.GENERIC_SPEC, OnlyGenericSpec.class) + .map(FlangName.NAME, UseName.class) + .ignore(FlangName.RENAME)); + NAME_TO_MAPPER.put(FlangName.NAMES, ClassMapper.always(NamesRename.class)); + NAME_TO_MAPPER.put(FlangName.OPERATORS, ClassMapper.always(OperatorsRename.class)); + NAME_TO_MAPPER.put(FlangName.CONTINUE_STMT, ClassMapper.always(ContinueStmt.class)); + NAME_TO_MAPPER.put(FlangName.PARAMETER_STMT, ClassMapper.always(ParameterStmt.class)); + NAME_TO_MAPPER.put(FlangName.NAMED_CONSTANT_DEF, ClassMapper.always(NamedConstantDef.class)); + NAME_TO_MAPPER.put(FlangName.DATA_STMT, ClassMapper.always(DataStmt.class)); + NAME_TO_MAPPER.put(FlangName.DATA_STMT_SET, ClassMapper.always(DataStmtSet.class)); + NAME_TO_MAPPER.put(FlangName.RETURN_STMT, ClassMapper.always(ReturnStmt.class)); + NAME_TO_MAPPER.put(FlangName.DIMENSION_STMT, ClassMapper.always(DimensionStmt.class)); + NAME_TO_MAPPER.put(FlangName.DECLARATION, ClassMapper.always(DimensionDecl.class)); /// Variables //NAME_TO_CLASS.put(FlangName.DATA_REF, DataRef.class); // TODO(Process-ing): Improve this - NAME_TO_CLASS.put(FlangName.NAME, DataRef.class); - NAME_TO_CLASS.put(FlangName.VARIABLE, Variable.class); - NAME_TO_CONCRETE_CLASS.put(FlangName.VARIABLE, FlangToClass::chooseVariable); + NAME_TO_MAPPER.put(FlangName.NAME, ClassMapper.always(DataRef.class)); + NAME_TO_MAPPER.put(FlangName.VARIABLE, ClassMapper.caseFor(Variable.class) + .map(FlangName.DESIGNATOR, DesignatorVariable.class) + .map(FlangName.FUNCTION_REFERENCE, FunctionRefVariable.class)); /// EXPRs - NAME_TO_CLASS.put(FlangName.CHAR_LITERAL_CONSTANT, StringLiteral.class); - NAME_TO_CLASS.put(FlangName.INT_LITERAL_CONSTANT, IntLiteral.class); - NAME_TO_CLASS.put(FlangName.SIGNED_INT_LITERAL_CONSTANT, IntLiteral.class); - NAME_TO_CLASS.put(FlangName.KIND_SELECTOR, KindSelector.class); - NAME_TO_CLASS.put(FlangName.LOGICAL_LITERAL_CONSTANT, LogicalLiteral.class); - NAME_TO_CLASS.put(FlangName.REAL_LITERAL_CONSTANT, RealLiteral.class); - NAME_TO_CLASS.put(FlangName.SIGNED_REAL_LITERAL_CONSTANT, RealLiteral.class); - NAME_TO_CLASS.put(FlangName.FORMAT, Format.class); - NAME_TO_CLASS.put(FlangName.STAR, Star.class); - NAME_TO_CLASS.put(FlangName.PARENTHESES, ParenExpr.class); - NAME_TO_CLASS.put(FlangName.UNARY_PLUS, UnaryOperator.class); - NAME_TO_CLASS.put(FlangName.NEGATE, UnaryOperator.class); - NAME_TO_CLASS.put(FlangName.NOT, UnaryOperator.class); - NAME_TO_CLASS.put(FlangName.ADD, BinaryOperator.class); - NAME_TO_CLASS.put(FlangName.SUBTRACT, BinaryOperator.class); - NAME_TO_CLASS.put(FlangName.MULTIPLY, BinaryOperator.class); - NAME_TO_CLASS.put(FlangName.DIVIDE, BinaryOperator.class); - NAME_TO_CLASS.put(FlangName.EQ, BinaryOperator.class); - NAME_TO_CLASS.put(FlangName.NE, BinaryOperator.class); - NAME_TO_CLASS.put(FlangName.LT, BinaryOperator.class); - NAME_TO_CLASS.put(FlangName.LE, BinaryOperator.class); - NAME_TO_CLASS.put(FlangName.GT, BinaryOperator.class); - NAME_TO_CLASS.put(FlangName.GE, BinaryOperator.class); - NAME_TO_CLASS.put(FlangName.AND, BinaryOperator.class); - NAME_TO_CLASS.put(FlangName.CONCAT, BinaryOperator.class); - NAME_TO_CLASS.put(FlangName.ARRAY_CONSTRUCTOR, ArrayConstructor.class); - NAME_TO_CLASS.put(FlangName.AC_SPEC, AcSpecification.class); - NAME_TO_CLASS.put(FlangName.ARRAY_ELEMENT, ArraySubscriptExpr.class); - NAME_TO_CLASS.put(FlangName.SUBSCRIPT, Subscript.class); - NAME_TO_CLASS.put(FlangName.SUBSCRIPT_TRIPLET, SubscriptTriplet.class); - NAME_TO_CLASS.put(FlangName.CALL, Call.class); - NAME_TO_CLASS.put(FlangName.ACTUAL_ARG_SPEC, Argument.class); - NAME_TO_CLASS.put(FlangName.AC_IMPLIED_DO, AcImpliedDo.class); - NAME_TO_CLASS.put(FlangName.AC_IMPLIED_DO_CONTROL, AcImpliedDoControl.class); - NAME_TO_CLASS.put(FlangName.NAMED_CONSTANT, NamedLiteral.class); - NAME_TO_CLASS.put(FlangName.COMPLEX_LITERAL_CONSTANT, ComplexLiteral.class); - NAME_TO_CLASS.put(FlangName.COMPLEX_PART, ComplexPart.class); - NAME_TO_CONCRETE_CLASS.put(FlangName.COMPLEX_PART, FlangToClass::chooseComplexPart); - NAME_TO_CLASS.put(FlangName.SUBSTRING, Substring.class); + NAME_TO_MAPPER.put(FlangName.CHAR_LITERAL_CONSTANT, ClassMapper.always(StringLiteral.class)); + NAME_TO_MAPPER.put(FlangName.INT_LITERAL_CONSTANT, ClassMapper.always(IntLiteral.class)); + NAME_TO_MAPPER.put(FlangName.SIGNED_INT_LITERAL_CONSTANT, ClassMapper.always(IntLiteral.class)); + NAME_TO_MAPPER.put(FlangName.KIND_SELECTOR, ClassMapper.always(KindSelector.class)); + NAME_TO_MAPPER.put(FlangName.LOGICAL_LITERAL_CONSTANT, ClassMapper.always(LogicalLiteral.class)); + NAME_TO_MAPPER.put(FlangName.REAL_LITERAL_CONSTANT, ClassMapper.always(RealLiteral.class)); + NAME_TO_MAPPER.put(FlangName.SIGNED_REAL_LITERAL_CONSTANT, ClassMapper.always(RealLiteral.class)); + NAME_TO_MAPPER.put(FlangName.FORMAT, ClassMapper.always(Format.class)); + NAME_TO_MAPPER.put(FlangName.STAR, ClassMapper.always(Star.class)); + NAME_TO_MAPPER.put(FlangName.PARENTHESES, ClassMapper.always(ParenExpr.class)); + NAME_TO_MAPPER.put(FlangName.UNARY_PLUS, ClassMapper.always(UnaryOperator.class)); + NAME_TO_MAPPER.put(FlangName.NEGATE, ClassMapper.always(UnaryOperator.class)); + NAME_TO_MAPPER.put(FlangName.NOT, ClassMapper.always(UnaryOperator.class)); + NAME_TO_MAPPER.put(FlangName.ADD, ClassMapper.always(BinaryOperator.class)); + NAME_TO_MAPPER.put(FlangName.SUBTRACT, ClassMapper.always(BinaryOperator.class)); + NAME_TO_MAPPER.put(FlangName.MULTIPLY, ClassMapper.always(BinaryOperator.class)); + NAME_TO_MAPPER.put(FlangName.DIVIDE, ClassMapper.always(BinaryOperator.class)); + NAME_TO_MAPPER.put(FlangName.EQ, ClassMapper.always(BinaryOperator.class)); + NAME_TO_MAPPER.put(FlangName.NE, ClassMapper.always(BinaryOperator.class)); + NAME_TO_MAPPER.put(FlangName.LT, ClassMapper.always(BinaryOperator.class)); + NAME_TO_MAPPER.put(FlangName.LE, ClassMapper.always(BinaryOperator.class)); + NAME_TO_MAPPER.put(FlangName.GT, ClassMapper.always(BinaryOperator.class)); + NAME_TO_MAPPER.put(FlangName.GE, ClassMapper.always(BinaryOperator.class)); + NAME_TO_MAPPER.put(FlangName.AND, ClassMapper.always(BinaryOperator.class)); + NAME_TO_MAPPER.put(FlangName.CONCAT, ClassMapper.always(BinaryOperator.class)); + NAME_TO_MAPPER.put(FlangName.ARRAY_CONSTRUCTOR, ClassMapper.always(ArrayConstructor.class)); + NAME_TO_MAPPER.put(FlangName.AC_SPEC, ClassMapper.always(AcSpecification.class)); + NAME_TO_MAPPER.put(FlangName.ARRAY_ELEMENT, ClassMapper.always(ArraySubscriptExpr.class)); + NAME_TO_MAPPER.put(FlangName.SUBSCRIPT, ClassMapper.always(Subscript.class)); + NAME_TO_MAPPER.put(FlangName.SUBSCRIPT_TRIPLET, ClassMapper.always(SubscriptTriplet.class)); + NAME_TO_MAPPER.put(FlangName.CALL, ClassMapper.always(Call.class)); + NAME_TO_MAPPER.put(FlangName.ACTUAL_ARG_SPEC, ClassMapper.always(Argument.class)); + NAME_TO_MAPPER.put(FlangName.AC_IMPLIED_DO, ClassMapper.always(AcImpliedDo.class)); + NAME_TO_MAPPER.put(FlangName.AC_IMPLIED_DO_CONTROL, ClassMapper.always(AcImpliedDoControl.class)); + NAME_TO_MAPPER.put(FlangName.NAMED_CONSTANT, ClassMapper.always(NamedLiteral.class)); + NAME_TO_MAPPER.put(FlangName.COMPLEX_LITERAL_CONSTANT, ClassMapper.always(ComplexLiteral.class)); + NAME_TO_MAPPER.put(FlangName.COMPLEX_PART, ClassMapper.caseFor(ComplexPart.class) + .map(FlangName.SIGNED_INT_LITERAL_CONSTANT, IntComplexPart.class) + .map(FlangName.SIGNED_REAL_LITERAL_CONSTANT, RealComplexPart.class) + .map(FlangName.NAMED_CONSTANT, NamedComplexPart.class)); + NAME_TO_MAPPER.put(FlangName.SUBSTRING, ClassMapper.always(Substring.class)); /// TYPEs - NAME_TO_CLASS.put(FlangName.INTEGER_TYPE_SPEC, IntegerType.class); - NAME_TO_CLASS.put(FlangName.LOGICAL, LogicalType.class); - NAME_TO_CLASS.put(FlangName.DOUBLE_PRECISION, DoublePrecisionType.class); - NAME_TO_CLASS.put(FlangName.CHARACTER, CharacterType.class); - NAME_TO_CLASS.put(FlangName.REAL, RealType.class); - NAME_TO_CLASS.put(FlangName.COMPLEX, ComplexType.class); - NAME_TO_CLASS.put(FlangName.CHAR_LENGTH, ConstLenSelector.class); - NAME_TO_CLASS.put(FlangName.LENGTH_SELECTOR, LenSelector.class); - NAME_TO_CONCRETE_CLASS.put(FlangName.LENGTH_SELECTOR, FlangToClass::chooseLengthSelector); - NAME_TO_CLASS.put(FlangName.LENGTH_AND_KIND, KindParamLenSelector.class); + NAME_TO_MAPPER.put(FlangName.INTEGER_TYPE_SPEC, ClassMapper.always(IntegerType.class)); + NAME_TO_MAPPER.put(FlangName.LOGICAL, ClassMapper.always(LogicalType.class)); + NAME_TO_MAPPER.put(FlangName.DOUBLE_PRECISION, ClassMapper.always(DoublePrecisionType.class)); + NAME_TO_MAPPER.put(FlangName.CHARACTER, ClassMapper.always(CharacterType.class)); + NAME_TO_MAPPER.put(FlangName.REAL, ClassMapper.always(RealType.class)); + NAME_TO_MAPPER.put(FlangName.COMPLEX, ClassMapper.always(ComplexType.class)); + NAME_TO_MAPPER.put(FlangName.CHAR_LENGTH, ClassMapper.always(ConstLenSelector.class)); + NAME_TO_MAPPER.put(FlangName.LENGTH_SELECTOR, ClassMapper.caseFor(LenSelector.class) + .map(FlangName.TYPE_PARAM_VALUE, ParamLenSelector.class) + .map(FlangName.CHAR_LENGTH, ConstLenSelector.class)); + NAME_TO_MAPPER.put(FlangName.LENGTH_AND_KIND, ClassMapper.always(KindParamLenSelector.class)); /// LOOP - NAME_TO_CLASS.put(FlangName.LOOP_BOUNDS, RangeLoopControl.class); - NAME_TO_CLASS.put(FlangName.CONCURRENT, ConcurrentLoopControl.class); - NAME_TO_CLASS.put(FlangName.CONCURRENT_CONTROL, ConcurrentRange.class); + NAME_TO_MAPPER.put(FlangName.LOOP_BOUNDS, ClassMapper.always(RangeLoopControl.class)); + NAME_TO_MAPPER.put(FlangName.CONCURRENT, ClassMapper.always(ConcurrentLoopControl.class)); + NAME_TO_MAPPER.put(FlangName.CONCURRENT_CONTROL, ClassMapper.always(ConcurrentRange.class)); /// ATTRIBUTES - NAME_TO_CLASS.put(FlangName.ARRAY_SPEC, ArraySpecification.class); - NAME_TO_CLASS.put(FlangName.ALLOCATABLE, AllocatableKeyword.class); - NAME_TO_CLASS.put(FlangName.INTENT_SPEC, IntentSpec.class); - NAME_TO_CLASS.put(FlangName.PARAMETER, ParameterKeyword.class); + NAME_TO_MAPPER.put(FlangName.ARRAY_SPEC, ClassMapper.always(ArraySpecification.class)); + NAME_TO_MAPPER.put(FlangName.ALLOCATABLE, ClassMapper.always(AllocatableKeyword.class)); + NAME_TO_MAPPER.put(FlangName.INTENT_SPEC, ClassMapper.always(IntentSpec.class)); + NAME_TO_MAPPER.put(FlangName.PARAMETER, ClassMapper.always(ParameterKeyword.class)); /// SHAPES - NAME_TO_CLASS.put(FlangName.EXPLICIT_SHAPE_SPEC, ExplicitShapeSpecification.class); - NAME_TO_CLASS.put(FlangName.DEFERRED_SHAPE_SPEC_LIST, DeferredShapeSpecList.class); - NAME_TO_CLASS.put(FlangName.ALLOCATE_SHAPE_SPEC, AllocateShapeSpecification.class); + NAME_TO_MAPPER.put(FlangName.EXPLICIT_SHAPE_SPEC, ClassMapper.always(ExplicitShapeSpecification.class)); + NAME_TO_MAPPER.put(FlangName.DEFERRED_SHAPE_SPEC_LIST, ClassMapper.always(DeferredShapeSpecList.class)); + NAME_TO_MAPPER.put(FlangName.ALLOCATE_SHAPE_SPEC, ClassMapper.always(AllocateShapeSpecification.class)); /// UTILs - NAME_TO_CLASS.put(FlangName.NAME_VALUE, NameValue.class); - NAME_TO_CLASS.put(FlangName.IO_UNIT, IoUnit.class); - NAME_TO_CLASS.put(FlangName.IO_CONTROL_SPEC, IoControlSpec.class); - NAME_TO_CLASS.put(FlangName.STAT_VARIABLE, StatAllocOption.class); + NAME_TO_MAPPER.put(FlangName.NAME_VALUE, ClassMapper.always(NameValue.class)); + NAME_TO_MAPPER.put(FlangName.IO_UNIT, ClassMapper.always(IoUnit.class)); + NAME_TO_MAPPER.put(FlangName.IO_CONTROL_SPEC, ClassMapper.always(IoControlSpec.class)); + NAME_TO_MAPPER.put(FlangName.STAT_VARIABLE, ClassMapper.always(StatAllocOption.class)); /// OPENMP - NAME_TO_CLASS.put(FlangName.OMP_BLOCK_CONSTRUCT, OmpBlockConstruct.class); - NAME_TO_CLASS.put(FlangName.OPENMP_LOOP_CONSTRUCT, OmpLoopConstruct.class); - NAME_TO_CLASS.put(FlangName.SHARED, OmpDataSharingClause.class); - NAME_TO_CLASS.put(FlangName.PRIVATE, OmpDataSharingClause.class); - NAME_TO_CLASS.put(FlangName.FIRST_PRIVATE, OmpDataSharingClause.class); - NAME_TO_CLASS.put(FlangName.REDUCTION, OmpReductionClause.class); - NAME_TO_CLASS.put(FlangName.NOWAIT, OmpNowaitClause.class); - } - - private static Optional> chooseComplexPart(FlangAttributes attrs) { - return switch (attrs.getVariantKey()) { - case "SignedIntLiteralConstant" -> Optional.of(IntComplexPart.class); - case "SignedRealLiteralConstant" -> Optional.of(RealComplexPart.class); - case "NamedConstant" -> Optional.of(NamedComplexPart.class); - default -> Optional.empty(); - }; - } - - private static Optional> chooseLengthSelector(FlangAttributes attrs) { - return attrs.has("TypeParamValue") - ? Optional.of(ParamLenSelector.class) - : Optional.empty(); - } - - private static Optional> chooseOnly(FlangAttributes attrs) { - return switch (attrs.getVariantKey()) { - case "GenericSpec" -> Optional.of(OnlyGenericSpec.class); - case "Name" -> Optional.of(UseName.class); - default -> Optional.empty(); - }; - } - - private static Optional> chooseParameter(FlangAttributes attrs) { - return switch (attrs.getVariantKey()) { - case "Name" -> Optional.of(NamedParameter.class); - case "Star" -> Optional.of(StarParameter.class); - default -> Optional.empty(); - }; - } - - private static Optional> chooseTypeParamValue(FlangAttributes attrs) { - return switch (attrs.getVariantKey()) { - case "Expr" -> Optional.of(ExprTypeParamValue.class); - case "Star" -> Optional.of(StarTypeParamValue.class); - case "Deferred" -> Optional.of(DeferredTypeParamValue.class); - default -> Optional.empty(); - }; - } - - private static Optional> chooseUseStmt(FlangAttributes attrs) { - if (attrs.has("renameList")) { - return Optional.of(UseRenameStmt.class); - } - if (attrs.has("onlyList")) { - return Optional.of(UseOnlyStmt.class); - } - return Optional.empty(); - } - - public static Optional> chooseVariable(FlangAttributes attrs) { - return switch (attrs.getVariantKey()) { - case "Designator" -> Optional.of(DesignatorVariable.class); - case "FunctionReference" -> Optional.of(FunctionRefVariable.class); - default -> Optional.empty(); - }; - } - - - public static boolean isClass(String type) { - return FlangName.convertTry(type).map(NAME_TO_CLASS::containsKey).orElse(false); - } - - public static boolean isConcreteClass(String type, FlangAttributes attrs) { - return FlangName.convertTry(type).map(name -> { - if (NAME_TO_CONCRETE_CLASS.containsKey(name)) { - return NAME_TO_CONCRETE_CLASS.get(name).apply(attrs).isPresent(); - } - return NAME_TO_CLASS.containsKey(name); - }).orElse(false); + NAME_TO_MAPPER.put(FlangName.OMP_BLOCK_CONSTRUCT, ClassMapper.always(OmpBlockConstruct.class)); + NAME_TO_MAPPER.put(FlangName.OPENMP_LOOP_CONSTRUCT, ClassMapper.always(OmpLoopConstruct.class)); + NAME_TO_MAPPER.put(FlangName.SHARED, ClassMapper.always(OmpDataSharingClause.class)); + NAME_TO_MAPPER.put(FlangName.PRIVATE, ClassMapper.always(OmpDataSharingClause.class)); + NAME_TO_MAPPER.put(FlangName.FIRST_PRIVATE, ClassMapper.always(OmpDataSharingClause.class)); + NAME_TO_MAPPER.put(FlangName.REDUCTION, ClassMapper.always(OmpReductionClause.class)); + NAME_TO_MAPPER.put(FlangName.NOWAIT, ClassMapper.always(OmpNowaitClause.class)); } - public static Optional> getClass(String type) { - return FlangName.convertTry(type).map(NAME_TO_CLASS::get); + public static boolean isClass(String type, FlangAttributes attrs) { + return FlangName.convertTry(type) + .flatMap(name -> Optional.ofNullable(NAME_TO_MAPPER.get(name))) + .map(mapper -> mapper.has(attrs)) + .orElse(false); } - public static Optional> getConcreteClass(String type, FlangAttributes attrs) { - return FlangName.convertTry(type).flatMap(name -> { - if (NAME_TO_CONCRETE_CLASS.containsKey(name)) { - return NAME_TO_CONCRETE_CLASS.get(name).apply(attrs); - } - return Optional.ofNullable(NAME_TO_CLASS.get(name)); - }); + public static Optional> getClass(String type, FlangAttributes attrs) { + return FlangName.convertTry(type) + .flatMap(name -> Optional.ofNullable(NAME_TO_MAPPER.get(name))) + .flatMap(mapper -> mapper.get(attrs)); } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java index 212cfe9b..1613f296 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java @@ -148,7 +148,7 @@ private void processNodeData(Map nodeData) { // Get class corresponding to the kind - var fortranClassTry = FlangToClass.getConcreteClass(kind, new FlangAttributes(nodeData)); + var fortranClassTry = FlangToClass.getClass(kind, new FlangAttributes(nodeData)); // If no class assume that kind is to be ignored // Otherwise, create node diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 1a0154cd..e9978108 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -496,14 +496,14 @@ public void useStmt(UseStmt useStmt) { public void useRenameStmt(UseRenameStmt useRenameStmt) { useStmt(useRenameStmt); - var renameList = getChildren(useRenameStmt, "renameList"); + var renameList = getChildren(useRenameStmt, FlangName.RENAME); useRenameStmt.addChildren(renameList); } public void useOnlyStmt(UseOnlyStmt useOnlyStmt) { useStmt(useOnlyStmt); - var onlyList = getChildren(useOnlyStmt, "onlyList"); + var onlyList = getChildren(useOnlyStmt, FlangName.ONLY); useOnlyStmt.addChildren(onlyList); } From 7bdc94062f1e202d483a03684939f019896f82fe Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 24 Jul 2026 17:24:38 +0100 Subject: [PATCH 112/260] Improve case mapper error message --- .../src/pt/up/fe/specs/fortran/parser/CaseClassMapper.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/CaseClassMapper.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/CaseClassMapper.java index f2355769..b829bdaf 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/CaseClassMapper.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/CaseClassMapper.java @@ -30,8 +30,10 @@ public CaseClassMapper ignore(FlangName variantKey) { @Override public Optional> get(FlangAttributes attrs) { - var clazz = caseMap.get(attrs.getVariantKey()); - Objects.requireNonNull(clazz, "Could not find variant node for node with attributes " + attrs); + var variantKey = attrs.getVariantKey(); + var clazz = caseMap.get(variantKey); + Objects.requireNonNull(clazz, () -> "Could not find variant node for node with variant key '" + + variantKey + "'"); return clazz; } From 25c859e6ab49493324f38d048f70432326fd4dcb Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 24 Jul 2026 17:45:33 +0100 Subject: [PATCH 113/260] Add processing of type param values --- .../fortran/parser/processors/DeclProcessors.java | 12 +++++++++++- .../up/fe/specs/fortran/parser/processors/Nodes.java | 6 ++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java index 235d1ffc..b0ffb375 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java @@ -1,6 +1,9 @@ package pt.up.fe.specs.fortran.parser.processors; import pt.up.fe.specs.fortran.ast.nodes.decl.*; +import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.DeferredTypeParamValue; +import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.ExprTypeParamValue; +import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.StarTypeParamValue; import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; @@ -70,7 +73,14 @@ public void namedParameter(NamedParameter namedParameter) { namedParameter.set(NamedParameter.NAME, name); } - public void starParameter(StarParameter starParameter) { + public void starParameter(StarParameter ignoredParameter) {} + public void exprTypeParamValue(ExprTypeParamValue value) { + var expr = getChild(value, FlangName.EXPR); + value.addChild(expr); } + + public void starTypeParamValue(StarTypeParamValue ignoredValue) {} + + public void deferredTypeParamValue(DeferredTypeParamValue ignoredValue) {} } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index d4c0d111..d1e94d3b 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -4,6 +4,9 @@ import pt.up.fe.specs.fortran.ast.nodes.alloc.Allocation; import pt.up.fe.specs.fortran.ast.nodes.alloc.StatAllocOption; import pt.up.fe.specs.fortran.ast.nodes.decl.*; +import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.DeferredTypeParamValue; +import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.ExprTypeParamValue; +import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.StarTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.expr.*; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentLoopControl; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentRange; @@ -69,6 +72,9 @@ public Nodes(FortranJsonResult data) { processors.put(DataStmtValue.class, d::dataStmtValue); processors.put(NamedParameter.class, d::namedParameter); processors.put(StarParameter.class, d::starParameter); + processors.put(ExprTypeParamValue.class, d::exprTypeParamValue); + processors.put(StarTypeParamValue.class, d::starTypeParamValue); + processors.put(DeferredTypeParamValue.class, d::deferredTypeParamValue); var v = new VariableProcessor(data); processors.put(DataRef.class, v::dataRef); From 0ea0b653d1b496cfb78a8e6423de0f26a0a082c5 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 24 Jul 2026 18:53:55 +0100 Subject: [PATCH 114/260] Add length selector test --- .../parser/type/length_selector.expected.f90 | 18 + .../fortran/parser/type/length_selector.f90 | 18 + .../fortran/parser/type/length_selector.json | 1418 +++++++++++++++++ .../fortran/parser/FortranParserTest.java | 12 + 4 files changed, 1466 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/type/length_selector.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/type/length_selector.f90 create mode 100644 FortranParser/resources-test/fortran/parser/type/length_selector.json diff --git a/FortranParser/resources-test/fortran/parser/type/length_selector.expected.f90 b/FortranParser/resources-test/fortran/parser/type/length_selector.expected.f90 new file mode 100644 index 00000000..048c152b --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/type/length_selector.expected.f90 @@ -0,0 +1,18 @@ +PROGRAM LENGTH_SELECTOR + INTEGER, PARAMETER :: c_kind = selected_char_kind('DEFAULT') + + CHARACTER(LEN=10) :: c_len_keyword ! Explicit keyword + CHARACTER(LEN=10) :: c_len_positional ! Positional shorthand + CHARACTER*10 :: c_len_legacy ! Legacy asterisk notation + + CHARACTER(KIND=c_kind) :: c_kind_only + + CHARACTER(KIND=c_kind, LEN=20) :: c_both_keywords ! Standard keyword order + CHARACTER(KIND=c_kind, LEN=20) :: c_swapped_kw ! Reversed keyword order + CHARACTER(KIND=c_kind, LEN=20) :: c_both_positional ! Positional (len, kind) + CHARACTER(KIND=c_kind, LEN=20) :: c_mixed ! Positional len + keyword kind + + CHARACTER(LEN=:), ALLOCATABLE :: c_deferred ! Deferred length character + + CHARACTER(LEN=*), PARAMETER :: C_CONST = "Hello, Fortran!" ! Constant length character +END PROGRAM LENGTH_SELECTOR \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/type/length_selector.f90 b/FortranParser/resources-test/fortran/parser/type/length_selector.f90 new file mode 100644 index 00000000..65000bf4 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/type/length_selector.f90 @@ -0,0 +1,18 @@ +program length_selector + integer, parameter :: c_kind = selected_char_kind('DEFAULT') + + character(len=10) :: c_len_keyword ! Explicit keyword + character(10) :: c_len_positional ! Positional shorthand + character*10 :: c_len_legacy ! Legacy asterisk notation + + character(kind=c_kind) :: c_kind_only + + character(len=20, kind=c_kind) :: c_both_keywords ! Standard keyword order + character(kind=c_kind, len=20) :: c_swapped_kw ! Reversed keyword order + character(20, c_kind) :: c_both_positional ! Positional (len, kind) + character(20, kind=c_kind) :: c_mixed ! Positional len + keyword kind + + character(len=:), allocatable :: c_deferred ! Deferred length character + + character(len=*), parameter :: C_CONST = "Hello, Fortran!" ! Constant length character +end program length_selector \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/type/length_selector.json b/FortranParser/resources-test/fortran/parser/type/length_selector.json new file mode 100644 index 00000000..32d6c543 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/type/length_selector.json @@ -0,0 +1,1418 @@ +{ + "fileExtension": "f90", + "nodes": [ + { + "id": "0x55e3c58aff00-Program", + "ProgramUnit": [ + "0x55e3c58ec110-ProgramUnit" + ] + }, + { + "id": "0x55e3c58ec110-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x55e3c58ecfd0-MainProgram" + }, + { + "id": "0x55e3c58ecfd0-MainProgram", + "Statement": "0x55e3c58ed118-Statement", + "SpecificationPart": "0x55e3c58ed070-SpecificationPart", + "ExecutionPart": "0x55e3c58ed058-ExecutionPart", + "Statement": "0x55e3c58ecfd0-Statement" + }, + { + "id": "0x55e3c58ed118-Statement", + "statement": "0x55e3c58ed128-ProgramStmt", + "source": "program LENGTH_SELECTOR" + }, + { + "id": "0x55e3c58ed128-ProgramStmt", + "Name": "0x55e3c58ed128-Name" + }, + { + "id": "0x55e3c58ed128-Name", + "source": "LENGTH_SELECTOR" + }, + { + "id": "0x55e3c58ed070-SpecificationPart", + "ImplicitPart": "0x55e3c58ed088-ImplicitPart", + "DeclarationConstruct": [ + "0x55e3c58daf20-DeclarationConstruct", + "0x55e3c58bd110-DeclarationConstruct", + "0x55e3c58bcda0-DeclarationConstruct", + "0x55e3c58bd170-DeclarationConstruct", + "0x55e3c58dbcf0-DeclarationConstruct", + "0x55e3c58dc080-DeclarationConstruct", + "0x55e3c58dc6f0-DeclarationConstruct", + "0x55e3c58dc2a0-DeclarationConstruct", + "0x55e3c58dce10-DeclarationConstruct", + "0x55e3c58dc3e0-DeclarationConstruct", + "0x55e3c58dd1b0-DeclarationConstruct" + ] + }, + { + "id": "0x55e3c58ed088-ImplicitPart" + }, + { + "id": "0x55e3c58daf20-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55e3c58daf20-SpecificationConstruct" + }, + { + "id": "0x55e3c58daf20-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55e3c58daf20-Statement" + }, + { + "id": "0x55e3c58daf20-Statement", + "statement": "0x55e3c58ec9a0-TypeDeclarationStmt", + "source": "integer, parameter :: c_kind = selected_char_kind('DEFAULT')" + }, + { + "id": "0x55e3c58ec9a0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e3c58ec9d0-DeclarationTypeSpec", + "AttrSpec": [ + "0x55e3c58f3e30-AttrSpec" + ], + "EntityDecl": [ + "0x55e3c58dad50-EntityDecl" + ] + }, + { + "id": "0x55e3c58ec9d0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55e3c58ec9d0-IntrinsicTypeSpec" + }, + { + "id": "0x55e3c58ec9d0-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55e3c58ec9d0-IntegerTypeSpec" + }, + { + "id": "0x55e3c58ec9d0-IntegerTypeSpec" + }, + { + "id": "0x55e3c58f3e30-AttrSpec", + "variantKey": "Parameter", + "Parameter": "0x55e3c58f3e30-Parameter" + }, + { + "id": "0x55e3c58f3e30-Parameter", + "keyword": "Parameter" + }, + { + "id": "0x55e3c58dad50-EntityDecl", + "Name": "0x55e3c58dae08-Name", + "Initialization": "0x55e3c58dad50-Initialization" + }, + { + "id": "0x55e3c58dae08-Name", + "source": "c_kind" + }, + { + "id": "0x55e3c58dad50-Initialization", + "variantKey": "Expr", + "Expr": "0x55e3c58dac60-Expr" + }, + { + "id": "0x55e3c58dac60-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55e3c58dab80-FunctionReference" + }, + { + "id": "0x55e3c58dab80-FunctionReference", + "Call": "0x55e3c58dab80-Call" + }, + { + "id": "0x55e3c58dab80-Call", + "ProcedureDesignator": "0x55e3c58dab98-ProcedureDesignator", + "ActualArgSpec": [ + "0x55e3c58ed170-ActualArgSpec" + ] + }, + { + "id": "0x55e3c58dab98-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55e3c58dab98-Name" + }, + { + "id": "0x55e3c58dab98-Name", + "source": "selected_char_kind" + }, + { + "id": "0x55e3c58ed170-ActualArgSpec", + "ActualArg": "0x55e3c58ed170-ActualArg" + }, + { + "id": "0x55e3c58ed170-ActualArg", + "variantKey": "Expr", + "Expr": "0x55e3c584f790-Expr" + }, + { + "id": "0x55e3c584f790-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e3c584f7b0-LiteralConstant" + }, + { + "id": "0x55e3c584f7b0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55e3c584f7b0-CharLiteralConstant" + }, + { + "id": "0x55e3c584f7b0-CharLiteralConstant", + "string": "DEFAULT" + }, + { + "id": "0x55e3c58bd110-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55e3c58bd110-SpecificationConstruct" + }, + { + "id": "0x55e3c58bd110-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55e3c58bd110-Statement" + }, + { + "id": "0x55e3c58bd110-Statement", + "statement": "0x55e3c58eca20-TypeDeclarationStmt", + "source": "character(len=10) :: c_len_keyword" + }, + { + "id": "0x55e3c58eca20-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e3c58eca50-DeclarationTypeSpec", + "EntityDecl": [ + "0x55e3c58db0e0-EntityDecl" + ] + }, + { + "id": "0x55e3c58eca50-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55e3c58eca50-IntrinsicTypeSpec" + }, + { + "id": "0x55e3c58eca50-IntrinsicTypeSpec", + "variantKey": "Character", + "Character": "0x55e3c58eca50-Character" + }, + { + "id": "0x55e3c58eca50-Character", + "CharSelector": "0x55e3c58eca50-CharSelector" + }, + { + "id": "0x55e3c58eca50-CharSelector", + "variantKey": "LengthSelector", + "LengthSelector": "0x55e3c58eca50-LengthSelector" + }, + { + "id": "0x55e3c58eca50-LengthSelector", + "variantKey": "TypeParamValue", + "TypeParamValue": "0x55e3c58eca50-TypeParamValue" + }, + { + "id": "0x55e3c58eca50-TypeParamValue", + "variantKey": "Expr", + "Expr": "0x55e3c58daff0-Expr" + }, + { + "id": "0x55e3c58daff0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e3c58db010-LiteralConstant" + }, + { + "id": "0x55e3c58db010-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e3c58db010-IntLiteralConstant" + }, + { + "id": "0x55e3c58db010-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x55e3c58db0e0-EntityDecl", + "Name": "0x55e3c58db198-Name" + }, + { + "id": "0x55e3c58db198-Name", + "source": "c_len_keyword" + }, + { + "id": "0x55e3c58bcda0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55e3c58bcda0-SpecificationConstruct" + }, + { + "id": "0x55e3c58bcda0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55e3c58bcda0-Statement" + }, + { + "id": "0x55e3c58bcda0-Statement", + "statement": "0x55e3c58da780-TypeDeclarationStmt", + "source": "character(10) :: c_len_positional" + }, + { + "id": "0x55e3c58da780-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e3c58da7b0-DeclarationTypeSpec", + "EntityDecl": [ + "0x55e3c58db330-EntityDecl" + ] + }, + { + "id": "0x55e3c58da7b0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55e3c58da7b0-IntrinsicTypeSpec" + }, + { + "id": "0x55e3c58da7b0-IntrinsicTypeSpec", + "variantKey": "Character", + "Character": "0x55e3c58da7b0-Character" + }, + { + "id": "0x55e3c58da7b0-Character", + "CharSelector": "0x55e3c58da7b0-CharSelector" + }, + { + "id": "0x55e3c58da7b0-CharSelector", + "variantKey": "LengthSelector", + "LengthSelector": "0x55e3c58da7b0-LengthSelector" + }, + { + "id": "0x55e3c58da7b0-LengthSelector", + "variantKey": "TypeParamValue", + "TypeParamValue": "0x55e3c58da7b0-TypeParamValue" + }, + { + "id": "0x55e3c58da7b0-TypeParamValue", + "variantKey": "Expr", + "Expr": "0x55e3c58db240-Expr" + }, + { + "id": "0x55e3c58db240-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e3c58db260-LiteralConstant" + }, + { + "id": "0x55e3c58db260-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e3c58db260-IntLiteralConstant" + }, + { + "id": "0x55e3c58db260-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x55e3c58db330-EntityDecl", + "Name": "0x55e3c58db3e8-Name" + }, + { + "id": "0x55e3c58db3e8-Name", + "source": "c_len_positional" + }, + { + "id": "0x55e3c58bd170-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55e3c58bd170-SpecificationConstruct" + }, + { + "id": "0x55e3c58bd170-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55e3c58bd170-Statement" + }, + { + "id": "0x55e3c58bd170-Statement", + "statement": "0x55e3c58daf70-TypeDeclarationStmt", + "source": "character*10 :: c_len_legacy" + }, + { + "id": "0x55e3c58daf70-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e3c58dafa0-DeclarationTypeSpec", + "EntityDecl": [ + "0x55e3c58db420-EntityDecl" + ] + }, + { + "id": "0x55e3c58dafa0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55e3c58dafa0-IntrinsicTypeSpec" + }, + { + "id": "0x55e3c58dafa0-IntrinsicTypeSpec", + "variantKey": "Character", + "Character": "0x55e3c58dafa0-Character" + }, + { + "id": "0x55e3c58dafa0-Character", + "CharSelector": "0x55e3c58dafa0-CharSelector" + }, + { + "id": "0x55e3c58dafa0-CharSelector", + "variantKey": "LengthSelector", + "LengthSelector": "0x55e3c58dafa0-LengthSelector" + }, + { + "id": "0x55e3c58dafa0-LengthSelector", + "variantKey": "CharLength", + "CharLength": "0x55e3c58dafa0-CharLength" + }, + { + "id": "0x55e3c58dafa0-CharLength", + "variantKey": "uint64_t", + "uint64_t": "10" + }, + { + "id": "0x55e3c58db420-EntityDecl", + "Name": "0x55e3c58db4d8-Name" + }, + { + "id": "0x55e3c58db4d8-Name", + "source": "c_len_legacy" + }, + { + "id": "0x55e3c58dbcf0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55e3c58dbcf0-SpecificationConstruct" + }, + { + "id": "0x55e3c58dbcf0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55e3c58dbcf0-Statement" + }, + { + "id": "0x55e3c58dbcf0-Statement", + "statement": "0x55e3c58db1c0-TypeDeclarationStmt", + "source": "character(kind=c_kind) :: c_kind_only" + }, + { + "id": "0x55e3c58db1c0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e3c58db1f0-DeclarationTypeSpec", + "EntityDecl": [ + "0x55e3c58dbb20-EntityDecl" + ] + }, + { + "id": "0x55e3c58db1f0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55e3c58db1f0-IntrinsicTypeSpec" + }, + { + "id": "0x55e3c58db1f0-IntrinsicTypeSpec", + "variantKey": "Character", + "Character": "0x55e3c58db1f0-Character" + }, + { + "id": "0x55e3c58db1f0-Character", + "CharSelector": "0x55e3c58db1f0-CharSelector" + }, + { + "id": "0x55e3c58db1f0-CharSelector", + "variantKey": "LengthAndKind", + "LengthAndKind": "0x55e3c58db1f0-LengthAndKind" + }, + { + "id": "0x55e3c58db1f0-LengthAndKind", + "Expr": "0x55e3c58db7c0-Expr" + }, + { + "id": "0x55e3c58db7c0-Expr", + "variantKey": "Designator", + "Designator": "0x55e3c58db900-Designator" + }, + { + "id": "0x55e3c58db900-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e3c58db910-DataRef" + }, + { + "id": "0x55e3c58db910-DataRef", + "variantKey": "Name", + "Name": "0x55e3c58db910-Name" + }, + { + "id": "0x55e3c58db910-Name", + "source": "c_kind" + }, + { + "id": "0x55e3c58dbb20-EntityDecl", + "Name": "0x55e3c58dbbd8-Name" + }, + { + "id": "0x55e3c58dbbd8-Name", + "source": "c_kind_only" + }, + { + "id": "0x55e3c58dc080-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55e3c58dc080-SpecificationConstruct" + }, + { + "id": "0x55e3c58dc080-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55e3c58dc080-Statement" + }, + { + "id": "0x55e3c58dc080-Statement", + "statement": "0x55e3c58db500-TypeDeclarationStmt", + "source": "character(len=20, kind=c_kind) :: c_both_keywords" + }, + { + "id": "0x55e3c58db500-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e3c58db530-DeclarationTypeSpec", + "EntityDecl": [ + "0x55e3c58dbf90-EntityDecl" + ] + }, + { + "id": "0x55e3c58db530-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55e3c58db530-IntrinsicTypeSpec" + }, + { + "id": "0x55e3c58db530-IntrinsicTypeSpec", + "variantKey": "Character", + "Character": "0x55e3c58db530-Character" + }, + { + "id": "0x55e3c58db530-Character", + "CharSelector": "0x55e3c58db530-CharSelector" + }, + { + "id": "0x55e3c58db530-CharSelector", + "variantKey": "LengthAndKind", + "LengthAndKind": "0x55e3c58db530-LengthAndKind" + }, + { + "id": "0x55e3c58db530-LengthAndKind", + "TypeParamValue": "0x55e3c58db538-TypeParamValue", + "Expr": "0x55e3c58dbea0-Expr" + }, + { + "id": "0x55e3c58db538-TypeParamValue", + "variantKey": "Expr", + "Expr": "0x55e3c58dbd40-Expr" + }, + { + "id": "0x55e3c58dbd40-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e3c58dbd60-LiteralConstant" + }, + { + "id": "0x55e3c58dbd60-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e3c58dbd60-IntLiteralConstant" + }, + { + "id": "0x55e3c58dbd60-IntLiteralConstant", + "CharBlock": "20" + }, + { + "id": "0x55e3c58dbea0-Expr", + "variantKey": "Designator", + "Designator": "0x55e3c58db760-Designator" + }, + { + "id": "0x55e3c58db760-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e3c58db770-DataRef" + }, + { + "id": "0x55e3c58db770-DataRef", + "variantKey": "Name", + "Name": "0x55e3c58db770-Name" + }, + { + "id": "0x55e3c58db770-Name", + "source": "c_kind" + }, + { + "id": "0x55e3c58dbf90-EntityDecl", + "Name": "0x55e3c58dc048-Name" + }, + { + "id": "0x55e3c58dc048-Name", + "source": "c_both_keywords" + }, + { + "id": "0x55e3c58dc6f0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55e3c58dc6f0-SpecificationConstruct" + }, + { + "id": "0x55e3c58dc6f0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55e3c58dc6f0-Statement" + }, + { + "id": "0x55e3c58dc6f0-Statement", + "statement": "0x55e3c58db580-TypeDeclarationStmt", + "source": "character(kind=c_kind, len=20) :: c_swapped_kw" + }, + { + "id": "0x55e3c58db580-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e3c58db5b0-DeclarationTypeSpec", + "EntityDecl": [ + "0x55e3c58dc520-EntityDecl" + ] + }, + { + "id": "0x55e3c58db5b0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55e3c58db5b0-IntrinsicTypeSpec" + }, + { + "id": "0x55e3c58db5b0-IntrinsicTypeSpec", + "variantKey": "Character", + "Character": "0x55e3c58db5b0-Character" + }, + { + "id": "0x55e3c58db5b0-Character", + "CharSelector": "0x55e3c58db5b0-CharSelector" + }, + { + "id": "0x55e3c58db5b0-CharSelector", + "variantKey": "LengthAndKind", + "LengthAndKind": "0x55e3c58db5b0-LengthAndKind" + }, + { + "id": "0x55e3c58db5b0-LengthAndKind", + "TypeParamValue": "0x55e3c58db5b8-TypeParamValue", + "Expr": "0x55e3c58dc150-Expr" + }, + { + "id": "0x55e3c58db5b8-TypeParamValue", + "variantKey": "Expr", + "Expr": "0x55e3c58dc2f0-Expr" + }, + { + "id": "0x55e3c58dc2f0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e3c58dc310-LiteralConstant" + }, + { + "id": "0x55e3c58dc310-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e3c58dc310-IntLiteralConstant" + }, + { + "id": "0x55e3c58dc310-IntLiteralConstant", + "CharBlock": "20" + }, + { + "id": "0x55e3c58dc150-Expr", + "variantKey": "Designator", + "Designator": "0x55e3c58dc230-Designator" + }, + { + "id": "0x55e3c58dc230-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e3c58dc240-DataRef" + }, + { + "id": "0x55e3c58dc240-DataRef", + "variantKey": "Name", + "Name": "0x55e3c58dc240-Name" + }, + { + "id": "0x55e3c58dc240-Name", + "source": "c_kind" + }, + { + "id": "0x55e3c58dc520-EntityDecl", + "Name": "0x55e3c58dc5d8-Name" + }, + { + "id": "0x55e3c58dc5d8-Name", + "source": "c_swapped_kw" + }, + { + "id": "0x55e3c58dc2a0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55e3c58dc2a0-SpecificationConstruct" + }, + { + "id": "0x55e3c58dc2a0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55e3c58dc2a0-Statement" + }, + { + "id": "0x55e3c58dc2a0-Statement", + "statement": "0x55e3c58db600-TypeDeclarationStmt", + "source": "character(20, c_kind) :: c_both_positional" + }, + { + "id": "0x55e3c58db600-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e3c58db630-DeclarationTypeSpec", + "EntityDecl": [ + "0x55e3c58dc990-EntityDecl" + ] + }, + { + "id": "0x55e3c58db630-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55e3c58db630-IntrinsicTypeSpec" + }, + { + "id": "0x55e3c58db630-IntrinsicTypeSpec", + "variantKey": "Character", + "Character": "0x55e3c58db630-Character" + }, + { + "id": "0x55e3c58db630-Character", + "CharSelector": "0x55e3c58db630-CharSelector" + }, + { + "id": "0x55e3c58db630-CharSelector", + "variantKey": "LengthAndKind", + "LengthAndKind": "0x55e3c58db630-LengthAndKind" + }, + { + "id": "0x55e3c58db630-LengthAndKind", + "TypeParamValue": "0x55e3c58db638-TypeParamValue", + "Expr": "0x55e3c58dc8a0-Expr" + }, + { + "id": "0x55e3c58db638-TypeParamValue", + "variantKey": "Expr", + "Expr": "0x55e3c58dc740-Expr" + }, + { + "id": "0x55e3c58dc740-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e3c58dc760-LiteralConstant" + }, + { + "id": "0x55e3c58dc760-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e3c58dc760-IntLiteralConstant" + }, + { + "id": "0x55e3c58dc760-IntLiteralConstant", + "CharBlock": "20" + }, + { + "id": "0x55e3c58dc8a0-Expr", + "variantKey": "Designator", + "Designator": "0x55e3c58ae4d0-Designator" + }, + { + "id": "0x55e3c58ae4d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e3c58ae4e0-DataRef" + }, + { + "id": "0x55e3c58ae4e0-DataRef", + "variantKey": "Name", + "Name": "0x55e3c58ae4e0-Name" + }, + { + "id": "0x55e3c58ae4e0-Name", + "source": "c_kind" + }, + { + "id": "0x55e3c58dc990-EntityDecl", + "Name": "0x55e3c58dca48-Name" + }, + { + "id": "0x55e3c58dca48-Name", + "source": "c_both_positional" + }, + { + "id": "0x55e3c58dce10-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55e3c58dce10-SpecificationConstruct" + }, + { + "id": "0x55e3c58dce10-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55e3c58dce10-Statement" + }, + { + "id": "0x55e3c58dce10-Statement", + "statement": "0x55e3c58db680-TypeDeclarationStmt", + "source": "character(20, kind=c_kind) :: c_mixed" + }, + { + "id": "0x55e3c58db680-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e3c58db6b0-DeclarationTypeSpec", + "EntityDecl": [ + "0x55e3c58dcd20-EntityDecl" + ] + }, + { + "id": "0x55e3c58db6b0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55e3c58db6b0-IntrinsicTypeSpec" + }, + { + "id": "0x55e3c58db6b0-IntrinsicTypeSpec", + "variantKey": "Character", + "Character": "0x55e3c58db6b0-Character" + }, + { + "id": "0x55e3c58db6b0-Character", + "CharSelector": "0x55e3c58db6b0-CharSelector" + }, + { + "id": "0x55e3c58db6b0-CharSelector", + "variantKey": "LengthAndKind", + "LengthAndKind": "0x55e3c58db6b0-LengthAndKind" + }, + { + "id": "0x55e3c58db6b0-LengthAndKind", + "TypeParamValue": "0x55e3c58db6b8-TypeParamValue", + "Expr": "0x55e3c58dcbd0-Expr" + }, + { + "id": "0x55e3c58db6b8-TypeParamValue", + "variantKey": "Expr", + "Expr": "0x55e3c58dca70-Expr" + }, + { + "id": "0x55e3c58dca70-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e3c58dca90-LiteralConstant" + }, + { + "id": "0x55e3c58dca90-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e3c58dca90-IntLiteralConstant" + }, + { + "id": "0x55e3c58dca90-IntLiteralConstant", + "CharBlock": "20" + }, + { + "id": "0x55e3c58dcbd0-Expr", + "variantKey": "Designator", + "Designator": "0x55e3c58db9d0-Designator" + }, + { + "id": "0x55e3c58db9d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e3c58db9e0-DataRef" + }, + { + "id": "0x55e3c58db9e0-DataRef", + "variantKey": "Name", + "Name": "0x55e3c58db9e0-Name" + }, + { + "id": "0x55e3c58db9e0-Name", + "source": "c_kind" + }, + { + "id": "0x55e3c58dcd20-EntityDecl", + "Name": "0x55e3c58dcdd8-Name" + }, + { + "id": "0x55e3c58dcdd8-Name", + "source": "c_mixed" + }, + { + "id": "0x55e3c58dc3e0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55e3c58dc3e0-SpecificationConstruct" + }, + { + "id": "0x55e3c58dc3e0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55e3c58dc3e0-Statement" + }, + { + "id": "0x55e3c58dc3e0-Statement", + "statement": "0x55e3c58dbe20-TypeDeclarationStmt", + "source": "character(len=:), allocatable :: c_deferred" + }, + { + "id": "0x55e3c58dbe20-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e3c58dbe50-DeclarationTypeSpec", + "AttrSpec": [ + "0x55e3c58ecdc0-AttrSpec" + ], + "EntityDecl": [ + "0x55e3c58dce70-EntityDecl" + ] + }, + { + "id": "0x55e3c58dbe50-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55e3c58dbe50-IntrinsicTypeSpec" + }, + { + "id": "0x55e3c58dbe50-IntrinsicTypeSpec", + "variantKey": "Character", + "Character": "0x55e3c58dbe50-Character" + }, + { + "id": "0x55e3c58dbe50-Character", + "CharSelector": "0x55e3c58dbe50-CharSelector" + }, + { + "id": "0x55e3c58dbe50-CharSelector", + "variantKey": "LengthSelector", + "LengthSelector": "0x55e3c58dbe50-LengthSelector" + }, + { + "id": "0x55e3c58dbe50-LengthSelector", + "variantKey": "TypeParamValue", + "TypeParamValue": "0x55e3c58dbe50-TypeParamValue" + }, + { + "id": "0x55e3c58dbe50-TypeParamValue", + "variantKey": "Deferred", + "Deferred": "0x55e3c58dbe50-Deferred" + }, + { + "id": "0x55e3c58dbe50-Deferred" + }, + { + "id": "0x55e3c58ecdc0-AttrSpec", + "variantKey": "Allocatable", + "Allocatable": "0x55e3c58ecdc0-Allocatable" + }, + { + "id": "0x55e3c58ecdc0-Allocatable", + "keyword": "Allocatable" + }, + { + "id": "0x55e3c58dce70-EntityDecl", + "Name": "0x55e3c58dcf28-Name" + }, + { + "id": "0x55e3c58dcf28-Name", + "source": "c_deferred" + }, + { + "id": "0x55e3c58dd1b0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55e3c58dd1b0-SpecificationConstruct" + }, + { + "id": "0x55e3c58dd1b0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55e3c58dd1b0-Statement" + }, + { + "id": "0x55e3c58dd1b0-Statement", + "statement": "0x55e3c58dc0d0-TypeDeclarationStmt", + "source": "character(len=*), parameter :: c_const = \"Hello, Fortran!\"" + }, + { + "id": "0x55e3c58dc0d0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e3c58dc100-DeclarationTypeSpec", + "AttrSpec": [ + "0x55e3c58ed280-AttrSpec" + ], + "EntityDecl": [ + "0x55e3c58dd0c0-EntityDecl" + ] + }, + { + "id": "0x55e3c58dc100-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55e3c58dc100-IntrinsicTypeSpec" + }, + { + "id": "0x55e3c58dc100-IntrinsicTypeSpec", + "variantKey": "Character", + "Character": "0x55e3c58dc100-Character" + }, + { + "id": "0x55e3c58dc100-Character", + "CharSelector": "0x55e3c58dc100-CharSelector" + }, + { + "id": "0x55e3c58dc100-CharSelector", + "variantKey": "LengthSelector", + "LengthSelector": "0x55e3c58dc100-LengthSelector" + }, + { + "id": "0x55e3c58dc100-LengthSelector", + "variantKey": "TypeParamValue", + "TypeParamValue": "0x55e3c58dc100-TypeParamValue" + }, + { + "id": "0x55e3c58dc100-TypeParamValue", + "variantKey": "Star", + "Star": "0x55e3c58dc100-Star" + }, + { + "id": "0x55e3c58dc100-Star" + }, + { + "id": "0x55e3c58ed280-AttrSpec", + "variantKey": "Parameter", + "Parameter": "0x55e3c58ed280-Parameter" + }, + { + "id": "0x55e3c58ed280-Parameter", + "keyword": "Parameter" + }, + { + "id": "0x55e3c58dd0c0-EntityDecl", + "Name": "0x55e3c58dd178-Name", + "Initialization": "0x55e3c58dd0c0-Initialization" + }, + { + "id": "0x55e3c58dd178-Name", + "source": "c_const" + }, + { + "id": "0x55e3c58dd0c0-Initialization", + "variantKey": "Expr", + "Expr": "0x55e3c58dcfd0-Expr" + }, + { + "id": "0x55e3c58dcfd0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e3c58dcff0-LiteralConstant" + }, + { + "id": "0x55e3c58dcff0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55e3c58dcff0-CharLiteralConstant" + }, + { + "id": "0x55e3c58dcff0-CharLiteralConstant", + "string": "Hello, Fortran!" + }, + { + "id": "0x55e3c58ed058-ExecutionPart" + }, + { + "id": "0x55e3c58ed058-list" + }, + { + "id": "0x55e3c58ecfd0-Statement", + "statement": "0x55e3c58ecfe0-EndProgramStmt", + "source": "end program LENGTH_SELECTOR" + }, + { + "id": "0x55e3c58ecfe0-EndProgramStmt", + "Name": "0x55e3c58ecfe0-Name" + }, + { + "id": "0x55e3c58ecfe0-Name", + "source": "LENGTH_SELECTOR" + } + ], + "comments": [ + { + "text": " Explicit keyword", + "stmtId": "0x55e3c58bd110-Statement", + "trailing": true + }, + { + "text": " Positional shorthand", + "stmtId": "0x55e3c58bcda0-Statement", + "trailing": true + }, + { + "text": " Legacy asterisk notation", + "stmtId": "0x55e3c58bd170-Statement", + "trailing": true + }, + { + "text": " Standard keyword order", + "stmtId": "0x55e3c58dc080-Statement", + "trailing": true + }, + { + "text": " Reversed keyword order", + "stmtId": "0x55e3c58dc6f0-Statement", + "trailing": true + }, + { + "text": " Positional (len, kind)", + "stmtId": "0x55e3c58dc2a0-Statement", + "trailing": true + }, + { + "text": " Positional len + keyword kind", + "stmtId": "0x55e3c58dce10-Statement", + "trailing": true + }, + { + "text": " Deferred length character", + "stmtId": "0x55e3c58dc3e0-Statement", + "trailing": true + }, + { + "text": " Constant length character", + "stmtId": "0x55e3c58dd1b0-Statement", + "trailing": true + } + ], + "enums": { + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "Fortran::common::ImportKind": [ + "Default", + "Only", + "None", + "All" + ], + "Fortran::common::OmpDependenceKind": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::common::OmpMemoryOrderType": [ + "Acq_Rel", + "Acquire", + "Relaxed", + "Release", + "Seq_Cst" + ], + "Fortran::common::OpenACCDeviceType": [ + "Star", + "Default", + "Nvidia", + "Radeon", + "Host", + "Multicore", + "None" + ], + "Fortran::parser::AccDataModifier::Modifier": [ + "ReadOnly", + "Zero" + ], + "Fortran::parser::AccessSpec::Kind": [ + "Public", + "Private" + ], + "Fortran::parser::BindEntity::Kind": [ + "Object", + "Common" + ], + "Fortran::parser::CompilerDirective::VectorLength::Kind": [ + "Auto", + "Fixed", + "Scalable" + ], + "Fortran::parser::ConnectSpec::CharExpr::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Encoding", + "Form", + "Pad", + "Position", + "Round", + "Sign", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::DefinedOperator::IntrinsicOperator": [ + "Power", + "Multiply", + "Divide", + "Add", + "Subtract", + "Concat", + "LT", + "LE", + "EQ", + "NE", + "GE", + "GT", + "NOT", + "AND", + "OR", + "EQV", + "NEQV" + ], + "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec": [ + "External", + "Type" + ], + "Fortran::parser::InquireSpec::CharVar::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Direct", + "Encoding", + "Form", + "Formatted", + "Iomsg", + "Name", + "Pad", + "Position", + "Read", + "Readwrite", + "Round", + "Sequential", + "Sign", + "Stream", + "Status", + "Unformatted", + "Write", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::InquireSpec::IntVar::Kind": [ + "Iostat", + "Nextrec", + "Number", + "Pos", + "Recl", + "Size" + ], + "Fortran::parser::InquireSpec::LogVar::Kind": [ + "Exist", + "Named", + "Opened", + "Pending" + ], + "Fortran::parser::IntentSpec::Intent": [ + "In", + "Out", + "InOut" + ], + "Fortran::parser::IoControlSpec::CharExpr::Kind": [ + "Advance", + "Blank", + "Decimal", + "Delim", + "Pad", + "Round", + "Sign" + ], + "Fortran::parser::ReductionOperator::Operator": [ + "Plus", + "Multiply", + "Max", + "Min", + "Iand", + "Ior", + "Ieor", + "And", + "Or", + "Eqv", + "Neqv" + ], + "Fortran::parser::OmpAccessGroup::Value": [ + "Cgroup" + ], + "Fortran::parser::OmpAdjustArgsClause::OmpAdjustOp::Value": [ + "Nothing", + "Need_Device_Ptr" + ], + "Fortran::parser::OmpAlwaysModifier::Value": [ + "Always" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpAttachModifier::Value": [ + "Always", + "Never", + "Auto" + ], + "Fortran::parser::OmpAutomapModifier::Value": [ + "Automap" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpCloseModifier::Value": [ + "Close" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default", + "Present" + ], + "Fortran::parser::OmpDeleteModifier::Value": [ + "Delete" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpDirectiveSpecification::Flag": [ + "DeprecatedSyntax", + "CrossesLabelDo" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpInteropType::Value": [ + "Target", + "Targetsync" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "Storage", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpObject::Invalid::Kind": [ + "BlankCommonBlock" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpPresentModifier::Value": [ + "Present" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpRefModifier::Value": [ + "Ref_Ptee", + "Ref_Ptr", + "Ref_Ptr_Ptee" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpSelfModifier::Value": [ + "Self" + ], + "Fortran::parser::OmpSeverityClause::SevLevel": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpThreadsetClause::ThreadsetPolicy": [ + "Omp_Pool", + "Omp_Team" + ], + "Fortran::parser::OmpTraitSelectorName::Value": [ + "Arch", + "Atomic_Default_Mem_Order", + "Condition", + "Device_Num", + "Extension", + "Isa", + "Kind", + "Requires", + "Simd", + "Uid", + "Vendor" + ], + "Fortran::parser::OmpTraitSetSelectorName::Value": [ + "Construct", + "Device", + "Implementation", + "Target_Device", + "User" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpxHoldModifier::Value": [ + "Ompx_Hold" + ], + "Fortran::parser::ProcedureStmt::Kind": [ + "ModuleProcedure", + "Procedure" + ], + "Fortran::parser::SavedEntity::Kind": [ + "Entity", + "Common" + ], + "Fortran::parser::StopStmt::Kind": [ + "Stop", + "ErrorStop" + ], + "Fortran::parser::UseStmt::ModuleNature": [ + "Intrinsic", + "Non_Intrinsic" + ] + } +} diff --git a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java index 71c4dd2e..48c1aa24 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -596,6 +596,18 @@ void testContinuationLineNative() { } } + @Test + void testLengthSelector() { + testJson("type/length_selector.json"); + } + + @Test + void testLengthSelectorNative() { + if (SpecsPlatforms.isLinux()) { + testNative("type/length_selector.f90"); + } + } + @Test void testFujitsu0000_0000() { testJson("fujitsu/0000/0000_0000.json"); From ff6ef9d527d9072bb70d6bfc8913efc808b14b58 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 24 Jul 2026 19:22:46 +0100 Subject: [PATCH 115/260] Add processors for new length selectors --- .../lenselector/KindParamLenSelector.java | 10 ++++---- .../type/lenselector/ParamLenSelector.java | 2 +- .../parser/expr/substring.expected.f90 | 2 +- .../parser/type/length_selector.expected.f90 | 4 ++-- .../specs/fortran/parser/CaseClassMapper.java | 14 ++++++++--- .../fe/specs/fortran/parser/FlangToClass.java | 7 +++--- .../fortran/parser/processors/Nodes.java | 6 ++++- .../parser/processors/TypeProcessors.java | 24 ++++++++++++++++--- 8 files changed, 50 insertions(+), 19 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/KindParamLenSelector.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/KindParamLenSelector.java index 26590ac5..2b1825e0 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/KindParamLenSelector.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/KindParamLenSelector.java @@ -4,7 +4,7 @@ import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.TypeParamValue; -import pt.up.fe.specs.fortran.ast.nodes.expr.IntLiteral; +import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; import java.util.Collection; import java.util.Optional; @@ -14,8 +14,8 @@ public KindParamLenSelector(DataStore data, Collection ch super(data, children); } - public IntLiteral getKind() { - return getChild(IntLiteral.class, 0); + public Expr getKind() { + return getChild(Expr.class, 0); } public Optional getLength() { @@ -24,9 +24,9 @@ public Optional getLength() { @Override public String getCode() { - var kindCode = keyword(FortranKeyword.KIND) + " = " + getKind().getCode(); + var kindCode = keyword(FortranKeyword.KIND) + "=" + getKind().getCode(); var lenCode = getLength() - .map(len -> ", LEN = " + len.getCode()) + .map(len -> ", LEN=" + len.getCode()) .orElseGet(() -> ""); return "(" + kindCode + lenCode + ")"; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/ParamLenSelector.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/ParamLenSelector.java index 8a1f6516..b13af4ae 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/ParamLenSelector.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/ParamLenSelector.java @@ -18,7 +18,7 @@ public TypeParamValue getLength() { @Override public String getCode() { - var lenCode = keyword(FortranKeyword.LEN) + " = " + getLength().getCode(); + var lenCode = keyword(FortranKeyword.LEN) + "=" + getLength().getCode(); return "(" + lenCode + ")"; } diff --git a/FortranParser/resources-test/fortran/parser/expr/substring.expected.f90 b/FortranParser/resources-test/fortran/parser/expr/substring.expected.f90 index 449a6a00..7812ac0c 100644 --- a/FortranParser/resources-test/fortran/parser/expr/substring.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/expr/substring.expected.f90 @@ -1,5 +1,5 @@ PROGRAM SUBSTRING - CHARACTER(LEN = 8) :: s_cha, s_chb, v_cha, v_chb + CHARACTER(LEN=8) :: s_cha, s_chb, v_cha, v_chb DIMENSION :: s_cha(10), s_chb(10), v_cha(10), v_chb(10) v_cha(1:10)(1:8) = v_cha(1:10)(1:4) // v_chb(1:10)(5:8) diff --git a/FortranParser/resources-test/fortran/parser/type/length_selector.expected.f90 b/FortranParser/resources-test/fortran/parser/type/length_selector.expected.f90 index 048c152b..159a339d 100644 --- a/FortranParser/resources-test/fortran/parser/type/length_selector.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/type/length_selector.expected.f90 @@ -1,5 +1,5 @@ PROGRAM LENGTH_SELECTOR - INTEGER, PARAMETER :: c_kind = selected_char_kind('DEFAULT') + INTEGER, PARAMETER :: c_kind = selected_char_kind("DEFAULT") CHARACTER(LEN=10) :: c_len_keyword ! Explicit keyword CHARACTER(LEN=10) :: c_len_positional ! Positional shorthand @@ -14,5 +14,5 @@ PROGRAM LENGTH_SELECTOR CHARACTER(LEN=:), ALLOCATABLE :: c_deferred ! Deferred length character - CHARACTER(LEN=*), PARAMETER :: C_CONST = "Hello, Fortran!" ! Constant length character + CHARACTER(LEN=*), PARAMETER :: c_const = "Hello, Fortran!" ! Constant length character END PROGRAM LENGTH_SELECTOR \ No newline at end of file diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/CaseClassMapper.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/CaseClassMapper.java index b829bdaf..8638d76f 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/CaseClassMapper.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/CaseClassMapper.java @@ -18,14 +18,22 @@ public CaseClassMapper() { this.caseMap = new HashMap<>(); } + public CaseClassMapper map(String variantKey, Class clazz) { + caseMap.put(variantKey, Optional.of(clazz)); + return this; + } + public CaseClassMapper map(FlangName variantKey, Class clazz) { - caseMap.put(variantKey.getString(), Optional.of(clazz)); + return map(variantKey.getString(), clazz); + } + + public CaseClassMapper ignore(String variantKey) { + caseMap.put(variantKey, Optional.empty()); return this; } public CaseClassMapper ignore(FlangName variantKey) { - caseMap.put(variantKey.getString(), Optional.empty()); - return this; + return ignore(variantKey.getString()); } @Override diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index f71742ef..0bc35fd3 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -52,7 +52,6 @@ import java.util.Optional; public class FlangToClass { - private static final Map> NAME_TO_MAPPER = new HashMap<>(); static { @@ -188,10 +187,12 @@ public class FlangToClass { NAME_TO_MAPPER.put(FlangName.CHARACTER, ClassMapper.always(CharacterType.class)); NAME_TO_MAPPER.put(FlangName.REAL, ClassMapper.always(RealType.class)); NAME_TO_MAPPER.put(FlangName.COMPLEX, ClassMapper.always(ComplexType.class)); - NAME_TO_MAPPER.put(FlangName.CHAR_LENGTH, ClassMapper.always(ConstLenSelector.class)); + NAME_TO_MAPPER.put(FlangName.CHAR_LENGTH, ClassMapper.caseFor(LenSelector.class) + .map(FlangName.TYPE_PARAM_VALUE, ParamLenSelector.class) + .map("uint64_t", ConstLenSelector.class)); NAME_TO_MAPPER.put(FlangName.LENGTH_SELECTOR, ClassMapper.caseFor(LenSelector.class) .map(FlangName.TYPE_PARAM_VALUE, ParamLenSelector.class) - .map(FlangName.CHAR_LENGTH, ConstLenSelector.class)); + .ignore(FlangName.CHAR_LENGTH)); NAME_TO_MAPPER.put(FlangName.LENGTH_AND_KIND, ClassMapper.always(KindParamLenSelector.class)); /// LOOP diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index d1e94d3b..2e76ea3d 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -36,6 +36,8 @@ import pt.up.fe.specs.fortran.ast.nodes.type.*; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.IntentSpec; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.KeywordAttributeSpecifier; +import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ConstLenSelector; +import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.KindParamLenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ParamLenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.shapes.AllocateShapeSpecification; import pt.up.fe.specs.fortran.ast.nodes.type.shapes.DeferredShapeSpecList; @@ -162,8 +164,10 @@ public Nodes(FortranJsonResult data) { processors.put(LogicalType.class, t::logicalType); processors.put(DoublePrecisionType.class, t::doublePrecisionType); processors.put(CharacterType.class, t::characterType); + processors.put(ConstLenSelector.class, t::constLenSelector); + processors.put(ParamLenSelector.class, t::paramLenSelector); + processors.put(KindParamLenSelector.class, t::kindParamLenSelector); processors.put(RealType.class, t::realType); - processors.put(ParamLenSelector.class, t::lengthSelector); processors.put(ComplexType.class, t::complexType); var a = new AttributesProcessor(data); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java index 7311a56e..db835c1f 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java @@ -2,6 +2,8 @@ import pt.up.fe.specs.fortran.ast.nodes.decl.KindSelector; import pt.up.fe.specs.fortran.ast.nodes.type.*; +import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ConstLenSelector; +import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.KindParamLenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ParamLenSelector; import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; @@ -66,9 +68,25 @@ public void realType(RealType realType) { } } - public void lengthSelector(ParamLenSelector lengthSelector) { - var childId = attributes(lengthSelector).getVariantString(); - lengthSelector.addChild(getChild(attributes().get(childId).getVariantString())); + public void constLenSelector(ConstLenSelector selector) { + System.out.println(attributes(selector)); + var length = attributes().getString(selector, "uint64_t"); + selector.set(ConstLenSelector.LENGTH, Long.parseLong(length)); + } + + public void paramLenSelector(ParamLenSelector selector) { + var param = getChild(selector, FlangName.TYPE_PARAM_VALUE); + selector.addChild(param); + } + + public void kindParamLenSelector(KindParamLenSelector selector) { + var kind = getChild(selector, FlangName.EXPR); + selector.addChild(kind); + + if (attributes(selector).has(FlangName.TYPE_PARAM_VALUE)) { + var param = getChild(selector, FlangName.TYPE_PARAM_VALUE); + selector.addChild(param); + } } public void complexType(ComplexType complexType) { From f4025f0dfe35e640f6a92cd629c85cfc73c363f8 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 24 Jul 2026 19:33:01 +0100 Subject: [PATCH 116/260] Extend binary operator test --- .../parser/binary_operator.expected.f90 | 6 +- .../fortran/parser/binary_operator.f90 | 8 +- .../fortran/parser/binary_operator.json | 1468 +++++++++++------ 3 files changed, 960 insertions(+), 522 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/binary_operator.expected.f90 b/FortranParser/resources-test/fortran/parser/binary_operator.expected.f90 index 900293fa..8f5d3aa3 100644 --- a/FortranParser/resources-test/fortran/parser/binary_operator.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/binary_operator.expected.f90 @@ -1,5 +1,5 @@ PROGRAM TEST_EXPRS - LOGICAL :: l + LOGICAL :: l, l1 = .TRUE., l2 = .FALSE. INTEGER :: i, a = 1, b = 1 l = 0 < a l = 2 <= 3 @@ -15,4 +15,8 @@ PROGRAM TEST_EXPRS i = 0 + 1 - b * 5 / a + 7 + l = l1 .AND. l2 + l = l1 .OR. l2 + l = l1 .EQV. l2 + l = l1 .NEQV. l2 END PROGRAM TEST_EXPRS \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/binary_operator.f90 b/FortranParser/resources-test/fortran/parser/binary_operator.f90 index 6b96bc70..de887b32 100644 --- a/FortranParser/resources-test/fortran/parser/binary_operator.f90 +++ b/FortranParser/resources-test/fortran/parser/binary_operator.f90 @@ -1,5 +1,5 @@ program test_exprs - logical :: l + logical :: l, l1 = .true., l2 = .false. integer :: i, a = 1, b = 1 l = 0 < a l = 2 <= 3 @@ -8,11 +8,15 @@ program test_exprs l = a == b l = 0 /= 1 + l = l1 .and. l2 + l = l1 .or. l2 + l = l1 .eqv. l2 + l = l1 .neqv. l2 + i = a + 1 i = a - b i = 4 * 5 i = 6 / b i = 0 + 1 - b * 5 / a + 7 - end program test_exprs \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/binary_operator.json b/FortranParser/resources-test/fortran/parser/binary_operator.json index e8f00fcb..2db36b6a 100644 --- a/FortranParser/resources-test/fortran/parser/binary_operator.json +++ b/FortranParser/resources-test/fortran/parser/binary_operator.json @@ -1,1287 +1,1717 @@ { + "fileExtension": "f90", "nodes": [ { - "id": "0x55876aff3f00-Program", + "id": "0x55d5e7533f00-Program", "ProgramUnit": [ - "0x55876b031820-ProgramUnit" + "0x55d5e7571810-ProgramUnit" ] }, { - "id": "0x55876b031820-ProgramUnit", + "id": "0x55d5e7571810-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x55876b024820-MainProgram" + "MainProgram": "0x55d5e7570da0-MainProgram" }, { - "id": "0x55876b024820-MainProgram", - "Statement": "0x55876b024968-Statement", - "SpecificationPart": "0x55876b0248c0-SpecificationPart", - "ExecutionPart": "0x55876b0248a8-ExecutionPart", - "Statement": "0x55876b024820-Statement" + "id": "0x55d5e7570da0-MainProgram", + "Statement": "0x55d5e7570ee8-Statement", + "SpecificationPart": "0x55d5e7570e40-SpecificationPart", + "ExecutionPart": "0x55d5e7570e28-ExecutionPart", + "Statement": "0x55d5e7570da0-Statement" }, { - "id": "0x55876b024968-Statement", - "statement": "0x55876b024978-ProgramStmt", + "id": "0x55d5e7570ee8-Statement", + "statement": "0x55d5e7570ef8-ProgramStmt", "source": "program TEST_EXPRS" }, { - "id": "0x55876b024978-ProgramStmt", - "Name": "0x55876b024978-Name" + "id": "0x55d5e7570ef8-ProgramStmt", + "Name": "0x55d5e7570ef8-Name" }, { - "id": "0x55876b024978-Name", + "id": "0x55d5e7570ef8-Name", "source": "TEST_EXPRS" }, { - "id": "0x55876b0248c0-SpecificationPart", - "ImplicitPart": "0x55876b0248d8-ImplicitPart", + "id": "0x55d5e7570e40-SpecificationPart", + "ImplicitPart": "0x55d5e7570e58-ImplicitPart", "DeclarationConstruct": [ - "0x55876b001110-DeclarationConstruct", - "0x55876b02ee30-DeclarationConstruct" + "0x55d5e7540da0-DeclarationConstruct", + "0x55d5e756f160-DeclarationConstruct" ] }, { - "id": "0x55876b0248d8-ImplicitPart" + "id": "0x55d5e7570e58-ImplicitPart" }, { - "id": "0x55876b001110-DeclarationConstruct", + "id": "0x55d5e7540da0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55876b001110-SpecificationConstruct" + "SpecificationConstruct": "0x55d5e7540da0-SpecificationConstruct" }, { - "id": "0x55876b001110-SpecificationConstruct", + "id": "0x55d5e7540da0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55876b001110-Statement" + "Statement": "0x55d5e7540da0-Statement" }, { - "id": "0x55876b001110-Statement", - "statement": "0x55876b02e3b0-TypeDeclarationStmt", - "source": "logical :: l" + "id": "0x55d5e7540da0-Statement", + "statement": "0x55d5e756e3a0-TypeDeclarationStmt", + "source": "logical :: l, l1 = .true., l2 = .false." }, { - "id": "0x55876b02e3b0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55876b02e3e0-DeclarationTypeSpec", + "id": "0x55d5e756e3a0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55d5e756e3d0-DeclarationTypeSpec", "EntityDecl": [ - "0x55876b02e4c0-EntityDecl" + "0x55d5e756ea80-EntityDecl", + "0x55d5e756e590-EntityDecl", + "0x55d5e756e990-EntityDecl" ] }, { - "id": "0x55876b02e3e0-DeclarationTypeSpec", + "id": "0x55d5e756e3d0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55876b02e3e0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55d5e756e3d0-IntrinsicTypeSpec" }, { - "id": "0x55876b02e3e0-IntrinsicTypeSpec", + "id": "0x55d5e756e3d0-IntrinsicTypeSpec", "variantKey": "Logical", - "Logical": "0x55876b02e3e0-Logical" + "Logical": "0x55d5e756e3d0-Logical" }, { - "id": "0x55876b02e3e0-Logical" + "id": "0x55d5e756e3d0-Logical" }, { - "id": "0x55876b02e4c0-EntityDecl", - "Name": "0x55876b02e578-Name" + "id": "0x55d5e756ea80-EntityDecl", + "Name": "0x55d5e756eb38-Name" }, { - "id": "0x55876b02e578-Name", + "id": "0x55d5e756eb38-Name", "source": "l" }, { - "id": "0x55876b02ee30-DeclarationConstruct", + "id": "0x55d5e756e590-EntityDecl", + "Name": "0x55d5e756e648-Name", + "Initialization": "0x55d5e756e590-Initialization" + }, + { + "id": "0x55d5e756e648-Name", + "source": "l1" + }, + { + "id": "0x55d5e756e590-Initialization", + "variantKey": "Expr", + "Expr": "0x55d5e74d3790-Expr" + }, + { + "id": "0x55d5e74d3790-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d5e74d37b0-LiteralConstant" + }, + { + "id": "0x55d5e74d37b0-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x55d5e74d37b0-LogicalLiteralConstant" + }, + { + "id": "0x55d5e74d37b0-LogicalLiteralConstant", + "bool": "1" + }, + { + "id": "0x55d5e756e990-EntityDecl", + "Name": "0x55d5e756ea48-Name", + "Initialization": "0x55d5e756e990-Initialization" + }, + { + "id": "0x55d5e756ea48-Name", + "source": "l2" + }, + { + "id": "0x55d5e756e990-Initialization", + "variantKey": "Expr", + "Expr": "0x55d5e756e8a0-Expr" + }, + { + "id": "0x55d5e756e8a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d5e756e8c0-LiteralConstant" + }, + { + "id": "0x55d5e756e8c0-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x55d5e756e8c0-LogicalLiteralConstant" + }, + { + "id": "0x55d5e756e8c0-LogicalLiteralConstant", + "bool": "0" + }, + { + "id": "0x55d5e756f160-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55876b02ee30-SpecificationConstruct" + "SpecificationConstruct": "0x55d5e756f160-SpecificationConstruct" }, { - "id": "0x55876b02ee30-SpecificationConstruct", + "id": "0x55d5e756f160-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55876b02ee30-Statement" + "Statement": "0x55d5e756f160-Statement" }, { - "id": "0x55876b02ee30-Statement", - "statement": "0x55876b02e430-TypeDeclarationStmt", + "id": "0x55d5e756f160-Statement", + "statement": "0x55d5e756e420-TypeDeclarationStmt", "source": "integer :: i, a = 1, b = 1" }, { - "id": "0x55876b02e430-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55876b02e460-DeclarationTypeSpec", + "id": "0x55d5e756e420-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55d5e756e450-DeclarationTypeSpec", "EntityDecl": [ - "0x55876b02ec60-EntityDecl", - "0x55876b02e780-EntityDecl", - "0x55876b02eb70-EntityDecl" + "0x55d5e756f070-EntityDecl", + "0x55d5e756edb0-EntityDecl", + "0x55d5e756ef80-EntityDecl" ] }, { - "id": "0x55876b02e460-DeclarationTypeSpec", + "id": "0x55d5e756e450-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55876b02e460-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55d5e756e450-IntrinsicTypeSpec" }, { - "id": "0x55876b02e460-IntrinsicTypeSpec", + "id": "0x55d5e756e450-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55876b02e460-IntegerTypeSpec" + "IntegerTypeSpec": "0x55d5e756e450-IntegerTypeSpec" }, { - "id": "0x55876b02e460-IntegerTypeSpec" + "id": "0x55d5e756e450-IntegerTypeSpec" }, { - "id": "0x55876b02ec60-EntityDecl", - "Name": "0x55876b02ed18-Name" + "id": "0x55d5e756f070-EntityDecl", + "Name": "0x55d5e756f128-Name" }, { - "id": "0x55876b02ed18-Name", + "id": "0x55d5e756f128-Name", "source": "i" }, { - "id": "0x55876b02e780-EntityDecl", - "Name": "0x55876b02e838-Name", - "Initialization": "0x55876b02e780-Initialization" + "id": "0x55d5e756edb0-EntityDecl", + "Name": "0x55d5e756ee68-Name", + "Initialization": "0x55d5e756edb0-Initialization" }, { - "id": "0x55876b02e838-Name", + "id": "0x55d5e756ee68-Name", "source": "a" }, { - "id": "0x55876b02e780-Initialization", + "id": "0x55d5e756edb0-Initialization", "variantKey": "Expr", - "Expr": "0x55876b02e690-Expr" + "Expr": "0x55d5e756ecc0-Expr" }, { - "id": "0x55876b02e690-Expr", + "id": "0x55d5e756ecc0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55876b02e6b0-LiteralConstant" + "LiteralConstant": "0x55d5e756ece0-LiteralConstant" }, { - "id": "0x55876b02e6b0-LiteralConstant", + "id": "0x55d5e756ece0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55876b02e6b0-IntLiteralConstant" + "IntLiteralConstant": "0x55d5e756ece0-IntLiteralConstant" }, { - "id": "0x55876b02e6b0-IntLiteralConstant", + "id": "0x55d5e756ece0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55876b02eb70-EntityDecl", - "Name": "0x55876b02ec28-Name", - "Initialization": "0x55876b02eb70-Initialization" + "id": "0x55d5e756ef80-EntityDecl", + "Name": "0x55d5e756f038-Name", + "Initialization": "0x55d5e756ef80-Initialization" }, { - "id": "0x55876b02ec28-Name", + "id": "0x55d5e756f038-Name", "source": "b" }, { - "id": "0x55876b02eb70-Initialization", + "id": "0x55d5e756ef80-Initialization", "variantKey": "Expr", - "Expr": "0x55876b02ea80-Expr" + "Expr": "0x55d5e756ee90-Expr" }, { - "id": "0x55876b02ea80-Expr", + "id": "0x55d5e756ee90-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55876b02eaa0-LiteralConstant" + "LiteralConstant": "0x55d5e756eeb0-LiteralConstant" }, { - "id": "0x55876b02eaa0-LiteralConstant", + "id": "0x55d5e756eeb0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55876b02eaa0-IntLiteralConstant" + "IntLiteralConstant": "0x55d5e756eeb0-IntLiteralConstant" }, { - "id": "0x55876b02eaa0-IntLiteralConstant", + "id": "0x55d5e756eeb0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55876b0248a8-ExecutionPart", + "id": "0x55d5e7570e28-ExecutionPart", "ExecutionPartConstruct": [ - "0x55876b02fa60-ExecutionPartConstruct", - "0x55876b02f500-ExecutionPartConstruct", - "0x55876b01e700-ExecutionPartConstruct", - "0x55876b01ea30-ExecutionPartConstruct", - "0x55876b01efb0-ExecutionPartConstruct", - "0x55876b01f2e0-ExecutionPartConstruct", - "0x55876b01f6d0-ExecutionPartConstruct", - "0x55876b01fb80-ExecutionPartConstruct", - "0x55876b01f7f0-ExecutionPartConstruct", - "0x55876b0202a0-ExecutionPartConstruct", - "0x55876b0216d0-ExecutionPartConstruct" + "0x55d5e75705a0-ExecutionPartConstruct", + "0x55d5e756fb00-ExecutionPartConstruct", + "0x55d5e755ea50-ExecutionPartConstruct", + "0x55d5e755ed80-ExecutionPartConstruct", + "0x55d5e755f300-ExecutionPartConstruct", + "0x55d5e755f630-ExecutionPartConstruct", + "0x55d5e755fae0-ExecutionPartConstruct", + "0x55d5e755ff30-ExecutionPartConstruct", + "0x55d5e7560380-ExecutionPartConstruct", + "0x55d5e75607d0-ExecutionPartConstruct", + "0x55d5e7560b60-ExecutionPartConstruct", + "0x55d5e7561010-ExecutionPartConstruct", + "0x55d5e7560c80-ExecutionPartConstruct", + "0x55d5e7561730-ExecutionPartConstruct", + "0x55d5e7562b60-ExecutionPartConstruct" ] }, { - "id": "0x55876b0248a8-ExecutionPartConstruct" + "id": "0x55d5e7570e28-ExecutionPartConstruct" }, { - "id": "0x55876b02fa60-ExecutionPartConstruct", + "id": "0x55d5e75705a0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55876b02fa60-ExecutableConstruct" + "ExecutableConstruct": "0x55d5e75705a0-ExecutableConstruct" }, { - "id": "0x55876b02fa60-ExecutableConstruct", + "id": "0x55d5e75705a0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55876b02fa60-Statement" + "Statement": "0x55d5e75705a0-Statement" }, { - "id": "0x55876b02fa60-Statement", - "statement": "0x55876b02fa70-ActionStmt", + "id": "0x55d5e75705a0-Statement", + "statement": "0x55d5e75705b0-ActionStmt", "source": "l = 0 < a" }, { - "id": "0x55876b02fa70-ActionStmt", + "id": "0x55d5e75705b0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55876b030960-AssignmentStmt" + "AssignmentStmt": "0x55d5e7570950-AssignmentStmt" }, { - "id": "0x55876b030960-AssignmentStmt", - "Variable": "0x55876b030a40-Variable", - "Expr": "0x55876b030970-Expr" + "id": "0x55d5e7570950-AssignmentStmt", + "Variable": "0x55d5e7570a30-Variable", + "Expr": "0x55d5e7570960-Expr" }, { - "id": "0x55876b030a40-Variable", + "id": "0x55d5e7570a30-Variable", "variantKey": "Designator", - "Designator": "0x55876b000d90-Designator" + "Designator": "0x55d5e7570670-Designator" }, { - "id": "0x55876b000d90-Designator", + "id": "0x55d5e7570670-Designator", "variantKey": "DataRef", - "DataRef": "0x55876b000da0-DataRef" + "DataRef": "0x55d5e7570680-DataRef" }, { - "id": "0x55876b000da0-DataRef", + "id": "0x55d5e7570680-DataRef", "variantKey": "Name", - "Name": "0x55876b000da0-Name" + "Name": "0x55d5e7570680-Name" }, { - "id": "0x55876b000da0-Name", + "id": "0x55d5e7570680-Name", "source": "l" }, { - "id": "0x55876b030970-Expr", + "id": "0x55d5e7570960-Expr", "variantKey": "LT", - "LT": "0x55876b030990-LT" + "LT": "0x55d5e7570980-LT" }, { - "id": "0x55876b030990-LT", - "left": "0x55876b0305c0-Expr", - "right": "0x55876b0304e0-Expr", + "id": "0x55d5e7570980-LT", + "left": "0x55d5e756f3b0-Expr", + "right": "0x55d5e756fe10-Expr", "op": "LT" }, { - "id": "0x55876b0305c0-Expr", + "id": "0x55d5e756f3b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55876b0305e0-LiteralConstant" + "LiteralConstant": "0x55d5e756f3d0-LiteralConstant" }, { - "id": "0x55876b0305e0-LiteralConstant", + "id": "0x55d5e756f3d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55876b0305e0-IntLiteralConstant" + "IntLiteralConstant": "0x55d5e756f3d0-IntLiteralConstant" }, { - "id": "0x55876b0305e0-IntLiteralConstant", + "id": "0x55d5e756f3d0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55876b0304e0-Expr", + "id": "0x55d5e756fe10-Expr", "variantKey": "Designator", - "Designator": "0x55876b02e860-Designator" + "Designator": "0x55d5e756e260-Designator" }, { - "id": "0x55876b02e860-Designator", + "id": "0x55d5e756e260-Designator", "variantKey": "DataRef", - "DataRef": "0x55876b02e870-DataRef" + "DataRef": "0x55d5e756e270-DataRef" }, { - "id": "0x55876b02e870-DataRef", + "id": "0x55d5e756e270-DataRef", "variantKey": "Name", - "Name": "0x55876b02e870-Name" + "Name": "0x55d5e756e270-Name" }, { - "id": "0x55876b02e870-Name", + "id": "0x55d5e756e270-Name", "source": "a" }, { - "id": "0x55876b02f500-ExecutionPartConstruct", + "id": "0x55d5e756fb00-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55876b02f500-ExecutableConstruct" + "ExecutableConstruct": "0x55d5e756fb00-ExecutableConstruct" }, { - "id": "0x55876b02f500-ExecutableConstruct", + "id": "0x55d5e756fb00-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55876b02f500-Statement" + "Statement": "0x55d5e756fb00-Statement" }, { - "id": "0x55876b02f500-Statement", - "statement": "0x55876b02f510-ActionStmt", + "id": "0x55d5e756fb00-Statement", + "statement": "0x55d5e756fb10-ActionStmt", "source": "l = 2 <= 3" }, { - "id": "0x55876b02f510-ActionStmt", + "id": "0x55d5e756fb10-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55876b02f2b0-AssignmentStmt" + "AssignmentStmt": "0x55d5e756f970-AssignmentStmt" }, { - "id": "0x55876b02f2b0-AssignmentStmt", - "Variable": "0x55876b02f390-Variable", - "Expr": "0x55876b02f2c0-Expr" + "id": "0x55d5e756f970-AssignmentStmt", + "Variable": "0x55d5e756fa50-Variable", + "Expr": "0x55d5e756f980-Expr" }, { - "id": "0x55876b02f390-Variable", + "id": "0x55d5e756fa50-Variable", "variantKey": "Designator", - "Designator": "0x55876b02fef0-Designator" + "Designator": "0x55d5e75704d0-Designator" }, { - "id": "0x55876b02fef0-Designator", + "id": "0x55d5e75704d0-Designator", "variantKey": "DataRef", - "DataRef": "0x55876b02ff00-DataRef" + "DataRef": "0x55d5e75704e0-DataRef" }, { - "id": "0x55876b02ff00-DataRef", + "id": "0x55d5e75704e0-DataRef", "variantKey": "Name", - "Name": "0x55876b02ff00-Name" + "Name": "0x55d5e75704e0-Name" }, { - "id": "0x55876b02ff00-Name", + "id": "0x55d5e75704e0-Name", "source": "l" }, { - "id": "0x55876b02f2c0-Expr", + "id": "0x55d5e756f980-Expr", "variantKey": "LE", - "LE": "0x55876b02f2e0-LE" + "LE": "0x55d5e756f9a0-LE" }, { - "id": "0x55876b02f2e0-LE", - "left": "0x55876b02f160-Expr", - "right": "0x55876b02f080-Expr", + "id": "0x55d5e756f9a0-LE", + "left": "0x55d5e756f820-Expr", + "right": "0x55d5e756f6b0-Expr", "op": "LE" }, { - "id": "0x55876b02f160-Expr", + "id": "0x55d5e756f820-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55876b02f180-LiteralConstant" + "LiteralConstant": "0x55d5e756f840-LiteralConstant" }, { - "id": "0x55876b02f180-LiteralConstant", + "id": "0x55d5e756f840-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55876b02f180-IntLiteralConstant" + "IntLiteralConstant": "0x55d5e756f840-IntLiteralConstant" }, { - "id": "0x55876b02f180-IntLiteralConstant", + "id": "0x55d5e756f840-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x55876b02f080-Expr", + "id": "0x55d5e756f6b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55876b02f0a0-LiteralConstant" + "LiteralConstant": "0x55d5e756f6d0-LiteralConstant" }, { - "id": "0x55876b02f0a0-LiteralConstant", + "id": "0x55d5e756f6d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55876b02f0a0-IntLiteralConstant" + "IntLiteralConstant": "0x55d5e756f6d0-IntLiteralConstant" }, { - "id": "0x55876b02f0a0-IntLiteralConstant", + "id": "0x55d5e756f6d0-IntLiteralConstant", "CharBlock": "3" }, { - "id": "0x55876b01e700-ExecutionPartConstruct", + "id": "0x55d5e755ea50-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55876b01e700-ExecutableConstruct" + "ExecutableConstruct": "0x55d5e755ea50-ExecutableConstruct" }, { - "id": "0x55876b01e700-ExecutableConstruct", + "id": "0x55d5e755ea50-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55876b01e700-Statement" + "Statement": "0x55d5e755ea50-Statement" }, { - "id": "0x55876b01e700-Statement", - "statement": "0x55876b01e710-ActionStmt", + "id": "0x55d5e755ea50-Statement", + "statement": "0x55d5e755ea60-ActionStmt", "source": "l = b > 5" }, { - "id": "0x55876b01e710-ActionStmt", + "id": "0x55d5e755ea60-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55876b02f7d0-AssignmentStmt" + "AssignmentStmt": "0x55d5e755e930-AssignmentStmt" }, { - "id": "0x55876b02f7d0-AssignmentStmt", - "Variable": "0x55876b02f8b0-Variable", - "Expr": "0x55876b02f7e0-Expr" + "id": "0x55d5e755e930-AssignmentStmt", + "Variable": "0x55d5e755ea10-Variable", + "Expr": "0x55d5e755e940-Expr" }, { - "id": "0x55876b02f8b0-Variable", + "id": "0x55d5e755ea10-Variable", "variantKey": "Designator", - "Designator": "0x55876b02ff50-Designator" + "Designator": "0x55d5e7570530-Designator" }, { - "id": "0x55876b02ff50-Designator", + "id": "0x55d5e7570530-Designator", "variantKey": "DataRef", - "DataRef": "0x55876b02ff60-DataRef" + "DataRef": "0x55d5e7570540-DataRef" }, { - "id": "0x55876b02ff60-DataRef", + "id": "0x55d5e7570540-DataRef", "variantKey": "Name", - "Name": "0x55876b02ff60-Name" + "Name": "0x55d5e7570540-Name" }, { - "id": "0x55876b02ff60-Name", + "id": "0x55d5e7570540-Name", "source": "l" }, { - "id": "0x55876b02f7e0-Expr", + "id": "0x55d5e755e940-Expr", "variantKey": "GT", - "GT": "0x55876b02f800-GT" + "GT": "0x55d5e755e960-GT" }, { - "id": "0x55876b02f800-GT", - "left": "0x55876b02f6f0-Expr", - "right": "0x55876b02f610-Expr", + "id": "0x55d5e755e960-GT", + "left": "0x55d5e755e850-Expr", + "right": "0x55d5e755e770-Expr", "op": "GT" }, { - "id": "0x55876b02f6f0-Expr", + "id": "0x55d5e755e850-Expr", "variantKey": "Designator", - "Designator": "0x55876b02f550-Designator" + "Designator": "0x55d5e756fb50-Designator" }, { - "id": "0x55876b02f550-Designator", + "id": "0x55d5e756fb50-Designator", "variantKey": "DataRef", - "DataRef": "0x55876b02f560-DataRef" + "DataRef": "0x55d5e756fb60-DataRef" }, { - "id": "0x55876b02f560-DataRef", + "id": "0x55d5e756fb60-DataRef", "variantKey": "Name", - "Name": "0x55876b02f560-Name" + "Name": "0x55d5e756fb60-Name" }, { - "id": "0x55876b02f560-Name", + "id": "0x55d5e756fb60-Name", "source": "b" }, { - "id": "0x55876b02f610-Expr", + "id": "0x55d5e755e770-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55876b02f630-LiteralConstant" + "LiteralConstant": "0x55d5e755e790-LiteralConstant" }, { - "id": "0x55876b02f630-LiteralConstant", + "id": "0x55d5e755e790-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55876b02f630-IntLiteralConstant" + "IntLiteralConstant": "0x55d5e755e790-IntLiteralConstant" }, { - "id": "0x55876b02f630-IntLiteralConstant", + "id": "0x55d5e755e790-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x55876b01ea30-ExecutionPartConstruct", + "id": "0x55d5e755ed80-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55876b01ea30-ExecutableConstruct" + "ExecutableConstruct": "0x55d5e755ed80-ExecutableConstruct" }, { - "id": "0x55876b01ea30-ExecutableConstruct", + "id": "0x55d5e755ed80-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55876b01ea30-Statement" + "Statement": "0x55d5e755ed80-Statement" }, { - "id": "0x55876b01ea30-Statement", - "statement": "0x55876b01ea40-ActionStmt", + "id": "0x55d5e755ed80-Statement", + "statement": "0x55d5e755ed90-ActionStmt", "source": "l = 6 >= 7" }, { - "id": "0x55876b01ea40-ActionStmt", + "id": "0x55d5e755ed90-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55876b01e910-AssignmentStmt" + "AssignmentStmt": "0x55d5e755ec60-AssignmentStmt" }, { - "id": "0x55876b01e910-AssignmentStmt", - "Variable": "0x55876b01e9f0-Variable", - "Expr": "0x55876b01e920-Expr" + "id": "0x55d5e755ec60-AssignmentStmt", + "Variable": "0x55d5e755ed40-Variable", + "Expr": "0x55d5e755ec70-Expr" }, { - "id": "0x55876b01e9f0-Variable", + "id": "0x55d5e755ed40-Variable", "variantKey": "Designator", - "Designator": "0x55876b030090-Designator" + "Designator": "0x55d5e7541100-Designator" }, { - "id": "0x55876b030090-Designator", + "id": "0x55d5e7541100-Designator", "variantKey": "DataRef", - "DataRef": "0x55876b0300a0-DataRef" + "DataRef": "0x55d5e7541110-DataRef" }, { - "id": "0x55876b0300a0-DataRef", + "id": "0x55d5e7541110-DataRef", "variantKey": "Name", - "Name": "0x55876b0300a0-Name" + "Name": "0x55d5e7541110-Name" }, { - "id": "0x55876b0300a0-Name", + "id": "0x55d5e7541110-Name", "source": "l" }, { - "id": "0x55876b01e920-Expr", + "id": "0x55d5e755ec70-Expr", "variantKey": "GE", - "GE": "0x55876b01e940-GE" + "GE": "0x55d5e755ec90-GE" }, { - "id": "0x55876b01e940-GE", - "left": "0x55876b01e830-Expr", - "right": "0x55876b01e750-Expr", + "id": "0x55d5e755ec90-GE", + "left": "0x55d5e755eb80-Expr", + "right": "0x55d5e755eaa0-Expr", "op": "GE" }, { - "id": "0x55876b01e830-Expr", + "id": "0x55d5e755eb80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55876b01e850-LiteralConstant" + "LiteralConstant": "0x55d5e755eba0-LiteralConstant" }, { - "id": "0x55876b01e850-LiteralConstant", + "id": "0x55d5e755eba0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55876b01e850-IntLiteralConstant" + "IntLiteralConstant": "0x55d5e755eba0-IntLiteralConstant" }, { - "id": "0x55876b01e850-IntLiteralConstant", + "id": "0x55d5e755eba0-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x55876b01e750-Expr", + "id": "0x55d5e755eaa0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55876b01e770-LiteralConstant" + "LiteralConstant": "0x55d5e755eac0-LiteralConstant" }, { - "id": "0x55876b01e770-LiteralConstant", + "id": "0x55d5e755eac0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55876b01e770-IntLiteralConstant" + "IntLiteralConstant": "0x55d5e755eac0-IntLiteralConstant" }, { - "id": "0x55876b01e770-IntLiteralConstant", + "id": "0x55d5e755eac0-IntLiteralConstant", "CharBlock": "7" }, { - "id": "0x55876b01efb0-ExecutionPartConstruct", + "id": "0x55d5e755f300-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55876b01efb0-ExecutableConstruct" + "ExecutableConstruct": "0x55d5e755f300-ExecutableConstruct" }, { - "id": "0x55876b01efb0-ExecutableConstruct", + "id": "0x55d5e755f300-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55876b01efb0-Statement" + "Statement": "0x55d5e755f300-Statement" }, { - "id": "0x55876b01efb0-Statement", - "statement": "0x55876b01efc0-ActionStmt", + "id": "0x55d5e755f300-Statement", + "statement": "0x55d5e755f310-ActionStmt", "source": "l = a == b" }, { - "id": "0x55876b01efc0-ActionStmt", + "id": "0x55d5e755f310-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55876b01ee20-AssignmentStmt" + "AssignmentStmt": "0x55d5e755f170-AssignmentStmt" }, { - "id": "0x55876b01ee20-AssignmentStmt", - "Variable": "0x55876b01ef00-Variable", - "Expr": "0x55876b01ee30-Expr" + "id": "0x55d5e755f170-AssignmentStmt", + "Variable": "0x55d5e755f250-Variable", + "Expr": "0x55d5e755f180-Expr" }, { - "id": "0x55876b01ef00-Variable", + "id": "0x55d5e755f250-Variable", "variantKey": "Designator", - "Designator": "0x55876b02fab0-Designator" + "Designator": "0x55d5e756f570-Designator" }, { - "id": "0x55876b02fab0-Designator", + "id": "0x55d5e756f570-Designator", "variantKey": "DataRef", - "DataRef": "0x55876b02fac0-DataRef" + "DataRef": "0x55d5e756f580-DataRef" }, { - "id": "0x55876b02fac0-DataRef", + "id": "0x55d5e756f580-DataRef", "variantKey": "Name", - "Name": "0x55876b02fac0-Name" + "Name": "0x55d5e756f580-Name" }, { - "id": "0x55876b02fac0-Name", + "id": "0x55d5e756f580-Name", "source": "l" }, { - "id": "0x55876b01ee30-Expr", + "id": "0x55d5e755f180-Expr", "variantKey": "EQ", - "EQ": "0x55876b01ee50-EQ" + "EQ": "0x55d5e755f1a0-EQ" }, { - "id": "0x55876b01ee50-EQ", - "left": "0x55876b01ed40-Expr", - "right": "0x55876b01ec60-Expr", + "id": "0x55d5e755f1a0-EQ", + "left": "0x55d5e755f090-Expr", + "right": "0x55d5e755efb0-Expr", "op": "EQ" }, { - "id": "0x55876b01ed40-Expr", + "id": "0x55d5e755f090-Expr", "variantKey": "Designator", - "Designator": "0x55876b01eae0-Designator" + "Designator": "0x55d5e755ee30-Designator" }, { - "id": "0x55876b01eae0-Designator", + "id": "0x55d5e755ee30-Designator", "variantKey": "DataRef", - "DataRef": "0x55876b01eaf0-DataRef" + "DataRef": "0x55d5e755ee40-DataRef" }, { - "id": "0x55876b01eaf0-DataRef", + "id": "0x55d5e755ee40-DataRef", "variantKey": "Name", - "Name": "0x55876b01eaf0-Name" + "Name": "0x55d5e755ee40-Name" }, { - "id": "0x55876b01eaf0-Name", + "id": "0x55d5e755ee40-Name", "source": "a" }, { - "id": "0x55876b01ec60-Expr", + "id": "0x55d5e755efb0-Expr", "variantKey": "Designator", - "Designator": "0x55876b01ec00-Designator" + "Designator": "0x55d5e755ef50-Designator" }, { - "id": "0x55876b01ec00-Designator", + "id": "0x55d5e755ef50-Designator", "variantKey": "DataRef", - "DataRef": "0x55876b01ec10-DataRef" + "DataRef": "0x55d5e755ef60-DataRef" }, { - "id": "0x55876b01ec10-DataRef", + "id": "0x55d5e755ef60-DataRef", "variantKey": "Name", - "Name": "0x55876b01ec10-Name" + "Name": "0x55d5e755ef60-Name" }, { - "id": "0x55876b01ec10-Name", + "id": "0x55d5e755ef60-Name", "source": "b" }, { - "id": "0x55876b01f2e0-ExecutionPartConstruct", + "id": "0x55d5e755f630-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55876b01f2e0-ExecutableConstruct" + "ExecutableConstruct": "0x55d5e755f630-ExecutableConstruct" }, { - "id": "0x55876b01f2e0-ExecutableConstruct", + "id": "0x55d5e755f630-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55876b01f2e0-Statement" + "Statement": "0x55d5e755f630-Statement" }, { - "id": "0x55876b01f2e0-Statement", - "statement": "0x55876b01f2f0-ActionStmt", + "id": "0x55d5e755f630-Statement", + "statement": "0x55d5e755f640-ActionStmt", "source": "l = 0 /= 1" }, { - "id": "0x55876b01f2f0-ActionStmt", + "id": "0x55d5e755f640-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55876b01f1c0-AssignmentStmt" + "AssignmentStmt": "0x55d5e755f510-AssignmentStmt" }, { - "id": "0x55876b01f1c0-AssignmentStmt", - "Variable": "0x55876b01f2a0-Variable", - "Expr": "0x55876b01f1d0-Expr" + "id": "0x55d5e755f510-AssignmentStmt", + "Variable": "0x55d5e755f5f0-Variable", + "Expr": "0x55d5e755f520-Expr" }, { - "id": "0x55876b01f2a0-Variable", + "id": "0x55d5e755f5f0-Variable", "variantKey": "Designator", - "Designator": "0x55876b02f5b0-Designator" + "Designator": "0x55d5e756fbb0-Designator" }, { - "id": "0x55876b02f5b0-Designator", + "id": "0x55d5e756fbb0-Designator", "variantKey": "DataRef", - "DataRef": "0x55876b02f5c0-DataRef" + "DataRef": "0x55d5e756fbc0-DataRef" }, { - "id": "0x55876b02f5c0-DataRef", + "id": "0x55d5e756fbc0-DataRef", "variantKey": "Name", - "Name": "0x55876b02f5c0-Name" + "Name": "0x55d5e756fbc0-Name" }, { - "id": "0x55876b02f5c0-Name", + "id": "0x55d5e756fbc0-Name", "source": "l" }, { - "id": "0x55876b01f1d0-Expr", + "id": "0x55d5e755f520-Expr", "variantKey": "NE", - "NE": "0x55876b01f1f0-NE" + "NE": "0x55d5e755f540-NE" }, { - "id": "0x55876b01f1f0-NE", - "left": "0x55876b01f0e0-Expr", - "right": "0x55876b01f000-Expr", + "id": "0x55d5e755f540-NE", + "left": "0x55d5e755f430-Expr", + "right": "0x55d5e755f350-Expr", "op": "NE" }, { - "id": "0x55876b01f0e0-Expr", + "id": "0x55d5e755f430-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55876b01f100-LiteralConstant" + "LiteralConstant": "0x55d5e755f450-LiteralConstant" }, { - "id": "0x55876b01f100-LiteralConstant", + "id": "0x55d5e755f450-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55876b01f100-IntLiteralConstant" + "IntLiteralConstant": "0x55d5e755f450-IntLiteralConstant" }, { - "id": "0x55876b01f100-IntLiteralConstant", + "id": "0x55d5e755f450-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55876b01f000-Expr", + "id": "0x55d5e755f350-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55876b01f020-LiteralConstant" + "LiteralConstant": "0x55d5e755f370-LiteralConstant" }, { - "id": "0x55876b01f020-LiteralConstant", + "id": "0x55d5e755f370-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55876b01f020-IntLiteralConstant" + "IntLiteralConstant": "0x55d5e755f370-IntLiteralConstant" }, { - "id": "0x55876b01f020-IntLiteralConstant", + "id": "0x55d5e755f370-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55876b01f6d0-ExecutionPartConstruct", + "id": "0x55d5e755fae0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d5e755fae0-ExecutableConstruct" + }, + { + "id": "0x55d5e755fae0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d5e755fae0-Statement" + }, + { + "id": "0x55d5e755fae0-Statement", + "statement": "0x55d5e755faf0-ActionStmt", + "source": "l = l1 .and. l2" + }, + { + "id": "0x55d5e755faf0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d5e755f9c0-AssignmentStmt" + }, + { + "id": "0x55d5e755f9c0-AssignmentStmt", + "Variable": "0x55d5e755faa0-Variable", + "Expr": "0x55d5e755f9d0-Expr" + }, + { + "id": "0x55d5e755faa0-Variable", + "variantKey": "Designator", + "Designator": "0x55d5e755edd0-Designator" + }, + { + "id": "0x55d5e755edd0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d5e755ede0-DataRef" + }, + { + "id": "0x55d5e755ede0-DataRef", + "variantKey": "Name", + "Name": "0x55d5e755ede0-Name" + }, + { + "id": "0x55d5e755ede0-Name", + "source": "l" + }, + { + "id": "0x55d5e755f9d0-Expr", + "variantKey": "AND", + "AND": "0x55d5e755f9f0-AND" + }, + { + "id": "0x55d5e755f9f0-AND", + "left": "0x55d5e755f8e0-Expr", + "right": "0x55d5e755f800-Expr", + "op": "AND" + }, + { + "id": "0x55d5e755f8e0-Expr", + "variantKey": "Designator", + "Designator": "0x55d5e755f680-Designator" + }, + { + "id": "0x55d5e755f680-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d5e755f690-DataRef" + }, + { + "id": "0x55d5e755f690-DataRef", + "variantKey": "Name", + "Name": "0x55d5e755f690-Name" + }, + { + "id": "0x55d5e755f690-Name", + "source": "l1" + }, + { + "id": "0x55d5e755f800-Expr", + "variantKey": "Designator", + "Designator": "0x55d5e755f7a0-Designator" + }, + { + "id": "0x55d5e755f7a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d5e755f7b0-DataRef" + }, + { + "id": "0x55d5e755f7b0-DataRef", + "variantKey": "Name", + "Name": "0x55d5e755f7b0-Name" + }, + { + "id": "0x55d5e755f7b0-Name", + "source": "l2" + }, + { + "id": "0x55d5e755ff30-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d5e755ff30-ExecutableConstruct" + }, + { + "id": "0x55d5e755ff30-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d5e755ff30-Statement" + }, + { + "id": "0x55d5e755ff30-Statement", + "statement": "0x55d5e755ff40-ActionStmt", + "source": "l = l1 .or. l2" + }, + { + "id": "0x55d5e755ff40-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d5e755fe10-AssignmentStmt" + }, + { + "id": "0x55d5e755fe10-AssignmentStmt", + "Variable": "0x55d5e755fef0-Variable", + "Expr": "0x55d5e755fe20-Expr" + }, + { + "id": "0x55d5e755fef0-Variable", + "variantKey": "Designator", + "Designator": "0x55d5e755ee90-Designator" + }, + { + "id": "0x55d5e755ee90-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d5e755eea0-DataRef" + }, + { + "id": "0x55d5e755eea0-DataRef", + "variantKey": "Name", + "Name": "0x55d5e755eea0-Name" + }, + { + "id": "0x55d5e755eea0-Name", + "source": "l" + }, + { + "id": "0x55d5e755fe20-Expr", + "variantKey": "OR", + "OR": "0x55d5e755fe40-OR" + }, + { + "id": "0x55d5e755fe40-OR", + "Expr": "0x55d5e755fc50-Expr" + }, + { + "id": "0x55d5e755fd30-Expr", + "variantKey": "Designator", + "Designator": "0x55d5e755f740-Designator" + }, + { + "id": "0x55d5e755f740-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d5e755f750-DataRef" + }, + { + "id": "0x55d5e755f750-DataRef", + "variantKey": "Name", + "Name": "0x55d5e755f750-Name" + }, + { + "id": "0x55d5e755f750-Name", + "source": "l1" + }, + { + "id": "0x55d5e755fc50-Expr", + "variantKey": "Designator", + "Designator": "0x55d5e755fbf0-Designator" + }, + { + "id": "0x55d5e755fbf0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d5e755fc00-DataRef" + }, + { + "id": "0x55d5e755fc00-DataRef", + "variantKey": "Name", + "Name": "0x55d5e755fc00-Name" + }, + { + "id": "0x55d5e755fc00-Name", + "source": "l2" + }, + { + "id": "0x55d5e7560380-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d5e7560380-ExecutableConstruct" + }, + { + "id": "0x55d5e7560380-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d5e7560380-Statement" + }, + { + "id": "0x55d5e7560380-Statement", + "statement": "0x55d5e7560390-ActionStmt", + "source": "l = l1 .eqv. l2" + }, + { + "id": "0x55d5e7560390-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d5e7560260-AssignmentStmt" + }, + { + "id": "0x55d5e7560260-AssignmentStmt", + "Variable": "0x55d5e7560340-Variable", + "Expr": "0x55d5e7560270-Expr" + }, + { + "id": "0x55d5e7560340-Variable", + "variantKey": "Designator", + "Designator": "0x55d5e755eef0-Designator" + }, + { + "id": "0x55d5e755eef0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d5e755ef00-DataRef" + }, + { + "id": "0x55d5e755ef00-DataRef", + "variantKey": "Name", + "Name": "0x55d5e755ef00-Name" + }, + { + "id": "0x55d5e755ef00-Name", + "source": "l" + }, + { + "id": "0x55d5e7560270-Expr", + "variantKey": "EQV", + "EQV": "0x55d5e7560290-EQV" + }, + { + "id": "0x55d5e7560290-EQV", + "Expr": "0x55d5e75600a0-Expr" + }, + { + "id": "0x55d5e7560180-Expr", + "variantKey": "Designator", + "Designator": "0x55d5e755fb90-Designator" + }, + { + "id": "0x55d5e755fb90-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d5e755fba0-DataRef" + }, + { + "id": "0x55d5e755fba0-DataRef", + "variantKey": "Name", + "Name": "0x55d5e755fba0-Name" + }, + { + "id": "0x55d5e755fba0-Name", + "source": "l1" + }, + { + "id": "0x55d5e75600a0-Expr", + "variantKey": "Designator", + "Designator": "0x55d5e7560040-Designator" + }, + { + "id": "0x55d5e7560040-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d5e7560050-DataRef" + }, + { + "id": "0x55d5e7560050-DataRef", + "variantKey": "Name", + "Name": "0x55d5e7560050-Name" + }, + { + "id": "0x55d5e7560050-Name", + "source": "l2" + }, + { + "id": "0x55d5e75607d0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d5e75607d0-ExecutableConstruct" + }, + { + "id": "0x55d5e75607d0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d5e75607d0-Statement" + }, + { + "id": "0x55d5e75607d0-Statement", + "statement": "0x55d5e75607e0-ActionStmt", + "source": "l = l1 .neqv. l2" + }, + { + "id": "0x55d5e75607e0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d5e75606b0-AssignmentStmt" + }, + { + "id": "0x55d5e75606b0-AssignmentStmt", + "Variable": "0x55d5e7560790-Variable", + "Expr": "0x55d5e75606c0-Expr" + }, + { + "id": "0x55d5e7560790-Variable", + "variantKey": "Designator", + "Designator": "0x55d5e755f6e0-Designator" + }, + { + "id": "0x55d5e755f6e0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d5e755f6f0-DataRef" + }, + { + "id": "0x55d5e755f6f0-DataRef", + "variantKey": "Name", + "Name": "0x55d5e755f6f0-Name" + }, + { + "id": "0x55d5e755f6f0-Name", + "source": "l" + }, + { + "id": "0x55d5e75606c0-Expr", + "variantKey": "NEQV", + "NEQV": "0x55d5e75606e0-NEQV" + }, + { + "id": "0x55d5e75606e0-NEQV", + "Expr": "0x55d5e75604f0-Expr" + }, + { + "id": "0x55d5e75605d0-Expr", + "variantKey": "Designator", + "Designator": "0x55d5e755ffe0-Designator" + }, + { + "id": "0x55d5e755ffe0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d5e755fff0-DataRef" + }, + { + "id": "0x55d5e755fff0-DataRef", + "variantKey": "Name", + "Name": "0x55d5e755fff0-Name" + }, + { + "id": "0x55d5e755fff0-Name", + "source": "l1" + }, + { + "id": "0x55d5e75604f0-Expr", + "variantKey": "Designator", + "Designator": "0x55d5e7560490-Designator" + }, + { + "id": "0x55d5e7560490-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d5e75604a0-DataRef" + }, + { + "id": "0x55d5e75604a0-DataRef", + "variantKey": "Name", + "Name": "0x55d5e75604a0-Name" + }, + { + "id": "0x55d5e75604a0-Name", + "source": "l2" + }, + { + "id": "0x55d5e7560b60-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55876b01f6d0-ExecutableConstruct" + "ExecutableConstruct": "0x55d5e7560b60-ExecutableConstruct" }, { - "id": "0x55876b01f6d0-ExecutableConstruct", + "id": "0x55d5e7560b60-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55876b01f6d0-Statement" + "Statement": "0x55d5e7560b60-Statement" }, { - "id": "0x55876b01f6d0-Statement", - "statement": "0x55876b01f6e0-ActionStmt", + "id": "0x55d5e7560b60-Statement", + "statement": "0x55d5e7560b70-ActionStmt", "source": "i = a + 1" }, { - "id": "0x55876b01f6e0-ActionStmt", + "id": "0x55d5e7560b70-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55876b01f5b0-AssignmentStmt" + "AssignmentStmt": "0x55d5e7560a40-AssignmentStmt" }, { - "id": "0x55876b01f5b0-AssignmentStmt", - "Variable": "0x55876b01f690-Variable", - "Expr": "0x55876b01f5c0-Expr" + "id": "0x55d5e7560a40-AssignmentStmt", + "Variable": "0x55d5e7560b20-Variable", + "Expr": "0x55d5e7560a50-Expr" }, { - "id": "0x55876b01f690-Variable", + "id": "0x55d5e7560b20-Variable", "variantKey": "Designator", - "Designator": "0x55876b01ea80-Designator" + "Designator": "0x55d5e755fb30-Designator" }, { - "id": "0x55876b01ea80-Designator", + "id": "0x55d5e755fb30-Designator", "variantKey": "DataRef", - "DataRef": "0x55876b01ea90-DataRef" + "DataRef": "0x55d5e755fb40-DataRef" }, { - "id": "0x55876b01ea90-DataRef", + "id": "0x55d5e755fb40-DataRef", "variantKey": "Name", - "Name": "0x55876b01ea90-Name" + "Name": "0x55d5e755fb40-Name" }, { - "id": "0x55876b01ea90-Name", + "id": "0x55d5e755fb40-Name", "source": "i" }, { - "id": "0x55876b01f5c0-Expr", + "id": "0x55d5e7560a50-Expr", "variantKey": "Add", - "Add": "0x55876b01f5e0-Add" + "Add": "0x55d5e7560a70-Add" }, { - "id": "0x55876b01f5e0-Add", - "left": "0x55876b01f4d0-Expr", - "right": "0x55876b01f3f0-Expr", + "id": "0x55d5e7560a70-Add", + "left": "0x55d5e7560960-Expr", + "right": "0x55d5e7560880-Expr", "op": "ADD" }, { - "id": "0x55876b01f4d0-Expr", + "id": "0x55d5e7560960-Expr", "variantKey": "Designator", - "Designator": "0x55876b01f330-Designator" + "Designator": "0x55d5e7560430-Designator" }, { - "id": "0x55876b01f330-Designator", + "id": "0x55d5e7560430-Designator", "variantKey": "DataRef", - "DataRef": "0x55876b01f340-DataRef" + "DataRef": "0x55d5e7560440-DataRef" }, { - "id": "0x55876b01f340-DataRef", + "id": "0x55d5e7560440-DataRef", "variantKey": "Name", - "Name": "0x55876b01f340-Name" + "Name": "0x55d5e7560440-Name" }, { - "id": "0x55876b01f340-Name", + "id": "0x55d5e7560440-Name", "source": "a" }, { - "id": "0x55876b01f3f0-Expr", + "id": "0x55d5e7560880-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55876b01f410-LiteralConstant" + "LiteralConstant": "0x55d5e75608a0-LiteralConstant" }, { - "id": "0x55876b01f410-LiteralConstant", + "id": "0x55d5e75608a0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55876b01f410-IntLiteralConstant" + "IntLiteralConstant": "0x55d5e75608a0-IntLiteralConstant" }, { - "id": "0x55876b01f410-IntLiteralConstant", + "id": "0x55d5e75608a0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55876b01fb80-ExecutionPartConstruct", + "id": "0x55d5e7561010-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55876b01fb80-ExecutableConstruct" + "ExecutableConstruct": "0x55d5e7561010-ExecutableConstruct" }, { - "id": "0x55876b01fb80-ExecutableConstruct", + "id": "0x55d5e7561010-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55876b01fb80-Statement" + "Statement": "0x55d5e7561010-Statement" }, { - "id": "0x55876b01fb80-Statement", - "statement": "0x55876b01fb90-ActionStmt", + "id": "0x55d5e7561010-Statement", + "statement": "0x55d5e7561020-ActionStmt", "source": "i = a - b" }, { - "id": "0x55876b01fb90-ActionStmt", + "id": "0x55d5e7561020-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55876b01fa60-AssignmentStmt" + "AssignmentStmt": "0x55d5e7560ef0-AssignmentStmt" }, { - "id": "0x55876b01fa60-AssignmentStmt", - "Variable": "0x55876b01fb40-Variable", - "Expr": "0x55876b01fa70-Expr" + "id": "0x55d5e7560ef0-AssignmentStmt", + "Variable": "0x55d5e7560fd0-Variable", + "Expr": "0x55d5e7560f00-Expr" }, { - "id": "0x55876b01fb40-Variable", + "id": "0x55d5e7560fd0-Variable", "variantKey": "Designator", - "Designator": "0x55876b01eb40-Designator" + "Designator": "0x55d5e755ff80-Designator" }, { - "id": "0x55876b01eb40-Designator", + "id": "0x55d5e755ff80-Designator", "variantKey": "DataRef", - "DataRef": "0x55876b01eb50-DataRef" + "DataRef": "0x55d5e755ff90-DataRef" }, { - "id": "0x55876b01eb50-DataRef", + "id": "0x55d5e755ff90-DataRef", "variantKey": "Name", - "Name": "0x55876b01eb50-Name" + "Name": "0x55d5e755ff90-Name" }, { - "id": "0x55876b01eb50-Name", + "id": "0x55d5e755ff90-Name", "source": "i" }, { - "id": "0x55876b01fa70-Expr", + "id": "0x55d5e7560f00-Expr", "variantKey": "Subtract", - "Subtract": "0x55876b01fa90-Subtract" + "Subtract": "0x55d5e7560f20-Subtract" }, { - "id": "0x55876b01fa90-Subtract", - "left": "0x55876b01f980-Expr", - "right": "0x55876b01f8a0-Expr", + "id": "0x55d5e7560f20-Subtract", + "left": "0x55d5e7560e10-Expr", + "right": "0x55d5e7560d30-Expr", "op": "SUBTRACT" }, { - "id": "0x55876b01f980-Expr", + "id": "0x55d5e7560e10-Expr", "variantKey": "Designator", - "Designator": "0x55876b01f720-Designator" + "Designator": "0x55d5e7560bb0-Designator" }, { - "id": "0x55876b01f720-Designator", + "id": "0x55d5e7560bb0-Designator", "variantKey": "DataRef", - "DataRef": "0x55876b01f730-DataRef" + "DataRef": "0x55d5e7560bc0-DataRef" }, { - "id": "0x55876b01f730-DataRef", + "id": "0x55d5e7560bc0-DataRef", "variantKey": "Name", - "Name": "0x55876b01f730-Name" + "Name": "0x55d5e7560bc0-Name" }, { - "id": "0x55876b01f730-Name", + "id": "0x55d5e7560bc0-Name", "source": "a" }, { - "id": "0x55876b01f8a0-Expr", + "id": "0x55d5e7560d30-Expr", "variantKey": "Designator", - "Designator": "0x55876b01f840-Designator" + "Designator": "0x55d5e7560cd0-Designator" }, { - "id": "0x55876b01f840-Designator", + "id": "0x55d5e7560cd0-Designator", "variantKey": "DataRef", - "DataRef": "0x55876b01f850-DataRef" + "DataRef": "0x55d5e7560ce0-DataRef" }, { - "id": "0x55876b01f850-DataRef", + "id": "0x55d5e7560ce0-DataRef", "variantKey": "Name", - "Name": "0x55876b01f850-Name" + "Name": "0x55d5e7560ce0-Name" }, { - "id": "0x55876b01f850-Name", + "id": "0x55d5e7560ce0-Name", "source": "b" }, { - "id": "0x55876b01f7f0-ExecutionPartConstruct", + "id": "0x55d5e7560c80-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55876b01f7f0-ExecutableConstruct" + "ExecutableConstruct": "0x55d5e7560c80-ExecutableConstruct" }, { - "id": "0x55876b01f7f0-ExecutableConstruct", + "id": "0x55d5e7560c80-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55876b01f7f0-Statement" + "Statement": "0x55d5e7560c80-Statement" }, { - "id": "0x55876b01f7f0-Statement", - "statement": "0x55876b01f800-ActionStmt", + "id": "0x55d5e7560c80-Statement", + "statement": "0x55d5e7560c90-ActionStmt", "source": "i = 4 * 5" }, { - "id": "0x55876b01f800-ActionStmt", + "id": "0x55d5e7560c90-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55876b01fd90-AssignmentStmt" + "AssignmentStmt": "0x55d5e7561220-AssignmentStmt" }, { - "id": "0x55876b01fd90-AssignmentStmt", - "Variable": "0x55876b01fe70-Variable", - "Expr": "0x55876b01fda0-Expr" + "id": "0x55d5e7561220-AssignmentStmt", + "Variable": "0x55d5e7561300-Variable", + "Expr": "0x55d5e7561230-Expr" }, { - "id": "0x55876b01fe70-Variable", + "id": "0x55d5e7561300-Variable", "variantKey": "Designator", - "Designator": "0x55876b01eba0-Designator" + "Designator": "0x55d5e75603d0-Designator" }, { - "id": "0x55876b01eba0-Designator", + "id": "0x55d5e75603d0-Designator", "variantKey": "DataRef", - "DataRef": "0x55876b01ebb0-DataRef" + "DataRef": "0x55d5e75603e0-DataRef" }, { - "id": "0x55876b01ebb0-DataRef", + "id": "0x55d5e75603e0-DataRef", "variantKey": "Name", - "Name": "0x55876b01ebb0-Name" + "Name": "0x55d5e75603e0-Name" }, { - "id": "0x55876b01ebb0-Name", + "id": "0x55d5e75603e0-Name", "source": "i" }, { - "id": "0x55876b01fda0-Expr", + "id": "0x55d5e7561230-Expr", "variantKey": "Multiply", - "Multiply": "0x55876b01fdc0-Multiply" + "Multiply": "0x55d5e7561250-Multiply" }, { - "id": "0x55876b01fdc0-Multiply", - "left": "0x55876b01fcb0-Expr", - "right": "0x55876b01fbd0-Expr", + "id": "0x55d5e7561250-Multiply", + "left": "0x55d5e7561140-Expr", + "right": "0x55d5e7561060-Expr", "op": "MULTIPLY" }, { - "id": "0x55876b01fcb0-Expr", + "id": "0x55d5e7561140-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55876b01fcd0-LiteralConstant" + "LiteralConstant": "0x55d5e7561160-LiteralConstant" }, { - "id": "0x55876b01fcd0-LiteralConstant", + "id": "0x55d5e7561160-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55876b01fcd0-IntLiteralConstant" + "IntLiteralConstant": "0x55d5e7561160-IntLiteralConstant" }, { - "id": "0x55876b01fcd0-IntLiteralConstant", + "id": "0x55d5e7561160-IntLiteralConstant", "CharBlock": "4" }, { - "id": "0x55876b01fbd0-Expr", + "id": "0x55d5e7561060-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55876b01fbf0-LiteralConstant" + "LiteralConstant": "0x55d5e7561080-LiteralConstant" }, { - "id": "0x55876b01fbf0-LiteralConstant", + "id": "0x55d5e7561080-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55876b01fbf0-IntLiteralConstant" + "IntLiteralConstant": "0x55d5e7561080-IntLiteralConstant" }, { - "id": "0x55876b01fbf0-IntLiteralConstant", + "id": "0x55d5e7561080-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x55876b0202a0-ExecutionPartConstruct", + "id": "0x55d5e7561730-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55876b0202a0-ExecutableConstruct" + "ExecutableConstruct": "0x55d5e7561730-ExecutableConstruct" }, { - "id": "0x55876b0202a0-ExecutableConstruct", + "id": "0x55d5e7561730-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55876b0202a0-Statement" + "Statement": "0x55d5e7561730-Statement" }, { - "id": "0x55876b0202a0-Statement", - "statement": "0x55876b0202b0-ActionStmt", + "id": "0x55d5e7561730-Statement", + "statement": "0x55d5e7561740-ActionStmt", "source": "i = 6 / b" }, { - "id": "0x55876b0202b0-ActionStmt", + "id": "0x55d5e7561740-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55876b020180-AssignmentStmt" + "AssignmentStmt": "0x55d5e7561610-AssignmentStmt" }, { - "id": "0x55876b020180-AssignmentStmt", - "Variable": "0x55876b020260-Variable", - "Expr": "0x55876b020190-Expr" + "id": "0x55d5e7561610-AssignmentStmt", + "Variable": "0x55d5e75616f0-Variable", + "Expr": "0x55d5e7561620-Expr" }, { - "id": "0x55876b020260-Variable", + "id": "0x55d5e75616f0-Variable", "variantKey": "Designator", - "Designator": "0x55876b01f390-Designator" + "Designator": "0x55d5e7560820-Designator" }, { - "id": "0x55876b01f390-Designator", + "id": "0x55d5e7560820-Designator", "variantKey": "DataRef", - "DataRef": "0x55876b01f3a0-DataRef" + "DataRef": "0x55d5e7560830-DataRef" }, { - "id": "0x55876b01f3a0-DataRef", + "id": "0x55d5e7560830-DataRef", "variantKey": "Name", - "Name": "0x55876b01f3a0-Name" + "Name": "0x55d5e7560830-Name" }, { - "id": "0x55876b01f3a0-Name", + "id": "0x55d5e7560830-Name", "source": "i" }, { - "id": "0x55876b020190-Expr", + "id": "0x55d5e7561620-Expr", "variantKey": "Divide", - "Divide": "0x55876b0201b0-Divide" + "Divide": "0x55d5e7561640-Divide" }, { - "id": "0x55876b0201b0-Divide", - "left": "0x55876b0200a0-Expr", - "right": "0x55876b01ffc0-Expr", + "id": "0x55d5e7561640-Divide", + "left": "0x55d5e7561530-Expr", + "right": "0x55d5e7561450-Expr", "op": "DIVIDE" }, { - "id": "0x55876b0200a0-Expr", + "id": "0x55d5e7561530-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55876b0200c0-LiteralConstant" + "LiteralConstant": "0x55d5e7561550-LiteralConstant" }, { - "id": "0x55876b0200c0-LiteralConstant", + "id": "0x55d5e7561550-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55876b0200c0-IntLiteralConstant" + "IntLiteralConstant": "0x55d5e7561550-IntLiteralConstant" }, { - "id": "0x55876b0200c0-IntLiteralConstant", + "id": "0x55d5e7561550-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x55876b01ffc0-Expr", + "id": "0x55d5e7561450-Expr", "variantKey": "Designator", - "Designator": "0x55876b01ff60-Designator" + "Designator": "0x55d5e75613f0-Designator" }, { - "id": "0x55876b01ff60-Designator", + "id": "0x55d5e75613f0-Designator", "variantKey": "DataRef", - "DataRef": "0x55876b01ff70-DataRef" + "DataRef": "0x55d5e7561400-DataRef" }, { - "id": "0x55876b01ff70-DataRef", + "id": "0x55d5e7561400-DataRef", "variantKey": "Name", - "Name": "0x55876b01ff70-Name" + "Name": "0x55d5e7561400-Name" }, { - "id": "0x55876b01ff70-Name", + "id": "0x55d5e7561400-Name", "source": "b" }, { - "id": "0x55876b0216d0-ExecutionPartConstruct", + "id": "0x55d5e7562b60-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55876b0216d0-ExecutableConstruct" + "ExecutableConstruct": "0x55d5e7562b60-ExecutableConstruct" }, { - "id": "0x55876b0216d0-ExecutableConstruct", + "id": "0x55d5e7562b60-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55876b0216d0-Statement" + "Statement": "0x55d5e7562b60-Statement" }, { - "id": "0x55876b0216d0-Statement", - "statement": "0x55876b0216e0-ActionStmt", + "id": "0x55d5e7562b60-Statement", + "statement": "0x55d5e7562b70-ActionStmt", "source": "i = 0 + 1 - b * 5 / a + 7" }, { - "id": "0x55876b0216e0-ActionStmt", + "id": "0x55d5e7562b70-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55876b021540-AssignmentStmt" + "AssignmentStmt": "0x55d5e75629d0-AssignmentStmt" }, { - "id": "0x55876b021540-AssignmentStmt", - "Variable": "0x55876b021620-Variable", - "Expr": "0x55876b021550-Expr" + "id": "0x55d5e75629d0-AssignmentStmt", + "Variable": "0x55d5e7562ab0-Variable", + "Expr": "0x55d5e75629e0-Expr" }, { - "id": "0x55876b021620-Variable", + "id": "0x55d5e7562ab0-Variable", "variantKey": "Designator", - "Designator": "0x55876b01f780-Designator" + "Designator": "0x55d5e7560c10-Designator" }, { - "id": "0x55876b01f780-Designator", + "id": "0x55d5e7560c10-Designator", "variantKey": "DataRef", - "DataRef": "0x55876b01f790-DataRef" + "DataRef": "0x55d5e7560c20-DataRef" }, { - "id": "0x55876b01f790-DataRef", + "id": "0x55d5e7560c20-DataRef", "variantKey": "Name", - "Name": "0x55876b01f790-Name" + "Name": "0x55d5e7560c20-Name" }, { - "id": "0x55876b01f790-Name", + "id": "0x55d5e7560c20-Name", "source": "i" }, { - "id": "0x55876b021550-Expr", + "id": "0x55d5e75629e0-Expr", "variantKey": "Add", - "Add": "0x55876b021570-Add" + "Add": "0x55d5e7562a00-Add" }, { - "id": "0x55876b021570-Add", - "left": "0x55876b0213f0-Expr", - "right": "0x55876b021310-Expr", + "id": "0x55d5e7562a00-Add", + "left": "0x55d5e7562880-Expr", + "right": "0x55d5e75627a0-Expr", "op": "ADD" }, { - "id": "0x55876b0213f0-Expr", + "id": "0x55d5e7562880-Expr", "variantKey": "Subtract", - "Subtract": "0x55876b021410-Subtract" + "Subtract": "0x55d5e75628a0-Subtract" }, { - "id": "0x55876b021410-Subtract", - "left": "0x55876b021010-Expr", - "right": "0x55876b020f30-Expr", + "id": "0x55d5e75628a0-Subtract", + "left": "0x55d5e75624a0-Expr", + "right": "0x55d5e75623c0-Expr", "op": "SUBTRACT" }, { - "id": "0x55876b021010-Expr", + "id": "0x55d5e75624a0-Expr", "variantKey": "Add", - "Add": "0x55876b021030-Add" + "Add": "0x55d5e75624c0-Add" }, { - "id": "0x55876b021030-Add", - "left": "0x55876b0203d0-Expr", - "right": "0x55876b0202f0-Expr", + "id": "0x55d5e75624c0-Add", + "left": "0x55d5e7561860-Expr", + "right": "0x55d5e7561780-Expr", "op": "ADD" }, { - "id": "0x55876b0203d0-Expr", + "id": "0x55d5e7561860-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55876b0203f0-LiteralConstant" + "LiteralConstant": "0x55d5e7561880-LiteralConstant" }, { - "id": "0x55876b0203f0-LiteralConstant", + "id": "0x55d5e7561880-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55876b0203f0-IntLiteralConstant" + "IntLiteralConstant": "0x55d5e7561880-IntLiteralConstant" }, { - "id": "0x55876b0203f0-IntLiteralConstant", + "id": "0x55d5e7561880-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55876b0202f0-Expr", + "id": "0x55d5e7561780-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55876b020310-LiteralConstant" + "LiteralConstant": "0x55d5e75617a0-LiteralConstant" }, { - "id": "0x55876b020310-LiteralConstant", + "id": "0x55d5e75617a0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55876b020310-IntLiteralConstant" + "IntLiteralConstant": "0x55d5e75617a0-IntLiteralConstant" }, { - "id": "0x55876b020310-IntLiteralConstant", + "id": "0x55d5e75617a0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55876b020f30-Expr", + "id": "0x55d5e75623c0-Expr", "variantKey": "Divide", - "Divide": "0x55876b020f50-Divide" + "Divide": "0x55d5e75623e0-Divide" }, { - "id": "0x55876b020f50-Divide", - "left": "0x55876b020e50-Expr", - "right": "0x55876b020d70-Expr", + "id": "0x55d5e75623e0-Divide", + "left": "0x55d5e75622e0-Expr", + "right": "0x55d5e7562200-Expr", "op": "DIVIDE" }, { - "id": "0x55876b020e50-Expr", + "id": "0x55d5e75622e0-Expr", "variantKey": "Multiply", - "Multiply": "0x55876b020e70-Multiply" + "Multiply": "0x55d5e7562300-Multiply" }, { - "id": "0x55876b020e70-Multiply", - "left": "0x55876b020780-Expr", - "right": "0x55876b0206a0-Expr", + "id": "0x55d5e7562300-Multiply", + "left": "0x55d5e7561c10-Expr", + "right": "0x55d5e7561b30-Expr", "op": "MULTIPLY" }, { - "id": "0x55876b020780-Expr", + "id": "0x55d5e7561c10-Expr", "variantKey": "Designator", - "Designator": "0x55876b020570-Designator" + "Designator": "0x55d5e7561a00-Designator" }, { - "id": "0x55876b020570-Designator", + "id": "0x55d5e7561a00-Designator", "variantKey": "DataRef", - "DataRef": "0x55876b020580-DataRef" + "DataRef": "0x55d5e7561a10-DataRef" }, { - "id": "0x55876b020580-DataRef", + "id": "0x55d5e7561a10-DataRef", "variantKey": "Name", - "Name": "0x55876b020580-Name" + "Name": "0x55d5e7561a10-Name" }, { - "id": "0x55876b020580-Name", + "id": "0x55d5e7561a10-Name", "source": "b" }, { - "id": "0x55876b0206a0-Expr", + "id": "0x55d5e7561b30-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55876b0206c0-LiteralConstant" + "LiteralConstant": "0x55d5e7561b50-LiteralConstant" }, { - "id": "0x55876b0206c0-LiteralConstant", + "id": "0x55d5e7561b50-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55876b0206c0-IntLiteralConstant" + "IntLiteralConstant": "0x55d5e7561b50-IntLiteralConstant" }, { - "id": "0x55876b0206c0-IntLiteralConstant", + "id": "0x55d5e7561b50-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x55876b020d70-Expr", + "id": "0x55d5e7562200-Expr", "variantKey": "Designator", - "Designator": "0x55876b020ca0-Designator" + "Designator": "0x55d5e7562130-Designator" }, { - "id": "0x55876b020ca0-Designator", + "id": "0x55d5e7562130-Designator", "variantKey": "DataRef", - "DataRef": "0x55876b020cb0-DataRef" + "DataRef": "0x55d5e7562140-DataRef" }, { - "id": "0x55876b020cb0-DataRef", + "id": "0x55d5e7562140-DataRef", "variantKey": "Name", - "Name": "0x55876b020cb0-Name" + "Name": "0x55d5e7562140-Name" }, { - "id": "0x55876b020cb0-Name", + "id": "0x55d5e7562140-Name", "source": "a" }, { - "id": "0x55876b021310-Expr", + "id": "0x55d5e75627a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55876b021330-LiteralConstant" + "LiteralConstant": "0x55d5e75627c0-LiteralConstant" }, { - "id": "0x55876b021330-LiteralConstant", + "id": "0x55d5e75627c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55876b021330-IntLiteralConstant" + "IntLiteralConstant": "0x55d5e75627c0-IntLiteralConstant" }, { - "id": "0x55876b021330-IntLiteralConstant", + "id": "0x55d5e75627c0-IntLiteralConstant", "CharBlock": "7" }, { - "id": "0x55876b024820-Statement", - "statement": "0x55876b024830-EndProgramStmt", + "id": "0x55d5e7570da0-Statement", + "statement": "0x55d5e7570db0-EndProgramStmt", "source": "end program TEST_EXPRS" }, { - "id": "0x55876b024830-EndProgramStmt", - "Name": "0x55876b024830-Name" + "id": "0x55d5e7570db0-EndProgramStmt", + "Name": "0x55d5e7570db0-Name" }, { - "id": "0x55876b024830-Name", + "id": "0x55d5e7570db0-Name", "source": "TEST_EXPRS" } ], + "comments": [], "enums": { "Fortran::common::CUDADataAttr": [ "Constant", From 38a3109ac4488902e25e82192b429e96ef981f2f Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 24 Jul 2026 19:36:47 +0100 Subject: [PATCH 117/260] Regenerate dump --- .../fortran/parser/binary_operator.json | 1388 +++++++++-------- 1 file changed, 697 insertions(+), 691 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/binary_operator.json b/FortranParser/resources-test/fortran/parser/binary_operator.json index 2db36b6a..1caf8b43 100644 --- a/FortranParser/resources-test/fortran/parser/binary_operator.json +++ b/FortranParser/resources-test/fortran/parser/binary_operator.json @@ -2,1712 +2,1718 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x55d5e7533f00-Program", + "id": "0x55e0a3522f00-Program", "ProgramUnit": [ - "0x55d5e7571810-ProgramUnit" + "0x55e0a3560810-ProgramUnit" ] }, { - "id": "0x55d5e7571810-ProgramUnit", + "id": "0x55e0a3560810-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x55d5e7570da0-MainProgram" + "MainProgram": "0x55e0a355fda0-MainProgram" }, { - "id": "0x55d5e7570da0-MainProgram", - "Statement": "0x55d5e7570ee8-Statement", - "SpecificationPart": "0x55d5e7570e40-SpecificationPart", - "ExecutionPart": "0x55d5e7570e28-ExecutionPart", - "Statement": "0x55d5e7570da0-Statement" + "id": "0x55e0a355fda0-MainProgram", + "Statement": "0x55e0a355fee8-Statement", + "SpecificationPart": "0x55e0a355fe40-SpecificationPart", + "ExecutionPart": "0x55e0a355fe28-ExecutionPart", + "Statement": "0x55e0a355fda0-Statement" }, { - "id": "0x55d5e7570ee8-Statement", - "statement": "0x55d5e7570ef8-ProgramStmt", + "id": "0x55e0a355fee8-Statement", + "statement": "0x55e0a355fef8-ProgramStmt", "source": "program TEST_EXPRS" }, { - "id": "0x55d5e7570ef8-ProgramStmt", - "Name": "0x55d5e7570ef8-Name" + "id": "0x55e0a355fef8-ProgramStmt", + "Name": "0x55e0a355fef8-Name" }, { - "id": "0x55d5e7570ef8-Name", + "id": "0x55e0a355fef8-Name", "source": "TEST_EXPRS" }, { - "id": "0x55d5e7570e40-SpecificationPart", - "ImplicitPart": "0x55d5e7570e58-ImplicitPart", + "id": "0x55e0a355fe40-SpecificationPart", + "ImplicitPart": "0x55e0a355fe58-ImplicitPart", "DeclarationConstruct": [ - "0x55d5e7540da0-DeclarationConstruct", - "0x55d5e756f160-DeclarationConstruct" + "0x55e0a352fda0-DeclarationConstruct", + "0x55e0a355e160-DeclarationConstruct" ] }, { - "id": "0x55d5e7570e58-ImplicitPart" + "id": "0x55e0a355fe58-ImplicitPart" }, { - "id": "0x55d5e7540da0-DeclarationConstruct", + "id": "0x55e0a352fda0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55d5e7540da0-SpecificationConstruct" + "SpecificationConstruct": "0x55e0a352fda0-SpecificationConstruct" }, { - "id": "0x55d5e7540da0-SpecificationConstruct", + "id": "0x55e0a352fda0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55d5e7540da0-Statement" + "Statement": "0x55e0a352fda0-Statement" }, { - "id": "0x55d5e7540da0-Statement", - "statement": "0x55d5e756e3a0-TypeDeclarationStmt", + "id": "0x55e0a352fda0-Statement", + "statement": "0x55e0a355d3a0-TypeDeclarationStmt", "source": "logical :: l, l1 = .true., l2 = .false." }, { - "id": "0x55d5e756e3a0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55d5e756e3d0-DeclarationTypeSpec", + "id": "0x55e0a355d3a0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e0a355d3d0-DeclarationTypeSpec", "EntityDecl": [ - "0x55d5e756ea80-EntityDecl", - "0x55d5e756e590-EntityDecl", - "0x55d5e756e990-EntityDecl" + "0x55e0a355da80-EntityDecl", + "0x55e0a355d590-EntityDecl", + "0x55e0a355d990-EntityDecl" ] }, { - "id": "0x55d5e756e3d0-DeclarationTypeSpec", + "id": "0x55e0a355d3d0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55d5e756e3d0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55e0a355d3d0-IntrinsicTypeSpec" }, { - "id": "0x55d5e756e3d0-IntrinsicTypeSpec", + "id": "0x55e0a355d3d0-IntrinsicTypeSpec", "variantKey": "Logical", - "Logical": "0x55d5e756e3d0-Logical" + "Logical": "0x55e0a355d3d0-Logical" }, { - "id": "0x55d5e756e3d0-Logical" + "id": "0x55e0a355d3d0-Logical" }, { - "id": "0x55d5e756ea80-EntityDecl", - "Name": "0x55d5e756eb38-Name" + "id": "0x55e0a355da80-EntityDecl", + "Name": "0x55e0a355db38-Name" }, { - "id": "0x55d5e756eb38-Name", + "id": "0x55e0a355db38-Name", "source": "l" }, { - "id": "0x55d5e756e590-EntityDecl", - "Name": "0x55d5e756e648-Name", - "Initialization": "0x55d5e756e590-Initialization" + "id": "0x55e0a355d590-EntityDecl", + "Name": "0x55e0a355d648-Name", + "Initialization": "0x55e0a355d590-Initialization" }, { - "id": "0x55d5e756e648-Name", + "id": "0x55e0a355d648-Name", "source": "l1" }, { - "id": "0x55d5e756e590-Initialization", + "id": "0x55e0a355d590-Initialization", "variantKey": "Expr", - "Expr": "0x55d5e74d3790-Expr" + "Expr": "0x55e0a34c2790-Expr" }, { - "id": "0x55d5e74d3790-Expr", + "id": "0x55e0a34c2790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d5e74d37b0-LiteralConstant" + "LiteralConstant": "0x55e0a34c27b0-LiteralConstant" }, { - "id": "0x55d5e74d37b0-LiteralConstant", + "id": "0x55e0a34c27b0-LiteralConstant", "variantKey": "LogicalLiteralConstant", - "LogicalLiteralConstant": "0x55d5e74d37b0-LogicalLiteralConstant" + "LogicalLiteralConstant": "0x55e0a34c27b0-LogicalLiteralConstant" }, { - "id": "0x55d5e74d37b0-LogicalLiteralConstant", + "id": "0x55e0a34c27b0-LogicalLiteralConstant", "bool": "1" }, { - "id": "0x55d5e756e990-EntityDecl", - "Name": "0x55d5e756ea48-Name", - "Initialization": "0x55d5e756e990-Initialization" + "id": "0x55e0a355d990-EntityDecl", + "Name": "0x55e0a355da48-Name", + "Initialization": "0x55e0a355d990-Initialization" }, { - "id": "0x55d5e756ea48-Name", + "id": "0x55e0a355da48-Name", "source": "l2" }, { - "id": "0x55d5e756e990-Initialization", + "id": "0x55e0a355d990-Initialization", "variantKey": "Expr", - "Expr": "0x55d5e756e8a0-Expr" + "Expr": "0x55e0a355d8a0-Expr" }, { - "id": "0x55d5e756e8a0-Expr", + "id": "0x55e0a355d8a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d5e756e8c0-LiteralConstant" + "LiteralConstant": "0x55e0a355d8c0-LiteralConstant" }, { - "id": "0x55d5e756e8c0-LiteralConstant", + "id": "0x55e0a355d8c0-LiteralConstant", "variantKey": "LogicalLiteralConstant", - "LogicalLiteralConstant": "0x55d5e756e8c0-LogicalLiteralConstant" + "LogicalLiteralConstant": "0x55e0a355d8c0-LogicalLiteralConstant" }, { - "id": "0x55d5e756e8c0-LogicalLiteralConstant", + "id": "0x55e0a355d8c0-LogicalLiteralConstant", "bool": "0" }, { - "id": "0x55d5e756f160-DeclarationConstruct", + "id": "0x55e0a355e160-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55d5e756f160-SpecificationConstruct" + "SpecificationConstruct": "0x55e0a355e160-SpecificationConstruct" }, { - "id": "0x55d5e756f160-SpecificationConstruct", + "id": "0x55e0a355e160-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55d5e756f160-Statement" + "Statement": "0x55e0a355e160-Statement" }, { - "id": "0x55d5e756f160-Statement", - "statement": "0x55d5e756e420-TypeDeclarationStmt", + "id": "0x55e0a355e160-Statement", + "statement": "0x55e0a355d420-TypeDeclarationStmt", "source": "integer :: i, a = 1, b = 1" }, { - "id": "0x55d5e756e420-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55d5e756e450-DeclarationTypeSpec", + "id": "0x55e0a355d420-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e0a355d450-DeclarationTypeSpec", "EntityDecl": [ - "0x55d5e756f070-EntityDecl", - "0x55d5e756edb0-EntityDecl", - "0x55d5e756ef80-EntityDecl" + "0x55e0a355e070-EntityDecl", + "0x55e0a355ddb0-EntityDecl", + "0x55e0a355df80-EntityDecl" ] }, { - "id": "0x55d5e756e450-DeclarationTypeSpec", + "id": "0x55e0a355d450-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55d5e756e450-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55e0a355d450-IntrinsicTypeSpec" }, { - "id": "0x55d5e756e450-IntrinsicTypeSpec", + "id": "0x55e0a355d450-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55d5e756e450-IntegerTypeSpec" + "IntegerTypeSpec": "0x55e0a355d450-IntegerTypeSpec" }, { - "id": "0x55d5e756e450-IntegerTypeSpec" + "id": "0x55e0a355d450-IntegerTypeSpec" }, { - "id": "0x55d5e756f070-EntityDecl", - "Name": "0x55d5e756f128-Name" + "id": "0x55e0a355e070-EntityDecl", + "Name": "0x55e0a355e128-Name" }, { - "id": "0x55d5e756f128-Name", + "id": "0x55e0a355e128-Name", "source": "i" }, { - "id": "0x55d5e756edb0-EntityDecl", - "Name": "0x55d5e756ee68-Name", - "Initialization": "0x55d5e756edb0-Initialization" + "id": "0x55e0a355ddb0-EntityDecl", + "Name": "0x55e0a355de68-Name", + "Initialization": "0x55e0a355ddb0-Initialization" }, { - "id": "0x55d5e756ee68-Name", + "id": "0x55e0a355de68-Name", "source": "a" }, { - "id": "0x55d5e756edb0-Initialization", + "id": "0x55e0a355ddb0-Initialization", "variantKey": "Expr", - "Expr": "0x55d5e756ecc0-Expr" + "Expr": "0x55e0a355dcc0-Expr" }, { - "id": "0x55d5e756ecc0-Expr", + "id": "0x55e0a355dcc0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d5e756ece0-LiteralConstant" + "LiteralConstant": "0x55e0a355dce0-LiteralConstant" }, { - "id": "0x55d5e756ece0-LiteralConstant", + "id": "0x55e0a355dce0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55d5e756ece0-IntLiteralConstant" + "IntLiteralConstant": "0x55e0a355dce0-IntLiteralConstant" }, { - "id": "0x55d5e756ece0-IntLiteralConstant", + "id": "0x55e0a355dce0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55d5e756ef80-EntityDecl", - "Name": "0x55d5e756f038-Name", - "Initialization": "0x55d5e756ef80-Initialization" + "id": "0x55e0a355df80-EntityDecl", + "Name": "0x55e0a355e038-Name", + "Initialization": "0x55e0a355df80-Initialization" }, { - "id": "0x55d5e756f038-Name", + "id": "0x55e0a355e038-Name", "source": "b" }, { - "id": "0x55d5e756ef80-Initialization", + "id": "0x55e0a355df80-Initialization", "variantKey": "Expr", - "Expr": "0x55d5e756ee90-Expr" + "Expr": "0x55e0a355de90-Expr" }, { - "id": "0x55d5e756ee90-Expr", + "id": "0x55e0a355de90-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d5e756eeb0-LiteralConstant" + "LiteralConstant": "0x55e0a355deb0-LiteralConstant" }, { - "id": "0x55d5e756eeb0-LiteralConstant", + "id": "0x55e0a355deb0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55d5e756eeb0-IntLiteralConstant" + "IntLiteralConstant": "0x55e0a355deb0-IntLiteralConstant" }, { - "id": "0x55d5e756eeb0-IntLiteralConstant", + "id": "0x55e0a355deb0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55d5e7570e28-ExecutionPart", + "id": "0x55e0a355fe28-ExecutionPart", "ExecutionPartConstruct": [ - "0x55d5e75705a0-ExecutionPartConstruct", - "0x55d5e756fb00-ExecutionPartConstruct", - "0x55d5e755ea50-ExecutionPartConstruct", - "0x55d5e755ed80-ExecutionPartConstruct", - "0x55d5e755f300-ExecutionPartConstruct", - "0x55d5e755f630-ExecutionPartConstruct", - "0x55d5e755fae0-ExecutionPartConstruct", - "0x55d5e755ff30-ExecutionPartConstruct", - "0x55d5e7560380-ExecutionPartConstruct", - "0x55d5e75607d0-ExecutionPartConstruct", - "0x55d5e7560b60-ExecutionPartConstruct", - "0x55d5e7561010-ExecutionPartConstruct", - "0x55d5e7560c80-ExecutionPartConstruct", - "0x55d5e7561730-ExecutionPartConstruct", - "0x55d5e7562b60-ExecutionPartConstruct" + "0x55e0a355f5a0-ExecutionPartConstruct", + "0x55e0a355eb00-ExecutionPartConstruct", + "0x55e0a354da50-ExecutionPartConstruct", + "0x55e0a354dd80-ExecutionPartConstruct", + "0x55e0a354e300-ExecutionPartConstruct", + "0x55e0a354e630-ExecutionPartConstruct", + "0x55e0a354eae0-ExecutionPartConstruct", + "0x55e0a354ef30-ExecutionPartConstruct", + "0x55e0a354f380-ExecutionPartConstruct", + "0x55e0a354f7d0-ExecutionPartConstruct", + "0x55e0a354fb60-ExecutionPartConstruct", + "0x55e0a3550010-ExecutionPartConstruct", + "0x55e0a354fc80-ExecutionPartConstruct", + "0x55e0a3550730-ExecutionPartConstruct", + "0x55e0a3551b60-ExecutionPartConstruct" ] }, { - "id": "0x55d5e7570e28-ExecutionPartConstruct" + "id": "0x55e0a355fe28-ExecutionPartConstruct" }, { - "id": "0x55d5e75705a0-ExecutionPartConstruct", + "id": "0x55e0a355f5a0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55d5e75705a0-ExecutableConstruct" + "ExecutableConstruct": "0x55e0a355f5a0-ExecutableConstruct" }, { - "id": "0x55d5e75705a0-ExecutableConstruct", + "id": "0x55e0a355f5a0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55d5e75705a0-Statement" + "Statement": "0x55e0a355f5a0-Statement" }, { - "id": "0x55d5e75705a0-Statement", - "statement": "0x55d5e75705b0-ActionStmt", + "id": "0x55e0a355f5a0-Statement", + "statement": "0x55e0a355f5b0-ActionStmt", "source": "l = 0 < a" }, { - "id": "0x55d5e75705b0-ActionStmt", + "id": "0x55e0a355f5b0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55d5e7570950-AssignmentStmt" + "AssignmentStmt": "0x55e0a355f950-AssignmentStmt" }, { - "id": "0x55d5e7570950-AssignmentStmt", - "Variable": "0x55d5e7570a30-Variable", - "Expr": "0x55d5e7570960-Expr" + "id": "0x55e0a355f950-AssignmentStmt", + "Variable": "0x55e0a355fa30-Variable", + "Expr": "0x55e0a355f960-Expr" }, { - "id": "0x55d5e7570a30-Variable", + "id": "0x55e0a355fa30-Variable", "variantKey": "Designator", - "Designator": "0x55d5e7570670-Designator" + "Designator": "0x55e0a355f670-Designator" }, { - "id": "0x55d5e7570670-Designator", + "id": "0x55e0a355f670-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e7570680-DataRef" + "DataRef": "0x55e0a355f680-DataRef" }, { - "id": "0x55d5e7570680-DataRef", + "id": "0x55e0a355f680-DataRef", "variantKey": "Name", - "Name": "0x55d5e7570680-Name" + "Name": "0x55e0a355f680-Name" }, { - "id": "0x55d5e7570680-Name", + "id": "0x55e0a355f680-Name", "source": "l" }, { - "id": "0x55d5e7570960-Expr", + "id": "0x55e0a355f960-Expr", "variantKey": "LT", - "LT": "0x55d5e7570980-LT" + "LT": "0x55e0a355f980-LT" }, { - "id": "0x55d5e7570980-LT", - "left": "0x55d5e756f3b0-Expr", - "right": "0x55d5e756fe10-Expr", + "id": "0x55e0a355f980-LT", + "left": "0x55e0a355e3b0-Expr", + "right": "0x55e0a355ee10-Expr", "op": "LT" }, { - "id": "0x55d5e756f3b0-Expr", + "id": "0x55e0a355e3b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d5e756f3d0-LiteralConstant" + "LiteralConstant": "0x55e0a355e3d0-LiteralConstant" }, { - "id": "0x55d5e756f3d0-LiteralConstant", + "id": "0x55e0a355e3d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55d5e756f3d0-IntLiteralConstant" + "IntLiteralConstant": "0x55e0a355e3d0-IntLiteralConstant" }, { - "id": "0x55d5e756f3d0-IntLiteralConstant", + "id": "0x55e0a355e3d0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55d5e756fe10-Expr", + "id": "0x55e0a355ee10-Expr", "variantKey": "Designator", - "Designator": "0x55d5e756e260-Designator" + "Designator": "0x55e0a355d260-Designator" }, { - "id": "0x55d5e756e260-Designator", + "id": "0x55e0a355d260-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e756e270-DataRef" + "DataRef": "0x55e0a355d270-DataRef" }, { - "id": "0x55d5e756e270-DataRef", + "id": "0x55e0a355d270-DataRef", "variantKey": "Name", - "Name": "0x55d5e756e270-Name" + "Name": "0x55e0a355d270-Name" }, { - "id": "0x55d5e756e270-Name", + "id": "0x55e0a355d270-Name", "source": "a" }, { - "id": "0x55d5e756fb00-ExecutionPartConstruct", + "id": "0x55e0a355eb00-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55d5e756fb00-ExecutableConstruct" + "ExecutableConstruct": "0x55e0a355eb00-ExecutableConstruct" }, { - "id": "0x55d5e756fb00-ExecutableConstruct", + "id": "0x55e0a355eb00-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55d5e756fb00-Statement" + "Statement": "0x55e0a355eb00-Statement" }, { - "id": "0x55d5e756fb00-Statement", - "statement": "0x55d5e756fb10-ActionStmt", + "id": "0x55e0a355eb00-Statement", + "statement": "0x55e0a355eb10-ActionStmt", "source": "l = 2 <= 3" }, { - "id": "0x55d5e756fb10-ActionStmt", + "id": "0x55e0a355eb10-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55d5e756f970-AssignmentStmt" + "AssignmentStmt": "0x55e0a355e970-AssignmentStmt" }, { - "id": "0x55d5e756f970-AssignmentStmt", - "Variable": "0x55d5e756fa50-Variable", - "Expr": "0x55d5e756f980-Expr" + "id": "0x55e0a355e970-AssignmentStmt", + "Variable": "0x55e0a355ea50-Variable", + "Expr": "0x55e0a355e980-Expr" }, { - "id": "0x55d5e756fa50-Variable", + "id": "0x55e0a355ea50-Variable", "variantKey": "Designator", - "Designator": "0x55d5e75704d0-Designator" + "Designator": "0x55e0a355f4d0-Designator" }, { - "id": "0x55d5e75704d0-Designator", + "id": "0x55e0a355f4d0-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e75704e0-DataRef" + "DataRef": "0x55e0a355f4e0-DataRef" }, { - "id": "0x55d5e75704e0-DataRef", + "id": "0x55e0a355f4e0-DataRef", "variantKey": "Name", - "Name": "0x55d5e75704e0-Name" + "Name": "0x55e0a355f4e0-Name" }, { - "id": "0x55d5e75704e0-Name", + "id": "0x55e0a355f4e0-Name", "source": "l" }, { - "id": "0x55d5e756f980-Expr", + "id": "0x55e0a355e980-Expr", "variantKey": "LE", - "LE": "0x55d5e756f9a0-LE" + "LE": "0x55e0a355e9a0-LE" }, { - "id": "0x55d5e756f9a0-LE", - "left": "0x55d5e756f820-Expr", - "right": "0x55d5e756f6b0-Expr", + "id": "0x55e0a355e9a0-LE", + "left": "0x55e0a355e820-Expr", + "right": "0x55e0a355e6b0-Expr", "op": "LE" }, { - "id": "0x55d5e756f820-Expr", + "id": "0x55e0a355e820-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d5e756f840-LiteralConstant" + "LiteralConstant": "0x55e0a355e840-LiteralConstant" }, { - "id": "0x55d5e756f840-LiteralConstant", + "id": "0x55e0a355e840-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55d5e756f840-IntLiteralConstant" + "IntLiteralConstant": "0x55e0a355e840-IntLiteralConstant" }, { - "id": "0x55d5e756f840-IntLiteralConstant", + "id": "0x55e0a355e840-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x55d5e756f6b0-Expr", + "id": "0x55e0a355e6b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d5e756f6d0-LiteralConstant" + "LiteralConstant": "0x55e0a355e6d0-LiteralConstant" }, { - "id": "0x55d5e756f6d0-LiteralConstant", + "id": "0x55e0a355e6d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55d5e756f6d0-IntLiteralConstant" + "IntLiteralConstant": "0x55e0a355e6d0-IntLiteralConstant" }, { - "id": "0x55d5e756f6d0-IntLiteralConstant", + "id": "0x55e0a355e6d0-IntLiteralConstant", "CharBlock": "3" }, { - "id": "0x55d5e755ea50-ExecutionPartConstruct", + "id": "0x55e0a354da50-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55d5e755ea50-ExecutableConstruct" + "ExecutableConstruct": "0x55e0a354da50-ExecutableConstruct" }, { - "id": "0x55d5e755ea50-ExecutableConstruct", + "id": "0x55e0a354da50-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55d5e755ea50-Statement" + "Statement": "0x55e0a354da50-Statement" }, { - "id": "0x55d5e755ea50-Statement", - "statement": "0x55d5e755ea60-ActionStmt", + "id": "0x55e0a354da50-Statement", + "statement": "0x55e0a354da60-ActionStmt", "source": "l = b > 5" }, { - "id": "0x55d5e755ea60-ActionStmt", + "id": "0x55e0a354da60-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55d5e755e930-AssignmentStmt" + "AssignmentStmt": "0x55e0a354d930-AssignmentStmt" }, { - "id": "0x55d5e755e930-AssignmentStmt", - "Variable": "0x55d5e755ea10-Variable", - "Expr": "0x55d5e755e940-Expr" + "id": "0x55e0a354d930-AssignmentStmt", + "Variable": "0x55e0a354da10-Variable", + "Expr": "0x55e0a354d940-Expr" }, { - "id": "0x55d5e755ea10-Variable", + "id": "0x55e0a354da10-Variable", "variantKey": "Designator", - "Designator": "0x55d5e7570530-Designator" + "Designator": "0x55e0a355f530-Designator" }, { - "id": "0x55d5e7570530-Designator", + "id": "0x55e0a355f530-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e7570540-DataRef" + "DataRef": "0x55e0a355f540-DataRef" }, { - "id": "0x55d5e7570540-DataRef", + "id": "0x55e0a355f540-DataRef", "variantKey": "Name", - "Name": "0x55d5e7570540-Name" + "Name": "0x55e0a355f540-Name" }, { - "id": "0x55d5e7570540-Name", + "id": "0x55e0a355f540-Name", "source": "l" }, { - "id": "0x55d5e755e940-Expr", + "id": "0x55e0a354d940-Expr", "variantKey": "GT", - "GT": "0x55d5e755e960-GT" + "GT": "0x55e0a354d960-GT" }, { - "id": "0x55d5e755e960-GT", - "left": "0x55d5e755e850-Expr", - "right": "0x55d5e755e770-Expr", + "id": "0x55e0a354d960-GT", + "left": "0x55e0a354d850-Expr", + "right": "0x55e0a354d770-Expr", "op": "GT" }, { - "id": "0x55d5e755e850-Expr", + "id": "0x55e0a354d850-Expr", "variantKey": "Designator", - "Designator": "0x55d5e756fb50-Designator" + "Designator": "0x55e0a355eb50-Designator" }, { - "id": "0x55d5e756fb50-Designator", + "id": "0x55e0a355eb50-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e756fb60-DataRef" + "DataRef": "0x55e0a355eb60-DataRef" }, { - "id": "0x55d5e756fb60-DataRef", + "id": "0x55e0a355eb60-DataRef", "variantKey": "Name", - "Name": "0x55d5e756fb60-Name" + "Name": "0x55e0a355eb60-Name" }, { - "id": "0x55d5e756fb60-Name", + "id": "0x55e0a355eb60-Name", "source": "b" }, { - "id": "0x55d5e755e770-Expr", + "id": "0x55e0a354d770-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d5e755e790-LiteralConstant" + "LiteralConstant": "0x55e0a354d790-LiteralConstant" }, { - "id": "0x55d5e755e790-LiteralConstant", + "id": "0x55e0a354d790-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55d5e755e790-IntLiteralConstant" + "IntLiteralConstant": "0x55e0a354d790-IntLiteralConstant" }, { - "id": "0x55d5e755e790-IntLiteralConstant", + "id": "0x55e0a354d790-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x55d5e755ed80-ExecutionPartConstruct", + "id": "0x55e0a354dd80-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55d5e755ed80-ExecutableConstruct" + "ExecutableConstruct": "0x55e0a354dd80-ExecutableConstruct" }, { - "id": "0x55d5e755ed80-ExecutableConstruct", + "id": "0x55e0a354dd80-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55d5e755ed80-Statement" + "Statement": "0x55e0a354dd80-Statement" }, { - "id": "0x55d5e755ed80-Statement", - "statement": "0x55d5e755ed90-ActionStmt", + "id": "0x55e0a354dd80-Statement", + "statement": "0x55e0a354dd90-ActionStmt", "source": "l = 6 >= 7" }, { - "id": "0x55d5e755ed90-ActionStmt", + "id": "0x55e0a354dd90-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55d5e755ec60-AssignmentStmt" + "AssignmentStmt": "0x55e0a354dc60-AssignmentStmt" }, { - "id": "0x55d5e755ec60-AssignmentStmt", - "Variable": "0x55d5e755ed40-Variable", - "Expr": "0x55d5e755ec70-Expr" + "id": "0x55e0a354dc60-AssignmentStmt", + "Variable": "0x55e0a354dd40-Variable", + "Expr": "0x55e0a354dc70-Expr" }, { - "id": "0x55d5e755ed40-Variable", + "id": "0x55e0a354dd40-Variable", "variantKey": "Designator", - "Designator": "0x55d5e7541100-Designator" + "Designator": "0x55e0a3530100-Designator" }, { - "id": "0x55d5e7541100-Designator", + "id": "0x55e0a3530100-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e7541110-DataRef" + "DataRef": "0x55e0a3530110-DataRef" }, { - "id": "0x55d5e7541110-DataRef", + "id": "0x55e0a3530110-DataRef", "variantKey": "Name", - "Name": "0x55d5e7541110-Name" + "Name": "0x55e0a3530110-Name" }, { - "id": "0x55d5e7541110-Name", + "id": "0x55e0a3530110-Name", "source": "l" }, { - "id": "0x55d5e755ec70-Expr", + "id": "0x55e0a354dc70-Expr", "variantKey": "GE", - "GE": "0x55d5e755ec90-GE" + "GE": "0x55e0a354dc90-GE" }, { - "id": "0x55d5e755ec90-GE", - "left": "0x55d5e755eb80-Expr", - "right": "0x55d5e755eaa0-Expr", + "id": "0x55e0a354dc90-GE", + "left": "0x55e0a354db80-Expr", + "right": "0x55e0a354daa0-Expr", "op": "GE" }, { - "id": "0x55d5e755eb80-Expr", + "id": "0x55e0a354db80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d5e755eba0-LiteralConstant" + "LiteralConstant": "0x55e0a354dba0-LiteralConstant" }, { - "id": "0x55d5e755eba0-LiteralConstant", + "id": "0x55e0a354dba0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55d5e755eba0-IntLiteralConstant" + "IntLiteralConstant": "0x55e0a354dba0-IntLiteralConstant" }, { - "id": "0x55d5e755eba0-IntLiteralConstant", + "id": "0x55e0a354dba0-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x55d5e755eaa0-Expr", + "id": "0x55e0a354daa0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d5e755eac0-LiteralConstant" + "LiteralConstant": "0x55e0a354dac0-LiteralConstant" }, { - "id": "0x55d5e755eac0-LiteralConstant", + "id": "0x55e0a354dac0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55d5e755eac0-IntLiteralConstant" + "IntLiteralConstant": "0x55e0a354dac0-IntLiteralConstant" }, { - "id": "0x55d5e755eac0-IntLiteralConstant", + "id": "0x55e0a354dac0-IntLiteralConstant", "CharBlock": "7" }, { - "id": "0x55d5e755f300-ExecutionPartConstruct", + "id": "0x55e0a354e300-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55d5e755f300-ExecutableConstruct" + "ExecutableConstruct": "0x55e0a354e300-ExecutableConstruct" }, { - "id": "0x55d5e755f300-ExecutableConstruct", + "id": "0x55e0a354e300-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55d5e755f300-Statement" + "Statement": "0x55e0a354e300-Statement" }, { - "id": "0x55d5e755f300-Statement", - "statement": "0x55d5e755f310-ActionStmt", + "id": "0x55e0a354e300-Statement", + "statement": "0x55e0a354e310-ActionStmt", "source": "l = a == b" }, { - "id": "0x55d5e755f310-ActionStmt", + "id": "0x55e0a354e310-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55d5e755f170-AssignmentStmt" + "AssignmentStmt": "0x55e0a354e170-AssignmentStmt" }, { - "id": "0x55d5e755f170-AssignmentStmt", - "Variable": "0x55d5e755f250-Variable", - "Expr": "0x55d5e755f180-Expr" + "id": "0x55e0a354e170-AssignmentStmt", + "Variable": "0x55e0a354e250-Variable", + "Expr": "0x55e0a354e180-Expr" }, { - "id": "0x55d5e755f250-Variable", + "id": "0x55e0a354e250-Variable", "variantKey": "Designator", - "Designator": "0x55d5e756f570-Designator" + "Designator": "0x55e0a355e570-Designator" }, { - "id": "0x55d5e756f570-Designator", + "id": "0x55e0a355e570-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e756f580-DataRef" + "DataRef": "0x55e0a355e580-DataRef" }, { - "id": "0x55d5e756f580-DataRef", + "id": "0x55e0a355e580-DataRef", "variantKey": "Name", - "Name": "0x55d5e756f580-Name" + "Name": "0x55e0a355e580-Name" }, { - "id": "0x55d5e756f580-Name", + "id": "0x55e0a355e580-Name", "source": "l" }, { - "id": "0x55d5e755f180-Expr", + "id": "0x55e0a354e180-Expr", "variantKey": "EQ", - "EQ": "0x55d5e755f1a0-EQ" + "EQ": "0x55e0a354e1a0-EQ" }, { - "id": "0x55d5e755f1a0-EQ", - "left": "0x55d5e755f090-Expr", - "right": "0x55d5e755efb0-Expr", + "id": "0x55e0a354e1a0-EQ", + "left": "0x55e0a354e090-Expr", + "right": "0x55e0a354dfb0-Expr", "op": "EQ" }, { - "id": "0x55d5e755f090-Expr", + "id": "0x55e0a354e090-Expr", "variantKey": "Designator", - "Designator": "0x55d5e755ee30-Designator" + "Designator": "0x55e0a354de30-Designator" }, { - "id": "0x55d5e755ee30-Designator", + "id": "0x55e0a354de30-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e755ee40-DataRef" + "DataRef": "0x55e0a354de40-DataRef" }, { - "id": "0x55d5e755ee40-DataRef", + "id": "0x55e0a354de40-DataRef", "variantKey": "Name", - "Name": "0x55d5e755ee40-Name" + "Name": "0x55e0a354de40-Name" }, { - "id": "0x55d5e755ee40-Name", + "id": "0x55e0a354de40-Name", "source": "a" }, { - "id": "0x55d5e755efb0-Expr", + "id": "0x55e0a354dfb0-Expr", "variantKey": "Designator", - "Designator": "0x55d5e755ef50-Designator" + "Designator": "0x55e0a354df50-Designator" }, { - "id": "0x55d5e755ef50-Designator", + "id": "0x55e0a354df50-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e755ef60-DataRef" + "DataRef": "0x55e0a354df60-DataRef" }, { - "id": "0x55d5e755ef60-DataRef", + "id": "0x55e0a354df60-DataRef", "variantKey": "Name", - "Name": "0x55d5e755ef60-Name" + "Name": "0x55e0a354df60-Name" }, { - "id": "0x55d5e755ef60-Name", + "id": "0x55e0a354df60-Name", "source": "b" }, { - "id": "0x55d5e755f630-ExecutionPartConstruct", + "id": "0x55e0a354e630-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55d5e755f630-ExecutableConstruct" + "ExecutableConstruct": "0x55e0a354e630-ExecutableConstruct" }, { - "id": "0x55d5e755f630-ExecutableConstruct", + "id": "0x55e0a354e630-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55d5e755f630-Statement" + "Statement": "0x55e0a354e630-Statement" }, { - "id": "0x55d5e755f630-Statement", - "statement": "0x55d5e755f640-ActionStmt", + "id": "0x55e0a354e630-Statement", + "statement": "0x55e0a354e640-ActionStmt", "source": "l = 0 /= 1" }, { - "id": "0x55d5e755f640-ActionStmt", + "id": "0x55e0a354e640-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55d5e755f510-AssignmentStmt" + "AssignmentStmt": "0x55e0a354e510-AssignmentStmt" }, { - "id": "0x55d5e755f510-AssignmentStmt", - "Variable": "0x55d5e755f5f0-Variable", - "Expr": "0x55d5e755f520-Expr" + "id": "0x55e0a354e510-AssignmentStmt", + "Variable": "0x55e0a354e5f0-Variable", + "Expr": "0x55e0a354e520-Expr" }, { - "id": "0x55d5e755f5f0-Variable", + "id": "0x55e0a354e5f0-Variable", "variantKey": "Designator", - "Designator": "0x55d5e756fbb0-Designator" + "Designator": "0x55e0a355ebb0-Designator" }, { - "id": "0x55d5e756fbb0-Designator", + "id": "0x55e0a355ebb0-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e756fbc0-DataRef" + "DataRef": "0x55e0a355ebc0-DataRef" }, { - "id": "0x55d5e756fbc0-DataRef", + "id": "0x55e0a355ebc0-DataRef", "variantKey": "Name", - "Name": "0x55d5e756fbc0-Name" + "Name": "0x55e0a355ebc0-Name" }, { - "id": "0x55d5e756fbc0-Name", + "id": "0x55e0a355ebc0-Name", "source": "l" }, { - "id": "0x55d5e755f520-Expr", + "id": "0x55e0a354e520-Expr", "variantKey": "NE", - "NE": "0x55d5e755f540-NE" + "NE": "0x55e0a354e540-NE" }, { - "id": "0x55d5e755f540-NE", - "left": "0x55d5e755f430-Expr", - "right": "0x55d5e755f350-Expr", + "id": "0x55e0a354e540-NE", + "left": "0x55e0a354e430-Expr", + "right": "0x55e0a354e350-Expr", "op": "NE" }, { - "id": "0x55d5e755f430-Expr", + "id": "0x55e0a354e430-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d5e755f450-LiteralConstant" + "LiteralConstant": "0x55e0a354e450-LiteralConstant" }, { - "id": "0x55d5e755f450-LiteralConstant", + "id": "0x55e0a354e450-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55d5e755f450-IntLiteralConstant" + "IntLiteralConstant": "0x55e0a354e450-IntLiteralConstant" }, { - "id": "0x55d5e755f450-IntLiteralConstant", + "id": "0x55e0a354e450-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55d5e755f350-Expr", + "id": "0x55e0a354e350-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d5e755f370-LiteralConstant" + "LiteralConstant": "0x55e0a354e370-LiteralConstant" }, { - "id": "0x55d5e755f370-LiteralConstant", + "id": "0x55e0a354e370-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55d5e755f370-IntLiteralConstant" + "IntLiteralConstant": "0x55e0a354e370-IntLiteralConstant" }, { - "id": "0x55d5e755f370-IntLiteralConstant", + "id": "0x55e0a354e370-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55d5e755fae0-ExecutionPartConstruct", + "id": "0x55e0a354eae0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55d5e755fae0-ExecutableConstruct" + "ExecutableConstruct": "0x55e0a354eae0-ExecutableConstruct" }, { - "id": "0x55d5e755fae0-ExecutableConstruct", + "id": "0x55e0a354eae0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55d5e755fae0-Statement" + "Statement": "0x55e0a354eae0-Statement" }, { - "id": "0x55d5e755fae0-Statement", - "statement": "0x55d5e755faf0-ActionStmt", + "id": "0x55e0a354eae0-Statement", + "statement": "0x55e0a354eaf0-ActionStmt", "source": "l = l1 .and. l2" }, { - "id": "0x55d5e755faf0-ActionStmt", + "id": "0x55e0a354eaf0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55d5e755f9c0-AssignmentStmt" + "AssignmentStmt": "0x55e0a354e9c0-AssignmentStmt" }, { - "id": "0x55d5e755f9c0-AssignmentStmt", - "Variable": "0x55d5e755faa0-Variable", - "Expr": "0x55d5e755f9d0-Expr" + "id": "0x55e0a354e9c0-AssignmentStmt", + "Variable": "0x55e0a354eaa0-Variable", + "Expr": "0x55e0a354e9d0-Expr" }, { - "id": "0x55d5e755faa0-Variable", + "id": "0x55e0a354eaa0-Variable", "variantKey": "Designator", - "Designator": "0x55d5e755edd0-Designator" + "Designator": "0x55e0a354ddd0-Designator" }, { - "id": "0x55d5e755edd0-Designator", + "id": "0x55e0a354ddd0-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e755ede0-DataRef" + "DataRef": "0x55e0a354dde0-DataRef" }, { - "id": "0x55d5e755ede0-DataRef", + "id": "0x55e0a354dde0-DataRef", "variantKey": "Name", - "Name": "0x55d5e755ede0-Name" + "Name": "0x55e0a354dde0-Name" }, { - "id": "0x55d5e755ede0-Name", + "id": "0x55e0a354dde0-Name", "source": "l" }, { - "id": "0x55d5e755f9d0-Expr", + "id": "0x55e0a354e9d0-Expr", "variantKey": "AND", - "AND": "0x55d5e755f9f0-AND" + "AND": "0x55e0a354e9f0-AND" }, { - "id": "0x55d5e755f9f0-AND", - "left": "0x55d5e755f8e0-Expr", - "right": "0x55d5e755f800-Expr", + "id": "0x55e0a354e9f0-AND", + "left": "0x55e0a354e8e0-Expr", + "right": "0x55e0a354e800-Expr", "op": "AND" }, { - "id": "0x55d5e755f8e0-Expr", + "id": "0x55e0a354e8e0-Expr", "variantKey": "Designator", - "Designator": "0x55d5e755f680-Designator" + "Designator": "0x55e0a354e680-Designator" }, { - "id": "0x55d5e755f680-Designator", + "id": "0x55e0a354e680-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e755f690-DataRef" + "DataRef": "0x55e0a354e690-DataRef" }, { - "id": "0x55d5e755f690-DataRef", + "id": "0x55e0a354e690-DataRef", "variantKey": "Name", - "Name": "0x55d5e755f690-Name" + "Name": "0x55e0a354e690-Name" }, { - "id": "0x55d5e755f690-Name", + "id": "0x55e0a354e690-Name", "source": "l1" }, { - "id": "0x55d5e755f800-Expr", + "id": "0x55e0a354e800-Expr", "variantKey": "Designator", - "Designator": "0x55d5e755f7a0-Designator" + "Designator": "0x55e0a354e7a0-Designator" }, { - "id": "0x55d5e755f7a0-Designator", + "id": "0x55e0a354e7a0-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e755f7b0-DataRef" + "DataRef": "0x55e0a354e7b0-DataRef" }, { - "id": "0x55d5e755f7b0-DataRef", + "id": "0x55e0a354e7b0-DataRef", "variantKey": "Name", - "Name": "0x55d5e755f7b0-Name" + "Name": "0x55e0a354e7b0-Name" }, { - "id": "0x55d5e755f7b0-Name", + "id": "0x55e0a354e7b0-Name", "source": "l2" }, { - "id": "0x55d5e755ff30-ExecutionPartConstruct", + "id": "0x55e0a354ef30-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55d5e755ff30-ExecutableConstruct" + "ExecutableConstruct": "0x55e0a354ef30-ExecutableConstruct" }, { - "id": "0x55d5e755ff30-ExecutableConstruct", + "id": "0x55e0a354ef30-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55d5e755ff30-Statement" + "Statement": "0x55e0a354ef30-Statement" }, { - "id": "0x55d5e755ff30-Statement", - "statement": "0x55d5e755ff40-ActionStmt", + "id": "0x55e0a354ef30-Statement", + "statement": "0x55e0a354ef40-ActionStmt", "source": "l = l1 .or. l2" }, { - "id": "0x55d5e755ff40-ActionStmt", + "id": "0x55e0a354ef40-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55d5e755fe10-AssignmentStmt" + "AssignmentStmt": "0x55e0a354ee10-AssignmentStmt" }, { - "id": "0x55d5e755fe10-AssignmentStmt", - "Variable": "0x55d5e755fef0-Variable", - "Expr": "0x55d5e755fe20-Expr" + "id": "0x55e0a354ee10-AssignmentStmt", + "Variable": "0x55e0a354eef0-Variable", + "Expr": "0x55e0a354ee20-Expr" }, { - "id": "0x55d5e755fef0-Variable", + "id": "0x55e0a354eef0-Variable", "variantKey": "Designator", - "Designator": "0x55d5e755ee90-Designator" + "Designator": "0x55e0a354de90-Designator" }, { - "id": "0x55d5e755ee90-Designator", + "id": "0x55e0a354de90-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e755eea0-DataRef" + "DataRef": "0x55e0a354dea0-DataRef" }, { - "id": "0x55d5e755eea0-DataRef", + "id": "0x55e0a354dea0-DataRef", "variantKey": "Name", - "Name": "0x55d5e755eea0-Name" + "Name": "0x55e0a354dea0-Name" }, { - "id": "0x55d5e755eea0-Name", + "id": "0x55e0a354dea0-Name", "source": "l" }, { - "id": "0x55d5e755fe20-Expr", + "id": "0x55e0a354ee20-Expr", "variantKey": "OR", - "OR": "0x55d5e755fe40-OR" + "OR": "0x55e0a354ee40-OR" }, { - "id": "0x55d5e755fe40-OR", - "Expr": "0x55d5e755fc50-Expr" + "id": "0x55e0a354ee40-OR", + "left": "0x55e0a354ed30-Expr", + "right": "0x55e0a354ec50-Expr", + "op": "OR" }, { - "id": "0x55d5e755fd30-Expr", + "id": "0x55e0a354ed30-Expr", "variantKey": "Designator", - "Designator": "0x55d5e755f740-Designator" + "Designator": "0x55e0a354e740-Designator" }, { - "id": "0x55d5e755f740-Designator", + "id": "0x55e0a354e740-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e755f750-DataRef" + "DataRef": "0x55e0a354e750-DataRef" }, { - "id": "0x55d5e755f750-DataRef", + "id": "0x55e0a354e750-DataRef", "variantKey": "Name", - "Name": "0x55d5e755f750-Name" + "Name": "0x55e0a354e750-Name" }, { - "id": "0x55d5e755f750-Name", + "id": "0x55e0a354e750-Name", "source": "l1" }, { - "id": "0x55d5e755fc50-Expr", + "id": "0x55e0a354ec50-Expr", "variantKey": "Designator", - "Designator": "0x55d5e755fbf0-Designator" + "Designator": "0x55e0a354ebf0-Designator" }, { - "id": "0x55d5e755fbf0-Designator", + "id": "0x55e0a354ebf0-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e755fc00-DataRef" + "DataRef": "0x55e0a354ec00-DataRef" }, { - "id": "0x55d5e755fc00-DataRef", + "id": "0x55e0a354ec00-DataRef", "variantKey": "Name", - "Name": "0x55d5e755fc00-Name" + "Name": "0x55e0a354ec00-Name" }, { - "id": "0x55d5e755fc00-Name", + "id": "0x55e0a354ec00-Name", "source": "l2" }, { - "id": "0x55d5e7560380-ExecutionPartConstruct", + "id": "0x55e0a354f380-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55d5e7560380-ExecutableConstruct" + "ExecutableConstruct": "0x55e0a354f380-ExecutableConstruct" }, { - "id": "0x55d5e7560380-ExecutableConstruct", + "id": "0x55e0a354f380-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55d5e7560380-Statement" + "Statement": "0x55e0a354f380-Statement" }, { - "id": "0x55d5e7560380-Statement", - "statement": "0x55d5e7560390-ActionStmt", + "id": "0x55e0a354f380-Statement", + "statement": "0x55e0a354f390-ActionStmt", "source": "l = l1 .eqv. l2" }, { - "id": "0x55d5e7560390-ActionStmt", + "id": "0x55e0a354f390-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55d5e7560260-AssignmentStmt" + "AssignmentStmt": "0x55e0a354f260-AssignmentStmt" }, { - "id": "0x55d5e7560260-AssignmentStmt", - "Variable": "0x55d5e7560340-Variable", - "Expr": "0x55d5e7560270-Expr" + "id": "0x55e0a354f260-AssignmentStmt", + "Variable": "0x55e0a354f340-Variable", + "Expr": "0x55e0a354f270-Expr" }, { - "id": "0x55d5e7560340-Variable", + "id": "0x55e0a354f340-Variable", "variantKey": "Designator", - "Designator": "0x55d5e755eef0-Designator" + "Designator": "0x55e0a354def0-Designator" }, { - "id": "0x55d5e755eef0-Designator", + "id": "0x55e0a354def0-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e755ef00-DataRef" + "DataRef": "0x55e0a354df00-DataRef" }, { - "id": "0x55d5e755ef00-DataRef", + "id": "0x55e0a354df00-DataRef", "variantKey": "Name", - "Name": "0x55d5e755ef00-Name" + "Name": "0x55e0a354df00-Name" }, { - "id": "0x55d5e755ef00-Name", + "id": "0x55e0a354df00-Name", "source": "l" }, { - "id": "0x55d5e7560270-Expr", + "id": "0x55e0a354f270-Expr", "variantKey": "EQV", - "EQV": "0x55d5e7560290-EQV" + "EQV": "0x55e0a354f290-EQV" }, { - "id": "0x55d5e7560290-EQV", - "Expr": "0x55d5e75600a0-Expr" + "id": "0x55e0a354f290-EQV", + "left": "0x55e0a354f180-Expr", + "right": "0x55e0a354f0a0-Expr", + "op": "EQV" }, { - "id": "0x55d5e7560180-Expr", + "id": "0x55e0a354f180-Expr", "variantKey": "Designator", - "Designator": "0x55d5e755fb90-Designator" + "Designator": "0x55e0a354eb90-Designator" }, { - "id": "0x55d5e755fb90-Designator", + "id": "0x55e0a354eb90-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e755fba0-DataRef" + "DataRef": "0x55e0a354eba0-DataRef" }, { - "id": "0x55d5e755fba0-DataRef", + "id": "0x55e0a354eba0-DataRef", "variantKey": "Name", - "Name": "0x55d5e755fba0-Name" + "Name": "0x55e0a354eba0-Name" }, { - "id": "0x55d5e755fba0-Name", + "id": "0x55e0a354eba0-Name", "source": "l1" }, { - "id": "0x55d5e75600a0-Expr", + "id": "0x55e0a354f0a0-Expr", "variantKey": "Designator", - "Designator": "0x55d5e7560040-Designator" + "Designator": "0x55e0a354f040-Designator" }, { - "id": "0x55d5e7560040-Designator", + "id": "0x55e0a354f040-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e7560050-DataRef" + "DataRef": "0x55e0a354f050-DataRef" }, { - "id": "0x55d5e7560050-DataRef", + "id": "0x55e0a354f050-DataRef", "variantKey": "Name", - "Name": "0x55d5e7560050-Name" + "Name": "0x55e0a354f050-Name" }, { - "id": "0x55d5e7560050-Name", + "id": "0x55e0a354f050-Name", "source": "l2" }, { - "id": "0x55d5e75607d0-ExecutionPartConstruct", + "id": "0x55e0a354f7d0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55d5e75607d0-ExecutableConstruct" + "ExecutableConstruct": "0x55e0a354f7d0-ExecutableConstruct" }, { - "id": "0x55d5e75607d0-ExecutableConstruct", + "id": "0x55e0a354f7d0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55d5e75607d0-Statement" + "Statement": "0x55e0a354f7d0-Statement" }, { - "id": "0x55d5e75607d0-Statement", - "statement": "0x55d5e75607e0-ActionStmt", + "id": "0x55e0a354f7d0-Statement", + "statement": "0x55e0a354f7e0-ActionStmt", "source": "l = l1 .neqv. l2" }, { - "id": "0x55d5e75607e0-ActionStmt", + "id": "0x55e0a354f7e0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55d5e75606b0-AssignmentStmt" + "AssignmentStmt": "0x55e0a354f6b0-AssignmentStmt" }, { - "id": "0x55d5e75606b0-AssignmentStmt", - "Variable": "0x55d5e7560790-Variable", - "Expr": "0x55d5e75606c0-Expr" + "id": "0x55e0a354f6b0-AssignmentStmt", + "Variable": "0x55e0a354f790-Variable", + "Expr": "0x55e0a354f6c0-Expr" }, { - "id": "0x55d5e7560790-Variable", + "id": "0x55e0a354f790-Variable", "variantKey": "Designator", - "Designator": "0x55d5e755f6e0-Designator" + "Designator": "0x55e0a354e6e0-Designator" }, { - "id": "0x55d5e755f6e0-Designator", + "id": "0x55e0a354e6e0-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e755f6f0-DataRef" + "DataRef": "0x55e0a354e6f0-DataRef" }, { - "id": "0x55d5e755f6f0-DataRef", + "id": "0x55e0a354e6f0-DataRef", "variantKey": "Name", - "Name": "0x55d5e755f6f0-Name" + "Name": "0x55e0a354e6f0-Name" }, { - "id": "0x55d5e755f6f0-Name", + "id": "0x55e0a354e6f0-Name", "source": "l" }, { - "id": "0x55d5e75606c0-Expr", + "id": "0x55e0a354f6c0-Expr", "variantKey": "NEQV", - "NEQV": "0x55d5e75606e0-NEQV" + "NEQV": "0x55e0a354f6e0-NEQV" }, { - "id": "0x55d5e75606e0-NEQV", - "Expr": "0x55d5e75604f0-Expr" + "id": "0x55e0a354f6e0-NEQV", + "left": "0x55e0a354f5d0-Expr", + "right": "0x55e0a354f4f0-Expr", + "op": "NEQV" }, { - "id": "0x55d5e75605d0-Expr", + "id": "0x55e0a354f5d0-Expr", "variantKey": "Designator", - "Designator": "0x55d5e755ffe0-Designator" + "Designator": "0x55e0a354efe0-Designator" }, { - "id": "0x55d5e755ffe0-Designator", + "id": "0x55e0a354efe0-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e755fff0-DataRef" + "DataRef": "0x55e0a354eff0-DataRef" }, { - "id": "0x55d5e755fff0-DataRef", + "id": "0x55e0a354eff0-DataRef", "variantKey": "Name", - "Name": "0x55d5e755fff0-Name" + "Name": "0x55e0a354eff0-Name" }, { - "id": "0x55d5e755fff0-Name", + "id": "0x55e0a354eff0-Name", "source": "l1" }, { - "id": "0x55d5e75604f0-Expr", + "id": "0x55e0a354f4f0-Expr", "variantKey": "Designator", - "Designator": "0x55d5e7560490-Designator" + "Designator": "0x55e0a354f490-Designator" }, { - "id": "0x55d5e7560490-Designator", + "id": "0x55e0a354f490-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e75604a0-DataRef" + "DataRef": "0x55e0a354f4a0-DataRef" }, { - "id": "0x55d5e75604a0-DataRef", + "id": "0x55e0a354f4a0-DataRef", "variantKey": "Name", - "Name": "0x55d5e75604a0-Name" + "Name": "0x55e0a354f4a0-Name" }, { - "id": "0x55d5e75604a0-Name", + "id": "0x55e0a354f4a0-Name", "source": "l2" }, { - "id": "0x55d5e7560b60-ExecutionPartConstruct", + "id": "0x55e0a354fb60-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55d5e7560b60-ExecutableConstruct" + "ExecutableConstruct": "0x55e0a354fb60-ExecutableConstruct" }, { - "id": "0x55d5e7560b60-ExecutableConstruct", + "id": "0x55e0a354fb60-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55d5e7560b60-Statement" + "Statement": "0x55e0a354fb60-Statement" }, { - "id": "0x55d5e7560b60-Statement", - "statement": "0x55d5e7560b70-ActionStmt", + "id": "0x55e0a354fb60-Statement", + "statement": "0x55e0a354fb70-ActionStmt", "source": "i = a + 1" }, { - "id": "0x55d5e7560b70-ActionStmt", + "id": "0x55e0a354fb70-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55d5e7560a40-AssignmentStmt" + "AssignmentStmt": "0x55e0a354fa40-AssignmentStmt" }, { - "id": "0x55d5e7560a40-AssignmentStmt", - "Variable": "0x55d5e7560b20-Variable", - "Expr": "0x55d5e7560a50-Expr" + "id": "0x55e0a354fa40-AssignmentStmt", + "Variable": "0x55e0a354fb20-Variable", + "Expr": "0x55e0a354fa50-Expr" }, { - "id": "0x55d5e7560b20-Variable", + "id": "0x55e0a354fb20-Variable", "variantKey": "Designator", - "Designator": "0x55d5e755fb30-Designator" + "Designator": "0x55e0a354eb30-Designator" }, { - "id": "0x55d5e755fb30-Designator", + "id": "0x55e0a354eb30-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e755fb40-DataRef" + "DataRef": "0x55e0a354eb40-DataRef" }, { - "id": "0x55d5e755fb40-DataRef", + "id": "0x55e0a354eb40-DataRef", "variantKey": "Name", - "Name": "0x55d5e755fb40-Name" + "Name": "0x55e0a354eb40-Name" }, { - "id": "0x55d5e755fb40-Name", + "id": "0x55e0a354eb40-Name", "source": "i" }, { - "id": "0x55d5e7560a50-Expr", + "id": "0x55e0a354fa50-Expr", "variantKey": "Add", - "Add": "0x55d5e7560a70-Add" + "Add": "0x55e0a354fa70-Add" }, { - "id": "0x55d5e7560a70-Add", - "left": "0x55d5e7560960-Expr", - "right": "0x55d5e7560880-Expr", + "id": "0x55e0a354fa70-Add", + "left": "0x55e0a354f960-Expr", + "right": "0x55e0a354f880-Expr", "op": "ADD" }, { - "id": "0x55d5e7560960-Expr", + "id": "0x55e0a354f960-Expr", "variantKey": "Designator", - "Designator": "0x55d5e7560430-Designator" + "Designator": "0x55e0a354f430-Designator" }, { - "id": "0x55d5e7560430-Designator", + "id": "0x55e0a354f430-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e7560440-DataRef" + "DataRef": "0x55e0a354f440-DataRef" }, { - "id": "0x55d5e7560440-DataRef", + "id": "0x55e0a354f440-DataRef", "variantKey": "Name", - "Name": "0x55d5e7560440-Name" + "Name": "0x55e0a354f440-Name" }, { - "id": "0x55d5e7560440-Name", + "id": "0x55e0a354f440-Name", "source": "a" }, { - "id": "0x55d5e7560880-Expr", + "id": "0x55e0a354f880-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d5e75608a0-LiteralConstant" + "LiteralConstant": "0x55e0a354f8a0-LiteralConstant" }, { - "id": "0x55d5e75608a0-LiteralConstant", + "id": "0x55e0a354f8a0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55d5e75608a0-IntLiteralConstant" + "IntLiteralConstant": "0x55e0a354f8a0-IntLiteralConstant" }, { - "id": "0x55d5e75608a0-IntLiteralConstant", + "id": "0x55e0a354f8a0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55d5e7561010-ExecutionPartConstruct", + "id": "0x55e0a3550010-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55d5e7561010-ExecutableConstruct" + "ExecutableConstruct": "0x55e0a3550010-ExecutableConstruct" }, { - "id": "0x55d5e7561010-ExecutableConstruct", + "id": "0x55e0a3550010-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55d5e7561010-Statement" + "Statement": "0x55e0a3550010-Statement" }, { - "id": "0x55d5e7561010-Statement", - "statement": "0x55d5e7561020-ActionStmt", + "id": "0x55e0a3550010-Statement", + "statement": "0x55e0a3550020-ActionStmt", "source": "i = a - b" }, { - "id": "0x55d5e7561020-ActionStmt", + "id": "0x55e0a3550020-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55d5e7560ef0-AssignmentStmt" + "AssignmentStmt": "0x55e0a354fef0-AssignmentStmt" }, { - "id": "0x55d5e7560ef0-AssignmentStmt", - "Variable": "0x55d5e7560fd0-Variable", - "Expr": "0x55d5e7560f00-Expr" + "id": "0x55e0a354fef0-AssignmentStmt", + "Variable": "0x55e0a354ffd0-Variable", + "Expr": "0x55e0a354ff00-Expr" }, { - "id": "0x55d5e7560fd0-Variable", + "id": "0x55e0a354ffd0-Variable", "variantKey": "Designator", - "Designator": "0x55d5e755ff80-Designator" + "Designator": "0x55e0a354ef80-Designator" }, { - "id": "0x55d5e755ff80-Designator", + "id": "0x55e0a354ef80-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e755ff90-DataRef" + "DataRef": "0x55e0a354ef90-DataRef" }, { - "id": "0x55d5e755ff90-DataRef", + "id": "0x55e0a354ef90-DataRef", "variantKey": "Name", - "Name": "0x55d5e755ff90-Name" + "Name": "0x55e0a354ef90-Name" }, { - "id": "0x55d5e755ff90-Name", + "id": "0x55e0a354ef90-Name", "source": "i" }, { - "id": "0x55d5e7560f00-Expr", + "id": "0x55e0a354ff00-Expr", "variantKey": "Subtract", - "Subtract": "0x55d5e7560f20-Subtract" + "Subtract": "0x55e0a354ff20-Subtract" }, { - "id": "0x55d5e7560f20-Subtract", - "left": "0x55d5e7560e10-Expr", - "right": "0x55d5e7560d30-Expr", + "id": "0x55e0a354ff20-Subtract", + "left": "0x55e0a354fe10-Expr", + "right": "0x55e0a354fd30-Expr", "op": "SUBTRACT" }, { - "id": "0x55d5e7560e10-Expr", + "id": "0x55e0a354fe10-Expr", "variantKey": "Designator", - "Designator": "0x55d5e7560bb0-Designator" + "Designator": "0x55e0a354fbb0-Designator" }, { - "id": "0x55d5e7560bb0-Designator", + "id": "0x55e0a354fbb0-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e7560bc0-DataRef" + "DataRef": "0x55e0a354fbc0-DataRef" }, { - "id": "0x55d5e7560bc0-DataRef", + "id": "0x55e0a354fbc0-DataRef", "variantKey": "Name", - "Name": "0x55d5e7560bc0-Name" + "Name": "0x55e0a354fbc0-Name" }, { - "id": "0x55d5e7560bc0-Name", + "id": "0x55e0a354fbc0-Name", "source": "a" }, { - "id": "0x55d5e7560d30-Expr", + "id": "0x55e0a354fd30-Expr", "variantKey": "Designator", - "Designator": "0x55d5e7560cd0-Designator" + "Designator": "0x55e0a354fcd0-Designator" }, { - "id": "0x55d5e7560cd0-Designator", + "id": "0x55e0a354fcd0-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e7560ce0-DataRef" + "DataRef": "0x55e0a354fce0-DataRef" }, { - "id": "0x55d5e7560ce0-DataRef", + "id": "0x55e0a354fce0-DataRef", "variantKey": "Name", - "Name": "0x55d5e7560ce0-Name" + "Name": "0x55e0a354fce0-Name" }, { - "id": "0x55d5e7560ce0-Name", + "id": "0x55e0a354fce0-Name", "source": "b" }, { - "id": "0x55d5e7560c80-ExecutionPartConstruct", + "id": "0x55e0a354fc80-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55d5e7560c80-ExecutableConstruct" + "ExecutableConstruct": "0x55e0a354fc80-ExecutableConstruct" }, { - "id": "0x55d5e7560c80-ExecutableConstruct", + "id": "0x55e0a354fc80-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55d5e7560c80-Statement" + "Statement": "0x55e0a354fc80-Statement" }, { - "id": "0x55d5e7560c80-Statement", - "statement": "0x55d5e7560c90-ActionStmt", + "id": "0x55e0a354fc80-Statement", + "statement": "0x55e0a354fc90-ActionStmt", "source": "i = 4 * 5" }, { - "id": "0x55d5e7560c90-ActionStmt", + "id": "0x55e0a354fc90-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55d5e7561220-AssignmentStmt" + "AssignmentStmt": "0x55e0a3550220-AssignmentStmt" }, { - "id": "0x55d5e7561220-AssignmentStmt", - "Variable": "0x55d5e7561300-Variable", - "Expr": "0x55d5e7561230-Expr" + "id": "0x55e0a3550220-AssignmentStmt", + "Variable": "0x55e0a3550300-Variable", + "Expr": "0x55e0a3550230-Expr" }, { - "id": "0x55d5e7561300-Variable", + "id": "0x55e0a3550300-Variable", "variantKey": "Designator", - "Designator": "0x55d5e75603d0-Designator" + "Designator": "0x55e0a354f3d0-Designator" }, { - "id": "0x55d5e75603d0-Designator", + "id": "0x55e0a354f3d0-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e75603e0-DataRef" + "DataRef": "0x55e0a354f3e0-DataRef" }, { - "id": "0x55d5e75603e0-DataRef", + "id": "0x55e0a354f3e0-DataRef", "variantKey": "Name", - "Name": "0x55d5e75603e0-Name" + "Name": "0x55e0a354f3e0-Name" }, { - "id": "0x55d5e75603e0-Name", + "id": "0x55e0a354f3e0-Name", "source": "i" }, { - "id": "0x55d5e7561230-Expr", + "id": "0x55e0a3550230-Expr", "variantKey": "Multiply", - "Multiply": "0x55d5e7561250-Multiply" + "Multiply": "0x55e0a3550250-Multiply" }, { - "id": "0x55d5e7561250-Multiply", - "left": "0x55d5e7561140-Expr", - "right": "0x55d5e7561060-Expr", + "id": "0x55e0a3550250-Multiply", + "left": "0x55e0a3550140-Expr", + "right": "0x55e0a3550060-Expr", "op": "MULTIPLY" }, { - "id": "0x55d5e7561140-Expr", + "id": "0x55e0a3550140-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d5e7561160-LiteralConstant" + "LiteralConstant": "0x55e0a3550160-LiteralConstant" }, { - "id": "0x55d5e7561160-LiteralConstant", + "id": "0x55e0a3550160-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55d5e7561160-IntLiteralConstant" + "IntLiteralConstant": "0x55e0a3550160-IntLiteralConstant" }, { - "id": "0x55d5e7561160-IntLiteralConstant", + "id": "0x55e0a3550160-IntLiteralConstant", "CharBlock": "4" }, { - "id": "0x55d5e7561060-Expr", + "id": "0x55e0a3550060-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d5e7561080-LiteralConstant" + "LiteralConstant": "0x55e0a3550080-LiteralConstant" }, { - "id": "0x55d5e7561080-LiteralConstant", + "id": "0x55e0a3550080-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55d5e7561080-IntLiteralConstant" + "IntLiteralConstant": "0x55e0a3550080-IntLiteralConstant" }, { - "id": "0x55d5e7561080-IntLiteralConstant", + "id": "0x55e0a3550080-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x55d5e7561730-ExecutionPartConstruct", + "id": "0x55e0a3550730-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55d5e7561730-ExecutableConstruct" + "ExecutableConstruct": "0x55e0a3550730-ExecutableConstruct" }, { - "id": "0x55d5e7561730-ExecutableConstruct", + "id": "0x55e0a3550730-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55d5e7561730-Statement" + "Statement": "0x55e0a3550730-Statement" }, { - "id": "0x55d5e7561730-Statement", - "statement": "0x55d5e7561740-ActionStmt", + "id": "0x55e0a3550730-Statement", + "statement": "0x55e0a3550740-ActionStmt", "source": "i = 6 / b" }, { - "id": "0x55d5e7561740-ActionStmt", + "id": "0x55e0a3550740-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55d5e7561610-AssignmentStmt" + "AssignmentStmt": "0x55e0a3550610-AssignmentStmt" }, { - "id": "0x55d5e7561610-AssignmentStmt", - "Variable": "0x55d5e75616f0-Variable", - "Expr": "0x55d5e7561620-Expr" + "id": "0x55e0a3550610-AssignmentStmt", + "Variable": "0x55e0a35506f0-Variable", + "Expr": "0x55e0a3550620-Expr" }, { - "id": "0x55d5e75616f0-Variable", + "id": "0x55e0a35506f0-Variable", "variantKey": "Designator", - "Designator": "0x55d5e7560820-Designator" + "Designator": "0x55e0a354f820-Designator" }, { - "id": "0x55d5e7560820-Designator", + "id": "0x55e0a354f820-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e7560830-DataRef" + "DataRef": "0x55e0a354f830-DataRef" }, { - "id": "0x55d5e7560830-DataRef", + "id": "0x55e0a354f830-DataRef", "variantKey": "Name", - "Name": "0x55d5e7560830-Name" + "Name": "0x55e0a354f830-Name" }, { - "id": "0x55d5e7560830-Name", + "id": "0x55e0a354f830-Name", "source": "i" }, { - "id": "0x55d5e7561620-Expr", + "id": "0x55e0a3550620-Expr", "variantKey": "Divide", - "Divide": "0x55d5e7561640-Divide" + "Divide": "0x55e0a3550640-Divide" }, { - "id": "0x55d5e7561640-Divide", - "left": "0x55d5e7561530-Expr", - "right": "0x55d5e7561450-Expr", + "id": "0x55e0a3550640-Divide", + "left": "0x55e0a3550530-Expr", + "right": "0x55e0a3550450-Expr", "op": "DIVIDE" }, { - "id": "0x55d5e7561530-Expr", + "id": "0x55e0a3550530-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d5e7561550-LiteralConstant" + "LiteralConstant": "0x55e0a3550550-LiteralConstant" }, { - "id": "0x55d5e7561550-LiteralConstant", + "id": "0x55e0a3550550-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55d5e7561550-IntLiteralConstant" + "IntLiteralConstant": "0x55e0a3550550-IntLiteralConstant" }, { - "id": "0x55d5e7561550-IntLiteralConstant", + "id": "0x55e0a3550550-IntLiteralConstant", "CharBlock": "6" }, { - "id": "0x55d5e7561450-Expr", + "id": "0x55e0a3550450-Expr", "variantKey": "Designator", - "Designator": "0x55d5e75613f0-Designator" + "Designator": "0x55e0a35503f0-Designator" }, { - "id": "0x55d5e75613f0-Designator", + "id": "0x55e0a35503f0-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e7561400-DataRef" + "DataRef": "0x55e0a3550400-DataRef" }, { - "id": "0x55d5e7561400-DataRef", + "id": "0x55e0a3550400-DataRef", "variantKey": "Name", - "Name": "0x55d5e7561400-Name" + "Name": "0x55e0a3550400-Name" }, { - "id": "0x55d5e7561400-Name", + "id": "0x55e0a3550400-Name", "source": "b" }, { - "id": "0x55d5e7562b60-ExecutionPartConstruct", + "id": "0x55e0a3551b60-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55d5e7562b60-ExecutableConstruct" + "ExecutableConstruct": "0x55e0a3551b60-ExecutableConstruct" }, { - "id": "0x55d5e7562b60-ExecutableConstruct", + "id": "0x55e0a3551b60-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55d5e7562b60-Statement" + "Statement": "0x55e0a3551b60-Statement" }, { - "id": "0x55d5e7562b60-Statement", - "statement": "0x55d5e7562b70-ActionStmt", + "id": "0x55e0a3551b60-Statement", + "statement": "0x55e0a3551b70-ActionStmt", "source": "i = 0 + 1 - b * 5 / a + 7" }, { - "id": "0x55d5e7562b70-ActionStmt", + "id": "0x55e0a3551b70-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55d5e75629d0-AssignmentStmt" + "AssignmentStmt": "0x55e0a35519d0-AssignmentStmt" }, { - "id": "0x55d5e75629d0-AssignmentStmt", - "Variable": "0x55d5e7562ab0-Variable", - "Expr": "0x55d5e75629e0-Expr" + "id": "0x55e0a35519d0-AssignmentStmt", + "Variable": "0x55e0a3551ab0-Variable", + "Expr": "0x55e0a35519e0-Expr" }, { - "id": "0x55d5e7562ab0-Variable", + "id": "0x55e0a3551ab0-Variable", "variantKey": "Designator", - "Designator": "0x55d5e7560c10-Designator" + "Designator": "0x55e0a354fc10-Designator" }, { - "id": "0x55d5e7560c10-Designator", + "id": "0x55e0a354fc10-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e7560c20-DataRef" + "DataRef": "0x55e0a354fc20-DataRef" }, { - "id": "0x55d5e7560c20-DataRef", + "id": "0x55e0a354fc20-DataRef", "variantKey": "Name", - "Name": "0x55d5e7560c20-Name" + "Name": "0x55e0a354fc20-Name" }, { - "id": "0x55d5e7560c20-Name", + "id": "0x55e0a354fc20-Name", "source": "i" }, { - "id": "0x55d5e75629e0-Expr", + "id": "0x55e0a35519e0-Expr", "variantKey": "Add", - "Add": "0x55d5e7562a00-Add" + "Add": "0x55e0a3551a00-Add" }, { - "id": "0x55d5e7562a00-Add", - "left": "0x55d5e7562880-Expr", - "right": "0x55d5e75627a0-Expr", + "id": "0x55e0a3551a00-Add", + "left": "0x55e0a3551880-Expr", + "right": "0x55e0a35517a0-Expr", "op": "ADD" }, { - "id": "0x55d5e7562880-Expr", + "id": "0x55e0a3551880-Expr", "variantKey": "Subtract", - "Subtract": "0x55d5e75628a0-Subtract" + "Subtract": "0x55e0a35518a0-Subtract" }, { - "id": "0x55d5e75628a0-Subtract", - "left": "0x55d5e75624a0-Expr", - "right": "0x55d5e75623c0-Expr", + "id": "0x55e0a35518a0-Subtract", + "left": "0x55e0a35514a0-Expr", + "right": "0x55e0a35513c0-Expr", "op": "SUBTRACT" }, { - "id": "0x55d5e75624a0-Expr", + "id": "0x55e0a35514a0-Expr", "variantKey": "Add", - "Add": "0x55d5e75624c0-Add" + "Add": "0x55e0a35514c0-Add" }, { - "id": "0x55d5e75624c0-Add", - "left": "0x55d5e7561860-Expr", - "right": "0x55d5e7561780-Expr", + "id": "0x55e0a35514c0-Add", + "left": "0x55e0a3550860-Expr", + "right": "0x55e0a3550780-Expr", "op": "ADD" }, { - "id": "0x55d5e7561860-Expr", + "id": "0x55e0a3550860-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d5e7561880-LiteralConstant" + "LiteralConstant": "0x55e0a3550880-LiteralConstant" }, { - "id": "0x55d5e7561880-LiteralConstant", + "id": "0x55e0a3550880-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55d5e7561880-IntLiteralConstant" + "IntLiteralConstant": "0x55e0a3550880-IntLiteralConstant" }, { - "id": "0x55d5e7561880-IntLiteralConstant", + "id": "0x55e0a3550880-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55d5e7561780-Expr", + "id": "0x55e0a3550780-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d5e75617a0-LiteralConstant" + "LiteralConstant": "0x55e0a35507a0-LiteralConstant" }, { - "id": "0x55d5e75617a0-LiteralConstant", + "id": "0x55e0a35507a0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55d5e75617a0-IntLiteralConstant" + "IntLiteralConstant": "0x55e0a35507a0-IntLiteralConstant" }, { - "id": "0x55d5e75617a0-IntLiteralConstant", + "id": "0x55e0a35507a0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55d5e75623c0-Expr", + "id": "0x55e0a35513c0-Expr", "variantKey": "Divide", - "Divide": "0x55d5e75623e0-Divide" + "Divide": "0x55e0a35513e0-Divide" }, { - "id": "0x55d5e75623e0-Divide", - "left": "0x55d5e75622e0-Expr", - "right": "0x55d5e7562200-Expr", + "id": "0x55e0a35513e0-Divide", + "left": "0x55e0a35512e0-Expr", + "right": "0x55e0a3551200-Expr", "op": "DIVIDE" }, { - "id": "0x55d5e75622e0-Expr", + "id": "0x55e0a35512e0-Expr", "variantKey": "Multiply", - "Multiply": "0x55d5e7562300-Multiply" + "Multiply": "0x55e0a3551300-Multiply" }, { - "id": "0x55d5e7562300-Multiply", - "left": "0x55d5e7561c10-Expr", - "right": "0x55d5e7561b30-Expr", + "id": "0x55e0a3551300-Multiply", + "left": "0x55e0a3550c10-Expr", + "right": "0x55e0a3550b30-Expr", "op": "MULTIPLY" }, { - "id": "0x55d5e7561c10-Expr", + "id": "0x55e0a3550c10-Expr", "variantKey": "Designator", - "Designator": "0x55d5e7561a00-Designator" + "Designator": "0x55e0a3550a00-Designator" }, { - "id": "0x55d5e7561a00-Designator", + "id": "0x55e0a3550a00-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e7561a10-DataRef" + "DataRef": "0x55e0a3550a10-DataRef" }, { - "id": "0x55d5e7561a10-DataRef", + "id": "0x55e0a3550a10-DataRef", "variantKey": "Name", - "Name": "0x55d5e7561a10-Name" + "Name": "0x55e0a3550a10-Name" }, { - "id": "0x55d5e7561a10-Name", + "id": "0x55e0a3550a10-Name", "source": "b" }, { - "id": "0x55d5e7561b30-Expr", + "id": "0x55e0a3550b30-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d5e7561b50-LiteralConstant" + "LiteralConstant": "0x55e0a3550b50-LiteralConstant" }, { - "id": "0x55d5e7561b50-LiteralConstant", + "id": "0x55e0a3550b50-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55d5e7561b50-IntLiteralConstant" + "IntLiteralConstant": "0x55e0a3550b50-IntLiteralConstant" }, { - "id": "0x55d5e7561b50-IntLiteralConstant", + "id": "0x55e0a3550b50-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x55d5e7562200-Expr", + "id": "0x55e0a3551200-Expr", "variantKey": "Designator", - "Designator": "0x55d5e7562130-Designator" + "Designator": "0x55e0a3551130-Designator" }, { - "id": "0x55d5e7562130-Designator", + "id": "0x55e0a3551130-Designator", "variantKey": "DataRef", - "DataRef": "0x55d5e7562140-DataRef" + "DataRef": "0x55e0a3551140-DataRef" }, { - "id": "0x55d5e7562140-DataRef", + "id": "0x55e0a3551140-DataRef", "variantKey": "Name", - "Name": "0x55d5e7562140-Name" + "Name": "0x55e0a3551140-Name" }, { - "id": "0x55d5e7562140-Name", + "id": "0x55e0a3551140-Name", "source": "a" }, { - "id": "0x55d5e75627a0-Expr", + "id": "0x55e0a35517a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d5e75627c0-LiteralConstant" + "LiteralConstant": "0x55e0a35517c0-LiteralConstant" }, { - "id": "0x55d5e75627c0-LiteralConstant", + "id": "0x55e0a35517c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55d5e75627c0-IntLiteralConstant" + "IntLiteralConstant": "0x55e0a35517c0-IntLiteralConstant" }, { - "id": "0x55d5e75627c0-IntLiteralConstant", + "id": "0x55e0a35517c0-IntLiteralConstant", "CharBlock": "7" }, { - "id": "0x55d5e7570da0-Statement", - "statement": "0x55d5e7570db0-EndProgramStmt", + "id": "0x55e0a355fda0-Statement", + "statement": "0x55e0a355fdb0-EndProgramStmt", "source": "end program TEST_EXPRS" }, { - "id": "0x55d5e7570db0-EndProgramStmt", - "Name": "0x55d5e7570db0-Name" + "id": "0x55e0a355fdb0-EndProgramStmt", + "Name": "0x55e0a355fdb0-Name" }, { - "id": "0x55d5e7570db0-Name", + "id": "0x55e0a355fdb0-Name", "source": "TEST_EXPRS" } ], From cb4a8fad0890c3c24cca7dd7d1fe787179cfbe11 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 24 Jul 2026 19:36:58 +0100 Subject: [PATCH 118/260] Extend binary operator at the AST level --- .../specs/fortran/ast/nodes/expr/enums/BinaryOperatorKind.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/enums/BinaryOperatorKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/enums/BinaryOperatorKind.java index 75eacdba..ddcc0b6e 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/enums/BinaryOperatorKind.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/enums/BinaryOperatorKind.java @@ -14,6 +14,9 @@ public enum BinaryOperatorKind implements StringProvider { EQ("=="), NE("/="), AND(".AND."), + OR(".OR."), + EQV(".EQV."), + NEQV(".NEQV."), CONCAT("//"); private final String opString; From 6eedd863286308143727801a603a75735f8afb48 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 24 Jul 2026 19:39:21 +0100 Subject: [PATCH 119/260] Match new binary logical operators to AST nodes --- .../fortran/parser/binary_operator.expected.f90 | 10 +++++----- .../src/pt/up/fe/specs/fortran/parser/FlangName.java | 3 +++ .../pt/up/fe/specs/fortran/parser/FlangToClass.java | 3 +++ 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/binary_operator.expected.f90 b/FortranParser/resources-test/fortran/parser/binary_operator.expected.f90 index 8f5d3aa3..1dc64851 100644 --- a/FortranParser/resources-test/fortran/parser/binary_operator.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/binary_operator.expected.f90 @@ -8,15 +8,15 @@ PROGRAM TEST_EXPRS l = a == b l = 0 /= 1 + l = l1 .AND. l2 + l = l1 .OR. l2 + l = l1 .EQV. l2 + l = l1 .NEQV. l2 + i = a + 1 i = a - b i = 4 * 5 i = 6 / b i = 0 + 1 - b * 5 / a + 7 - - l = l1 .AND. l2 - l = l1 .OR. l2 - l = l1 .EQV. l2 - l = l1 .NEQV. l2 END PROGRAM TEST_EXPRS \ No newline at end of file diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 2d5baad2..082100cc 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -130,6 +130,9 @@ public enum FlangName implements StringProvider { GT("GT"), GE("GE"), AND("AND"), + OR("OR"), + EQV("EQV"), + NEQV("NEQV"), CONCAT, SCALAR, PROCEDURE_DESIGNATOR, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 0bc35fd3..19716927 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -162,6 +162,9 @@ public class FlangToClass { NAME_TO_MAPPER.put(FlangName.GT, ClassMapper.always(BinaryOperator.class)); NAME_TO_MAPPER.put(FlangName.GE, ClassMapper.always(BinaryOperator.class)); NAME_TO_MAPPER.put(FlangName.AND, ClassMapper.always(BinaryOperator.class)); + NAME_TO_MAPPER.put(FlangName.OR, ClassMapper.always(BinaryOperator.class)); + NAME_TO_MAPPER.put(FlangName.EQV, ClassMapper.always(BinaryOperator.class)); + NAME_TO_MAPPER.put(FlangName.NEQV, ClassMapper.always(BinaryOperator.class)); NAME_TO_MAPPER.put(FlangName.CONCAT, ClassMapper.always(BinaryOperator.class)); NAME_TO_MAPPER.put(FlangName.ARRAY_CONSTRUCTOR, ClassMapper.always(ArrayConstructor.class)); NAME_TO_MAPPER.put(FlangName.AC_SPEC, ClassMapper.always(AcSpecification.class)); From 6c2e38c1d738f805ba820c5a604d875e2cb92cf9 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 25 Jul 2026 15:08:57 +0100 Subject: [PATCH 120/260] Add IO control test --- .../{utils => io/ctrlspec}/IoControlSpec.java | 3 +- .../fortran/ast/nodes/stmt/WriteStmt.java | 2 +- .../fortran/parser/io/io_control.expected.f90 | 74 + .../fortran/parser/io/io_control.f90 | 104 + .../fortran/parser/io/io_control.json | 3397 +++++++++++++++++ .../fe/specs/fortran/parser/FlangToClass.java | 1 + .../fortran/parser/processors/Nodes.java | 1 + .../parser/processors/UtilsProcessors.java | 1 + .../fortran/parser/FortranParserTest.java | 11 + 9 files changed, 3591 insertions(+), 3 deletions(-) rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/{utils => io/ctrlspec}/IoControlSpec.java (94%) create mode 100644 FortranParser/resources-test/fortran/parser/io/io_control.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/io/io_control.f90 create mode 100644 FortranParser/resources-test/fortran/parser/io/io_control.json diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/utils/IoControlSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ctrlspec/IoControlSpec.java similarity index 94% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/utils/IoControlSpec.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ctrlspec/IoControlSpec.java index e285272b..f33588b5 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/utils/IoControlSpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ctrlspec/IoControlSpec.java @@ -1,4 +1,4 @@ -package pt.up.fe.specs.fortran.ast.nodes.utils; +package pt.up.fe.specs.fortran.ast.nodes.io.ctrlspec; import org.suikasoft.jOptions.Datakey.DataKey; import org.suikasoft.jOptions.Datakey.KeyFactory; @@ -10,7 +10,6 @@ import java.util.Collection; public class IoControlSpec extends FortranNode { - public static DataKey KIND = KeyFactory.enumeration("kind", IoControlSpecKind.class); public IoControlSpec(DataStore data, Collection children) { diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/WriteStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/WriteStmt.java index 13b3390a..b1fec253 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/WriteStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/WriteStmt.java @@ -5,7 +5,7 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; import pt.up.fe.specs.fortran.ast.nodes.utils.Format; -import pt.up.fe.specs.fortran.ast.nodes.utils.IoControlSpec; +import pt.up.fe.specs.fortran.ast.nodes.io.ctrlspec.IoControlSpec; import pt.up.fe.specs.fortran.ast.nodes.utils.IoUnit; import java.util.ArrayList; diff --git a/FortranParser/resources-test/fortran/parser/io/io_control.expected.f90 b/FortranParser/resources-test/fortran/parser/io/io_control.expected.f90 new file mode 100644 index 00000000..f46250b6 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/io/io_control.expected.f90 @@ -0,0 +1,74 @@ +PROGRAM IO_CONTROL_SPECS + INTEGER :: u_seq, u_dir, u_stream + INTEGER :: ios, async_id, chars_read + CHARACTER(LEN=200) :: io_message + CHARACTER(LEN=20) :: text_buffer + REAL :: x = 123.456 + INTEGER :: val = 42 + + ! Define a namelist for the NML specifier demo + NAMELIST /my_namelist/ val, x + + ! Open temporary test files (Sequential, Direct, Stream) + OPEN(NEWUNIT=u_seq, FILE="seq.txt", STATUS="replace", ACTION="readwrite") + OPEN(NEWUNIT=u_dir, FILE="dir.bin", STATUS="replace", ACCESS="direct", RECL=16) + OPEN(NEWUNIT=u_stream, FILE="stream.bin", STATUS="replace", ACCESS="stream") + + + ! ----------------------------------------------------------------- + ! 1. Formatting, Rounding, Decimal, Sign, Delim, IOSTAT & IOMSG + ! ----------------------------------------------------------------- + WRITE(UNIT=u_seq, FMT=*, DECIMAL="comma", SIGN="plus", ROUND="up", DELIM="quote", IOSTAT=ios, IOMSG=io_message) + + + ! ----------------------------------------------------------------- + ! 2. Namelist Specifier (NML) + ! ----------------------------------------------------------------- + WRITE(UNIT=u_seq, NML=my_namelist, IOSTAT=ios) + + + ! ----------------------------------------------------------------- + ! 3. Non-Advancing I/O (ADVANCE, SIZE, PAD, EOR, ERR) + ! ----------------------------------------------------------------- + REWIND(u_seq) + READ(UNIT=u_seq, FMT="(A)", ADVANCE="no", PAD="yes", SIZE=chars_read, EOR=100, ERR=900, IOSTAT=ios) text_buffer + + 100 CONTINUE + + + ! ----------------------------------------------------------------- + ! 4. Direct Access (REC) + ! ----------------------------------------------------------------- + WRITE(UNIT=u_dir, REC=1, IOSTAT=ios) val, x + + + ! ----------------------------------------------------------------- + ! 5. Stream Access (POS) + ! ----------------------------------------------------------------- + WRITE(UNIT=u_stream, POS=10, IOSTAT=ios) "Stream Header" + + ! ----------------------------------------------------------------- + ! 6. Asynchronous Non-Blocking I/O (ASYNCHRONOUS, ID) + ! ----------------------------------------------------------------- + WRITE(UNIT=u_seq, FMT="(I5)", ASYNCHRONOUS="yes", ID=async_id, IOSTAT=ios) val + + ! Wait for async operation to complete before continuing + WAIT(UNIT=u_seq, ID=async_id) + + + ! ----------------------------------------------------------------- + ! 7. Input Blank Handling and EOF Branching (BLANK, END) + ! ----------------------------------------------------------------- + READ(UNIT=u_seq, FMT="(I5)", BLANK="zero", END=200, ERR=900, IOSTAT=ios) val + + 200 CONTINUE + PRINT *, "All 20 io-control-spec items demonstrated successfully!" + + ! Clean up files + CLOSE(u_seq, STATUS="delete") + CLOSE(u_dir, STATUS="delete") + CLOSE(u_stream, STATUS="delete") + STOP + + 900 PRINT *, "I/O Error Occurred: ", trim(io_message) +END PROGRAM IO_CONTROL_SPECS \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/io/io_control.f90 b/FortranParser/resources-test/fortran/parser/io/io_control.f90 new file mode 100644 index 00000000..575c837d --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/io/io_control.f90 @@ -0,0 +1,104 @@ +program io_control_specs + integer :: u_seq, u_dir, u_stream + integer :: ios, async_id, chars_read + character(len=200) :: io_message + character(len=20) :: text_buffer + real :: x = 123.456 + integer :: val = 42 + + ! Define a namelist for the NML specifier demo + namelist /my_namelist/ val, x + + ! Open temporary test files (Sequential, Direct, Stream) + open(newunit=u_seq, file='seq.txt', status='replace', action='readwrite') + open(newunit=u_dir, file='dir.bin', status='replace', access='direct', recl=16) + open(newunit=u_stream, file='stream.bin', status='replace', access='stream') + + + ! ----------------------------------------------------------------- + ! 1. Formatting, Rounding, Decimal, Sign, Delim, IOSTAT & IOMSG + ! ----------------------------------------------------------------- + write( unit = u_seq, & + fmt = *, & + decimal = 'comma', & + sign = 'plus', & + round = 'up', & + delim = 'quote', & + iostat = ios, & + iomsg = io_message ) + + + ! ----------------------------------------------------------------- + ! 2. Namelist Specifier (NML) + ! ----------------------------------------------------------------- + write( unit = u_seq, & + nml = my_namelist, & + iostat = ios ) + + + ! ----------------------------------------------------------------- + ! 3. Non-Advancing I/O (ADVANCE, SIZE, PAD, EOR, ERR) + ! ----------------------------------------------------------------- + rewind(u_seq) + read( unit = u_seq, & + fmt = '(A)', & + advance = 'no', & + pad = 'yes', & + size = chars_read, & + eor = 100, & + err = 900, & + iostat = ios ) text_buffer + + 100 continue + + + ! ----------------------------------------------------------------- + ! 4. Direct Access (REC) + ! ----------------------------------------------------------------- + write( unit = u_dir, & + rec = 1, & + iostat = ios ) val, x + + + ! ----------------------------------------------------------------- + ! 5. Stream Access (POS) + ! ----------------------------------------------------------------- + write( unit = u_stream, & + pos = 10, & + iostat = ios ) "Stream Header" + + + ! ----------------------------------------------------------------- + ! 6. Asynchronous Non-Blocking I/O (ASYNCHRONOUS, ID) + ! ----------------------------------------------------------------- + write( unit = u_seq, & + fmt = '(I5)', & + asynchronous = 'yes', & + id = async_id, & + iostat = ios ) val + + ! Wait for async operation to complete before continuing + wait(unit=u_seq, id=async_id) + + + ! ----------------------------------------------------------------- + ! 7. Input Blank Handling and EOF Branching (BLANK, END) + ! ----------------------------------------------------------------- + read( unit = u_seq, & + fmt = '(I5)', & + blank = 'zero', & + end = 200, & + err = 900, & + iostat = ios ) val + + 200 continue + print *, "All 20 io-control-spec items demonstrated successfully!" + + ! Clean up files + close(u_seq, status='delete') + close(u_dir, status='delete') + close(u_stream, status='delete') + stop + + 900 print *, "I/O Error Occurred: ", trim(io_message) +end program io_control_specs \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/io/io_control.json b/FortranParser/resources-test/fortran/parser/io/io_control.json new file mode 100644 index 00000000..853b9b6b --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/io/io_control.json @@ -0,0 +1,3397 @@ +{ + "fileExtension": "f90", + "nodes": [ + { + "id": "0x558b7bbfbf00-Program", + "ProgramUnit": [ + "0x558b7bc3b420-ProgramUnit" + ] + }, + { + "id": "0x558b7bc3b420-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x558b7bc39a60-MainProgram" + }, + { + "id": "0x558b7bc39a60-MainProgram", + "Statement": "0x558b7bc39ba8-Statement", + "SpecificationPart": "0x558b7bc39b00-SpecificationPart", + "ExecutionPart": "0x558b7bc39ae8-ExecutionPart", + "Statement": "0x558b7bc39a60-Statement" + }, + { + "id": "0x558b7bc39ba8-Statement", + "statement": "0x558b7bc39bb8-ProgramStmt", + "source": "program IO_CONTROL_SPECS" + }, + { + "id": "0x558b7bc39bb8-ProgramStmt", + "Name": "0x558b7bc39bb8-Name" + }, + { + "id": "0x558b7bc39bb8-Name", + "source": "IO_CONTROL_SPECS" + }, + { + "id": "0x558b7bc39b00-SpecificationPart", + "ImplicitPart": "0x558b7bc39b18-ImplicitPart", + "DeclarationConstruct": [ + "0x558b7bc09170-DeclarationConstruct", + "0x558b7bc09110-DeclarationConstruct", + "0x558b7bc283d0-DeclarationConstruct", + "0x558b7bc28680-DeclarationConstruct", + "0x558b7bc288b0-DeclarationConstruct", + "0x558b7bc28b60-DeclarationConstruct", + "0x558b7bc08da0-DeclarationConstruct" + ] + }, + { + "id": "0x558b7bc39b18-ImplicitPart" + }, + { + "id": "0x558b7bc09170-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x558b7bc09170-SpecificationConstruct" + }, + { + "id": "0x558b7bc09170-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x558b7bc09170-Statement" + }, + { + "id": "0x558b7bc09170-Statement", + "statement": "0x558b7bc27960-TypeDeclarationStmt", + "source": "integer :: u_seq, u_dir, u_stream" + }, + { + "id": "0x558b7bc27960-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558b7bc27990-DeclarationTypeSpec", + "EntityDecl": [ + "0x558b7bc27c50-EntityDecl", + "0x558b7bc27a70-EntityDecl", + "0x558b7bc27b60-EntityDecl" + ] + }, + { + "id": "0x558b7bc27990-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x558b7bc27990-IntrinsicTypeSpec" + }, + { + "id": "0x558b7bc27990-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x558b7bc27990-IntegerTypeSpec" + }, + { + "id": "0x558b7bc27990-IntegerTypeSpec" + }, + { + "id": "0x558b7bc27c50-EntityDecl", + "Name": "0x558b7bc27d08-Name" + }, + { + "id": "0x558b7bc27d08-Name", + "source": "u_seq" + }, + { + "id": "0x558b7bc27a70-EntityDecl", + "Name": "0x558b7bc27b28-Name" + }, + { + "id": "0x558b7bc27b28-Name", + "source": "u_dir" + }, + { + "id": "0x558b7bc27b60-EntityDecl", + "Name": "0x558b7bc27c18-Name" + }, + { + "id": "0x558b7bc27c18-Name", + "source": "u_stream" + }, + { + "id": "0x558b7bc09110-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x558b7bc09110-SpecificationConstruct" + }, + { + "id": "0x558b7bc09110-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x558b7bc09110-Statement" + }, + { + "id": "0x558b7bc09110-Statement", + "statement": "0x558b7bc279e0-TypeDeclarationStmt", + "source": "integer :: ios, async_id, chars_read" + }, + { + "id": "0x558b7bc279e0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558b7bc27a10-DeclarationTypeSpec", + "EntityDecl": [ + "0x558b7bc27fa0-EntityDecl", + "0x558b7bc27dc0-EntityDecl", + "0x558b7bc27eb0-EntityDecl" + ] + }, + { + "id": "0x558b7bc27a10-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x558b7bc27a10-IntrinsicTypeSpec" + }, + { + "id": "0x558b7bc27a10-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x558b7bc27a10-IntegerTypeSpec" + }, + { + "id": "0x558b7bc27a10-IntegerTypeSpec" + }, + { + "id": "0x558b7bc27fa0-EntityDecl", + "Name": "0x558b7bc28058-Name" + }, + { + "id": "0x558b7bc28058-Name", + "source": "ios" + }, + { + "id": "0x558b7bc27dc0-EntityDecl", + "Name": "0x558b7bc27e78-Name" + }, + { + "id": "0x558b7bc27e78-Name", + "source": "async_id" + }, + { + "id": "0x558b7bc27eb0-EntityDecl", + "Name": "0x558b7bc27f68-Name" + }, + { + "id": "0x558b7bc27f68-Name", + "source": "chars_read" + }, + { + "id": "0x558b7bc283d0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x558b7bc283d0-SpecificationConstruct" + }, + { + "id": "0x558b7bc283d0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x558b7bc283d0-Statement" + }, + { + "id": "0x558b7bc283d0-Statement", + "statement": "0x558b7bc27d30-TypeDeclarationStmt", + "source": "character(len=200) :: io_message" + }, + { + "id": "0x558b7bc27d30-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558b7bc27d60-DeclarationTypeSpec", + "EntityDecl": [ + "0x558b7bc28200-EntityDecl" + ] + }, + { + "id": "0x558b7bc27d60-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x558b7bc27d60-IntrinsicTypeSpec" + }, + { + "id": "0x558b7bc27d60-IntrinsicTypeSpec", + "variantKey": "Character", + "Character": "0x558b7bc27d60-Character" + }, + { + "id": "0x558b7bc27d60-Character", + "CharSelector": "0x558b7bc27d60-CharSelector" + }, + { + "id": "0x558b7bc27d60-CharSelector", + "variantKey": "LengthSelector", + "LengthSelector": "0x558b7bc27d60-LengthSelector" + }, + { + "id": "0x558b7bc27d60-LengthSelector", + "variantKey": "TypeParamValue", + "TypeParamValue": "0x558b7bc27d60-TypeParamValue" + }, + { + "id": "0x558b7bc27d60-TypeParamValue", + "variantKey": "Expr", + "Expr": "0x558b7bb9b790-Expr" + }, + { + "id": "0x558b7bb9b790-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bb9b7b0-LiteralConstant" + }, + { + "id": "0x558b7bb9b7b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x558b7bb9b7b0-IntLiteralConstant" + }, + { + "id": "0x558b7bb9b7b0-IntLiteralConstant", + "CharBlock": "200" + }, + { + "id": "0x558b7bc28200-EntityDecl", + "Name": "0x558b7bc282b8-Name" + }, + { + "id": "0x558b7bc282b8-Name", + "source": "io_message" + }, + { + "id": "0x558b7bc28680-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x558b7bc28680-SpecificationConstruct" + }, + { + "id": "0x558b7bc28680-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x558b7bc28680-Statement" + }, + { + "id": "0x558b7bc28680-Statement", + "statement": "0x558b7bc28080-TypeDeclarationStmt", + "source": "character(len=20) :: text_buffer" + }, + { + "id": "0x558b7bc28080-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558b7bc280b0-DeclarationTypeSpec", + "EntityDecl": [ + "0x558b7bc28590-EntityDecl" + ] + }, + { + "id": "0x558b7bc280b0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x558b7bc280b0-IntrinsicTypeSpec" + }, + { + "id": "0x558b7bc280b0-IntrinsicTypeSpec", + "variantKey": "Character", + "Character": "0x558b7bc280b0-Character" + }, + { + "id": "0x558b7bc280b0-Character", + "CharSelector": "0x558b7bc280b0-CharSelector" + }, + { + "id": "0x558b7bc280b0-CharSelector", + "variantKey": "LengthSelector", + "LengthSelector": "0x558b7bc280b0-LengthSelector" + }, + { + "id": "0x558b7bc280b0-LengthSelector", + "variantKey": "TypeParamValue", + "TypeParamValue": "0x558b7bc280b0-TypeParamValue" + }, + { + "id": "0x558b7bc280b0-TypeParamValue", + "variantKey": "Expr", + "Expr": "0x558b7bc284a0-Expr" + }, + { + "id": "0x558b7bc284a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc284c0-LiteralConstant" + }, + { + "id": "0x558b7bc284c0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x558b7bc284c0-IntLiteralConstant" + }, + { + "id": "0x558b7bc284c0-IntLiteralConstant", + "CharBlock": "20" + }, + { + "id": "0x558b7bc28590-EntityDecl", + "Name": "0x558b7bc28648-Name" + }, + { + "id": "0x558b7bc28648-Name", + "source": "text_buffer" + }, + { + "id": "0x558b7bc288b0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x558b7bc288b0-SpecificationConstruct" + }, + { + "id": "0x558b7bc288b0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x558b7bc288b0-Statement" + }, + { + "id": "0x558b7bc288b0-Statement", + "statement": "0x558b7bc28100-TypeDeclarationStmt", + "source": "real :: x = 123.456" + }, + { + "id": "0x558b7bc28100-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558b7bc28130-DeclarationTypeSpec", + "EntityDecl": [ + "0x558b7bc287c0-EntityDecl" + ] + }, + { + "id": "0x558b7bc28130-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x558b7bc28130-IntrinsicTypeSpec" + }, + { + "id": "0x558b7bc28130-IntrinsicTypeSpec", + "variantKey": "Real", + "Real": "0x558b7bc28130-Real" + }, + { + "id": "0x558b7bc28130-Real" + }, + { + "id": "0x558b7bc287c0-EntityDecl", + "Name": "0x558b7bc28878-Name", + "Initialization": "0x558b7bc287c0-Initialization" + }, + { + "id": "0x558b7bc28878-Name", + "source": "x" + }, + { + "id": "0x558b7bc287c0-Initialization", + "variantKey": "Expr", + "Expr": "0x558b7bc286d0-Expr" + }, + { + "id": "0x558b7bc286d0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc286f0-LiteralConstant" + }, + { + "id": "0x558b7bc286f0-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x558b7bc286f0-RealLiteralConstant" + }, + { + "id": "0x558b7bc286f0-RealLiteralConstant", + "real": "0x558b7bc286f0-Real" + }, + { + "id": "0x558b7bc286f0-Real", + "source": "123.456" + }, + { + "id": "0x558b7bc28b60-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x558b7bc28b60-SpecificationConstruct" + }, + { + "id": "0x558b7bc28b60-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x558b7bc28b60-Statement" + }, + { + "id": "0x558b7bc28b60-Statement", + "statement": "0x558b7bc28420-TypeDeclarationStmt", + "source": "integer :: val = 42" + }, + { + "id": "0x558b7bc28420-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558b7bc28450-DeclarationTypeSpec", + "EntityDecl": [ + "0x558b7bc28a70-EntityDecl" + ] + }, + { + "id": "0x558b7bc28450-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x558b7bc28450-IntrinsicTypeSpec" + }, + { + "id": "0x558b7bc28450-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x558b7bc28450-IntegerTypeSpec" + }, + { + "id": "0x558b7bc28450-IntegerTypeSpec" + }, + { + "id": "0x558b7bc28a70-EntityDecl", + "Name": "0x558b7bc28b28-Name", + "Initialization": "0x558b7bc28a70-Initialization" + }, + { + "id": "0x558b7bc28b28-Name", + "source": "val" + }, + { + "id": "0x558b7bc28a70-Initialization", + "variantKey": "Expr", + "Expr": "0x558b7bc28980-Expr" + }, + { + "id": "0x558b7bc28980-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc289a0-LiteralConstant" + }, + { + "id": "0x558b7bc289a0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x558b7bc289a0-IntLiteralConstant" + }, + { + "id": "0x558b7bc289a0-IntLiteralConstant", + "CharBlock": "42" + }, + { + "id": "0x558b7bc08da0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x558b7bc08da0-SpecificationConstruct" + }, + { + "id": "0x558b7bc08da0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x558b7bc08da0-Statement" + }, + { + "id": "0x558b7bc08da0-Statement", + "statement": "0x558b7bc08db0-OtherSpecificationStmt", + "source": "namelist /my_namelist/ val, x" + }, + { + "id": "0x558b7bc08db0-OtherSpecificationStmt", + "variantKey": "NamelistStmt", + "NamelistStmt": "0x558b7bc3b5f0-NamelistStmt" + }, + { + "id": "0x558b7bc3b5f0-NamelistStmt", + "Group": [ + "0x558b7bc408c0-Group" + ] + }, + { + "id": "0x558b7bc408c0-Group", + "Name": [ + "0x558b7bc3b3a0-Name", + "0x558b7bc3b370-Name" + ] + }, + { + "id": "0x558b7bc408d8-Name", + "source": "my_namelist" + }, + { + "id": "0x558b7bc3b3a0-Name", + "source": "val" + }, + { + "id": "0x558b7bc3b370-Name", + "source": "x" + }, + { + "id": "0x558b7bc39ae8-ExecutionPart", + "ExecutionPartConstruct": [ + "0x558b7bc29190-ExecutionPartConstruct", + "0x558b7bc2c850-ExecutionPartConstruct", + "0x558b7bc2b780-ExecutionPartConstruct", + "0x558b7bc2e250-ExecutionPartConstruct", + "0x558b7bc27770-ExecutionPartConstruct", + "0x558b7bc2c2d0-ExecutionPartConstruct", + "0x558b7bc2ff20-ExecutionPartConstruct", + "0x558b7bc2efd0-ExecutionPartConstruct", + "0x558b7bc30610-ExecutionPartConstruct", + "0x558b7bc2f030-ExecutionPartConstruct", + "0x558b7bc317b0-ExecutionPartConstruct", + "0x558b7bc2fd10-ExecutionPartConstruct", + "0x558b7bc2f1f0-ExecutionPartConstruct", + "0x558b7bc2c270-ExecutionPartConstruct", + "0x558b7bc320b0-ExecutionPartConstruct", + "0x558b7bc2ec40-ExecutionPartConstruct", + "0x558b7bc2b0b0-ExecutionPartConstruct", + "0x558b7bc29740-ExecutionPartConstruct", + "0x558b7bc314b0-ExecutionPartConstruct", + "0x558b7bc415c0-ExecutionPartConstruct" + ] + }, + { + "id": "0x558b7bc39ae8-ExecutionPartConstruct" + }, + { + "id": "0x558b7bc29190-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x558b7bc29190-ExecutableConstruct" + }, + { + "id": "0x558b7bc29190-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x558b7bc29190-Statement" + }, + { + "id": "0x558b7bc29190-Statement", + "statement": "0x558b7bc291a0-ActionStmt", + "source": "open(newunit=u_seq, file='seq.txt', status='replace', action='readwrite')" + }, + { + "id": "0x558b7bc291a0-ActionStmt", + "variantKey": "OpenStmt", + "OpenStmt": "0x558b7bc3b3f0-OpenStmt" + }, + { + "id": "0x558b7bc3b3f0-OpenStmt", + "ConnectSpec": [ + "0x558b7bc3ac20-ConnectSpec", + "0x558b7bc3a820-ConnectSpec", + "0x558b7bc3a760-ConnectSpec", + "0x558b7bc39180-ConnectSpec" + ] + }, + { + "id": "0x558b7bc3ac20-ConnectSpec", + "variantKey": "Newunit", + "Newunit": "0x558b7bc3ac20-Newunit" + }, + { + "id": "0x558b7bc3ac20-Newunit", + "Expr": "0x558b7bc3ac20-Variable" + }, + { + "id": "0x558b7bc3ac20-Variable", + "variantKey": "Designator", + "Designator": "0x558b7bc2bc20-Designator" + }, + { + "id": "0x558b7bc2bc20-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc2bc30-DataRef" + }, + { + "id": "0x558b7bc2bc30-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc2bc30-Name" + }, + { + "id": "0x558b7bc2bc30-Name", + "source": "u_seq" + }, + { + "id": "0x558b7bc3a820-ConnectSpec", + "variantKey": "Expr", + "Expr": "0x558b7bc29380-Expr" + }, + { + "id": "0x558b7bc29380-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc293a0-LiteralConstant" + }, + { + "id": "0x558b7bc293a0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x558b7bc293a0-CharLiteralConstant" + }, + { + "id": "0x558b7bc293a0-CharLiteralConstant", + "string": "seq.txt" + }, + { + "id": "0x558b7bc3a760-ConnectSpec", + "variantKey": "StatusExpr", + "StatusExpr": "0x558b7bc3a760-StatusExpr" + }, + { + "id": "0x558b7bc3a760-StatusExpr", + "Expr": "0x558b7bc2a1e0-Expr" + }, + { + "id": "0x558b7bc2a1e0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc2a200-LiteralConstant" + }, + { + "id": "0x558b7bc2a200-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x558b7bc2a200-CharLiteralConstant" + }, + { + "id": "0x558b7bc2a200-CharLiteralConstant", + "string": "replace" + }, + { + "id": "0x558b7bc39180-ConnectSpec", + "variantKey": "CharExpr", + "CharExpr": "0x558b7bc39180-CharExpr" + }, + { + "id": "0x558b7bc39180-CharExpr", + "Kind = Action": "0x558b7bc39188-Kind = Action", + "Expr": "0x558b7bc29d60-Expr" + }, + { + "id": "0x558b7bc39188-Kind = Action", + "disambiguation": "Fortran::parser::ConnectSpec::CharExpr::Kind", + "value": "Action" + }, + { + "id": "0x558b7bc29d60-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc29d80-LiteralConstant" + }, + { + "id": "0x558b7bc29d80-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x558b7bc29d80-CharLiteralConstant" + }, + { + "id": "0x558b7bc29d80-CharLiteralConstant", + "string": "readwrite" + }, + { + "id": "0x558b7bc2c850-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x558b7bc2c850-ExecutableConstruct" + }, + { + "id": "0x558b7bc2c850-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x558b7bc2c850-Statement" + }, + { + "id": "0x558b7bc2c850-Statement", + "statement": "0x558b7bc2c860-ActionStmt", + "source": "open(newunit=u_dir, file='dir.bin', status='replace', access='direct', recl=16)" + }, + { + "id": "0x558b7bc2c860-ActionStmt", + "variantKey": "OpenStmt", + "OpenStmt": "0x558b7bc3b2c0-OpenStmt" + }, + { + "id": "0x558b7bc3b2c0-OpenStmt", + "ConnectSpec": [ + "0x558b7bc38820-ConnectSpec", + "0x558b7bc3b450-ConnectSpec", + "0x558b7bc3b4b0-ConnectSpec", + "0x558b7bc3b4f0-ConnectSpec", + "0x558b7bc38a50-ConnectSpec" + ] + }, + { + "id": "0x558b7bc38820-ConnectSpec", + "variantKey": "Newunit", + "Newunit": "0x558b7bc38820-Newunit" + }, + { + "id": "0x558b7bc38820-Newunit", + "Expr": "0x558b7bc38820-Variable" + }, + { + "id": "0x558b7bc38820-Variable", + "variantKey": "Designator", + "Designator": "0x558b7bc28e90-Designator" + }, + { + "id": "0x558b7bc28e90-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc28ea0-DataRef" + }, + { + "id": "0x558b7bc28ea0-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc28ea0-Name" + }, + { + "id": "0x558b7bc28ea0-Name", + "source": "u_dir" + }, + { + "id": "0x558b7bc3b450-ConnectSpec", + "variantKey": "Expr", + "Expr": "0x558b7bc2c070-Expr" + }, + { + "id": "0x558b7bc2c070-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc2c090-LiteralConstant" + }, + { + "id": "0x558b7bc2c090-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x558b7bc2c090-CharLiteralConstant" + }, + { + "id": "0x558b7bc2c090-CharLiteralConstant", + "string": "dir.bin" + }, + { + "id": "0x558b7bc3b4b0-ConnectSpec", + "variantKey": "StatusExpr", + "StatusExpr": "0x558b7bc3b4b0-StatusExpr" + }, + { + "id": "0x558b7bc3b4b0-StatusExpr", + "Expr": "0x558b7bc2bf90-Expr" + }, + { + "id": "0x558b7bc2bf90-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc2bfb0-LiteralConstant" + }, + { + "id": "0x558b7bc2bfb0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x558b7bc2bfb0-CharLiteralConstant" + }, + { + "id": "0x558b7bc2bfb0-CharLiteralConstant", + "string": "replace" + }, + { + "id": "0x558b7bc3b4f0-ConnectSpec", + "variantKey": "CharExpr", + "CharExpr": "0x558b7bc3b4f0-CharExpr" + }, + { + "id": "0x558b7bc3b4f0-CharExpr", + "Kind = Action": "0x558b7bc3b4f8-Kind = Action", + "Expr": "0x558b7bc2beb0-Expr" + }, + { + "id": "0x558b7bc3b4f8-Kind = Action", + "disambiguation": "Fortran::parser::ConnectSpec::CharExpr::Kind", + "value": "Access" + }, + { + "id": "0x558b7bc2beb0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc2bed0-LiteralConstant" + }, + { + "id": "0x558b7bc2bed0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x558b7bc2bed0-CharLiteralConstant" + }, + { + "id": "0x558b7bc2bed0-CharLiteralConstant", + "string": "direct" + }, + { + "id": "0x558b7bc38a50-ConnectSpec", + "variantKey": "Recl", + "Recl": "0x558b7bc38a50-Recl" + }, + { + "id": "0x558b7bc38a50-Recl", + "Expr": "0x558b7bc2bdd0-Expr" + }, + { + "id": "0x558b7bc2bdd0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc2bdf0-LiteralConstant" + }, + { + "id": "0x558b7bc2bdf0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x558b7bc2bdf0-IntLiteralConstant" + }, + { + "id": "0x558b7bc2bdf0-IntLiteralConstant", + "CharBlock": "16" + }, + { + "id": "0x558b7bc2b780-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x558b7bc2b780-ExecutableConstruct" + }, + { + "id": "0x558b7bc2b780-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x558b7bc2b780-Statement" + }, + { + "id": "0x558b7bc2b780-Statement", + "statement": "0x558b7bc2b790-ActionStmt", + "source": "open(newunit=u_stream, file='stream.bin', status='replace', access='stream')" + }, + { + "id": "0x558b7bc2b790-ActionStmt", + "variantKey": "OpenStmt", + "OpenStmt": "0x558b7bc37fd0-OpenStmt" + }, + { + "id": "0x558b7bc37fd0-OpenStmt", + "ConnectSpec": [ + "0x558b7bc38970-ConnectSpec", + "0x558b7bc388d0-ConnectSpec", + "0x558b7bc38890-ConnectSpec", + "0x558b7bc38910-ConnectSpec" + ] + }, + { + "id": "0x558b7bc38970-ConnectSpec", + "variantKey": "Newunit", + "Newunit": "0x558b7bc38970-Newunit" + }, + { + "id": "0x558b7bc38970-Newunit", + "Expr": "0x558b7bc38970-Variable" + }, + { + "id": "0x558b7bc38970-Variable", + "variantKey": "Designator", + "Designator": "0x558b7bc29f50-Designator" + }, + { + "id": "0x558b7bc29f50-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc29f60-DataRef" + }, + { + "id": "0x558b7bc29f60-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc29f60-Name" + }, + { + "id": "0x558b7bc29f60-Name", + "source": "u_stream" + }, + { + "id": "0x558b7bc388d0-ConnectSpec", + "variantKey": "Expr", + "Expr": "0x558b7bc2cbb0-Expr" + }, + { + "id": "0x558b7bc2cbb0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc2cbd0-LiteralConstant" + }, + { + "id": "0x558b7bc2cbd0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x558b7bc2cbd0-CharLiteralConstant" + }, + { + "id": "0x558b7bc2cbd0-CharLiteralConstant", + "string": "stream.bin" + }, + { + "id": "0x558b7bc38890-ConnectSpec", + "variantKey": "StatusExpr", + "StatusExpr": "0x558b7bc38890-StatusExpr" + }, + { + "id": "0x558b7bc38890-StatusExpr", + "Expr": "0x558b7bc2cad0-Expr" + }, + { + "id": "0x558b7bc2cad0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc2caf0-LiteralConstant" + }, + { + "id": "0x558b7bc2caf0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x558b7bc2caf0-CharLiteralConstant" + }, + { + "id": "0x558b7bc2caf0-CharLiteralConstant", + "string": "replace" + }, + { + "id": "0x558b7bc38910-ConnectSpec", + "variantKey": "CharExpr", + "CharExpr": "0x558b7bc38910-CharExpr" + }, + { + "id": "0x558b7bc38910-CharExpr", + "Kind = Action": "0x558b7bc38918-Kind = Action", + "Expr": "0x558b7bc2c9f0-Expr" + }, + { + "id": "0x558b7bc38918-Kind = Action", + "disambiguation": "Fortran::parser::ConnectSpec::CharExpr::Kind", + "value": "Access" + }, + { + "id": "0x558b7bc2c9f0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc2ca10-LiteralConstant" + }, + { + "id": "0x558b7bc2ca10-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x558b7bc2ca10-CharLiteralConstant" + }, + { + "id": "0x558b7bc2ca10-CharLiteralConstant", + "string": "stream" + }, + { + "id": "0x558b7bc2e250-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x558b7bc2e250-ExecutableConstruct" + }, + { + "id": "0x558b7bc2e250-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x558b7bc2e250-Statement" + }, + { + "id": "0x558b7bc2e250-Statement", + "statement": "0x558b7bc2e260-ActionStmt", + "source": "write(unit = u_seq, fmt = *, decimal = 'comma', sign = 'plus', round = 'up', delim = 'quote', iostat = ios, iomsg = io_message)" + }, + { + "id": "0x558b7bc2e260-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x558b7bc2e080-WriteStmt" + }, + { + "id": "0x558b7bc2e080-WriteStmt", + "controls": [ + "0x558b7bc2da60-IoControlSpec", + "0x558b7bc2cca0-IoControlSpec", + "0x558b7bc2cda0-IoControlSpec", + "0x558b7bc2cf80-IoControlSpec", + "0x558b7bc2d160-IoControlSpec", + "0x558b7bc2d340-IoControlSpec", + "0x558b7bc2d510-IoControlSpec", + "0x558b7bc2d960-IoControlSpec" + ], + "items": [] + }, + { + "id": "0x558b7bc2da60-IoControlSpec", + "variantKey": "IoUnit", + "IoUnit": "0x558b7bc2da60-IoUnit" + }, + { + "id": "0x558b7bc2da60-IoUnit", + "variantKey": "Expr", + "Expr": "0x558b7bc64e60-Expr" + }, + { + "id": "0x558b7bc64e60-Expr", + "variantKey": "Designator", + "Designator": "0x558b7bbfa4d0-Designator" + }, + { + "id": "0x558b7bbfa4d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bbfa4e0-DataRef" + }, + { + "id": "0x558b7bbfa4e0-DataRef", + "variantKey": "Name", + "Name": "0x558b7bbfa4e0-Name" + }, + { + "id": "0x558b7bbfa4e0-Name", + "source": "u_seq" + }, + { + "id": "0x558b7bc2cca0-IoControlSpec", + "variantKey": "Format", + "Format": "0x558b7bc2cca0-Format" + }, + { + "id": "0x558b7bc2cca0-Format", + "variantKey": "Star", + "Star": "0x558b7bc2cca0-Star" + }, + { + "id": "0x558b7bc2cca0-Star" + }, + { + "id": "0x558b7bc2cda0-IoControlSpec", + "variantKey": "CharExpr", + "CharExpr": "0x558b7bc2cda0-CharExpr" + }, + { + "id": "0x558b7bc2cda0-CharExpr", + "Kind = Decimal": "0x558b7bc2cda8-Kind = Decimal", + "Expr": "0x558b7bc299f0-Expr", + "kind": "Decimal" + }, + { + "id": "0x558b7bc2cda8-Kind = Decimal", + "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", + "value": "Decimal" + }, + { + "id": "0x558b7bc299f0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc29a10-LiteralConstant" + }, + { + "id": "0x558b7bc29a10-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x558b7bc29a10-CharLiteralConstant" + }, + { + "id": "0x558b7bc29a10-CharLiteralConstant", + "string": "comma" + }, + { + "id": "0x558b7bc2cf80-IoControlSpec", + "variantKey": "CharExpr", + "CharExpr": "0x558b7bc2cf80-CharExpr" + }, + { + "id": "0x558b7bc2cf80-CharExpr", + "Kind = Decimal": "0x558b7bc2cf88-Kind = Decimal", + "Expr": "0x558b7bc2ce90-Expr", + "kind": "Sign" + }, + { + "id": "0x558b7bc2cf88-Kind = Decimal", + "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", + "value": "Sign" + }, + { + "id": "0x558b7bc2ce90-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc2ceb0-LiteralConstant" + }, + { + "id": "0x558b7bc2ceb0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x558b7bc2ceb0-CharLiteralConstant" + }, + { + "id": "0x558b7bc2ceb0-CharLiteralConstant", + "string": "plus" + }, + { + "id": "0x558b7bc2d160-IoControlSpec", + "variantKey": "CharExpr", + "CharExpr": "0x558b7bc2d160-CharExpr" + }, + { + "id": "0x558b7bc2d160-CharExpr", + "Kind = Decimal": "0x558b7bc2d168-Kind = Decimal", + "Expr": "0x558b7bc2d070-Expr", + "kind": "Round" + }, + { + "id": "0x558b7bc2d168-Kind = Decimal", + "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", + "value": "Round" + }, + { + "id": "0x558b7bc2d070-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc2d090-LiteralConstant" + }, + { + "id": "0x558b7bc2d090-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x558b7bc2d090-CharLiteralConstant" + }, + { + "id": "0x558b7bc2d090-CharLiteralConstant", + "string": "up" + }, + { + "id": "0x558b7bc2d340-IoControlSpec", + "variantKey": "CharExpr", + "CharExpr": "0x558b7bc2d340-CharExpr" + }, + { + "id": "0x558b7bc2d340-CharExpr", + "Kind = Decimal": "0x558b7bc2d348-Kind = Decimal", + "Expr": "0x558b7bc2d250-Expr", + "kind": "Delim" + }, + { + "id": "0x558b7bc2d348-Kind = Decimal", + "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", + "value": "Delim" + }, + { + "id": "0x558b7bc2d250-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc2d270-LiteralConstant" + }, + { + "id": "0x558b7bc2d270-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x558b7bc2d270-CharLiteralConstant" + }, + { + "id": "0x558b7bc2d270-CharLiteralConstant", + "string": "quote" + }, + { + "id": "0x558b7bc2d510-IoControlSpec", + "variantKey": "StatVariable", + "StatVariable": "0x558b7bc2d510-StatVariable" + }, + { + "id": "0x558b7bc2d510-StatVariable", + "Expr": "0x558b7bc2d510-Variable" + }, + { + "id": "0x558b7bc2d510-Variable", + "variantKey": "Designator", + "Designator": "0x558b7bc2d430-Designator" + }, + { + "id": "0x558b7bc2d430-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc2d440-DataRef" + }, + { + "id": "0x558b7bc2d440-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc2d440-Name" + }, + { + "id": "0x558b7bc2d440-Name", + "source": "ios" + }, + { + "id": "0x558b7bc2d960-IoControlSpec", + "variantKey": "MsgVariable", + "MsgVariable": "0x558b7bc2d960-MsgVariable" + }, + { + "id": "0x558b7bc2d960-MsgVariable", + "Expr": "0x558b7bc2d960-Variable" + }, + { + "id": "0x558b7bc2d960-Variable", + "variantKey": "Designator", + "Designator": "0x558b7bc2d880-Designator" + }, + { + "id": "0x558b7bc2d880-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc2d890-DataRef" + }, + { + "id": "0x558b7bc2d890-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc2d890-Name" + }, + { + "id": "0x558b7bc2d890-Name", + "source": "io_message" + }, + { + "id": "0x558b7bc27770-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x558b7bc27770-ExecutableConstruct" + }, + { + "id": "0x558b7bc27770-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x558b7bc27770-Statement" + }, + { + "id": "0x558b7bc27770-Statement", + "statement": "0x558b7bc27780-ActionStmt", + "source": "write(unit = u_seq, nml = my_namelist, iostat = ios)" + }, + { + "id": "0x558b7bc27780-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x558b7bc2e840-WriteStmt" + }, + { + "id": "0x558b7bc2e840-WriteStmt", + "controls": [ + "0x558b7bc2e750-IoControlSpec", + "0x558b7bc2e550-IoControlSpec", + "0x558b7bc2e650-IoControlSpec" + ], + "items": [] + }, + { + "id": "0x558b7bc2e750-IoControlSpec", + "variantKey": "IoUnit", + "IoUnit": "0x558b7bc2e750-IoUnit" + }, + { + "id": "0x558b7bc2e750-IoUnit", + "variantKey": "Expr", + "Expr": "0x558b7bce1cf0-Expr" + }, + { + "id": "0x558b7bce1cf0-Expr", + "variantKey": "Designator", + "Designator": "0x558b7bc29ad0-Designator" + }, + { + "id": "0x558b7bc29ad0-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc29ae0-DataRef" + }, + { + "id": "0x558b7bc29ae0-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc29ae0-Name" + }, + { + "id": "0x558b7bc29ae0-Name", + "source": "u_seq" + }, + { + "id": "0x558b7bc2e550-IoControlSpec", + "variantKey": "Name", + "Name": "0x558b7bc2e550-Name" + }, + { + "id": "0x558b7bc2e550-Name", + "source": "my_namelist" + }, + { + "id": "0x558b7bc2e650-IoControlSpec", + "variantKey": "StatVariable", + "StatVariable": "0x558b7bc2e650-StatVariable" + }, + { + "id": "0x558b7bc2e650-StatVariable", + "Expr": "0x558b7bc2e650-Variable" + }, + { + "id": "0x558b7bc2e650-Variable", + "variantKey": "Designator", + "Designator": "0x558b7bc32610-Designator" + }, + { + "id": "0x558b7bc32610-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc32620-DataRef" + }, + { + "id": "0x558b7bc32620-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc32620-Name" + }, + { + "id": "0x558b7bc32620-Name", + "source": "ios" + }, + { + "id": "0x558b7bc2c2d0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x558b7bc2c2d0-ExecutableConstruct" + }, + { + "id": "0x558b7bc2c2d0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x558b7bc2c2d0-Statement" + }, + { + "id": "0x558b7bc2c2d0-Statement", + "statement": "0x558b7bc2c2e0-ActionStmt", + "source": "rewind(u_seq)" + }, + { + "id": "0x558b7bc2c2e0-ActionStmt", + "variantKey": "RewindStmt", + "RewindStmt": "0x558b7bc38340-RewindStmt" + }, + { + "id": "0x558b7bc38340-RewindStmt", + "PositionOrFlushSpec": [ + "0x558b7bc389b0-PositionOrFlushSpec" + ] + }, + { + "id": "0x558b7bc389b0-PositionOrFlushSpec", + "variantKey": "FileUnitNumber", + "FileUnitNumber": "0x558b7bc389b0-FileUnitNumber" + }, + { + "id": "0x558b7bc389b0-FileUnitNumber", + "Expr": "0x558b7bc2e460-Expr" + }, + { + "id": "0x558b7bc2e460-Expr", + "variantKey": "Designator", + "Designator": "0x558b7bc2b2c0-Designator" + }, + { + "id": "0x558b7bc2b2c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc2b2d0-DataRef" + }, + { + "id": "0x558b7bc2b2d0-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc2b2d0-Name" + }, + { + "id": "0x558b7bc2b2d0-Name", + "source": "u_seq" + }, + { + "id": "0x558b7bc2ff20-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x558b7bc2ff20-ExecutableConstruct" + }, + { + "id": "0x558b7bc2ff20-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x558b7bc2ff20-Statement" + }, + { + "id": "0x558b7bc2ff20-Statement", + "statement": "0x558b7bc2ff30-ActionStmt", + "source": "read(unit = u_seq, fmt = '(A)', advance = 'no', pad = 'yes', size = chars_read, eor = 100, err = 900, iostat = ios) text_buffer" + }, + { + "id": "0x558b7bc2ff30-ActionStmt", + "variantKey": "ReadStmt", + "ReadStmt": "0x558b7bc2fdc0-ReadStmt" + }, + { + "id": "0x558b7bc2fdc0-ReadStmt" + }, + { + "id": "0x558b7bc2fbb0-IoControlSpec", + "variantKey": "IoUnit", + "IoUnit": "0x558b7bc2fbb0-IoUnit" + }, + { + "id": "0x558b7bc2fbb0-IoUnit", + "variantKey": "Expr", + "Expr": "0x558b7bce1c10-Expr" + }, + { + "id": "0x558b7bce1c10-Expr", + "variantKey": "Designator", + "Designator": "0x558b7bc2f080-Designator" + }, + { + "id": "0x558b7bc2f080-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc2f090-DataRef" + }, + { + "id": "0x558b7bc2f090-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc2f090-Name" + }, + { + "id": "0x558b7bc2f090-Name", + "source": "u_seq" + }, + { + "id": "0x558b7bc2f450-IoControlSpec", + "variantKey": "Format", + "Format": "0x558b7bc2f450-Format" + }, + { + "id": "0x558b7bc2f450-Format", + "variantKey": "Expr", + "Expr": "0x558b7bc2f450-Expr" + }, + { + "id": "0x558b7bc2f450-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc2f470-LiteralConstant" + }, + { + "id": "0x558b7bc2f470-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x558b7bc2f470-CharLiteralConstant" + }, + { + "id": "0x558b7bc2f470-CharLiteralConstant", + "string": "(A)" + }, + { + "id": "0x558b7bc2f550-IoControlSpec", + "variantKey": "CharExpr", + "CharExpr": "0x558b7bc2f550-CharExpr" + }, + { + "id": "0x558b7bc2f550-CharExpr", + "Kind = Decimal": "0x558b7bc2f558-Kind = Decimal", + "Expr": "0x558b7bc2edd0-Expr", + "kind": "Advance" + }, + { + "id": "0x558b7bc2f558-Kind = Decimal", + "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", + "value": "Advance" + }, + { + "id": "0x558b7bc2edd0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc2edf0-LiteralConstant" + }, + { + "id": "0x558b7bc2edf0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x558b7bc2edf0-CharLiteralConstant" + }, + { + "id": "0x558b7bc2edf0-CharLiteralConstant", + "string": "no" + }, + { + "id": "0x558b7bc2f650-IoControlSpec", + "variantKey": "CharExpr", + "CharExpr": "0x558b7bc2f650-CharExpr" + }, + { + "id": "0x558b7bc2f650-CharExpr", + "Kind = Decimal": "0x558b7bc2f658-Kind = Decimal", + "Expr": "0x558b7bc2ec90-Expr", + "kind": "Pad" + }, + { + "id": "0x558b7bc2f658-Kind = Decimal", + "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", + "value": "Pad" + }, + { + "id": "0x558b7bc2ec90-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc2ecb0-LiteralConstant" + }, + { + "id": "0x558b7bc2ecb0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x558b7bc2ecb0-CharLiteralConstant" + }, + { + "id": "0x558b7bc2ecb0-CharLiteralConstant", + "string": "yes" + }, + { + "id": "0x558b7bc2f750-IoControlSpec", + "variantKey": "Size", + "Size": "0x558b7bc2f750-Size" + }, + { + "id": "0x558b7bc2f750-Size", + "Expr": "0x558b7bc2f750-Variable" + }, + { + "id": "0x558b7bc2f750-Variable", + "variantKey": "Designator", + "Designator": "0x558b7bc2f3e0-Designator" + }, + { + "id": "0x558b7bc2f3e0-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc2f3f0-DataRef" + }, + { + "id": "0x558b7bc2f3f0-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc2f3f0-Name" + }, + { + "id": "0x558b7bc2f3f0-Name", + "source": "chars_read" + }, + { + "id": "0x558b7bc2f850-IoControlSpec", + "variantKey": "EorLabel", + "EorLabel": "0x558b7bc2f850-EorLabel" + }, + { + "id": "0x558b7bc2f850-EorLabel", + "uint64_t": "100" + }, + { + "id": "0x558b7bc2f950-IoControlSpec", + "variantKey": "ErrLabel", + "ErrLabel": "0x558b7bc2f950-ErrLabel" + }, + { + "id": "0x558b7bc2f950-ErrLabel", + "uint64_t": "900" + }, + { + "id": "0x558b7bc2fab0-IoControlSpec", + "variantKey": "StatVariable", + "StatVariable": "0x558b7bc2fab0-StatVariable" + }, + { + "id": "0x558b7bc2fab0-StatVariable", + "Expr": "0x558b7bc2fab0-Variable" + }, + { + "id": "0x558b7bc2fab0-Variable", + "variantKey": "Designator", + "Designator": "0x558b7bc2fa40-Designator" + }, + { + "id": "0x558b7bc2fa40-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc2fa50-DataRef" + }, + { + "id": "0x558b7bc2fa50-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc2fa50-Name" + }, + { + "id": "0x558b7bc2fa50-Name", + "source": "ios" + }, + { + "id": "0x558b7bc38a10-InputItem", + "variantKey": "Variable", + "Variable": "0x558b7bc38a10-Variable" + }, + { + "id": "0x558b7bc38a10-Variable", + "variantKey": "Designator", + "Designator": "0x558b7bc2fd60-Designator" + }, + { + "id": "0x558b7bc2fd60-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc2fd70-DataRef" + }, + { + "id": "0x558b7bc2fd70-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc2fd70-Name" + }, + { + "id": "0x558b7bc2fd70-Name", + "source": "text_buffer" + }, + { + "id": "0x558b7bc2efd0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x558b7bc2efd0-ExecutableConstruct" + }, + { + "id": "0x558b7bc2efd0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x558b7bc2efd0-Statement" + }, + { + "id": "0x558b7bc2efd0-Statement", + "statement": "0x558b7bc2efe0-ActionStmt", + "label": "100", + "source": "100 continue" + }, + { + "id": "0x558b7bc2efe0-ActionStmt", + "variantKey": "ContinueStmt", + "ContinueStmt": "0x558b7bc2efe0-ContinueStmt" + }, + { + "id": "0x558b7bc2efe0-ContinueStmt" + }, + { + "id": "0x558b7bc30610-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x558b7bc30610-ExecutableConstruct" + }, + { + "id": "0x558b7bc30610-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x558b7bc30610-Statement" + }, + { + "id": "0x558b7bc30610-Statement", + "statement": "0x558b7bc30620-ActionStmt", + "source": "write(unit = u_dir, rec = 1, iostat = ios) val, x" + }, + { + "id": "0x558b7bc30620-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x558b7bc304b0-WriteStmt" + }, + { + "id": "0x558b7bc304b0-WriteStmt", + "controls": [ + "0x558b7bc30180-IoControlSpec", + "0x558b7bc2ff80-IoControlSpec", + "0x558b7bc30080-IoControlSpec" + ], + "items": [ + "0x558b7bc303d0-OutputItem", + "0x558b7bc302e0-OutputItem" + ] + }, + { + "id": "0x558b7bc30180-IoControlSpec", + "variantKey": "IoUnit", + "IoUnit": "0x558b7bc30180-IoUnit" + }, + { + "id": "0x558b7bc30180-IoUnit", + "variantKey": "Expr", + "Expr": "0x558b7bc3ffa0-Expr" + }, + { + "id": "0x558b7bc3ffa0-Expr", + "variantKey": "Designator", + "Designator": "0x558b7bc2c390-Designator" + }, + { + "id": "0x558b7bc2c390-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc2c3a0-DataRef" + }, + { + "id": "0x558b7bc2c3a0-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc2c3a0-Name" + }, + { + "id": "0x558b7bc2c3a0-Name", + "source": "u_dir" + }, + { + "id": "0x558b7bc2ff80-IoControlSpec", + "variantKey": "Rec", + "Rec": "0x558b7bc2ff80-Rec" + }, + { + "id": "0x558b7bc2ff80-Rec", + "Expr": "0x558b7bc2e990-Expr" + }, + { + "id": "0x558b7bc2e990-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc2e9b0-LiteralConstant" + }, + { + "id": "0x558b7bc2e9b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x558b7bc2e9b0-IntLiteralConstant" + }, + { + "id": "0x558b7bc2e9b0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x558b7bc30080-IoControlSpec", + "variantKey": "StatVariable", + "StatVariable": "0x558b7bc30080-StatVariable" + }, + { + "id": "0x558b7bc30080-StatVariable", + "Expr": "0x558b7bc30080-Variable" + }, + { + "id": "0x558b7bc30080-Variable", + "variantKey": "Designator", + "Designator": "0x558b7bc2c620-Designator" + }, + { + "id": "0x558b7bc2c620-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc2c630-DataRef" + }, + { + "id": "0x558b7bc2c630-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc2c630-Name" + }, + { + "id": "0x558b7bc2c630-Name", + "source": "ios" + }, + { + "id": "0x558b7bc303d0-OutputItem", + "variantKey": "Expr", + "Expr": "0x558b7bc303d0-Expr" + }, + { + "id": "0x558b7bc303d0-Expr", + "variantKey": "Designator", + "Designator": "0x558b7bc290b0-Designator" + }, + { + "id": "0x558b7bc290b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc290c0-DataRef" + }, + { + "id": "0x558b7bc290c0-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc290c0-Name" + }, + { + "id": "0x558b7bc290c0-Name", + "source": "val" + }, + { + "id": "0x558b7bc302e0-OutputItem", + "variantKey": "Expr", + "Expr": "0x558b7bc302e0-Expr" + }, + { + "id": "0x558b7bc302e0-Expr", + "variantKey": "Designator", + "Designator": "0x558b7bc30270-Designator" + }, + { + "id": "0x558b7bc30270-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc30280-DataRef" + }, + { + "id": "0x558b7bc30280-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc30280-Name" + }, + { + "id": "0x558b7bc30280-Name", + "source": "x" + }, + { + "id": "0x558b7bc2f030-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x558b7bc2f030-ExecutableConstruct" + }, + { + "id": "0x558b7bc2f030-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x558b7bc2f030-Statement" + }, + { + "id": "0x558b7bc2f030-Statement", + "statement": "0x558b7bc2f040-ActionStmt", + "source": "write(unit = u_stream, pos = 10, iostat = ios) \"Stream Header\"" + }, + { + "id": "0x558b7bc2f040-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x558b7bc30a50-WriteStmt" + }, + { + "id": "0x558b7bc30a50-WriteStmt", + "controls": [ + "0x558b7bc30870-IoControlSpec", + "0x558b7bc30670-IoControlSpec", + "0x558b7bc30770-IoControlSpec" + ], + "items": [ + "0x558b7bc30970-OutputItem" + ] + }, + { + "id": "0x558b7bc30870-IoControlSpec", + "variantKey": "IoUnit", + "IoUnit": "0x558b7bc30870-IoUnit" + }, + { + "id": "0x558b7bc30870-IoUnit", + "variantKey": "Expr", + "Expr": "0x558b7bc3fec0-Expr" + }, + { + "id": "0x558b7bc3fec0-Expr", + "variantKey": "Designator", + "Designator": "0x558b7bc2fca0-Designator" + }, + { + "id": "0x558b7bc2fca0-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc2fcb0-DataRef" + }, + { + "id": "0x558b7bc2fcb0-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc2fcb0-Name" + }, + { + "id": "0x558b7bc2fcb0-Name", + "source": "u_stream" + }, + { + "id": "0x558b7bc30670-IoControlSpec", + "variantKey": "Pos", + "Pos": "0x558b7bc30670-Pos" + }, + { + "id": "0x558b7bc30670-Pos", + "Expr": "0x558b7bc2e2a0-Expr" + }, + { + "id": "0x558b7bc2e2a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc2e2c0-LiteralConstant" + }, + { + "id": "0x558b7bc2e2c0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x558b7bc2e2c0-IntLiteralConstant" + }, + { + "id": "0x558b7bc2e2c0-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x558b7bc30770-IoControlSpec", + "variantKey": "StatVariable", + "StatVariable": "0x558b7bc30770-StatVariable" + }, + { + "id": "0x558b7bc30770-StatVariable", + "Expr": "0x558b7bc30770-Variable" + }, + { + "id": "0x558b7bc30770-Variable", + "variantKey": "Designator", + "Designator": "0x558b7bc29540-Designator" + }, + { + "id": "0x558b7bc29540-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc29550-DataRef" + }, + { + "id": "0x558b7bc29550-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc29550-Name" + }, + { + "id": "0x558b7bc29550-Name", + "source": "ios" + }, + { + "id": "0x558b7bc30970-OutputItem", + "variantKey": "Expr", + "Expr": "0x558b7bc30970-Expr" + }, + { + "id": "0x558b7bc30970-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc30990-LiteralConstant" + }, + { + "id": "0x558b7bc30990-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x558b7bc30990-CharLiteralConstant" + }, + { + "id": "0x558b7bc30990-CharLiteralConstant", + "string": "Stream Header" + }, + { + "id": "0x558b7bc317b0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x558b7bc317b0-ExecutableConstruct" + }, + { + "id": "0x558b7bc317b0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x558b7bc317b0-Statement" + }, + { + "id": "0x558b7bc317b0-Statement", + "statement": "0x558b7bc317c0-ActionStmt", + "source": "write(unit = u_seq, fmt = '(I5)', asynchronous = 'yes', id = async_id, iostat = ios) val" + }, + { + "id": "0x558b7bc317c0-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x558b7bc31650-WriteStmt" + }, + { + "id": "0x558b7bc31650-WriteStmt", + "controls": [ + "0x558b7bc31350-IoControlSpec", + "0x558b7bc30ef0-IoControlSpec", + "0x558b7bc30ff0-IoControlSpec", + "0x558b7bc310f0-IoControlSpec", + "0x558b7bc31250-IoControlSpec" + ], + "items": [ + "0x558b7bc31570-OutputItem" + ] + }, + { + "id": "0x558b7bc31350-IoControlSpec", + "variantKey": "IoUnit", + "IoUnit": "0x558b7bc31350-IoUnit" + }, + { + "id": "0x558b7bc31350-IoUnit", + "variantKey": "Expr", + "Expr": "0x558b7bce1dd0-Expr" + }, + { + "id": "0x558b7bce1dd0-Expr", + "variantKey": "Designator", + "Designator": "0x558b7bc30d40-Designator" + }, + { + "id": "0x558b7bc30d40-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc30d50-DataRef" + }, + { + "id": "0x558b7bc30d50-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc30d50-Name" + }, + { + "id": "0x558b7bc30d50-Name", + "source": "u_seq" + }, + { + "id": "0x558b7bc30ef0-IoControlSpec", + "variantKey": "Format", + "Format": "0x558b7bc30ef0-Format" + }, + { + "id": "0x558b7bc30ef0-Format", + "variantKey": "Expr", + "Expr": "0x558b7bc30ef0-Expr" + }, + { + "id": "0x558b7bc30ef0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc30f10-LiteralConstant" + }, + { + "id": "0x558b7bc30f10-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x558b7bc30f10-CharLiteralConstant" + }, + { + "id": "0x558b7bc30f10-CharLiteralConstant", + "string": "(I5)" + }, + { + "id": "0x558b7bc30ff0-IoControlSpec", + "variantKey": "Asynchronous", + "Asynchronous": "0x558b7bc30ff0-Asynchronous" + }, + { + "id": "0x558b7bc30ff0-Asynchronous", + "Expr": "0x558b7bc30da0-Expr" + }, + { + "id": "0x558b7bc30da0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc30dc0-LiteralConstant" + }, + { + "id": "0x558b7bc30dc0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x558b7bc30dc0-CharLiteralConstant" + }, + { + "id": "0x558b7bc30dc0-CharLiteralConstant", + "string": "yes" + }, + { + "id": "0x558b7bc310f0-IoControlSpec", + "variantKey": "IdVariable", + "IdVariable": "0x558b7bc310f0-IdVariable" + }, + { + "id": "0x558b7bc310f0-IdVariable", + "Expr": "0x558b7bc310f0-Variable" + }, + { + "id": "0x558b7bc310f0-Variable", + "variantKey": "Designator", + "Designator": "0x558b7bc30e80-Designator" + }, + { + "id": "0x558b7bc30e80-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc30e90-DataRef" + }, + { + "id": "0x558b7bc30e90-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc30e90-Name" + }, + { + "id": "0x558b7bc30e90-Name", + "source": "async_id" + }, + { + "id": "0x558b7bc31250-IoControlSpec", + "variantKey": "StatVariable", + "StatVariable": "0x558b7bc31250-StatVariable" + }, + { + "id": "0x558b7bc31250-StatVariable", + "Expr": "0x558b7bc31250-Variable" + }, + { + "id": "0x558b7bc31250-Variable", + "variantKey": "Designator", + "Designator": "0x558b7bc311e0-Designator" + }, + { + "id": "0x558b7bc311e0-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc311f0-DataRef" + }, + { + "id": "0x558b7bc311f0-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc311f0-Name" + }, + { + "id": "0x558b7bc311f0-Name", + "source": "ios" + }, + { + "id": "0x558b7bc31570-OutputItem", + "variantKey": "Expr", + "Expr": "0x558b7bc31570-Expr" + }, + { + "id": "0x558b7bc31570-Expr", + "variantKey": "Designator", + "Designator": "0x558b7bc31500-Designator" + }, + { + "id": "0x558b7bc31500-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc31510-DataRef" + }, + { + "id": "0x558b7bc31510-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc31510-Name" + }, + { + "id": "0x558b7bc31510-Name", + "source": "val" + }, + { + "id": "0x558b7bc2fd10-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x558b7bc2fd10-ExecutableConstruct" + }, + { + "id": "0x558b7bc2fd10-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x558b7bc2fd10-Statement" + }, + { + "id": "0x558b7bc2fd10-Statement", + "statement": "0x558b7bc2fd20-ActionStmt", + "source": "wait(unit=u_seq, id=async_id)" + }, + { + "id": "0x558b7bc2fd20-ActionStmt", + "variantKey": "WaitStmt", + "WaitStmt": "0x558b7bc38940-WaitStmt" + }, + { + "id": "0x558b7bc38940-WaitStmt", + "WaitSpec": [ + "0x558b7bc385b0-WaitSpec", + "0x558b7bc387e0-WaitSpec" + ] + }, + { + "id": "0x558b7bc385b0-WaitSpec", + "variantKey": "FileUnitNumber", + "FileUnitNumber": "0x558b7bc385b0-FileUnitNumber" + }, + { + "id": "0x558b7bc385b0-FileUnitNumber", + "Expr": "0x558b7bc2e380-Expr" + }, + { + "id": "0x558b7bc2e380-Expr", + "variantKey": "Designator", + "Designator": "0x558b7bc2ae80-Designator" + }, + { + "id": "0x558b7bc2ae80-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc2ae90-DataRef" + }, + { + "id": "0x558b7bc2ae90-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc2ae90-Name" + }, + { + "id": "0x558b7bc2ae90-Name", + "source": "u_seq" + }, + { + "id": "0x558b7bc387e0-WaitSpec", + "variantKey": "IdExpr", + "IdExpr": "0x558b7bc387e0-IdExpr" + }, + { + "id": "0x558b7bc387e0-IdExpr", + "Expr": "0x558b7bc30ba0-Expr" + }, + { + "id": "0x558b7bc30ba0-Expr", + "variantKey": "Designator", + "Designator": "0x558b7bc2ba00-Designator" + }, + { + "id": "0x558b7bc2ba00-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc2ba10-DataRef" + }, + { + "id": "0x558b7bc2ba10-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc2ba10-Name" + }, + { + "id": "0x558b7bc2ba10-Name", + "source": "async_id" + }, + { + "id": "0x558b7bc2f1f0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x558b7bc2f1f0-ExecutableConstruct" + }, + { + "id": "0x558b7bc2f1f0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x558b7bc2f1f0-Statement" + }, + { + "id": "0x558b7bc2f1f0-Statement", + "statement": "0x558b7bc2f200-ActionStmt", + "source": "read(unit = u_seq, fmt = '(I5)', blank = 'zero', end = 200, err = 900, iostat = ios) val" + }, + { + "id": "0x558b7bc2f200-ActionStmt", + "variantKey": "ReadStmt", + "ReadStmt": "0x558b7bc40c10-ReadStmt" + }, + { + "id": "0x558b7bc40c10-ReadStmt" + }, + { + "id": "0x558b7bc40b20-IoControlSpec", + "variantKey": "IoUnit", + "IoUnit": "0x558b7bc40b20-IoUnit" + }, + { + "id": "0x558b7bc40b20-IoUnit", + "variantKey": "Expr", + "Expr": "0x558b7bce1eb0-Expr" + }, + { + "id": "0x558b7bce1eb0-Expr", + "variantKey": "Designator", + "Designator": "0x558b7bc31aa0-Designator" + }, + { + "id": "0x558b7bc31aa0-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc31ab0-DataRef" + }, + { + "id": "0x558b7bc31ab0-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc31ab0-Name" + }, + { + "id": "0x558b7bc31ab0-Name", + "source": "u_seq" + }, + { + "id": "0x558b7bc31cb0-IoControlSpec", + "variantKey": "Format", + "Format": "0x558b7bc31cb0-Format" + }, + { + "id": "0x558b7bc31cb0-Format", + "variantKey": "Expr", + "Expr": "0x558b7bc31cb0-Expr" + }, + { + "id": "0x558b7bc31cb0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc31cd0-LiteralConstant" + }, + { + "id": "0x558b7bc31cd0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x558b7bc31cd0-CharLiteralConstant" + }, + { + "id": "0x558b7bc31cd0-CharLiteralConstant", + "string": "(I5)" + }, + { + "id": "0x558b7bc31db0-IoControlSpec", + "variantKey": "CharExpr", + "CharExpr": "0x558b7bc31db0-CharExpr" + }, + { + "id": "0x558b7bc31db0-CharExpr", + "Kind = Decimal": "0x558b7bc31db8-Kind = Decimal", + "Expr": "0x558b7bc31b00-Expr", + "kind": "Blank" + }, + { + "id": "0x558b7bc31db8-Kind = Decimal", + "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", + "value": "Blank" + }, + { + "id": "0x558b7bc31b00-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc31b20-LiteralConstant" + }, + { + "id": "0x558b7bc31b20-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x558b7bc31b20-CharLiteralConstant" + }, + { + "id": "0x558b7bc31b20-CharLiteralConstant", + "string": "zero" + }, + { + "id": "0x558b7bc31eb0-IoControlSpec", + "variantKey": "EndLabel", + "EndLabel": "0x558b7bc31eb0-EndLabel" + }, + { + "id": "0x558b7bc31eb0-EndLabel", + "uint64_t": "200" + }, + { + "id": "0x558b7bc31fb0-IoControlSpec", + "variantKey": "ErrLabel", + "ErrLabel": "0x558b7bc31fb0-ErrLabel" + }, + { + "id": "0x558b7bc31fb0-ErrLabel", + "uint64_t": "900" + }, + { + "id": "0x558b7bc2f0f0-IoControlSpec", + "variantKey": "StatVariable", + "StatVariable": "0x558b7bc2f0f0-StatVariable" + }, + { + "id": "0x558b7bc2f0f0-StatVariable", + "Expr": "0x558b7bc2f0f0-Variable" + }, + { + "id": "0x558b7bc2f0f0-Variable", + "variantKey": "Designator", + "Designator": "0x558b7bc31c40-Designator" + }, + { + "id": "0x558b7bc31c40-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc31c50-DataRef" + }, + { + "id": "0x558b7bc31c50-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc31c50-Name" + }, + { + "id": "0x558b7bc31c50-Name", + "source": "ios" + }, + { + "id": "0x558b7bc385f0-InputItem", + "variantKey": "Variable", + "Variable": "0x558b7bc385f0-Variable" + }, + { + "id": "0x558b7bc385f0-Variable", + "variantKey": "Designator", + "Designator": "0x558b7bc32100-Designator" + }, + { + "id": "0x558b7bc32100-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc32110-DataRef" + }, + { + "id": "0x558b7bc32110-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc32110-Name" + }, + { + "id": "0x558b7bc32110-Name", + "source": "val" + }, + { + "id": "0x558b7bc2c270-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x558b7bc2c270-ExecutableConstruct" + }, + { + "id": "0x558b7bc2c270-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x558b7bc2c270-Statement" + }, + { + "id": "0x558b7bc2c270-Statement", + "statement": "0x558b7bc2c280-ActionStmt", + "label": "200", + "source": "200 continue" + }, + { + "id": "0x558b7bc2c280-ActionStmt", + "variantKey": "ContinueStmt", + "ContinueStmt": "0x558b7bc2c280-ContinueStmt" + }, + { + "id": "0x558b7bc2c280-ContinueStmt" + }, + { + "id": "0x558b7bc320b0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x558b7bc320b0-ExecutableConstruct" + }, + { + "id": "0x558b7bc320b0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x558b7bc320b0-Statement" + }, + { + "id": "0x558b7bc320b0-Statement", + "statement": "0x558b7bc320c0-ActionStmt", + "source": "print *, \"All 20 io-control-spec items demonstrated successfully!\"" + }, + { + "id": "0x558b7bc320c0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x558b7bc40e50-PrintStmt" + }, + { + "id": "0x558b7bc40e50-PrintStmt", + "Format": "0x558b7bc40e68-Format", + "OutputItem": [ + "0x558b7bc40d70-OutputItem" + ] + }, + { + "id": "0x558b7bc40e68-Format", + "variantKey": "Star", + "Star": "0x558b7bc40e68-Star" + }, + { + "id": "0x558b7bc40e68-Star" + }, + { + "id": "0x558b7bc40d70-OutputItem", + "variantKey": "Expr", + "Expr": "0x558b7bc40d70-Expr" + }, + { + "id": "0x558b7bc40d70-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc40d90-LiteralConstant" + }, + { + "id": "0x558b7bc40d90-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x558b7bc40d90-CharLiteralConstant" + }, + { + "id": "0x558b7bc40d90-CharLiteralConstant", + "string": "All 20 io-control-spec items demonstrated successfully!" + }, + { + "id": "0x558b7bc2ec40-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x558b7bc2ec40-ExecutableConstruct" + }, + { + "id": "0x558b7bc2ec40-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x558b7bc2ec40-Statement" + }, + { + "id": "0x558b7bc2ec40-Statement", + "statement": "0x558b7bc2ec50-ActionStmt", + "source": "close(u_seq, status='delete')" + }, + { + "id": "0x558b7bc2ec50-ActionStmt", + "variantKey": "CloseStmt", + "CloseStmt": "0x558b7bc38030-CloseStmt" + }, + { + "id": "0x558b7bc38030-CloseStmt", + "CloseSpec": [ + "0x558b7bc38690-CloseSpec", + "0x558b7bc38650-CloseSpec" + ] + }, + { + "id": "0x558b7bc38690-CloseSpec", + "variantKey": "FileUnitNumber", + "FileUnitNumber": "0x558b7bc38690-FileUnitNumber" + }, + { + "id": "0x558b7bc38690-FileUnitNumber", + "Expr": "0x558b7bc319c0-Expr" + }, + { + "id": "0x558b7bc319c0-Expr", + "variantKey": "Designator", + "Designator": "0x558b7bc2ed70-Designator" + }, + { + "id": "0x558b7bc2ed70-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc2ed80-DataRef" + }, + { + "id": "0x558b7bc2ed80-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc2ed80-Name" + }, + { + "id": "0x558b7bc2ed80-Name", + "source": "u_seq" + }, + { + "id": "0x558b7bc38650-CloseSpec", + "variantKey": "StatusExpr", + "StatusExpr": "0x558b7bc38650-StatusExpr" + }, + { + "id": "0x558b7bc38650-StatusExpr", + "Expr": "0x558b7bc318e0-Expr" + }, + { + "id": "0x558b7bc318e0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc31900-LiteralConstant" + }, + { + "id": "0x558b7bc31900-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x558b7bc31900-CharLiteralConstant" + }, + { + "id": "0x558b7bc31900-CharLiteralConstant", + "string": "delete" + }, + { + "id": "0x558b7bc2b0b0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x558b7bc2b0b0-ExecutableConstruct" + }, + { + "id": "0x558b7bc2b0b0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x558b7bc2b0b0-Statement" + }, + { + "id": "0x558b7bc2b0b0-Statement", + "statement": "0x558b7bc2b0c0-ActionStmt", + "source": "close(u_dir, status='delete')" + }, + { + "id": "0x558b7bc2b0c0-ActionStmt", + "variantKey": "CloseStmt", + "CloseStmt": "0x558b7bc38620-CloseStmt" + }, + { + "id": "0x558b7bc38620-CloseStmt", + "CloseSpec": [ + "0x558b7bc38740-CloseSpec", + "0x558b7bc38700-CloseSpec" + ] + }, + { + "id": "0x558b7bc38740-CloseSpec", + "variantKey": "FileUnitNumber", + "FileUnitNumber": "0x558b7bc38740-FileUnitNumber" + }, + { + "id": "0x558b7bc38740-FileUnitNumber", + "Expr": "0x558b7bc31800-Expr" + }, + { + "id": "0x558b7bc31800-Expr", + "variantKey": "Designator", + "Designator": "0x558b7bc2d600-Designator" + }, + { + "id": "0x558b7bc2d600-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc2d610-DataRef" + }, + { + "id": "0x558b7bc2d610-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc2d610-Name" + }, + { + "id": "0x558b7bc2d610-Name", + "source": "u_dir" + }, + { + "id": "0x558b7bc38700-CloseSpec", + "variantKey": "StatusExpr", + "StatusExpr": "0x558b7bc38700-StatusExpr" + }, + { + "id": "0x558b7bc38700-StatusExpr", + "Expr": "0x558b7bc2eb50-Expr" + }, + { + "id": "0x558b7bc2eb50-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc2eb70-LiteralConstant" + }, + { + "id": "0x558b7bc2eb70-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x558b7bc2eb70-CharLiteralConstant" + }, + { + "id": "0x558b7bc2eb70-CharLiteralConstant", + "string": "delete" + }, + { + "id": "0x558b7bc29740-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x558b7bc29740-ExecutableConstruct" + }, + { + "id": "0x558b7bc29740-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x558b7bc29740-Statement" + }, + { + "id": "0x558b7bc29740-Statement", + "statement": "0x558b7bc29750-ActionStmt", + "source": "close(u_stream, status='delete')" + }, + { + "id": "0x558b7bc29750-ActionStmt", + "variantKey": "CloseStmt", + "CloseStmt": "0x558b7bc37f10-CloseStmt" + }, + { + "id": "0x558b7bc37f10-CloseStmt", + "CloseSpec": [ + "0x558b7bc38530-CloseSpec", + "0x558b7bc38780-CloseSpec" + ] + }, + { + "id": "0x558b7bc38530-CloseSpec", + "variantKey": "FileUnitNumber", + "FileUnitNumber": "0x558b7bc38530-FileUnitNumber" + }, + { + "id": "0x558b7bc38530-FileUnitNumber", + "Expr": "0x558b7bc2ea70-Expr" + }, + { + "id": "0x558b7bc2ea70-Expr", + "variantKey": "Designator", + "Designator": "0x558b7bc2b550-Designator" + }, + { + "id": "0x558b7bc2b550-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc2b560-DataRef" + }, + { + "id": "0x558b7bc2b560-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc2b560-Name" + }, + { + "id": "0x558b7bc2b560-Name", + "source": "u_stream" + }, + { + "id": "0x558b7bc38780-CloseSpec", + "variantKey": "StatusExpr", + "StatusExpr": "0x558b7bc38780-StatusExpr" + }, + { + "id": "0x558b7bc38780-StatusExpr", + "Expr": "0x558b7bc40f50-Expr" + }, + { + "id": "0x558b7bc40f50-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc40f70-LiteralConstant" + }, + { + "id": "0x558b7bc40f70-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x558b7bc40f70-CharLiteralConstant" + }, + { + "id": "0x558b7bc40f70-CharLiteralConstant", + "string": "delete" + }, + { + "id": "0x558b7bc314b0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x558b7bc314b0-ExecutableConstruct" + }, + { + "id": "0x558b7bc314b0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x558b7bc314b0-Statement" + }, + { + "id": "0x558b7bc314b0-Statement", + "statement": "0x558b7bc314c0-ActionStmt", + "source": "stop" + }, + { + "id": "0x558b7bc314c0-ActionStmt", + "variantKey": "StopStmt", + "StopStmt": "0x558b7bc41030-StopStmt" + }, + { + "id": "0x558b7bc41030-StopStmt", + "kind": "0x558b7bc41118-Kind = Stop" + }, + { + "id": "0x558b7bc41118-Kind = Stop", + "disambiguation": "Fortran::parser::StopStmt::Kind", + "value": "Stop" + }, + { + "id": "0x558b7bc415c0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x558b7bc415c0-ExecutableConstruct" + }, + { + "id": "0x558b7bc415c0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x558b7bc415c0-Statement" + }, + { + "id": "0x558b7bc415c0-Statement", + "statement": "0x558b7bc415d0-ActionStmt", + "label": "900", + "source": "900 print *, \"I/O Error Occurred: \", trim(io_message)" + }, + { + "id": "0x558b7bc415d0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x558b7bc41450-PrintStmt" + }, + { + "id": "0x558b7bc41450-PrintStmt", + "Format": "0x558b7bc41468-Format", + "OutputItem": [ + "0x558b7bc41370-OutputItem", + "0x558b7bc41280-OutputItem" + ] + }, + { + "id": "0x558b7bc41468-Format", + "variantKey": "Star", + "Star": "0x558b7bc41468-Star" + }, + { + "id": "0x558b7bc41468-Star" + }, + { + "id": "0x558b7bc41370-OutputItem", + "variantKey": "Expr", + "Expr": "0x558b7bc41370-Expr" + }, + { + "id": "0x558b7bc41370-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b7bc41390-LiteralConstant" + }, + { + "id": "0x558b7bc41390-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x558b7bc41390-CharLiteralConstant" + }, + { + "id": "0x558b7bc41390-CharLiteralConstant", + "string": "I/O Error Occurred: " + }, + { + "id": "0x558b7bc41280-OutputItem", + "variantKey": "Expr", + "Expr": "0x558b7bc41280-Expr" + }, + { + "id": "0x558b7bc41280-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x558b7bc2b8b0-FunctionReference" + }, + { + "id": "0x558b7bc2b8b0-FunctionReference", + "Call": "0x558b7bc2b8b0-Call" + }, + { + "id": "0x558b7bc2b8b0-Call", + "ProcedureDesignator": "0x558b7bc2b8c8-ProcedureDesignator", + "ActualArgSpec": [ + "0x558b7bc29e50-ActualArgSpec" + ] + }, + { + "id": "0x558b7bc2b8c8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x558b7bc2b8c8-Name" + }, + { + "id": "0x558b7bc2b8c8-Name", + "source": "trim" + }, + { + "id": "0x558b7bc29e50-ActualArgSpec", + "ActualArg": "0x558b7bc29e50-ActualArg" + }, + { + "id": "0x558b7bc29e50-ActualArg", + "variantKey": "Expr", + "Expr": "0x558b7bc41130-Expr" + }, + { + "id": "0x558b7bc41130-Expr", + "variantKey": "Designator", + "Designator": "0x558b7bc2f240-Designator" + }, + { + "id": "0x558b7bc2f240-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b7bc2f250-DataRef" + }, + { + "id": "0x558b7bc2f250-DataRef", + "variantKey": "Name", + "Name": "0x558b7bc2f250-Name" + }, + { + "id": "0x558b7bc2f250-Name", + "source": "io_message" + }, + { + "id": "0x558b7bc39a60-Statement", + "statement": "0x558b7bc39a70-EndProgramStmt", + "source": "end program IO_CONTROL_SPECS" + }, + { + "id": "0x558b7bc39a70-EndProgramStmt", + "Name": "0x558b7bc39a70-Name" + }, + { + "id": "0x558b7bc39a70-Name", + "source": "IO_CONTROL_SPECS" + } + ], + "comments": [ + { + "text": " Define a namelist for the NML specifier demo", + "stmtId": "0x558b7bc08da0-Statement", + "trailing": false + }, + { + "text": " Open temporary test files (Sequential, Direct, Stream)", + "stmtId": "0x558b7bc29190-Statement", + "trailing": false + }, + { + "text": " -----------------------------------------------------------------", + "stmtId": "0x558b7bc2e250-Statement", + "trailing": false + }, + { + "text": " 1. Formatting, Rounding, Decimal, Sign, Delim, IOSTAT & IOMSG", + "stmtId": "0x558b7bc2e250-Statement", + "trailing": false + }, + { + "text": " -----------------------------------------------------------------", + "stmtId": "0x558b7bc2e250-Statement", + "trailing": false + }, + { + "text": " 1. Specifier: UNIT", + "stmtId": "0x558b7bc2e250-Statement", + "trailing": true + }, + { + "text": " 2. Specifier: FMT", + "stmtId": "0x558b7bc27770-Statement", + "trailing": false + }, + { + "text": " 3. Specifier: DECIMAL ('point' or 'comma')", + "stmtId": "0x558b7bc27770-Statement", + "trailing": false + }, + { + "text": " 4. Specifier: SIGN ('plus', 'suppress', 'processor_defined')", + "stmtId": "0x558b7bc27770-Statement", + "trailing": false + }, + { + "text": " 5. Specifier: ROUND ('up', 'down', 'zero', 'nearest', etc.)", + "stmtId": "0x558b7bc27770-Statement", + "trailing": false + }, + { + "text": " 6. Specifier: DELIM ('apostrophe', 'quote', 'none')", + "stmtId": "0x558b7bc27770-Statement", + "trailing": false + }, + { + "text": " 7. Specifier: IOSTAT (returns 0 on success)", + "stmtId": "0x558b7bc27770-Statement", + "trailing": false + }, + { + "text": " 8. Specifier: IOMSG (returns description on error)", + "stmtId": "0x558b7bc27770-Statement", + "trailing": false + }, + { + "text": " -----------------------------------------------------------------", + "stmtId": "0x558b7bc27770-Statement", + "trailing": false + }, + { + "text": " 2. Namelist Specifier (NML)", + "stmtId": "0x558b7bc27770-Statement", + "trailing": false + }, + { + "text": " -----------------------------------------------------------------", + "stmtId": "0x558b7bc27770-Statement", + "trailing": false + }, + { + "text": " 9. Specifier: NML", + "stmtId": "0x558b7bc2c2d0-Statement", + "trailing": false + }, + { + "text": " -----------------------------------------------------------------", + "stmtId": "0x558b7bc2c2d0-Statement", + "trailing": false + }, + { + "text": " 3. Non-Advancing I/O (ADVANCE, SIZE, PAD, EOR, ERR)", + "stmtId": "0x558b7bc2c2d0-Statement", + "trailing": false + }, + { + "text": " -----------------------------------------------------------------", + "stmtId": "0x558b7bc2c2d0-Statement", + "trailing": false + }, + { + "text": " 10. Specifier: ADVANCE ('yes' or 'no')", + "stmtId": "0x558b7bc2efd0-Statement", + "trailing": false + }, + { + "text": " 11. Specifier: PAD ('yes' or 'no')", + "stmtId": "0x558b7bc2efd0-Statement", + "trailing": false + }, + { + "text": " 12. Specifier: SIZE (stores count of chars read)", + "stmtId": "0x558b7bc2efd0-Statement", + "trailing": false + }, + { + "text": " 13. Specifier: EOR (label branch on End-Of-Record)", + "stmtId": "0x558b7bc2efd0-Statement", + "trailing": false + }, + { + "text": " 14. Specifier: ERR (label branch on error)", + "stmtId": "0x558b7bc2efd0-Statement", + "trailing": false + }, + { + "text": " -----------------------------------------------------------------", + "stmtId": "0x558b7bc30610-Statement", + "trailing": false + }, + { + "text": " 4. Direct Access (REC)", + "stmtId": "0x558b7bc30610-Statement", + "trailing": false + }, + { + "text": " -----------------------------------------------------------------", + "stmtId": "0x558b7bc30610-Statement", + "trailing": false + }, + { + "text": " 15. Specifier: REC (record number)", + "stmtId": "0x558b7bc2f030-Statement", + "trailing": false + }, + { + "text": " -----------------------------------------------------------------", + "stmtId": "0x558b7bc2f030-Statement", + "trailing": false + }, + { + "text": " 5. Stream Access (POS)", + "stmtId": "0x558b7bc2f030-Statement", + "trailing": false + }, + { + "text": " -----------------------------------------------------------------", + "stmtId": "0x558b7bc2f030-Statement", + "trailing": false + }, + { + "text": " 16. Specifier: POS (file byte position offset)", + "stmtId": "0x558b7bc317b0-Statement", + "trailing": false + }, + { + "text": " -----------------------------------------------------------------", + "stmtId": "0x558b7bc317b0-Statement", + "trailing": false + }, + { + "text": " 6. Asynchronous Non-Blocking I/O (ASYNCHRONOUS, ID)", + "stmtId": "0x558b7bc317b0-Statement", + "trailing": false + }, + { + "text": " -----------------------------------------------------------------", + "stmtId": "0x558b7bc317b0-Statement", + "trailing": false + }, + { + "text": " 17. Specifier: ASYNCHRONOUS ('yes' or 'no')", + "stmtId": "0x558b7bc2fd10-Statement", + "trailing": false + }, + { + "text": " 18. Specifier: ID (holds async operation handle)", + "stmtId": "0x558b7bc2fd10-Statement", + "trailing": false + }, + { + "text": " Wait for async operation to complete before continuing", + "stmtId": "0x558b7bc2fd10-Statement", + "trailing": false + }, + { + "text": " -----------------------------------------------------------------", + "stmtId": "0x558b7bc2f1f0-Statement", + "trailing": false + }, + { + "text": " 7. Input Blank Handling and EOF Branching (BLANK, END)", + "stmtId": "0x558b7bc2f1f0-Statement", + "trailing": false + }, + { + "text": " -----------------------------------------------------------------", + "stmtId": "0x558b7bc2f1f0-Statement", + "trailing": false + }, + { + "text": " 19. Specifier: BLANK ('null' or 'zero')", + "stmtId": "0x558b7bc2c270-Statement", + "trailing": false + }, + { + "text": " 20. Specifier: END (label branch on End-Of-File)", + "stmtId": "0x558b7bc2c270-Statement", + "trailing": false + }, + { + "text": " Clean up files", + "stmtId": "0x558b7bc2ec40-Statement", + "trailing": false + } + ], + "enums": { + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "Fortran::common::ImportKind": [ + "Default", + "Only", + "None", + "All" + ], + "Fortran::common::OmpDependenceKind": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::common::OmpMemoryOrderType": [ + "Acq_Rel", + "Acquire", + "Relaxed", + "Release", + "Seq_Cst" + ], + "Fortran::common::OpenACCDeviceType": [ + "Star", + "Default", + "Nvidia", + "Radeon", + "Host", + "Multicore", + "None" + ], + "Fortran::parser::AccDataModifier::Modifier": [ + "ReadOnly", + "Zero" + ], + "Fortran::parser::AccessSpec::Kind": [ + "Public", + "Private" + ], + "Fortran::parser::BindEntity::Kind": [ + "Object", + "Common" + ], + "Fortran::parser::CompilerDirective::VectorLength::Kind": [ + "Auto", + "Fixed", + "Scalable" + ], + "Fortran::parser::ConnectSpec::CharExpr::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Encoding", + "Form", + "Pad", + "Position", + "Round", + "Sign", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::DefinedOperator::IntrinsicOperator": [ + "Power", + "Multiply", + "Divide", + "Add", + "Subtract", + "Concat", + "LT", + "LE", + "EQ", + "NE", + "GE", + "GT", + "NOT", + "AND", + "OR", + "EQV", + "NEQV" + ], + "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec": [ + "External", + "Type" + ], + "Fortran::parser::InquireSpec::CharVar::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Direct", + "Encoding", + "Form", + "Formatted", + "Iomsg", + "Name", + "Pad", + "Position", + "Read", + "Readwrite", + "Round", + "Sequential", + "Sign", + "Stream", + "Status", + "Unformatted", + "Write", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::InquireSpec::IntVar::Kind": [ + "Iostat", + "Nextrec", + "Number", + "Pos", + "Recl", + "Size" + ], + "Fortran::parser::InquireSpec::LogVar::Kind": [ + "Exist", + "Named", + "Opened", + "Pending" + ], + "Fortran::parser::IntentSpec::Intent": [ + "In", + "Out", + "InOut" + ], + "Fortran::parser::IoControlSpec::CharExpr::Kind": [ + "Advance", + "Blank", + "Decimal", + "Delim", + "Pad", + "Round", + "Sign" + ], + "Fortran::parser::ReductionOperator::Operator": [ + "Plus", + "Multiply", + "Max", + "Min", + "Iand", + "Ior", + "Ieor", + "And", + "Or", + "Eqv", + "Neqv" + ], + "Fortran::parser::OmpAccessGroup::Value": [ + "Cgroup" + ], + "Fortran::parser::OmpAdjustArgsClause::OmpAdjustOp::Value": [ + "Nothing", + "Need_Device_Ptr" + ], + "Fortran::parser::OmpAlwaysModifier::Value": [ + "Always" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpAttachModifier::Value": [ + "Always", + "Never", + "Auto" + ], + "Fortran::parser::OmpAutomapModifier::Value": [ + "Automap" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpCloseModifier::Value": [ + "Close" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default", + "Present" + ], + "Fortran::parser::OmpDeleteModifier::Value": [ + "Delete" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpDirectiveSpecification::Flag": [ + "DeprecatedSyntax", + "CrossesLabelDo" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpInteropType::Value": [ + "Target", + "Targetsync" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "Storage", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpObject::Invalid::Kind": [ + "BlankCommonBlock" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpPresentModifier::Value": [ + "Present" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpRefModifier::Value": [ + "Ref_Ptee", + "Ref_Ptr", + "Ref_Ptr_Ptee" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpSelfModifier::Value": [ + "Self" + ], + "Fortran::parser::OmpSeverityClause::SevLevel": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpThreadsetClause::ThreadsetPolicy": [ + "Omp_Pool", + "Omp_Team" + ], + "Fortran::parser::OmpTraitSelectorName::Value": [ + "Arch", + "Atomic_Default_Mem_Order", + "Condition", + "Device_Num", + "Extension", + "Isa", + "Kind", + "Requires", + "Simd", + "Uid", + "Vendor" + ], + "Fortran::parser::OmpTraitSetSelectorName::Value": [ + "Construct", + "Device", + "Implementation", + "Target_Device", + "User" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpxHoldModifier::Value": [ + "Ompx_Hold" + ], + "Fortran::parser::ProcedureStmt::Kind": [ + "ModuleProcedure", + "Procedure" + ], + "Fortran::parser::SavedEntity::Kind": [ + "Entity", + "Common" + ], + "Fortran::parser::StopStmt::Kind": [ + "Stop", + "ErrorStop" + ], + "Fortran::parser::UseStmt::ModuleNature": [ + "Intrinsic", + "Non_Intrinsic" + ] + } +} diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 19716927..b02b7f3c 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -9,6 +9,7 @@ import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.StarTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.TypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.expr.*; +import pt.up.fe.specs.fortran.ast.nodes.io.ctrlspec.IoControlSpec; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentLoopControl; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentRange; import pt.up.fe.specs.fortran.ast.nodes.loops.RangeLoopControl; diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 2e76ea3d..9f1424c7 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -8,6 +8,7 @@ import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.ExprTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.StarTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.expr.*; +import pt.up.fe.specs.fortran.ast.nodes.io.ctrlspec.IoControlSpec; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentLoopControl; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentRange; import pt.up.fe.specs.fortran.ast.nodes.loops.RangeLoopControl; diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java index 90359393..f774f7bc 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java @@ -1,5 +1,6 @@ package pt.up.fe.specs.fortran.parser.processors; +import pt.up.fe.specs.fortran.ast.nodes.io.ctrlspec.IoControlSpec; import pt.up.fe.specs.fortran.ast.nodes.utils.*; import pt.up.fe.specs.fortran.ast.nodes.utils.enums.IoControlSpecKind; import pt.up.fe.specs.fortran.parser.FlangName; diff --git a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java index 48c1aa24..737e87b4 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -607,6 +607,17 @@ void testLengthSelectorNative() { testNative("type/length_selector.f90"); } } + @Test + void testIoControl() { + testJson("io/io_control.json"); + } + + @Test + void testIoControlNative() { + if (SpecsPlatforms.isLinux()) { + testNative("io/io_control.f90"); + } + } @Test void testFujitsu0000_0000() { From 391ed9b181c63b2aa379774d37b54f9dfff63f35 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 25 Jul 2026 17:14:23 +0100 Subject: [PATCH 121/260] Create nodes for open statement --- .../fe/specs/fortran/ast/FortranKeyword.java | 2 ++ .../fortran/ast/nodes/io/ConnectSpec.java | 12 +++++++ .../fortran/ast/nodes/io/ErrConnectSpec.java | 26 ++++++++++++++ .../fortran/ast/nodes/io/ExprConnectSpec.java | 34 +++++++++++++++++++ .../io/{ctrlspec => }/IoControlSpec.java | 2 +- .../specs/fortran/ast/nodes/io/OpenStmt.java | 29 ++++++++++++++++ .../fortran/ast/nodes/io/VarConnectSpec.java | 34 +++++++++++++++++++ .../nodes/io/enums/ExprConnectSpecKind.java | 34 +++++++++++++++++++ .../nodes/io/enums/VarConnectSpecKind.java | 22 ++++++++++++ .../fortran/ast/nodes/stmt/WriteStmt.java | 2 +- .../fe/specs/fortran/parser/FlangToClass.java | 2 +- .../fortran/parser/processors/Nodes.java | 2 +- .../parser/processors/UtilsProcessors.java | 2 +- 13 files changed, 198 insertions(+), 5 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ConnectSpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ErrConnectSpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprConnectSpec.java rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/{ctrlspec => }/IoControlSpec.java (94%) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/OpenStmt.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/VarConnectSpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/ExprConnectSpecKind.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/VarConnectSpecKind.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java index 0d25ac76..f92f5b50 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -26,6 +26,8 @@ public enum FortranKeyword { ALLOCATE, DEALLOCATE, RETURN, + OPEN, + ERR, // Conditional statements IF, diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ConnectSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ConnectSpec.java new file mode 100644 index 00000000..a0d0075b --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ConnectSpec.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class ConnectSpec extends FortranNode { + public ConnectSpec(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ErrConnectSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ErrConnectSpec.java new file mode 100644 index 00000000..7a60478e --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ErrConnectSpec.java @@ -0,0 +1,26 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class ErrConnectSpec extends ConnectSpec { + public static final DataKey LABEL = KeyFactory.integer("label"); + + public ErrConnectSpec(DataStore data, Collection children) { + super(data, children); + } + + public int getLabel() { + return get(LABEL); + } + + @Override + public String getCode() { + return keyword(FortranKeyword.ERR) + "=" + getLabel(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprConnectSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprConnectSpec.java new file mode 100644 index 00000000..3b25e460 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprConnectSpec.java @@ -0,0 +1,34 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; +import pt.up.fe.specs.fortran.ast.nodes.io.enums.ExprConnectSpecKind; + +import java.util.Collection; + +public class ExprConnectSpec extends ConnectSpec { + public static final DataKey KIND = KeyFactory.enumeration("kind", ExprConnectSpecKind.class); + + public ExprConnectSpec(DataStore data, Collection children) { + super(data, children); + } + + public ExprConnectSpecKind getKind() { + return get(KIND); + } + + public Expr getExpr() { + return getChild(Expr.class, 0); + } + + @Override + public String getCode() { + var kindCode = encase(getKind().name()); + var exprCode = getExpr().getCode(); + + return kindCode + "=" + exprCode; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ctrlspec/IoControlSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/IoControlSpec.java similarity index 94% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ctrlspec/IoControlSpec.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/IoControlSpec.java index f33588b5..9018f68d 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ctrlspec/IoControlSpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/IoControlSpec.java @@ -1,4 +1,4 @@ -package pt.up.fe.specs.fortran.ast.nodes.io.ctrlspec; +package pt.up.fe.specs.fortran.ast.nodes.io; import org.suikasoft.jOptions.Datakey.DataKey; import org.suikasoft.jOptions.Datakey.KeyFactory; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/OpenStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/OpenStmt.java new file mode 100644 index 00000000..6b9c7bdd --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/OpenStmt.java @@ -0,0 +1,29 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.ActionStmt; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +public class OpenStmt extends ActionStmt { + public OpenStmt(DataStore data, Collection children) { + super(data, children); + } + + public List getSpecs() { + return getChildren(ConnectSpec.class); + } + + @Override + public String getStmtCode() { + var specsCode = getSpecs().stream() + .map(ConnectSpec::getCode) + .collect(Collectors.joining(", ", "(", ")")); + + return keyword(FortranKeyword.OPEN) + specsCode; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/VarConnectSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/VarConnectSpec.java new file mode 100644 index 00000000..6fe91af7 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/VarConnectSpec.java @@ -0,0 +1,34 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.decl.Variable; +import pt.up.fe.specs.fortran.ast.nodes.io.enums.VarConnectSpecKind; + +import java.util.Collection; + +public class VarConnectSpec extends ConnectSpec { + public static final DataKey KIND = KeyFactory.enumeration("kind", VarConnectSpecKind.class); + + public VarConnectSpec(DataStore data, Collection children) { + super(data, children); + } + + public VarConnectSpecKind getKind() { + return get(KIND); + } + + public Variable getVariable() { + return getChild(Variable.class, 0); + } + + @Override + public String getCode() { + var kindCode = encase(getKind().name()); + var varCode = getVariable().getCode(); + + return kindCode + "=" + varCode; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/ExprConnectSpecKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/ExprConnectSpecKind.java new file mode 100644 index 00000000..4bd4fcb1 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/ExprConnectSpecKind.java @@ -0,0 +1,34 @@ +package pt.up.fe.specs.fortran.ast.nodes.io.enums; + +import pt.up.fe.specs.util.SpecsStrings; +import pt.up.fe.specs.util.providers.StringProvider; + +public enum ExprConnectSpecKind implements StringProvider { + UNIT, + ACCESS, + ACTION, + ASYNCHRONOUS, + BLANK, + DECIMAL, + DELIM, + ENCODING, + ERR, + FILE, + FORM, + PAD, + POSITION, + RECL, + ROUND, + SIGN, + STATUS; + + private final String string; + + ExprConnectSpecKind() { + string = SpecsStrings.toCamelCase(name()); + } + + public String getString() { + return string; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/VarConnectSpecKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/VarConnectSpecKind.java new file mode 100644 index 00000000..7ffc6155 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/VarConnectSpecKind.java @@ -0,0 +1,22 @@ +package pt.up.fe.specs.fortran.ast.nodes.io.enums; + +import pt.up.fe.specs.fortran.ast.nodes.io.VarConnectSpec; +import pt.up.fe.specs.util.SpecsStrings; +import pt.up.fe.specs.util.providers.StringProvider; + +public enum VarConnectSpecKind implements StringProvider { + IOMSG, + IOSTAT, + NEWUNIT; + + public final String string; + + VarConnectSpecKind() { + string = SpecsStrings.toCamelCase(name()); + } + + @Override + public String getString() { + return string; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/WriteStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/WriteStmt.java index b1fec253..adaa33e4 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/WriteStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/WriteStmt.java @@ -5,7 +5,7 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; import pt.up.fe.specs.fortran.ast.nodes.utils.Format; -import pt.up.fe.specs.fortran.ast.nodes.io.ctrlspec.IoControlSpec; +import pt.up.fe.specs.fortran.ast.nodes.io.IoControlSpec; import pt.up.fe.specs.fortran.ast.nodes.utils.IoUnit; import java.util.ArrayList; diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index b02b7f3c..87fbd88e 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -9,7 +9,7 @@ import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.StarTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.TypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.expr.*; -import pt.up.fe.specs.fortran.ast.nodes.io.ctrlspec.IoControlSpec; +import pt.up.fe.specs.fortran.ast.nodes.io.IoControlSpec; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentLoopControl; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentRange; import pt.up.fe.specs.fortran.ast.nodes.loops.RangeLoopControl; diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 9f1424c7..5ac3888e 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -8,7 +8,7 @@ import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.ExprTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.StarTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.expr.*; -import pt.up.fe.specs.fortran.ast.nodes.io.ctrlspec.IoControlSpec; +import pt.up.fe.specs.fortran.ast.nodes.io.IoControlSpec; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentLoopControl; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentRange; import pt.up.fe.specs.fortran.ast.nodes.loops.RangeLoopControl; diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java index f774f7bc..f9a26b40 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java @@ -1,6 +1,6 @@ package pt.up.fe.specs.fortran.parser.processors; -import pt.up.fe.specs.fortran.ast.nodes.io.ctrlspec.IoControlSpec; +import pt.up.fe.specs.fortran.ast.nodes.io.IoControlSpec; import pt.up.fe.specs.fortran.ast.nodes.utils.*; import pt.up.fe.specs.fortran.ast.nodes.utils.enums.IoControlSpecKind; import pt.up.fe.specs.fortran.parser.FlangName; From 86a927980d94efbe5d3e0c8880b5739bca7c300e Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 25 Jul 2026 21:49:57 +0100 Subject: [PATCH 122/260] Add mapping of open statements --- .../pt/up/fe/specs/fortran/parser/FlangName.java | 16 ++++++++++++++-- .../up/fe/specs/fortran/parser/FlangToClass.java | 15 ++++++++++++++- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 082100cc..ff64146a 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -179,6 +179,20 @@ public enum FlangName implements StringProvider { CONCURRENT_CONTROL, LOCALITY_SPEC, + /// IO + OPEN_STMT, + CONNECT_SPEC, + KIND, + FILE_UNIT_NUMBER, + FILE_NAME_EXPR, + CHAR_EXPR, + MSG_VARIABLE, + STAT_VARIABLE, + RECL, + NEWUNIT, + ERR_LABEL, + STATUS_EXPR, + /// OPENMP OPENMP_CONSTRUCT("OpenMPConstruct"), OMP_BLOCK_CONSTRUCT, @@ -213,13 +227,11 @@ public enum FlangName implements StringProvider { INTENT_SPEC, PARAMETER, - // OTHER INITIALIZATION, NAME_VALUE, ALLOCATE_OBJECT, ALLOC_OPT, - STAT_VARIABLE, NAMED_CONSTANT, NAMED_CONSTANT_DEF; diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 87fbd88e..ba3abe7c 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -9,7 +9,7 @@ import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.StarTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.TypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.expr.*; -import pt.up.fe.specs.fortran.ast.nodes.io.IoControlSpec; +import pt.up.fe.specs.fortran.ast.nodes.io.*; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentLoopControl; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentRange; import pt.up.fe.specs.fortran.ast.nodes.loops.RangeLoopControl; @@ -215,6 +215,19 @@ public class FlangToClass { NAME_TO_MAPPER.put(FlangName.DEFERRED_SHAPE_SPEC_LIST, ClassMapper.always(DeferredShapeSpecList.class)); NAME_TO_MAPPER.put(FlangName.ALLOCATE_SHAPE_SPEC, ClassMapper.always(AllocateShapeSpecification.class)); + /// IO + NAME_TO_MAPPER.put(FlangName.OPEN_STMT, ClassMapper.always(OpenStmt.class)); + NAME_TO_MAPPER.put(FlangName.CONNECT_SPEC, ClassMapper.caseFor(ConnectSpec.class) + .map(FlangName.FILE_UNIT_NUMBER, ExprConnectSpec.class) + .map(FlangName.EXPR, ExprConnectSpec.class) + .map(FlangName.CHAR_EXPR, ExprConnectSpec.class) + .map(FlangName.MSG_VARIABLE, VarConnectSpec.class) + .map(FlangName.STAT_VARIABLE, VarConnectSpec.class) + .map(FlangName.RECL, ExprConnectSpec.class) + .map(FlangName.NEWUNIT, VarConnectSpec.class) + .map(FlangName.ERR_LABEL, ErrConnectSpec.class) + .map(FlangName.STATUS_EXPR, ExprConnectSpec.class)); + /// UTILs NAME_TO_MAPPER.put(FlangName.NAME_VALUE, ClassMapper.always(NameValue.class)); NAME_TO_MAPPER.put(FlangName.IO_UNIT, ClassMapper.always(IoUnit.class)); From f38da93e5b3807f37ed64eebae011b75dcf34095 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 25 Jul 2026 23:57:11 +0100 Subject: [PATCH 123/260] Add processors for open statements --- .../nodes/io/enums/ExprConnectSpecKind.java | 5 +- .../parser/processors/IoProcessors.java | 97 +++++++++++++++++++ .../fortran/parser/processors/Nodes.java | 8 +- 3 files changed, 108 insertions(+), 2 deletions(-) create mode 100644 FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/ExprConnectSpecKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/ExprConnectSpecKind.java index 4bd4fcb1..ae475f1c 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/ExprConnectSpecKind.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/ExprConnectSpecKind.java @@ -20,7 +20,10 @@ public enum ExprConnectSpecKind implements StringProvider { RECL, ROUND, SIGN, - STATUS; + STATUS, + CARRIAGECONTROL, + CONVERT, + DISPOSE; private final String string; diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java new file mode 100644 index 00000000..0acdd1d7 --- /dev/null +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java @@ -0,0 +1,97 @@ +package pt.up.fe.specs.fortran.parser.processors; + +import pt.up.fe.specs.fortran.ast.nodes.io.ErrConnectSpec; +import pt.up.fe.specs.fortran.ast.nodes.io.ExprConnectSpec; +import pt.up.fe.specs.fortran.ast.nodes.io.OpenStmt; +import pt.up.fe.specs.fortran.ast.nodes.io.VarConnectSpec; +import pt.up.fe.specs.fortran.ast.nodes.io.enums.ExprConnectSpecKind; +import pt.up.fe.specs.fortran.ast.nodes.io.enums.VarConnectSpecKind; +import pt.up.fe.specs.fortran.parser.FlangName; +import pt.up.fe.specs.fortran.parser.FortranJsonResult; + +public class IoProcessors extends ANodeProcessor { + private final StmtProcessors stmtProcessors; + + public IoProcessors(FortranJsonResult data, StmtProcessors stmtProcessors) { + super(data); + + this.stmtProcessors = stmtProcessors; + } + + public void openStmt(OpenStmt openStmt) { + stmtProcessors.actionStmt(openStmt); + + var specs = getChildren(openStmt, FlangName.CONNECT_SPEC); + openStmt.addChildren(specs); + } + + public void exprConnectSpec(ExprConnectSpec spec) { + var attrs = attributes(spec); + var variantKey = attrs.getVariantKey(); + var variant = FlangName.convertTry(variantKey).orElseThrow(() -> new RuntimeException("Variant key '" + + variantKey + "' of ExprConnectSpec is not a valid Flang name.")); + + switch (variant) { + case FILE_UNIT_NUMBER -> { // UNIT + attrs = attributes().get(attrs.getVariantString()); + spec.set(ExprConnectSpec.KIND, ExprConnectSpecKind.UNIT); + } + + case EXPR -> { // FILE + spec.set(ExprConnectSpec.KIND, ExprConnectSpecKind.FILE); + } + + // ACCESS, ACTION, ASYNCHRONOUS, BLANK, DECIMAL, DELIM, ENCODING, FORM, PAD, POSITION, ROUND, SIGN, + // CARRIAGECONTROL, CONVERT, DISPOSE + case CHAR_EXPR -> { + attrs = attributes().get(attrs.getVariantString()); + + var flangKind = attrs.getString(FlangName.KIND); + var kind = ExprConnectSpecKind.valueOf(flangKind); + spec.set(ExprConnectSpec.KIND, kind); + } + + case RECL -> { // RECL + attrs = attributes().get(attrs.getVariantString()); + spec.set(ExprConnectSpec.KIND, ExprConnectSpecKind.RECL); + } + + case STATUS_EXPR -> { // STATUS + attrs = attributes().get(attrs.getVariantString()); + spec.set(ExprConnectSpec.KIND, ExprConnectSpecKind.STATUS); + } + + default -> { + throw new RuntimeException("Variant key '" + variantKey + "' of ExprConnectSpec is not handled."); + } + } + + var exprId = attrs.getString(FlangName.EXPR); + var expr = getChild(exprId); + spec.addChild(expr); + } + + public void varConnectSpec(VarConnectSpec spec) { + var attrs = attributes(spec); + var variantKey = attrs.getVariantKey(); + var variant = FlangName.convertTry(variantKey).orElseThrow(() -> new RuntimeException("Variant key '" + + variantKey + "' of VarConnectSpec is not a valid Flang name.")); + + var kind = switch (variant) { + case MSG_VARIABLE -> VarConnectSpecKind.IOMSG; + case STAT_VARIABLE -> VarConnectSpecKind.IOSTAT; + case NEWUNIT -> VarConnectSpecKind.NEWUNIT; + default -> throw new RuntimeException("Variant key '" + variantKey + "' of VarConnectSpec is not handled."); + }; + spec.set(VarConnectSpec.KIND, kind); + + var childAttrs = attributes().get(attrs.getVariantString()); + var variable = getChild(childAttrs.getString(FlangName.VARIABLE)); + spec.addChild(variable); + } + + public void errConnectSpec(ErrConnectSpec spec) { + var label = attributes(spec).getString("uint64_t"); + spec.set(ErrConnectSpec.LABEL, Integer.parseInt(label)); + } +} diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 5ac3888e..8b8b9e11 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -8,7 +8,7 @@ import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.ExprTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.StarTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.expr.*; -import pt.up.fe.specs.fortran.ast.nodes.io.IoControlSpec; +import pt.up.fe.specs.fortran.ast.nodes.io.*; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentLoopControl; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentRange; import pt.up.fe.specs.fortran.ast.nodes.loops.RangeLoopControl; @@ -194,6 +194,12 @@ public Nodes(FortranJsonResult data) { processors.put(ConcurrentLoopControl.class, l::concurrentLoopControl); processors.put(ConcurrentRange.class, l::concurrentRange); + var i = new IoProcessors(data, s); + processors.put(OpenStmt.class, i::openStmt); + processors.put(ExprConnectSpec.class, i::exprConnectSpec); + processors.put(VarConnectSpec.class, i::varConnectSpec); + processors.put(ErrConnectSpec.class, i::errConnectSpec); + var omp = new OmpProcessors(data, s); processors.put(OmpBlockConstruct.class, omp::ompBlockConstruct); processors.put(OmpLoopConstruct.class, omp::ompLoopConstruct); From 73ff6a48e06bcf355c0b8e00457cbd3123c5d649 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sun, 26 Jul 2026 00:45:12 +0100 Subject: [PATCH 124/260] Extend AST nodes for IO control specifications --- .../fe/specs/fortran/ast/FortranKeyword.java | 5 ++- .../ast/nodes/io/ExprIoControlSpec.java | 34 +++++++++++++++++++ .../ast/nodes/io/FormatIoControlSpec.java | 23 +++++++++++++ .../fortran/ast/nodes/io/IoControlSpec.java | 21 +----------- .../ast/nodes/io/NamelistIoControlSpec.java | 26 ++++++++++++++ .../ast/nodes/io/StarUnitIoControlSpec.java | 18 ++++++++++ .../ast/nodes/io/VarIoControlSpec.java | 34 +++++++++++++++++++ .../ast/nodes/{stmt => io}/WriteStmt.java | 8 ++--- .../nodes/io/enums/ExprIoControlSpecKind.java | 29 ++++++++++++++++ .../nodes/io/enums/VarIoControlSpecKind.java | 24 +++++++++++++ .../specs/fortran/ast/nodes/utils/Format.java | 1 + .../nodes/utils/enums/IoControlSpecKind.java | 23 ------------- .../fe/specs/fortran/parser/FlangToClass.java | 2 +- .../fortran/parser/processors/Nodes.java | 2 +- .../parser/processors/StmtProcessors.java | 1 + .../parser/processors/UtilsProcessors.java | 10 +++--- 16 files changed, 206 insertions(+), 55 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprIoControlSpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/FormatIoControlSpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/NamelistIoControlSpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/StarUnitIoControlSpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/VarIoControlSpec.java rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/{stmt => io}/WriteStmt.java (88%) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/ExprIoControlSpecKind.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/VarIoControlSpecKind.java delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/utils/enums/IoControlSpecKind.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java index f92f5b50..3935c52b 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -5,7 +5,6 @@ public enum FortranKeyword { PROGRAM, CONCURRENT, SUBROUTINE, - WRITE, USE, INTRINSIC, NON_INTRINSIC, @@ -28,6 +27,10 @@ public enum FortranKeyword { RETURN, OPEN, ERR, + WRITE, + UNIT, + FMT, + NML, // Conditional statements IF, diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprIoControlSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprIoControlSpec.java new file mode 100644 index 00000000..d682c8b4 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprIoControlSpec.java @@ -0,0 +1,34 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; +import pt.up.fe.specs.fortran.ast.nodes.io.enums.ExprIoControlSpecKind; + +import java.util.Collection; + +public class ExprIoControlSpec extends IoControlSpec { + public static DataKey KIND = KeyFactory.enumeration("kind", ExprIoControlSpecKind.class); + + public ExprIoControlSpec(DataStore data, Collection children) { + super(data, children); + } + + public ExprIoControlSpecKind getKind() { + return get(KIND); + } + + public Expr getExpr() { + return getChild(Expr.class); + } + + @Override + public String getCode() { + var kindCode = encase(getKind().name()); + var exprCode = getExpr().getCode(); + + return kindCode + "=" + exprCode; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/FormatIoControlSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/FormatIoControlSpec.java new file mode 100644 index 00000000..6115cdc9 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/FormatIoControlSpec.java @@ -0,0 +1,23 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.utils.Format; + +import java.util.Collection; + +public class FormatIoControlSpec extends IoControlSpec { + public FormatIoControlSpec(DataStore data, Collection children) { + super(data, children); + } + + public Format getFormat() { + return getChild(Format.class, 0); + } + + @Override + public String getCode() { + return keyword(FortranKeyword.FMT) + "=" + getFormat().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/IoControlSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/IoControlSpec.java index 9018f68d..7dc18ff9 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/IoControlSpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/IoControlSpec.java @@ -1,31 +1,12 @@ package pt.up.fe.specs.fortran.ast.nodes.io; -import org.suikasoft.jOptions.Datakey.DataKey; -import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; -import pt.up.fe.specs.fortran.ast.nodes.utils.enums.IoControlSpecKind; import java.util.Collection; -public class IoControlSpec extends FortranNode { - public static DataKey KIND = KeyFactory.enumeration("kind", IoControlSpecKind.class); - +public abstract class IoControlSpec extends FortranNode { public IoControlSpec(DataStore data, Collection children) { super(data, children); } - - public IoControlSpecKind getKind() { - return get(KIND); - } - - public Expr getValue() { - return getChild(Expr.class); - } - - @Override - public String getCode() { - return getKind().getString() + '=' + getValue().getCode(); - } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/NamelistIoControlSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/NamelistIoControlSpec.java new file mode 100644 index 00000000..455837fd --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/NamelistIoControlSpec.java @@ -0,0 +1,26 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class NamelistIoControlSpec extends IoControlSpec { + public static final DataKey NAMELIST_NAME = KeyFactory.string("namelistName"); + + public NamelistIoControlSpec(DataStore data, Collection children) { + super(data, children); + } + + public String getNamelistName() { + return get(NAMELIST_NAME); + } + + @Override + public String getCode() { + return keyword(FortranKeyword.NML) + "=" + getNamelistName(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/StarUnitIoControlSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/StarUnitIoControlSpec.java new file mode 100644 index 00000000..5737b964 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/StarUnitIoControlSpec.java @@ -0,0 +1,18 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class StarUnitIoControlSpec extends IoControlSpec { + public StarUnitIoControlSpec(DataStore data, Collection children) { + super(data, children); + } + + @Override + public String getCode() { + return keyword(FortranKeyword.UNIT) + "=*"; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/VarIoControlSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/VarIoControlSpec.java new file mode 100644 index 00000000..5945e4da --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/VarIoControlSpec.java @@ -0,0 +1,34 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.decl.Variable; +import pt.up.fe.specs.fortran.ast.nodes.io.enums.VarIoControlSpecKind; + +import java.util.Collection; + +public class VarIoControlSpec extends IoControlSpec { + public static final DataKey KIND = KeyFactory.enumeration("kind", VarIoControlSpecKind.class); + + public VarIoControlSpec(DataStore data, Collection children) { + super(data, children); + } + + public VarIoControlSpecKind getKind() { + return get(KIND); + } + + public Variable getVariable() { + return getChild(Variable.class, 0); + } + + @Override + public String getCode() { + var kindCode = encase(getKind().name()); + var varCode = getVariable().getCode(); + + return kindCode + "=" + varCode; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/WriteStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/WriteStmt.java similarity index 88% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/WriteStmt.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/WriteStmt.java index adaa33e4..95080e9e 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/WriteStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/WriteStmt.java @@ -1,11 +1,11 @@ -package pt.up.fe.specs.fortran.ast.nodes.stmt; +package pt.up.fe.specs.fortran.ast.nodes.io; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; +import pt.up.fe.specs.fortran.ast.nodes.stmt.ActionStmt; import pt.up.fe.specs.fortran.ast.nodes.utils.Format; -import pt.up.fe.specs.fortran.ast.nodes.io.IoControlSpec; import pt.up.fe.specs.fortran.ast.nodes.utils.IoUnit; import java.util.ArrayList; @@ -27,8 +27,8 @@ public Optional getFormat() { return getChildTry(Format.class); } - public List getControlSpecs() { - return getChildrenOf(IoControlSpec.class); + public List getControlSpecs() { + return getChildrenOf(ExprIoControlSpec.class); } public List getOutputItems() { diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/ExprIoControlSpecKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/ExprIoControlSpecKind.java new file mode 100644 index 00000000..6f9a020d --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/ExprIoControlSpecKind.java @@ -0,0 +1,29 @@ +package pt.up.fe.specs.fortran.ast.nodes.io.enums; + +import pt.up.fe.specs.util.SpecsStrings; +import pt.up.fe.specs.util.providers.StringProvider; + +public enum ExprIoControlSpecKind implements StringProvider { + ASYNCHRONOUS, + ADVANCE, + BLANK, + DECIMAL, + DELIM, + PAD, + POS, + REC, + ROUND, + SIGN, + UNIT; + + private final String string; + + ExprIoControlSpecKind() { + string = SpecsStrings.toCamelCase(name()); + } + + @Override + public String getString() { + return string; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/VarIoControlSpecKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/VarIoControlSpecKind.java new file mode 100644 index 00000000..eb2d8ec0 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/VarIoControlSpecKind.java @@ -0,0 +1,24 @@ +package pt.up.fe.specs.fortran.ast.nodes.io.enums; + +import pt.up.fe.specs.fortran.ast.nodes.io.VarIoControlSpec; +import pt.up.fe.specs.util.SpecsStrings; +import pt.up.fe.specs.util.providers.StringProvider; + +public enum VarIoControlSpecKind implements StringProvider { + ID, + IOMSG, + IOSTAT, + SIZE, + UNIT; + + private final String string; + + VarIoControlSpecKind() { + string = SpecsStrings.toCamelCase(name()); + } + + @Override + public String getString() { + return string; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/utils/Format.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/utils/Format.java index 6168fe0b..1e15cbfa 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/utils/Format.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/utils/Format.java @@ -8,6 +8,7 @@ /** * R1215 format */ +// TODO(Process-ing): Rewrite this node to have better type consistency public class Format extends FortranNode { public Format(DataStore data, Collection children) { diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/utils/enums/IoControlSpecKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/utils/enums/IoControlSpecKind.java deleted file mode 100644 index 47c94a75..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/utils/enums/IoControlSpecKind.java +++ /dev/null @@ -1,23 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.utils.enums; - -import pt.up.fe.specs.util.providers.StringProvider; - -public enum IoControlSpecKind implements StringProvider { - ADVANCE; - - public String getKindCode() { - switch (this) { - case ADVANCE -> { - return "advance"; - } - default -> { - return ""; - } - } - } - - @Override - public String getString() { - return getKindCode(); - } -} diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index ba3abe7c..72adcaac 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -231,7 +231,7 @@ public class FlangToClass { /// UTILs NAME_TO_MAPPER.put(FlangName.NAME_VALUE, ClassMapper.always(NameValue.class)); NAME_TO_MAPPER.put(FlangName.IO_UNIT, ClassMapper.always(IoUnit.class)); - NAME_TO_MAPPER.put(FlangName.IO_CONTROL_SPEC, ClassMapper.always(IoControlSpec.class)); + NAME_TO_MAPPER.put(FlangName.IO_CONTROL_SPEC, ClassMapper.always(ExprIoControlSpec.class)); NAME_TO_MAPPER.put(FlangName.STAT_VARIABLE, ClassMapper.always(StatAllocOption.class)); /// OPENMP diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 8b8b9e11..44b5c431 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -187,7 +187,7 @@ public Nodes(FortranJsonResult data) { processors.put(Format.class, u::format); processors.put(NameValue.class, u::nameValue); processors.put(IoUnit.class, u::ioUnit); - processors.put(IoControlSpec.class, u::ioControlSpec); + processors.put(ExprIoControlSpec.class, u::ioControlSpec); var l = new LoopProcessors(data); processors.put(RangeLoopControl.class, l::loopRange); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index e9978108..6a8f858c 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -2,6 +2,7 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; +import pt.up.fe.specs.fortran.ast.nodes.io.WriteStmt; import pt.up.fe.specs.fortran.ast.nodes.loops.WhileLoopControl; import pt.up.fe.specs.fortran.ast.nodes.program.*; import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java index f9a26b40..ebded658 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java @@ -1,8 +1,8 @@ package pt.up.fe.specs.fortran.parser.processors; -import pt.up.fe.specs.fortran.ast.nodes.io.IoControlSpec; +import pt.up.fe.specs.fortran.ast.nodes.io.ExprIoControlSpec; import pt.up.fe.specs.fortran.ast.nodes.utils.*; -import pt.up.fe.specs.fortran.ast.nodes.utils.enums.IoControlSpecKind; +import pt.up.fe.specs.fortran.ast.nodes.io.enums.ExprIoControlSpecKind; import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; @@ -44,12 +44,12 @@ public void ioUnit(IoUnit ioUnit) { ioUnit.addChild(getChild(ioUnit, variantKey)); } - public void ioControlSpec(IoControlSpec ioControlSpec) { + public void ioControlSpec(ExprIoControlSpec ioControlSpec) { var childId = attributes(ioControlSpec).getVariantString(); ioControlSpec.set( - IoControlSpec.KIND, - IoControlSpecKind.valueOf(attributes().get(childId).getString("kind").toUpperCase()) + ExprIoControlSpec.KIND, + ExprIoControlSpecKind.valueOf(attributes().get(childId).getString("kind").toUpperCase()) ); ioControlSpec.addChild(getChild(attributes().get(childId).getString(FlangName.EXPR))); From 7392d83748e342ec5bbf84e377bd01cd0b3308a1 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sun, 26 Jul 2026 01:01:30 +0100 Subject: [PATCH 125/260] Add mapping of improved IO control specs nodes --- .../ast/nodes/io/LabelIoControlSpec.java | 34 +++++++++++++++++++ .../io/enums/LabelIoControlSpecKind.java | 7 ++++ .../up/fe/specs/fortran/parser/FlangName.java | 14 +++++--- .../fe/specs/fortran/parser/FlangToClass.java | 23 +++++++++++-- 4 files changed, 71 insertions(+), 7 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/LabelIoControlSpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/LabelIoControlSpecKind.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/LabelIoControlSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/LabelIoControlSpec.java new file mode 100644 index 00000000..c24ba899 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/LabelIoControlSpec.java @@ -0,0 +1,34 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.io.enums.LabelIoControlSpecKind; + +import java.util.Collection; + +public class LabelIoControlSpec extends IoControlSpec { + public static final DataKey LABEL = KeyFactory.integer("label"); + public static final DataKey KIND = KeyFactory.enumeration("kind", LabelIoControlSpecKind.class); + + public LabelIoControlSpec(DataStore data, Collection children) { + super(data, children); + } + + public LabelIoControlSpecKind getKind() { + return get(KIND); + } + + public Integer getLabel() { + return get(LABEL); + } + + @Override + public String getCode() { + var kindCode = encase(getKind().name()); + var labelCode = getLabel().toString(); + + return kindCode + "=" + labelCode; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/LabelIoControlSpecKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/LabelIoControlSpecKind.java new file mode 100644 index 00000000..a65026b2 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/LabelIoControlSpecKind.java @@ -0,0 +1,7 @@ +package pt.up.fe.specs.fortran.ast.nodes.io.enums; + +public enum LabelIoControlSpecKind { + END, + EOR, + ERR; +} diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index ff64146a..3b66392e 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -44,7 +44,6 @@ public enum FlangName implements StringProvider { PRINT_STMT, FORMAT_STMT, NAME, - FORMAT, OUTPUT_ITEM, TYPE_DECLARATION_STMT, ASSIGNMENT_STMT, @@ -54,9 +53,6 @@ public enum FlangName implements StringProvider { CALL_STMT, COMPILER_DIRECTIVE, GOTO_STMT, - WRITE_STMT, - IO_UNIT, - IO_CONTROL_SPEC, CONTAINS_STMT, ALLOCATE_STMT, DEALLOCATE_STMT, @@ -192,6 +188,16 @@ public enum FlangName implements StringProvider { NEWUNIT, ERR_LABEL, STATUS_EXPR, + WRITE_STMT, + IO_CONTROL_SPEC, + IO_UNIT, + FORMAT, + END_LABEL, + EOR_LABEL, + ID_VARIABLE, + POS, + REC, + SIZE, /// OPENMP OPENMP_CONSTRUCT("OpenMPConstruct"), diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 72adcaac..b06752ae 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -109,7 +109,6 @@ public class FlangToClass { NAME_TO_MAPPER.put(FlangName.END_SELECT_STMT, ClassMapper.always(EndSelectStmt.class)); NAME_TO_MAPPER.put(FlangName.CALL_STMT, ClassMapper.always(CallStmt.class)); - NAME_TO_MAPPER.put(FlangName.WRITE_STMT, ClassMapper.always(WriteStmt.class)); NAME_TO_MAPPER.put(FlangName.CONTAINS_STMT, ClassMapper.always(ContainsStmt.class)); NAME_TO_MAPPER.put(FlangName.ALLOCATE_STMT, ClassMapper.always(AllocateStmt.class)); NAME_TO_MAPPER.put(FlangName.DEALLOCATE_STMT, ClassMapper.always(DeallocateStmt.class)); @@ -227,11 +226,29 @@ public class FlangToClass { .map(FlangName.NEWUNIT, VarConnectSpec.class) .map(FlangName.ERR_LABEL, ErrConnectSpec.class) .map(FlangName.STATUS_EXPR, ExprConnectSpec.class)); + NAME_TO_MAPPER.put(FlangName.WRITE_STMT, ClassMapper.always(WriteStmt.class)); + NAME_TO_MAPPER.put(FlangName.IO_CONTROL_SPEC, ClassMapper.caseFor(IoControlSpec.class) + .ignore(FlangName.IO_UNIT) + .map(FlangName.FORMAT, FormatIoControlSpec.class) + .map(FlangName.NAME, NamelistIoControlSpec.class) + .map(FlangName.CHAR_EXPR, ExprIoControlSpec.class) + .map(FlangName.ASYNCHRONOUS, ExprIoControlSpec.class) + .map(FlangName.END_LABEL, LabelIoControlSpec.class) + .map(FlangName.EOR_LABEL, LabelIoControlSpec.class) + .map(FlangName.ERR_LABEL, LabelIoControlSpec.class) + .map(FlangName.ID_VARIABLE, VarIoControlSpec.class) + .map(FlangName.MSG_VARIABLE, VarIoControlSpec.class) + .map(FlangName.STAT_VARIABLE, VarIoControlSpec.class) + .map(FlangName.POS, ExprIoControlSpec.class) + .map(FlangName.REC, ExprIoControlSpec.class) + .map(FlangName.SIZE, VarIoControlSpec.class)); + NAME_TO_MAPPER.put(FlangName.IO_UNIT, ClassMapper.caseFor(IoControlSpec.class) + .map(FlangName.EXPR, ExprIoControlSpec.class) + .map(FlangName.VARIABLE, VarIoControlSpec.class) + .map(FlangName.STAR, StarUnitIoControlSpec.class)); /// UTILs NAME_TO_MAPPER.put(FlangName.NAME_VALUE, ClassMapper.always(NameValue.class)); - NAME_TO_MAPPER.put(FlangName.IO_UNIT, ClassMapper.always(IoUnit.class)); - NAME_TO_MAPPER.put(FlangName.IO_CONTROL_SPEC, ClassMapper.always(ExprIoControlSpec.class)); NAME_TO_MAPPER.put(FlangName.STAT_VARIABLE, ClassMapper.always(StatAllocOption.class)); /// OPENMP From 775f0a1c672375f5bc663e6a8bf2ec3d9adba4e9 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sun, 26 Jul 2026 16:53:52 +0100 Subject: [PATCH 126/260] Create processors for new IO control specifications --- .../specs/fortran/parser/FlangAttributes.java | 6 + .../parser/processors/IoProcessors.java | 140 +++++++++++++++--- .../parser/processors/NodeProcessor.java | 5 + .../fortran/parser/processors/Nodes.java | 8 +- .../parser/processors/StmtProcessors.java | 22 +-- 5 files changed, 141 insertions(+), 40 deletions(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangAttributes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangAttributes.java index 00b14ec4..02138443 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangAttributes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangAttributes.java @@ -115,6 +115,12 @@ public String getVariantString() { return getString(getVariantKey()); } + public FlangName getVariantName() { + var variantKey = getVariantKey(); + return FlangName.convertTry(variantKey).orElseThrow(() -> new RuntimeException( + "Variant key '" + variantKey + "' is not a valid Flang name.")); + } + /** * Adds the given attributes to the current attributes, without overwritting existing attributes. * diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java index 0acdd1d7..a5452e52 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java @@ -1,11 +1,8 @@ package pt.up.fe.specs.fortran.parser.processors; -import pt.up.fe.specs.fortran.ast.nodes.io.ErrConnectSpec; -import pt.up.fe.specs.fortran.ast.nodes.io.ExprConnectSpec; -import pt.up.fe.specs.fortran.ast.nodes.io.OpenStmt; -import pt.up.fe.specs.fortran.ast.nodes.io.VarConnectSpec; -import pt.up.fe.specs.fortran.ast.nodes.io.enums.ExprConnectSpecKind; -import pt.up.fe.specs.fortran.ast.nodes.io.enums.VarConnectSpecKind; +import pt.up.fe.specs.fortran.ast.nodes.io.*; +import pt.up.fe.specs.fortran.ast.nodes.io.enums.*; +import pt.up.fe.specs.fortran.parser.FlangAttributes; import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; @@ -27,13 +24,11 @@ public void openStmt(OpenStmt openStmt) { public void exprConnectSpec(ExprConnectSpec spec) { var attrs = attributes(spec); - var variantKey = attrs.getVariantKey(); - var variant = FlangName.convertTry(variantKey).orElseThrow(() -> new RuntimeException("Variant key '" - + variantKey + "' of ExprConnectSpec is not a valid Flang name.")); + var variant = attrs.getVariantName(); switch (variant) { case FILE_UNIT_NUMBER -> { // UNIT - attrs = attributes().get(attrs.getVariantString()); + attrs = getChildAttrs(attrs); spec.set(ExprConnectSpec.KIND, ExprConnectSpecKind.UNIT); } @@ -44,7 +39,7 @@ public void exprConnectSpec(ExprConnectSpec spec) { // ACCESS, ACTION, ASYNCHRONOUS, BLANK, DECIMAL, DELIM, ENCODING, FORM, PAD, POSITION, ROUND, SIGN, // CARRIAGECONTROL, CONVERT, DISPOSE case CHAR_EXPR -> { - attrs = attributes().get(attrs.getVariantString()); + attrs = getChildAttrs(attrs); var flangKind = attrs.getString(FlangName.KIND); var kind = ExprConnectSpecKind.valueOf(flangKind); @@ -52,17 +47,17 @@ public void exprConnectSpec(ExprConnectSpec spec) { } case RECL -> { // RECL - attrs = attributes().get(attrs.getVariantString()); + attrs = getChildAttrs(attrs); spec.set(ExprConnectSpec.KIND, ExprConnectSpecKind.RECL); } case STATUS_EXPR -> { // STATUS - attrs = attributes().get(attrs.getVariantString()); + attrs = getChildAttrs(attrs); spec.set(ExprConnectSpec.KIND, ExprConnectSpecKind.STATUS); } default -> { - throw new RuntimeException("Variant key '" + variantKey + "' of ExprConnectSpec is not handled."); + throw new RuntimeException("Variant '" + variant + "' of ExprConnectSpec is not handled."); } } @@ -71,17 +66,19 @@ public void exprConnectSpec(ExprConnectSpec spec) { spec.addChild(expr); } + private FlangAttributes getChildAttrs(FlangAttributes attrs) { + return attributes().get(attrs.getVariantString()); + } + public void varConnectSpec(VarConnectSpec spec) { var attrs = attributes(spec); - var variantKey = attrs.getVariantKey(); - var variant = FlangName.convertTry(variantKey).orElseThrow(() -> new RuntimeException("Variant key '" - + variantKey + "' of VarConnectSpec is not a valid Flang name.")); + var variant = attrs.getVariantName(); var kind = switch (variant) { case MSG_VARIABLE -> VarConnectSpecKind.IOMSG; case STAT_VARIABLE -> VarConnectSpecKind.IOSTAT; case NEWUNIT -> VarConnectSpecKind.NEWUNIT; - default -> throw new RuntimeException("Variant key '" + variantKey + "' of VarConnectSpec is not handled."); + default -> throw new RuntimeException("Variant '" + variant + "' of VarConnectSpec is not handled."); }; spec.set(VarConnectSpec.KIND, kind); @@ -94,4 +91,111 @@ public void errConnectSpec(ErrConnectSpec spec) { var label = attributes(spec).getString("uint64_t"); spec.set(ErrConnectSpec.LABEL, Integer.parseInt(label)); } + + + public void writeStmt(WriteStmt writeStmt) { + stmtProcessors.actionStmt(writeStmt); + + if (attributes(writeStmt).has("iounit")) { + writeStmt.addChild(getChild(writeStmt, "iounit")); + } + + if (attributes(writeStmt).has("format")) { + writeStmt.addChild(getChild(writeStmt, "format")); + } + + if (attributes(writeStmt).has("controls")) { + writeStmt.addChildren(getChildren(writeStmt, "controls")); + } + + if (attributes(writeStmt).has("items")) { + writeStmt.addChildren(getChildren(writeStmt, "items")); + } + } + + public void exprIoControlSpec(ExprIoControlSpec spec) { + var attrs = attributes(spec); + var nodeKind = getKind(spec); + + if (nodeKind == FlangName.IO_UNIT) { // If original node is IoUnit + spec.set(ExprIoControlSpec.KIND, ExprIoControlSpecKind.UNIT); + + } else if (nodeKind == FlangName.IO_CONTROL_SPEC) { // If original node is IoControlSpec + var variant = attrs.getVariantName(); + attrs = getChildAttrs(attrs); + + var kind = switch (variant) { + // ADVANCE, BLANK, DECIMAL, DELIM, PAD, ROUND, SIGN + case CHAR_EXPR -> ExprIoControlSpecKind.valueOf(attrs.getString(FlangName.KIND)); + case ASYNCHRONOUS -> ExprIoControlSpecKind.ASYNCHRONOUS; + case POS -> ExprIoControlSpecKind.POS; + case REC -> ExprIoControlSpecKind.REC; + default -> throw new RuntimeException("Variant '" + variant + "' of ExprIoControlSpec is not handled."); + }; + spec.set(ExprIoControlSpec.KIND, kind); + + } else { + throw new RuntimeException("Node kind '" + nodeKind + "' of ExprIoControlSpec is not handled."); + } + + var exprId = attrs.getString(FlangName.EXPR); + var expr = getChild(exprId); + spec.addChild(expr); + } + + public void varIoControlSpec(VarIoControlSpec spec) { + var attrs = attributes(spec); + var nodeKind = getKind(spec); + + if (nodeKind == FlangName.IO_UNIT) { + spec.set(VarIoControlSpec.KIND, VarIoControlSpecKind.UNIT); + + } else if (nodeKind == FlangName.IO_CONTROL_SPEC) { + var variant = attrs.getVariantName(); + attrs = getChildAttrs(attrs); + + var kind = switch (variant) { + case ID_VARIABLE -> VarIoControlSpecKind.ID; + case MSG_VARIABLE -> VarIoControlSpecKind.IOMSG; + case STAT_VARIABLE -> VarIoControlSpecKind.IOSTAT; + case SIZE -> VarIoControlSpecKind.SIZE; + default -> throw new RuntimeException("Variant '" + variant + "' of VarIoControlSpec is not handled."); + }; + spec.set(VarIoControlSpec.KIND, kind); + + } else { + throw new RuntimeException("Node kind '" + nodeKind + "' of VarIoControlSpec is not handled."); + } + + var variableId = attrs.getString(FlangName.VARIABLE); + var variable = getChild(variableId); + spec.addChild(variable); + } + + public void labelIoControlSpec(LabelIoControlSpec spec) { + var variant = attributes(spec).getVariantName(); + + var kind = switch (variant) { + case END_LABEL -> LabelIoControlSpecKind.END; + case EOR_LABEL -> LabelIoControlSpecKind.EOR; + case ERR_LABEL -> LabelIoControlSpecKind.ERR; + default -> throw new RuntimeException("Variant '" + variant + "' of LabelIoControlSpec is not handled."); + }; + spec.set(LabelIoControlSpec.KIND, kind); + + var label = attributes(spec).getString("uint64_t"); + spec.set(LabelIoControlSpec.LABEL, Integer.parseInt(label)); + } + + public void starUnitIoControlSpec(StarUnitIoControlSpec ignoredSpec) {} + + public void formatIoControlSpec(FormatIoControlSpec spec) { + var format = getChild(spec, FlangName.FORMAT); + spec.addChild(format); + } + + public void namelistIoControlSpec(NamelistIoControlSpec spec) { + var namelistName = attributes().getString(spec, "source", FlangName.NAME); + spec.set(NamelistIoControlSpec.NAMELIST_NAME, namelistName); + } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/NodeProcessor.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/NodeProcessor.java index 8c78fb68..63f724dd 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/NodeProcessor.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/NodeProcessor.java @@ -146,6 +146,11 @@ default String getKind(String id) { } */ + default FlangName getKind(FortranNode node) { + var id = attributes(node).getString("id"); + var kindStr = attributes().getKind(id); + return FlangName.valueOf(kindStr); + } default FlangData attributes() { diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 44b5c431..753f72df 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -118,7 +118,6 @@ public Nodes(FortranJsonResult data) { processors.put(UseOnlyStmt.class, s::useOnlyStmt); processors.put(UseName.class, s::useName); processors.put(NamesRename.class, s::namesRename); - processors.put(WriteStmt.class, s::writeStmt); processors.put(ContainsStmt.class, s::containsStmt); processors.put(AllocateStmt.class, s::allocateStmt); processors.put(DeallocateStmt.class, s::deallocateStmt); @@ -199,6 +198,13 @@ public Nodes(FortranJsonResult data) { processors.put(ExprConnectSpec.class, i::exprConnectSpec); processors.put(VarConnectSpec.class, i::varConnectSpec); processors.put(ErrConnectSpec.class, i::errConnectSpec); + processors.put(WriteStmt.class, i::writeStmt); + processors.put(ExprIoControlSpec.class, i::exprIoControlSpec); + processors.put(VarIoControlSpec.class, i::varIoControlSpec); + processors.put(LabelIoControlSpec.class, i::labelIoControlSpec); + processors.put(StarUnitIoControlSpec.class, i::starUnitIoControlSpec); + processors.put(FormatIoControlSpec.class, i::formatIoControlSpec); + processors.put(NamelistIoControlSpec.class, i::namelistIoControlSpec); var omp = new OmpProcessors(data, s); processors.put(OmpBlockConstruct.class, omp::ompBlockConstruct); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 6a8f858c..8e0e7ab5 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -440,26 +440,6 @@ public void gotoStmt(GotoStmt gotoStmt) { gotoStmt.set(GotoStmt.LABEL, label); } - public void writeStmt(WriteStmt writeStmt) { - actionStmt(writeStmt); - - if (attributes(writeStmt).has("iounit")) { - writeStmt.addChild(getChild(writeStmt, "iounit")); - } - - if (attributes(writeStmt).has("format")) { - writeStmt.addChild(getChild(writeStmt, "format")); - } - - if (attributes(writeStmt).has("controls")) { - writeStmt.addChildren(getChildren(writeStmt, "controls")); - } - - if (attributes(writeStmt).has("items")) { - writeStmt.addChildren(getChildren(writeStmt, "items")); - } - } - public void containsStmt(ContainsStmt containsStmt) { executableStmt(containsStmt); } @@ -534,7 +514,7 @@ public void parameterStmt(ParameterStmt parameterStmt) { } public void namedConstantDef(NamedConstantDef namedConstantDef) { -var ref = getChild(namedConstantDef, FlangName.NAMED_CONSTANT); + var ref = getChild(namedConstantDef, FlangName.NAMED_CONSTANT); namedConstantDef.addChild(ref); var expr = getChild(namedConstantDef, FlangName.EXPR); From 60ee6a63b2c8597dea78f2fd351a5c12bbaef4dc Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 27 Jul 2026 14:37:08 +0100 Subject: [PATCH 127/260] Fix parsing of spec kinds --- .../nodes/io/enums/ExprConnectSpecKind.java | 13 +- .../nodes/io/enums/ExprIoControlSpecKind.java | 16 +- .../io/enums/LabelIoControlSpecKind.java | 4 + .../nodes/io/enums/VarConnectSpecKind.java | 17 +- .../nodes/io/enums/VarIoControlSpecKind.java | 17 +- .../fortran/parser/io/io_control.json | 2379 ++++++++--------- .../parser/processors/IoProcessors.java | 19 +- .../parser/processors/NodeProcessor.java | 5 +- 8 files changed, 1167 insertions(+), 1303 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/ExprConnectSpecKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/ExprConnectSpecKind.java index ae475f1c..c8f6cf03 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/ExprConnectSpecKind.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/ExprConnectSpecKind.java @@ -1,9 +1,8 @@ package pt.up.fe.specs.fortran.ast.nodes.io.enums; -import pt.up.fe.specs.util.SpecsStrings; import pt.up.fe.specs.util.providers.StringProvider; -public enum ExprConnectSpecKind implements StringProvider { +public enum ExprConnectSpecKind { UNIT, ACCESS, ACTION, @@ -25,13 +24,7 @@ public enum ExprConnectSpecKind implements StringProvider { CONVERT, DISPOSE; - private final String string; - - ExprConnectSpecKind() { - string = SpecsStrings.toCamelCase(name()); - } - - public String getString() { - return string; + public static ExprConnectSpecKind convert(String name) { + return valueOf(name.toUpperCase()); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/ExprIoControlSpecKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/ExprIoControlSpecKind.java index 6f9a020d..db9f7a75 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/ExprIoControlSpecKind.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/ExprIoControlSpecKind.java @@ -1,9 +1,6 @@ package pt.up.fe.specs.fortran.ast.nodes.io.enums; -import pt.up.fe.specs.util.SpecsStrings; -import pt.up.fe.specs.util.providers.StringProvider; - -public enum ExprIoControlSpecKind implements StringProvider { +public enum ExprIoControlSpecKind { ASYNCHRONOUS, ADVANCE, BLANK, @@ -16,14 +13,7 @@ public enum ExprIoControlSpecKind implements StringProvider { SIGN, UNIT; - private final String string; - - ExprIoControlSpecKind() { - string = SpecsStrings.toCamelCase(name()); - } - - @Override - public String getString() { - return string; + public static ExprIoControlSpecKind convert(String name) { + return valueOf(name.toUpperCase()); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/LabelIoControlSpecKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/LabelIoControlSpecKind.java index a65026b2..ec65f6f1 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/LabelIoControlSpecKind.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/LabelIoControlSpecKind.java @@ -4,4 +4,8 @@ public enum LabelIoControlSpecKind { END, EOR, ERR; + + public static LabelIoControlSpecKind convert(String name) { + return valueOf(name.toUpperCase()); + } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/VarConnectSpecKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/VarConnectSpecKind.java index 7ffc6155..74950e5c 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/VarConnectSpecKind.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/VarConnectSpecKind.java @@ -1,22 +1,11 @@ package pt.up.fe.specs.fortran.ast.nodes.io.enums; -import pt.up.fe.specs.fortran.ast.nodes.io.VarConnectSpec; -import pt.up.fe.specs.util.SpecsStrings; -import pt.up.fe.specs.util.providers.StringProvider; - -public enum VarConnectSpecKind implements StringProvider { +public enum VarConnectSpecKind { IOMSG, IOSTAT, NEWUNIT; - public final String string; - - VarConnectSpecKind() { - string = SpecsStrings.toCamelCase(name()); - } - - @Override - public String getString() { - return string; + public static VarConnectSpecKind convert(String name) { + return valueOf(name.toUpperCase()); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/VarIoControlSpecKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/VarIoControlSpecKind.java index eb2d8ec0..8d35d0f3 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/VarIoControlSpecKind.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/VarIoControlSpecKind.java @@ -1,24 +1,13 @@ package pt.up.fe.specs.fortran.ast.nodes.io.enums; -import pt.up.fe.specs.fortran.ast.nodes.io.VarIoControlSpec; -import pt.up.fe.specs.util.SpecsStrings; -import pt.up.fe.specs.util.providers.StringProvider; - -public enum VarIoControlSpecKind implements StringProvider { +public enum VarIoControlSpecKind { ID, IOMSG, IOSTAT, SIZE, UNIT; - private final String string; - - VarIoControlSpecKind() { - string = SpecsStrings.toCamelCase(name()); - } - - @Override - public String getString() { - return string; + public static VarIoControlSpecKind convert(String name) { + return valueOf(name.toUpperCase()); } } diff --git a/FortranParser/resources-test/fortran/parser/io/io_control.json b/FortranParser/resources-test/fortran/parser/io/io_control.json index 853b9b6b..e4877c0c 100644 --- a/FortranParser/resources-test/fortran/parser/io/io_control.json +++ b/FortranParser/resources-test/fortran/parser/io/io_control.json @@ -2,3021 +2,2914 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x558b7bbfbf00-Program", + "id": "0x562ce94e6f00-Program", "ProgramUnit": [ - "0x558b7bc3b420-ProgramUnit" + "0x562ce95259f0-ProgramUnit" ] }, { - "id": "0x558b7bc3b420-ProgramUnit", + "id": "0x562ce95259f0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x558b7bc39a60-MainProgram" + "MainProgram": "0x562ce95245d0-MainProgram" }, { - "id": "0x558b7bc39a60-MainProgram", - "Statement": "0x558b7bc39ba8-Statement", - "SpecificationPart": "0x558b7bc39b00-SpecificationPart", - "ExecutionPart": "0x558b7bc39ae8-ExecutionPart", - "Statement": "0x558b7bc39a60-Statement" + "id": "0x562ce95245d0-MainProgram", + "Statement": "0x562ce9524718-Statement", + "SpecificationPart": "0x562ce9524670-SpecificationPart", + "ExecutionPart": "0x562ce9524658-ExecutionPart", + "Statement": "0x562ce95245d0-Statement" }, { - "id": "0x558b7bc39ba8-Statement", - "statement": "0x558b7bc39bb8-ProgramStmt", + "id": "0x562ce9524718-Statement", + "statement": "0x562ce9524728-ProgramStmt", "source": "program IO_CONTROL_SPECS" }, { - "id": "0x558b7bc39bb8-ProgramStmt", - "Name": "0x558b7bc39bb8-Name" + "id": "0x562ce9524728-ProgramStmt", + "Name": "0x562ce9524728-Name" }, { - "id": "0x558b7bc39bb8-Name", + "id": "0x562ce9524728-Name", "source": "IO_CONTROL_SPECS" }, { - "id": "0x558b7bc39b00-SpecificationPart", - "ImplicitPart": "0x558b7bc39b18-ImplicitPart", + "id": "0x562ce9524670-SpecificationPart", + "ImplicitPart": "0x562ce9524688-ImplicitPart", "DeclarationConstruct": [ - "0x558b7bc09170-DeclarationConstruct", - "0x558b7bc09110-DeclarationConstruct", - "0x558b7bc283d0-DeclarationConstruct", - "0x558b7bc28680-DeclarationConstruct", - "0x558b7bc288b0-DeclarationConstruct", - "0x558b7bc28b60-DeclarationConstruct", - "0x558b7bc08da0-DeclarationConstruct" + "0x562ce94f4170-DeclarationConstruct", + "0x562ce94f4110-DeclarationConstruct", + "0x562ce9523be0-DeclarationConstruct", + "0x562ce9523cc0-DeclarationConstruct", + "0x562ce9511950-DeclarationConstruct", + "0x562ce9511c00-DeclarationConstruct", + "0x562ce94f3da0-DeclarationConstruct" ] }, { - "id": "0x558b7bc39b18-ImplicitPart" + "id": "0x562ce9524688-ImplicitPart" }, { - "id": "0x558b7bc09170-DeclarationConstruct", + "id": "0x562ce94f4170-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558b7bc09170-SpecificationConstruct" + "SpecificationConstruct": "0x562ce94f4170-SpecificationConstruct" }, { - "id": "0x558b7bc09170-SpecificationConstruct", + "id": "0x562ce94f4170-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558b7bc09170-Statement" + "Statement": "0x562ce94f4170-Statement" }, { - "id": "0x558b7bc09170-Statement", - "statement": "0x558b7bc27960-TypeDeclarationStmt", + "id": "0x562ce94f4170-Statement", + "statement": "0x562ce9523170-TypeDeclarationStmt", "source": "integer :: u_seq, u_dir, u_stream" }, { - "id": "0x558b7bc27960-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558b7bc27990-DeclarationTypeSpec", + "id": "0x562ce9523170-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x562ce95231a0-DeclarationTypeSpec", "EntityDecl": [ - "0x558b7bc27c50-EntityDecl", - "0x558b7bc27a70-EntityDecl", - "0x558b7bc27b60-EntityDecl" + "0x562ce9523460-EntityDecl", + "0x562ce9523280-EntityDecl", + "0x562ce9523370-EntityDecl" ] }, { - "id": "0x558b7bc27990-DeclarationTypeSpec", + "id": "0x562ce95231a0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558b7bc27990-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x562ce95231a0-IntrinsicTypeSpec" }, { - "id": "0x558b7bc27990-IntrinsicTypeSpec", + "id": "0x562ce95231a0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x558b7bc27990-IntegerTypeSpec" + "IntegerTypeSpec": "0x562ce95231a0-IntegerTypeSpec" }, { - "id": "0x558b7bc27990-IntegerTypeSpec" + "id": "0x562ce95231a0-IntegerTypeSpec" }, { - "id": "0x558b7bc27c50-EntityDecl", - "Name": "0x558b7bc27d08-Name" + "id": "0x562ce9523460-EntityDecl", + "Name": "0x562ce9523518-Name" }, { - "id": "0x558b7bc27d08-Name", + "id": "0x562ce9523518-Name", "source": "u_seq" }, { - "id": "0x558b7bc27a70-EntityDecl", - "Name": "0x558b7bc27b28-Name" + "id": "0x562ce9523280-EntityDecl", + "Name": "0x562ce9523338-Name" }, { - "id": "0x558b7bc27b28-Name", + "id": "0x562ce9523338-Name", "source": "u_dir" }, { - "id": "0x558b7bc27b60-EntityDecl", - "Name": "0x558b7bc27c18-Name" + "id": "0x562ce9523370-EntityDecl", + "Name": "0x562ce9523428-Name" }, { - "id": "0x558b7bc27c18-Name", + "id": "0x562ce9523428-Name", "source": "u_stream" }, { - "id": "0x558b7bc09110-DeclarationConstruct", + "id": "0x562ce94f4110-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558b7bc09110-SpecificationConstruct" + "SpecificationConstruct": "0x562ce94f4110-SpecificationConstruct" }, { - "id": "0x558b7bc09110-SpecificationConstruct", + "id": "0x562ce94f4110-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558b7bc09110-Statement" + "Statement": "0x562ce94f4110-Statement" }, { - "id": "0x558b7bc09110-Statement", - "statement": "0x558b7bc279e0-TypeDeclarationStmt", + "id": "0x562ce94f4110-Statement", + "statement": "0x562ce95231f0-TypeDeclarationStmt", "source": "integer :: ios, async_id, chars_read" }, { - "id": "0x558b7bc279e0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558b7bc27a10-DeclarationTypeSpec", + "id": "0x562ce95231f0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x562ce9523220-DeclarationTypeSpec", "EntityDecl": [ - "0x558b7bc27fa0-EntityDecl", - "0x558b7bc27dc0-EntityDecl", - "0x558b7bc27eb0-EntityDecl" + "0x562ce95237b0-EntityDecl", + "0x562ce95235d0-EntityDecl", + "0x562ce95236c0-EntityDecl" ] }, { - "id": "0x558b7bc27a10-DeclarationTypeSpec", + "id": "0x562ce9523220-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558b7bc27a10-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x562ce9523220-IntrinsicTypeSpec" }, { - "id": "0x558b7bc27a10-IntrinsicTypeSpec", + "id": "0x562ce9523220-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x558b7bc27a10-IntegerTypeSpec" + "IntegerTypeSpec": "0x562ce9523220-IntegerTypeSpec" }, { - "id": "0x558b7bc27a10-IntegerTypeSpec" + "id": "0x562ce9523220-IntegerTypeSpec" }, { - "id": "0x558b7bc27fa0-EntityDecl", - "Name": "0x558b7bc28058-Name" + "id": "0x562ce95237b0-EntityDecl", + "Name": "0x562ce9523868-Name" }, { - "id": "0x558b7bc28058-Name", + "id": "0x562ce9523868-Name", "source": "ios" }, { - "id": "0x558b7bc27dc0-EntityDecl", - "Name": "0x558b7bc27e78-Name" + "id": "0x562ce95235d0-EntityDecl", + "Name": "0x562ce9523688-Name" }, { - "id": "0x558b7bc27e78-Name", + "id": "0x562ce9523688-Name", "source": "async_id" }, { - "id": "0x558b7bc27eb0-EntityDecl", - "Name": "0x558b7bc27f68-Name" + "id": "0x562ce95236c0-EntityDecl", + "Name": "0x562ce9523778-Name" }, { - "id": "0x558b7bc27f68-Name", + "id": "0x562ce9523778-Name", "source": "chars_read" }, { - "id": "0x558b7bc283d0-DeclarationConstruct", + "id": "0x562ce9523be0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558b7bc283d0-SpecificationConstruct" + "SpecificationConstruct": "0x562ce9523be0-SpecificationConstruct" }, { - "id": "0x558b7bc283d0-SpecificationConstruct", + "id": "0x562ce9523be0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558b7bc283d0-Statement" + "Statement": "0x562ce9523be0-Statement" }, { - "id": "0x558b7bc283d0-Statement", - "statement": "0x558b7bc27d30-TypeDeclarationStmt", + "id": "0x562ce9523be0-Statement", + "statement": "0x562ce9523540-TypeDeclarationStmt", "source": "character(len=200) :: io_message" }, { - "id": "0x558b7bc27d30-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558b7bc27d60-DeclarationTypeSpec", + "id": "0x562ce9523540-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x562ce9523570-DeclarationTypeSpec", "EntityDecl": [ - "0x558b7bc28200-EntityDecl" + "0x562ce9523a10-EntityDecl" ] }, { - "id": "0x558b7bc27d60-DeclarationTypeSpec", + "id": "0x562ce9523570-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558b7bc27d60-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x562ce9523570-IntrinsicTypeSpec" }, { - "id": "0x558b7bc27d60-IntrinsicTypeSpec", + "id": "0x562ce9523570-IntrinsicTypeSpec", "variantKey": "Character", - "Character": "0x558b7bc27d60-Character" + "Character": "0x562ce9523570-Character" }, { - "id": "0x558b7bc27d60-Character", - "CharSelector": "0x558b7bc27d60-CharSelector" + "id": "0x562ce9523570-Character", + "CharSelector": "0x562ce9523570-CharSelector" }, { - "id": "0x558b7bc27d60-CharSelector", + "id": "0x562ce9523570-CharSelector", "variantKey": "LengthSelector", - "LengthSelector": "0x558b7bc27d60-LengthSelector" + "LengthSelector": "0x562ce9523570-LengthSelector" }, { - "id": "0x558b7bc27d60-LengthSelector", + "id": "0x562ce9523570-LengthSelector", "variantKey": "TypeParamValue", - "TypeParamValue": "0x558b7bc27d60-TypeParamValue" + "TypeParamValue": "0x562ce9523570-TypeParamValue" }, { - "id": "0x558b7bc27d60-TypeParamValue", + "id": "0x562ce9523570-TypeParamValue", "variantKey": "Expr", - "Expr": "0x558b7bb9b790-Expr" + "Expr": "0x562ce9486790-Expr" }, { - "id": "0x558b7bb9b790-Expr", + "id": "0x562ce9486790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bb9b7b0-LiteralConstant" + "LiteralConstant": "0x562ce94867b0-LiteralConstant" }, { - "id": "0x558b7bb9b7b0-LiteralConstant", + "id": "0x562ce94867b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558b7bb9b7b0-IntLiteralConstant" + "IntLiteralConstant": "0x562ce94867b0-IntLiteralConstant" }, { - "id": "0x558b7bb9b7b0-IntLiteralConstant", + "id": "0x562ce94867b0-IntLiteralConstant", "CharBlock": "200" }, { - "id": "0x558b7bc28200-EntityDecl", - "Name": "0x558b7bc282b8-Name" + "id": "0x562ce9523a10-EntityDecl", + "Name": "0x562ce9523ac8-Name" }, { - "id": "0x558b7bc282b8-Name", + "id": "0x562ce9523ac8-Name", "source": "io_message" }, { - "id": "0x558b7bc28680-DeclarationConstruct", + "id": "0x562ce9523cc0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558b7bc28680-SpecificationConstruct" + "SpecificationConstruct": "0x562ce9523cc0-SpecificationConstruct" }, { - "id": "0x558b7bc28680-SpecificationConstruct", + "id": "0x562ce9523cc0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558b7bc28680-Statement" + "Statement": "0x562ce9523cc0-Statement" }, { - "id": "0x558b7bc28680-Statement", - "statement": "0x558b7bc28080-TypeDeclarationStmt", + "id": "0x562ce9523cc0-Statement", + "statement": "0x562ce9523890-TypeDeclarationStmt", "source": "character(len=20) :: text_buffer" }, { - "id": "0x558b7bc28080-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558b7bc280b0-DeclarationTypeSpec", + "id": "0x562ce9523890-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x562ce95238c0-DeclarationTypeSpec", "EntityDecl": [ - "0x558b7bc28590-EntityDecl" + "0x562ce949c270-EntityDecl" ] }, { - "id": "0x558b7bc280b0-DeclarationTypeSpec", + "id": "0x562ce95238c0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558b7bc280b0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x562ce95238c0-IntrinsicTypeSpec" }, { - "id": "0x558b7bc280b0-IntrinsicTypeSpec", + "id": "0x562ce95238c0-IntrinsicTypeSpec", "variantKey": "Character", - "Character": "0x558b7bc280b0-Character" + "Character": "0x562ce95238c0-Character" }, { - "id": "0x558b7bc280b0-Character", - "CharSelector": "0x558b7bc280b0-CharSelector" + "id": "0x562ce95238c0-Character", + "CharSelector": "0x562ce95238c0-CharSelector" }, { - "id": "0x558b7bc280b0-CharSelector", + "id": "0x562ce95238c0-CharSelector", "variantKey": "LengthSelector", - "LengthSelector": "0x558b7bc280b0-LengthSelector" + "LengthSelector": "0x562ce95238c0-LengthSelector" }, { - "id": "0x558b7bc280b0-LengthSelector", + "id": "0x562ce95238c0-LengthSelector", "variantKey": "TypeParamValue", - "TypeParamValue": "0x558b7bc280b0-TypeParamValue" + "TypeParamValue": "0x562ce95238c0-TypeParamValue" }, { - "id": "0x558b7bc280b0-TypeParamValue", + "id": "0x562ce95238c0-TypeParamValue", "variantKey": "Expr", - "Expr": "0x558b7bc284a0-Expr" + "Expr": "0x562ce952ae90-Expr" }, { - "id": "0x558b7bc284a0-Expr", + "id": "0x562ce952ae90-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc284c0-LiteralConstant" + "LiteralConstant": "0x562ce952aeb0-LiteralConstant" }, { - "id": "0x558b7bc284c0-LiteralConstant", + "id": "0x562ce952aeb0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558b7bc284c0-IntLiteralConstant" + "IntLiteralConstant": "0x562ce952aeb0-IntLiteralConstant" }, { - "id": "0x558b7bc284c0-IntLiteralConstant", + "id": "0x562ce952aeb0-IntLiteralConstant", "CharBlock": "20" }, { - "id": "0x558b7bc28590-EntityDecl", - "Name": "0x558b7bc28648-Name" + "id": "0x562ce949c270-EntityDecl", + "Name": "0x562ce949c328-Name" }, { - "id": "0x558b7bc28648-Name", + "id": "0x562ce949c328-Name", "source": "text_buffer" }, { - "id": "0x558b7bc288b0-DeclarationConstruct", + "id": "0x562ce9511950-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558b7bc288b0-SpecificationConstruct" + "SpecificationConstruct": "0x562ce9511950-SpecificationConstruct" }, { - "id": "0x558b7bc288b0-SpecificationConstruct", + "id": "0x562ce9511950-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558b7bc288b0-Statement" + "Statement": "0x562ce9511950-Statement" }, { - "id": "0x558b7bc288b0-Statement", - "statement": "0x558b7bc28100-TypeDeclarationStmt", + "id": "0x562ce9511950-Statement", + "statement": "0x562ce9523910-TypeDeclarationStmt", "source": "real :: x = 123.456" }, { - "id": "0x558b7bc28100-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558b7bc28130-DeclarationTypeSpec", + "id": "0x562ce9523910-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x562ce9523940-DeclarationTypeSpec", "EntityDecl": [ - "0x558b7bc287c0-EntityDecl" + "0x562ce9511860-EntityDecl" ] }, { - "id": "0x558b7bc28130-DeclarationTypeSpec", + "id": "0x562ce9523940-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558b7bc28130-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x562ce9523940-IntrinsicTypeSpec" }, { - "id": "0x558b7bc28130-IntrinsicTypeSpec", + "id": "0x562ce9523940-IntrinsicTypeSpec", "variantKey": "Real", - "Real": "0x558b7bc28130-Real" + "Real": "0x562ce9523940-Real" }, { - "id": "0x558b7bc28130-Real" + "id": "0x562ce9523940-Real" }, { - "id": "0x558b7bc287c0-EntityDecl", - "Name": "0x558b7bc28878-Name", - "Initialization": "0x558b7bc287c0-Initialization" + "id": "0x562ce9511860-EntityDecl", + "Name": "0x562ce9511918-Name", + "Initialization": "0x562ce9511860-Initialization" }, { - "id": "0x558b7bc28878-Name", + "id": "0x562ce9511918-Name", "source": "x" }, { - "id": "0x558b7bc287c0-Initialization", + "id": "0x562ce9511860-Initialization", "variantKey": "Expr", - "Expr": "0x558b7bc286d0-Expr" + "Expr": "0x562ce9511770-Expr" }, { - "id": "0x558b7bc286d0-Expr", + "id": "0x562ce9511770-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc286f0-LiteralConstant" + "LiteralConstant": "0x562ce9511790-LiteralConstant" }, { - "id": "0x558b7bc286f0-LiteralConstant", + "id": "0x562ce9511790-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x558b7bc286f0-RealLiteralConstant" + "RealLiteralConstant": "0x562ce9511790-RealLiteralConstant" }, { - "id": "0x558b7bc286f0-RealLiteralConstant", - "real": "0x558b7bc286f0-Real" + "id": "0x562ce9511790-RealLiteralConstant", + "real": "0x562ce9511790-Real" }, { - "id": "0x558b7bc286f0-Real", + "id": "0x562ce9511790-Real", "source": "123.456" }, { - "id": "0x558b7bc28b60-DeclarationConstruct", + "id": "0x562ce9511c00-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558b7bc28b60-SpecificationConstruct" + "SpecificationConstruct": "0x562ce9511c00-SpecificationConstruct" }, { - "id": "0x558b7bc28b60-SpecificationConstruct", + "id": "0x562ce9511c00-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558b7bc28b60-Statement" + "Statement": "0x562ce9511c00-Statement" }, { - "id": "0x558b7bc28b60-Statement", - "statement": "0x558b7bc28420-TypeDeclarationStmt", + "id": "0x562ce9511c00-Statement", + "statement": "0x562ce9523c30-TypeDeclarationStmt", "source": "integer :: val = 42" }, { - "id": "0x558b7bc28420-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558b7bc28450-DeclarationTypeSpec", + "id": "0x562ce9523c30-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x562ce9523c60-DeclarationTypeSpec", "EntityDecl": [ - "0x558b7bc28a70-EntityDecl" + "0x562ce9511b10-EntityDecl" ] }, { - "id": "0x558b7bc28450-DeclarationTypeSpec", + "id": "0x562ce9523c60-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558b7bc28450-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x562ce9523c60-IntrinsicTypeSpec" }, { - "id": "0x558b7bc28450-IntrinsicTypeSpec", + "id": "0x562ce9523c60-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x558b7bc28450-IntegerTypeSpec" + "IntegerTypeSpec": "0x562ce9523c60-IntegerTypeSpec" }, { - "id": "0x558b7bc28450-IntegerTypeSpec" + "id": "0x562ce9523c60-IntegerTypeSpec" }, { - "id": "0x558b7bc28a70-EntityDecl", - "Name": "0x558b7bc28b28-Name", - "Initialization": "0x558b7bc28a70-Initialization" + "id": "0x562ce9511b10-EntityDecl", + "Name": "0x562ce9511bc8-Name", + "Initialization": "0x562ce9511b10-Initialization" }, { - "id": "0x558b7bc28b28-Name", + "id": "0x562ce9511bc8-Name", "source": "val" }, { - "id": "0x558b7bc28a70-Initialization", + "id": "0x562ce9511b10-Initialization", "variantKey": "Expr", - "Expr": "0x558b7bc28980-Expr" + "Expr": "0x562ce9511a20-Expr" }, { - "id": "0x558b7bc28980-Expr", + "id": "0x562ce9511a20-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc289a0-LiteralConstant" + "LiteralConstant": "0x562ce9511a40-LiteralConstant" }, { - "id": "0x558b7bc289a0-LiteralConstant", + "id": "0x562ce9511a40-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558b7bc289a0-IntLiteralConstant" + "IntLiteralConstant": "0x562ce9511a40-IntLiteralConstant" }, { - "id": "0x558b7bc289a0-IntLiteralConstant", + "id": "0x562ce9511a40-IntLiteralConstant", "CharBlock": "42" }, { - "id": "0x558b7bc08da0-DeclarationConstruct", + "id": "0x562ce94f3da0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558b7bc08da0-SpecificationConstruct" + "SpecificationConstruct": "0x562ce94f3da0-SpecificationConstruct" }, { - "id": "0x558b7bc08da0-SpecificationConstruct", + "id": "0x562ce94f3da0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558b7bc08da0-Statement" + "Statement": "0x562ce94f3da0-Statement" }, { - "id": "0x558b7bc08da0-Statement", - "statement": "0x558b7bc08db0-OtherSpecificationStmt", + "id": "0x562ce94f3da0-Statement", + "statement": "0x562ce94f3db0-OtherSpecificationStmt", "source": "namelist /my_namelist/ val, x" }, { - "id": "0x558b7bc08db0-OtherSpecificationStmt", + "id": "0x562ce94f3db0-OtherSpecificationStmt", "variantKey": "NamelistStmt", - "NamelistStmt": "0x558b7bc3b5f0-NamelistStmt" + "NamelistStmt": "0x562ce9525bc0-NamelistStmt" }, { - "id": "0x558b7bc3b5f0-NamelistStmt", + "id": "0x562ce9525bc0-NamelistStmt", "Group": [ - "0x558b7bc408c0-Group" + "0x562ce9524860-Group" ] }, { - "id": "0x558b7bc408c0-Group", + "id": "0x562ce9524860-Group", "Name": [ - "0x558b7bc3b3a0-Name", - "0x558b7bc3b370-Name" + "0x562ce9525970-Name", + "0x562ce9525940-Name" ] }, { - "id": "0x558b7bc408d8-Name", + "id": "0x562ce9524878-Name", "source": "my_namelist" }, { - "id": "0x558b7bc3b3a0-Name", + "id": "0x562ce9525970-Name", "source": "val" }, { - "id": "0x558b7bc3b370-Name", + "id": "0x562ce9525940-Name", "source": "x" }, { - "id": "0x558b7bc39ae8-ExecutionPart", + "id": "0x562ce9524658-ExecutionPart", "ExecutionPartConstruct": [ - "0x558b7bc29190-ExecutionPartConstruct", - "0x558b7bc2c850-ExecutionPartConstruct", - "0x558b7bc2b780-ExecutionPartConstruct", - "0x558b7bc2e250-ExecutionPartConstruct", - "0x558b7bc27770-ExecutionPartConstruct", - "0x558b7bc2c2d0-ExecutionPartConstruct", - "0x558b7bc2ff20-ExecutionPartConstruct", - "0x558b7bc2efd0-ExecutionPartConstruct", - "0x558b7bc30610-ExecutionPartConstruct", - "0x558b7bc2f030-ExecutionPartConstruct", - "0x558b7bc317b0-ExecutionPartConstruct", - "0x558b7bc2fd10-ExecutionPartConstruct", - "0x558b7bc2f1f0-ExecutionPartConstruct", - "0x558b7bc2c270-ExecutionPartConstruct", - "0x558b7bc320b0-ExecutionPartConstruct", - "0x558b7bc2ec40-ExecutionPartConstruct", - "0x558b7bc2b0b0-ExecutionPartConstruct", - "0x558b7bc29740-ExecutionPartConstruct", - "0x558b7bc314b0-ExecutionPartConstruct", - "0x558b7bc415c0-ExecutionPartConstruct" + "0x562ce95129b0-ExecutionPartConstruct", + "0x562ce9515a90-ExecutionPartConstruct", + "0x562ce95149c0-ExecutionPartConstruct", + "0x562ce9517490-ExecutionPartConstruct", + "0x562ce9522fe0-ExecutionPartConstruct", + "0x562ce9515510-ExecutionPartConstruct", + "0x562ce9519160-ExecutionPartConstruct", + "0x562ce9518210-ExecutionPartConstruct", + "0x562ce9519850-ExecutionPartConstruct", + "0x562ce9518270-ExecutionPartConstruct", + "0x562ce951a9f0-ExecutionPartConstruct", + "0x562ce9518f50-ExecutionPartConstruct", + "0x562ce952b8d0-ExecutionPartConstruct", + "0x562ce95154b0-ExecutionPartConstruct", + "0x562ce9518490-ExecutionPartConstruct", + "0x562ce9517e80-ExecutionPartConstruct", + "0x562ce95142f0-ExecutionPartConstruct", + "0x562ce9518430-ExecutionPartConstruct", + "0x562ce951a6f0-ExecutionPartConstruct", + "0x562ce952c1e0-ExecutionPartConstruct" ] }, { - "id": "0x558b7bc39ae8-ExecutionPartConstruct" + "id": "0x562ce9524658-ExecutionPartConstruct" }, { - "id": "0x558b7bc29190-ExecutionPartConstruct", + "id": "0x562ce95129b0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558b7bc29190-ExecutableConstruct" + "ExecutableConstruct": "0x562ce95129b0-ExecutableConstruct" }, { - "id": "0x558b7bc29190-ExecutableConstruct", + "id": "0x562ce95129b0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558b7bc29190-Statement" + "Statement": "0x562ce95129b0-Statement" }, { - "id": "0x558b7bc29190-Statement", - "statement": "0x558b7bc291a0-ActionStmt", + "id": "0x562ce95129b0-Statement", + "statement": "0x562ce95129c0-ActionStmt", "source": "open(newunit=u_seq, file='seq.txt', status='replace', action='readwrite')" }, { - "id": "0x558b7bc291a0-ActionStmt", + "id": "0x562ce95129c0-ActionStmt", "variantKey": "OpenStmt", - "OpenStmt": "0x558b7bc3b3f0-OpenStmt" + "OpenStmt": "0x562ce95259c0-OpenStmt" }, { - "id": "0x558b7bc3b3f0-OpenStmt", + "id": "0x562ce95259c0-OpenStmt", "ConnectSpec": [ - "0x558b7bc3ac20-ConnectSpec", - "0x558b7bc3a820-ConnectSpec", - "0x558b7bc3a760-ConnectSpec", - "0x558b7bc39180-ConnectSpec" + "0x562ce951d160-ConnectSpec", + "0x562ce951d060-ConnectSpec", + "0x562ce951cc60-ConnectSpec", + "0x562ce951cba0-ConnectSpec" ] }, { - "id": "0x558b7bc3ac20-ConnectSpec", + "id": "0x562ce951d160-ConnectSpec", "variantKey": "Newunit", - "Newunit": "0x558b7bc3ac20-Newunit" + "Newunit": "0x562ce951d160-Newunit" }, { - "id": "0x558b7bc3ac20-Newunit", - "Expr": "0x558b7bc3ac20-Variable" + "id": "0x562ce951d160-Newunit", + "Expr": "0x562ce951d160-Variable" }, { - "id": "0x558b7bc3ac20-Variable", + "id": "0x562ce951d160-Variable", "variantKey": "Designator", - "Designator": "0x558b7bc2bc20-Designator" + "Designator": "0x562ce9514e60-Designator" }, { - "id": "0x558b7bc2bc20-Designator", + "id": "0x562ce9514e60-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc2bc30-DataRef" + "DataRef": "0x562ce9514e70-DataRef" }, { - "id": "0x558b7bc2bc30-DataRef", + "id": "0x562ce9514e70-DataRef", "variantKey": "Name", - "Name": "0x558b7bc2bc30-Name" + "Name": "0x562ce9514e70-Name" }, { - "id": "0x558b7bc2bc30-Name", + "id": "0x562ce9514e70-Name", "source": "u_seq" }, { - "id": "0x558b7bc3a820-ConnectSpec", + "id": "0x562ce951d060-ConnectSpec", "variantKey": "Expr", - "Expr": "0x558b7bc29380-Expr" + "Expr": "0x562ce95125c0-Expr" }, { - "id": "0x558b7bc29380-Expr", + "id": "0x562ce95125c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc293a0-LiteralConstant" + "LiteralConstant": "0x562ce95125e0-LiteralConstant" }, { - "id": "0x558b7bc293a0-LiteralConstant", + "id": "0x562ce95125e0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x558b7bc293a0-CharLiteralConstant" + "CharLiteralConstant": "0x562ce95125e0-CharLiteralConstant" }, { - "id": "0x558b7bc293a0-CharLiteralConstant", + "id": "0x562ce95125e0-CharLiteralConstant", "string": "seq.txt" }, { - "id": "0x558b7bc3a760-ConnectSpec", + "id": "0x562ce951cc60-ConnectSpec", "variantKey": "StatusExpr", - "StatusExpr": "0x558b7bc3a760-StatusExpr" + "StatusExpr": "0x562ce951cc60-StatusExpr" }, { - "id": "0x558b7bc3a760-StatusExpr", - "Expr": "0x558b7bc2a1e0-Expr" + "id": "0x562ce951cc60-StatusExpr", + "Expr": "0x562ce9513420-Expr" }, { - "id": "0x558b7bc2a1e0-Expr", + "id": "0x562ce9513420-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc2a200-LiteralConstant" + "LiteralConstant": "0x562ce9513440-LiteralConstant" }, { - "id": "0x558b7bc2a200-LiteralConstant", + "id": "0x562ce9513440-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x558b7bc2a200-CharLiteralConstant" + "CharLiteralConstant": "0x562ce9513440-CharLiteralConstant" }, { - "id": "0x558b7bc2a200-CharLiteralConstant", + "id": "0x562ce9513440-CharLiteralConstant", "string": "replace" }, { - "id": "0x558b7bc39180-ConnectSpec", + "id": "0x562ce951cba0-ConnectSpec", "variantKey": "CharExpr", - "CharExpr": "0x558b7bc39180-CharExpr" + "CharExpr": "0x562ce951cba0-CharExpr" }, { - "id": "0x558b7bc39180-CharExpr", - "Kind = Action": "0x558b7bc39188-Kind = Action", - "Expr": "0x558b7bc29d60-Expr" + "id": "0x562ce951cba0-CharExpr", + "Kind": "0x562ce951cba8-Kind", + "Expr": "0x562ce9512fa0-Expr" }, { - "id": "0x558b7bc39188-Kind = Action", + "id": "0x562ce951cba8-Kind", "disambiguation": "Fortran::parser::ConnectSpec::CharExpr::Kind", "value": "Action" }, { - "id": "0x558b7bc29d60-Expr", + "id": "0x562ce9512fa0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc29d80-LiteralConstant" + "LiteralConstant": "0x562ce9512fc0-LiteralConstant" }, { - "id": "0x558b7bc29d80-LiteralConstant", + "id": "0x562ce9512fc0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x558b7bc29d80-CharLiteralConstant" + "CharLiteralConstant": "0x562ce9512fc0-CharLiteralConstant" }, { - "id": "0x558b7bc29d80-CharLiteralConstant", + "id": "0x562ce9512fc0-CharLiteralConstant", "string": "readwrite" }, { - "id": "0x558b7bc2c850-ExecutionPartConstruct", + "id": "0x562ce9515a90-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558b7bc2c850-ExecutableConstruct" + "ExecutableConstruct": "0x562ce9515a90-ExecutableConstruct" }, { - "id": "0x558b7bc2c850-ExecutableConstruct", + "id": "0x562ce9515a90-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558b7bc2c850-Statement" + "Statement": "0x562ce9515a90-Statement" }, { - "id": "0x558b7bc2c850-Statement", - "statement": "0x558b7bc2c860-ActionStmt", + "id": "0x562ce9515a90-Statement", + "statement": "0x562ce9515aa0-ActionStmt", "source": "open(newunit=u_dir, file='dir.bin', status='replace', access='direct', recl=16)" }, { - "id": "0x558b7bc2c860-ActionStmt", + "id": "0x562ce9515aa0-ActionStmt", "variantKey": "OpenStmt", - "OpenStmt": "0x558b7bc3b2c0-OpenStmt" + "OpenStmt": "0x562ce9525890-OpenStmt" }, { - "id": "0x558b7bc3b2c0-OpenStmt", + "id": "0x562ce9525890-OpenStmt", "ConnectSpec": [ - "0x558b7bc38820-ConnectSpec", - "0x558b7bc3b450-ConnectSpec", - "0x558b7bc3b4b0-ConnectSpec", - "0x558b7bc3b4f0-ConnectSpec", - "0x558b7bc38a50-ConnectSpec" + "0x562ce951c210-ConnectSpec", + "0x562ce9525a20-ConnectSpec", + "0x562ce9525a80-ConnectSpec", + "0x562ce9525ac0-ConnectSpec", + "0x562ce951c440-ConnectSpec" ] }, { - "id": "0x558b7bc38820-ConnectSpec", + "id": "0x562ce951c210-ConnectSpec", "variantKey": "Newunit", - "Newunit": "0x558b7bc38820-Newunit" + "Newunit": "0x562ce951c210-Newunit" }, { - "id": "0x558b7bc38820-Newunit", - "Expr": "0x558b7bc38820-Variable" + "id": "0x562ce951c210-Newunit", + "Expr": "0x562ce951c210-Variable" }, { - "id": "0x558b7bc38820-Variable", + "id": "0x562ce951c210-Variable", "variantKey": "Designator", - "Designator": "0x558b7bc28e90-Designator" + "Designator": "0x562ce95120e0-Designator" }, { - "id": "0x558b7bc28e90-Designator", + "id": "0x562ce95120e0-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc28ea0-DataRef" + "DataRef": "0x562ce95120f0-DataRef" }, { - "id": "0x558b7bc28ea0-DataRef", + "id": "0x562ce95120f0-DataRef", "variantKey": "Name", - "Name": "0x558b7bc28ea0-Name" + "Name": "0x562ce95120f0-Name" }, { - "id": "0x558b7bc28ea0-Name", + "id": "0x562ce95120f0-Name", "source": "u_dir" }, { - "id": "0x558b7bc3b450-ConnectSpec", + "id": "0x562ce9525a20-ConnectSpec", "variantKey": "Expr", - "Expr": "0x558b7bc2c070-Expr" + "Expr": "0x562ce95152b0-Expr" }, { - "id": "0x558b7bc2c070-Expr", + "id": "0x562ce95152b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc2c090-LiteralConstant" + "LiteralConstant": "0x562ce95152d0-LiteralConstant" }, { - "id": "0x558b7bc2c090-LiteralConstant", + "id": "0x562ce95152d0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x558b7bc2c090-CharLiteralConstant" + "CharLiteralConstant": "0x562ce95152d0-CharLiteralConstant" }, { - "id": "0x558b7bc2c090-CharLiteralConstant", + "id": "0x562ce95152d0-CharLiteralConstant", "string": "dir.bin" }, { - "id": "0x558b7bc3b4b0-ConnectSpec", + "id": "0x562ce9525a80-ConnectSpec", "variantKey": "StatusExpr", - "StatusExpr": "0x558b7bc3b4b0-StatusExpr" + "StatusExpr": "0x562ce9525a80-StatusExpr" }, { - "id": "0x558b7bc3b4b0-StatusExpr", - "Expr": "0x558b7bc2bf90-Expr" + "id": "0x562ce9525a80-StatusExpr", + "Expr": "0x562ce95151d0-Expr" }, { - "id": "0x558b7bc2bf90-Expr", + "id": "0x562ce95151d0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc2bfb0-LiteralConstant" + "LiteralConstant": "0x562ce95151f0-LiteralConstant" }, { - "id": "0x558b7bc2bfb0-LiteralConstant", + "id": "0x562ce95151f0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x558b7bc2bfb0-CharLiteralConstant" + "CharLiteralConstant": "0x562ce95151f0-CharLiteralConstant" }, { - "id": "0x558b7bc2bfb0-CharLiteralConstant", + "id": "0x562ce95151f0-CharLiteralConstant", "string": "replace" }, { - "id": "0x558b7bc3b4f0-ConnectSpec", + "id": "0x562ce9525ac0-ConnectSpec", "variantKey": "CharExpr", - "CharExpr": "0x558b7bc3b4f0-CharExpr" + "CharExpr": "0x562ce9525ac0-CharExpr" }, { - "id": "0x558b7bc3b4f0-CharExpr", - "Kind = Action": "0x558b7bc3b4f8-Kind = Action", - "Expr": "0x558b7bc2beb0-Expr" + "id": "0x562ce9525ac0-CharExpr", + "Kind": "0x562ce9525ac8-Kind", + "Expr": "0x562ce95150f0-Expr" }, { - "id": "0x558b7bc3b4f8-Kind = Action", + "id": "0x562ce9525ac8-Kind", "disambiguation": "Fortran::parser::ConnectSpec::CharExpr::Kind", "value": "Access" }, { - "id": "0x558b7bc2beb0-Expr", + "id": "0x562ce95150f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc2bed0-LiteralConstant" + "LiteralConstant": "0x562ce9515110-LiteralConstant" }, { - "id": "0x558b7bc2bed0-LiteralConstant", + "id": "0x562ce9515110-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x558b7bc2bed0-CharLiteralConstant" + "CharLiteralConstant": "0x562ce9515110-CharLiteralConstant" }, { - "id": "0x558b7bc2bed0-CharLiteralConstant", + "id": "0x562ce9515110-CharLiteralConstant", "string": "direct" }, { - "id": "0x558b7bc38a50-ConnectSpec", + "id": "0x562ce951c440-ConnectSpec", "variantKey": "Recl", - "Recl": "0x558b7bc38a50-Recl" + "Recl": "0x562ce951c440-Recl" }, { - "id": "0x558b7bc38a50-Recl", - "Expr": "0x558b7bc2bdd0-Expr" + "id": "0x562ce951c440-Recl", + "Expr": "0x562ce9515010-Expr" }, { - "id": "0x558b7bc2bdd0-Expr", + "id": "0x562ce9515010-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc2bdf0-LiteralConstant" + "LiteralConstant": "0x562ce9515030-LiteralConstant" }, { - "id": "0x558b7bc2bdf0-LiteralConstant", + "id": "0x562ce9515030-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558b7bc2bdf0-IntLiteralConstant" + "IntLiteralConstant": "0x562ce9515030-IntLiteralConstant" }, { - "id": "0x558b7bc2bdf0-IntLiteralConstant", + "id": "0x562ce9515030-IntLiteralConstant", "CharBlock": "16" }, { - "id": "0x558b7bc2b780-ExecutionPartConstruct", + "id": "0x562ce95149c0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558b7bc2b780-ExecutableConstruct" + "ExecutableConstruct": "0x562ce95149c0-ExecutableConstruct" }, { - "id": "0x558b7bc2b780-ExecutableConstruct", + "id": "0x562ce95149c0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558b7bc2b780-Statement" + "Statement": "0x562ce95149c0-Statement" }, { - "id": "0x558b7bc2b780-Statement", - "statement": "0x558b7bc2b790-ActionStmt", + "id": "0x562ce95149c0-Statement", + "statement": "0x562ce95149d0-ActionStmt", "source": "open(newunit=u_stream, file='stream.bin', status='replace', access='stream')" }, { - "id": "0x558b7bc2b790-ActionStmt", + "id": "0x562ce95149d0-ActionStmt", "variantKey": "OpenStmt", - "OpenStmt": "0x558b7bc37fd0-OpenStmt" + "OpenStmt": "0x562ce951b9c0-OpenStmt" }, { - "id": "0x558b7bc37fd0-OpenStmt", + "id": "0x562ce951b9c0-OpenStmt", "ConnectSpec": [ - "0x558b7bc38970-ConnectSpec", - "0x558b7bc388d0-ConnectSpec", - "0x558b7bc38890-ConnectSpec", - "0x558b7bc38910-ConnectSpec" + "0x562ce951c360-ConnectSpec", + "0x562ce951c2c0-ConnectSpec", + "0x562ce951c280-ConnectSpec", + "0x562ce951c300-ConnectSpec" ] }, { - "id": "0x558b7bc38970-ConnectSpec", + "id": "0x562ce951c360-ConnectSpec", "variantKey": "Newunit", - "Newunit": "0x558b7bc38970-Newunit" + "Newunit": "0x562ce951c360-Newunit" }, { - "id": "0x558b7bc38970-Newunit", - "Expr": "0x558b7bc38970-Variable" + "id": "0x562ce951c360-Newunit", + "Expr": "0x562ce951c360-Variable" }, { - "id": "0x558b7bc38970-Variable", + "id": "0x562ce951c360-Variable", "variantKey": "Designator", - "Designator": "0x558b7bc29f50-Designator" + "Designator": "0x562ce9513190-Designator" }, { - "id": "0x558b7bc29f50-Designator", + "id": "0x562ce9513190-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc29f60-DataRef" + "DataRef": "0x562ce95131a0-DataRef" }, { - "id": "0x558b7bc29f60-DataRef", + "id": "0x562ce95131a0-DataRef", "variantKey": "Name", - "Name": "0x558b7bc29f60-Name" + "Name": "0x562ce95131a0-Name" }, { - "id": "0x558b7bc29f60-Name", + "id": "0x562ce95131a0-Name", "source": "u_stream" }, { - "id": "0x558b7bc388d0-ConnectSpec", + "id": "0x562ce951c2c0-ConnectSpec", "variantKey": "Expr", - "Expr": "0x558b7bc2cbb0-Expr" + "Expr": "0x562ce9515df0-Expr" }, { - "id": "0x558b7bc2cbb0-Expr", + "id": "0x562ce9515df0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc2cbd0-LiteralConstant" + "LiteralConstant": "0x562ce9515e10-LiteralConstant" }, { - "id": "0x558b7bc2cbd0-LiteralConstant", + "id": "0x562ce9515e10-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x558b7bc2cbd0-CharLiteralConstant" + "CharLiteralConstant": "0x562ce9515e10-CharLiteralConstant" }, { - "id": "0x558b7bc2cbd0-CharLiteralConstant", + "id": "0x562ce9515e10-CharLiteralConstant", "string": "stream.bin" }, { - "id": "0x558b7bc38890-ConnectSpec", + "id": "0x562ce951c280-ConnectSpec", "variantKey": "StatusExpr", - "StatusExpr": "0x558b7bc38890-StatusExpr" + "StatusExpr": "0x562ce951c280-StatusExpr" }, { - "id": "0x558b7bc38890-StatusExpr", - "Expr": "0x558b7bc2cad0-Expr" + "id": "0x562ce951c280-StatusExpr", + "Expr": "0x562ce9515d10-Expr" }, { - "id": "0x558b7bc2cad0-Expr", + "id": "0x562ce9515d10-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc2caf0-LiteralConstant" + "LiteralConstant": "0x562ce9515d30-LiteralConstant" }, { - "id": "0x558b7bc2caf0-LiteralConstant", + "id": "0x562ce9515d30-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x558b7bc2caf0-CharLiteralConstant" + "CharLiteralConstant": "0x562ce9515d30-CharLiteralConstant" }, { - "id": "0x558b7bc2caf0-CharLiteralConstant", + "id": "0x562ce9515d30-CharLiteralConstant", "string": "replace" }, { - "id": "0x558b7bc38910-ConnectSpec", + "id": "0x562ce951c300-ConnectSpec", "variantKey": "CharExpr", - "CharExpr": "0x558b7bc38910-CharExpr" + "CharExpr": "0x562ce951c300-CharExpr" }, { - "id": "0x558b7bc38910-CharExpr", - "Kind = Action": "0x558b7bc38918-Kind = Action", - "Expr": "0x558b7bc2c9f0-Expr" + "id": "0x562ce951c300-CharExpr", + "Kind": "0x562ce951c308-Kind", + "Expr": "0x562ce9515c30-Expr" }, { - "id": "0x558b7bc38918-Kind = Action", + "id": "0x562ce951c308-Kind", "disambiguation": "Fortran::parser::ConnectSpec::CharExpr::Kind", "value": "Access" }, { - "id": "0x558b7bc2c9f0-Expr", + "id": "0x562ce9515c30-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc2ca10-LiteralConstant" + "LiteralConstant": "0x562ce9515c50-LiteralConstant" }, { - "id": "0x558b7bc2ca10-LiteralConstant", + "id": "0x562ce9515c50-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x558b7bc2ca10-CharLiteralConstant" + "CharLiteralConstant": "0x562ce9515c50-CharLiteralConstant" }, { - "id": "0x558b7bc2ca10-CharLiteralConstant", + "id": "0x562ce9515c50-CharLiteralConstant", "string": "stream" }, { - "id": "0x558b7bc2e250-ExecutionPartConstruct", + "id": "0x562ce9517490-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558b7bc2e250-ExecutableConstruct" + "ExecutableConstruct": "0x562ce9517490-ExecutableConstruct" }, { - "id": "0x558b7bc2e250-ExecutableConstruct", + "id": "0x562ce9517490-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558b7bc2e250-Statement" + "Statement": "0x562ce9517490-Statement" }, { - "id": "0x558b7bc2e250-Statement", - "statement": "0x558b7bc2e260-ActionStmt", + "id": "0x562ce9517490-Statement", + "statement": "0x562ce95174a0-ActionStmt", "source": "write(unit = u_seq, fmt = *, decimal = 'comma', sign = 'plus', round = 'up', delim = 'quote', iostat = ios, iomsg = io_message)" }, { - "id": "0x558b7bc2e260-ActionStmt", + "id": "0x562ce95174a0-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x558b7bc2e080-WriteStmt" + "WriteStmt": "0x562ce95172c0-WriteStmt" }, { - "id": "0x558b7bc2e080-WriteStmt", + "id": "0x562ce95172c0-WriteStmt", "controls": [ - "0x558b7bc2da60-IoControlSpec", - "0x558b7bc2cca0-IoControlSpec", - "0x558b7bc2cda0-IoControlSpec", - "0x558b7bc2cf80-IoControlSpec", - "0x558b7bc2d160-IoControlSpec", - "0x558b7bc2d340-IoControlSpec", - "0x558b7bc2d510-IoControlSpec", - "0x558b7bc2d960-IoControlSpec" + "0x562ce9516ca0-IoControlSpec", + "0x562ce9515ee0-IoControlSpec", + "0x562ce9515fe0-IoControlSpec", + "0x562ce95161c0-IoControlSpec", + "0x562ce95163a0-IoControlSpec", + "0x562ce9516580-IoControlSpec", + "0x562ce9516750-IoControlSpec", + "0x562ce9516ba0-IoControlSpec" ], "items": [] }, { - "id": "0x558b7bc2da60-IoControlSpec", + "id": "0x562ce9516ca0-IoControlSpec", "variantKey": "IoUnit", - "IoUnit": "0x558b7bc2da60-IoUnit" + "IoUnit": "0x562ce9516ca0-IoUnit" }, { - "id": "0x558b7bc2da60-IoUnit", + "id": "0x562ce9516ca0-IoUnit", "variantKey": "Expr", - "Expr": "0x558b7bc64e60-Expr" + "Expr": "0x562ce954fc40-Expr" }, { - "id": "0x558b7bc64e60-Expr", + "id": "0x562ce954fc40-Expr", "variantKey": "Designator", - "Designator": "0x558b7bbfa4d0-Designator" + "Designator": "0x562ce94e54d0-Designator" }, { - "id": "0x558b7bbfa4d0-Designator", + "id": "0x562ce94e54d0-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bbfa4e0-DataRef" + "DataRef": "0x562ce94e54e0-DataRef" }, { - "id": "0x558b7bbfa4e0-DataRef", + "id": "0x562ce94e54e0-DataRef", "variantKey": "Name", - "Name": "0x558b7bbfa4e0-Name" + "Name": "0x562ce94e54e0-Name" }, { - "id": "0x558b7bbfa4e0-Name", + "id": "0x562ce94e54e0-Name", "source": "u_seq" }, { - "id": "0x558b7bc2cca0-IoControlSpec", + "id": "0x562ce9515ee0-IoControlSpec", "variantKey": "Format", - "Format": "0x558b7bc2cca0-Format" + "Format": "0x562ce9515ee0-Format" }, { - "id": "0x558b7bc2cca0-Format", + "id": "0x562ce9515ee0-Format", "variantKey": "Star", - "Star": "0x558b7bc2cca0-Star" + "Star": "0x562ce9515ee0-Star" }, { - "id": "0x558b7bc2cca0-Star" + "id": "0x562ce9515ee0-Star" }, { - "id": "0x558b7bc2cda0-IoControlSpec", + "id": "0x562ce9515fe0-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x558b7bc2cda0-CharExpr" + "CharExpr": "0x562ce9515fe0-CharExpr" }, { - "id": "0x558b7bc2cda0-CharExpr", - "Kind = Decimal": "0x558b7bc2cda8-Kind = Decimal", - "Expr": "0x558b7bc299f0-Expr", - "kind": "Decimal" + "id": "0x562ce9515fe0-CharExpr", + "Kind": "0x562ce9515fe8-Kind", + "Expr": "0x562ce9512c30-Expr" }, { - "id": "0x558b7bc2cda8-Kind = Decimal", + "id": "0x562ce9515fe8-Kind", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Decimal" }, { - "id": "0x558b7bc299f0-Expr", + "id": "0x562ce9512c30-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc29a10-LiteralConstant" + "LiteralConstant": "0x562ce9512c50-LiteralConstant" }, { - "id": "0x558b7bc29a10-LiteralConstant", + "id": "0x562ce9512c50-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x558b7bc29a10-CharLiteralConstant" + "CharLiteralConstant": "0x562ce9512c50-CharLiteralConstant" }, { - "id": "0x558b7bc29a10-CharLiteralConstant", + "id": "0x562ce9512c50-CharLiteralConstant", "string": "comma" }, { - "id": "0x558b7bc2cf80-IoControlSpec", + "id": "0x562ce95161c0-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x558b7bc2cf80-CharExpr" + "CharExpr": "0x562ce95161c0-CharExpr" }, { - "id": "0x558b7bc2cf80-CharExpr", - "Kind = Decimal": "0x558b7bc2cf88-Kind = Decimal", - "Expr": "0x558b7bc2ce90-Expr", - "kind": "Sign" + "id": "0x562ce95161c0-CharExpr", + "Kind": "0x562ce95161c8-Kind", + "Expr": "0x562ce95160d0-Expr" }, { - "id": "0x558b7bc2cf88-Kind = Decimal", + "id": "0x562ce95161c8-Kind", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Sign" }, { - "id": "0x558b7bc2ce90-Expr", + "id": "0x562ce95160d0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc2ceb0-LiteralConstant" + "LiteralConstant": "0x562ce95160f0-LiteralConstant" }, { - "id": "0x558b7bc2ceb0-LiteralConstant", + "id": "0x562ce95160f0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x558b7bc2ceb0-CharLiteralConstant" + "CharLiteralConstant": "0x562ce95160f0-CharLiteralConstant" }, { - "id": "0x558b7bc2ceb0-CharLiteralConstant", + "id": "0x562ce95160f0-CharLiteralConstant", "string": "plus" }, { - "id": "0x558b7bc2d160-IoControlSpec", + "id": "0x562ce95163a0-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x558b7bc2d160-CharExpr" + "CharExpr": "0x562ce95163a0-CharExpr" }, { - "id": "0x558b7bc2d160-CharExpr", - "Kind = Decimal": "0x558b7bc2d168-Kind = Decimal", - "Expr": "0x558b7bc2d070-Expr", - "kind": "Round" + "id": "0x562ce95163a0-CharExpr", + "Kind": "0x562ce95163a8-Kind", + "Expr": "0x562ce95162b0-Expr" }, { - "id": "0x558b7bc2d168-Kind = Decimal", + "id": "0x562ce95163a8-Kind", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Round" }, { - "id": "0x558b7bc2d070-Expr", + "id": "0x562ce95162b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc2d090-LiteralConstant" + "LiteralConstant": "0x562ce95162d0-LiteralConstant" }, { - "id": "0x558b7bc2d090-LiteralConstant", + "id": "0x562ce95162d0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x558b7bc2d090-CharLiteralConstant" + "CharLiteralConstant": "0x562ce95162d0-CharLiteralConstant" }, { - "id": "0x558b7bc2d090-CharLiteralConstant", + "id": "0x562ce95162d0-CharLiteralConstant", "string": "up" }, { - "id": "0x558b7bc2d340-IoControlSpec", + "id": "0x562ce9516580-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x558b7bc2d340-CharExpr" + "CharExpr": "0x562ce9516580-CharExpr" }, { - "id": "0x558b7bc2d340-CharExpr", - "Kind = Decimal": "0x558b7bc2d348-Kind = Decimal", - "Expr": "0x558b7bc2d250-Expr", - "kind": "Delim" + "id": "0x562ce9516580-CharExpr", + "Kind": "0x562ce9516588-Kind", + "Expr": "0x562ce9516490-Expr" }, { - "id": "0x558b7bc2d348-Kind = Decimal", + "id": "0x562ce9516588-Kind", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Delim" }, { - "id": "0x558b7bc2d250-Expr", + "id": "0x562ce9516490-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc2d270-LiteralConstant" + "LiteralConstant": "0x562ce95164b0-LiteralConstant" }, { - "id": "0x558b7bc2d270-LiteralConstant", + "id": "0x562ce95164b0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x558b7bc2d270-CharLiteralConstant" + "CharLiteralConstant": "0x562ce95164b0-CharLiteralConstant" }, { - "id": "0x558b7bc2d270-CharLiteralConstant", + "id": "0x562ce95164b0-CharLiteralConstant", "string": "quote" }, { - "id": "0x558b7bc2d510-IoControlSpec", + "id": "0x562ce9516750-IoControlSpec", "variantKey": "StatVariable", - "StatVariable": "0x558b7bc2d510-StatVariable" + "StatVariable": "0x562ce9516750-StatVariable" }, { - "id": "0x558b7bc2d510-StatVariable", - "Expr": "0x558b7bc2d510-Variable" + "id": "0x562ce9516750-StatVariable", + "Expr": "0x562ce9516750-Variable" }, { - "id": "0x558b7bc2d510-Variable", + "id": "0x562ce9516750-Variable", "variantKey": "Designator", - "Designator": "0x558b7bc2d430-Designator" + "Designator": "0x562ce9516670-Designator" }, { - "id": "0x558b7bc2d430-Designator", + "id": "0x562ce9516670-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc2d440-DataRef" + "DataRef": "0x562ce9516680-DataRef" }, { - "id": "0x558b7bc2d440-DataRef", + "id": "0x562ce9516680-DataRef", "variantKey": "Name", - "Name": "0x558b7bc2d440-Name" + "Name": "0x562ce9516680-Name" }, { - "id": "0x558b7bc2d440-Name", + "id": "0x562ce9516680-Name", "source": "ios" }, { - "id": "0x558b7bc2d960-IoControlSpec", + "id": "0x562ce9516ba0-IoControlSpec", "variantKey": "MsgVariable", - "MsgVariable": "0x558b7bc2d960-MsgVariable" + "MsgVariable": "0x562ce9516ba0-MsgVariable" }, { - "id": "0x558b7bc2d960-MsgVariable", - "Expr": "0x558b7bc2d960-Variable" + "id": "0x562ce9516ba0-MsgVariable", + "Expr": "0x562ce9516ba0-Variable" }, { - "id": "0x558b7bc2d960-Variable", + "id": "0x562ce9516ba0-Variable", "variantKey": "Designator", - "Designator": "0x558b7bc2d880-Designator" + "Designator": "0x562ce9516ac0-Designator" }, { - "id": "0x558b7bc2d880-Designator", + "id": "0x562ce9516ac0-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc2d890-DataRef" + "DataRef": "0x562ce9516ad0-DataRef" }, { - "id": "0x558b7bc2d890-DataRef", + "id": "0x562ce9516ad0-DataRef", "variantKey": "Name", - "Name": "0x558b7bc2d890-Name" + "Name": "0x562ce9516ad0-Name" }, { - "id": "0x558b7bc2d890-Name", + "id": "0x562ce9516ad0-Name", "source": "io_message" }, { - "id": "0x558b7bc27770-ExecutionPartConstruct", + "id": "0x562ce9522fe0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558b7bc27770-ExecutableConstruct" + "ExecutableConstruct": "0x562ce9522fe0-ExecutableConstruct" }, { - "id": "0x558b7bc27770-ExecutableConstruct", + "id": "0x562ce9522fe0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558b7bc27770-Statement" + "Statement": "0x562ce9522fe0-Statement" }, { - "id": "0x558b7bc27770-Statement", - "statement": "0x558b7bc27780-ActionStmt", + "id": "0x562ce9522fe0-Statement", + "statement": "0x562ce9522ff0-ActionStmt", "source": "write(unit = u_seq, nml = my_namelist, iostat = ios)" }, { - "id": "0x558b7bc27780-ActionStmt", + "id": "0x562ce9522ff0-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x558b7bc2e840-WriteStmt" + "WriteStmt": "0x562ce9517a80-WriteStmt" }, { - "id": "0x558b7bc2e840-WriteStmt", + "id": "0x562ce9517a80-WriteStmt", "controls": [ - "0x558b7bc2e750-IoControlSpec", - "0x558b7bc2e550-IoControlSpec", - "0x558b7bc2e650-IoControlSpec" + "0x562ce9517990-IoControlSpec", + "0x562ce9517790-IoControlSpec", + "0x562ce9517890-IoControlSpec" ], "items": [] }, { - "id": "0x558b7bc2e750-IoControlSpec", + "id": "0x562ce9517990-IoControlSpec", "variantKey": "IoUnit", - "IoUnit": "0x558b7bc2e750-IoUnit" + "IoUnit": "0x562ce9517990-IoUnit" }, { - "id": "0x558b7bc2e750-IoUnit", + "id": "0x562ce9517990-IoUnit", "variantKey": "Expr", - "Expr": "0x558b7bce1cf0-Expr" + "Expr": "0x562ce95ccad0-Expr" }, { - "id": "0x558b7bce1cf0-Expr", + "id": "0x562ce95ccad0-Expr", "variantKey": "Designator", - "Designator": "0x558b7bc29ad0-Designator" + "Designator": "0x562ce9512d10-Designator" }, { - "id": "0x558b7bc29ad0-Designator", + "id": "0x562ce9512d10-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc29ae0-DataRef" + "DataRef": "0x562ce9512d20-DataRef" }, { - "id": "0x558b7bc29ae0-DataRef", + "id": "0x562ce9512d20-DataRef", "variantKey": "Name", - "Name": "0x558b7bc29ae0-Name" + "Name": "0x562ce9512d20-Name" }, { - "id": "0x558b7bc29ae0-Name", + "id": "0x562ce9512d20-Name", "source": "u_seq" }, { - "id": "0x558b7bc2e550-IoControlSpec", + "id": "0x562ce9517790-IoControlSpec", "variantKey": "Name", - "Name": "0x558b7bc2e550-Name" + "Name": "0x562ce9517790-Name" }, { - "id": "0x558b7bc2e550-Name", + "id": "0x562ce9517790-Name", "source": "my_namelist" }, { - "id": "0x558b7bc2e650-IoControlSpec", + "id": "0x562ce9517890-IoControlSpec", "variantKey": "StatVariable", - "StatVariable": "0x558b7bc2e650-StatVariable" + "StatVariable": "0x562ce9517890-StatVariable" }, { - "id": "0x558b7bc2e650-StatVariable", - "Expr": "0x558b7bc2e650-Variable" + "id": "0x562ce9517890-StatVariable", + "Expr": "0x562ce9517890-Variable" }, { - "id": "0x558b7bc2e650-Variable", + "id": "0x562ce9517890-Variable", "variantKey": "Designator", - "Designator": "0x558b7bc32610-Designator" + "Designator": "0x562ce9522f70-Designator" }, { - "id": "0x558b7bc32610-Designator", + "id": "0x562ce9522f70-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc32620-DataRef" + "DataRef": "0x562ce9522f80-DataRef" }, { - "id": "0x558b7bc32620-DataRef", + "id": "0x562ce9522f80-DataRef", "variantKey": "Name", - "Name": "0x558b7bc32620-Name" + "Name": "0x562ce9522f80-Name" }, { - "id": "0x558b7bc32620-Name", + "id": "0x562ce9522f80-Name", "source": "ios" }, { - "id": "0x558b7bc2c2d0-ExecutionPartConstruct", + "id": "0x562ce9515510-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558b7bc2c2d0-ExecutableConstruct" + "ExecutableConstruct": "0x562ce9515510-ExecutableConstruct" }, { - "id": "0x558b7bc2c2d0-ExecutableConstruct", + "id": "0x562ce9515510-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558b7bc2c2d0-Statement" + "Statement": "0x562ce9515510-Statement" }, { - "id": "0x558b7bc2c2d0-Statement", - "statement": "0x558b7bc2c2e0-ActionStmt", + "id": "0x562ce9515510-Statement", + "statement": "0x562ce9515520-ActionStmt", "source": "rewind(u_seq)" }, { - "id": "0x558b7bc2c2e0-ActionStmt", + "id": "0x562ce9515520-ActionStmt", "variantKey": "RewindStmt", - "RewindStmt": "0x558b7bc38340-RewindStmt" + "RewindStmt": "0x562ce951bd30-RewindStmt" }, { - "id": "0x558b7bc38340-RewindStmt", + "id": "0x562ce951bd30-RewindStmt", "PositionOrFlushSpec": [ - "0x558b7bc389b0-PositionOrFlushSpec" + "0x562ce951c3a0-PositionOrFlushSpec" ] }, { - "id": "0x558b7bc389b0-PositionOrFlushSpec", + "id": "0x562ce951c3a0-PositionOrFlushSpec", "variantKey": "FileUnitNumber", - "FileUnitNumber": "0x558b7bc389b0-FileUnitNumber" + "FileUnitNumber": "0x562ce951c3a0-FileUnitNumber" }, { - "id": "0x558b7bc389b0-FileUnitNumber", - "Expr": "0x558b7bc2e460-Expr" + "id": "0x562ce951c3a0-FileUnitNumber", + "Expr": "0x562ce95176a0-Expr" }, { - "id": "0x558b7bc2e460-Expr", + "id": "0x562ce95176a0-Expr", "variantKey": "Designator", - "Designator": "0x558b7bc2b2c0-Designator" + "Designator": "0x562ce9514500-Designator" }, { - "id": "0x558b7bc2b2c0-Designator", + "id": "0x562ce9514500-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc2b2d0-DataRef" + "DataRef": "0x562ce9514510-DataRef" }, { - "id": "0x558b7bc2b2d0-DataRef", + "id": "0x562ce9514510-DataRef", "variantKey": "Name", - "Name": "0x558b7bc2b2d0-Name" + "Name": "0x562ce9514510-Name" }, { - "id": "0x558b7bc2b2d0-Name", + "id": "0x562ce9514510-Name", "source": "u_seq" }, { - "id": "0x558b7bc2ff20-ExecutionPartConstruct", + "id": "0x562ce9519160-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558b7bc2ff20-ExecutableConstruct" + "ExecutableConstruct": "0x562ce9519160-ExecutableConstruct" }, { - "id": "0x558b7bc2ff20-ExecutableConstruct", + "id": "0x562ce9519160-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558b7bc2ff20-Statement" + "Statement": "0x562ce9519160-Statement" }, { - "id": "0x558b7bc2ff20-Statement", - "statement": "0x558b7bc2ff30-ActionStmt", + "id": "0x562ce9519160-Statement", + "statement": "0x562ce9519170-ActionStmt", "source": "read(unit = u_seq, fmt = '(A)', advance = 'no', pad = 'yes', size = chars_read, eor = 100, err = 900, iostat = ios) text_buffer" }, { - "id": "0x558b7bc2ff30-ActionStmt", + "id": "0x562ce9519170-ActionStmt", "variantKey": "ReadStmt", - "ReadStmt": "0x558b7bc2fdc0-ReadStmt" + "ReadStmt": "0x562ce9519000-ReadStmt" }, { - "id": "0x558b7bc2fdc0-ReadStmt" + "id": "0x562ce9519000-ReadStmt" }, { - "id": "0x558b7bc2fbb0-IoControlSpec", + "id": "0x562ce9518df0-IoControlSpec", "variantKey": "IoUnit", - "IoUnit": "0x558b7bc2fbb0-IoUnit" + "IoUnit": "0x562ce9518df0-IoUnit" }, { - "id": "0x558b7bc2fbb0-IoUnit", + "id": "0x562ce9518df0-IoUnit", "variantKey": "Expr", - "Expr": "0x558b7bce1c10-Expr" + "Expr": "0x562ce95cc9f0-Expr" }, { - "id": "0x558b7bce1c10-Expr", + "id": "0x562ce95cc9f0-Expr", "variantKey": "Designator", - "Designator": "0x558b7bc2f080-Designator" + "Designator": "0x562ce95182c0-Designator" }, { - "id": "0x558b7bc2f080-Designator", + "id": "0x562ce95182c0-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc2f090-DataRef" + "DataRef": "0x562ce95182d0-DataRef" }, { - "id": "0x558b7bc2f090-DataRef", + "id": "0x562ce95182d0-DataRef", "variantKey": "Name", - "Name": "0x558b7bc2f090-Name" + "Name": "0x562ce95182d0-Name" }, { - "id": "0x558b7bc2f090-Name", + "id": "0x562ce95182d0-Name", "source": "u_seq" }, { - "id": "0x558b7bc2f450-IoControlSpec", + "id": "0x562ce9518690-IoControlSpec", "variantKey": "Format", - "Format": "0x558b7bc2f450-Format" + "Format": "0x562ce9518690-Format" }, { - "id": "0x558b7bc2f450-Format", + "id": "0x562ce9518690-Format", "variantKey": "Expr", - "Expr": "0x558b7bc2f450-Expr" + "Expr": "0x562ce9518690-Expr" }, { - "id": "0x558b7bc2f450-Expr", + "id": "0x562ce9518690-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc2f470-LiteralConstant" + "LiteralConstant": "0x562ce95186b0-LiteralConstant" }, { - "id": "0x558b7bc2f470-LiteralConstant", + "id": "0x562ce95186b0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x558b7bc2f470-CharLiteralConstant" + "CharLiteralConstant": "0x562ce95186b0-CharLiteralConstant" }, { - "id": "0x558b7bc2f470-CharLiteralConstant", + "id": "0x562ce95186b0-CharLiteralConstant", "string": "(A)" }, { - "id": "0x558b7bc2f550-IoControlSpec", + "id": "0x562ce9518790-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x558b7bc2f550-CharExpr" + "CharExpr": "0x562ce9518790-CharExpr" }, { - "id": "0x558b7bc2f550-CharExpr", - "Kind = Decimal": "0x558b7bc2f558-Kind = Decimal", - "Expr": "0x558b7bc2edd0-Expr", - "kind": "Advance" + "id": "0x562ce9518790-CharExpr", + "Kind": "0x562ce9518798-Kind", + "Expr": "0x562ce9518010-Expr" }, { - "id": "0x558b7bc2f558-Kind = Decimal", + "id": "0x562ce9518798-Kind", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Advance" }, { - "id": "0x558b7bc2edd0-Expr", + "id": "0x562ce9518010-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc2edf0-LiteralConstant" + "LiteralConstant": "0x562ce9518030-LiteralConstant" }, { - "id": "0x558b7bc2edf0-LiteralConstant", + "id": "0x562ce9518030-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x558b7bc2edf0-CharLiteralConstant" + "CharLiteralConstant": "0x562ce9518030-CharLiteralConstant" }, { - "id": "0x558b7bc2edf0-CharLiteralConstant", + "id": "0x562ce9518030-CharLiteralConstant", "string": "no" }, { - "id": "0x558b7bc2f650-IoControlSpec", + "id": "0x562ce9518890-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x558b7bc2f650-CharExpr" + "CharExpr": "0x562ce9518890-CharExpr" }, { - "id": "0x558b7bc2f650-CharExpr", - "Kind = Decimal": "0x558b7bc2f658-Kind = Decimal", - "Expr": "0x558b7bc2ec90-Expr", - "kind": "Pad" + "id": "0x562ce9518890-CharExpr", + "Kind": "0x562ce9518898-Kind", + "Expr": "0x562ce9517ed0-Expr" }, { - "id": "0x558b7bc2f658-Kind = Decimal", + "id": "0x562ce9518898-Kind", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Pad" }, { - "id": "0x558b7bc2ec90-Expr", + "id": "0x562ce9517ed0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc2ecb0-LiteralConstant" + "LiteralConstant": "0x562ce9517ef0-LiteralConstant" }, { - "id": "0x558b7bc2ecb0-LiteralConstant", + "id": "0x562ce9517ef0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x558b7bc2ecb0-CharLiteralConstant" + "CharLiteralConstant": "0x562ce9517ef0-CharLiteralConstant" }, { - "id": "0x558b7bc2ecb0-CharLiteralConstant", + "id": "0x562ce9517ef0-CharLiteralConstant", "string": "yes" }, { - "id": "0x558b7bc2f750-IoControlSpec", + "id": "0x562ce9518990-IoControlSpec", "variantKey": "Size", - "Size": "0x558b7bc2f750-Size" + "Size": "0x562ce9518990-Size" }, { - "id": "0x558b7bc2f750-Size", - "Expr": "0x558b7bc2f750-Variable" + "id": "0x562ce9518990-Size", + "Expr": "0x562ce9518990-Variable" }, { - "id": "0x558b7bc2f750-Variable", + "id": "0x562ce9518990-Variable", "variantKey": "Designator", - "Designator": "0x558b7bc2f3e0-Designator" + "Designator": "0x562ce9518620-Designator" }, { - "id": "0x558b7bc2f3e0-Designator", + "id": "0x562ce9518620-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc2f3f0-DataRef" + "DataRef": "0x562ce9518630-DataRef" }, { - "id": "0x558b7bc2f3f0-DataRef", + "id": "0x562ce9518630-DataRef", "variantKey": "Name", - "Name": "0x558b7bc2f3f0-Name" + "Name": "0x562ce9518630-Name" }, { - "id": "0x558b7bc2f3f0-Name", + "id": "0x562ce9518630-Name", "source": "chars_read" }, { - "id": "0x558b7bc2f850-IoControlSpec", + "id": "0x562ce9518a90-IoControlSpec", "variantKey": "EorLabel", - "EorLabel": "0x558b7bc2f850-EorLabel" + "EorLabel": "0x562ce9518a90-EorLabel" }, { - "id": "0x558b7bc2f850-EorLabel", + "id": "0x562ce9518a90-EorLabel", "uint64_t": "100" }, { - "id": "0x558b7bc2f950-IoControlSpec", + "id": "0x562ce9518b90-IoControlSpec", "variantKey": "ErrLabel", - "ErrLabel": "0x558b7bc2f950-ErrLabel" + "ErrLabel": "0x562ce9518b90-ErrLabel" }, { - "id": "0x558b7bc2f950-ErrLabel", + "id": "0x562ce9518b90-ErrLabel", "uint64_t": "900" }, { - "id": "0x558b7bc2fab0-IoControlSpec", + "id": "0x562ce9518cf0-IoControlSpec", "variantKey": "StatVariable", - "StatVariable": "0x558b7bc2fab0-StatVariable" + "StatVariable": "0x562ce9518cf0-StatVariable" }, { - "id": "0x558b7bc2fab0-StatVariable", - "Expr": "0x558b7bc2fab0-Variable" + "id": "0x562ce9518cf0-StatVariable", + "Expr": "0x562ce9518cf0-Variable" }, { - "id": "0x558b7bc2fab0-Variable", + "id": "0x562ce9518cf0-Variable", "variantKey": "Designator", - "Designator": "0x558b7bc2fa40-Designator" + "Designator": "0x562ce9518c80-Designator" }, { - "id": "0x558b7bc2fa40-Designator", + "id": "0x562ce9518c80-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc2fa50-DataRef" + "DataRef": "0x562ce9518c90-DataRef" }, { - "id": "0x558b7bc2fa50-DataRef", + "id": "0x562ce9518c90-DataRef", "variantKey": "Name", - "Name": "0x558b7bc2fa50-Name" + "Name": "0x562ce9518c90-Name" }, { - "id": "0x558b7bc2fa50-Name", + "id": "0x562ce9518c90-Name", "source": "ios" }, { - "id": "0x558b7bc38a10-InputItem", + "id": "0x562ce951c400-InputItem", "variantKey": "Variable", - "Variable": "0x558b7bc38a10-Variable" + "Variable": "0x562ce951c400-Variable" }, { - "id": "0x558b7bc38a10-Variable", + "id": "0x562ce951c400-Variable", "variantKey": "Designator", - "Designator": "0x558b7bc2fd60-Designator" + "Designator": "0x562ce9518fa0-Designator" }, { - "id": "0x558b7bc2fd60-Designator", + "id": "0x562ce9518fa0-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc2fd70-DataRef" + "DataRef": "0x562ce9518fb0-DataRef" }, { - "id": "0x558b7bc2fd70-DataRef", + "id": "0x562ce9518fb0-DataRef", "variantKey": "Name", - "Name": "0x558b7bc2fd70-Name" + "Name": "0x562ce9518fb0-Name" }, { - "id": "0x558b7bc2fd70-Name", + "id": "0x562ce9518fb0-Name", "source": "text_buffer" }, { - "id": "0x558b7bc2efd0-ExecutionPartConstruct", + "id": "0x562ce9518210-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558b7bc2efd0-ExecutableConstruct" + "ExecutableConstruct": "0x562ce9518210-ExecutableConstruct" }, { - "id": "0x558b7bc2efd0-ExecutableConstruct", + "id": "0x562ce9518210-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558b7bc2efd0-Statement" + "Statement": "0x562ce9518210-Statement" }, { - "id": "0x558b7bc2efd0-Statement", - "statement": "0x558b7bc2efe0-ActionStmt", + "id": "0x562ce9518210-Statement", + "statement": "0x562ce9518220-ActionStmt", "label": "100", "source": "100 continue" }, { - "id": "0x558b7bc2efe0-ActionStmt", + "id": "0x562ce9518220-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x558b7bc2efe0-ContinueStmt" + "ContinueStmt": "0x562ce9518220-ContinueStmt" }, { - "id": "0x558b7bc2efe0-ContinueStmt" + "id": "0x562ce9518220-ContinueStmt" }, { - "id": "0x558b7bc30610-ExecutionPartConstruct", + "id": "0x562ce9519850-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558b7bc30610-ExecutableConstruct" + "ExecutableConstruct": "0x562ce9519850-ExecutableConstruct" }, { - "id": "0x558b7bc30610-ExecutableConstruct", + "id": "0x562ce9519850-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558b7bc30610-Statement" + "Statement": "0x562ce9519850-Statement" }, { - "id": "0x558b7bc30610-Statement", - "statement": "0x558b7bc30620-ActionStmt", + "id": "0x562ce9519850-Statement", + "statement": "0x562ce9519860-ActionStmt", "source": "write(unit = u_dir, rec = 1, iostat = ios) val, x" }, { - "id": "0x558b7bc30620-ActionStmt", + "id": "0x562ce9519860-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x558b7bc304b0-WriteStmt" + "WriteStmt": "0x562ce95196f0-WriteStmt" }, { - "id": "0x558b7bc304b0-WriteStmt", + "id": "0x562ce95196f0-WriteStmt", "controls": [ - "0x558b7bc30180-IoControlSpec", - "0x558b7bc2ff80-IoControlSpec", - "0x558b7bc30080-IoControlSpec" + "0x562ce95193c0-IoControlSpec", + "0x562ce95191c0-IoControlSpec", + "0x562ce95192c0-IoControlSpec" ], "items": [ - "0x558b7bc303d0-OutputItem", - "0x558b7bc302e0-OutputItem" + "0x562ce9519610-OutputItem", + "0x562ce9519520-OutputItem" ] }, { - "id": "0x558b7bc30180-IoControlSpec", + "id": "0x562ce95193c0-IoControlSpec", "variantKey": "IoUnit", - "IoUnit": "0x558b7bc30180-IoUnit" + "IoUnit": "0x562ce95193c0-IoUnit" }, { - "id": "0x558b7bc30180-IoUnit", + "id": "0x562ce95193c0-IoUnit", "variantKey": "Expr", - "Expr": "0x558b7bc3ffa0-Expr" + "Expr": "0x562ce95285c0-Expr" }, { - "id": "0x558b7bc3ffa0-Expr", + "id": "0x562ce95285c0-Expr", "variantKey": "Designator", - "Designator": "0x558b7bc2c390-Designator" + "Designator": "0x562ce95155d0-Designator" }, { - "id": "0x558b7bc2c390-Designator", + "id": "0x562ce95155d0-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc2c3a0-DataRef" + "DataRef": "0x562ce95155e0-DataRef" }, { - "id": "0x558b7bc2c3a0-DataRef", + "id": "0x562ce95155e0-DataRef", "variantKey": "Name", - "Name": "0x558b7bc2c3a0-Name" + "Name": "0x562ce95155e0-Name" }, { - "id": "0x558b7bc2c3a0-Name", + "id": "0x562ce95155e0-Name", "source": "u_dir" }, { - "id": "0x558b7bc2ff80-IoControlSpec", + "id": "0x562ce95191c0-IoControlSpec", "variantKey": "Rec", - "Rec": "0x558b7bc2ff80-Rec" + "Rec": "0x562ce95191c0-Rec" }, { - "id": "0x558b7bc2ff80-Rec", - "Expr": "0x558b7bc2e990-Expr" + "id": "0x562ce95191c0-Rec", + "Expr": "0x562ce9517bd0-Expr" }, { - "id": "0x558b7bc2e990-Expr", + "id": "0x562ce9517bd0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc2e9b0-LiteralConstant" + "LiteralConstant": "0x562ce9517bf0-LiteralConstant" }, { - "id": "0x558b7bc2e9b0-LiteralConstant", + "id": "0x562ce9517bf0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558b7bc2e9b0-IntLiteralConstant" + "IntLiteralConstant": "0x562ce9517bf0-IntLiteralConstant" }, { - "id": "0x558b7bc2e9b0-IntLiteralConstant", + "id": "0x562ce9517bf0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x558b7bc30080-IoControlSpec", + "id": "0x562ce95192c0-IoControlSpec", "variantKey": "StatVariable", - "StatVariable": "0x558b7bc30080-StatVariable" + "StatVariable": "0x562ce95192c0-StatVariable" }, { - "id": "0x558b7bc30080-StatVariable", - "Expr": "0x558b7bc30080-Variable" + "id": "0x562ce95192c0-StatVariable", + "Expr": "0x562ce95192c0-Variable" }, { - "id": "0x558b7bc30080-Variable", + "id": "0x562ce95192c0-Variable", "variantKey": "Designator", - "Designator": "0x558b7bc2c620-Designator" + "Designator": "0x562ce9515860-Designator" }, { - "id": "0x558b7bc2c620-Designator", + "id": "0x562ce9515860-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc2c630-DataRef" + "DataRef": "0x562ce9515870-DataRef" }, { - "id": "0x558b7bc2c630-DataRef", + "id": "0x562ce9515870-DataRef", "variantKey": "Name", - "Name": "0x558b7bc2c630-Name" + "Name": "0x562ce9515870-Name" }, { - "id": "0x558b7bc2c630-Name", + "id": "0x562ce9515870-Name", "source": "ios" }, { - "id": "0x558b7bc303d0-OutputItem", + "id": "0x562ce9519610-OutputItem", "variantKey": "Expr", - "Expr": "0x558b7bc303d0-Expr" + "Expr": "0x562ce9519610-Expr" }, { - "id": "0x558b7bc303d0-Expr", + "id": "0x562ce9519610-Expr", "variantKey": "Designator", - "Designator": "0x558b7bc290b0-Designator" + "Designator": "0x562ce95128d0-Designator" }, { - "id": "0x558b7bc290b0-Designator", + "id": "0x562ce95128d0-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc290c0-DataRef" + "DataRef": "0x562ce95128e0-DataRef" }, { - "id": "0x558b7bc290c0-DataRef", + "id": "0x562ce95128e0-DataRef", "variantKey": "Name", - "Name": "0x558b7bc290c0-Name" + "Name": "0x562ce95128e0-Name" }, { - "id": "0x558b7bc290c0-Name", + "id": "0x562ce95128e0-Name", "source": "val" }, { - "id": "0x558b7bc302e0-OutputItem", + "id": "0x562ce9519520-OutputItem", "variantKey": "Expr", - "Expr": "0x558b7bc302e0-Expr" + "Expr": "0x562ce9519520-Expr" }, { - "id": "0x558b7bc302e0-Expr", + "id": "0x562ce9519520-Expr", "variantKey": "Designator", - "Designator": "0x558b7bc30270-Designator" + "Designator": "0x562ce95194b0-Designator" }, { - "id": "0x558b7bc30270-Designator", + "id": "0x562ce95194b0-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc30280-DataRef" + "DataRef": "0x562ce95194c0-DataRef" }, { - "id": "0x558b7bc30280-DataRef", + "id": "0x562ce95194c0-DataRef", "variantKey": "Name", - "Name": "0x558b7bc30280-Name" + "Name": "0x562ce95194c0-Name" }, { - "id": "0x558b7bc30280-Name", + "id": "0x562ce95194c0-Name", "source": "x" }, { - "id": "0x558b7bc2f030-ExecutionPartConstruct", + "id": "0x562ce9518270-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558b7bc2f030-ExecutableConstruct" + "ExecutableConstruct": "0x562ce9518270-ExecutableConstruct" }, { - "id": "0x558b7bc2f030-ExecutableConstruct", + "id": "0x562ce9518270-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558b7bc2f030-Statement" + "Statement": "0x562ce9518270-Statement" }, { - "id": "0x558b7bc2f030-Statement", - "statement": "0x558b7bc2f040-ActionStmt", + "id": "0x562ce9518270-Statement", + "statement": "0x562ce9518280-ActionStmt", "source": "write(unit = u_stream, pos = 10, iostat = ios) \"Stream Header\"" }, { - "id": "0x558b7bc2f040-ActionStmt", + "id": "0x562ce9518280-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x558b7bc30a50-WriteStmt" + "WriteStmt": "0x562ce9519c90-WriteStmt" }, { - "id": "0x558b7bc30a50-WriteStmt", + "id": "0x562ce9519c90-WriteStmt", "controls": [ - "0x558b7bc30870-IoControlSpec", - "0x558b7bc30670-IoControlSpec", - "0x558b7bc30770-IoControlSpec" + "0x562ce9519ab0-IoControlSpec", + "0x562ce95198b0-IoControlSpec", + "0x562ce95199b0-IoControlSpec" ], "items": [ - "0x558b7bc30970-OutputItem" + "0x562ce9519bb0-OutputItem" ] }, { - "id": "0x558b7bc30870-IoControlSpec", + "id": "0x562ce9519ab0-IoControlSpec", "variantKey": "IoUnit", - "IoUnit": "0x558b7bc30870-IoUnit" + "IoUnit": "0x562ce9519ab0-IoUnit" }, { - "id": "0x558b7bc30870-IoUnit", + "id": "0x562ce9519ab0-IoUnit", "variantKey": "Expr", - "Expr": "0x558b7bc3fec0-Expr" + "Expr": "0x562ce95284e0-Expr" }, { - "id": "0x558b7bc3fec0-Expr", + "id": "0x562ce95284e0-Expr", "variantKey": "Designator", - "Designator": "0x558b7bc2fca0-Designator" + "Designator": "0x562ce9518ee0-Designator" }, { - "id": "0x558b7bc2fca0-Designator", + "id": "0x562ce9518ee0-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc2fcb0-DataRef" + "DataRef": "0x562ce9518ef0-DataRef" }, { - "id": "0x558b7bc2fcb0-DataRef", + "id": "0x562ce9518ef0-DataRef", "variantKey": "Name", - "Name": "0x558b7bc2fcb0-Name" + "Name": "0x562ce9518ef0-Name" }, { - "id": "0x558b7bc2fcb0-Name", + "id": "0x562ce9518ef0-Name", "source": "u_stream" }, { - "id": "0x558b7bc30670-IoControlSpec", + "id": "0x562ce95198b0-IoControlSpec", "variantKey": "Pos", - "Pos": "0x558b7bc30670-Pos" + "Pos": "0x562ce95198b0-Pos" }, { - "id": "0x558b7bc30670-Pos", - "Expr": "0x558b7bc2e2a0-Expr" + "id": "0x562ce95198b0-Pos", + "Expr": "0x562ce95174e0-Expr" }, { - "id": "0x558b7bc2e2a0-Expr", + "id": "0x562ce95174e0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc2e2c0-LiteralConstant" + "LiteralConstant": "0x562ce9517500-LiteralConstant" }, { - "id": "0x558b7bc2e2c0-LiteralConstant", + "id": "0x562ce9517500-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558b7bc2e2c0-IntLiteralConstant" + "IntLiteralConstant": "0x562ce9517500-IntLiteralConstant" }, { - "id": "0x558b7bc2e2c0-IntLiteralConstant", + "id": "0x562ce9517500-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x558b7bc30770-IoControlSpec", + "id": "0x562ce95199b0-IoControlSpec", "variantKey": "StatVariable", - "StatVariable": "0x558b7bc30770-StatVariable" + "StatVariable": "0x562ce95199b0-StatVariable" }, { - "id": "0x558b7bc30770-StatVariable", - "Expr": "0x558b7bc30770-Variable" + "id": "0x562ce95199b0-StatVariable", + "Expr": "0x562ce95199b0-Variable" }, { - "id": "0x558b7bc30770-Variable", + "id": "0x562ce95199b0-Variable", "variantKey": "Designator", - "Designator": "0x558b7bc29540-Designator" + "Designator": "0x562ce9511ec0-Designator" }, { - "id": "0x558b7bc29540-Designator", + "id": "0x562ce9511ec0-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc29550-DataRef" + "DataRef": "0x562ce9511ed0-DataRef" }, { - "id": "0x558b7bc29550-DataRef", + "id": "0x562ce9511ed0-DataRef", "variantKey": "Name", - "Name": "0x558b7bc29550-Name" + "Name": "0x562ce9511ed0-Name" }, { - "id": "0x558b7bc29550-Name", + "id": "0x562ce9511ed0-Name", "source": "ios" }, { - "id": "0x558b7bc30970-OutputItem", + "id": "0x562ce9519bb0-OutputItem", "variantKey": "Expr", - "Expr": "0x558b7bc30970-Expr" + "Expr": "0x562ce9519bb0-Expr" }, { - "id": "0x558b7bc30970-Expr", + "id": "0x562ce9519bb0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc30990-LiteralConstant" + "LiteralConstant": "0x562ce9519bd0-LiteralConstant" }, { - "id": "0x558b7bc30990-LiteralConstant", + "id": "0x562ce9519bd0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x558b7bc30990-CharLiteralConstant" + "CharLiteralConstant": "0x562ce9519bd0-CharLiteralConstant" }, { - "id": "0x558b7bc30990-CharLiteralConstant", + "id": "0x562ce9519bd0-CharLiteralConstant", "string": "Stream Header" }, { - "id": "0x558b7bc317b0-ExecutionPartConstruct", + "id": "0x562ce951a9f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558b7bc317b0-ExecutableConstruct" + "ExecutableConstruct": "0x562ce951a9f0-ExecutableConstruct" }, { - "id": "0x558b7bc317b0-ExecutableConstruct", + "id": "0x562ce951a9f0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558b7bc317b0-Statement" + "Statement": "0x562ce951a9f0-Statement" }, { - "id": "0x558b7bc317b0-Statement", - "statement": "0x558b7bc317c0-ActionStmt", + "id": "0x562ce951a9f0-Statement", + "statement": "0x562ce951aa00-ActionStmt", "source": "write(unit = u_seq, fmt = '(I5)', asynchronous = 'yes', id = async_id, iostat = ios) val" }, { - "id": "0x558b7bc317c0-ActionStmt", + "id": "0x562ce951aa00-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x558b7bc31650-WriteStmt" + "WriteStmt": "0x562ce951a890-WriteStmt" }, { - "id": "0x558b7bc31650-WriteStmt", + "id": "0x562ce951a890-WriteStmt", "controls": [ - "0x558b7bc31350-IoControlSpec", - "0x558b7bc30ef0-IoControlSpec", - "0x558b7bc30ff0-IoControlSpec", - "0x558b7bc310f0-IoControlSpec", - "0x558b7bc31250-IoControlSpec" + "0x562ce951a590-IoControlSpec", + "0x562ce951a130-IoControlSpec", + "0x562ce951a230-IoControlSpec", + "0x562ce951a330-IoControlSpec", + "0x562ce951a490-IoControlSpec" ], "items": [ - "0x558b7bc31570-OutputItem" + "0x562ce951a7b0-OutputItem" ] }, { - "id": "0x558b7bc31350-IoControlSpec", + "id": "0x562ce951a590-IoControlSpec", "variantKey": "IoUnit", - "IoUnit": "0x558b7bc31350-IoUnit" + "IoUnit": "0x562ce951a590-IoUnit" }, { - "id": "0x558b7bc31350-IoUnit", + "id": "0x562ce951a590-IoUnit", "variantKey": "Expr", - "Expr": "0x558b7bce1dd0-Expr" + "Expr": "0x562ce95ccbb0-Expr" }, { - "id": "0x558b7bce1dd0-Expr", + "id": "0x562ce95ccbb0-Expr", "variantKey": "Designator", - "Designator": "0x558b7bc30d40-Designator" + "Designator": "0x562ce9519f80-Designator" }, { - "id": "0x558b7bc30d40-Designator", + "id": "0x562ce9519f80-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc30d50-DataRef" + "DataRef": "0x562ce9519f90-DataRef" }, { - "id": "0x558b7bc30d50-DataRef", + "id": "0x562ce9519f90-DataRef", "variantKey": "Name", - "Name": "0x558b7bc30d50-Name" + "Name": "0x562ce9519f90-Name" }, { - "id": "0x558b7bc30d50-Name", + "id": "0x562ce9519f90-Name", "source": "u_seq" }, { - "id": "0x558b7bc30ef0-IoControlSpec", + "id": "0x562ce951a130-IoControlSpec", "variantKey": "Format", - "Format": "0x558b7bc30ef0-Format" + "Format": "0x562ce951a130-Format" }, { - "id": "0x558b7bc30ef0-Format", + "id": "0x562ce951a130-Format", "variantKey": "Expr", - "Expr": "0x558b7bc30ef0-Expr" + "Expr": "0x562ce951a130-Expr" }, { - "id": "0x558b7bc30ef0-Expr", + "id": "0x562ce951a130-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc30f10-LiteralConstant" + "LiteralConstant": "0x562ce951a150-LiteralConstant" }, { - "id": "0x558b7bc30f10-LiteralConstant", + "id": "0x562ce951a150-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x558b7bc30f10-CharLiteralConstant" + "CharLiteralConstant": "0x562ce951a150-CharLiteralConstant" }, { - "id": "0x558b7bc30f10-CharLiteralConstant", + "id": "0x562ce951a150-CharLiteralConstant", "string": "(I5)" }, { - "id": "0x558b7bc30ff0-IoControlSpec", + "id": "0x562ce951a230-IoControlSpec", "variantKey": "Asynchronous", - "Asynchronous": "0x558b7bc30ff0-Asynchronous" + "Asynchronous": "0x562ce951a230-Asynchronous" }, { - "id": "0x558b7bc30ff0-Asynchronous", - "Expr": "0x558b7bc30da0-Expr" + "id": "0x562ce951a230-Asynchronous", + "Expr": "0x562ce9519fe0-Expr" }, { - "id": "0x558b7bc30da0-Expr", + "id": "0x562ce9519fe0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc30dc0-LiteralConstant" + "LiteralConstant": "0x562ce951a000-LiteralConstant" }, { - "id": "0x558b7bc30dc0-LiteralConstant", + "id": "0x562ce951a000-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x558b7bc30dc0-CharLiteralConstant" + "CharLiteralConstant": "0x562ce951a000-CharLiteralConstant" }, { - "id": "0x558b7bc30dc0-CharLiteralConstant", + "id": "0x562ce951a000-CharLiteralConstant", "string": "yes" }, { - "id": "0x558b7bc310f0-IoControlSpec", + "id": "0x562ce951a330-IoControlSpec", "variantKey": "IdVariable", - "IdVariable": "0x558b7bc310f0-IdVariable" + "IdVariable": "0x562ce951a330-IdVariable" }, { - "id": "0x558b7bc310f0-IdVariable", - "Expr": "0x558b7bc310f0-Variable" + "id": "0x562ce951a330-IdVariable", + "Expr": "0x562ce951a330-Variable" }, { - "id": "0x558b7bc310f0-Variable", + "id": "0x562ce951a330-Variable", "variantKey": "Designator", - "Designator": "0x558b7bc30e80-Designator" + "Designator": "0x562ce951a0c0-Designator" }, { - "id": "0x558b7bc30e80-Designator", + "id": "0x562ce951a0c0-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc30e90-DataRef" + "DataRef": "0x562ce951a0d0-DataRef" }, { - "id": "0x558b7bc30e90-DataRef", + "id": "0x562ce951a0d0-DataRef", "variantKey": "Name", - "Name": "0x558b7bc30e90-Name" + "Name": "0x562ce951a0d0-Name" }, { - "id": "0x558b7bc30e90-Name", + "id": "0x562ce951a0d0-Name", "source": "async_id" }, { - "id": "0x558b7bc31250-IoControlSpec", + "id": "0x562ce951a490-IoControlSpec", "variantKey": "StatVariable", - "StatVariable": "0x558b7bc31250-StatVariable" + "StatVariable": "0x562ce951a490-StatVariable" }, { - "id": "0x558b7bc31250-StatVariable", - "Expr": "0x558b7bc31250-Variable" + "id": "0x562ce951a490-StatVariable", + "Expr": "0x562ce951a490-Variable" }, { - "id": "0x558b7bc31250-Variable", + "id": "0x562ce951a490-Variable", "variantKey": "Designator", - "Designator": "0x558b7bc311e0-Designator" + "Designator": "0x562ce951a420-Designator" }, { - "id": "0x558b7bc311e0-Designator", + "id": "0x562ce951a420-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc311f0-DataRef" + "DataRef": "0x562ce951a430-DataRef" }, { - "id": "0x558b7bc311f0-DataRef", + "id": "0x562ce951a430-DataRef", "variantKey": "Name", - "Name": "0x558b7bc311f0-Name" + "Name": "0x562ce951a430-Name" }, { - "id": "0x558b7bc311f0-Name", + "id": "0x562ce951a430-Name", "source": "ios" }, { - "id": "0x558b7bc31570-OutputItem", + "id": "0x562ce951a7b0-OutputItem", "variantKey": "Expr", - "Expr": "0x558b7bc31570-Expr" + "Expr": "0x562ce951a7b0-Expr" }, { - "id": "0x558b7bc31570-Expr", + "id": "0x562ce951a7b0-Expr", "variantKey": "Designator", - "Designator": "0x558b7bc31500-Designator" + "Designator": "0x562ce951a740-Designator" }, { - "id": "0x558b7bc31500-Designator", + "id": "0x562ce951a740-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc31510-DataRef" + "DataRef": "0x562ce951a750-DataRef" }, { - "id": "0x558b7bc31510-DataRef", + "id": "0x562ce951a750-DataRef", "variantKey": "Name", - "Name": "0x558b7bc31510-Name" + "Name": "0x562ce951a750-Name" }, { - "id": "0x558b7bc31510-Name", + "id": "0x562ce951a750-Name", "source": "val" }, { - "id": "0x558b7bc2fd10-ExecutionPartConstruct", + "id": "0x562ce9518f50-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558b7bc2fd10-ExecutableConstruct" + "ExecutableConstruct": "0x562ce9518f50-ExecutableConstruct" }, { - "id": "0x558b7bc2fd10-ExecutableConstruct", + "id": "0x562ce9518f50-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558b7bc2fd10-Statement" + "Statement": "0x562ce9518f50-Statement" }, { - "id": "0x558b7bc2fd10-Statement", - "statement": "0x558b7bc2fd20-ActionStmt", + "id": "0x562ce9518f50-Statement", + "statement": "0x562ce9518f60-ActionStmt", "source": "wait(unit=u_seq, id=async_id)" }, { - "id": "0x558b7bc2fd20-ActionStmt", + "id": "0x562ce9518f60-ActionStmt", "variantKey": "WaitStmt", - "WaitStmt": "0x558b7bc38940-WaitStmt" + "WaitStmt": "0x562ce951c330-WaitStmt" }, { - "id": "0x558b7bc38940-WaitStmt", + "id": "0x562ce951c330-WaitStmt", "WaitSpec": [ - "0x558b7bc385b0-WaitSpec", - "0x558b7bc387e0-WaitSpec" + "0x562ce951bfa0-WaitSpec", + "0x562ce951c1d0-WaitSpec" ] }, { - "id": "0x558b7bc385b0-WaitSpec", + "id": "0x562ce951bfa0-WaitSpec", "variantKey": "FileUnitNumber", - "FileUnitNumber": "0x558b7bc385b0-FileUnitNumber" + "FileUnitNumber": "0x562ce951bfa0-FileUnitNumber" }, { - "id": "0x558b7bc385b0-FileUnitNumber", - "Expr": "0x558b7bc2e380-Expr" + "id": "0x562ce951bfa0-FileUnitNumber", + "Expr": "0x562ce95175c0-Expr" }, { - "id": "0x558b7bc2e380-Expr", + "id": "0x562ce95175c0-Expr", "variantKey": "Designator", - "Designator": "0x558b7bc2ae80-Designator" + "Designator": "0x562ce95140c0-Designator" }, { - "id": "0x558b7bc2ae80-Designator", + "id": "0x562ce95140c0-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc2ae90-DataRef" + "DataRef": "0x562ce95140d0-DataRef" }, { - "id": "0x558b7bc2ae90-DataRef", + "id": "0x562ce95140d0-DataRef", "variantKey": "Name", - "Name": "0x558b7bc2ae90-Name" + "Name": "0x562ce95140d0-Name" }, { - "id": "0x558b7bc2ae90-Name", + "id": "0x562ce95140d0-Name", "source": "u_seq" }, { - "id": "0x558b7bc387e0-WaitSpec", + "id": "0x562ce951c1d0-WaitSpec", "variantKey": "IdExpr", - "IdExpr": "0x558b7bc387e0-IdExpr" + "IdExpr": "0x562ce951c1d0-IdExpr" }, { - "id": "0x558b7bc387e0-IdExpr", - "Expr": "0x558b7bc30ba0-Expr" + "id": "0x562ce951c1d0-IdExpr", + "Expr": "0x562ce9519de0-Expr" }, { - "id": "0x558b7bc30ba0-Expr", + "id": "0x562ce9519de0-Expr", "variantKey": "Designator", - "Designator": "0x558b7bc2ba00-Designator" + "Designator": "0x562ce9514c40-Designator" }, { - "id": "0x558b7bc2ba00-Designator", + "id": "0x562ce9514c40-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc2ba10-DataRef" + "DataRef": "0x562ce9514c50-DataRef" }, { - "id": "0x558b7bc2ba10-DataRef", + "id": "0x562ce9514c50-DataRef", "variantKey": "Name", - "Name": "0x558b7bc2ba10-Name" + "Name": "0x562ce9514c50-Name" }, { - "id": "0x558b7bc2ba10-Name", + "id": "0x562ce9514c50-Name", "source": "async_id" }, { - "id": "0x558b7bc2f1f0-ExecutionPartConstruct", + "id": "0x562ce952b8d0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558b7bc2f1f0-ExecutableConstruct" + "ExecutableConstruct": "0x562ce952b8d0-ExecutableConstruct" }, { - "id": "0x558b7bc2f1f0-ExecutableConstruct", + "id": "0x562ce952b8d0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558b7bc2f1f0-Statement" + "Statement": "0x562ce952b8d0-Statement" }, { - "id": "0x558b7bc2f1f0-Statement", - "statement": "0x558b7bc2f200-ActionStmt", + "id": "0x562ce952b8d0-Statement", + "statement": "0x562ce952b8e0-ActionStmt", "source": "read(unit = u_seq, fmt = '(I5)', blank = 'zero', end = 200, err = 900, iostat = ios) val" }, { - "id": "0x558b7bc2f200-ActionStmt", + "id": "0x562ce952b8e0-ActionStmt", "variantKey": "ReadStmt", - "ReadStmt": "0x558b7bc40c10-ReadStmt" + "ReadStmt": "0x562ce952b770-ReadStmt" }, { - "id": "0x558b7bc40c10-ReadStmt" + "id": "0x562ce952b770-ReadStmt" }, { - "id": "0x558b7bc40b20-IoControlSpec", + "id": "0x562ce9518330-IoControlSpec", "variantKey": "IoUnit", - "IoUnit": "0x558b7bc40b20-IoUnit" + "IoUnit": "0x562ce9518330-IoUnit" }, { - "id": "0x558b7bc40b20-IoUnit", + "id": "0x562ce9518330-IoUnit", "variantKey": "Expr", - "Expr": "0x558b7bce1eb0-Expr" + "Expr": "0x562ce95ccc90-Expr" }, { - "id": "0x558b7bce1eb0-Expr", + "id": "0x562ce95ccc90-Expr", "variantKey": "Designator", - "Designator": "0x558b7bc31aa0-Designator" + "Designator": "0x562ce951ace0-Designator" }, { - "id": "0x558b7bc31aa0-Designator", + "id": "0x562ce951ace0-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc31ab0-DataRef" + "DataRef": "0x562ce951acf0-DataRef" }, { - "id": "0x558b7bc31ab0-DataRef", + "id": "0x562ce951acf0-DataRef", "variantKey": "Name", - "Name": "0x558b7bc31ab0-Name" + "Name": "0x562ce951acf0-Name" }, { - "id": "0x558b7bc31ab0-Name", + "id": "0x562ce951acf0-Name", "source": "u_seq" }, { - "id": "0x558b7bc31cb0-IoControlSpec", + "id": "0x562ce951aef0-IoControlSpec", "variantKey": "Format", - "Format": "0x558b7bc31cb0-Format" + "Format": "0x562ce951aef0-Format" }, { - "id": "0x558b7bc31cb0-Format", + "id": "0x562ce951aef0-Format", "variantKey": "Expr", - "Expr": "0x558b7bc31cb0-Expr" + "Expr": "0x562ce951aef0-Expr" }, { - "id": "0x558b7bc31cb0-Expr", + "id": "0x562ce951aef0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc31cd0-LiteralConstant" + "LiteralConstant": "0x562ce951af10-LiteralConstant" }, { - "id": "0x558b7bc31cd0-LiteralConstant", + "id": "0x562ce951af10-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x558b7bc31cd0-CharLiteralConstant" + "CharLiteralConstant": "0x562ce951af10-CharLiteralConstant" }, { - "id": "0x558b7bc31cd0-CharLiteralConstant", + "id": "0x562ce951af10-CharLiteralConstant", "string": "(I5)" }, { - "id": "0x558b7bc31db0-IoControlSpec", + "id": "0x562ce951aff0-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x558b7bc31db0-CharExpr" + "CharExpr": "0x562ce951aff0-CharExpr" }, { - "id": "0x558b7bc31db0-CharExpr", - "Kind = Decimal": "0x558b7bc31db8-Kind = Decimal", - "Expr": "0x558b7bc31b00-Expr", - "kind": "Blank" + "id": "0x562ce951aff0-CharExpr", + "Kind": "0x562ce951aff8-Kind", + "Expr": "0x562ce951ad40-Expr" }, { - "id": "0x558b7bc31db8-Kind = Decimal", + "id": "0x562ce951aff8-Kind", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Blank" }, { - "id": "0x558b7bc31b00-Expr", + "id": "0x562ce951ad40-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc31b20-LiteralConstant" + "LiteralConstant": "0x562ce951ad60-LiteralConstant" }, { - "id": "0x558b7bc31b20-LiteralConstant", + "id": "0x562ce951ad60-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x558b7bc31b20-CharLiteralConstant" + "CharLiteralConstant": "0x562ce951ad60-CharLiteralConstant" }, { - "id": "0x558b7bc31b20-CharLiteralConstant", + "id": "0x562ce951ad60-CharLiteralConstant", "string": "zero" }, { - "id": "0x558b7bc31eb0-IoControlSpec", + "id": "0x562ce951b0f0-IoControlSpec", "variantKey": "EndLabel", - "EndLabel": "0x558b7bc31eb0-EndLabel" + "EndLabel": "0x562ce951b0f0-EndLabel" }, { - "id": "0x558b7bc31eb0-EndLabel", + "id": "0x562ce951b0f0-EndLabel", "uint64_t": "200" }, { - "id": "0x558b7bc31fb0-IoControlSpec", + "id": "0x562ce951b1f0-IoControlSpec", "variantKey": "ErrLabel", - "ErrLabel": "0x558b7bc31fb0-ErrLabel" + "ErrLabel": "0x562ce951b1f0-ErrLabel" }, { - "id": "0x558b7bc31fb0-ErrLabel", + "id": "0x562ce951b1f0-ErrLabel", "uint64_t": "900" }, { - "id": "0x558b7bc2f0f0-IoControlSpec", + "id": "0x562ce951b2f0-IoControlSpec", "variantKey": "StatVariable", - "StatVariable": "0x558b7bc2f0f0-StatVariable" + "StatVariable": "0x562ce951b2f0-StatVariable" }, { - "id": "0x558b7bc2f0f0-StatVariable", - "Expr": "0x558b7bc2f0f0-Variable" + "id": "0x562ce951b2f0-StatVariable", + "Expr": "0x562ce951b2f0-Variable" }, { - "id": "0x558b7bc2f0f0-Variable", + "id": "0x562ce951b2f0-Variable", "variantKey": "Designator", - "Designator": "0x558b7bc31c40-Designator" + "Designator": "0x562ce951ae80-Designator" }, { - "id": "0x558b7bc31c40-Designator", + "id": "0x562ce951ae80-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc31c50-DataRef" + "DataRef": "0x562ce951ae90-DataRef" }, { - "id": "0x558b7bc31c50-DataRef", + "id": "0x562ce951ae90-DataRef", "variantKey": "Name", - "Name": "0x558b7bc31c50-Name" + "Name": "0x562ce951ae90-Name" }, { - "id": "0x558b7bc31c50-Name", + "id": "0x562ce951ae90-Name", "source": "ios" }, { - "id": "0x558b7bc385f0-InputItem", + "id": "0x562ce951bfe0-InputItem", "variantKey": "Variable", - "Variable": "0x558b7bc385f0-Variable" + "Variable": "0x562ce951bfe0-Variable" }, { - "id": "0x558b7bc385f0-Variable", + "id": "0x562ce951bfe0-Variable", "variantKey": "Designator", - "Designator": "0x558b7bc32100-Designator" + "Designator": "0x562ce95127d0-Designator" }, { - "id": "0x558b7bc32100-Designator", + "id": "0x562ce95127d0-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc32110-DataRef" + "DataRef": "0x562ce95127e0-DataRef" }, { - "id": "0x558b7bc32110-DataRef", + "id": "0x562ce95127e0-DataRef", "variantKey": "Name", - "Name": "0x558b7bc32110-Name" + "Name": "0x562ce95127e0-Name" }, { - "id": "0x558b7bc32110-Name", + "id": "0x562ce95127e0-Name", "source": "val" }, { - "id": "0x558b7bc2c270-ExecutionPartConstruct", + "id": "0x562ce95154b0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558b7bc2c270-ExecutableConstruct" + "ExecutableConstruct": "0x562ce95154b0-ExecutableConstruct" }, { - "id": "0x558b7bc2c270-ExecutableConstruct", + "id": "0x562ce95154b0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558b7bc2c270-Statement" + "Statement": "0x562ce95154b0-Statement" }, { - "id": "0x558b7bc2c270-Statement", - "statement": "0x558b7bc2c280-ActionStmt", + "id": "0x562ce95154b0-Statement", + "statement": "0x562ce95154c0-ActionStmt", "label": "200", "source": "200 continue" }, { - "id": "0x558b7bc2c280-ActionStmt", + "id": "0x562ce95154c0-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x558b7bc2c280-ContinueStmt" + "ContinueStmt": "0x562ce95154c0-ContinueStmt" }, { - "id": "0x558b7bc2c280-ContinueStmt" + "id": "0x562ce95154c0-ContinueStmt" }, { - "id": "0x558b7bc320b0-ExecutionPartConstruct", + "id": "0x562ce9518490-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558b7bc320b0-ExecutableConstruct" + "ExecutableConstruct": "0x562ce9518490-ExecutableConstruct" }, { - "id": "0x558b7bc320b0-ExecutableConstruct", + "id": "0x562ce9518490-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558b7bc320b0-Statement" + "Statement": "0x562ce9518490-Statement" }, { - "id": "0x558b7bc320b0-Statement", - "statement": "0x558b7bc320c0-ActionStmt", + "id": "0x562ce9518490-Statement", + "statement": "0x562ce95184a0-ActionStmt", "source": "print *, \"All 20 io-control-spec items demonstrated successfully!\"" }, { - "id": "0x558b7bc320c0-ActionStmt", + "id": "0x562ce95184a0-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x558b7bc40e50-PrintStmt" + "PrintStmt": "0x562ce952ba10-PrintStmt" }, { - "id": "0x558b7bc40e50-PrintStmt", - "Format": "0x558b7bc40e68-Format", + "id": "0x562ce952ba10-PrintStmt", + "Format": "0x562ce952ba28-Format", "OutputItem": [ - "0x558b7bc40d70-OutputItem" + "0x562ce952b930-OutputItem" ] }, { - "id": "0x558b7bc40e68-Format", + "id": "0x562ce952ba28-Format", "variantKey": "Star", - "Star": "0x558b7bc40e68-Star" + "Star": "0x562ce952ba28-Star" }, { - "id": "0x558b7bc40e68-Star" + "id": "0x562ce952ba28-Star" }, { - "id": "0x558b7bc40d70-OutputItem", + "id": "0x562ce952b930-OutputItem", "variantKey": "Expr", - "Expr": "0x558b7bc40d70-Expr" + "Expr": "0x562ce952b930-Expr" }, { - "id": "0x558b7bc40d70-Expr", + "id": "0x562ce952b930-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc40d90-LiteralConstant" + "LiteralConstant": "0x562ce952b950-LiteralConstant" }, { - "id": "0x558b7bc40d90-LiteralConstant", + "id": "0x562ce952b950-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x558b7bc40d90-CharLiteralConstant" + "CharLiteralConstant": "0x562ce952b950-CharLiteralConstant" }, { - "id": "0x558b7bc40d90-CharLiteralConstant", + "id": "0x562ce952b950-CharLiteralConstant", "string": "All 20 io-control-spec items demonstrated successfully!" }, { - "id": "0x558b7bc2ec40-ExecutionPartConstruct", + "id": "0x562ce9517e80-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558b7bc2ec40-ExecutableConstruct" + "ExecutableConstruct": "0x562ce9517e80-ExecutableConstruct" }, { - "id": "0x558b7bc2ec40-ExecutableConstruct", + "id": "0x562ce9517e80-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558b7bc2ec40-Statement" + "Statement": "0x562ce9517e80-Statement" }, { - "id": "0x558b7bc2ec40-Statement", - "statement": "0x558b7bc2ec50-ActionStmt", + "id": "0x562ce9517e80-Statement", + "statement": "0x562ce9517e90-ActionStmt", "source": "close(u_seq, status='delete')" }, { - "id": "0x558b7bc2ec50-ActionStmt", + "id": "0x562ce9517e90-ActionStmt", "variantKey": "CloseStmt", - "CloseStmt": "0x558b7bc38030-CloseStmt" + "CloseStmt": "0x562ce951ba20-CloseStmt" }, { - "id": "0x558b7bc38030-CloseStmt", + "id": "0x562ce951ba20-CloseStmt", "CloseSpec": [ - "0x558b7bc38690-CloseSpec", - "0x558b7bc38650-CloseSpec" + "0x562ce951c080-CloseSpec", + "0x562ce951c040-CloseSpec" ] }, { - "id": "0x558b7bc38690-CloseSpec", + "id": "0x562ce951c080-CloseSpec", "variantKey": "FileUnitNumber", - "FileUnitNumber": "0x558b7bc38690-FileUnitNumber" + "FileUnitNumber": "0x562ce951c080-FileUnitNumber" }, { - "id": "0x558b7bc38690-FileUnitNumber", - "Expr": "0x558b7bc319c0-Expr" + "id": "0x562ce951c080-FileUnitNumber", + "Expr": "0x562ce951ac00-Expr" }, { - "id": "0x558b7bc319c0-Expr", + "id": "0x562ce951ac00-Expr", "variantKey": "Designator", - "Designator": "0x558b7bc2ed70-Designator" + "Designator": "0x562ce9517fb0-Designator" }, { - "id": "0x558b7bc2ed70-Designator", + "id": "0x562ce9517fb0-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc2ed80-DataRef" + "DataRef": "0x562ce9517fc0-DataRef" }, { - "id": "0x558b7bc2ed80-DataRef", + "id": "0x562ce9517fc0-DataRef", "variantKey": "Name", - "Name": "0x558b7bc2ed80-Name" + "Name": "0x562ce9517fc0-Name" }, { - "id": "0x558b7bc2ed80-Name", + "id": "0x562ce9517fc0-Name", "source": "u_seq" }, { - "id": "0x558b7bc38650-CloseSpec", + "id": "0x562ce951c040-CloseSpec", "variantKey": "StatusExpr", - "StatusExpr": "0x558b7bc38650-StatusExpr" + "StatusExpr": "0x562ce951c040-StatusExpr" }, { - "id": "0x558b7bc38650-StatusExpr", - "Expr": "0x558b7bc318e0-Expr" + "id": "0x562ce951c040-StatusExpr", + "Expr": "0x562ce951ab20-Expr" }, { - "id": "0x558b7bc318e0-Expr", + "id": "0x562ce951ab20-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc31900-LiteralConstant" + "LiteralConstant": "0x562ce951ab40-LiteralConstant" }, { - "id": "0x558b7bc31900-LiteralConstant", + "id": "0x562ce951ab40-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x558b7bc31900-CharLiteralConstant" + "CharLiteralConstant": "0x562ce951ab40-CharLiteralConstant" }, { - "id": "0x558b7bc31900-CharLiteralConstant", + "id": "0x562ce951ab40-CharLiteralConstant", "string": "delete" }, { - "id": "0x558b7bc2b0b0-ExecutionPartConstruct", + "id": "0x562ce95142f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558b7bc2b0b0-ExecutableConstruct" + "ExecutableConstruct": "0x562ce95142f0-ExecutableConstruct" }, { - "id": "0x558b7bc2b0b0-ExecutableConstruct", + "id": "0x562ce95142f0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558b7bc2b0b0-Statement" + "Statement": "0x562ce95142f0-Statement" }, { - "id": "0x558b7bc2b0b0-Statement", - "statement": "0x558b7bc2b0c0-ActionStmt", + "id": "0x562ce95142f0-Statement", + "statement": "0x562ce9514300-ActionStmt", "source": "close(u_dir, status='delete')" }, { - "id": "0x558b7bc2b0c0-ActionStmt", + "id": "0x562ce9514300-ActionStmt", "variantKey": "CloseStmt", - "CloseStmt": "0x558b7bc38620-CloseStmt" + "CloseStmt": "0x562ce951c010-CloseStmt" }, { - "id": "0x558b7bc38620-CloseStmt", + "id": "0x562ce951c010-CloseStmt", "CloseSpec": [ - "0x558b7bc38740-CloseSpec", - "0x558b7bc38700-CloseSpec" + "0x562ce951c130-CloseSpec", + "0x562ce951c0f0-CloseSpec" ] }, { - "id": "0x558b7bc38740-CloseSpec", + "id": "0x562ce951c130-CloseSpec", "variantKey": "FileUnitNumber", - "FileUnitNumber": "0x558b7bc38740-FileUnitNumber" + "FileUnitNumber": "0x562ce951c130-FileUnitNumber" }, { - "id": "0x558b7bc38740-FileUnitNumber", - "Expr": "0x558b7bc31800-Expr" + "id": "0x562ce951c130-FileUnitNumber", + "Expr": "0x562ce951aa40-Expr" }, { - "id": "0x558b7bc31800-Expr", + "id": "0x562ce951aa40-Expr", "variantKey": "Designator", - "Designator": "0x558b7bc2d600-Designator" + "Designator": "0x562ce9516840-Designator" }, { - "id": "0x558b7bc2d600-Designator", + "id": "0x562ce9516840-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc2d610-DataRef" + "DataRef": "0x562ce9516850-DataRef" }, { - "id": "0x558b7bc2d610-DataRef", + "id": "0x562ce9516850-DataRef", "variantKey": "Name", - "Name": "0x558b7bc2d610-Name" + "Name": "0x562ce9516850-Name" }, { - "id": "0x558b7bc2d610-Name", + "id": "0x562ce9516850-Name", "source": "u_dir" }, { - "id": "0x558b7bc38700-CloseSpec", + "id": "0x562ce951c0f0-CloseSpec", "variantKey": "StatusExpr", - "StatusExpr": "0x558b7bc38700-StatusExpr" + "StatusExpr": "0x562ce951c0f0-StatusExpr" }, { - "id": "0x558b7bc38700-StatusExpr", - "Expr": "0x558b7bc2eb50-Expr" + "id": "0x562ce951c0f0-StatusExpr", + "Expr": "0x562ce9517d90-Expr" }, { - "id": "0x558b7bc2eb50-Expr", + "id": "0x562ce9517d90-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc2eb70-LiteralConstant" + "LiteralConstant": "0x562ce9517db0-LiteralConstant" }, { - "id": "0x558b7bc2eb70-LiteralConstant", + "id": "0x562ce9517db0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x558b7bc2eb70-CharLiteralConstant" + "CharLiteralConstant": "0x562ce9517db0-CharLiteralConstant" }, { - "id": "0x558b7bc2eb70-CharLiteralConstant", + "id": "0x562ce9517db0-CharLiteralConstant", "string": "delete" }, { - "id": "0x558b7bc29740-ExecutionPartConstruct", + "id": "0x562ce9518430-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558b7bc29740-ExecutableConstruct" + "ExecutableConstruct": "0x562ce9518430-ExecutableConstruct" }, { - "id": "0x558b7bc29740-ExecutableConstruct", + "id": "0x562ce9518430-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558b7bc29740-Statement" + "Statement": "0x562ce9518430-Statement" }, { - "id": "0x558b7bc29740-Statement", - "statement": "0x558b7bc29750-ActionStmt", + "id": "0x562ce9518430-Statement", + "statement": "0x562ce9518440-ActionStmt", "source": "close(u_stream, status='delete')" }, { - "id": "0x558b7bc29750-ActionStmt", + "id": "0x562ce9518440-ActionStmt", "variantKey": "CloseStmt", - "CloseStmt": "0x558b7bc37f10-CloseStmt" + "CloseStmt": "0x562ce951b900-CloseStmt" }, { - "id": "0x558b7bc37f10-CloseStmt", + "id": "0x562ce951b900-CloseStmt", "CloseSpec": [ - "0x558b7bc38530-CloseSpec", - "0x558b7bc38780-CloseSpec" + "0x562ce951bf20-CloseSpec", + "0x562ce951c170-CloseSpec" ] }, { - "id": "0x558b7bc38530-CloseSpec", + "id": "0x562ce951bf20-CloseSpec", "variantKey": "FileUnitNumber", - "FileUnitNumber": "0x558b7bc38530-FileUnitNumber" + "FileUnitNumber": "0x562ce951bf20-FileUnitNumber" }, { - "id": "0x558b7bc38530-FileUnitNumber", - "Expr": "0x558b7bc2ea70-Expr" + "id": "0x562ce951bf20-FileUnitNumber", + "Expr": "0x562ce9517cb0-Expr" }, { - "id": "0x558b7bc2ea70-Expr", + "id": "0x562ce9517cb0-Expr", "variantKey": "Designator", - "Designator": "0x558b7bc2b550-Designator" + "Designator": "0x562ce9514790-Designator" }, { - "id": "0x558b7bc2b550-Designator", + "id": "0x562ce9514790-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc2b560-DataRef" + "DataRef": "0x562ce95147a0-DataRef" }, { - "id": "0x558b7bc2b560-DataRef", + "id": "0x562ce95147a0-DataRef", "variantKey": "Name", - "Name": "0x558b7bc2b560-Name" + "Name": "0x562ce95147a0-Name" }, { - "id": "0x558b7bc2b560-Name", + "id": "0x562ce95147a0-Name", "source": "u_stream" }, { - "id": "0x558b7bc38780-CloseSpec", + "id": "0x562ce951c170-CloseSpec", "variantKey": "StatusExpr", - "StatusExpr": "0x558b7bc38780-StatusExpr" + "StatusExpr": "0x562ce951c170-StatusExpr" }, { - "id": "0x558b7bc38780-StatusExpr", - "Expr": "0x558b7bc40f50-Expr" + "id": "0x562ce951c170-StatusExpr", + "Expr": "0x562ce952bb10-Expr" }, { - "id": "0x558b7bc40f50-Expr", + "id": "0x562ce952bb10-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc40f70-LiteralConstant" + "LiteralConstant": "0x562ce952bb30-LiteralConstant" }, { - "id": "0x558b7bc40f70-LiteralConstant", + "id": "0x562ce952bb30-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x558b7bc40f70-CharLiteralConstant" + "CharLiteralConstant": "0x562ce952bb30-CharLiteralConstant" }, { - "id": "0x558b7bc40f70-CharLiteralConstant", + "id": "0x562ce952bb30-CharLiteralConstant", "string": "delete" }, { - "id": "0x558b7bc314b0-ExecutionPartConstruct", + "id": "0x562ce951a6f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558b7bc314b0-ExecutableConstruct" + "ExecutableConstruct": "0x562ce951a6f0-ExecutableConstruct" }, { - "id": "0x558b7bc314b0-ExecutableConstruct", + "id": "0x562ce951a6f0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558b7bc314b0-Statement" + "Statement": "0x562ce951a6f0-Statement" }, { - "id": "0x558b7bc314b0-Statement", - "statement": "0x558b7bc314c0-ActionStmt", + "id": "0x562ce951a6f0-Statement", + "statement": "0x562ce951a700-ActionStmt", "source": "stop" }, { - "id": "0x558b7bc314c0-ActionStmt", + "id": "0x562ce951a700-ActionStmt", "variantKey": "StopStmt", - "StopStmt": "0x558b7bc41030-StopStmt" + "StopStmt": "0x562ce952bbf0-StopStmt" }, { - "id": "0x558b7bc41030-StopStmt", - "kind": "0x558b7bc41118-Kind = Stop" + "id": "0x562ce952bbf0-StopStmt", + "kind": "0x562ce952bcd8-Kind" }, { - "id": "0x558b7bc41118-Kind = Stop", + "id": "0x562ce952bcd8-Kind", "disambiguation": "Fortran::parser::StopStmt::Kind", "value": "Stop" }, { - "id": "0x558b7bc415c0-ExecutionPartConstruct", + "id": "0x562ce952c1e0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558b7bc415c0-ExecutableConstruct" + "ExecutableConstruct": "0x562ce952c1e0-ExecutableConstruct" }, { - "id": "0x558b7bc415c0-ExecutableConstruct", + "id": "0x562ce952c1e0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558b7bc415c0-Statement" + "Statement": "0x562ce952c1e0-Statement" }, { - "id": "0x558b7bc415c0-Statement", - "statement": "0x558b7bc415d0-ActionStmt", + "id": "0x562ce952c1e0-Statement", + "statement": "0x562ce952c1f0-ActionStmt", "label": "900", "source": "900 print *, \"I/O Error Occurred: \", trim(io_message)" }, { - "id": "0x558b7bc415d0-ActionStmt", + "id": "0x562ce952c1f0-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x558b7bc41450-PrintStmt" + "PrintStmt": "0x562ce952c070-PrintStmt" }, { - "id": "0x558b7bc41450-PrintStmt", - "Format": "0x558b7bc41468-Format", + "id": "0x562ce952c070-PrintStmt", + "Format": "0x562ce952c088-Format", "OutputItem": [ - "0x558b7bc41370-OutputItem", - "0x558b7bc41280-OutputItem" + "0x562ce952bf90-OutputItem", + "0x562ce952bea0-OutputItem" ] }, { - "id": "0x558b7bc41468-Format", + "id": "0x562ce952c088-Format", "variantKey": "Star", - "Star": "0x558b7bc41468-Star" + "Star": "0x562ce952c088-Star" }, { - "id": "0x558b7bc41468-Star" + "id": "0x562ce952c088-Star" }, { - "id": "0x558b7bc41370-OutputItem", + "id": "0x562ce952bf90-OutputItem", "variantKey": "Expr", - "Expr": "0x558b7bc41370-Expr" + "Expr": "0x562ce952bf90-Expr" }, { - "id": "0x558b7bc41370-Expr", + "id": "0x562ce952bf90-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b7bc41390-LiteralConstant" + "LiteralConstant": "0x562ce952bfb0-LiteralConstant" }, { - "id": "0x558b7bc41390-LiteralConstant", + "id": "0x562ce952bfb0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x558b7bc41390-CharLiteralConstant" + "CharLiteralConstant": "0x562ce952bfb0-CharLiteralConstant" }, { - "id": "0x558b7bc41390-CharLiteralConstant", + "id": "0x562ce952bfb0-CharLiteralConstant", "string": "I/O Error Occurred: " }, { - "id": "0x558b7bc41280-OutputItem", + "id": "0x562ce952bea0-OutputItem", "variantKey": "Expr", - "Expr": "0x558b7bc41280-Expr" + "Expr": "0x562ce952bea0-Expr" }, { - "id": "0x558b7bc41280-Expr", + "id": "0x562ce952bea0-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x558b7bc2b8b0-FunctionReference" + "FunctionReference": "0x562ce9514af0-FunctionReference" }, { - "id": "0x558b7bc2b8b0-FunctionReference", - "Call": "0x558b7bc2b8b0-Call" + "id": "0x562ce9514af0-FunctionReference", + "Call": "0x562ce9514af0-Call" }, { - "id": "0x558b7bc2b8b0-Call", - "ProcedureDesignator": "0x558b7bc2b8c8-ProcedureDesignator", + "id": "0x562ce9514af0-Call", + "ProcedureDesignator": "0x562ce9514b08-ProcedureDesignator", "ActualArgSpec": [ - "0x558b7bc29e50-ActualArgSpec" + "0x562ce9513090-ActualArgSpec" ] }, { - "id": "0x558b7bc2b8c8-ProcedureDesignator", + "id": "0x562ce9514b08-ProcedureDesignator", "variantKey": "Name", - "Name": "0x558b7bc2b8c8-Name" + "Name": "0x562ce9514b08-Name" }, { - "id": "0x558b7bc2b8c8-Name", + "id": "0x562ce9514b08-Name", "source": "trim" }, { - "id": "0x558b7bc29e50-ActualArgSpec", - "ActualArg": "0x558b7bc29e50-ActualArg" + "id": "0x562ce9513090-ActualArgSpec", + "ActualArg": "0x562ce9513090-ActualArg" }, { - "id": "0x558b7bc29e50-ActualArg", + "id": "0x562ce9513090-ActualArg", "variantKey": "Expr", - "Expr": "0x558b7bc41130-Expr" + "Expr": "0x562ce952bd50-Expr" }, { - "id": "0x558b7bc41130-Expr", + "id": "0x562ce952bd50-Expr", "variantKey": "Designator", - "Designator": "0x558b7bc2f240-Designator" + "Designator": "0x562ce952bcf0-Designator" }, { - "id": "0x558b7bc2f240-Designator", + "id": "0x562ce952bcf0-Designator", "variantKey": "DataRef", - "DataRef": "0x558b7bc2f250-DataRef" + "DataRef": "0x562ce952bd00-DataRef" }, { - "id": "0x558b7bc2f250-DataRef", + "id": "0x562ce952bd00-DataRef", "variantKey": "Name", - "Name": "0x558b7bc2f250-Name" + "Name": "0x562ce952bd00-Name" }, { - "id": "0x558b7bc2f250-Name", + "id": "0x562ce952bd00-Name", "source": "io_message" }, { - "id": "0x558b7bc39a60-Statement", - "statement": "0x558b7bc39a70-EndProgramStmt", + "id": "0x562ce95245d0-Statement", + "statement": "0x562ce95245e0-EndProgramStmt", "source": "end program IO_CONTROL_SPECS" }, { - "id": "0x558b7bc39a70-EndProgramStmt", - "Name": "0x558b7bc39a70-Name" + "id": "0x562ce95245e0-EndProgramStmt", + "Name": "0x562ce95245e0-Name" }, { - "id": "0x558b7bc39a70-Name", + "id": "0x562ce95245e0-Name", "source": "IO_CONTROL_SPECS" } ], "comments": [ { "text": " Define a namelist for the NML specifier demo", - "stmtId": "0x558b7bc08da0-Statement", + "stmtId": "0x562ce94f3da0-Statement", "trailing": false }, { "text": " Open temporary test files (Sequential, Direct, Stream)", - "stmtId": "0x558b7bc29190-Statement", + "stmtId": "0x562ce95129b0-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x558b7bc2e250-Statement", + "stmtId": "0x562ce9517490-Statement", "trailing": false }, { "text": " 1. Formatting, Rounding, Decimal, Sign, Delim, IOSTAT & IOMSG", - "stmtId": "0x558b7bc2e250-Statement", + "stmtId": "0x562ce9517490-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x558b7bc2e250-Statement", - "trailing": false - }, - { - "text": " 1. Specifier: UNIT", - "stmtId": "0x558b7bc2e250-Statement", - "trailing": true - }, - { - "text": " 2. Specifier: FMT", - "stmtId": "0x558b7bc27770-Statement", - "trailing": false - }, - { - "text": " 3. Specifier: DECIMAL ('point' or 'comma')", - "stmtId": "0x558b7bc27770-Statement", - "trailing": false - }, - { - "text": " 4. Specifier: SIGN ('plus', 'suppress', 'processor_defined')", - "stmtId": "0x558b7bc27770-Statement", - "trailing": false - }, - { - "text": " 5. Specifier: ROUND ('up', 'down', 'zero', 'nearest', etc.)", - "stmtId": "0x558b7bc27770-Statement", - "trailing": false - }, - { - "text": " 6. Specifier: DELIM ('apostrophe', 'quote', 'none')", - "stmtId": "0x558b7bc27770-Statement", - "trailing": false - }, - { - "text": " 7. Specifier: IOSTAT (returns 0 on success)", - "stmtId": "0x558b7bc27770-Statement", - "trailing": false - }, - { - "text": " 8. Specifier: IOMSG (returns description on error)", - "stmtId": "0x558b7bc27770-Statement", + "stmtId": "0x562ce9517490-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x558b7bc27770-Statement", + "stmtId": "0x562ce9522fe0-Statement", "trailing": false }, { "text": " 2. Namelist Specifier (NML)", - "stmtId": "0x558b7bc27770-Statement", + "stmtId": "0x562ce9522fe0-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x558b7bc27770-Statement", - "trailing": false - }, - { - "text": " 9. Specifier: NML", - "stmtId": "0x558b7bc2c2d0-Statement", + "stmtId": "0x562ce9522fe0-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x558b7bc2c2d0-Statement", + "stmtId": "0x562ce9515510-Statement", "trailing": false }, { "text": " 3. Non-Advancing I/O (ADVANCE, SIZE, PAD, EOR, ERR)", - "stmtId": "0x558b7bc2c2d0-Statement", + "stmtId": "0x562ce9515510-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x558b7bc2c2d0-Statement", - "trailing": false - }, - { - "text": " 10. Specifier: ADVANCE ('yes' or 'no')", - "stmtId": "0x558b7bc2efd0-Statement", - "trailing": false - }, - { - "text": " 11. Specifier: PAD ('yes' or 'no')", - "stmtId": "0x558b7bc2efd0-Statement", - "trailing": false - }, - { - "text": " 12. Specifier: SIZE (stores count of chars read)", - "stmtId": "0x558b7bc2efd0-Statement", - "trailing": false - }, - { - "text": " 13. Specifier: EOR (label branch on End-Of-Record)", - "stmtId": "0x558b7bc2efd0-Statement", - "trailing": false - }, - { - "text": " 14. Specifier: ERR (label branch on error)", - "stmtId": "0x558b7bc2efd0-Statement", + "stmtId": "0x562ce9515510-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x558b7bc30610-Statement", + "stmtId": "0x562ce9519850-Statement", "trailing": false }, { "text": " 4. Direct Access (REC)", - "stmtId": "0x558b7bc30610-Statement", + "stmtId": "0x562ce9519850-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x558b7bc30610-Statement", - "trailing": false - }, - { - "text": " 15. Specifier: REC (record number)", - "stmtId": "0x558b7bc2f030-Statement", + "stmtId": "0x562ce9519850-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x558b7bc2f030-Statement", + "stmtId": "0x562ce9518270-Statement", "trailing": false }, { "text": " 5. Stream Access (POS)", - "stmtId": "0x558b7bc2f030-Statement", + "stmtId": "0x562ce9518270-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x558b7bc2f030-Statement", - "trailing": false - }, - { - "text": " 16. Specifier: POS (file byte position offset)", - "stmtId": "0x558b7bc317b0-Statement", + "stmtId": "0x562ce9518270-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x558b7bc317b0-Statement", + "stmtId": "0x562ce951a9f0-Statement", "trailing": false }, { "text": " 6. Asynchronous Non-Blocking I/O (ASYNCHRONOUS, ID)", - "stmtId": "0x558b7bc317b0-Statement", + "stmtId": "0x562ce951a9f0-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x558b7bc317b0-Statement", - "trailing": false - }, - { - "text": " 17. Specifier: ASYNCHRONOUS ('yes' or 'no')", - "stmtId": "0x558b7bc2fd10-Statement", - "trailing": false - }, - { - "text": " 18. Specifier: ID (holds async operation handle)", - "stmtId": "0x558b7bc2fd10-Statement", + "stmtId": "0x562ce951a9f0-Statement", "trailing": false }, { "text": " Wait for async operation to complete before continuing", - "stmtId": "0x558b7bc2fd10-Statement", + "stmtId": "0x562ce9518f50-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x558b7bc2f1f0-Statement", + "stmtId": "0x562ce952b8d0-Statement", "trailing": false }, { "text": " 7. Input Blank Handling and EOF Branching (BLANK, END)", - "stmtId": "0x558b7bc2f1f0-Statement", + "stmtId": "0x562ce952b8d0-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x558b7bc2f1f0-Statement", - "trailing": false - }, - { - "text": " 19. Specifier: BLANK ('null' or 'zero')", - "stmtId": "0x558b7bc2c270-Statement", - "trailing": false - }, - { - "text": " 20. Specifier: END (label branch on End-Of-File)", - "stmtId": "0x558b7bc2c270-Statement", + "stmtId": "0x562ce952b8d0-Statement", "trailing": false }, { "text": " Clean up files", - "stmtId": "0x558b7bc2ec40-Statement", + "stmtId": "0x562ce9517e80-Statement", "trailing": false } ], diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java index a5452e52..b72f3fef 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java @@ -22,6 +22,11 @@ public void openStmt(OpenStmt openStmt) { openStmt.addChildren(specs); } + private String getCharExprKind(FlangAttributes attrs) { + var kindId = attrs.getString(FlangName.KIND); + return attributes().get(kindId).getString("value"); + } + public void exprConnectSpec(ExprConnectSpec spec) { var attrs = attributes(spec); var variant = attrs.getVariantName(); @@ -41,8 +46,7 @@ public void exprConnectSpec(ExprConnectSpec spec) { case CHAR_EXPR -> { attrs = getChildAttrs(attrs); - var flangKind = attrs.getString(FlangName.KIND); - var kind = ExprConnectSpecKind.valueOf(flangKind); + var kind = ExprConnectSpecKind.convert(getCharExprKind(attrs)); spec.set(ExprConnectSpec.KIND, kind); } @@ -115,7 +119,7 @@ public void writeStmt(WriteStmt writeStmt) { public void exprIoControlSpec(ExprIoControlSpec spec) { var attrs = attributes(spec); - var nodeKind = getKind(spec); + var nodeKind = getNodeKind(spec); if (nodeKind == FlangName.IO_UNIT) { // If original node is IoUnit spec.set(ExprIoControlSpec.KIND, ExprIoControlSpecKind.UNIT); @@ -126,7 +130,7 @@ public void exprIoControlSpec(ExprIoControlSpec spec) { var kind = switch (variant) { // ADVANCE, BLANK, DECIMAL, DELIM, PAD, ROUND, SIGN - case CHAR_EXPR -> ExprIoControlSpecKind.valueOf(attrs.getString(FlangName.KIND)); + case CHAR_EXPR -> ExprIoControlSpecKind.convert(getCharExprKind(attrs)); case ASYNCHRONOUS -> ExprIoControlSpecKind.ASYNCHRONOUS; case POS -> ExprIoControlSpecKind.POS; case REC -> ExprIoControlSpecKind.REC; @@ -145,7 +149,7 @@ public void exprIoControlSpec(ExprIoControlSpec spec) { public void varIoControlSpec(VarIoControlSpec spec) { var attrs = attributes(spec); - var nodeKind = getKind(spec); + var nodeKind = getNodeKind(spec); if (nodeKind == FlangName.IO_UNIT) { spec.set(VarIoControlSpec.KIND, VarIoControlSpecKind.UNIT); @@ -173,7 +177,8 @@ public void varIoControlSpec(VarIoControlSpec spec) { } public void labelIoControlSpec(LabelIoControlSpec spec) { - var variant = attributes(spec).getVariantName(); + var attrs = attributes(spec); + var variant = attrs.getVariantName(); var kind = switch (variant) { case END_LABEL -> LabelIoControlSpecKind.END; @@ -183,7 +188,7 @@ public void labelIoControlSpec(LabelIoControlSpec spec) { }; spec.set(LabelIoControlSpec.KIND, kind); - var label = attributes(spec).getString("uint64_t"); + var label = getChildAttrs(attrs).getString("uint64_t"); spec.set(LabelIoControlSpec.LABEL, Integer.parseInt(label)); } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/NodeProcessor.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/NodeProcessor.java index 63f724dd..c13ff61e 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/NodeProcessor.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/NodeProcessor.java @@ -146,10 +146,11 @@ default String getKind(String id) { } */ - default FlangName getKind(FortranNode node) { + default FlangName getNodeKind(FortranNode node) { var id = attributes(node).getString("id"); var kindStr = attributes().getKind(id); - return FlangName.valueOf(kindStr); + return FlangName.convertTry(kindStr).orElseThrow(() -> + new RuntimeException("Kind '" + kindStr + "' is not a valid Flang name.")); } From 14009590702dad63fea6c3a6c87383e0dcd96ea7 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 27 Jul 2026 14:54:11 +0100 Subject: [PATCH 128/260] Improve mapper error flagging --- .../fortran/parser/io/io_control.json | 2272 ++++++++--------- .../fortran/parser/AlwaysClassMapper.java | 6 +- .../specs/fortran/parser/CaseClassMapper.java | 11 +- .../fe/specs/fortran/parser/ClassMapper.java | 18 +- 4 files changed, 1136 insertions(+), 1171 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/io/io_control.json b/FortranParser/resources-test/fortran/parser/io/io_control.json index e4877c0c..85bf7713 100644 --- a/FortranParser/resources-test/fortran/parser/io/io_control.json +++ b/FortranParser/resources-test/fortran/parser/io/io_control.json @@ -2,2914 +2,2870 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x562ce94e6f00-Program", + "id": "0x56198f04ff00-Program", "ProgramUnit": [ - "0x562ce95259f0-ProgramUnit" + "0x56198f08e9f0-ProgramUnit" ] }, { - "id": "0x562ce95259f0-ProgramUnit", + "id": "0x56198f08e9f0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x562ce95245d0-MainProgram" + "MainProgram": "0x56198f08d5d0-MainProgram" }, { - "id": "0x562ce95245d0-MainProgram", - "Statement": "0x562ce9524718-Statement", - "SpecificationPart": "0x562ce9524670-SpecificationPart", - "ExecutionPart": "0x562ce9524658-ExecutionPart", - "Statement": "0x562ce95245d0-Statement" + "id": "0x56198f08d5d0-MainProgram", + "Statement": "0x56198f08d718-Statement", + "SpecificationPart": "0x56198f08d670-SpecificationPart", + "ExecutionPart": "0x56198f08d658-ExecutionPart", + "Statement": "0x56198f08d5d0-Statement" }, { - "id": "0x562ce9524718-Statement", - "statement": "0x562ce9524728-ProgramStmt", + "id": "0x56198f08d718-Statement", + "statement": "0x56198f08d728-ProgramStmt", "source": "program IO_CONTROL_SPECS" }, { - "id": "0x562ce9524728-ProgramStmt", - "Name": "0x562ce9524728-Name" + "id": "0x56198f08d728-ProgramStmt", + "Name": "0x56198f08d728-Name" }, { - "id": "0x562ce9524728-Name", + "id": "0x56198f08d728-Name", "source": "IO_CONTROL_SPECS" }, { - "id": "0x562ce9524670-SpecificationPart", - "ImplicitPart": "0x562ce9524688-ImplicitPart", + "id": "0x56198f08d670-SpecificationPart", + "ImplicitPart": "0x56198f08d688-ImplicitPart", "DeclarationConstruct": [ - "0x562ce94f4170-DeclarationConstruct", - "0x562ce94f4110-DeclarationConstruct", - "0x562ce9523be0-DeclarationConstruct", - "0x562ce9523cc0-DeclarationConstruct", - "0x562ce9511950-DeclarationConstruct", - "0x562ce9511c00-DeclarationConstruct", - "0x562ce94f3da0-DeclarationConstruct" + "0x56198f05d170-DeclarationConstruct", + "0x56198f05d110-DeclarationConstruct", + "0x56198f08cbe0-DeclarationConstruct", + "0x56198f08ccc0-DeclarationConstruct", + "0x56198f07a950-DeclarationConstruct", + "0x56198f07ac00-DeclarationConstruct", + "0x56198f05cda0-DeclarationConstruct" ] }, { - "id": "0x562ce9524688-ImplicitPart" + "id": "0x56198f08d688-ImplicitPart" }, { - "id": "0x562ce94f4170-DeclarationConstruct", + "id": "0x56198f05d170-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x562ce94f4170-SpecificationConstruct" + "SpecificationConstruct": "0x56198f05d170-SpecificationConstruct" }, { - "id": "0x562ce94f4170-SpecificationConstruct", + "id": "0x56198f05d170-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x562ce94f4170-Statement" + "Statement": "0x56198f05d170-Statement" }, { - "id": "0x562ce94f4170-Statement", - "statement": "0x562ce9523170-TypeDeclarationStmt", + "id": "0x56198f05d170-Statement", + "statement": "0x56198f08c170-TypeDeclarationStmt", "source": "integer :: u_seq, u_dir, u_stream" }, { - "id": "0x562ce9523170-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x562ce95231a0-DeclarationTypeSpec", + "id": "0x56198f08c170-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x56198f08c1a0-DeclarationTypeSpec", "EntityDecl": [ - "0x562ce9523460-EntityDecl", - "0x562ce9523280-EntityDecl", - "0x562ce9523370-EntityDecl" + "0x56198f08c460-EntityDecl", + "0x56198f08c280-EntityDecl", + "0x56198f08c370-EntityDecl" ] }, { - "id": "0x562ce95231a0-DeclarationTypeSpec", + "id": "0x56198f08c1a0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x562ce95231a0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x56198f08c1a0-IntrinsicTypeSpec" }, { - "id": "0x562ce95231a0-IntrinsicTypeSpec", + "id": "0x56198f08c1a0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x562ce95231a0-IntegerTypeSpec" + "IntegerTypeSpec": "0x56198f08c1a0-IntegerTypeSpec" }, { - "id": "0x562ce95231a0-IntegerTypeSpec" + "id": "0x56198f08c1a0-IntegerTypeSpec" }, { - "id": "0x562ce9523460-EntityDecl", - "Name": "0x562ce9523518-Name" + "id": "0x56198f08c460-EntityDecl", + "Name": "0x56198f08c518-Name" }, { - "id": "0x562ce9523518-Name", + "id": "0x56198f08c518-Name", "source": "u_seq" }, { - "id": "0x562ce9523280-EntityDecl", - "Name": "0x562ce9523338-Name" + "id": "0x56198f08c280-EntityDecl", + "Name": "0x56198f08c338-Name" }, { - "id": "0x562ce9523338-Name", + "id": "0x56198f08c338-Name", "source": "u_dir" }, { - "id": "0x562ce9523370-EntityDecl", - "Name": "0x562ce9523428-Name" + "id": "0x56198f08c370-EntityDecl", + "Name": "0x56198f08c428-Name" }, { - "id": "0x562ce9523428-Name", + "id": "0x56198f08c428-Name", "source": "u_stream" }, { - "id": "0x562ce94f4110-DeclarationConstruct", + "id": "0x56198f05d110-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x562ce94f4110-SpecificationConstruct" + "SpecificationConstruct": "0x56198f05d110-SpecificationConstruct" }, { - "id": "0x562ce94f4110-SpecificationConstruct", + "id": "0x56198f05d110-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x562ce94f4110-Statement" + "Statement": "0x56198f05d110-Statement" }, { - "id": "0x562ce94f4110-Statement", - "statement": "0x562ce95231f0-TypeDeclarationStmt", + "id": "0x56198f05d110-Statement", + "statement": "0x56198f08c1f0-TypeDeclarationStmt", "source": "integer :: ios, async_id, chars_read" }, { - "id": "0x562ce95231f0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x562ce9523220-DeclarationTypeSpec", + "id": "0x56198f08c1f0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x56198f08c220-DeclarationTypeSpec", "EntityDecl": [ - "0x562ce95237b0-EntityDecl", - "0x562ce95235d0-EntityDecl", - "0x562ce95236c0-EntityDecl" + "0x56198f08c7b0-EntityDecl", + "0x56198f08c5d0-EntityDecl", + "0x56198f08c6c0-EntityDecl" ] }, { - "id": "0x562ce9523220-DeclarationTypeSpec", + "id": "0x56198f08c220-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x562ce9523220-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x56198f08c220-IntrinsicTypeSpec" }, { - "id": "0x562ce9523220-IntrinsicTypeSpec", + "id": "0x56198f08c220-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x562ce9523220-IntegerTypeSpec" + "IntegerTypeSpec": "0x56198f08c220-IntegerTypeSpec" }, { - "id": "0x562ce9523220-IntegerTypeSpec" + "id": "0x56198f08c220-IntegerTypeSpec" }, { - "id": "0x562ce95237b0-EntityDecl", - "Name": "0x562ce9523868-Name" + "id": "0x56198f08c7b0-EntityDecl", + "Name": "0x56198f08c868-Name" }, { - "id": "0x562ce9523868-Name", + "id": "0x56198f08c868-Name", "source": "ios" }, { - "id": "0x562ce95235d0-EntityDecl", - "Name": "0x562ce9523688-Name" + "id": "0x56198f08c5d0-EntityDecl", + "Name": "0x56198f08c688-Name" }, { - "id": "0x562ce9523688-Name", + "id": "0x56198f08c688-Name", "source": "async_id" }, { - "id": "0x562ce95236c0-EntityDecl", - "Name": "0x562ce9523778-Name" + "id": "0x56198f08c6c0-EntityDecl", + "Name": "0x56198f08c778-Name" }, { - "id": "0x562ce9523778-Name", + "id": "0x56198f08c778-Name", "source": "chars_read" }, { - "id": "0x562ce9523be0-DeclarationConstruct", + "id": "0x56198f08cbe0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x562ce9523be0-SpecificationConstruct" + "SpecificationConstruct": "0x56198f08cbe0-SpecificationConstruct" }, { - "id": "0x562ce9523be0-SpecificationConstruct", + "id": "0x56198f08cbe0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x562ce9523be0-Statement" + "Statement": "0x56198f08cbe0-Statement" }, { - "id": "0x562ce9523be0-Statement", - "statement": "0x562ce9523540-TypeDeclarationStmt", + "id": "0x56198f08cbe0-Statement", + "statement": "0x56198f08c540-TypeDeclarationStmt", "source": "character(len=200) :: io_message" }, { - "id": "0x562ce9523540-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x562ce9523570-DeclarationTypeSpec", + "id": "0x56198f08c540-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x56198f08c570-DeclarationTypeSpec", "EntityDecl": [ - "0x562ce9523a10-EntityDecl" + "0x56198f08ca10-EntityDecl" ] }, { - "id": "0x562ce9523570-DeclarationTypeSpec", + "id": "0x56198f08c570-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x562ce9523570-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x56198f08c570-IntrinsicTypeSpec" }, { - "id": "0x562ce9523570-IntrinsicTypeSpec", + "id": "0x56198f08c570-IntrinsicTypeSpec", "variantKey": "Character", - "Character": "0x562ce9523570-Character" + "Character": "0x56198f08c570-Character" }, { - "id": "0x562ce9523570-Character", - "CharSelector": "0x562ce9523570-CharSelector" + "id": "0x56198f08c570-Character", + "CharSelector": "0x56198f08c570-CharSelector" }, { - "id": "0x562ce9523570-CharSelector", + "id": "0x56198f08c570-CharSelector", "variantKey": "LengthSelector", - "LengthSelector": "0x562ce9523570-LengthSelector" + "LengthSelector": "0x56198f08c570-LengthSelector" }, { - "id": "0x562ce9523570-LengthSelector", + "id": "0x56198f08c570-LengthSelector", "variantKey": "TypeParamValue", - "TypeParamValue": "0x562ce9523570-TypeParamValue" + "TypeParamValue": "0x56198f08c570-TypeParamValue" }, { - "id": "0x562ce9523570-TypeParamValue", + "id": "0x56198f08c570-TypeParamValue", "variantKey": "Expr", - "Expr": "0x562ce9486790-Expr" + "Expr": "0x56198efef790-Expr" }, { - "id": "0x562ce9486790-Expr", + "id": "0x56198efef790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce94867b0-LiteralConstant" + "LiteralConstant": "0x56198efef7b0-LiteralConstant" }, { - "id": "0x562ce94867b0-LiteralConstant", + "id": "0x56198efef7b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x562ce94867b0-IntLiteralConstant" + "IntLiteralConstant": "0x56198efef7b0-IntLiteralConstant" }, { - "id": "0x562ce94867b0-IntLiteralConstant", + "id": "0x56198efef7b0-IntLiteralConstant", "CharBlock": "200" }, { - "id": "0x562ce9523a10-EntityDecl", - "Name": "0x562ce9523ac8-Name" + "id": "0x56198f08ca10-EntityDecl", + "Name": "0x56198f08cac8-Name" }, { - "id": "0x562ce9523ac8-Name", + "id": "0x56198f08cac8-Name", "source": "io_message" }, { - "id": "0x562ce9523cc0-DeclarationConstruct", + "id": "0x56198f08ccc0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x562ce9523cc0-SpecificationConstruct" + "SpecificationConstruct": "0x56198f08ccc0-SpecificationConstruct" }, { - "id": "0x562ce9523cc0-SpecificationConstruct", + "id": "0x56198f08ccc0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x562ce9523cc0-Statement" + "Statement": "0x56198f08ccc0-Statement" }, { - "id": "0x562ce9523cc0-Statement", - "statement": "0x562ce9523890-TypeDeclarationStmt", + "id": "0x56198f08ccc0-Statement", + "statement": "0x56198f08c890-TypeDeclarationStmt", "source": "character(len=20) :: text_buffer" }, { - "id": "0x562ce9523890-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x562ce95238c0-DeclarationTypeSpec", + "id": "0x56198f08c890-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x56198f08c8c0-DeclarationTypeSpec", "EntityDecl": [ - "0x562ce949c270-EntityDecl" + "0x56198f005270-EntityDecl" ] }, { - "id": "0x562ce95238c0-DeclarationTypeSpec", + "id": "0x56198f08c8c0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x562ce95238c0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x56198f08c8c0-IntrinsicTypeSpec" }, { - "id": "0x562ce95238c0-IntrinsicTypeSpec", + "id": "0x56198f08c8c0-IntrinsicTypeSpec", "variantKey": "Character", - "Character": "0x562ce95238c0-Character" + "Character": "0x56198f08c8c0-Character" }, { - "id": "0x562ce95238c0-Character", - "CharSelector": "0x562ce95238c0-CharSelector" + "id": "0x56198f08c8c0-Character", + "CharSelector": "0x56198f08c8c0-CharSelector" }, { - "id": "0x562ce95238c0-CharSelector", + "id": "0x56198f08c8c0-CharSelector", "variantKey": "LengthSelector", - "LengthSelector": "0x562ce95238c0-LengthSelector" + "LengthSelector": "0x56198f08c8c0-LengthSelector" }, { - "id": "0x562ce95238c0-LengthSelector", + "id": "0x56198f08c8c0-LengthSelector", "variantKey": "TypeParamValue", - "TypeParamValue": "0x562ce95238c0-TypeParamValue" + "TypeParamValue": "0x56198f08c8c0-TypeParamValue" }, { - "id": "0x562ce95238c0-TypeParamValue", + "id": "0x56198f08c8c0-TypeParamValue", "variantKey": "Expr", - "Expr": "0x562ce952ae90-Expr" + "Expr": "0x56198f093e90-Expr" }, { - "id": "0x562ce952ae90-Expr", + "id": "0x56198f093e90-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce952aeb0-LiteralConstant" + "LiteralConstant": "0x56198f093eb0-LiteralConstant" }, { - "id": "0x562ce952aeb0-LiteralConstant", + "id": "0x56198f093eb0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x562ce952aeb0-IntLiteralConstant" + "IntLiteralConstant": "0x56198f093eb0-IntLiteralConstant" }, { - "id": "0x562ce952aeb0-IntLiteralConstant", + "id": "0x56198f093eb0-IntLiteralConstant", "CharBlock": "20" }, { - "id": "0x562ce949c270-EntityDecl", - "Name": "0x562ce949c328-Name" + "id": "0x56198f005270-EntityDecl", + "Name": "0x56198f005328-Name" }, { - "id": "0x562ce949c328-Name", + "id": "0x56198f005328-Name", "source": "text_buffer" }, { - "id": "0x562ce9511950-DeclarationConstruct", + "id": "0x56198f07a950-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x562ce9511950-SpecificationConstruct" + "SpecificationConstruct": "0x56198f07a950-SpecificationConstruct" }, { - "id": "0x562ce9511950-SpecificationConstruct", + "id": "0x56198f07a950-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x562ce9511950-Statement" + "Statement": "0x56198f07a950-Statement" }, { - "id": "0x562ce9511950-Statement", - "statement": "0x562ce9523910-TypeDeclarationStmt", + "id": "0x56198f07a950-Statement", + "statement": "0x56198f08c910-TypeDeclarationStmt", "source": "real :: x = 123.456" }, { - "id": "0x562ce9523910-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x562ce9523940-DeclarationTypeSpec", + "id": "0x56198f08c910-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x56198f08c940-DeclarationTypeSpec", "EntityDecl": [ - "0x562ce9511860-EntityDecl" + "0x56198f07a860-EntityDecl" ] }, { - "id": "0x562ce9523940-DeclarationTypeSpec", + "id": "0x56198f08c940-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x562ce9523940-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x56198f08c940-IntrinsicTypeSpec" }, { - "id": "0x562ce9523940-IntrinsicTypeSpec", + "id": "0x56198f08c940-IntrinsicTypeSpec", "variantKey": "Real", - "Real": "0x562ce9523940-Real" + "Real": "0x56198f08c940-Real" }, { - "id": "0x562ce9523940-Real" + "id": "0x56198f08c940-Real" }, { - "id": "0x562ce9511860-EntityDecl", - "Name": "0x562ce9511918-Name", - "Initialization": "0x562ce9511860-Initialization" + "id": "0x56198f07a860-EntityDecl", + "Name": "0x56198f07a918-Name", + "Initialization": "0x56198f07a860-Initialization" }, { - "id": "0x562ce9511918-Name", + "id": "0x56198f07a918-Name", "source": "x" }, { - "id": "0x562ce9511860-Initialization", + "id": "0x56198f07a860-Initialization", "variantKey": "Expr", - "Expr": "0x562ce9511770-Expr" + "Expr": "0x56198f07a770-Expr" }, { - "id": "0x562ce9511770-Expr", + "id": "0x56198f07a770-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce9511790-LiteralConstant" + "LiteralConstant": "0x56198f07a790-LiteralConstant" }, { - "id": "0x562ce9511790-LiteralConstant", + "id": "0x56198f07a790-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x562ce9511790-RealLiteralConstant" + "RealLiteralConstant": "0x56198f07a790-RealLiteralConstant" }, { - "id": "0x562ce9511790-RealLiteralConstant", - "real": "0x562ce9511790-Real" + "id": "0x56198f07a790-RealLiteralConstant", + "real": "0x56198f07a790-Real" }, { - "id": "0x562ce9511790-Real", + "id": "0x56198f07a790-Real", "source": "123.456" }, { - "id": "0x562ce9511c00-DeclarationConstruct", + "id": "0x56198f07ac00-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x562ce9511c00-SpecificationConstruct" + "SpecificationConstruct": "0x56198f07ac00-SpecificationConstruct" }, { - "id": "0x562ce9511c00-SpecificationConstruct", + "id": "0x56198f07ac00-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x562ce9511c00-Statement" + "Statement": "0x56198f07ac00-Statement" }, { - "id": "0x562ce9511c00-Statement", - "statement": "0x562ce9523c30-TypeDeclarationStmt", + "id": "0x56198f07ac00-Statement", + "statement": "0x56198f08cc30-TypeDeclarationStmt", "source": "integer :: val = 42" }, { - "id": "0x562ce9523c30-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x562ce9523c60-DeclarationTypeSpec", + "id": "0x56198f08cc30-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x56198f08cc60-DeclarationTypeSpec", "EntityDecl": [ - "0x562ce9511b10-EntityDecl" + "0x56198f07ab10-EntityDecl" ] }, { - "id": "0x562ce9523c60-DeclarationTypeSpec", + "id": "0x56198f08cc60-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x562ce9523c60-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x56198f08cc60-IntrinsicTypeSpec" }, { - "id": "0x562ce9523c60-IntrinsicTypeSpec", + "id": "0x56198f08cc60-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x562ce9523c60-IntegerTypeSpec" + "IntegerTypeSpec": "0x56198f08cc60-IntegerTypeSpec" }, { - "id": "0x562ce9523c60-IntegerTypeSpec" + "id": "0x56198f08cc60-IntegerTypeSpec" }, { - "id": "0x562ce9511b10-EntityDecl", - "Name": "0x562ce9511bc8-Name", - "Initialization": "0x562ce9511b10-Initialization" + "id": "0x56198f07ab10-EntityDecl", + "Name": "0x56198f07abc8-Name", + "Initialization": "0x56198f07ab10-Initialization" }, { - "id": "0x562ce9511bc8-Name", + "id": "0x56198f07abc8-Name", "source": "val" }, { - "id": "0x562ce9511b10-Initialization", + "id": "0x56198f07ab10-Initialization", "variantKey": "Expr", - "Expr": "0x562ce9511a20-Expr" + "Expr": "0x56198f07aa20-Expr" }, { - "id": "0x562ce9511a20-Expr", + "id": "0x56198f07aa20-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce9511a40-LiteralConstant" + "LiteralConstant": "0x56198f07aa40-LiteralConstant" }, { - "id": "0x562ce9511a40-LiteralConstant", + "id": "0x56198f07aa40-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x562ce9511a40-IntLiteralConstant" + "IntLiteralConstant": "0x56198f07aa40-IntLiteralConstant" }, { - "id": "0x562ce9511a40-IntLiteralConstant", + "id": "0x56198f07aa40-IntLiteralConstant", "CharBlock": "42" }, { - "id": "0x562ce94f3da0-DeclarationConstruct", + "id": "0x56198f05cda0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x562ce94f3da0-SpecificationConstruct" + "SpecificationConstruct": "0x56198f05cda0-SpecificationConstruct" }, { - "id": "0x562ce94f3da0-SpecificationConstruct", + "id": "0x56198f05cda0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x562ce94f3da0-Statement" + "Statement": "0x56198f05cda0-Statement" }, { - "id": "0x562ce94f3da0-Statement", - "statement": "0x562ce94f3db0-OtherSpecificationStmt", + "id": "0x56198f05cda0-Statement", + "statement": "0x56198f05cdb0-OtherSpecificationStmt", "source": "namelist /my_namelist/ val, x" }, { - "id": "0x562ce94f3db0-OtherSpecificationStmt", + "id": "0x56198f05cdb0-OtherSpecificationStmt", "variantKey": "NamelistStmt", - "NamelistStmt": "0x562ce9525bc0-NamelistStmt" + "NamelistStmt": "0x56198f08ebc0-NamelistStmt" }, { - "id": "0x562ce9525bc0-NamelistStmt", + "id": "0x56198f08ebc0-NamelistStmt", "Group": [ - "0x562ce9524860-Group" + "0x56198f08d860-Group" ] }, { - "id": "0x562ce9524860-Group", + "id": "0x56198f08d860-Group", "Name": [ - "0x562ce9525970-Name", - "0x562ce9525940-Name" + "0x56198f08e970-Name", + "0x56198f08e940-Name" ] }, { - "id": "0x562ce9524878-Name", + "id": "0x56198f08d878-Name", "source": "my_namelist" }, { - "id": "0x562ce9525970-Name", + "id": "0x56198f08e970-Name", "source": "val" }, { - "id": "0x562ce9525940-Name", + "id": "0x56198f08e940-Name", "source": "x" }, { - "id": "0x562ce9524658-ExecutionPart", + "id": "0x56198f08d658-ExecutionPart", "ExecutionPartConstruct": [ - "0x562ce95129b0-ExecutionPartConstruct", - "0x562ce9515a90-ExecutionPartConstruct", - "0x562ce95149c0-ExecutionPartConstruct", - "0x562ce9517490-ExecutionPartConstruct", - "0x562ce9522fe0-ExecutionPartConstruct", - "0x562ce9515510-ExecutionPartConstruct", - "0x562ce9519160-ExecutionPartConstruct", - "0x562ce9518210-ExecutionPartConstruct", - "0x562ce9519850-ExecutionPartConstruct", - "0x562ce9518270-ExecutionPartConstruct", - "0x562ce951a9f0-ExecutionPartConstruct", - "0x562ce9518f50-ExecutionPartConstruct", - "0x562ce952b8d0-ExecutionPartConstruct", - "0x562ce95154b0-ExecutionPartConstruct", - "0x562ce9518490-ExecutionPartConstruct", - "0x562ce9517e80-ExecutionPartConstruct", - "0x562ce95142f0-ExecutionPartConstruct", - "0x562ce9518430-ExecutionPartConstruct", - "0x562ce951a6f0-ExecutionPartConstruct", - "0x562ce952c1e0-ExecutionPartConstruct" + "0x56198f07b9b0-ExecutionPartConstruct", + "0x56198f07ea90-ExecutionPartConstruct", + "0x56198f07d9c0-ExecutionPartConstruct", + "0x56198f080490-ExecutionPartConstruct", + "0x56198f08bfe0-ExecutionPartConstruct", + "0x56198f07e510-ExecutionPartConstruct", + "0x56198f082160-ExecutionPartConstruct", + "0x56198f081210-ExecutionPartConstruct", + "0x56198f082850-ExecutionPartConstruct", + "0x56198f081270-ExecutionPartConstruct", + "0x56198f0839f0-ExecutionPartConstruct", + "0x56198f081f50-ExecutionPartConstruct", + "0x56198f0948d0-ExecutionPartConstruct", + "0x56198f07e4b0-ExecutionPartConstruct", + "0x56198f081490-ExecutionPartConstruct", + "0x56198f080e80-ExecutionPartConstruct", + "0x56198f07d2f0-ExecutionPartConstruct", + "0x56198f081430-ExecutionPartConstruct", + "0x56198f0836f0-ExecutionPartConstruct", + "0x56198f0951e0-ExecutionPartConstruct" ] }, { - "id": "0x562ce9524658-ExecutionPartConstruct" + "id": "0x56198f08d658-ExecutionPartConstruct" }, { - "id": "0x562ce95129b0-ExecutionPartConstruct", + "id": "0x56198f07b9b0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x562ce95129b0-ExecutableConstruct" + "ExecutableConstruct": "0x56198f07b9b0-ExecutableConstruct" }, { - "id": "0x562ce95129b0-ExecutableConstruct", + "id": "0x56198f07b9b0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x562ce95129b0-Statement" + "Statement": "0x56198f07b9b0-Statement" }, { - "id": "0x562ce95129b0-Statement", - "statement": "0x562ce95129c0-ActionStmt", + "id": "0x56198f07b9b0-Statement", + "statement": "0x56198f07b9c0-ActionStmt", "source": "open(newunit=u_seq, file='seq.txt', status='replace', action='readwrite')" }, { - "id": "0x562ce95129c0-ActionStmt", + "id": "0x56198f07b9c0-ActionStmt", "variantKey": "OpenStmt", - "OpenStmt": "0x562ce95259c0-OpenStmt" + "OpenStmt": "0x56198f08e9c0-OpenStmt" }, { - "id": "0x562ce95259c0-OpenStmt", + "id": "0x56198f08e9c0-OpenStmt", "ConnectSpec": [ - "0x562ce951d160-ConnectSpec", - "0x562ce951d060-ConnectSpec", - "0x562ce951cc60-ConnectSpec", - "0x562ce951cba0-ConnectSpec" + "0x56198f086160-ConnectSpec", + "0x56198f086060-ConnectSpec", + "0x56198f085c60-ConnectSpec", + "0x56198f085ba0-ConnectSpec" ] }, { - "id": "0x562ce951d160-ConnectSpec", + "id": "0x56198f086160-ConnectSpec", "variantKey": "Newunit", - "Newunit": "0x562ce951d160-Newunit" + "Newunit": "0x56198f086160-Newunit" }, { - "id": "0x562ce951d160-Newunit", - "Expr": "0x562ce951d160-Variable" + "id": "0x56198f086160-Newunit", + "Variable": "0x56198f086160-Variable" }, { - "id": "0x562ce951d160-Variable", + "id": "0x56198f086160-Variable", "variantKey": "Designator", - "Designator": "0x562ce9514e60-Designator" + "Designator": "0x56198f07de60-Designator" }, { - "id": "0x562ce9514e60-Designator", + "id": "0x56198f07de60-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce9514e70-DataRef" + "DataRef": "0x56198f07de70-DataRef" }, { - "id": "0x562ce9514e70-DataRef", + "id": "0x56198f07de70-DataRef", "variantKey": "Name", - "Name": "0x562ce9514e70-Name" + "Name": "0x56198f07de70-Name" }, { - "id": "0x562ce9514e70-Name", + "id": "0x56198f07de70-Name", "source": "u_seq" }, { - "id": "0x562ce951d060-ConnectSpec", + "id": "0x56198f086060-ConnectSpec", "variantKey": "Expr", - "Expr": "0x562ce95125c0-Expr" + "Expr": "0x56198f07b5c0-Expr" }, { - "id": "0x562ce95125c0-Expr", + "id": "0x56198f07b5c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce95125e0-LiteralConstant" + "LiteralConstant": "0x56198f07b5e0-LiteralConstant" }, { - "id": "0x562ce95125e0-LiteralConstant", + "id": "0x56198f07b5e0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x562ce95125e0-CharLiteralConstant" + "CharLiteralConstant": "0x56198f07b5e0-CharLiteralConstant" }, { - "id": "0x562ce95125e0-CharLiteralConstant", + "id": "0x56198f07b5e0-CharLiteralConstant", "string": "seq.txt" }, { - "id": "0x562ce951cc60-ConnectSpec", + "id": "0x56198f085c60-ConnectSpec", "variantKey": "StatusExpr", - "StatusExpr": "0x562ce951cc60-StatusExpr" + "StatusExpr": "0x56198f085c60-StatusExpr" }, { - "id": "0x562ce951cc60-StatusExpr", - "Expr": "0x562ce9513420-Expr" + "id": "0x56198f085c60-StatusExpr", + "Expr": "0x56198f07c420-Expr" }, { - "id": "0x562ce9513420-Expr", + "id": "0x56198f07c420-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce9513440-LiteralConstant" + "LiteralConstant": "0x56198f07c440-LiteralConstant" }, { - "id": "0x562ce9513440-LiteralConstant", + "id": "0x56198f07c440-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x562ce9513440-CharLiteralConstant" + "CharLiteralConstant": "0x56198f07c440-CharLiteralConstant" }, { - "id": "0x562ce9513440-CharLiteralConstant", + "id": "0x56198f07c440-CharLiteralConstant", "string": "replace" }, { - "id": "0x562ce951cba0-ConnectSpec", + "id": "0x56198f085ba0-ConnectSpec", "variantKey": "CharExpr", - "CharExpr": "0x562ce951cba0-CharExpr" + "CharExpr": "0x56198f085ba0-CharExpr" }, { - "id": "0x562ce951cba0-CharExpr", - "Kind": "0x562ce951cba8-Kind", - "Expr": "0x562ce9512fa0-Expr" + "id": "0x56198f085ba0-CharExpr", + "Kind": "0x56198f085ba8-Kind", + "Expr": "0x56198f07bfa0-Expr" }, { - "id": "0x562ce951cba8-Kind", + "id": "0x56198f085ba8-Kind", "disambiguation": "Fortran::parser::ConnectSpec::CharExpr::Kind", "value": "Action" }, { - "id": "0x562ce9512fa0-Expr", + "id": "0x56198f07bfa0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce9512fc0-LiteralConstant" + "LiteralConstant": "0x56198f07bfc0-LiteralConstant" }, { - "id": "0x562ce9512fc0-LiteralConstant", + "id": "0x56198f07bfc0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x562ce9512fc0-CharLiteralConstant" + "CharLiteralConstant": "0x56198f07bfc0-CharLiteralConstant" }, { - "id": "0x562ce9512fc0-CharLiteralConstant", + "id": "0x56198f07bfc0-CharLiteralConstant", "string": "readwrite" }, { - "id": "0x562ce9515a90-ExecutionPartConstruct", + "id": "0x56198f07ea90-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x562ce9515a90-ExecutableConstruct" + "ExecutableConstruct": "0x56198f07ea90-ExecutableConstruct" }, { - "id": "0x562ce9515a90-ExecutableConstruct", + "id": "0x56198f07ea90-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x562ce9515a90-Statement" + "Statement": "0x56198f07ea90-Statement" }, { - "id": "0x562ce9515a90-Statement", - "statement": "0x562ce9515aa0-ActionStmt", + "id": "0x56198f07ea90-Statement", + "statement": "0x56198f07eaa0-ActionStmt", "source": "open(newunit=u_dir, file='dir.bin', status='replace', access='direct', recl=16)" }, { - "id": "0x562ce9515aa0-ActionStmt", + "id": "0x56198f07eaa0-ActionStmt", "variantKey": "OpenStmt", - "OpenStmt": "0x562ce9525890-OpenStmt" + "OpenStmt": "0x56198f08e890-OpenStmt" }, { - "id": "0x562ce9525890-OpenStmt", + "id": "0x56198f08e890-OpenStmt", "ConnectSpec": [ - "0x562ce951c210-ConnectSpec", - "0x562ce9525a20-ConnectSpec", - "0x562ce9525a80-ConnectSpec", - "0x562ce9525ac0-ConnectSpec", - "0x562ce951c440-ConnectSpec" + "0x56198f085210-ConnectSpec", + "0x56198f08ea20-ConnectSpec", + "0x56198f08ea80-ConnectSpec", + "0x56198f08eac0-ConnectSpec", + "0x56198f085440-ConnectSpec" ] }, { - "id": "0x562ce951c210-ConnectSpec", + "id": "0x56198f085210-ConnectSpec", "variantKey": "Newunit", - "Newunit": "0x562ce951c210-Newunit" + "Newunit": "0x56198f085210-Newunit" }, { - "id": "0x562ce951c210-Newunit", - "Expr": "0x562ce951c210-Variable" + "id": "0x56198f085210-Newunit", + "Variable": "0x56198f085210-Variable" }, { - "id": "0x562ce951c210-Variable", + "id": "0x56198f085210-Variable", "variantKey": "Designator", - "Designator": "0x562ce95120e0-Designator" + "Designator": "0x56198f07b0e0-Designator" }, { - "id": "0x562ce95120e0-Designator", + "id": "0x56198f07b0e0-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce95120f0-DataRef" + "DataRef": "0x56198f07b0f0-DataRef" }, { - "id": "0x562ce95120f0-DataRef", + "id": "0x56198f07b0f0-DataRef", "variantKey": "Name", - "Name": "0x562ce95120f0-Name" + "Name": "0x56198f07b0f0-Name" }, { - "id": "0x562ce95120f0-Name", + "id": "0x56198f07b0f0-Name", "source": "u_dir" }, { - "id": "0x562ce9525a20-ConnectSpec", + "id": "0x56198f08ea20-ConnectSpec", "variantKey": "Expr", - "Expr": "0x562ce95152b0-Expr" + "Expr": "0x56198f07e2b0-Expr" }, { - "id": "0x562ce95152b0-Expr", + "id": "0x56198f07e2b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce95152d0-LiteralConstant" + "LiteralConstant": "0x56198f07e2d0-LiteralConstant" }, { - "id": "0x562ce95152d0-LiteralConstant", + "id": "0x56198f07e2d0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x562ce95152d0-CharLiteralConstant" + "CharLiteralConstant": "0x56198f07e2d0-CharLiteralConstant" }, { - "id": "0x562ce95152d0-CharLiteralConstant", + "id": "0x56198f07e2d0-CharLiteralConstant", "string": "dir.bin" }, { - "id": "0x562ce9525a80-ConnectSpec", + "id": "0x56198f08ea80-ConnectSpec", "variantKey": "StatusExpr", - "StatusExpr": "0x562ce9525a80-StatusExpr" + "StatusExpr": "0x56198f08ea80-StatusExpr" }, { - "id": "0x562ce9525a80-StatusExpr", - "Expr": "0x562ce95151d0-Expr" + "id": "0x56198f08ea80-StatusExpr", + "Expr": "0x56198f07e1d0-Expr" }, { - "id": "0x562ce95151d0-Expr", + "id": "0x56198f07e1d0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce95151f0-LiteralConstant" + "LiteralConstant": "0x56198f07e1f0-LiteralConstant" }, { - "id": "0x562ce95151f0-LiteralConstant", + "id": "0x56198f07e1f0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x562ce95151f0-CharLiteralConstant" + "CharLiteralConstant": "0x56198f07e1f0-CharLiteralConstant" }, { - "id": "0x562ce95151f0-CharLiteralConstant", + "id": "0x56198f07e1f0-CharLiteralConstant", "string": "replace" }, { - "id": "0x562ce9525ac0-ConnectSpec", + "id": "0x56198f08eac0-ConnectSpec", "variantKey": "CharExpr", - "CharExpr": "0x562ce9525ac0-CharExpr" + "CharExpr": "0x56198f08eac0-CharExpr" }, { - "id": "0x562ce9525ac0-CharExpr", - "Kind": "0x562ce9525ac8-Kind", - "Expr": "0x562ce95150f0-Expr" + "id": "0x56198f08eac0-CharExpr", + "Kind": "0x56198f08eac8-Kind", + "Expr": "0x56198f07e0f0-Expr" }, { - "id": "0x562ce9525ac8-Kind", + "id": "0x56198f08eac8-Kind", "disambiguation": "Fortran::parser::ConnectSpec::CharExpr::Kind", "value": "Access" }, { - "id": "0x562ce95150f0-Expr", + "id": "0x56198f07e0f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce9515110-LiteralConstant" + "LiteralConstant": "0x56198f07e110-LiteralConstant" }, { - "id": "0x562ce9515110-LiteralConstant", + "id": "0x56198f07e110-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x562ce9515110-CharLiteralConstant" + "CharLiteralConstant": "0x56198f07e110-CharLiteralConstant" }, { - "id": "0x562ce9515110-CharLiteralConstant", + "id": "0x56198f07e110-CharLiteralConstant", "string": "direct" }, { - "id": "0x562ce951c440-ConnectSpec", + "id": "0x56198f085440-ConnectSpec", "variantKey": "Recl", - "Recl": "0x562ce951c440-Recl" + "Recl": "0x56198f085440-Recl" }, { - "id": "0x562ce951c440-Recl", - "Expr": "0x562ce9515010-Expr" + "id": "0x56198f085440-Recl", + "Expr": "0x56198f07e010-Expr" }, { - "id": "0x562ce9515010-Expr", + "id": "0x56198f07e010-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce9515030-LiteralConstant" + "LiteralConstant": "0x56198f07e030-LiteralConstant" }, { - "id": "0x562ce9515030-LiteralConstant", + "id": "0x56198f07e030-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x562ce9515030-IntLiteralConstant" + "IntLiteralConstant": "0x56198f07e030-IntLiteralConstant" }, { - "id": "0x562ce9515030-IntLiteralConstant", + "id": "0x56198f07e030-IntLiteralConstant", "CharBlock": "16" }, { - "id": "0x562ce95149c0-ExecutionPartConstruct", + "id": "0x56198f07d9c0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x562ce95149c0-ExecutableConstruct" + "ExecutableConstruct": "0x56198f07d9c0-ExecutableConstruct" }, { - "id": "0x562ce95149c0-ExecutableConstruct", + "id": "0x56198f07d9c0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x562ce95149c0-Statement" + "Statement": "0x56198f07d9c0-Statement" }, { - "id": "0x562ce95149c0-Statement", - "statement": "0x562ce95149d0-ActionStmt", + "id": "0x56198f07d9c0-Statement", + "statement": "0x56198f07d9d0-ActionStmt", "source": "open(newunit=u_stream, file='stream.bin', status='replace', access='stream')" }, { - "id": "0x562ce95149d0-ActionStmt", + "id": "0x56198f07d9d0-ActionStmt", "variantKey": "OpenStmt", - "OpenStmt": "0x562ce951b9c0-OpenStmt" + "OpenStmt": "0x56198f0849c0-OpenStmt" }, { - "id": "0x562ce951b9c0-OpenStmt", + "id": "0x56198f0849c0-OpenStmt", "ConnectSpec": [ - "0x562ce951c360-ConnectSpec", - "0x562ce951c2c0-ConnectSpec", - "0x562ce951c280-ConnectSpec", - "0x562ce951c300-ConnectSpec" + "0x56198f085360-ConnectSpec", + "0x56198f0852c0-ConnectSpec", + "0x56198f085280-ConnectSpec", + "0x56198f085300-ConnectSpec" ] }, { - "id": "0x562ce951c360-ConnectSpec", + "id": "0x56198f085360-ConnectSpec", "variantKey": "Newunit", - "Newunit": "0x562ce951c360-Newunit" + "Newunit": "0x56198f085360-Newunit" }, { - "id": "0x562ce951c360-Newunit", - "Expr": "0x562ce951c360-Variable" + "id": "0x56198f085360-Newunit", + "Variable": "0x56198f085360-Variable" }, { - "id": "0x562ce951c360-Variable", + "id": "0x56198f085360-Variable", "variantKey": "Designator", - "Designator": "0x562ce9513190-Designator" + "Designator": "0x56198f07c190-Designator" }, { - "id": "0x562ce9513190-Designator", + "id": "0x56198f07c190-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce95131a0-DataRef" + "DataRef": "0x56198f07c1a0-DataRef" }, { - "id": "0x562ce95131a0-DataRef", + "id": "0x56198f07c1a0-DataRef", "variantKey": "Name", - "Name": "0x562ce95131a0-Name" + "Name": "0x56198f07c1a0-Name" }, { - "id": "0x562ce95131a0-Name", + "id": "0x56198f07c1a0-Name", "source": "u_stream" }, { - "id": "0x562ce951c2c0-ConnectSpec", + "id": "0x56198f0852c0-ConnectSpec", "variantKey": "Expr", - "Expr": "0x562ce9515df0-Expr" + "Expr": "0x56198f07edf0-Expr" }, { - "id": "0x562ce9515df0-Expr", + "id": "0x56198f07edf0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce9515e10-LiteralConstant" + "LiteralConstant": "0x56198f07ee10-LiteralConstant" }, { - "id": "0x562ce9515e10-LiteralConstant", + "id": "0x56198f07ee10-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x562ce9515e10-CharLiteralConstant" + "CharLiteralConstant": "0x56198f07ee10-CharLiteralConstant" }, { - "id": "0x562ce9515e10-CharLiteralConstant", + "id": "0x56198f07ee10-CharLiteralConstant", "string": "stream.bin" }, { - "id": "0x562ce951c280-ConnectSpec", + "id": "0x56198f085280-ConnectSpec", "variantKey": "StatusExpr", - "StatusExpr": "0x562ce951c280-StatusExpr" + "StatusExpr": "0x56198f085280-StatusExpr" }, { - "id": "0x562ce951c280-StatusExpr", - "Expr": "0x562ce9515d10-Expr" + "id": "0x56198f085280-StatusExpr", + "Expr": "0x56198f07ed10-Expr" }, { - "id": "0x562ce9515d10-Expr", + "id": "0x56198f07ed10-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce9515d30-LiteralConstant" + "LiteralConstant": "0x56198f07ed30-LiteralConstant" }, { - "id": "0x562ce9515d30-LiteralConstant", + "id": "0x56198f07ed30-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x562ce9515d30-CharLiteralConstant" + "CharLiteralConstant": "0x56198f07ed30-CharLiteralConstant" }, { - "id": "0x562ce9515d30-CharLiteralConstant", + "id": "0x56198f07ed30-CharLiteralConstant", "string": "replace" }, { - "id": "0x562ce951c300-ConnectSpec", + "id": "0x56198f085300-ConnectSpec", "variantKey": "CharExpr", - "CharExpr": "0x562ce951c300-CharExpr" + "CharExpr": "0x56198f085300-CharExpr" }, { - "id": "0x562ce951c300-CharExpr", - "Kind": "0x562ce951c308-Kind", - "Expr": "0x562ce9515c30-Expr" + "id": "0x56198f085300-CharExpr", + "Kind": "0x56198f085308-Kind", + "Expr": "0x56198f07ec30-Expr" }, { - "id": "0x562ce951c308-Kind", + "id": "0x56198f085308-Kind", "disambiguation": "Fortran::parser::ConnectSpec::CharExpr::Kind", "value": "Access" }, { - "id": "0x562ce9515c30-Expr", + "id": "0x56198f07ec30-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce9515c50-LiteralConstant" + "LiteralConstant": "0x56198f07ec50-LiteralConstant" }, { - "id": "0x562ce9515c50-LiteralConstant", + "id": "0x56198f07ec50-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x562ce9515c50-CharLiteralConstant" + "CharLiteralConstant": "0x56198f07ec50-CharLiteralConstant" }, { - "id": "0x562ce9515c50-CharLiteralConstant", + "id": "0x56198f07ec50-CharLiteralConstant", "string": "stream" }, { - "id": "0x562ce9517490-ExecutionPartConstruct", + "id": "0x56198f080490-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x562ce9517490-ExecutableConstruct" + "ExecutableConstruct": "0x56198f080490-ExecutableConstruct" }, { - "id": "0x562ce9517490-ExecutableConstruct", + "id": "0x56198f080490-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x562ce9517490-Statement" + "Statement": "0x56198f080490-Statement" }, { - "id": "0x562ce9517490-Statement", - "statement": "0x562ce95174a0-ActionStmt", + "id": "0x56198f080490-Statement", + "statement": "0x56198f0804a0-ActionStmt", "source": "write(unit = u_seq, fmt = *, decimal = 'comma', sign = 'plus', round = 'up', delim = 'quote', iostat = ios, iomsg = io_message)" }, { - "id": "0x562ce95174a0-ActionStmt", + "id": "0x56198f0804a0-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x562ce95172c0-WriteStmt" + "WriteStmt": "0x56198f0802c0-WriteStmt" }, { - "id": "0x562ce95172c0-WriteStmt", - "controls": [ - "0x562ce9516ca0-IoControlSpec", - "0x562ce9515ee0-IoControlSpec", - "0x562ce9515fe0-IoControlSpec", - "0x562ce95161c0-IoControlSpec", - "0x562ce95163a0-IoControlSpec", - "0x562ce9516580-IoControlSpec", - "0x562ce9516750-IoControlSpec", - "0x562ce9516ba0-IoControlSpec" - ], - "items": [] + "id": "0x56198f0802c0-WriteStmt" }, { - "id": "0x562ce9516ca0-IoControlSpec", + "id": "0x56198f07fca0-IoControlSpec", "variantKey": "IoUnit", - "IoUnit": "0x562ce9516ca0-IoUnit" + "IoUnit": "0x56198f07fca0-IoUnit" }, { - "id": "0x562ce9516ca0-IoUnit", + "id": "0x56198f07fca0-IoUnit", "variantKey": "Expr", - "Expr": "0x562ce954fc40-Expr" + "Expr": "0x56198f0b8c40-Expr" }, { - "id": "0x562ce954fc40-Expr", + "id": "0x56198f0b8c40-Expr", "variantKey": "Designator", - "Designator": "0x562ce94e54d0-Designator" + "Designator": "0x56198f04e4d0-Designator" }, { - "id": "0x562ce94e54d0-Designator", + "id": "0x56198f04e4d0-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce94e54e0-DataRef" + "DataRef": "0x56198f04e4e0-DataRef" }, { - "id": "0x562ce94e54e0-DataRef", + "id": "0x56198f04e4e0-DataRef", "variantKey": "Name", - "Name": "0x562ce94e54e0-Name" + "Name": "0x56198f04e4e0-Name" }, { - "id": "0x562ce94e54e0-Name", + "id": "0x56198f04e4e0-Name", "source": "u_seq" }, { - "id": "0x562ce9515ee0-IoControlSpec", + "id": "0x56198f07eee0-IoControlSpec", "variantKey": "Format", - "Format": "0x562ce9515ee0-Format" + "Format": "0x56198f07eee0-Format" }, { - "id": "0x562ce9515ee0-Format", + "id": "0x56198f07eee0-Format", "variantKey": "Star", - "Star": "0x562ce9515ee0-Star" + "Star": "0x56198f07eee0-Star" }, { - "id": "0x562ce9515ee0-Star" + "id": "0x56198f07eee0-Star" }, { - "id": "0x562ce9515fe0-IoControlSpec", + "id": "0x56198f07efe0-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x562ce9515fe0-CharExpr" + "CharExpr": "0x56198f07efe0-CharExpr" }, { - "id": "0x562ce9515fe0-CharExpr", - "Kind": "0x562ce9515fe8-Kind", - "Expr": "0x562ce9512c30-Expr" + "id": "0x56198f07efe0-CharExpr", + "Kind": "0x56198f07efe8-Kind", + "Expr": "0x56198f07bc30-Expr" }, { - "id": "0x562ce9515fe8-Kind", + "id": "0x56198f07efe8-Kind", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Decimal" }, { - "id": "0x562ce9512c30-Expr", + "id": "0x56198f07bc30-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce9512c50-LiteralConstant" + "LiteralConstant": "0x56198f07bc50-LiteralConstant" }, { - "id": "0x562ce9512c50-LiteralConstant", + "id": "0x56198f07bc50-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x562ce9512c50-CharLiteralConstant" + "CharLiteralConstant": "0x56198f07bc50-CharLiteralConstant" }, { - "id": "0x562ce9512c50-CharLiteralConstant", + "id": "0x56198f07bc50-CharLiteralConstant", "string": "comma" }, { - "id": "0x562ce95161c0-IoControlSpec", + "id": "0x56198f07f1c0-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x562ce95161c0-CharExpr" + "CharExpr": "0x56198f07f1c0-CharExpr" }, { - "id": "0x562ce95161c0-CharExpr", - "Kind": "0x562ce95161c8-Kind", - "Expr": "0x562ce95160d0-Expr" + "id": "0x56198f07f1c0-CharExpr", + "Kind": "0x56198f07f1c8-Kind", + "Expr": "0x56198f07f0d0-Expr" }, { - "id": "0x562ce95161c8-Kind", + "id": "0x56198f07f1c8-Kind", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Sign" }, { - "id": "0x562ce95160d0-Expr", + "id": "0x56198f07f0d0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce95160f0-LiteralConstant" + "LiteralConstant": "0x56198f07f0f0-LiteralConstant" }, { - "id": "0x562ce95160f0-LiteralConstant", + "id": "0x56198f07f0f0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x562ce95160f0-CharLiteralConstant" + "CharLiteralConstant": "0x56198f07f0f0-CharLiteralConstant" }, { - "id": "0x562ce95160f0-CharLiteralConstant", + "id": "0x56198f07f0f0-CharLiteralConstant", "string": "plus" }, { - "id": "0x562ce95163a0-IoControlSpec", + "id": "0x56198f07f3a0-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x562ce95163a0-CharExpr" + "CharExpr": "0x56198f07f3a0-CharExpr" }, { - "id": "0x562ce95163a0-CharExpr", - "Kind": "0x562ce95163a8-Kind", - "Expr": "0x562ce95162b0-Expr" + "id": "0x56198f07f3a0-CharExpr", + "Kind": "0x56198f07f3a8-Kind", + "Expr": "0x56198f07f2b0-Expr" }, { - "id": "0x562ce95163a8-Kind", + "id": "0x56198f07f3a8-Kind", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Round" }, { - "id": "0x562ce95162b0-Expr", + "id": "0x56198f07f2b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce95162d0-LiteralConstant" + "LiteralConstant": "0x56198f07f2d0-LiteralConstant" }, { - "id": "0x562ce95162d0-LiteralConstant", + "id": "0x56198f07f2d0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x562ce95162d0-CharLiteralConstant" + "CharLiteralConstant": "0x56198f07f2d0-CharLiteralConstant" }, { - "id": "0x562ce95162d0-CharLiteralConstant", + "id": "0x56198f07f2d0-CharLiteralConstant", "string": "up" }, { - "id": "0x562ce9516580-IoControlSpec", + "id": "0x56198f07f580-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x562ce9516580-CharExpr" + "CharExpr": "0x56198f07f580-CharExpr" }, { - "id": "0x562ce9516580-CharExpr", - "Kind": "0x562ce9516588-Kind", - "Expr": "0x562ce9516490-Expr" + "id": "0x56198f07f580-CharExpr", + "Kind": "0x56198f07f588-Kind", + "Expr": "0x56198f07f490-Expr" }, { - "id": "0x562ce9516588-Kind", + "id": "0x56198f07f588-Kind", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Delim" }, { - "id": "0x562ce9516490-Expr", + "id": "0x56198f07f490-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce95164b0-LiteralConstant" + "LiteralConstant": "0x56198f07f4b0-LiteralConstant" }, { - "id": "0x562ce95164b0-LiteralConstant", + "id": "0x56198f07f4b0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x562ce95164b0-CharLiteralConstant" + "CharLiteralConstant": "0x56198f07f4b0-CharLiteralConstant" }, { - "id": "0x562ce95164b0-CharLiteralConstant", + "id": "0x56198f07f4b0-CharLiteralConstant", "string": "quote" }, { - "id": "0x562ce9516750-IoControlSpec", + "id": "0x56198f07f750-IoControlSpec", "variantKey": "StatVariable", - "StatVariable": "0x562ce9516750-StatVariable" + "StatVariable": "0x56198f07f750-StatVariable" }, { - "id": "0x562ce9516750-StatVariable", - "Expr": "0x562ce9516750-Variable" + "id": "0x56198f07f750-StatVariable", + "Variable": "0x56198f07f750-Variable" }, { - "id": "0x562ce9516750-Variable", + "id": "0x56198f07f750-Variable", "variantKey": "Designator", - "Designator": "0x562ce9516670-Designator" + "Designator": "0x56198f07f670-Designator" }, { - "id": "0x562ce9516670-Designator", + "id": "0x56198f07f670-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce9516680-DataRef" + "DataRef": "0x56198f07f680-DataRef" }, { - "id": "0x562ce9516680-DataRef", + "id": "0x56198f07f680-DataRef", "variantKey": "Name", - "Name": "0x562ce9516680-Name" + "Name": "0x56198f07f680-Name" }, { - "id": "0x562ce9516680-Name", + "id": "0x56198f07f680-Name", "source": "ios" }, { - "id": "0x562ce9516ba0-IoControlSpec", + "id": "0x56198f07fba0-IoControlSpec", "variantKey": "MsgVariable", - "MsgVariable": "0x562ce9516ba0-MsgVariable" + "MsgVariable": "0x56198f07fba0-MsgVariable" }, { - "id": "0x562ce9516ba0-MsgVariable", - "Expr": "0x562ce9516ba0-Variable" + "id": "0x56198f07fba0-MsgVariable", + "Variable": "0x56198f07fba0-Variable" }, { - "id": "0x562ce9516ba0-Variable", + "id": "0x56198f07fba0-Variable", "variantKey": "Designator", - "Designator": "0x562ce9516ac0-Designator" + "Designator": "0x56198f07fac0-Designator" }, { - "id": "0x562ce9516ac0-Designator", + "id": "0x56198f07fac0-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce9516ad0-DataRef" + "DataRef": "0x56198f07fad0-DataRef" }, { - "id": "0x562ce9516ad0-DataRef", + "id": "0x56198f07fad0-DataRef", "variantKey": "Name", - "Name": "0x562ce9516ad0-Name" + "Name": "0x56198f07fad0-Name" }, { - "id": "0x562ce9516ad0-Name", + "id": "0x56198f07fad0-Name", "source": "io_message" }, { - "id": "0x562ce9522fe0-ExecutionPartConstruct", + "id": "0x56198f08bfe0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x562ce9522fe0-ExecutableConstruct" + "ExecutableConstruct": "0x56198f08bfe0-ExecutableConstruct" }, { - "id": "0x562ce9522fe0-ExecutableConstruct", + "id": "0x56198f08bfe0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x562ce9522fe0-Statement" + "Statement": "0x56198f08bfe0-Statement" }, { - "id": "0x562ce9522fe0-Statement", - "statement": "0x562ce9522ff0-ActionStmt", + "id": "0x56198f08bfe0-Statement", + "statement": "0x56198f08bff0-ActionStmt", "source": "write(unit = u_seq, nml = my_namelist, iostat = ios)" }, { - "id": "0x562ce9522ff0-ActionStmt", + "id": "0x56198f08bff0-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x562ce9517a80-WriteStmt" + "WriteStmt": "0x56198f080a80-WriteStmt" }, { - "id": "0x562ce9517a80-WriteStmt", - "controls": [ - "0x562ce9517990-IoControlSpec", - "0x562ce9517790-IoControlSpec", - "0x562ce9517890-IoControlSpec" - ], - "items": [] + "id": "0x56198f080a80-WriteStmt" }, { - "id": "0x562ce9517990-IoControlSpec", + "id": "0x56198f080990-IoControlSpec", "variantKey": "IoUnit", - "IoUnit": "0x562ce9517990-IoUnit" + "IoUnit": "0x56198f080990-IoUnit" }, { - "id": "0x562ce9517990-IoUnit", + "id": "0x56198f080990-IoUnit", "variantKey": "Expr", - "Expr": "0x562ce95ccad0-Expr" + "Expr": "0x56198f135ad0-Expr" }, { - "id": "0x562ce95ccad0-Expr", + "id": "0x56198f135ad0-Expr", "variantKey": "Designator", - "Designator": "0x562ce9512d10-Designator" + "Designator": "0x56198f07bd10-Designator" }, { - "id": "0x562ce9512d10-Designator", + "id": "0x56198f07bd10-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce9512d20-DataRef" + "DataRef": "0x56198f07bd20-DataRef" }, { - "id": "0x562ce9512d20-DataRef", + "id": "0x56198f07bd20-DataRef", "variantKey": "Name", - "Name": "0x562ce9512d20-Name" + "Name": "0x56198f07bd20-Name" }, { - "id": "0x562ce9512d20-Name", + "id": "0x56198f07bd20-Name", "source": "u_seq" }, { - "id": "0x562ce9517790-IoControlSpec", + "id": "0x56198f080790-IoControlSpec", "variantKey": "Name", - "Name": "0x562ce9517790-Name" + "Name": "0x56198f080790-Name" }, { - "id": "0x562ce9517790-Name", + "id": "0x56198f080790-Name", "source": "my_namelist" }, { - "id": "0x562ce9517890-IoControlSpec", + "id": "0x56198f080890-IoControlSpec", "variantKey": "StatVariable", - "StatVariable": "0x562ce9517890-StatVariable" + "StatVariable": "0x56198f080890-StatVariable" }, { - "id": "0x562ce9517890-StatVariable", - "Expr": "0x562ce9517890-Variable" + "id": "0x56198f080890-StatVariable", + "Variable": "0x56198f080890-Variable" }, { - "id": "0x562ce9517890-Variable", + "id": "0x56198f080890-Variable", "variantKey": "Designator", - "Designator": "0x562ce9522f70-Designator" + "Designator": "0x56198f08bf70-Designator" }, { - "id": "0x562ce9522f70-Designator", + "id": "0x56198f08bf70-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce9522f80-DataRef" + "DataRef": "0x56198f08bf80-DataRef" }, { - "id": "0x562ce9522f80-DataRef", + "id": "0x56198f08bf80-DataRef", "variantKey": "Name", - "Name": "0x562ce9522f80-Name" + "Name": "0x56198f08bf80-Name" }, { - "id": "0x562ce9522f80-Name", + "id": "0x56198f08bf80-Name", "source": "ios" }, { - "id": "0x562ce9515510-ExecutionPartConstruct", + "id": "0x56198f07e510-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x562ce9515510-ExecutableConstruct" + "ExecutableConstruct": "0x56198f07e510-ExecutableConstruct" }, { - "id": "0x562ce9515510-ExecutableConstruct", + "id": "0x56198f07e510-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x562ce9515510-Statement" + "Statement": "0x56198f07e510-Statement" }, { - "id": "0x562ce9515510-Statement", - "statement": "0x562ce9515520-ActionStmt", + "id": "0x56198f07e510-Statement", + "statement": "0x56198f07e520-ActionStmt", "source": "rewind(u_seq)" }, { - "id": "0x562ce9515520-ActionStmt", + "id": "0x56198f07e520-ActionStmt", "variantKey": "RewindStmt", - "RewindStmt": "0x562ce951bd30-RewindStmt" + "RewindStmt": "0x56198f084d30-RewindStmt" }, { - "id": "0x562ce951bd30-RewindStmt", + "id": "0x56198f084d30-RewindStmt", "PositionOrFlushSpec": [ - "0x562ce951c3a0-PositionOrFlushSpec" + "0x56198f0853a0-PositionOrFlushSpec" ] }, { - "id": "0x562ce951c3a0-PositionOrFlushSpec", + "id": "0x56198f0853a0-PositionOrFlushSpec", "variantKey": "FileUnitNumber", - "FileUnitNumber": "0x562ce951c3a0-FileUnitNumber" + "FileUnitNumber": "0x56198f0853a0-FileUnitNumber" }, { - "id": "0x562ce951c3a0-FileUnitNumber", - "Expr": "0x562ce95176a0-Expr" + "id": "0x56198f0853a0-FileUnitNumber", + "Expr": "0x56198f0806a0-Expr" }, { - "id": "0x562ce95176a0-Expr", + "id": "0x56198f0806a0-Expr", "variantKey": "Designator", - "Designator": "0x562ce9514500-Designator" + "Designator": "0x56198f07d500-Designator" }, { - "id": "0x562ce9514500-Designator", + "id": "0x56198f07d500-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce9514510-DataRef" + "DataRef": "0x56198f07d510-DataRef" }, { - "id": "0x562ce9514510-DataRef", + "id": "0x56198f07d510-DataRef", "variantKey": "Name", - "Name": "0x562ce9514510-Name" + "Name": "0x56198f07d510-Name" }, { - "id": "0x562ce9514510-Name", + "id": "0x56198f07d510-Name", "source": "u_seq" }, { - "id": "0x562ce9519160-ExecutionPartConstruct", + "id": "0x56198f082160-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x562ce9519160-ExecutableConstruct" + "ExecutableConstruct": "0x56198f082160-ExecutableConstruct" }, { - "id": "0x562ce9519160-ExecutableConstruct", + "id": "0x56198f082160-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x562ce9519160-Statement" + "Statement": "0x56198f082160-Statement" }, { - "id": "0x562ce9519160-Statement", - "statement": "0x562ce9519170-ActionStmt", + "id": "0x56198f082160-Statement", + "statement": "0x56198f082170-ActionStmt", "source": "read(unit = u_seq, fmt = '(A)', advance = 'no', pad = 'yes', size = chars_read, eor = 100, err = 900, iostat = ios) text_buffer" }, { - "id": "0x562ce9519170-ActionStmt", + "id": "0x56198f082170-ActionStmt", "variantKey": "ReadStmt", - "ReadStmt": "0x562ce9519000-ReadStmt" + "ReadStmt": "0x56198f082000-ReadStmt" }, { - "id": "0x562ce9519000-ReadStmt" + "id": "0x56198f082000-ReadStmt" }, { - "id": "0x562ce9518df0-IoControlSpec", + "id": "0x56198f081df0-IoControlSpec", "variantKey": "IoUnit", - "IoUnit": "0x562ce9518df0-IoUnit" + "IoUnit": "0x56198f081df0-IoUnit" }, { - "id": "0x562ce9518df0-IoUnit", + "id": "0x56198f081df0-IoUnit", "variantKey": "Expr", - "Expr": "0x562ce95cc9f0-Expr" + "Expr": "0x56198f1359f0-Expr" }, { - "id": "0x562ce95cc9f0-Expr", + "id": "0x56198f1359f0-Expr", "variantKey": "Designator", - "Designator": "0x562ce95182c0-Designator" + "Designator": "0x56198f0812c0-Designator" }, { - "id": "0x562ce95182c0-Designator", + "id": "0x56198f0812c0-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce95182d0-DataRef" + "DataRef": "0x56198f0812d0-DataRef" }, { - "id": "0x562ce95182d0-DataRef", + "id": "0x56198f0812d0-DataRef", "variantKey": "Name", - "Name": "0x562ce95182d0-Name" + "Name": "0x56198f0812d0-Name" }, { - "id": "0x562ce95182d0-Name", + "id": "0x56198f0812d0-Name", "source": "u_seq" }, { - "id": "0x562ce9518690-IoControlSpec", + "id": "0x56198f081690-IoControlSpec", "variantKey": "Format", - "Format": "0x562ce9518690-Format" + "Format": "0x56198f081690-Format" }, { - "id": "0x562ce9518690-Format", + "id": "0x56198f081690-Format", "variantKey": "Expr", - "Expr": "0x562ce9518690-Expr" + "Expr": "0x56198f081690-Expr" }, { - "id": "0x562ce9518690-Expr", + "id": "0x56198f081690-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce95186b0-LiteralConstant" + "LiteralConstant": "0x56198f0816b0-LiteralConstant" }, { - "id": "0x562ce95186b0-LiteralConstant", + "id": "0x56198f0816b0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x562ce95186b0-CharLiteralConstant" + "CharLiteralConstant": "0x56198f0816b0-CharLiteralConstant" }, { - "id": "0x562ce95186b0-CharLiteralConstant", + "id": "0x56198f0816b0-CharLiteralConstant", "string": "(A)" }, { - "id": "0x562ce9518790-IoControlSpec", + "id": "0x56198f081790-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x562ce9518790-CharExpr" + "CharExpr": "0x56198f081790-CharExpr" }, { - "id": "0x562ce9518790-CharExpr", - "Kind": "0x562ce9518798-Kind", - "Expr": "0x562ce9518010-Expr" + "id": "0x56198f081790-CharExpr", + "Kind": "0x56198f081798-Kind", + "Expr": "0x56198f081010-Expr" }, { - "id": "0x562ce9518798-Kind", + "id": "0x56198f081798-Kind", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Advance" }, { - "id": "0x562ce9518010-Expr", + "id": "0x56198f081010-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce9518030-LiteralConstant" + "LiteralConstant": "0x56198f081030-LiteralConstant" }, { - "id": "0x562ce9518030-LiteralConstant", + "id": "0x56198f081030-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x562ce9518030-CharLiteralConstant" + "CharLiteralConstant": "0x56198f081030-CharLiteralConstant" }, { - "id": "0x562ce9518030-CharLiteralConstant", + "id": "0x56198f081030-CharLiteralConstant", "string": "no" }, { - "id": "0x562ce9518890-IoControlSpec", + "id": "0x56198f081890-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x562ce9518890-CharExpr" + "CharExpr": "0x56198f081890-CharExpr" }, { - "id": "0x562ce9518890-CharExpr", - "Kind": "0x562ce9518898-Kind", - "Expr": "0x562ce9517ed0-Expr" + "id": "0x56198f081890-CharExpr", + "Kind": "0x56198f081898-Kind", + "Expr": "0x56198f080ed0-Expr" }, { - "id": "0x562ce9518898-Kind", + "id": "0x56198f081898-Kind", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Pad" }, { - "id": "0x562ce9517ed0-Expr", + "id": "0x56198f080ed0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce9517ef0-LiteralConstant" + "LiteralConstant": "0x56198f080ef0-LiteralConstant" }, { - "id": "0x562ce9517ef0-LiteralConstant", + "id": "0x56198f080ef0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x562ce9517ef0-CharLiteralConstant" + "CharLiteralConstant": "0x56198f080ef0-CharLiteralConstant" }, { - "id": "0x562ce9517ef0-CharLiteralConstant", + "id": "0x56198f080ef0-CharLiteralConstant", "string": "yes" }, { - "id": "0x562ce9518990-IoControlSpec", + "id": "0x56198f081990-IoControlSpec", "variantKey": "Size", - "Size": "0x562ce9518990-Size" + "Size": "0x56198f081990-Size" }, { - "id": "0x562ce9518990-Size", - "Expr": "0x562ce9518990-Variable" + "id": "0x56198f081990-Size", + "Variable": "0x56198f081990-Variable" }, { - "id": "0x562ce9518990-Variable", + "id": "0x56198f081990-Variable", "variantKey": "Designator", - "Designator": "0x562ce9518620-Designator" + "Designator": "0x56198f081620-Designator" }, { - "id": "0x562ce9518620-Designator", + "id": "0x56198f081620-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce9518630-DataRef" + "DataRef": "0x56198f081630-DataRef" }, { - "id": "0x562ce9518630-DataRef", + "id": "0x56198f081630-DataRef", "variantKey": "Name", - "Name": "0x562ce9518630-Name" + "Name": "0x56198f081630-Name" }, { - "id": "0x562ce9518630-Name", + "id": "0x56198f081630-Name", "source": "chars_read" }, { - "id": "0x562ce9518a90-IoControlSpec", + "id": "0x56198f081a90-IoControlSpec", "variantKey": "EorLabel", - "EorLabel": "0x562ce9518a90-EorLabel" + "EorLabel": "0x56198f081a90-EorLabel" }, { - "id": "0x562ce9518a90-EorLabel", + "id": "0x56198f081a90-EorLabel", "uint64_t": "100" }, { - "id": "0x562ce9518b90-IoControlSpec", + "id": "0x56198f081b90-IoControlSpec", "variantKey": "ErrLabel", - "ErrLabel": "0x562ce9518b90-ErrLabel" + "ErrLabel": "0x56198f081b90-ErrLabel" }, { - "id": "0x562ce9518b90-ErrLabel", + "id": "0x56198f081b90-ErrLabel", "uint64_t": "900" }, { - "id": "0x562ce9518cf0-IoControlSpec", + "id": "0x56198f081cf0-IoControlSpec", "variantKey": "StatVariable", - "StatVariable": "0x562ce9518cf0-StatVariable" + "StatVariable": "0x56198f081cf0-StatVariable" }, { - "id": "0x562ce9518cf0-StatVariable", - "Expr": "0x562ce9518cf0-Variable" + "id": "0x56198f081cf0-StatVariable", + "Variable": "0x56198f081cf0-Variable" }, { - "id": "0x562ce9518cf0-Variable", + "id": "0x56198f081cf0-Variable", "variantKey": "Designator", - "Designator": "0x562ce9518c80-Designator" + "Designator": "0x56198f081c80-Designator" }, { - "id": "0x562ce9518c80-Designator", + "id": "0x56198f081c80-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce9518c90-DataRef" + "DataRef": "0x56198f081c90-DataRef" }, { - "id": "0x562ce9518c90-DataRef", + "id": "0x56198f081c90-DataRef", "variantKey": "Name", - "Name": "0x562ce9518c90-Name" + "Name": "0x56198f081c90-Name" }, { - "id": "0x562ce9518c90-Name", + "id": "0x56198f081c90-Name", "source": "ios" }, { - "id": "0x562ce951c400-InputItem", + "id": "0x56198f085400-InputItem", "variantKey": "Variable", - "Variable": "0x562ce951c400-Variable" + "Variable": "0x56198f085400-Variable" }, { - "id": "0x562ce951c400-Variable", + "id": "0x56198f085400-Variable", "variantKey": "Designator", - "Designator": "0x562ce9518fa0-Designator" + "Designator": "0x56198f081fa0-Designator" }, { - "id": "0x562ce9518fa0-Designator", + "id": "0x56198f081fa0-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce9518fb0-DataRef" + "DataRef": "0x56198f081fb0-DataRef" }, { - "id": "0x562ce9518fb0-DataRef", + "id": "0x56198f081fb0-DataRef", "variantKey": "Name", - "Name": "0x562ce9518fb0-Name" + "Name": "0x56198f081fb0-Name" }, { - "id": "0x562ce9518fb0-Name", + "id": "0x56198f081fb0-Name", "source": "text_buffer" }, { - "id": "0x562ce9518210-ExecutionPartConstruct", + "id": "0x56198f081210-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x562ce9518210-ExecutableConstruct" + "ExecutableConstruct": "0x56198f081210-ExecutableConstruct" }, { - "id": "0x562ce9518210-ExecutableConstruct", + "id": "0x56198f081210-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x562ce9518210-Statement" + "Statement": "0x56198f081210-Statement" }, { - "id": "0x562ce9518210-Statement", - "statement": "0x562ce9518220-ActionStmt", + "id": "0x56198f081210-Statement", + "statement": "0x56198f081220-ActionStmt", "label": "100", "source": "100 continue" }, { - "id": "0x562ce9518220-ActionStmt", + "id": "0x56198f081220-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x562ce9518220-ContinueStmt" + "ContinueStmt": "0x56198f081220-ContinueStmt" }, { - "id": "0x562ce9518220-ContinueStmt" + "id": "0x56198f081220-ContinueStmt" }, { - "id": "0x562ce9519850-ExecutionPartConstruct", + "id": "0x56198f082850-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x562ce9519850-ExecutableConstruct" + "ExecutableConstruct": "0x56198f082850-ExecutableConstruct" }, { - "id": "0x562ce9519850-ExecutableConstruct", + "id": "0x56198f082850-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x562ce9519850-Statement" + "Statement": "0x56198f082850-Statement" }, { - "id": "0x562ce9519850-Statement", - "statement": "0x562ce9519860-ActionStmt", + "id": "0x56198f082850-Statement", + "statement": "0x56198f082860-ActionStmt", "source": "write(unit = u_dir, rec = 1, iostat = ios) val, x" }, { - "id": "0x562ce9519860-ActionStmt", + "id": "0x56198f082860-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x562ce95196f0-WriteStmt" - }, - { - "id": "0x562ce95196f0-WriteStmt", - "controls": [ - "0x562ce95193c0-IoControlSpec", - "0x562ce95191c0-IoControlSpec", - "0x562ce95192c0-IoControlSpec" - ], - "items": [ - "0x562ce9519610-OutputItem", - "0x562ce9519520-OutputItem" - ] + "WriteStmt": "0x56198f0826f0-WriteStmt" + }, + { + "id": "0x56198f0826f0-WriteStmt" }, { - "id": "0x562ce95193c0-IoControlSpec", + "id": "0x56198f0823c0-IoControlSpec", "variantKey": "IoUnit", - "IoUnit": "0x562ce95193c0-IoUnit" + "IoUnit": "0x56198f0823c0-IoUnit" }, { - "id": "0x562ce95193c0-IoUnit", + "id": "0x56198f0823c0-IoUnit", "variantKey": "Expr", - "Expr": "0x562ce95285c0-Expr" + "Expr": "0x56198f0915c0-Expr" }, { - "id": "0x562ce95285c0-Expr", + "id": "0x56198f0915c0-Expr", "variantKey": "Designator", - "Designator": "0x562ce95155d0-Designator" + "Designator": "0x56198f07e5d0-Designator" }, { - "id": "0x562ce95155d0-Designator", + "id": "0x56198f07e5d0-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce95155e0-DataRef" + "DataRef": "0x56198f07e5e0-DataRef" }, { - "id": "0x562ce95155e0-DataRef", + "id": "0x56198f07e5e0-DataRef", "variantKey": "Name", - "Name": "0x562ce95155e0-Name" + "Name": "0x56198f07e5e0-Name" }, { - "id": "0x562ce95155e0-Name", + "id": "0x56198f07e5e0-Name", "source": "u_dir" }, { - "id": "0x562ce95191c0-IoControlSpec", + "id": "0x56198f0821c0-IoControlSpec", "variantKey": "Rec", - "Rec": "0x562ce95191c0-Rec" + "Rec": "0x56198f0821c0-Rec" }, { - "id": "0x562ce95191c0-Rec", - "Expr": "0x562ce9517bd0-Expr" + "id": "0x56198f0821c0-Rec", + "Expr": "0x56198f080bd0-Expr" }, { - "id": "0x562ce9517bd0-Expr", + "id": "0x56198f080bd0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce9517bf0-LiteralConstant" + "LiteralConstant": "0x56198f080bf0-LiteralConstant" }, { - "id": "0x562ce9517bf0-LiteralConstant", + "id": "0x56198f080bf0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x562ce9517bf0-IntLiteralConstant" + "IntLiteralConstant": "0x56198f080bf0-IntLiteralConstant" }, { - "id": "0x562ce9517bf0-IntLiteralConstant", + "id": "0x56198f080bf0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x562ce95192c0-IoControlSpec", + "id": "0x56198f0822c0-IoControlSpec", "variantKey": "StatVariable", - "StatVariable": "0x562ce95192c0-StatVariable" + "StatVariable": "0x56198f0822c0-StatVariable" }, { - "id": "0x562ce95192c0-StatVariable", - "Expr": "0x562ce95192c0-Variable" + "id": "0x56198f0822c0-StatVariable", + "Variable": "0x56198f0822c0-Variable" }, { - "id": "0x562ce95192c0-Variable", + "id": "0x56198f0822c0-Variable", "variantKey": "Designator", - "Designator": "0x562ce9515860-Designator" + "Designator": "0x56198f07e860-Designator" }, { - "id": "0x562ce9515860-Designator", + "id": "0x56198f07e860-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce9515870-DataRef" + "DataRef": "0x56198f07e870-DataRef" }, { - "id": "0x562ce9515870-DataRef", + "id": "0x56198f07e870-DataRef", "variantKey": "Name", - "Name": "0x562ce9515870-Name" + "Name": "0x56198f07e870-Name" }, { - "id": "0x562ce9515870-Name", + "id": "0x56198f07e870-Name", "source": "ios" }, { - "id": "0x562ce9519610-OutputItem", + "id": "0x56198f082610-OutputItem", "variantKey": "Expr", - "Expr": "0x562ce9519610-Expr" + "Expr": "0x56198f082610-Expr" }, { - "id": "0x562ce9519610-Expr", + "id": "0x56198f082610-Expr", "variantKey": "Designator", - "Designator": "0x562ce95128d0-Designator" + "Designator": "0x56198f07b8d0-Designator" }, { - "id": "0x562ce95128d0-Designator", + "id": "0x56198f07b8d0-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce95128e0-DataRef" + "DataRef": "0x56198f07b8e0-DataRef" }, { - "id": "0x562ce95128e0-DataRef", + "id": "0x56198f07b8e0-DataRef", "variantKey": "Name", - "Name": "0x562ce95128e0-Name" + "Name": "0x56198f07b8e0-Name" }, { - "id": "0x562ce95128e0-Name", + "id": "0x56198f07b8e0-Name", "source": "val" }, { - "id": "0x562ce9519520-OutputItem", + "id": "0x56198f082520-OutputItem", "variantKey": "Expr", - "Expr": "0x562ce9519520-Expr" + "Expr": "0x56198f082520-Expr" }, { - "id": "0x562ce9519520-Expr", + "id": "0x56198f082520-Expr", "variantKey": "Designator", - "Designator": "0x562ce95194b0-Designator" + "Designator": "0x56198f0824b0-Designator" }, { - "id": "0x562ce95194b0-Designator", + "id": "0x56198f0824b0-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce95194c0-DataRef" + "DataRef": "0x56198f0824c0-DataRef" }, { - "id": "0x562ce95194c0-DataRef", + "id": "0x56198f0824c0-DataRef", "variantKey": "Name", - "Name": "0x562ce95194c0-Name" + "Name": "0x56198f0824c0-Name" }, { - "id": "0x562ce95194c0-Name", + "id": "0x56198f0824c0-Name", "source": "x" }, { - "id": "0x562ce9518270-ExecutionPartConstruct", + "id": "0x56198f081270-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x562ce9518270-ExecutableConstruct" + "ExecutableConstruct": "0x56198f081270-ExecutableConstruct" }, { - "id": "0x562ce9518270-ExecutableConstruct", + "id": "0x56198f081270-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x562ce9518270-Statement" + "Statement": "0x56198f081270-Statement" }, { - "id": "0x562ce9518270-Statement", - "statement": "0x562ce9518280-ActionStmt", + "id": "0x56198f081270-Statement", + "statement": "0x56198f081280-ActionStmt", "source": "write(unit = u_stream, pos = 10, iostat = ios) \"Stream Header\"" }, { - "id": "0x562ce9518280-ActionStmt", + "id": "0x56198f081280-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x562ce9519c90-WriteStmt" + "WriteStmt": "0x56198f082c90-WriteStmt" }, { - "id": "0x562ce9519c90-WriteStmt", - "controls": [ - "0x562ce9519ab0-IoControlSpec", - "0x562ce95198b0-IoControlSpec", - "0x562ce95199b0-IoControlSpec" - ], - "items": [ - "0x562ce9519bb0-OutputItem" - ] + "id": "0x56198f082c90-WriteStmt" }, { - "id": "0x562ce9519ab0-IoControlSpec", + "id": "0x56198f082ab0-IoControlSpec", "variantKey": "IoUnit", - "IoUnit": "0x562ce9519ab0-IoUnit" + "IoUnit": "0x56198f082ab0-IoUnit" }, { - "id": "0x562ce9519ab0-IoUnit", + "id": "0x56198f082ab0-IoUnit", "variantKey": "Expr", - "Expr": "0x562ce95284e0-Expr" + "Expr": "0x56198f0914e0-Expr" }, { - "id": "0x562ce95284e0-Expr", + "id": "0x56198f0914e0-Expr", "variantKey": "Designator", - "Designator": "0x562ce9518ee0-Designator" + "Designator": "0x56198f081ee0-Designator" }, { - "id": "0x562ce9518ee0-Designator", + "id": "0x56198f081ee0-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce9518ef0-DataRef" + "DataRef": "0x56198f081ef0-DataRef" }, { - "id": "0x562ce9518ef0-DataRef", + "id": "0x56198f081ef0-DataRef", "variantKey": "Name", - "Name": "0x562ce9518ef0-Name" + "Name": "0x56198f081ef0-Name" }, { - "id": "0x562ce9518ef0-Name", + "id": "0x56198f081ef0-Name", "source": "u_stream" }, { - "id": "0x562ce95198b0-IoControlSpec", + "id": "0x56198f0828b0-IoControlSpec", "variantKey": "Pos", - "Pos": "0x562ce95198b0-Pos" + "Pos": "0x56198f0828b0-Pos" }, { - "id": "0x562ce95198b0-Pos", - "Expr": "0x562ce95174e0-Expr" + "id": "0x56198f0828b0-Pos", + "Expr": "0x56198f0804e0-Expr" }, { - "id": "0x562ce95174e0-Expr", + "id": "0x56198f0804e0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce9517500-LiteralConstant" + "LiteralConstant": "0x56198f080500-LiteralConstant" }, { - "id": "0x562ce9517500-LiteralConstant", + "id": "0x56198f080500-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x562ce9517500-IntLiteralConstant" + "IntLiteralConstant": "0x56198f080500-IntLiteralConstant" }, { - "id": "0x562ce9517500-IntLiteralConstant", + "id": "0x56198f080500-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x562ce95199b0-IoControlSpec", + "id": "0x56198f0829b0-IoControlSpec", "variantKey": "StatVariable", - "StatVariable": "0x562ce95199b0-StatVariable" + "StatVariable": "0x56198f0829b0-StatVariable" }, { - "id": "0x562ce95199b0-StatVariable", - "Expr": "0x562ce95199b0-Variable" + "id": "0x56198f0829b0-StatVariable", + "Variable": "0x56198f0829b0-Variable" }, { - "id": "0x562ce95199b0-Variable", + "id": "0x56198f0829b0-Variable", "variantKey": "Designator", - "Designator": "0x562ce9511ec0-Designator" + "Designator": "0x56198f07aec0-Designator" }, { - "id": "0x562ce9511ec0-Designator", + "id": "0x56198f07aec0-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce9511ed0-DataRef" + "DataRef": "0x56198f07aed0-DataRef" }, { - "id": "0x562ce9511ed0-DataRef", + "id": "0x56198f07aed0-DataRef", "variantKey": "Name", - "Name": "0x562ce9511ed0-Name" + "Name": "0x56198f07aed0-Name" }, { - "id": "0x562ce9511ed0-Name", + "id": "0x56198f07aed0-Name", "source": "ios" }, { - "id": "0x562ce9519bb0-OutputItem", + "id": "0x56198f082bb0-OutputItem", "variantKey": "Expr", - "Expr": "0x562ce9519bb0-Expr" + "Expr": "0x56198f082bb0-Expr" }, { - "id": "0x562ce9519bb0-Expr", + "id": "0x56198f082bb0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce9519bd0-LiteralConstant" + "LiteralConstant": "0x56198f082bd0-LiteralConstant" }, { - "id": "0x562ce9519bd0-LiteralConstant", + "id": "0x56198f082bd0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x562ce9519bd0-CharLiteralConstant" + "CharLiteralConstant": "0x56198f082bd0-CharLiteralConstant" }, { - "id": "0x562ce9519bd0-CharLiteralConstant", + "id": "0x56198f082bd0-CharLiteralConstant", "string": "Stream Header" }, { - "id": "0x562ce951a9f0-ExecutionPartConstruct", + "id": "0x56198f0839f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x562ce951a9f0-ExecutableConstruct" + "ExecutableConstruct": "0x56198f0839f0-ExecutableConstruct" }, { - "id": "0x562ce951a9f0-ExecutableConstruct", + "id": "0x56198f0839f0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x562ce951a9f0-Statement" + "Statement": "0x56198f0839f0-Statement" }, { - "id": "0x562ce951a9f0-Statement", - "statement": "0x562ce951aa00-ActionStmt", + "id": "0x56198f0839f0-Statement", + "statement": "0x56198f083a00-ActionStmt", "source": "write(unit = u_seq, fmt = '(I5)', asynchronous = 'yes', id = async_id, iostat = ios) val" }, { - "id": "0x562ce951aa00-ActionStmt", + "id": "0x56198f083a00-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x562ce951a890-WriteStmt" - }, - { - "id": "0x562ce951a890-WriteStmt", - "controls": [ - "0x562ce951a590-IoControlSpec", - "0x562ce951a130-IoControlSpec", - "0x562ce951a230-IoControlSpec", - "0x562ce951a330-IoControlSpec", - "0x562ce951a490-IoControlSpec" - ], - "items": [ - "0x562ce951a7b0-OutputItem" - ] + "WriteStmt": "0x56198f083890-WriteStmt" + }, + { + "id": "0x56198f083890-WriteStmt" }, { - "id": "0x562ce951a590-IoControlSpec", + "id": "0x56198f083590-IoControlSpec", "variantKey": "IoUnit", - "IoUnit": "0x562ce951a590-IoUnit" + "IoUnit": "0x56198f083590-IoUnit" }, { - "id": "0x562ce951a590-IoUnit", + "id": "0x56198f083590-IoUnit", "variantKey": "Expr", - "Expr": "0x562ce95ccbb0-Expr" + "Expr": "0x56198f135bb0-Expr" }, { - "id": "0x562ce95ccbb0-Expr", + "id": "0x56198f135bb0-Expr", "variantKey": "Designator", - "Designator": "0x562ce9519f80-Designator" + "Designator": "0x56198f082f80-Designator" }, { - "id": "0x562ce9519f80-Designator", + "id": "0x56198f082f80-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce9519f90-DataRef" + "DataRef": "0x56198f082f90-DataRef" }, { - "id": "0x562ce9519f90-DataRef", + "id": "0x56198f082f90-DataRef", "variantKey": "Name", - "Name": "0x562ce9519f90-Name" + "Name": "0x56198f082f90-Name" }, { - "id": "0x562ce9519f90-Name", + "id": "0x56198f082f90-Name", "source": "u_seq" }, { - "id": "0x562ce951a130-IoControlSpec", + "id": "0x56198f083130-IoControlSpec", "variantKey": "Format", - "Format": "0x562ce951a130-Format" + "Format": "0x56198f083130-Format" }, { - "id": "0x562ce951a130-Format", + "id": "0x56198f083130-Format", "variantKey": "Expr", - "Expr": "0x562ce951a130-Expr" + "Expr": "0x56198f083130-Expr" }, { - "id": "0x562ce951a130-Expr", + "id": "0x56198f083130-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce951a150-LiteralConstant" + "LiteralConstant": "0x56198f083150-LiteralConstant" }, { - "id": "0x562ce951a150-LiteralConstant", + "id": "0x56198f083150-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x562ce951a150-CharLiteralConstant" + "CharLiteralConstant": "0x56198f083150-CharLiteralConstant" }, { - "id": "0x562ce951a150-CharLiteralConstant", + "id": "0x56198f083150-CharLiteralConstant", "string": "(I5)" }, { - "id": "0x562ce951a230-IoControlSpec", + "id": "0x56198f083230-IoControlSpec", "variantKey": "Asynchronous", - "Asynchronous": "0x562ce951a230-Asynchronous" + "Asynchronous": "0x56198f083230-Asynchronous" }, { - "id": "0x562ce951a230-Asynchronous", - "Expr": "0x562ce9519fe0-Expr" + "id": "0x56198f083230-Asynchronous", + "Expr": "0x56198f082fe0-Expr" }, { - "id": "0x562ce9519fe0-Expr", + "id": "0x56198f082fe0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce951a000-LiteralConstant" + "LiteralConstant": "0x56198f083000-LiteralConstant" }, { - "id": "0x562ce951a000-LiteralConstant", + "id": "0x56198f083000-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x562ce951a000-CharLiteralConstant" + "CharLiteralConstant": "0x56198f083000-CharLiteralConstant" }, { - "id": "0x562ce951a000-CharLiteralConstant", + "id": "0x56198f083000-CharLiteralConstant", "string": "yes" }, { - "id": "0x562ce951a330-IoControlSpec", + "id": "0x56198f083330-IoControlSpec", "variantKey": "IdVariable", - "IdVariable": "0x562ce951a330-IdVariable" + "IdVariable": "0x56198f083330-IdVariable" }, { - "id": "0x562ce951a330-IdVariable", - "Expr": "0x562ce951a330-Variable" + "id": "0x56198f083330-IdVariable", + "Variable": "0x56198f083330-Variable" }, { - "id": "0x562ce951a330-Variable", + "id": "0x56198f083330-Variable", "variantKey": "Designator", - "Designator": "0x562ce951a0c0-Designator" + "Designator": "0x56198f0830c0-Designator" }, { - "id": "0x562ce951a0c0-Designator", + "id": "0x56198f0830c0-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce951a0d0-DataRef" + "DataRef": "0x56198f0830d0-DataRef" }, { - "id": "0x562ce951a0d0-DataRef", + "id": "0x56198f0830d0-DataRef", "variantKey": "Name", - "Name": "0x562ce951a0d0-Name" + "Name": "0x56198f0830d0-Name" }, { - "id": "0x562ce951a0d0-Name", + "id": "0x56198f0830d0-Name", "source": "async_id" }, { - "id": "0x562ce951a490-IoControlSpec", + "id": "0x56198f083490-IoControlSpec", "variantKey": "StatVariable", - "StatVariable": "0x562ce951a490-StatVariable" + "StatVariable": "0x56198f083490-StatVariable" }, { - "id": "0x562ce951a490-StatVariable", - "Expr": "0x562ce951a490-Variable" + "id": "0x56198f083490-StatVariable", + "Variable": "0x56198f083490-Variable" }, { - "id": "0x562ce951a490-Variable", + "id": "0x56198f083490-Variable", "variantKey": "Designator", - "Designator": "0x562ce951a420-Designator" + "Designator": "0x56198f083420-Designator" }, { - "id": "0x562ce951a420-Designator", + "id": "0x56198f083420-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce951a430-DataRef" + "DataRef": "0x56198f083430-DataRef" }, { - "id": "0x562ce951a430-DataRef", + "id": "0x56198f083430-DataRef", "variantKey": "Name", - "Name": "0x562ce951a430-Name" + "Name": "0x56198f083430-Name" }, { - "id": "0x562ce951a430-Name", + "id": "0x56198f083430-Name", "source": "ios" }, { - "id": "0x562ce951a7b0-OutputItem", + "id": "0x56198f0837b0-OutputItem", "variantKey": "Expr", - "Expr": "0x562ce951a7b0-Expr" + "Expr": "0x56198f0837b0-Expr" }, { - "id": "0x562ce951a7b0-Expr", + "id": "0x56198f0837b0-Expr", "variantKey": "Designator", - "Designator": "0x562ce951a740-Designator" + "Designator": "0x56198f083740-Designator" }, { - "id": "0x562ce951a740-Designator", + "id": "0x56198f083740-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce951a750-DataRef" + "DataRef": "0x56198f083750-DataRef" }, { - "id": "0x562ce951a750-DataRef", + "id": "0x56198f083750-DataRef", "variantKey": "Name", - "Name": "0x562ce951a750-Name" + "Name": "0x56198f083750-Name" }, { - "id": "0x562ce951a750-Name", + "id": "0x56198f083750-Name", "source": "val" }, { - "id": "0x562ce9518f50-ExecutionPartConstruct", + "id": "0x56198f081f50-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x562ce9518f50-ExecutableConstruct" + "ExecutableConstruct": "0x56198f081f50-ExecutableConstruct" }, { - "id": "0x562ce9518f50-ExecutableConstruct", + "id": "0x56198f081f50-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x562ce9518f50-Statement" + "Statement": "0x56198f081f50-Statement" }, { - "id": "0x562ce9518f50-Statement", - "statement": "0x562ce9518f60-ActionStmt", + "id": "0x56198f081f50-Statement", + "statement": "0x56198f081f60-ActionStmt", "source": "wait(unit=u_seq, id=async_id)" }, { - "id": "0x562ce9518f60-ActionStmt", + "id": "0x56198f081f60-ActionStmt", "variantKey": "WaitStmt", - "WaitStmt": "0x562ce951c330-WaitStmt" + "WaitStmt": "0x56198f085330-WaitStmt" }, { - "id": "0x562ce951c330-WaitStmt", + "id": "0x56198f085330-WaitStmt", "WaitSpec": [ - "0x562ce951bfa0-WaitSpec", - "0x562ce951c1d0-WaitSpec" + "0x56198f084fa0-WaitSpec", + "0x56198f0851d0-WaitSpec" ] }, { - "id": "0x562ce951bfa0-WaitSpec", + "id": "0x56198f084fa0-WaitSpec", "variantKey": "FileUnitNumber", - "FileUnitNumber": "0x562ce951bfa0-FileUnitNumber" + "FileUnitNumber": "0x56198f084fa0-FileUnitNumber" }, { - "id": "0x562ce951bfa0-FileUnitNumber", - "Expr": "0x562ce95175c0-Expr" + "id": "0x56198f084fa0-FileUnitNumber", + "Expr": "0x56198f0805c0-Expr" }, { - "id": "0x562ce95175c0-Expr", + "id": "0x56198f0805c0-Expr", "variantKey": "Designator", - "Designator": "0x562ce95140c0-Designator" + "Designator": "0x56198f07d0c0-Designator" }, { - "id": "0x562ce95140c0-Designator", + "id": "0x56198f07d0c0-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce95140d0-DataRef" + "DataRef": "0x56198f07d0d0-DataRef" }, { - "id": "0x562ce95140d0-DataRef", + "id": "0x56198f07d0d0-DataRef", "variantKey": "Name", - "Name": "0x562ce95140d0-Name" + "Name": "0x56198f07d0d0-Name" }, { - "id": "0x562ce95140d0-Name", + "id": "0x56198f07d0d0-Name", "source": "u_seq" }, { - "id": "0x562ce951c1d0-WaitSpec", + "id": "0x56198f0851d0-WaitSpec", "variantKey": "IdExpr", - "IdExpr": "0x562ce951c1d0-IdExpr" + "IdExpr": "0x56198f0851d0-IdExpr" }, { - "id": "0x562ce951c1d0-IdExpr", - "Expr": "0x562ce9519de0-Expr" + "id": "0x56198f0851d0-IdExpr", + "Expr": "0x56198f082de0-Expr" }, { - "id": "0x562ce9519de0-Expr", + "id": "0x56198f082de0-Expr", "variantKey": "Designator", - "Designator": "0x562ce9514c40-Designator" + "Designator": "0x56198f07dc40-Designator" }, { - "id": "0x562ce9514c40-Designator", + "id": "0x56198f07dc40-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce9514c50-DataRef" + "DataRef": "0x56198f07dc50-DataRef" }, { - "id": "0x562ce9514c50-DataRef", + "id": "0x56198f07dc50-DataRef", "variantKey": "Name", - "Name": "0x562ce9514c50-Name" + "Name": "0x56198f07dc50-Name" }, { - "id": "0x562ce9514c50-Name", + "id": "0x56198f07dc50-Name", "source": "async_id" }, { - "id": "0x562ce952b8d0-ExecutionPartConstruct", + "id": "0x56198f0948d0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x562ce952b8d0-ExecutableConstruct" + "ExecutableConstruct": "0x56198f0948d0-ExecutableConstruct" }, { - "id": "0x562ce952b8d0-ExecutableConstruct", + "id": "0x56198f0948d0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x562ce952b8d0-Statement" + "Statement": "0x56198f0948d0-Statement" }, { - "id": "0x562ce952b8d0-Statement", - "statement": "0x562ce952b8e0-ActionStmt", + "id": "0x56198f0948d0-Statement", + "statement": "0x56198f0948e0-ActionStmt", "source": "read(unit = u_seq, fmt = '(I5)', blank = 'zero', end = 200, err = 900, iostat = ios) val" }, { - "id": "0x562ce952b8e0-ActionStmt", + "id": "0x56198f0948e0-ActionStmt", "variantKey": "ReadStmt", - "ReadStmt": "0x562ce952b770-ReadStmt" + "ReadStmt": "0x56198f094770-ReadStmt" }, { - "id": "0x562ce952b770-ReadStmt" + "id": "0x56198f094770-ReadStmt" }, { - "id": "0x562ce9518330-IoControlSpec", + "id": "0x56198f081330-IoControlSpec", "variantKey": "IoUnit", - "IoUnit": "0x562ce9518330-IoUnit" + "IoUnit": "0x56198f081330-IoUnit" }, { - "id": "0x562ce9518330-IoUnit", + "id": "0x56198f081330-IoUnit", "variantKey": "Expr", - "Expr": "0x562ce95ccc90-Expr" + "Expr": "0x56198f135c90-Expr" }, { - "id": "0x562ce95ccc90-Expr", + "id": "0x56198f135c90-Expr", "variantKey": "Designator", - "Designator": "0x562ce951ace0-Designator" + "Designator": "0x56198f083ce0-Designator" }, { - "id": "0x562ce951ace0-Designator", + "id": "0x56198f083ce0-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce951acf0-DataRef" + "DataRef": "0x56198f083cf0-DataRef" }, { - "id": "0x562ce951acf0-DataRef", + "id": "0x56198f083cf0-DataRef", "variantKey": "Name", - "Name": "0x562ce951acf0-Name" + "Name": "0x56198f083cf0-Name" }, { - "id": "0x562ce951acf0-Name", + "id": "0x56198f083cf0-Name", "source": "u_seq" }, { - "id": "0x562ce951aef0-IoControlSpec", + "id": "0x56198f083ef0-IoControlSpec", "variantKey": "Format", - "Format": "0x562ce951aef0-Format" + "Format": "0x56198f083ef0-Format" }, { - "id": "0x562ce951aef0-Format", + "id": "0x56198f083ef0-Format", "variantKey": "Expr", - "Expr": "0x562ce951aef0-Expr" + "Expr": "0x56198f083ef0-Expr" }, { - "id": "0x562ce951aef0-Expr", + "id": "0x56198f083ef0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce951af10-LiteralConstant" + "LiteralConstant": "0x56198f083f10-LiteralConstant" }, { - "id": "0x562ce951af10-LiteralConstant", + "id": "0x56198f083f10-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x562ce951af10-CharLiteralConstant" + "CharLiteralConstant": "0x56198f083f10-CharLiteralConstant" }, { - "id": "0x562ce951af10-CharLiteralConstant", + "id": "0x56198f083f10-CharLiteralConstant", "string": "(I5)" }, { - "id": "0x562ce951aff0-IoControlSpec", + "id": "0x56198f083ff0-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x562ce951aff0-CharExpr" + "CharExpr": "0x56198f083ff0-CharExpr" }, { - "id": "0x562ce951aff0-CharExpr", - "Kind": "0x562ce951aff8-Kind", - "Expr": "0x562ce951ad40-Expr" + "id": "0x56198f083ff0-CharExpr", + "Kind": "0x56198f083ff8-Kind", + "Expr": "0x56198f083d40-Expr" }, { - "id": "0x562ce951aff8-Kind", + "id": "0x56198f083ff8-Kind", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Blank" }, { - "id": "0x562ce951ad40-Expr", + "id": "0x56198f083d40-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce951ad60-LiteralConstant" + "LiteralConstant": "0x56198f083d60-LiteralConstant" }, { - "id": "0x562ce951ad60-LiteralConstant", + "id": "0x56198f083d60-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x562ce951ad60-CharLiteralConstant" + "CharLiteralConstant": "0x56198f083d60-CharLiteralConstant" }, { - "id": "0x562ce951ad60-CharLiteralConstant", + "id": "0x56198f083d60-CharLiteralConstant", "string": "zero" }, { - "id": "0x562ce951b0f0-IoControlSpec", + "id": "0x56198f0840f0-IoControlSpec", "variantKey": "EndLabel", - "EndLabel": "0x562ce951b0f0-EndLabel" + "EndLabel": "0x56198f0840f0-EndLabel" }, { - "id": "0x562ce951b0f0-EndLabel", + "id": "0x56198f0840f0-EndLabel", "uint64_t": "200" }, { - "id": "0x562ce951b1f0-IoControlSpec", + "id": "0x56198f0841f0-IoControlSpec", "variantKey": "ErrLabel", - "ErrLabel": "0x562ce951b1f0-ErrLabel" + "ErrLabel": "0x56198f0841f0-ErrLabel" }, { - "id": "0x562ce951b1f0-ErrLabel", + "id": "0x56198f0841f0-ErrLabel", "uint64_t": "900" }, { - "id": "0x562ce951b2f0-IoControlSpec", + "id": "0x56198f0842f0-IoControlSpec", "variantKey": "StatVariable", - "StatVariable": "0x562ce951b2f0-StatVariable" + "StatVariable": "0x56198f0842f0-StatVariable" }, { - "id": "0x562ce951b2f0-StatVariable", - "Expr": "0x562ce951b2f0-Variable" + "id": "0x56198f0842f0-StatVariable", + "Variable": "0x56198f0842f0-Variable" }, { - "id": "0x562ce951b2f0-Variable", + "id": "0x56198f0842f0-Variable", "variantKey": "Designator", - "Designator": "0x562ce951ae80-Designator" + "Designator": "0x56198f083e80-Designator" }, { - "id": "0x562ce951ae80-Designator", + "id": "0x56198f083e80-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce951ae90-DataRef" + "DataRef": "0x56198f083e90-DataRef" }, { - "id": "0x562ce951ae90-DataRef", + "id": "0x56198f083e90-DataRef", "variantKey": "Name", - "Name": "0x562ce951ae90-Name" + "Name": "0x56198f083e90-Name" }, { - "id": "0x562ce951ae90-Name", + "id": "0x56198f083e90-Name", "source": "ios" }, { - "id": "0x562ce951bfe0-InputItem", + "id": "0x56198f084fe0-InputItem", "variantKey": "Variable", - "Variable": "0x562ce951bfe0-Variable" + "Variable": "0x56198f084fe0-Variable" }, { - "id": "0x562ce951bfe0-Variable", + "id": "0x56198f084fe0-Variable", "variantKey": "Designator", - "Designator": "0x562ce95127d0-Designator" + "Designator": "0x56198f07b7d0-Designator" }, { - "id": "0x562ce95127d0-Designator", + "id": "0x56198f07b7d0-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce95127e0-DataRef" + "DataRef": "0x56198f07b7e0-DataRef" }, { - "id": "0x562ce95127e0-DataRef", + "id": "0x56198f07b7e0-DataRef", "variantKey": "Name", - "Name": "0x562ce95127e0-Name" + "Name": "0x56198f07b7e0-Name" }, { - "id": "0x562ce95127e0-Name", + "id": "0x56198f07b7e0-Name", "source": "val" }, { - "id": "0x562ce95154b0-ExecutionPartConstruct", + "id": "0x56198f07e4b0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x562ce95154b0-ExecutableConstruct" + "ExecutableConstruct": "0x56198f07e4b0-ExecutableConstruct" }, { - "id": "0x562ce95154b0-ExecutableConstruct", + "id": "0x56198f07e4b0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x562ce95154b0-Statement" + "Statement": "0x56198f07e4b0-Statement" }, { - "id": "0x562ce95154b0-Statement", - "statement": "0x562ce95154c0-ActionStmt", + "id": "0x56198f07e4b0-Statement", + "statement": "0x56198f07e4c0-ActionStmt", "label": "200", "source": "200 continue" }, { - "id": "0x562ce95154c0-ActionStmt", + "id": "0x56198f07e4c0-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x562ce95154c0-ContinueStmt" + "ContinueStmt": "0x56198f07e4c0-ContinueStmt" }, { - "id": "0x562ce95154c0-ContinueStmt" + "id": "0x56198f07e4c0-ContinueStmt" }, { - "id": "0x562ce9518490-ExecutionPartConstruct", + "id": "0x56198f081490-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x562ce9518490-ExecutableConstruct" + "ExecutableConstruct": "0x56198f081490-ExecutableConstruct" }, { - "id": "0x562ce9518490-ExecutableConstruct", + "id": "0x56198f081490-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x562ce9518490-Statement" + "Statement": "0x56198f081490-Statement" }, { - "id": "0x562ce9518490-Statement", - "statement": "0x562ce95184a0-ActionStmt", + "id": "0x56198f081490-Statement", + "statement": "0x56198f0814a0-ActionStmt", "source": "print *, \"All 20 io-control-spec items demonstrated successfully!\"" }, { - "id": "0x562ce95184a0-ActionStmt", + "id": "0x56198f0814a0-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x562ce952ba10-PrintStmt" + "PrintStmt": "0x56198f094a10-PrintStmt" }, { - "id": "0x562ce952ba10-PrintStmt", - "Format": "0x562ce952ba28-Format", + "id": "0x56198f094a10-PrintStmt", + "Format": "0x56198f094a28-Format", "OutputItem": [ - "0x562ce952b930-OutputItem" + "0x56198f094930-OutputItem" ] }, { - "id": "0x562ce952ba28-Format", + "id": "0x56198f094a28-Format", "variantKey": "Star", - "Star": "0x562ce952ba28-Star" + "Star": "0x56198f094a28-Star" }, { - "id": "0x562ce952ba28-Star" + "id": "0x56198f094a28-Star" }, { - "id": "0x562ce952b930-OutputItem", + "id": "0x56198f094930-OutputItem", "variantKey": "Expr", - "Expr": "0x562ce952b930-Expr" + "Expr": "0x56198f094930-Expr" }, { - "id": "0x562ce952b930-Expr", + "id": "0x56198f094930-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce952b950-LiteralConstant" + "LiteralConstant": "0x56198f094950-LiteralConstant" }, { - "id": "0x562ce952b950-LiteralConstant", + "id": "0x56198f094950-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x562ce952b950-CharLiteralConstant" + "CharLiteralConstant": "0x56198f094950-CharLiteralConstant" }, { - "id": "0x562ce952b950-CharLiteralConstant", + "id": "0x56198f094950-CharLiteralConstant", "string": "All 20 io-control-spec items demonstrated successfully!" }, { - "id": "0x562ce9517e80-ExecutionPartConstruct", + "id": "0x56198f080e80-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x562ce9517e80-ExecutableConstruct" + "ExecutableConstruct": "0x56198f080e80-ExecutableConstruct" }, { - "id": "0x562ce9517e80-ExecutableConstruct", + "id": "0x56198f080e80-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x562ce9517e80-Statement" + "Statement": "0x56198f080e80-Statement" }, { - "id": "0x562ce9517e80-Statement", - "statement": "0x562ce9517e90-ActionStmt", + "id": "0x56198f080e80-Statement", + "statement": "0x56198f080e90-ActionStmt", "source": "close(u_seq, status='delete')" }, { - "id": "0x562ce9517e90-ActionStmt", + "id": "0x56198f080e90-ActionStmt", "variantKey": "CloseStmt", - "CloseStmt": "0x562ce951ba20-CloseStmt" + "CloseStmt": "0x56198f084a20-CloseStmt" }, { - "id": "0x562ce951ba20-CloseStmt", + "id": "0x56198f084a20-CloseStmt", "CloseSpec": [ - "0x562ce951c080-CloseSpec", - "0x562ce951c040-CloseSpec" + "0x56198f085080-CloseSpec", + "0x56198f085040-CloseSpec" ] }, { - "id": "0x562ce951c080-CloseSpec", + "id": "0x56198f085080-CloseSpec", "variantKey": "FileUnitNumber", - "FileUnitNumber": "0x562ce951c080-FileUnitNumber" + "FileUnitNumber": "0x56198f085080-FileUnitNumber" }, { - "id": "0x562ce951c080-FileUnitNumber", - "Expr": "0x562ce951ac00-Expr" + "id": "0x56198f085080-FileUnitNumber", + "Expr": "0x56198f083c00-Expr" }, { - "id": "0x562ce951ac00-Expr", + "id": "0x56198f083c00-Expr", "variantKey": "Designator", - "Designator": "0x562ce9517fb0-Designator" + "Designator": "0x56198f080fb0-Designator" }, { - "id": "0x562ce9517fb0-Designator", + "id": "0x56198f080fb0-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce9517fc0-DataRef" + "DataRef": "0x56198f080fc0-DataRef" }, { - "id": "0x562ce9517fc0-DataRef", + "id": "0x56198f080fc0-DataRef", "variantKey": "Name", - "Name": "0x562ce9517fc0-Name" + "Name": "0x56198f080fc0-Name" }, { - "id": "0x562ce9517fc0-Name", + "id": "0x56198f080fc0-Name", "source": "u_seq" }, { - "id": "0x562ce951c040-CloseSpec", + "id": "0x56198f085040-CloseSpec", "variantKey": "StatusExpr", - "StatusExpr": "0x562ce951c040-StatusExpr" + "StatusExpr": "0x56198f085040-StatusExpr" }, { - "id": "0x562ce951c040-StatusExpr", - "Expr": "0x562ce951ab20-Expr" + "id": "0x56198f085040-StatusExpr", + "Expr": "0x56198f083b20-Expr" }, { - "id": "0x562ce951ab20-Expr", + "id": "0x56198f083b20-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce951ab40-LiteralConstant" + "LiteralConstant": "0x56198f083b40-LiteralConstant" }, { - "id": "0x562ce951ab40-LiteralConstant", + "id": "0x56198f083b40-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x562ce951ab40-CharLiteralConstant" + "CharLiteralConstant": "0x56198f083b40-CharLiteralConstant" }, { - "id": "0x562ce951ab40-CharLiteralConstant", + "id": "0x56198f083b40-CharLiteralConstant", "string": "delete" }, { - "id": "0x562ce95142f0-ExecutionPartConstruct", + "id": "0x56198f07d2f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x562ce95142f0-ExecutableConstruct" + "ExecutableConstruct": "0x56198f07d2f0-ExecutableConstruct" }, { - "id": "0x562ce95142f0-ExecutableConstruct", + "id": "0x56198f07d2f0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x562ce95142f0-Statement" + "Statement": "0x56198f07d2f0-Statement" }, { - "id": "0x562ce95142f0-Statement", - "statement": "0x562ce9514300-ActionStmt", + "id": "0x56198f07d2f0-Statement", + "statement": "0x56198f07d300-ActionStmt", "source": "close(u_dir, status='delete')" }, { - "id": "0x562ce9514300-ActionStmt", + "id": "0x56198f07d300-ActionStmt", "variantKey": "CloseStmt", - "CloseStmt": "0x562ce951c010-CloseStmt" + "CloseStmt": "0x56198f085010-CloseStmt" }, { - "id": "0x562ce951c010-CloseStmt", + "id": "0x56198f085010-CloseStmt", "CloseSpec": [ - "0x562ce951c130-CloseSpec", - "0x562ce951c0f0-CloseSpec" + "0x56198f085130-CloseSpec", + "0x56198f0850f0-CloseSpec" ] }, { - "id": "0x562ce951c130-CloseSpec", + "id": "0x56198f085130-CloseSpec", "variantKey": "FileUnitNumber", - "FileUnitNumber": "0x562ce951c130-FileUnitNumber" + "FileUnitNumber": "0x56198f085130-FileUnitNumber" }, { - "id": "0x562ce951c130-FileUnitNumber", - "Expr": "0x562ce951aa40-Expr" + "id": "0x56198f085130-FileUnitNumber", + "Expr": "0x56198f083a40-Expr" }, { - "id": "0x562ce951aa40-Expr", + "id": "0x56198f083a40-Expr", "variantKey": "Designator", - "Designator": "0x562ce9516840-Designator" + "Designator": "0x56198f07f840-Designator" }, { - "id": "0x562ce9516840-Designator", + "id": "0x56198f07f840-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce9516850-DataRef" + "DataRef": "0x56198f07f850-DataRef" }, { - "id": "0x562ce9516850-DataRef", + "id": "0x56198f07f850-DataRef", "variantKey": "Name", - "Name": "0x562ce9516850-Name" + "Name": "0x56198f07f850-Name" }, { - "id": "0x562ce9516850-Name", + "id": "0x56198f07f850-Name", "source": "u_dir" }, { - "id": "0x562ce951c0f0-CloseSpec", + "id": "0x56198f0850f0-CloseSpec", "variantKey": "StatusExpr", - "StatusExpr": "0x562ce951c0f0-StatusExpr" + "StatusExpr": "0x56198f0850f0-StatusExpr" }, { - "id": "0x562ce951c0f0-StatusExpr", - "Expr": "0x562ce9517d90-Expr" + "id": "0x56198f0850f0-StatusExpr", + "Expr": "0x56198f080d90-Expr" }, { - "id": "0x562ce9517d90-Expr", + "id": "0x56198f080d90-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce9517db0-LiteralConstant" + "LiteralConstant": "0x56198f080db0-LiteralConstant" }, { - "id": "0x562ce9517db0-LiteralConstant", + "id": "0x56198f080db0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x562ce9517db0-CharLiteralConstant" + "CharLiteralConstant": "0x56198f080db0-CharLiteralConstant" }, { - "id": "0x562ce9517db0-CharLiteralConstant", + "id": "0x56198f080db0-CharLiteralConstant", "string": "delete" }, { - "id": "0x562ce9518430-ExecutionPartConstruct", + "id": "0x56198f081430-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x562ce9518430-ExecutableConstruct" + "ExecutableConstruct": "0x56198f081430-ExecutableConstruct" }, { - "id": "0x562ce9518430-ExecutableConstruct", + "id": "0x56198f081430-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x562ce9518430-Statement" + "Statement": "0x56198f081430-Statement" }, { - "id": "0x562ce9518430-Statement", - "statement": "0x562ce9518440-ActionStmt", + "id": "0x56198f081430-Statement", + "statement": "0x56198f081440-ActionStmt", "source": "close(u_stream, status='delete')" }, { - "id": "0x562ce9518440-ActionStmt", + "id": "0x56198f081440-ActionStmt", "variantKey": "CloseStmt", - "CloseStmt": "0x562ce951b900-CloseStmt" + "CloseStmt": "0x56198f084900-CloseStmt" }, { - "id": "0x562ce951b900-CloseStmt", + "id": "0x56198f084900-CloseStmt", "CloseSpec": [ - "0x562ce951bf20-CloseSpec", - "0x562ce951c170-CloseSpec" + "0x56198f084f20-CloseSpec", + "0x56198f085170-CloseSpec" ] }, { - "id": "0x562ce951bf20-CloseSpec", + "id": "0x56198f084f20-CloseSpec", "variantKey": "FileUnitNumber", - "FileUnitNumber": "0x562ce951bf20-FileUnitNumber" + "FileUnitNumber": "0x56198f084f20-FileUnitNumber" }, { - "id": "0x562ce951bf20-FileUnitNumber", - "Expr": "0x562ce9517cb0-Expr" + "id": "0x56198f084f20-FileUnitNumber", + "Expr": "0x56198f080cb0-Expr" }, { - "id": "0x562ce9517cb0-Expr", + "id": "0x56198f080cb0-Expr", "variantKey": "Designator", - "Designator": "0x562ce9514790-Designator" + "Designator": "0x56198f07d790-Designator" }, { - "id": "0x562ce9514790-Designator", + "id": "0x56198f07d790-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce95147a0-DataRef" + "DataRef": "0x56198f07d7a0-DataRef" }, { - "id": "0x562ce95147a0-DataRef", + "id": "0x56198f07d7a0-DataRef", "variantKey": "Name", - "Name": "0x562ce95147a0-Name" + "Name": "0x56198f07d7a0-Name" }, { - "id": "0x562ce95147a0-Name", + "id": "0x56198f07d7a0-Name", "source": "u_stream" }, { - "id": "0x562ce951c170-CloseSpec", + "id": "0x56198f085170-CloseSpec", "variantKey": "StatusExpr", - "StatusExpr": "0x562ce951c170-StatusExpr" + "StatusExpr": "0x56198f085170-StatusExpr" }, { - "id": "0x562ce951c170-StatusExpr", - "Expr": "0x562ce952bb10-Expr" + "id": "0x56198f085170-StatusExpr", + "Expr": "0x56198f094b10-Expr" }, { - "id": "0x562ce952bb10-Expr", + "id": "0x56198f094b10-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce952bb30-LiteralConstant" + "LiteralConstant": "0x56198f094b30-LiteralConstant" }, { - "id": "0x562ce952bb30-LiteralConstant", + "id": "0x56198f094b30-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x562ce952bb30-CharLiteralConstant" + "CharLiteralConstant": "0x56198f094b30-CharLiteralConstant" }, { - "id": "0x562ce952bb30-CharLiteralConstant", + "id": "0x56198f094b30-CharLiteralConstant", "string": "delete" }, { - "id": "0x562ce951a6f0-ExecutionPartConstruct", + "id": "0x56198f0836f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x562ce951a6f0-ExecutableConstruct" + "ExecutableConstruct": "0x56198f0836f0-ExecutableConstruct" }, { - "id": "0x562ce951a6f0-ExecutableConstruct", + "id": "0x56198f0836f0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x562ce951a6f0-Statement" + "Statement": "0x56198f0836f0-Statement" }, { - "id": "0x562ce951a6f0-Statement", - "statement": "0x562ce951a700-ActionStmt", + "id": "0x56198f0836f0-Statement", + "statement": "0x56198f083700-ActionStmt", "source": "stop" }, { - "id": "0x562ce951a700-ActionStmt", + "id": "0x56198f083700-ActionStmt", "variantKey": "StopStmt", - "StopStmt": "0x562ce952bbf0-StopStmt" + "StopStmt": "0x56198f094bf0-StopStmt" }, { - "id": "0x562ce952bbf0-StopStmt", - "kind": "0x562ce952bcd8-Kind" + "id": "0x56198f094bf0-StopStmt", + "kind": "0x56198f094cd8-Kind" }, { - "id": "0x562ce952bcd8-Kind", + "id": "0x56198f094cd8-Kind", "disambiguation": "Fortran::parser::StopStmt::Kind", "value": "Stop" }, { - "id": "0x562ce952c1e0-ExecutionPartConstruct", + "id": "0x56198f0951e0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x562ce952c1e0-ExecutableConstruct" + "ExecutableConstruct": "0x56198f0951e0-ExecutableConstruct" }, { - "id": "0x562ce952c1e0-ExecutableConstruct", + "id": "0x56198f0951e0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x562ce952c1e0-Statement" + "Statement": "0x56198f0951e0-Statement" }, { - "id": "0x562ce952c1e0-Statement", - "statement": "0x562ce952c1f0-ActionStmt", + "id": "0x56198f0951e0-Statement", + "statement": "0x56198f0951f0-ActionStmt", "label": "900", "source": "900 print *, \"I/O Error Occurred: \", trim(io_message)" }, { - "id": "0x562ce952c1f0-ActionStmt", + "id": "0x56198f0951f0-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x562ce952c070-PrintStmt" + "PrintStmt": "0x56198f095070-PrintStmt" }, { - "id": "0x562ce952c070-PrintStmt", - "Format": "0x562ce952c088-Format", + "id": "0x56198f095070-PrintStmt", + "Format": "0x56198f095088-Format", "OutputItem": [ - "0x562ce952bf90-OutputItem", - "0x562ce952bea0-OutputItem" + "0x56198f094f90-OutputItem", + "0x56198f094ea0-OutputItem" ] }, { - "id": "0x562ce952c088-Format", + "id": "0x56198f095088-Format", "variantKey": "Star", - "Star": "0x562ce952c088-Star" + "Star": "0x56198f095088-Star" }, { - "id": "0x562ce952c088-Star" + "id": "0x56198f095088-Star" }, { - "id": "0x562ce952bf90-OutputItem", + "id": "0x56198f094f90-OutputItem", "variantKey": "Expr", - "Expr": "0x562ce952bf90-Expr" + "Expr": "0x56198f094f90-Expr" }, { - "id": "0x562ce952bf90-Expr", + "id": "0x56198f094f90-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562ce952bfb0-LiteralConstant" + "LiteralConstant": "0x56198f094fb0-LiteralConstant" }, { - "id": "0x562ce952bfb0-LiteralConstant", + "id": "0x56198f094fb0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x562ce952bfb0-CharLiteralConstant" + "CharLiteralConstant": "0x56198f094fb0-CharLiteralConstant" }, { - "id": "0x562ce952bfb0-CharLiteralConstant", + "id": "0x56198f094fb0-CharLiteralConstant", "string": "I/O Error Occurred: " }, { - "id": "0x562ce952bea0-OutputItem", + "id": "0x56198f094ea0-OutputItem", "variantKey": "Expr", - "Expr": "0x562ce952bea0-Expr" + "Expr": "0x56198f094ea0-Expr" }, { - "id": "0x562ce952bea0-Expr", + "id": "0x56198f094ea0-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x562ce9514af0-FunctionReference" + "FunctionReference": "0x56198f07daf0-FunctionReference" }, { - "id": "0x562ce9514af0-FunctionReference", - "Call": "0x562ce9514af0-Call" + "id": "0x56198f07daf0-FunctionReference", + "Call": "0x56198f07daf0-Call" }, { - "id": "0x562ce9514af0-Call", - "ProcedureDesignator": "0x562ce9514b08-ProcedureDesignator", + "id": "0x56198f07daf0-Call", + "ProcedureDesignator": "0x56198f07db08-ProcedureDesignator", "ActualArgSpec": [ - "0x562ce9513090-ActualArgSpec" + "0x56198f07c090-ActualArgSpec" ] }, { - "id": "0x562ce9514b08-ProcedureDesignator", + "id": "0x56198f07db08-ProcedureDesignator", "variantKey": "Name", - "Name": "0x562ce9514b08-Name" + "Name": "0x56198f07db08-Name" }, { - "id": "0x562ce9514b08-Name", + "id": "0x56198f07db08-Name", "source": "trim" }, { - "id": "0x562ce9513090-ActualArgSpec", - "ActualArg": "0x562ce9513090-ActualArg" + "id": "0x56198f07c090-ActualArgSpec", + "ActualArg": "0x56198f07c090-ActualArg" }, { - "id": "0x562ce9513090-ActualArg", + "id": "0x56198f07c090-ActualArg", "variantKey": "Expr", - "Expr": "0x562ce952bd50-Expr" + "Expr": "0x56198f094d50-Expr" }, { - "id": "0x562ce952bd50-Expr", + "id": "0x56198f094d50-Expr", "variantKey": "Designator", - "Designator": "0x562ce952bcf0-Designator" + "Designator": "0x56198f094cf0-Designator" }, { - "id": "0x562ce952bcf0-Designator", + "id": "0x56198f094cf0-Designator", "variantKey": "DataRef", - "DataRef": "0x562ce952bd00-DataRef" + "DataRef": "0x56198f094d00-DataRef" }, { - "id": "0x562ce952bd00-DataRef", + "id": "0x56198f094d00-DataRef", "variantKey": "Name", - "Name": "0x562ce952bd00-Name" + "Name": "0x56198f094d00-Name" }, { - "id": "0x562ce952bd00-Name", + "id": "0x56198f094d00-Name", "source": "io_message" }, { - "id": "0x562ce95245d0-Statement", - "statement": "0x562ce95245e0-EndProgramStmt", + "id": "0x56198f08d5d0-Statement", + "statement": "0x56198f08d5e0-EndProgramStmt", "source": "end program IO_CONTROL_SPECS" }, { - "id": "0x562ce95245e0-EndProgramStmt", - "Name": "0x562ce95245e0-Name" + "id": "0x56198f08d5e0-EndProgramStmt", + "Name": "0x56198f08d5e0-Name" }, { - "id": "0x562ce95245e0-Name", + "id": "0x56198f08d5e0-Name", "source": "IO_CONTROL_SPECS" } ], "comments": [ { "text": " Define a namelist for the NML specifier demo", - "stmtId": "0x562ce94f3da0-Statement", + "stmtId": "0x56198f05cda0-Statement", "trailing": false }, { "text": " Open temporary test files (Sequential, Direct, Stream)", - "stmtId": "0x562ce95129b0-Statement", + "stmtId": "0x56198f07b9b0-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x562ce9517490-Statement", + "stmtId": "0x56198f080490-Statement", "trailing": false }, { "text": " 1. Formatting, Rounding, Decimal, Sign, Delim, IOSTAT & IOMSG", - "stmtId": "0x562ce9517490-Statement", + "stmtId": "0x56198f080490-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x562ce9517490-Statement", + "stmtId": "0x56198f080490-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x562ce9522fe0-Statement", + "stmtId": "0x56198f08bfe0-Statement", "trailing": false }, { "text": " 2. Namelist Specifier (NML)", - "stmtId": "0x562ce9522fe0-Statement", + "stmtId": "0x56198f08bfe0-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x562ce9522fe0-Statement", + "stmtId": "0x56198f08bfe0-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x562ce9515510-Statement", + "stmtId": "0x56198f07e510-Statement", "trailing": false }, { "text": " 3. Non-Advancing I/O (ADVANCE, SIZE, PAD, EOR, ERR)", - "stmtId": "0x562ce9515510-Statement", + "stmtId": "0x56198f07e510-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x562ce9515510-Statement", + "stmtId": "0x56198f07e510-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x562ce9519850-Statement", + "stmtId": "0x56198f082850-Statement", "trailing": false }, { "text": " 4. Direct Access (REC)", - "stmtId": "0x562ce9519850-Statement", + "stmtId": "0x56198f082850-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x562ce9519850-Statement", + "stmtId": "0x56198f082850-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x562ce9518270-Statement", + "stmtId": "0x56198f081270-Statement", "trailing": false }, { "text": " 5. Stream Access (POS)", - "stmtId": "0x562ce9518270-Statement", + "stmtId": "0x56198f081270-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x562ce9518270-Statement", + "stmtId": "0x56198f081270-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x562ce951a9f0-Statement", + "stmtId": "0x56198f0839f0-Statement", "trailing": false }, { "text": " 6. Asynchronous Non-Blocking I/O (ASYNCHRONOUS, ID)", - "stmtId": "0x562ce951a9f0-Statement", + "stmtId": "0x56198f0839f0-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x562ce951a9f0-Statement", + "stmtId": "0x56198f0839f0-Statement", "trailing": false }, { "text": " Wait for async operation to complete before continuing", - "stmtId": "0x562ce9518f50-Statement", + "stmtId": "0x56198f081f50-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x562ce952b8d0-Statement", + "stmtId": "0x56198f0948d0-Statement", "trailing": false }, { "text": " 7. Input Blank Handling and EOF Branching (BLANK, END)", - "stmtId": "0x562ce952b8d0-Statement", + "stmtId": "0x56198f0948d0-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x562ce952b8d0-Statement", + "stmtId": "0x56198f0948d0-Statement", "trailing": false }, { "text": " Clean up files", - "stmtId": "0x562ce9517e80-Statement", + "stmtId": "0x56198f080e80-Statement", "trailing": false } ], diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/AlwaysClassMapper.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/AlwaysClassMapper.java index df5deb7c..54e66967 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/AlwaysClassMapper.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/AlwaysClassMapper.java @@ -5,15 +5,13 @@ import java.util.Optional; public class AlwaysClassMapper extends ClassMapper { - private final Class clazz; - public AlwaysClassMapper(Class clazz) { - this.clazz = clazz; + super(clazz); } @Override public Optional> get(FlangAttributes attrs) { - return Optional.of(clazz); + return Optional.of(gerSuperClass()); } @Override diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/CaseClassMapper.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/CaseClassMapper.java index 8638d76f..d99d7eba 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/CaseClassMapper.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/CaseClassMapper.java @@ -10,12 +10,13 @@ public class CaseClassMapper extends ClassMapper { private final Map>> caseMap; - public CaseClassMapper(Map>> caseMap) { + public CaseClassMapper(Class clazz, Map>> caseMap) { + super(clazz); this.caseMap = new HashMap<>(caseMap); } - public CaseClassMapper() { - this.caseMap = new HashMap<>(); + public CaseClassMapper(Class clazz) { + this(clazz, Map.of()); } public CaseClassMapper map(String variantKey, Class clazz) { @@ -40,8 +41,8 @@ public CaseClassMapper ignore(FlangName variantKey) { public Optional> get(FlangAttributes attrs) { var variantKey = attrs.getVariantKey(); var clazz = caseMap.get(variantKey); - Objects.requireNonNull(clazz, () -> "Could not find variant node for node with variant key '" - + variantKey + "'"); + Objects.requireNonNull(clazz, () -> "Could not find variant node of '" + gerSuperClass().getName() + + "' for variant key '" + variantKey + "'"); return clazz; } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/ClassMapper.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/ClassMapper.java index 6ac2b71f..8cf1f631 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/ClassMapper.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/ClassMapper.java @@ -5,14 +5,24 @@ import java.util.Optional; public abstract class ClassMapper { + private final Class superClass; + + public ClassMapper(Class superClass) { + this.superClass = superClass; + } + + public Class gerSuperClass() { + return superClass; + } + public abstract Optional> get(FlangAttributes attrs); public abstract boolean has(FlangAttributes attrs); - public static AlwaysClassMapper always(Class clazz) { - return new AlwaysClassMapper<>(clazz); + public static AlwaysClassMapper always(Class superClass) { + return new AlwaysClassMapper<>(superClass); } - public static CaseClassMapper caseFor(Class ignoredClazz) { - return new CaseClassMapper<>(); + public static CaseClassMapper caseFor(Class superClass) { + return new CaseClassMapper<>(superClass); } } From d246bc5913b79ce35ce1afa2802e7201286183df Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 27 Jul 2026 15:13:31 +0100 Subject: [PATCH 129/260] Add nodes for rewind statement --- .../fe/specs/fortran/ast/FortranKeyword.java | 1 + .../fortran/ast/nodes/io/ErrPosFlushSpec.java | 26 ++++++++++++++ .../fortran/ast/nodes/io/PosFlushSpec.java | 12 +++++++ .../fortran/ast/nodes/io/RewindStmt.java | 29 ++++++++++++++++ .../ast/nodes/io/UnitPosFlushSpec.java | 23 +++++++++++++ .../fortran/ast/nodes/io/VarPosFlushSpec.java | 34 +++++++++++++++++++ .../nodes/io/enums/VarPosFlushSpecKind.java | 6 ++++ 7 files changed, 131 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ErrPosFlushSpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/PosFlushSpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/RewindStmt.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/UnitPosFlushSpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/VarPosFlushSpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/VarPosFlushSpecKind.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java index 3935c52b..442df249 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -31,6 +31,7 @@ public enum FortranKeyword { UNIT, FMT, NML, + REWIND, // Conditional statements IF, diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ErrPosFlushSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ErrPosFlushSpec.java new file mode 100644 index 00000000..1c93e1d0 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ErrPosFlushSpec.java @@ -0,0 +1,26 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class ErrPosFlushSpec extends PosFlushSpec { + public static final DataKey LABEL = KeyFactory.integer("label"); + + public ErrPosFlushSpec(DataStore data, Collection children) { + super(data, children); + } + + public int getLabel() { + return get(LABEL); + } + + @Override + public String getCode() { + return keyword(FortranKeyword.ERR) + "=" + getLabel(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/PosFlushSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/PosFlushSpec.java new file mode 100644 index 00000000..d836e9b8 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/PosFlushSpec.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class PosFlushSpec extends FortranNode { + public PosFlushSpec(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/RewindStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/RewindStmt.java new file mode 100644 index 00000000..8f0c9def --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/RewindStmt.java @@ -0,0 +1,29 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.ActionStmt; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +public class RewindStmt extends ActionStmt { + public RewindStmt(DataStore data, Collection children) { + super(data, children); + } + + public List getSpecs() { + return getChildren(PosFlushSpec.class); + } + + @Override + public String getStmtCode() { + var specsCode = getSpecs().stream() + .map(PosFlushSpec::getCode) + .collect(Collectors.joining(", ", "(", ")")); + + return keyword(FortranKeyword.REWIND) + specsCode; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/UnitPosFlushSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/UnitPosFlushSpec.java new file mode 100644 index 00000000..51888f38 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/UnitPosFlushSpec.java @@ -0,0 +1,23 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; + +import java.util.Collection; + +public class UnitPosFlushSpec extends PosFlushSpec { + public UnitPosFlushSpec(DataStore data, Collection children) { + super(data, children); + } + + public Expr getExpr() { + return getChild(Expr.class, 0); + } + + @Override + public String getCode() { + return keyword(FortranKeyword.UNIT) + "=" + getExpr().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/VarPosFlushSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/VarPosFlushSpec.java new file mode 100644 index 00000000..045ec6ee --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/VarPosFlushSpec.java @@ -0,0 +1,34 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.decl.Variable; +import pt.up.fe.specs.fortran.ast.nodes.io.enums.VarPosFlushSpecKind; + +import java.util.Collection; + +public class VarPosFlushSpec extends PosFlushSpec { + public static final DataKey KIND = KeyFactory.enumeration("kind", VarPosFlushSpecKind.class); + + public VarPosFlushSpec(DataStore data, Collection children) { + super(data, children); + } + + public VarPosFlushSpecKind getKind() { + return get(KIND); + } + + public Variable getVariable() { + return getChild(Variable.class, 0); + } + + @Override + public String getCode() { + var kindCode = encase(getKind().name()); + var varCode = getVariable().getCode(); + + return kindCode + "=" + varCode; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/VarPosFlushSpecKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/VarPosFlushSpecKind.java new file mode 100644 index 00000000..fc660ddb --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/VarPosFlushSpecKind.java @@ -0,0 +1,6 @@ +package pt.up.fe.specs.fortran.ast.nodes.io.enums; + +public enum VarPosFlushSpecKind { + IOMSG, + IOSTAT; +} From 50facfc9d2d331042c7566c8f31a1d9411effd6d Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 27 Jul 2026 15:34:12 +0100 Subject: [PATCH 130/260] Fix parsing of write statements --- .../parser/processors/IoProcessors.java | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java index b72f3fef..63db7b71 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java @@ -6,6 +6,8 @@ import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; +import java.util.List; + public class IoProcessors extends ANodeProcessor { private final StmtProcessors stmtProcessors; @@ -100,20 +102,22 @@ public void errConnectSpec(ErrConnectSpec spec) { public void writeStmt(WriteStmt writeStmt) { stmtProcessors.actionStmt(writeStmt); - if (attributes(writeStmt).has("iounit")) { - writeStmt.addChild(getChild(writeStmt, "iounit")); + if (attributes(writeStmt).has(FlangName.IO_UNIT)) { + writeStmt.addChild(getChild(writeStmt, FlangName.IO_UNIT)); } - if (attributes(writeStmt).has("format")) { - writeStmt.addChild(getChild(writeStmt, "format")); + if (attributes(writeStmt).has(FlangName.FORMAT)) { + var format = getChild(writeStmt, FlangName.FORMAT); + var spec = factory().newNode(FormatIoControlSpec.class, List.of(format)); + writeStmt.addChild(spec); } - if (attributes(writeStmt).has("controls")) { - writeStmt.addChildren(getChildren(writeStmt, "controls")); + if (attributes(writeStmt).has(FlangName.IO_CONTROL_SPEC)) { + writeStmt.addChildren(getChildren(writeStmt, FlangName.IO_CONTROL_SPEC)); } - if (attributes(writeStmt).has("items")) { - writeStmt.addChildren(getChildren(writeStmt, "items")); + if (attributes(writeStmt).has(FlangName.OUTPUT_ITEM)) { + writeStmt.addChildren(getChildren(writeStmt, FlangName.OUTPUT_ITEM)); } } From af06ea6ec5c2b0426c173299a879ae4d85cbfba6 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 27 Jul 2026 15:51:06 +0100 Subject: [PATCH 131/260] Add processors for rewind stmt --- .../up/fe/specs/fortran/parser/FlangName.java | 2 ++ .../fe/specs/fortran/parser/FlangToClass.java | 6 ++++ .../parser/processors/IoProcessors.java | 34 +++++++++++++++++++ .../fortran/parser/processors/Nodes.java | 4 +++ 4 files changed, 46 insertions(+) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 3b66392e..b3452b10 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -198,6 +198,8 @@ public enum FlangName implements StringProvider { POS, REC, SIZE, + REWIND_STMT, + POSITION_OR_FLUSH_SPEC, /// OPENMP OPENMP_CONSTRUCT("OpenMPConstruct"), diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index b06752ae..d4b6d1de 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -246,6 +246,12 @@ public class FlangToClass { .map(FlangName.EXPR, ExprIoControlSpec.class) .map(FlangName.VARIABLE, VarIoControlSpec.class) .map(FlangName.STAR, StarUnitIoControlSpec.class)); + NAME_TO_MAPPER.put(FlangName.REWIND_STMT, ClassMapper.always(RewindStmt.class)); + NAME_TO_MAPPER.put(FlangName.POSITION_OR_FLUSH_SPEC, ClassMapper.caseFor(PosFlushSpec.class) + .map(FlangName.FILE_UNIT_NUMBER, UnitPosFlushSpec.class) + .map(FlangName.MSG_VARIABLE, VarPosFlushSpec.class) + .map(FlangName.STAT_VARIABLE, VarPosFlushSpec.class) + .map(FlangName.ERR_LABEL, ErrPosFlushSpec.class)); /// UTILs NAME_TO_MAPPER.put(FlangName.NAME_VALUE, ClassMapper.always(NameValue.class)); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java index 63db7b71..ad6a15a0 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java @@ -207,4 +207,38 @@ public void namelistIoControlSpec(NamelistIoControlSpec spec) { var namelistName = attributes().getString(spec, "source", FlangName.NAME); spec.set(NamelistIoControlSpec.NAMELIST_NAME, namelistName); } + + public void rewindStmt(RewindStmt rewindStmt) { + if (attributes(rewindStmt).has(FlangName.POSITION_OR_FLUSH_SPEC)) { + var children = getChildren(rewindStmt, FlangName.POSITION_OR_FLUSH_SPEC); + rewindStmt.addChildren(children); + } + } + + public void unitPosFlushSpec(UnitPosFlushSpec spec) { + var exprId = attributes().getString(spec, FlangName.EXPR.getString(), FlangName.FILE_UNIT_NUMBER); + var expr = getChild(exprId); + spec.addChild(expr); + } + + public void varPosFlushSpec(VarPosFlushSpec spec) { + var attrs = attributes(spec); + var variant = attrs.getVariantName(); + + var kind = switch (variant) { + case MSG_VARIABLE -> VarPosFlushSpecKind.IOMSG; + case STAT_VARIABLE -> VarPosFlushSpecKind.IOSTAT; + default -> throw new RuntimeException("Variant '" + variant + "' of VarPosFlushSpec is not handled."); + }; + spec.set(VarPosFlushSpec.KIND, kind); + + var variableId = getChildAttrs(attrs).getString(FlangName.VARIABLE); + var variable = getChild(variableId); + spec.addChild(variable); + } + + public void errPosFlushSpec(ErrPosFlushSpec spec) { + var label = attributes().getString(spec, "uint64_t", FlangName.ERR_LABEL); + spec.set(ErrPosFlushSpec.LABEL, Integer.parseInt(label)); + } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 753f72df..7bf4884a 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -205,6 +205,10 @@ public Nodes(FortranJsonResult data) { processors.put(StarUnitIoControlSpec.class, i::starUnitIoControlSpec); processors.put(FormatIoControlSpec.class, i::formatIoControlSpec); processors.put(NamelistIoControlSpec.class, i::namelistIoControlSpec); + processors.put(RewindStmt.class, i::rewindStmt); + processors.put(UnitPosFlushSpec.class, i::unitPosFlushSpec); + processors.put(VarPosFlushSpec.class, i::varPosFlushSpec); + processors.put(ErrPosFlushSpec.class, i::errPosFlushSpec); var omp = new OmpProcessors(data, s); processors.put(OmpBlockConstruct.class, omp::ompBlockConstruct); From 77332d740065bbe07cd9d73a455a7984ca4d87f8 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 27 Jul 2026 15:56:23 +0100 Subject: [PATCH 132/260] Create AST nodes for namelist statements --- .../fe/specs/fortran/ast/FortranKeyword.java | 1 + .../fortran/ast/nodes/stmt/NamelistGroup.java | 33 +++++++++++++++++++ .../fortran/ast/nodes/stmt/NamelistStmt.java | 28 ++++++++++++++++ 3 files changed, 62 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/NamelistGroup.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/NamelistStmt.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java index 442df249..444397d9 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -32,6 +32,7 @@ public enum FortranKeyword { FMT, NML, REWIND, + NAMELIST, // Conditional statements IF, diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/NamelistGroup.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/NamelistGroup.java new file mode 100644 index 00000000..7e3e2bfb --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/NamelistGroup.java @@ -0,0 +1,33 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; +import java.util.List; + +public class NamelistGroup extends FortranNode { + public static final DataKey GROUP_NAME = KeyFactory.string("groupName"); + public static final DataKey> OBJECT_NAMES = KeyFactory.list("objectNames", String.class); + + public NamelistGroup(DataStore data, Collection children) { + super(data, children); + } + + public String getGroupName() { + return get(GROUP_NAME); + } + + public List getObjectNames() { + return get(OBJECT_NAMES); + } + + @Override + public String getCode() { + var objectsCode = String.join(", ", getObjectNames()); + + return "/ " + getGroupName() + " / " + objectsCode; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/NamelistStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/NamelistStmt.java new file mode 100644 index 00000000..a5140fce --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/NamelistStmt.java @@ -0,0 +1,28 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +public class NamelistStmt extends Stmt { + public NamelistStmt(DataStore data, Collection children) { + super(data, children); + } + + public List getGroups() { + return getChildren(NamelistGroup.class); + } + + @Override + public String getStmtCode() { + var groupsCode = getGroups().stream() + .map(NamelistGroup::getCode) + .collect(Collectors.joining(", ")); + + return keyword(FortranKeyword.NAMELIST) + " " + groupsCode; + } +} From 156040622968c352f4cf473dbc45245cae528677 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 27 Jul 2026 16:06:10 +0100 Subject: [PATCH 133/260] Add mapping and processors for namelist statements --- .../fortran/parser/io/io_control.json | 2223 +++++++++-------- .../up/fe/specs/fortran/parser/FlangName.java | 2 + .../fortran/parser/processors/Nodes.java | 2 + .../parser/processors/StmtProcessors.java | 18 + 4 files changed, 1134 insertions(+), 1111 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/io/io_control.json b/FortranParser/resources-test/fortran/parser/io/io_control.json index 85bf7713..33c1962e 100644 --- a/FortranParser/resources-test/fortran/parser/io/io_control.json +++ b/FortranParser/resources-test/fortran/parser/io/io_control.json @@ -2,2870 +2,2871 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x56198f04ff00-Program", + "id": "0x564132f9ef00-Program", "ProgramUnit": [ - "0x56198f08e9f0-ProgramUnit" + "0x564132fdd9f0-ProgramUnit" ] }, { - "id": "0x56198f08e9f0-ProgramUnit", + "id": "0x564132fdd9f0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x56198f08d5d0-MainProgram" + "MainProgram": "0x564132fdc5d0-MainProgram" }, { - "id": "0x56198f08d5d0-MainProgram", - "Statement": "0x56198f08d718-Statement", - "SpecificationPart": "0x56198f08d670-SpecificationPart", - "ExecutionPart": "0x56198f08d658-ExecutionPart", - "Statement": "0x56198f08d5d0-Statement" + "id": "0x564132fdc5d0-MainProgram", + "Statement": "0x564132fdc718-Statement", + "SpecificationPart": "0x564132fdc670-SpecificationPart", + "ExecutionPart": "0x564132fdc658-ExecutionPart", + "Statement": "0x564132fdc5d0-Statement" }, { - "id": "0x56198f08d718-Statement", - "statement": "0x56198f08d728-ProgramStmt", + "id": "0x564132fdc718-Statement", + "statement": "0x564132fdc728-ProgramStmt", "source": "program IO_CONTROL_SPECS" }, { - "id": "0x56198f08d728-ProgramStmt", - "Name": "0x56198f08d728-Name" + "id": "0x564132fdc728-ProgramStmt", + "Name": "0x564132fdc728-Name" }, { - "id": "0x56198f08d728-Name", + "id": "0x564132fdc728-Name", "source": "IO_CONTROL_SPECS" }, { - "id": "0x56198f08d670-SpecificationPart", - "ImplicitPart": "0x56198f08d688-ImplicitPart", + "id": "0x564132fdc670-SpecificationPart", + "ImplicitPart": "0x564132fdc688-ImplicitPart", "DeclarationConstruct": [ - "0x56198f05d170-DeclarationConstruct", - "0x56198f05d110-DeclarationConstruct", - "0x56198f08cbe0-DeclarationConstruct", - "0x56198f08ccc0-DeclarationConstruct", - "0x56198f07a950-DeclarationConstruct", - "0x56198f07ac00-DeclarationConstruct", - "0x56198f05cda0-DeclarationConstruct" + "0x564132fac170-DeclarationConstruct", + "0x564132fac110-DeclarationConstruct", + "0x564132fdbbe0-DeclarationConstruct", + "0x564132fdbcc0-DeclarationConstruct", + "0x564132fc9950-DeclarationConstruct", + "0x564132fc9c00-DeclarationConstruct", + "0x564132fabda0-DeclarationConstruct" ] }, { - "id": "0x56198f08d688-ImplicitPart" + "id": "0x564132fdc688-ImplicitPart" }, { - "id": "0x56198f05d170-DeclarationConstruct", + "id": "0x564132fac170-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x56198f05d170-SpecificationConstruct" + "SpecificationConstruct": "0x564132fac170-SpecificationConstruct" }, { - "id": "0x56198f05d170-SpecificationConstruct", + "id": "0x564132fac170-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x56198f05d170-Statement" + "Statement": "0x564132fac170-Statement" }, { - "id": "0x56198f05d170-Statement", - "statement": "0x56198f08c170-TypeDeclarationStmt", + "id": "0x564132fac170-Statement", + "statement": "0x564132fdb170-TypeDeclarationStmt", "source": "integer :: u_seq, u_dir, u_stream" }, { - "id": "0x56198f08c170-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x56198f08c1a0-DeclarationTypeSpec", + "id": "0x564132fdb170-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x564132fdb1a0-DeclarationTypeSpec", "EntityDecl": [ - "0x56198f08c460-EntityDecl", - "0x56198f08c280-EntityDecl", - "0x56198f08c370-EntityDecl" + "0x564132fdb460-EntityDecl", + "0x564132fdb280-EntityDecl", + "0x564132fdb370-EntityDecl" ] }, { - "id": "0x56198f08c1a0-DeclarationTypeSpec", + "id": "0x564132fdb1a0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x56198f08c1a0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x564132fdb1a0-IntrinsicTypeSpec" }, { - "id": "0x56198f08c1a0-IntrinsicTypeSpec", + "id": "0x564132fdb1a0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x56198f08c1a0-IntegerTypeSpec" + "IntegerTypeSpec": "0x564132fdb1a0-IntegerTypeSpec" }, { - "id": "0x56198f08c1a0-IntegerTypeSpec" + "id": "0x564132fdb1a0-IntegerTypeSpec" }, { - "id": "0x56198f08c460-EntityDecl", - "Name": "0x56198f08c518-Name" + "id": "0x564132fdb460-EntityDecl", + "Name": "0x564132fdb518-Name" }, { - "id": "0x56198f08c518-Name", + "id": "0x564132fdb518-Name", "source": "u_seq" }, { - "id": "0x56198f08c280-EntityDecl", - "Name": "0x56198f08c338-Name" + "id": "0x564132fdb280-EntityDecl", + "Name": "0x564132fdb338-Name" }, { - "id": "0x56198f08c338-Name", + "id": "0x564132fdb338-Name", "source": "u_dir" }, { - "id": "0x56198f08c370-EntityDecl", - "Name": "0x56198f08c428-Name" + "id": "0x564132fdb370-EntityDecl", + "Name": "0x564132fdb428-Name" }, { - "id": "0x56198f08c428-Name", + "id": "0x564132fdb428-Name", "source": "u_stream" }, { - "id": "0x56198f05d110-DeclarationConstruct", + "id": "0x564132fac110-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x56198f05d110-SpecificationConstruct" + "SpecificationConstruct": "0x564132fac110-SpecificationConstruct" }, { - "id": "0x56198f05d110-SpecificationConstruct", + "id": "0x564132fac110-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x56198f05d110-Statement" + "Statement": "0x564132fac110-Statement" }, { - "id": "0x56198f05d110-Statement", - "statement": "0x56198f08c1f0-TypeDeclarationStmt", + "id": "0x564132fac110-Statement", + "statement": "0x564132fdb1f0-TypeDeclarationStmt", "source": "integer :: ios, async_id, chars_read" }, { - "id": "0x56198f08c1f0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x56198f08c220-DeclarationTypeSpec", + "id": "0x564132fdb1f0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x564132fdb220-DeclarationTypeSpec", "EntityDecl": [ - "0x56198f08c7b0-EntityDecl", - "0x56198f08c5d0-EntityDecl", - "0x56198f08c6c0-EntityDecl" + "0x564132fdb7b0-EntityDecl", + "0x564132fdb5d0-EntityDecl", + "0x564132fdb6c0-EntityDecl" ] }, { - "id": "0x56198f08c220-DeclarationTypeSpec", + "id": "0x564132fdb220-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x56198f08c220-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x564132fdb220-IntrinsicTypeSpec" }, { - "id": "0x56198f08c220-IntrinsicTypeSpec", + "id": "0x564132fdb220-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x56198f08c220-IntegerTypeSpec" + "IntegerTypeSpec": "0x564132fdb220-IntegerTypeSpec" }, { - "id": "0x56198f08c220-IntegerTypeSpec" + "id": "0x564132fdb220-IntegerTypeSpec" }, { - "id": "0x56198f08c7b0-EntityDecl", - "Name": "0x56198f08c868-Name" + "id": "0x564132fdb7b0-EntityDecl", + "Name": "0x564132fdb868-Name" }, { - "id": "0x56198f08c868-Name", + "id": "0x564132fdb868-Name", "source": "ios" }, { - "id": "0x56198f08c5d0-EntityDecl", - "Name": "0x56198f08c688-Name" + "id": "0x564132fdb5d0-EntityDecl", + "Name": "0x564132fdb688-Name" }, { - "id": "0x56198f08c688-Name", + "id": "0x564132fdb688-Name", "source": "async_id" }, { - "id": "0x56198f08c6c0-EntityDecl", - "Name": "0x56198f08c778-Name" + "id": "0x564132fdb6c0-EntityDecl", + "Name": "0x564132fdb778-Name" }, { - "id": "0x56198f08c778-Name", + "id": "0x564132fdb778-Name", "source": "chars_read" }, { - "id": "0x56198f08cbe0-DeclarationConstruct", + "id": "0x564132fdbbe0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x56198f08cbe0-SpecificationConstruct" + "SpecificationConstruct": "0x564132fdbbe0-SpecificationConstruct" }, { - "id": "0x56198f08cbe0-SpecificationConstruct", + "id": "0x564132fdbbe0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x56198f08cbe0-Statement" + "Statement": "0x564132fdbbe0-Statement" }, { - "id": "0x56198f08cbe0-Statement", - "statement": "0x56198f08c540-TypeDeclarationStmt", + "id": "0x564132fdbbe0-Statement", + "statement": "0x564132fdb540-TypeDeclarationStmt", "source": "character(len=200) :: io_message" }, { - "id": "0x56198f08c540-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x56198f08c570-DeclarationTypeSpec", + "id": "0x564132fdb540-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x564132fdb570-DeclarationTypeSpec", "EntityDecl": [ - "0x56198f08ca10-EntityDecl" + "0x564132fdba10-EntityDecl" ] }, { - "id": "0x56198f08c570-DeclarationTypeSpec", + "id": "0x564132fdb570-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x56198f08c570-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x564132fdb570-IntrinsicTypeSpec" }, { - "id": "0x56198f08c570-IntrinsicTypeSpec", + "id": "0x564132fdb570-IntrinsicTypeSpec", "variantKey": "Character", - "Character": "0x56198f08c570-Character" + "Character": "0x564132fdb570-Character" }, { - "id": "0x56198f08c570-Character", - "CharSelector": "0x56198f08c570-CharSelector" + "id": "0x564132fdb570-Character", + "CharSelector": "0x564132fdb570-CharSelector" }, { - "id": "0x56198f08c570-CharSelector", + "id": "0x564132fdb570-CharSelector", "variantKey": "LengthSelector", - "LengthSelector": "0x56198f08c570-LengthSelector" + "LengthSelector": "0x564132fdb570-LengthSelector" }, { - "id": "0x56198f08c570-LengthSelector", + "id": "0x564132fdb570-LengthSelector", "variantKey": "TypeParamValue", - "TypeParamValue": "0x56198f08c570-TypeParamValue" + "TypeParamValue": "0x564132fdb570-TypeParamValue" }, { - "id": "0x56198f08c570-TypeParamValue", + "id": "0x564132fdb570-TypeParamValue", "variantKey": "Expr", - "Expr": "0x56198efef790-Expr" + "Expr": "0x564132f3e790-Expr" }, { - "id": "0x56198efef790-Expr", + "id": "0x564132f3e790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198efef7b0-LiteralConstant" + "LiteralConstant": "0x564132f3e7b0-LiteralConstant" }, { - "id": "0x56198efef7b0-LiteralConstant", + "id": "0x564132f3e7b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56198efef7b0-IntLiteralConstant" + "IntLiteralConstant": "0x564132f3e7b0-IntLiteralConstant" }, { - "id": "0x56198efef7b0-IntLiteralConstant", + "id": "0x564132f3e7b0-IntLiteralConstant", "CharBlock": "200" }, { - "id": "0x56198f08ca10-EntityDecl", - "Name": "0x56198f08cac8-Name" + "id": "0x564132fdba10-EntityDecl", + "Name": "0x564132fdbac8-Name" }, { - "id": "0x56198f08cac8-Name", + "id": "0x564132fdbac8-Name", "source": "io_message" }, { - "id": "0x56198f08ccc0-DeclarationConstruct", + "id": "0x564132fdbcc0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x56198f08ccc0-SpecificationConstruct" + "SpecificationConstruct": "0x564132fdbcc0-SpecificationConstruct" }, { - "id": "0x56198f08ccc0-SpecificationConstruct", + "id": "0x564132fdbcc0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x56198f08ccc0-Statement" + "Statement": "0x564132fdbcc0-Statement" }, { - "id": "0x56198f08ccc0-Statement", - "statement": "0x56198f08c890-TypeDeclarationStmt", + "id": "0x564132fdbcc0-Statement", + "statement": "0x564132fdb890-TypeDeclarationStmt", "source": "character(len=20) :: text_buffer" }, { - "id": "0x56198f08c890-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x56198f08c8c0-DeclarationTypeSpec", + "id": "0x564132fdb890-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x564132fdb8c0-DeclarationTypeSpec", "EntityDecl": [ - "0x56198f005270-EntityDecl" + "0x564132f54270-EntityDecl" ] }, { - "id": "0x56198f08c8c0-DeclarationTypeSpec", + "id": "0x564132fdb8c0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x56198f08c8c0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x564132fdb8c0-IntrinsicTypeSpec" }, { - "id": "0x56198f08c8c0-IntrinsicTypeSpec", + "id": "0x564132fdb8c0-IntrinsicTypeSpec", "variantKey": "Character", - "Character": "0x56198f08c8c0-Character" + "Character": "0x564132fdb8c0-Character" }, { - "id": "0x56198f08c8c0-Character", - "CharSelector": "0x56198f08c8c0-CharSelector" + "id": "0x564132fdb8c0-Character", + "CharSelector": "0x564132fdb8c0-CharSelector" }, { - "id": "0x56198f08c8c0-CharSelector", + "id": "0x564132fdb8c0-CharSelector", "variantKey": "LengthSelector", - "LengthSelector": "0x56198f08c8c0-LengthSelector" + "LengthSelector": "0x564132fdb8c0-LengthSelector" }, { - "id": "0x56198f08c8c0-LengthSelector", + "id": "0x564132fdb8c0-LengthSelector", "variantKey": "TypeParamValue", - "TypeParamValue": "0x56198f08c8c0-TypeParamValue" + "TypeParamValue": "0x564132fdb8c0-TypeParamValue" }, { - "id": "0x56198f08c8c0-TypeParamValue", + "id": "0x564132fdb8c0-TypeParamValue", "variantKey": "Expr", - "Expr": "0x56198f093e90-Expr" + "Expr": "0x564132fe2e90-Expr" }, { - "id": "0x56198f093e90-Expr", + "id": "0x564132fe2e90-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f093eb0-LiteralConstant" + "LiteralConstant": "0x564132fe2eb0-LiteralConstant" }, { - "id": "0x56198f093eb0-LiteralConstant", + "id": "0x564132fe2eb0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56198f093eb0-IntLiteralConstant" + "IntLiteralConstant": "0x564132fe2eb0-IntLiteralConstant" }, { - "id": "0x56198f093eb0-IntLiteralConstant", + "id": "0x564132fe2eb0-IntLiteralConstant", "CharBlock": "20" }, { - "id": "0x56198f005270-EntityDecl", - "Name": "0x56198f005328-Name" + "id": "0x564132f54270-EntityDecl", + "Name": "0x564132f54328-Name" }, { - "id": "0x56198f005328-Name", + "id": "0x564132f54328-Name", "source": "text_buffer" }, { - "id": "0x56198f07a950-DeclarationConstruct", + "id": "0x564132fc9950-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x56198f07a950-SpecificationConstruct" + "SpecificationConstruct": "0x564132fc9950-SpecificationConstruct" }, { - "id": "0x56198f07a950-SpecificationConstruct", + "id": "0x564132fc9950-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x56198f07a950-Statement" + "Statement": "0x564132fc9950-Statement" }, { - "id": "0x56198f07a950-Statement", - "statement": "0x56198f08c910-TypeDeclarationStmt", + "id": "0x564132fc9950-Statement", + "statement": "0x564132fdb910-TypeDeclarationStmt", "source": "real :: x = 123.456" }, { - "id": "0x56198f08c910-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x56198f08c940-DeclarationTypeSpec", + "id": "0x564132fdb910-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x564132fdb940-DeclarationTypeSpec", "EntityDecl": [ - "0x56198f07a860-EntityDecl" + "0x564132fc9860-EntityDecl" ] }, { - "id": "0x56198f08c940-DeclarationTypeSpec", + "id": "0x564132fdb940-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x56198f08c940-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x564132fdb940-IntrinsicTypeSpec" }, { - "id": "0x56198f08c940-IntrinsicTypeSpec", + "id": "0x564132fdb940-IntrinsicTypeSpec", "variantKey": "Real", - "Real": "0x56198f08c940-Real" + "Real": "0x564132fdb940-Real" }, { - "id": "0x56198f08c940-Real" + "id": "0x564132fdb940-Real" }, { - "id": "0x56198f07a860-EntityDecl", - "Name": "0x56198f07a918-Name", - "Initialization": "0x56198f07a860-Initialization" + "id": "0x564132fc9860-EntityDecl", + "Name": "0x564132fc9918-Name", + "Initialization": "0x564132fc9860-Initialization" }, { - "id": "0x56198f07a918-Name", + "id": "0x564132fc9918-Name", "source": "x" }, { - "id": "0x56198f07a860-Initialization", + "id": "0x564132fc9860-Initialization", "variantKey": "Expr", - "Expr": "0x56198f07a770-Expr" + "Expr": "0x564132fc9770-Expr" }, { - "id": "0x56198f07a770-Expr", + "id": "0x564132fc9770-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f07a790-LiteralConstant" + "LiteralConstant": "0x564132fc9790-LiteralConstant" }, { - "id": "0x56198f07a790-LiteralConstant", + "id": "0x564132fc9790-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x56198f07a790-RealLiteralConstant" + "RealLiteralConstant": "0x564132fc9790-RealLiteralConstant" }, { - "id": "0x56198f07a790-RealLiteralConstant", - "real": "0x56198f07a790-Real" + "id": "0x564132fc9790-RealLiteralConstant", + "real": "0x564132fc9790-Real" }, { - "id": "0x56198f07a790-Real", + "id": "0x564132fc9790-Real", "source": "123.456" }, { - "id": "0x56198f07ac00-DeclarationConstruct", + "id": "0x564132fc9c00-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x56198f07ac00-SpecificationConstruct" + "SpecificationConstruct": "0x564132fc9c00-SpecificationConstruct" }, { - "id": "0x56198f07ac00-SpecificationConstruct", + "id": "0x564132fc9c00-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x56198f07ac00-Statement" + "Statement": "0x564132fc9c00-Statement" }, { - "id": "0x56198f07ac00-Statement", - "statement": "0x56198f08cc30-TypeDeclarationStmt", + "id": "0x564132fc9c00-Statement", + "statement": "0x564132fdbc30-TypeDeclarationStmt", "source": "integer :: val = 42" }, { - "id": "0x56198f08cc30-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x56198f08cc60-DeclarationTypeSpec", + "id": "0x564132fdbc30-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x564132fdbc60-DeclarationTypeSpec", "EntityDecl": [ - "0x56198f07ab10-EntityDecl" + "0x564132fc9b10-EntityDecl" ] }, { - "id": "0x56198f08cc60-DeclarationTypeSpec", + "id": "0x564132fdbc60-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x56198f08cc60-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x564132fdbc60-IntrinsicTypeSpec" }, { - "id": "0x56198f08cc60-IntrinsicTypeSpec", + "id": "0x564132fdbc60-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x56198f08cc60-IntegerTypeSpec" + "IntegerTypeSpec": "0x564132fdbc60-IntegerTypeSpec" }, { - "id": "0x56198f08cc60-IntegerTypeSpec" + "id": "0x564132fdbc60-IntegerTypeSpec" }, { - "id": "0x56198f07ab10-EntityDecl", - "Name": "0x56198f07abc8-Name", - "Initialization": "0x56198f07ab10-Initialization" + "id": "0x564132fc9b10-EntityDecl", + "Name": "0x564132fc9bc8-Name", + "Initialization": "0x564132fc9b10-Initialization" }, { - "id": "0x56198f07abc8-Name", + "id": "0x564132fc9bc8-Name", "source": "val" }, { - "id": "0x56198f07ab10-Initialization", + "id": "0x564132fc9b10-Initialization", "variantKey": "Expr", - "Expr": "0x56198f07aa20-Expr" + "Expr": "0x564132fc9a20-Expr" }, { - "id": "0x56198f07aa20-Expr", + "id": "0x564132fc9a20-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f07aa40-LiteralConstant" + "LiteralConstant": "0x564132fc9a40-LiteralConstant" }, { - "id": "0x56198f07aa40-LiteralConstant", + "id": "0x564132fc9a40-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56198f07aa40-IntLiteralConstant" + "IntLiteralConstant": "0x564132fc9a40-IntLiteralConstant" }, { - "id": "0x56198f07aa40-IntLiteralConstant", + "id": "0x564132fc9a40-IntLiteralConstant", "CharBlock": "42" }, { - "id": "0x56198f05cda0-DeclarationConstruct", + "id": "0x564132fabda0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x56198f05cda0-SpecificationConstruct" + "SpecificationConstruct": "0x564132fabda0-SpecificationConstruct" }, { - "id": "0x56198f05cda0-SpecificationConstruct", + "id": "0x564132fabda0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x56198f05cda0-Statement" + "Statement": "0x564132fabda0-Statement" }, { - "id": "0x56198f05cda0-Statement", - "statement": "0x56198f05cdb0-OtherSpecificationStmt", + "id": "0x564132fabda0-Statement", + "statement": "0x564132fabdb0-OtherSpecificationStmt", "source": "namelist /my_namelist/ val, x" }, { - "id": "0x56198f05cdb0-OtherSpecificationStmt", + "id": "0x564132fabdb0-OtherSpecificationStmt", "variantKey": "NamelistStmt", - "NamelistStmt": "0x56198f08ebc0-NamelistStmt" + "NamelistStmt": "0x564132fddbc0-NamelistStmt" }, { - "id": "0x56198f08ebc0-NamelistStmt", + "id": "0x564132fddbc0-NamelistStmt", "Group": [ - "0x56198f08d860-Group" + "0x564132fdc860-Group" ] }, { - "id": "0x56198f08d860-Group", - "Name": [ - "0x56198f08e970-Name", - "0x56198f08e940-Name" + "id": "0x564132fdc860-Group", + "groupName": "0x564132fdc878-Name", + "objectNames": [ + "0x564132fdd970-Name", + "0x564132fdd940-Name" ] }, { - "id": "0x56198f08d878-Name", + "id": "0x564132fdc878-Name", "source": "my_namelist" }, { - "id": "0x56198f08e970-Name", + "id": "0x564132fdd970-Name", "source": "val" }, { - "id": "0x56198f08e940-Name", + "id": "0x564132fdd940-Name", "source": "x" }, { - "id": "0x56198f08d658-ExecutionPart", + "id": "0x564132fdc658-ExecutionPart", "ExecutionPartConstruct": [ - "0x56198f07b9b0-ExecutionPartConstruct", - "0x56198f07ea90-ExecutionPartConstruct", - "0x56198f07d9c0-ExecutionPartConstruct", - "0x56198f080490-ExecutionPartConstruct", - "0x56198f08bfe0-ExecutionPartConstruct", - "0x56198f07e510-ExecutionPartConstruct", - "0x56198f082160-ExecutionPartConstruct", - "0x56198f081210-ExecutionPartConstruct", - "0x56198f082850-ExecutionPartConstruct", - "0x56198f081270-ExecutionPartConstruct", - "0x56198f0839f0-ExecutionPartConstruct", - "0x56198f081f50-ExecutionPartConstruct", - "0x56198f0948d0-ExecutionPartConstruct", - "0x56198f07e4b0-ExecutionPartConstruct", - "0x56198f081490-ExecutionPartConstruct", - "0x56198f080e80-ExecutionPartConstruct", - "0x56198f07d2f0-ExecutionPartConstruct", - "0x56198f081430-ExecutionPartConstruct", - "0x56198f0836f0-ExecutionPartConstruct", - "0x56198f0951e0-ExecutionPartConstruct" + "0x564132fca9b0-ExecutionPartConstruct", + "0x564132fcda90-ExecutionPartConstruct", + "0x564132fcc9c0-ExecutionPartConstruct", + "0x564132fcf490-ExecutionPartConstruct", + "0x564132fdafe0-ExecutionPartConstruct", + "0x564132fcd510-ExecutionPartConstruct", + "0x564132fd1160-ExecutionPartConstruct", + "0x564132fd0210-ExecutionPartConstruct", + "0x564132fd1850-ExecutionPartConstruct", + "0x564132fd0270-ExecutionPartConstruct", + "0x564132fd29f0-ExecutionPartConstruct", + "0x564132fd0f50-ExecutionPartConstruct", + "0x564132fe38d0-ExecutionPartConstruct", + "0x564132fcd4b0-ExecutionPartConstruct", + "0x564132fd0490-ExecutionPartConstruct", + "0x564132fcfe80-ExecutionPartConstruct", + "0x564132fcc2f0-ExecutionPartConstruct", + "0x564132fd0430-ExecutionPartConstruct", + "0x564132fd26f0-ExecutionPartConstruct", + "0x564132fe41e0-ExecutionPartConstruct" ] }, { - "id": "0x56198f08d658-ExecutionPartConstruct" + "id": "0x564132fdc658-ExecutionPartConstruct" }, { - "id": "0x56198f07b9b0-ExecutionPartConstruct", + "id": "0x564132fca9b0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56198f07b9b0-ExecutableConstruct" + "ExecutableConstruct": "0x564132fca9b0-ExecutableConstruct" }, { - "id": "0x56198f07b9b0-ExecutableConstruct", + "id": "0x564132fca9b0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56198f07b9b0-Statement" + "Statement": "0x564132fca9b0-Statement" }, { - "id": "0x56198f07b9b0-Statement", - "statement": "0x56198f07b9c0-ActionStmt", + "id": "0x564132fca9b0-Statement", + "statement": "0x564132fca9c0-ActionStmt", "source": "open(newunit=u_seq, file='seq.txt', status='replace', action='readwrite')" }, { - "id": "0x56198f07b9c0-ActionStmt", + "id": "0x564132fca9c0-ActionStmt", "variantKey": "OpenStmt", - "OpenStmt": "0x56198f08e9c0-OpenStmt" + "OpenStmt": "0x564132fdd9c0-OpenStmt" }, { - "id": "0x56198f08e9c0-OpenStmt", + "id": "0x564132fdd9c0-OpenStmt", "ConnectSpec": [ - "0x56198f086160-ConnectSpec", - "0x56198f086060-ConnectSpec", - "0x56198f085c60-ConnectSpec", - "0x56198f085ba0-ConnectSpec" + "0x564132fd5160-ConnectSpec", + "0x564132fd5060-ConnectSpec", + "0x564132fd4c60-ConnectSpec", + "0x564132fd4ba0-ConnectSpec" ] }, { - "id": "0x56198f086160-ConnectSpec", + "id": "0x564132fd5160-ConnectSpec", "variantKey": "Newunit", - "Newunit": "0x56198f086160-Newunit" + "Newunit": "0x564132fd5160-Newunit" }, { - "id": "0x56198f086160-Newunit", - "Variable": "0x56198f086160-Variable" + "id": "0x564132fd5160-Newunit", + "Variable": "0x564132fd5160-Variable" }, { - "id": "0x56198f086160-Variable", + "id": "0x564132fd5160-Variable", "variantKey": "Designator", - "Designator": "0x56198f07de60-Designator" + "Designator": "0x564132fcce60-Designator" }, { - "id": "0x56198f07de60-Designator", + "id": "0x564132fcce60-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f07de70-DataRef" + "DataRef": "0x564132fcce70-DataRef" }, { - "id": "0x56198f07de70-DataRef", + "id": "0x564132fcce70-DataRef", "variantKey": "Name", - "Name": "0x56198f07de70-Name" + "Name": "0x564132fcce70-Name" }, { - "id": "0x56198f07de70-Name", + "id": "0x564132fcce70-Name", "source": "u_seq" }, { - "id": "0x56198f086060-ConnectSpec", + "id": "0x564132fd5060-ConnectSpec", "variantKey": "Expr", - "Expr": "0x56198f07b5c0-Expr" + "Expr": "0x564132fca5c0-Expr" }, { - "id": "0x56198f07b5c0-Expr", + "id": "0x564132fca5c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f07b5e0-LiteralConstant" + "LiteralConstant": "0x564132fca5e0-LiteralConstant" }, { - "id": "0x56198f07b5e0-LiteralConstant", + "id": "0x564132fca5e0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56198f07b5e0-CharLiteralConstant" + "CharLiteralConstant": "0x564132fca5e0-CharLiteralConstant" }, { - "id": "0x56198f07b5e0-CharLiteralConstant", + "id": "0x564132fca5e0-CharLiteralConstant", "string": "seq.txt" }, { - "id": "0x56198f085c60-ConnectSpec", + "id": "0x564132fd4c60-ConnectSpec", "variantKey": "StatusExpr", - "StatusExpr": "0x56198f085c60-StatusExpr" + "StatusExpr": "0x564132fd4c60-StatusExpr" }, { - "id": "0x56198f085c60-StatusExpr", - "Expr": "0x56198f07c420-Expr" + "id": "0x564132fd4c60-StatusExpr", + "Expr": "0x564132fcb420-Expr" }, { - "id": "0x56198f07c420-Expr", + "id": "0x564132fcb420-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f07c440-LiteralConstant" + "LiteralConstant": "0x564132fcb440-LiteralConstant" }, { - "id": "0x56198f07c440-LiteralConstant", + "id": "0x564132fcb440-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56198f07c440-CharLiteralConstant" + "CharLiteralConstant": "0x564132fcb440-CharLiteralConstant" }, { - "id": "0x56198f07c440-CharLiteralConstant", + "id": "0x564132fcb440-CharLiteralConstant", "string": "replace" }, { - "id": "0x56198f085ba0-ConnectSpec", + "id": "0x564132fd4ba0-ConnectSpec", "variantKey": "CharExpr", - "CharExpr": "0x56198f085ba0-CharExpr" + "CharExpr": "0x564132fd4ba0-CharExpr" }, { - "id": "0x56198f085ba0-CharExpr", - "Kind": "0x56198f085ba8-Kind", - "Expr": "0x56198f07bfa0-Expr" + "id": "0x564132fd4ba0-CharExpr", + "Kind": "0x564132fd4ba8-Kind", + "Expr": "0x564132fcafa0-Expr" }, { - "id": "0x56198f085ba8-Kind", + "id": "0x564132fd4ba8-Kind", "disambiguation": "Fortran::parser::ConnectSpec::CharExpr::Kind", "value": "Action" }, { - "id": "0x56198f07bfa0-Expr", + "id": "0x564132fcafa0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f07bfc0-LiteralConstant" + "LiteralConstant": "0x564132fcafc0-LiteralConstant" }, { - "id": "0x56198f07bfc0-LiteralConstant", + "id": "0x564132fcafc0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56198f07bfc0-CharLiteralConstant" + "CharLiteralConstant": "0x564132fcafc0-CharLiteralConstant" }, { - "id": "0x56198f07bfc0-CharLiteralConstant", + "id": "0x564132fcafc0-CharLiteralConstant", "string": "readwrite" }, { - "id": "0x56198f07ea90-ExecutionPartConstruct", + "id": "0x564132fcda90-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56198f07ea90-ExecutableConstruct" + "ExecutableConstruct": "0x564132fcda90-ExecutableConstruct" }, { - "id": "0x56198f07ea90-ExecutableConstruct", + "id": "0x564132fcda90-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56198f07ea90-Statement" + "Statement": "0x564132fcda90-Statement" }, { - "id": "0x56198f07ea90-Statement", - "statement": "0x56198f07eaa0-ActionStmt", + "id": "0x564132fcda90-Statement", + "statement": "0x564132fcdaa0-ActionStmt", "source": "open(newunit=u_dir, file='dir.bin', status='replace', access='direct', recl=16)" }, { - "id": "0x56198f07eaa0-ActionStmt", + "id": "0x564132fcdaa0-ActionStmt", "variantKey": "OpenStmt", - "OpenStmt": "0x56198f08e890-OpenStmt" + "OpenStmt": "0x564132fdd890-OpenStmt" }, { - "id": "0x56198f08e890-OpenStmt", + "id": "0x564132fdd890-OpenStmt", "ConnectSpec": [ - "0x56198f085210-ConnectSpec", - "0x56198f08ea20-ConnectSpec", - "0x56198f08ea80-ConnectSpec", - "0x56198f08eac0-ConnectSpec", - "0x56198f085440-ConnectSpec" + "0x564132fd4210-ConnectSpec", + "0x564132fdda20-ConnectSpec", + "0x564132fdda80-ConnectSpec", + "0x564132fddac0-ConnectSpec", + "0x564132fd4440-ConnectSpec" ] }, { - "id": "0x56198f085210-ConnectSpec", + "id": "0x564132fd4210-ConnectSpec", "variantKey": "Newunit", - "Newunit": "0x56198f085210-Newunit" + "Newunit": "0x564132fd4210-Newunit" }, { - "id": "0x56198f085210-Newunit", - "Variable": "0x56198f085210-Variable" + "id": "0x564132fd4210-Newunit", + "Variable": "0x564132fd4210-Variable" }, { - "id": "0x56198f085210-Variable", + "id": "0x564132fd4210-Variable", "variantKey": "Designator", - "Designator": "0x56198f07b0e0-Designator" + "Designator": "0x564132fca0e0-Designator" }, { - "id": "0x56198f07b0e0-Designator", + "id": "0x564132fca0e0-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f07b0f0-DataRef" + "DataRef": "0x564132fca0f0-DataRef" }, { - "id": "0x56198f07b0f0-DataRef", + "id": "0x564132fca0f0-DataRef", "variantKey": "Name", - "Name": "0x56198f07b0f0-Name" + "Name": "0x564132fca0f0-Name" }, { - "id": "0x56198f07b0f0-Name", + "id": "0x564132fca0f0-Name", "source": "u_dir" }, { - "id": "0x56198f08ea20-ConnectSpec", + "id": "0x564132fdda20-ConnectSpec", "variantKey": "Expr", - "Expr": "0x56198f07e2b0-Expr" + "Expr": "0x564132fcd2b0-Expr" }, { - "id": "0x56198f07e2b0-Expr", + "id": "0x564132fcd2b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f07e2d0-LiteralConstant" + "LiteralConstant": "0x564132fcd2d0-LiteralConstant" }, { - "id": "0x56198f07e2d0-LiteralConstant", + "id": "0x564132fcd2d0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56198f07e2d0-CharLiteralConstant" + "CharLiteralConstant": "0x564132fcd2d0-CharLiteralConstant" }, { - "id": "0x56198f07e2d0-CharLiteralConstant", + "id": "0x564132fcd2d0-CharLiteralConstant", "string": "dir.bin" }, { - "id": "0x56198f08ea80-ConnectSpec", + "id": "0x564132fdda80-ConnectSpec", "variantKey": "StatusExpr", - "StatusExpr": "0x56198f08ea80-StatusExpr" + "StatusExpr": "0x564132fdda80-StatusExpr" }, { - "id": "0x56198f08ea80-StatusExpr", - "Expr": "0x56198f07e1d0-Expr" + "id": "0x564132fdda80-StatusExpr", + "Expr": "0x564132fcd1d0-Expr" }, { - "id": "0x56198f07e1d0-Expr", + "id": "0x564132fcd1d0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f07e1f0-LiteralConstant" + "LiteralConstant": "0x564132fcd1f0-LiteralConstant" }, { - "id": "0x56198f07e1f0-LiteralConstant", + "id": "0x564132fcd1f0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56198f07e1f0-CharLiteralConstant" + "CharLiteralConstant": "0x564132fcd1f0-CharLiteralConstant" }, { - "id": "0x56198f07e1f0-CharLiteralConstant", + "id": "0x564132fcd1f0-CharLiteralConstant", "string": "replace" }, { - "id": "0x56198f08eac0-ConnectSpec", + "id": "0x564132fddac0-ConnectSpec", "variantKey": "CharExpr", - "CharExpr": "0x56198f08eac0-CharExpr" + "CharExpr": "0x564132fddac0-CharExpr" }, { - "id": "0x56198f08eac0-CharExpr", - "Kind": "0x56198f08eac8-Kind", - "Expr": "0x56198f07e0f0-Expr" + "id": "0x564132fddac0-CharExpr", + "Kind": "0x564132fddac8-Kind", + "Expr": "0x564132fcd0f0-Expr" }, { - "id": "0x56198f08eac8-Kind", + "id": "0x564132fddac8-Kind", "disambiguation": "Fortran::parser::ConnectSpec::CharExpr::Kind", "value": "Access" }, { - "id": "0x56198f07e0f0-Expr", + "id": "0x564132fcd0f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f07e110-LiteralConstant" + "LiteralConstant": "0x564132fcd110-LiteralConstant" }, { - "id": "0x56198f07e110-LiteralConstant", + "id": "0x564132fcd110-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56198f07e110-CharLiteralConstant" + "CharLiteralConstant": "0x564132fcd110-CharLiteralConstant" }, { - "id": "0x56198f07e110-CharLiteralConstant", + "id": "0x564132fcd110-CharLiteralConstant", "string": "direct" }, { - "id": "0x56198f085440-ConnectSpec", + "id": "0x564132fd4440-ConnectSpec", "variantKey": "Recl", - "Recl": "0x56198f085440-Recl" + "Recl": "0x564132fd4440-Recl" }, { - "id": "0x56198f085440-Recl", - "Expr": "0x56198f07e010-Expr" + "id": "0x564132fd4440-Recl", + "Expr": "0x564132fcd010-Expr" }, { - "id": "0x56198f07e010-Expr", + "id": "0x564132fcd010-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f07e030-LiteralConstant" + "LiteralConstant": "0x564132fcd030-LiteralConstant" }, { - "id": "0x56198f07e030-LiteralConstant", + "id": "0x564132fcd030-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56198f07e030-IntLiteralConstant" + "IntLiteralConstant": "0x564132fcd030-IntLiteralConstant" }, { - "id": "0x56198f07e030-IntLiteralConstant", + "id": "0x564132fcd030-IntLiteralConstant", "CharBlock": "16" }, { - "id": "0x56198f07d9c0-ExecutionPartConstruct", + "id": "0x564132fcc9c0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56198f07d9c0-ExecutableConstruct" + "ExecutableConstruct": "0x564132fcc9c0-ExecutableConstruct" }, { - "id": "0x56198f07d9c0-ExecutableConstruct", + "id": "0x564132fcc9c0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56198f07d9c0-Statement" + "Statement": "0x564132fcc9c0-Statement" }, { - "id": "0x56198f07d9c0-Statement", - "statement": "0x56198f07d9d0-ActionStmt", + "id": "0x564132fcc9c0-Statement", + "statement": "0x564132fcc9d0-ActionStmt", "source": "open(newunit=u_stream, file='stream.bin', status='replace', access='stream')" }, { - "id": "0x56198f07d9d0-ActionStmt", + "id": "0x564132fcc9d0-ActionStmt", "variantKey": "OpenStmt", - "OpenStmt": "0x56198f0849c0-OpenStmt" + "OpenStmt": "0x564132fd39c0-OpenStmt" }, { - "id": "0x56198f0849c0-OpenStmt", + "id": "0x564132fd39c0-OpenStmt", "ConnectSpec": [ - "0x56198f085360-ConnectSpec", - "0x56198f0852c0-ConnectSpec", - "0x56198f085280-ConnectSpec", - "0x56198f085300-ConnectSpec" + "0x564132fd4360-ConnectSpec", + "0x564132fd42c0-ConnectSpec", + "0x564132fd4280-ConnectSpec", + "0x564132fd4300-ConnectSpec" ] }, { - "id": "0x56198f085360-ConnectSpec", + "id": "0x564132fd4360-ConnectSpec", "variantKey": "Newunit", - "Newunit": "0x56198f085360-Newunit" + "Newunit": "0x564132fd4360-Newunit" }, { - "id": "0x56198f085360-Newunit", - "Variable": "0x56198f085360-Variable" + "id": "0x564132fd4360-Newunit", + "Variable": "0x564132fd4360-Variable" }, { - "id": "0x56198f085360-Variable", + "id": "0x564132fd4360-Variable", "variantKey": "Designator", - "Designator": "0x56198f07c190-Designator" + "Designator": "0x564132fcb190-Designator" }, { - "id": "0x56198f07c190-Designator", + "id": "0x564132fcb190-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f07c1a0-DataRef" + "DataRef": "0x564132fcb1a0-DataRef" }, { - "id": "0x56198f07c1a0-DataRef", + "id": "0x564132fcb1a0-DataRef", "variantKey": "Name", - "Name": "0x56198f07c1a0-Name" + "Name": "0x564132fcb1a0-Name" }, { - "id": "0x56198f07c1a0-Name", + "id": "0x564132fcb1a0-Name", "source": "u_stream" }, { - "id": "0x56198f0852c0-ConnectSpec", + "id": "0x564132fd42c0-ConnectSpec", "variantKey": "Expr", - "Expr": "0x56198f07edf0-Expr" + "Expr": "0x564132fcddf0-Expr" }, { - "id": "0x56198f07edf0-Expr", + "id": "0x564132fcddf0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f07ee10-LiteralConstant" + "LiteralConstant": "0x564132fcde10-LiteralConstant" }, { - "id": "0x56198f07ee10-LiteralConstant", + "id": "0x564132fcde10-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56198f07ee10-CharLiteralConstant" + "CharLiteralConstant": "0x564132fcde10-CharLiteralConstant" }, { - "id": "0x56198f07ee10-CharLiteralConstant", + "id": "0x564132fcde10-CharLiteralConstant", "string": "stream.bin" }, { - "id": "0x56198f085280-ConnectSpec", + "id": "0x564132fd4280-ConnectSpec", "variantKey": "StatusExpr", - "StatusExpr": "0x56198f085280-StatusExpr" + "StatusExpr": "0x564132fd4280-StatusExpr" }, { - "id": "0x56198f085280-StatusExpr", - "Expr": "0x56198f07ed10-Expr" + "id": "0x564132fd4280-StatusExpr", + "Expr": "0x564132fcdd10-Expr" }, { - "id": "0x56198f07ed10-Expr", + "id": "0x564132fcdd10-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f07ed30-LiteralConstant" + "LiteralConstant": "0x564132fcdd30-LiteralConstant" }, { - "id": "0x56198f07ed30-LiteralConstant", + "id": "0x564132fcdd30-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56198f07ed30-CharLiteralConstant" + "CharLiteralConstant": "0x564132fcdd30-CharLiteralConstant" }, { - "id": "0x56198f07ed30-CharLiteralConstant", + "id": "0x564132fcdd30-CharLiteralConstant", "string": "replace" }, { - "id": "0x56198f085300-ConnectSpec", + "id": "0x564132fd4300-ConnectSpec", "variantKey": "CharExpr", - "CharExpr": "0x56198f085300-CharExpr" + "CharExpr": "0x564132fd4300-CharExpr" }, { - "id": "0x56198f085300-CharExpr", - "Kind": "0x56198f085308-Kind", - "Expr": "0x56198f07ec30-Expr" + "id": "0x564132fd4300-CharExpr", + "Kind": "0x564132fd4308-Kind", + "Expr": "0x564132fcdc30-Expr" }, { - "id": "0x56198f085308-Kind", + "id": "0x564132fd4308-Kind", "disambiguation": "Fortran::parser::ConnectSpec::CharExpr::Kind", "value": "Access" }, { - "id": "0x56198f07ec30-Expr", + "id": "0x564132fcdc30-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f07ec50-LiteralConstant" + "LiteralConstant": "0x564132fcdc50-LiteralConstant" }, { - "id": "0x56198f07ec50-LiteralConstant", + "id": "0x564132fcdc50-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56198f07ec50-CharLiteralConstant" + "CharLiteralConstant": "0x564132fcdc50-CharLiteralConstant" }, { - "id": "0x56198f07ec50-CharLiteralConstant", + "id": "0x564132fcdc50-CharLiteralConstant", "string": "stream" }, { - "id": "0x56198f080490-ExecutionPartConstruct", + "id": "0x564132fcf490-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56198f080490-ExecutableConstruct" + "ExecutableConstruct": "0x564132fcf490-ExecutableConstruct" }, { - "id": "0x56198f080490-ExecutableConstruct", + "id": "0x564132fcf490-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56198f080490-Statement" + "Statement": "0x564132fcf490-Statement" }, { - "id": "0x56198f080490-Statement", - "statement": "0x56198f0804a0-ActionStmt", + "id": "0x564132fcf490-Statement", + "statement": "0x564132fcf4a0-ActionStmt", "source": "write(unit = u_seq, fmt = *, decimal = 'comma', sign = 'plus', round = 'up', delim = 'quote', iostat = ios, iomsg = io_message)" }, { - "id": "0x56198f0804a0-ActionStmt", + "id": "0x564132fcf4a0-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x56198f0802c0-WriteStmt" + "WriteStmt": "0x564132fcf2c0-WriteStmt" }, { - "id": "0x56198f0802c0-WriteStmt" + "id": "0x564132fcf2c0-WriteStmt" }, { - "id": "0x56198f07fca0-IoControlSpec", + "id": "0x564132fceca0-IoControlSpec", "variantKey": "IoUnit", - "IoUnit": "0x56198f07fca0-IoUnit" + "IoUnit": "0x564132fceca0-IoUnit" }, { - "id": "0x56198f07fca0-IoUnit", + "id": "0x564132fceca0-IoUnit", "variantKey": "Expr", - "Expr": "0x56198f0b8c40-Expr" + "Expr": "0x564133007c40-Expr" }, { - "id": "0x56198f0b8c40-Expr", + "id": "0x564133007c40-Expr", "variantKey": "Designator", - "Designator": "0x56198f04e4d0-Designator" + "Designator": "0x564132f9d4d0-Designator" }, { - "id": "0x56198f04e4d0-Designator", + "id": "0x564132f9d4d0-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f04e4e0-DataRef" + "DataRef": "0x564132f9d4e0-DataRef" }, { - "id": "0x56198f04e4e0-DataRef", + "id": "0x564132f9d4e0-DataRef", "variantKey": "Name", - "Name": "0x56198f04e4e0-Name" + "Name": "0x564132f9d4e0-Name" }, { - "id": "0x56198f04e4e0-Name", + "id": "0x564132f9d4e0-Name", "source": "u_seq" }, { - "id": "0x56198f07eee0-IoControlSpec", + "id": "0x564132fcdee0-IoControlSpec", "variantKey": "Format", - "Format": "0x56198f07eee0-Format" + "Format": "0x564132fcdee0-Format" }, { - "id": "0x56198f07eee0-Format", + "id": "0x564132fcdee0-Format", "variantKey": "Star", - "Star": "0x56198f07eee0-Star" + "Star": "0x564132fcdee0-Star" }, { - "id": "0x56198f07eee0-Star" + "id": "0x564132fcdee0-Star" }, { - "id": "0x56198f07efe0-IoControlSpec", + "id": "0x564132fcdfe0-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x56198f07efe0-CharExpr" + "CharExpr": "0x564132fcdfe0-CharExpr" }, { - "id": "0x56198f07efe0-CharExpr", - "Kind": "0x56198f07efe8-Kind", - "Expr": "0x56198f07bc30-Expr" + "id": "0x564132fcdfe0-CharExpr", + "Kind": "0x564132fcdfe8-Kind", + "Expr": "0x564132fcac30-Expr" }, { - "id": "0x56198f07efe8-Kind", + "id": "0x564132fcdfe8-Kind", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Decimal" }, { - "id": "0x56198f07bc30-Expr", + "id": "0x564132fcac30-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f07bc50-LiteralConstant" + "LiteralConstant": "0x564132fcac50-LiteralConstant" }, { - "id": "0x56198f07bc50-LiteralConstant", + "id": "0x564132fcac50-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56198f07bc50-CharLiteralConstant" + "CharLiteralConstant": "0x564132fcac50-CharLiteralConstant" }, { - "id": "0x56198f07bc50-CharLiteralConstant", + "id": "0x564132fcac50-CharLiteralConstant", "string": "comma" }, { - "id": "0x56198f07f1c0-IoControlSpec", + "id": "0x564132fce1c0-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x56198f07f1c0-CharExpr" + "CharExpr": "0x564132fce1c0-CharExpr" }, { - "id": "0x56198f07f1c0-CharExpr", - "Kind": "0x56198f07f1c8-Kind", - "Expr": "0x56198f07f0d0-Expr" + "id": "0x564132fce1c0-CharExpr", + "Kind": "0x564132fce1c8-Kind", + "Expr": "0x564132fce0d0-Expr" }, { - "id": "0x56198f07f1c8-Kind", + "id": "0x564132fce1c8-Kind", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Sign" }, { - "id": "0x56198f07f0d0-Expr", + "id": "0x564132fce0d0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f07f0f0-LiteralConstant" + "LiteralConstant": "0x564132fce0f0-LiteralConstant" }, { - "id": "0x56198f07f0f0-LiteralConstant", + "id": "0x564132fce0f0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56198f07f0f0-CharLiteralConstant" + "CharLiteralConstant": "0x564132fce0f0-CharLiteralConstant" }, { - "id": "0x56198f07f0f0-CharLiteralConstant", + "id": "0x564132fce0f0-CharLiteralConstant", "string": "plus" }, { - "id": "0x56198f07f3a0-IoControlSpec", + "id": "0x564132fce3a0-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x56198f07f3a0-CharExpr" + "CharExpr": "0x564132fce3a0-CharExpr" }, { - "id": "0x56198f07f3a0-CharExpr", - "Kind": "0x56198f07f3a8-Kind", - "Expr": "0x56198f07f2b0-Expr" + "id": "0x564132fce3a0-CharExpr", + "Kind": "0x564132fce3a8-Kind", + "Expr": "0x564132fce2b0-Expr" }, { - "id": "0x56198f07f3a8-Kind", + "id": "0x564132fce3a8-Kind", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Round" }, { - "id": "0x56198f07f2b0-Expr", + "id": "0x564132fce2b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f07f2d0-LiteralConstant" + "LiteralConstant": "0x564132fce2d0-LiteralConstant" }, { - "id": "0x56198f07f2d0-LiteralConstant", + "id": "0x564132fce2d0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56198f07f2d0-CharLiteralConstant" + "CharLiteralConstant": "0x564132fce2d0-CharLiteralConstant" }, { - "id": "0x56198f07f2d0-CharLiteralConstant", + "id": "0x564132fce2d0-CharLiteralConstant", "string": "up" }, { - "id": "0x56198f07f580-IoControlSpec", + "id": "0x564132fce580-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x56198f07f580-CharExpr" + "CharExpr": "0x564132fce580-CharExpr" }, { - "id": "0x56198f07f580-CharExpr", - "Kind": "0x56198f07f588-Kind", - "Expr": "0x56198f07f490-Expr" + "id": "0x564132fce580-CharExpr", + "Kind": "0x564132fce588-Kind", + "Expr": "0x564132fce490-Expr" }, { - "id": "0x56198f07f588-Kind", + "id": "0x564132fce588-Kind", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Delim" }, { - "id": "0x56198f07f490-Expr", + "id": "0x564132fce490-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f07f4b0-LiteralConstant" + "LiteralConstant": "0x564132fce4b0-LiteralConstant" }, { - "id": "0x56198f07f4b0-LiteralConstant", + "id": "0x564132fce4b0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56198f07f4b0-CharLiteralConstant" + "CharLiteralConstant": "0x564132fce4b0-CharLiteralConstant" }, { - "id": "0x56198f07f4b0-CharLiteralConstant", + "id": "0x564132fce4b0-CharLiteralConstant", "string": "quote" }, { - "id": "0x56198f07f750-IoControlSpec", + "id": "0x564132fce750-IoControlSpec", "variantKey": "StatVariable", - "StatVariable": "0x56198f07f750-StatVariable" + "StatVariable": "0x564132fce750-StatVariable" }, { - "id": "0x56198f07f750-StatVariable", - "Variable": "0x56198f07f750-Variable" + "id": "0x564132fce750-StatVariable", + "Variable": "0x564132fce750-Variable" }, { - "id": "0x56198f07f750-Variable", + "id": "0x564132fce750-Variable", "variantKey": "Designator", - "Designator": "0x56198f07f670-Designator" + "Designator": "0x564132fce670-Designator" }, { - "id": "0x56198f07f670-Designator", + "id": "0x564132fce670-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f07f680-DataRef" + "DataRef": "0x564132fce680-DataRef" }, { - "id": "0x56198f07f680-DataRef", + "id": "0x564132fce680-DataRef", "variantKey": "Name", - "Name": "0x56198f07f680-Name" + "Name": "0x564132fce680-Name" }, { - "id": "0x56198f07f680-Name", + "id": "0x564132fce680-Name", "source": "ios" }, { - "id": "0x56198f07fba0-IoControlSpec", + "id": "0x564132fceba0-IoControlSpec", "variantKey": "MsgVariable", - "MsgVariable": "0x56198f07fba0-MsgVariable" + "MsgVariable": "0x564132fceba0-MsgVariable" }, { - "id": "0x56198f07fba0-MsgVariable", - "Variable": "0x56198f07fba0-Variable" + "id": "0x564132fceba0-MsgVariable", + "Variable": "0x564132fceba0-Variable" }, { - "id": "0x56198f07fba0-Variable", + "id": "0x564132fceba0-Variable", "variantKey": "Designator", - "Designator": "0x56198f07fac0-Designator" + "Designator": "0x564132fceac0-Designator" }, { - "id": "0x56198f07fac0-Designator", + "id": "0x564132fceac0-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f07fad0-DataRef" + "DataRef": "0x564132fcead0-DataRef" }, { - "id": "0x56198f07fad0-DataRef", + "id": "0x564132fcead0-DataRef", "variantKey": "Name", - "Name": "0x56198f07fad0-Name" + "Name": "0x564132fcead0-Name" }, { - "id": "0x56198f07fad0-Name", + "id": "0x564132fcead0-Name", "source": "io_message" }, { - "id": "0x56198f08bfe0-ExecutionPartConstruct", + "id": "0x564132fdafe0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56198f08bfe0-ExecutableConstruct" + "ExecutableConstruct": "0x564132fdafe0-ExecutableConstruct" }, { - "id": "0x56198f08bfe0-ExecutableConstruct", + "id": "0x564132fdafe0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56198f08bfe0-Statement" + "Statement": "0x564132fdafe0-Statement" }, { - "id": "0x56198f08bfe0-Statement", - "statement": "0x56198f08bff0-ActionStmt", + "id": "0x564132fdafe0-Statement", + "statement": "0x564132fdaff0-ActionStmt", "source": "write(unit = u_seq, nml = my_namelist, iostat = ios)" }, { - "id": "0x56198f08bff0-ActionStmt", + "id": "0x564132fdaff0-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x56198f080a80-WriteStmt" + "WriteStmt": "0x564132fcfa80-WriteStmt" }, { - "id": "0x56198f080a80-WriteStmt" + "id": "0x564132fcfa80-WriteStmt" }, { - "id": "0x56198f080990-IoControlSpec", + "id": "0x564132fcf990-IoControlSpec", "variantKey": "IoUnit", - "IoUnit": "0x56198f080990-IoUnit" + "IoUnit": "0x564132fcf990-IoUnit" }, { - "id": "0x56198f080990-IoUnit", + "id": "0x564132fcf990-IoUnit", "variantKey": "Expr", - "Expr": "0x56198f135ad0-Expr" + "Expr": "0x564133084ad0-Expr" }, { - "id": "0x56198f135ad0-Expr", + "id": "0x564133084ad0-Expr", "variantKey": "Designator", - "Designator": "0x56198f07bd10-Designator" + "Designator": "0x564132fcad10-Designator" }, { - "id": "0x56198f07bd10-Designator", + "id": "0x564132fcad10-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f07bd20-DataRef" + "DataRef": "0x564132fcad20-DataRef" }, { - "id": "0x56198f07bd20-DataRef", + "id": "0x564132fcad20-DataRef", "variantKey": "Name", - "Name": "0x56198f07bd20-Name" + "Name": "0x564132fcad20-Name" }, { - "id": "0x56198f07bd20-Name", + "id": "0x564132fcad20-Name", "source": "u_seq" }, { - "id": "0x56198f080790-IoControlSpec", + "id": "0x564132fcf790-IoControlSpec", "variantKey": "Name", - "Name": "0x56198f080790-Name" + "Name": "0x564132fcf790-Name" }, { - "id": "0x56198f080790-Name", + "id": "0x564132fcf790-Name", "source": "my_namelist" }, { - "id": "0x56198f080890-IoControlSpec", + "id": "0x564132fcf890-IoControlSpec", "variantKey": "StatVariable", - "StatVariable": "0x56198f080890-StatVariable" + "StatVariable": "0x564132fcf890-StatVariable" }, { - "id": "0x56198f080890-StatVariable", - "Variable": "0x56198f080890-Variable" + "id": "0x564132fcf890-StatVariable", + "Variable": "0x564132fcf890-Variable" }, { - "id": "0x56198f080890-Variable", + "id": "0x564132fcf890-Variable", "variantKey": "Designator", - "Designator": "0x56198f08bf70-Designator" + "Designator": "0x564132fdaf70-Designator" }, { - "id": "0x56198f08bf70-Designator", + "id": "0x564132fdaf70-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f08bf80-DataRef" + "DataRef": "0x564132fdaf80-DataRef" }, { - "id": "0x56198f08bf80-DataRef", + "id": "0x564132fdaf80-DataRef", "variantKey": "Name", - "Name": "0x56198f08bf80-Name" + "Name": "0x564132fdaf80-Name" }, { - "id": "0x56198f08bf80-Name", + "id": "0x564132fdaf80-Name", "source": "ios" }, { - "id": "0x56198f07e510-ExecutionPartConstruct", + "id": "0x564132fcd510-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56198f07e510-ExecutableConstruct" + "ExecutableConstruct": "0x564132fcd510-ExecutableConstruct" }, { - "id": "0x56198f07e510-ExecutableConstruct", + "id": "0x564132fcd510-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56198f07e510-Statement" + "Statement": "0x564132fcd510-Statement" }, { - "id": "0x56198f07e510-Statement", - "statement": "0x56198f07e520-ActionStmt", + "id": "0x564132fcd510-Statement", + "statement": "0x564132fcd520-ActionStmt", "source": "rewind(u_seq)" }, { - "id": "0x56198f07e520-ActionStmt", + "id": "0x564132fcd520-ActionStmt", "variantKey": "RewindStmt", - "RewindStmt": "0x56198f084d30-RewindStmt" + "RewindStmt": "0x564132fd3d30-RewindStmt" }, { - "id": "0x56198f084d30-RewindStmt", + "id": "0x564132fd3d30-RewindStmt", "PositionOrFlushSpec": [ - "0x56198f0853a0-PositionOrFlushSpec" + "0x564132fd43a0-PositionOrFlushSpec" ] }, { - "id": "0x56198f0853a0-PositionOrFlushSpec", + "id": "0x564132fd43a0-PositionOrFlushSpec", "variantKey": "FileUnitNumber", - "FileUnitNumber": "0x56198f0853a0-FileUnitNumber" + "FileUnitNumber": "0x564132fd43a0-FileUnitNumber" }, { - "id": "0x56198f0853a0-FileUnitNumber", - "Expr": "0x56198f0806a0-Expr" + "id": "0x564132fd43a0-FileUnitNumber", + "Expr": "0x564132fcf6a0-Expr" }, { - "id": "0x56198f0806a0-Expr", + "id": "0x564132fcf6a0-Expr", "variantKey": "Designator", - "Designator": "0x56198f07d500-Designator" + "Designator": "0x564132fcc500-Designator" }, { - "id": "0x56198f07d500-Designator", + "id": "0x564132fcc500-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f07d510-DataRef" + "DataRef": "0x564132fcc510-DataRef" }, { - "id": "0x56198f07d510-DataRef", + "id": "0x564132fcc510-DataRef", "variantKey": "Name", - "Name": "0x56198f07d510-Name" + "Name": "0x564132fcc510-Name" }, { - "id": "0x56198f07d510-Name", + "id": "0x564132fcc510-Name", "source": "u_seq" }, { - "id": "0x56198f082160-ExecutionPartConstruct", + "id": "0x564132fd1160-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56198f082160-ExecutableConstruct" + "ExecutableConstruct": "0x564132fd1160-ExecutableConstruct" }, { - "id": "0x56198f082160-ExecutableConstruct", + "id": "0x564132fd1160-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56198f082160-Statement" + "Statement": "0x564132fd1160-Statement" }, { - "id": "0x56198f082160-Statement", - "statement": "0x56198f082170-ActionStmt", + "id": "0x564132fd1160-Statement", + "statement": "0x564132fd1170-ActionStmt", "source": "read(unit = u_seq, fmt = '(A)', advance = 'no', pad = 'yes', size = chars_read, eor = 100, err = 900, iostat = ios) text_buffer" }, { - "id": "0x56198f082170-ActionStmt", + "id": "0x564132fd1170-ActionStmt", "variantKey": "ReadStmt", - "ReadStmt": "0x56198f082000-ReadStmt" + "ReadStmt": "0x564132fd1000-ReadStmt" }, { - "id": "0x56198f082000-ReadStmt" + "id": "0x564132fd1000-ReadStmt" }, { - "id": "0x56198f081df0-IoControlSpec", + "id": "0x564132fd0df0-IoControlSpec", "variantKey": "IoUnit", - "IoUnit": "0x56198f081df0-IoUnit" + "IoUnit": "0x564132fd0df0-IoUnit" }, { - "id": "0x56198f081df0-IoUnit", + "id": "0x564132fd0df0-IoUnit", "variantKey": "Expr", - "Expr": "0x56198f1359f0-Expr" + "Expr": "0x5641330849f0-Expr" }, { - "id": "0x56198f1359f0-Expr", + "id": "0x5641330849f0-Expr", "variantKey": "Designator", - "Designator": "0x56198f0812c0-Designator" + "Designator": "0x564132fd02c0-Designator" }, { - "id": "0x56198f0812c0-Designator", + "id": "0x564132fd02c0-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f0812d0-DataRef" + "DataRef": "0x564132fd02d0-DataRef" }, { - "id": "0x56198f0812d0-DataRef", + "id": "0x564132fd02d0-DataRef", "variantKey": "Name", - "Name": "0x56198f0812d0-Name" + "Name": "0x564132fd02d0-Name" }, { - "id": "0x56198f0812d0-Name", + "id": "0x564132fd02d0-Name", "source": "u_seq" }, { - "id": "0x56198f081690-IoControlSpec", + "id": "0x564132fd0690-IoControlSpec", "variantKey": "Format", - "Format": "0x56198f081690-Format" + "Format": "0x564132fd0690-Format" }, { - "id": "0x56198f081690-Format", + "id": "0x564132fd0690-Format", "variantKey": "Expr", - "Expr": "0x56198f081690-Expr" + "Expr": "0x564132fd0690-Expr" }, { - "id": "0x56198f081690-Expr", + "id": "0x564132fd0690-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f0816b0-LiteralConstant" + "LiteralConstant": "0x564132fd06b0-LiteralConstant" }, { - "id": "0x56198f0816b0-LiteralConstant", + "id": "0x564132fd06b0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56198f0816b0-CharLiteralConstant" + "CharLiteralConstant": "0x564132fd06b0-CharLiteralConstant" }, { - "id": "0x56198f0816b0-CharLiteralConstant", + "id": "0x564132fd06b0-CharLiteralConstant", "string": "(A)" }, { - "id": "0x56198f081790-IoControlSpec", + "id": "0x564132fd0790-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x56198f081790-CharExpr" + "CharExpr": "0x564132fd0790-CharExpr" }, { - "id": "0x56198f081790-CharExpr", - "Kind": "0x56198f081798-Kind", - "Expr": "0x56198f081010-Expr" + "id": "0x564132fd0790-CharExpr", + "Kind": "0x564132fd0798-Kind", + "Expr": "0x564132fd0010-Expr" }, { - "id": "0x56198f081798-Kind", + "id": "0x564132fd0798-Kind", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Advance" }, { - "id": "0x56198f081010-Expr", + "id": "0x564132fd0010-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f081030-LiteralConstant" + "LiteralConstant": "0x564132fd0030-LiteralConstant" }, { - "id": "0x56198f081030-LiteralConstant", + "id": "0x564132fd0030-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56198f081030-CharLiteralConstant" + "CharLiteralConstant": "0x564132fd0030-CharLiteralConstant" }, { - "id": "0x56198f081030-CharLiteralConstant", + "id": "0x564132fd0030-CharLiteralConstant", "string": "no" }, { - "id": "0x56198f081890-IoControlSpec", + "id": "0x564132fd0890-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x56198f081890-CharExpr" + "CharExpr": "0x564132fd0890-CharExpr" }, { - "id": "0x56198f081890-CharExpr", - "Kind": "0x56198f081898-Kind", - "Expr": "0x56198f080ed0-Expr" + "id": "0x564132fd0890-CharExpr", + "Kind": "0x564132fd0898-Kind", + "Expr": "0x564132fcfed0-Expr" }, { - "id": "0x56198f081898-Kind", + "id": "0x564132fd0898-Kind", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Pad" }, { - "id": "0x56198f080ed0-Expr", + "id": "0x564132fcfed0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f080ef0-LiteralConstant" + "LiteralConstant": "0x564132fcfef0-LiteralConstant" }, { - "id": "0x56198f080ef0-LiteralConstant", + "id": "0x564132fcfef0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56198f080ef0-CharLiteralConstant" + "CharLiteralConstant": "0x564132fcfef0-CharLiteralConstant" }, { - "id": "0x56198f080ef0-CharLiteralConstant", + "id": "0x564132fcfef0-CharLiteralConstant", "string": "yes" }, { - "id": "0x56198f081990-IoControlSpec", + "id": "0x564132fd0990-IoControlSpec", "variantKey": "Size", - "Size": "0x56198f081990-Size" + "Size": "0x564132fd0990-Size" }, { - "id": "0x56198f081990-Size", - "Variable": "0x56198f081990-Variable" + "id": "0x564132fd0990-Size", + "Variable": "0x564132fd0990-Variable" }, { - "id": "0x56198f081990-Variable", + "id": "0x564132fd0990-Variable", "variantKey": "Designator", - "Designator": "0x56198f081620-Designator" + "Designator": "0x564132fd0620-Designator" }, { - "id": "0x56198f081620-Designator", + "id": "0x564132fd0620-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f081630-DataRef" + "DataRef": "0x564132fd0630-DataRef" }, { - "id": "0x56198f081630-DataRef", + "id": "0x564132fd0630-DataRef", "variantKey": "Name", - "Name": "0x56198f081630-Name" + "Name": "0x564132fd0630-Name" }, { - "id": "0x56198f081630-Name", + "id": "0x564132fd0630-Name", "source": "chars_read" }, { - "id": "0x56198f081a90-IoControlSpec", + "id": "0x564132fd0a90-IoControlSpec", "variantKey": "EorLabel", - "EorLabel": "0x56198f081a90-EorLabel" + "EorLabel": "0x564132fd0a90-EorLabel" }, { - "id": "0x56198f081a90-EorLabel", + "id": "0x564132fd0a90-EorLabel", "uint64_t": "100" }, { - "id": "0x56198f081b90-IoControlSpec", + "id": "0x564132fd0b90-IoControlSpec", "variantKey": "ErrLabel", - "ErrLabel": "0x56198f081b90-ErrLabel" + "ErrLabel": "0x564132fd0b90-ErrLabel" }, { - "id": "0x56198f081b90-ErrLabel", + "id": "0x564132fd0b90-ErrLabel", "uint64_t": "900" }, { - "id": "0x56198f081cf0-IoControlSpec", + "id": "0x564132fd0cf0-IoControlSpec", "variantKey": "StatVariable", - "StatVariable": "0x56198f081cf0-StatVariable" + "StatVariable": "0x564132fd0cf0-StatVariable" }, { - "id": "0x56198f081cf0-StatVariable", - "Variable": "0x56198f081cf0-Variable" + "id": "0x564132fd0cf0-StatVariable", + "Variable": "0x564132fd0cf0-Variable" }, { - "id": "0x56198f081cf0-Variable", + "id": "0x564132fd0cf0-Variable", "variantKey": "Designator", - "Designator": "0x56198f081c80-Designator" + "Designator": "0x564132fd0c80-Designator" }, { - "id": "0x56198f081c80-Designator", + "id": "0x564132fd0c80-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f081c90-DataRef" + "DataRef": "0x564132fd0c90-DataRef" }, { - "id": "0x56198f081c90-DataRef", + "id": "0x564132fd0c90-DataRef", "variantKey": "Name", - "Name": "0x56198f081c90-Name" + "Name": "0x564132fd0c90-Name" }, { - "id": "0x56198f081c90-Name", + "id": "0x564132fd0c90-Name", "source": "ios" }, { - "id": "0x56198f085400-InputItem", + "id": "0x564132fd4400-InputItem", "variantKey": "Variable", - "Variable": "0x56198f085400-Variable" + "Variable": "0x564132fd4400-Variable" }, { - "id": "0x56198f085400-Variable", + "id": "0x564132fd4400-Variable", "variantKey": "Designator", - "Designator": "0x56198f081fa0-Designator" + "Designator": "0x564132fd0fa0-Designator" }, { - "id": "0x56198f081fa0-Designator", + "id": "0x564132fd0fa0-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f081fb0-DataRef" + "DataRef": "0x564132fd0fb0-DataRef" }, { - "id": "0x56198f081fb0-DataRef", + "id": "0x564132fd0fb0-DataRef", "variantKey": "Name", - "Name": "0x56198f081fb0-Name" + "Name": "0x564132fd0fb0-Name" }, { - "id": "0x56198f081fb0-Name", + "id": "0x564132fd0fb0-Name", "source": "text_buffer" }, { - "id": "0x56198f081210-ExecutionPartConstruct", + "id": "0x564132fd0210-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56198f081210-ExecutableConstruct" + "ExecutableConstruct": "0x564132fd0210-ExecutableConstruct" }, { - "id": "0x56198f081210-ExecutableConstruct", + "id": "0x564132fd0210-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56198f081210-Statement" + "Statement": "0x564132fd0210-Statement" }, { - "id": "0x56198f081210-Statement", - "statement": "0x56198f081220-ActionStmt", + "id": "0x564132fd0210-Statement", + "statement": "0x564132fd0220-ActionStmt", "label": "100", "source": "100 continue" }, { - "id": "0x56198f081220-ActionStmt", + "id": "0x564132fd0220-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x56198f081220-ContinueStmt" + "ContinueStmt": "0x564132fd0220-ContinueStmt" }, { - "id": "0x56198f081220-ContinueStmt" + "id": "0x564132fd0220-ContinueStmt" }, { - "id": "0x56198f082850-ExecutionPartConstruct", + "id": "0x564132fd1850-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56198f082850-ExecutableConstruct" + "ExecutableConstruct": "0x564132fd1850-ExecutableConstruct" }, { - "id": "0x56198f082850-ExecutableConstruct", + "id": "0x564132fd1850-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56198f082850-Statement" + "Statement": "0x564132fd1850-Statement" }, { - "id": "0x56198f082850-Statement", - "statement": "0x56198f082860-ActionStmt", + "id": "0x564132fd1850-Statement", + "statement": "0x564132fd1860-ActionStmt", "source": "write(unit = u_dir, rec = 1, iostat = ios) val, x" }, { - "id": "0x56198f082860-ActionStmt", + "id": "0x564132fd1860-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x56198f0826f0-WriteStmt" + "WriteStmt": "0x564132fd16f0-WriteStmt" }, { - "id": "0x56198f0826f0-WriteStmt" + "id": "0x564132fd16f0-WriteStmt" }, { - "id": "0x56198f0823c0-IoControlSpec", + "id": "0x564132fd13c0-IoControlSpec", "variantKey": "IoUnit", - "IoUnit": "0x56198f0823c0-IoUnit" + "IoUnit": "0x564132fd13c0-IoUnit" }, { - "id": "0x56198f0823c0-IoUnit", + "id": "0x564132fd13c0-IoUnit", "variantKey": "Expr", - "Expr": "0x56198f0915c0-Expr" + "Expr": "0x564132fe05c0-Expr" }, { - "id": "0x56198f0915c0-Expr", + "id": "0x564132fe05c0-Expr", "variantKey": "Designator", - "Designator": "0x56198f07e5d0-Designator" + "Designator": "0x564132fcd5d0-Designator" }, { - "id": "0x56198f07e5d0-Designator", + "id": "0x564132fcd5d0-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f07e5e0-DataRef" + "DataRef": "0x564132fcd5e0-DataRef" }, { - "id": "0x56198f07e5e0-DataRef", + "id": "0x564132fcd5e0-DataRef", "variantKey": "Name", - "Name": "0x56198f07e5e0-Name" + "Name": "0x564132fcd5e0-Name" }, { - "id": "0x56198f07e5e0-Name", + "id": "0x564132fcd5e0-Name", "source": "u_dir" }, { - "id": "0x56198f0821c0-IoControlSpec", + "id": "0x564132fd11c0-IoControlSpec", "variantKey": "Rec", - "Rec": "0x56198f0821c0-Rec" + "Rec": "0x564132fd11c0-Rec" }, { - "id": "0x56198f0821c0-Rec", - "Expr": "0x56198f080bd0-Expr" + "id": "0x564132fd11c0-Rec", + "Expr": "0x564132fcfbd0-Expr" }, { - "id": "0x56198f080bd0-Expr", + "id": "0x564132fcfbd0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f080bf0-LiteralConstant" + "LiteralConstant": "0x564132fcfbf0-LiteralConstant" }, { - "id": "0x56198f080bf0-LiteralConstant", + "id": "0x564132fcfbf0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56198f080bf0-IntLiteralConstant" + "IntLiteralConstant": "0x564132fcfbf0-IntLiteralConstant" }, { - "id": "0x56198f080bf0-IntLiteralConstant", + "id": "0x564132fcfbf0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x56198f0822c0-IoControlSpec", + "id": "0x564132fd12c0-IoControlSpec", "variantKey": "StatVariable", - "StatVariable": "0x56198f0822c0-StatVariable" + "StatVariable": "0x564132fd12c0-StatVariable" }, { - "id": "0x56198f0822c0-StatVariable", - "Variable": "0x56198f0822c0-Variable" + "id": "0x564132fd12c0-StatVariable", + "Variable": "0x564132fd12c0-Variable" }, { - "id": "0x56198f0822c0-Variable", + "id": "0x564132fd12c0-Variable", "variantKey": "Designator", - "Designator": "0x56198f07e860-Designator" + "Designator": "0x564132fcd860-Designator" }, { - "id": "0x56198f07e860-Designator", + "id": "0x564132fcd860-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f07e870-DataRef" + "DataRef": "0x564132fcd870-DataRef" }, { - "id": "0x56198f07e870-DataRef", + "id": "0x564132fcd870-DataRef", "variantKey": "Name", - "Name": "0x56198f07e870-Name" + "Name": "0x564132fcd870-Name" }, { - "id": "0x56198f07e870-Name", + "id": "0x564132fcd870-Name", "source": "ios" }, { - "id": "0x56198f082610-OutputItem", + "id": "0x564132fd1610-OutputItem", "variantKey": "Expr", - "Expr": "0x56198f082610-Expr" + "Expr": "0x564132fd1610-Expr" }, { - "id": "0x56198f082610-Expr", + "id": "0x564132fd1610-Expr", "variantKey": "Designator", - "Designator": "0x56198f07b8d0-Designator" + "Designator": "0x564132fca8d0-Designator" }, { - "id": "0x56198f07b8d0-Designator", + "id": "0x564132fca8d0-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f07b8e0-DataRef" + "DataRef": "0x564132fca8e0-DataRef" }, { - "id": "0x56198f07b8e0-DataRef", + "id": "0x564132fca8e0-DataRef", "variantKey": "Name", - "Name": "0x56198f07b8e0-Name" + "Name": "0x564132fca8e0-Name" }, { - "id": "0x56198f07b8e0-Name", + "id": "0x564132fca8e0-Name", "source": "val" }, { - "id": "0x56198f082520-OutputItem", + "id": "0x564132fd1520-OutputItem", "variantKey": "Expr", - "Expr": "0x56198f082520-Expr" + "Expr": "0x564132fd1520-Expr" }, { - "id": "0x56198f082520-Expr", + "id": "0x564132fd1520-Expr", "variantKey": "Designator", - "Designator": "0x56198f0824b0-Designator" + "Designator": "0x564132fd14b0-Designator" }, { - "id": "0x56198f0824b0-Designator", + "id": "0x564132fd14b0-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f0824c0-DataRef" + "DataRef": "0x564132fd14c0-DataRef" }, { - "id": "0x56198f0824c0-DataRef", + "id": "0x564132fd14c0-DataRef", "variantKey": "Name", - "Name": "0x56198f0824c0-Name" + "Name": "0x564132fd14c0-Name" }, { - "id": "0x56198f0824c0-Name", + "id": "0x564132fd14c0-Name", "source": "x" }, { - "id": "0x56198f081270-ExecutionPartConstruct", + "id": "0x564132fd0270-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56198f081270-ExecutableConstruct" + "ExecutableConstruct": "0x564132fd0270-ExecutableConstruct" }, { - "id": "0x56198f081270-ExecutableConstruct", + "id": "0x564132fd0270-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56198f081270-Statement" + "Statement": "0x564132fd0270-Statement" }, { - "id": "0x56198f081270-Statement", - "statement": "0x56198f081280-ActionStmt", + "id": "0x564132fd0270-Statement", + "statement": "0x564132fd0280-ActionStmt", "source": "write(unit = u_stream, pos = 10, iostat = ios) \"Stream Header\"" }, { - "id": "0x56198f081280-ActionStmt", + "id": "0x564132fd0280-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x56198f082c90-WriteStmt" + "WriteStmt": "0x564132fd1c90-WriteStmt" }, { - "id": "0x56198f082c90-WriteStmt" + "id": "0x564132fd1c90-WriteStmt" }, { - "id": "0x56198f082ab0-IoControlSpec", + "id": "0x564132fd1ab0-IoControlSpec", "variantKey": "IoUnit", - "IoUnit": "0x56198f082ab0-IoUnit" + "IoUnit": "0x564132fd1ab0-IoUnit" }, { - "id": "0x56198f082ab0-IoUnit", + "id": "0x564132fd1ab0-IoUnit", "variantKey": "Expr", - "Expr": "0x56198f0914e0-Expr" + "Expr": "0x564132fe04e0-Expr" }, { - "id": "0x56198f0914e0-Expr", + "id": "0x564132fe04e0-Expr", "variantKey": "Designator", - "Designator": "0x56198f081ee0-Designator" + "Designator": "0x564132fd0ee0-Designator" }, { - "id": "0x56198f081ee0-Designator", + "id": "0x564132fd0ee0-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f081ef0-DataRef" + "DataRef": "0x564132fd0ef0-DataRef" }, { - "id": "0x56198f081ef0-DataRef", + "id": "0x564132fd0ef0-DataRef", "variantKey": "Name", - "Name": "0x56198f081ef0-Name" + "Name": "0x564132fd0ef0-Name" }, { - "id": "0x56198f081ef0-Name", + "id": "0x564132fd0ef0-Name", "source": "u_stream" }, { - "id": "0x56198f0828b0-IoControlSpec", + "id": "0x564132fd18b0-IoControlSpec", "variantKey": "Pos", - "Pos": "0x56198f0828b0-Pos" + "Pos": "0x564132fd18b0-Pos" }, { - "id": "0x56198f0828b0-Pos", - "Expr": "0x56198f0804e0-Expr" + "id": "0x564132fd18b0-Pos", + "Expr": "0x564132fcf4e0-Expr" }, { - "id": "0x56198f0804e0-Expr", + "id": "0x564132fcf4e0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f080500-LiteralConstant" + "LiteralConstant": "0x564132fcf500-LiteralConstant" }, { - "id": "0x56198f080500-LiteralConstant", + "id": "0x564132fcf500-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56198f080500-IntLiteralConstant" + "IntLiteralConstant": "0x564132fcf500-IntLiteralConstant" }, { - "id": "0x56198f080500-IntLiteralConstant", + "id": "0x564132fcf500-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x56198f0829b0-IoControlSpec", + "id": "0x564132fd19b0-IoControlSpec", "variantKey": "StatVariable", - "StatVariable": "0x56198f0829b0-StatVariable" + "StatVariable": "0x564132fd19b0-StatVariable" }, { - "id": "0x56198f0829b0-StatVariable", - "Variable": "0x56198f0829b0-Variable" + "id": "0x564132fd19b0-StatVariable", + "Variable": "0x564132fd19b0-Variable" }, { - "id": "0x56198f0829b0-Variable", + "id": "0x564132fd19b0-Variable", "variantKey": "Designator", - "Designator": "0x56198f07aec0-Designator" + "Designator": "0x564132fc9ec0-Designator" }, { - "id": "0x56198f07aec0-Designator", + "id": "0x564132fc9ec0-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f07aed0-DataRef" + "DataRef": "0x564132fc9ed0-DataRef" }, { - "id": "0x56198f07aed0-DataRef", + "id": "0x564132fc9ed0-DataRef", "variantKey": "Name", - "Name": "0x56198f07aed0-Name" + "Name": "0x564132fc9ed0-Name" }, { - "id": "0x56198f07aed0-Name", + "id": "0x564132fc9ed0-Name", "source": "ios" }, { - "id": "0x56198f082bb0-OutputItem", + "id": "0x564132fd1bb0-OutputItem", "variantKey": "Expr", - "Expr": "0x56198f082bb0-Expr" + "Expr": "0x564132fd1bb0-Expr" }, { - "id": "0x56198f082bb0-Expr", + "id": "0x564132fd1bb0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f082bd0-LiteralConstant" + "LiteralConstant": "0x564132fd1bd0-LiteralConstant" }, { - "id": "0x56198f082bd0-LiteralConstant", + "id": "0x564132fd1bd0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56198f082bd0-CharLiteralConstant" + "CharLiteralConstant": "0x564132fd1bd0-CharLiteralConstant" }, { - "id": "0x56198f082bd0-CharLiteralConstant", + "id": "0x564132fd1bd0-CharLiteralConstant", "string": "Stream Header" }, { - "id": "0x56198f0839f0-ExecutionPartConstruct", + "id": "0x564132fd29f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56198f0839f0-ExecutableConstruct" + "ExecutableConstruct": "0x564132fd29f0-ExecutableConstruct" }, { - "id": "0x56198f0839f0-ExecutableConstruct", + "id": "0x564132fd29f0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56198f0839f0-Statement" + "Statement": "0x564132fd29f0-Statement" }, { - "id": "0x56198f0839f0-Statement", - "statement": "0x56198f083a00-ActionStmt", + "id": "0x564132fd29f0-Statement", + "statement": "0x564132fd2a00-ActionStmt", "source": "write(unit = u_seq, fmt = '(I5)', asynchronous = 'yes', id = async_id, iostat = ios) val" }, { - "id": "0x56198f083a00-ActionStmt", + "id": "0x564132fd2a00-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x56198f083890-WriteStmt" + "WriteStmt": "0x564132fd2890-WriteStmt" }, { - "id": "0x56198f083890-WriteStmt" + "id": "0x564132fd2890-WriteStmt" }, { - "id": "0x56198f083590-IoControlSpec", + "id": "0x564132fd2590-IoControlSpec", "variantKey": "IoUnit", - "IoUnit": "0x56198f083590-IoUnit" + "IoUnit": "0x564132fd2590-IoUnit" }, { - "id": "0x56198f083590-IoUnit", + "id": "0x564132fd2590-IoUnit", "variantKey": "Expr", - "Expr": "0x56198f135bb0-Expr" + "Expr": "0x564133084bb0-Expr" }, { - "id": "0x56198f135bb0-Expr", + "id": "0x564133084bb0-Expr", "variantKey": "Designator", - "Designator": "0x56198f082f80-Designator" + "Designator": "0x564132fd1f80-Designator" }, { - "id": "0x56198f082f80-Designator", + "id": "0x564132fd1f80-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f082f90-DataRef" + "DataRef": "0x564132fd1f90-DataRef" }, { - "id": "0x56198f082f90-DataRef", + "id": "0x564132fd1f90-DataRef", "variantKey": "Name", - "Name": "0x56198f082f90-Name" + "Name": "0x564132fd1f90-Name" }, { - "id": "0x56198f082f90-Name", + "id": "0x564132fd1f90-Name", "source": "u_seq" }, { - "id": "0x56198f083130-IoControlSpec", + "id": "0x564132fd2130-IoControlSpec", "variantKey": "Format", - "Format": "0x56198f083130-Format" + "Format": "0x564132fd2130-Format" }, { - "id": "0x56198f083130-Format", + "id": "0x564132fd2130-Format", "variantKey": "Expr", - "Expr": "0x56198f083130-Expr" + "Expr": "0x564132fd2130-Expr" }, { - "id": "0x56198f083130-Expr", + "id": "0x564132fd2130-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f083150-LiteralConstant" + "LiteralConstant": "0x564132fd2150-LiteralConstant" }, { - "id": "0x56198f083150-LiteralConstant", + "id": "0x564132fd2150-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56198f083150-CharLiteralConstant" + "CharLiteralConstant": "0x564132fd2150-CharLiteralConstant" }, { - "id": "0x56198f083150-CharLiteralConstant", + "id": "0x564132fd2150-CharLiteralConstant", "string": "(I5)" }, { - "id": "0x56198f083230-IoControlSpec", + "id": "0x564132fd2230-IoControlSpec", "variantKey": "Asynchronous", - "Asynchronous": "0x56198f083230-Asynchronous" + "Asynchronous": "0x564132fd2230-Asynchronous" }, { - "id": "0x56198f083230-Asynchronous", - "Expr": "0x56198f082fe0-Expr" + "id": "0x564132fd2230-Asynchronous", + "Expr": "0x564132fd1fe0-Expr" }, { - "id": "0x56198f082fe0-Expr", + "id": "0x564132fd1fe0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f083000-LiteralConstant" + "LiteralConstant": "0x564132fd2000-LiteralConstant" }, { - "id": "0x56198f083000-LiteralConstant", + "id": "0x564132fd2000-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56198f083000-CharLiteralConstant" + "CharLiteralConstant": "0x564132fd2000-CharLiteralConstant" }, { - "id": "0x56198f083000-CharLiteralConstant", + "id": "0x564132fd2000-CharLiteralConstant", "string": "yes" }, { - "id": "0x56198f083330-IoControlSpec", + "id": "0x564132fd2330-IoControlSpec", "variantKey": "IdVariable", - "IdVariable": "0x56198f083330-IdVariable" + "IdVariable": "0x564132fd2330-IdVariable" }, { - "id": "0x56198f083330-IdVariable", - "Variable": "0x56198f083330-Variable" + "id": "0x564132fd2330-IdVariable", + "Variable": "0x564132fd2330-Variable" }, { - "id": "0x56198f083330-Variable", + "id": "0x564132fd2330-Variable", "variantKey": "Designator", - "Designator": "0x56198f0830c0-Designator" + "Designator": "0x564132fd20c0-Designator" }, { - "id": "0x56198f0830c0-Designator", + "id": "0x564132fd20c0-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f0830d0-DataRef" + "DataRef": "0x564132fd20d0-DataRef" }, { - "id": "0x56198f0830d0-DataRef", + "id": "0x564132fd20d0-DataRef", "variantKey": "Name", - "Name": "0x56198f0830d0-Name" + "Name": "0x564132fd20d0-Name" }, { - "id": "0x56198f0830d0-Name", + "id": "0x564132fd20d0-Name", "source": "async_id" }, { - "id": "0x56198f083490-IoControlSpec", + "id": "0x564132fd2490-IoControlSpec", "variantKey": "StatVariable", - "StatVariable": "0x56198f083490-StatVariable" + "StatVariable": "0x564132fd2490-StatVariable" }, { - "id": "0x56198f083490-StatVariable", - "Variable": "0x56198f083490-Variable" + "id": "0x564132fd2490-StatVariable", + "Variable": "0x564132fd2490-Variable" }, { - "id": "0x56198f083490-Variable", + "id": "0x564132fd2490-Variable", "variantKey": "Designator", - "Designator": "0x56198f083420-Designator" + "Designator": "0x564132fd2420-Designator" }, { - "id": "0x56198f083420-Designator", + "id": "0x564132fd2420-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f083430-DataRef" + "DataRef": "0x564132fd2430-DataRef" }, { - "id": "0x56198f083430-DataRef", + "id": "0x564132fd2430-DataRef", "variantKey": "Name", - "Name": "0x56198f083430-Name" + "Name": "0x564132fd2430-Name" }, { - "id": "0x56198f083430-Name", + "id": "0x564132fd2430-Name", "source": "ios" }, { - "id": "0x56198f0837b0-OutputItem", + "id": "0x564132fd27b0-OutputItem", "variantKey": "Expr", - "Expr": "0x56198f0837b0-Expr" + "Expr": "0x564132fd27b0-Expr" }, { - "id": "0x56198f0837b0-Expr", + "id": "0x564132fd27b0-Expr", "variantKey": "Designator", - "Designator": "0x56198f083740-Designator" + "Designator": "0x564132fd2740-Designator" }, { - "id": "0x56198f083740-Designator", + "id": "0x564132fd2740-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f083750-DataRef" + "DataRef": "0x564132fd2750-DataRef" }, { - "id": "0x56198f083750-DataRef", + "id": "0x564132fd2750-DataRef", "variantKey": "Name", - "Name": "0x56198f083750-Name" + "Name": "0x564132fd2750-Name" }, { - "id": "0x56198f083750-Name", + "id": "0x564132fd2750-Name", "source": "val" }, { - "id": "0x56198f081f50-ExecutionPartConstruct", + "id": "0x564132fd0f50-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56198f081f50-ExecutableConstruct" + "ExecutableConstruct": "0x564132fd0f50-ExecutableConstruct" }, { - "id": "0x56198f081f50-ExecutableConstruct", + "id": "0x564132fd0f50-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56198f081f50-Statement" + "Statement": "0x564132fd0f50-Statement" }, { - "id": "0x56198f081f50-Statement", - "statement": "0x56198f081f60-ActionStmt", + "id": "0x564132fd0f50-Statement", + "statement": "0x564132fd0f60-ActionStmt", "source": "wait(unit=u_seq, id=async_id)" }, { - "id": "0x56198f081f60-ActionStmt", + "id": "0x564132fd0f60-ActionStmt", "variantKey": "WaitStmt", - "WaitStmt": "0x56198f085330-WaitStmt" + "WaitStmt": "0x564132fd4330-WaitStmt" }, { - "id": "0x56198f085330-WaitStmt", + "id": "0x564132fd4330-WaitStmt", "WaitSpec": [ - "0x56198f084fa0-WaitSpec", - "0x56198f0851d0-WaitSpec" + "0x564132fd3fa0-WaitSpec", + "0x564132fd41d0-WaitSpec" ] }, { - "id": "0x56198f084fa0-WaitSpec", + "id": "0x564132fd3fa0-WaitSpec", "variantKey": "FileUnitNumber", - "FileUnitNumber": "0x56198f084fa0-FileUnitNumber" + "FileUnitNumber": "0x564132fd3fa0-FileUnitNumber" }, { - "id": "0x56198f084fa0-FileUnitNumber", - "Expr": "0x56198f0805c0-Expr" + "id": "0x564132fd3fa0-FileUnitNumber", + "Expr": "0x564132fcf5c0-Expr" }, { - "id": "0x56198f0805c0-Expr", + "id": "0x564132fcf5c0-Expr", "variantKey": "Designator", - "Designator": "0x56198f07d0c0-Designator" + "Designator": "0x564132fcc0c0-Designator" }, { - "id": "0x56198f07d0c0-Designator", + "id": "0x564132fcc0c0-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f07d0d0-DataRef" + "DataRef": "0x564132fcc0d0-DataRef" }, { - "id": "0x56198f07d0d0-DataRef", + "id": "0x564132fcc0d0-DataRef", "variantKey": "Name", - "Name": "0x56198f07d0d0-Name" + "Name": "0x564132fcc0d0-Name" }, { - "id": "0x56198f07d0d0-Name", + "id": "0x564132fcc0d0-Name", "source": "u_seq" }, { - "id": "0x56198f0851d0-WaitSpec", + "id": "0x564132fd41d0-WaitSpec", "variantKey": "IdExpr", - "IdExpr": "0x56198f0851d0-IdExpr" + "IdExpr": "0x564132fd41d0-IdExpr" }, { - "id": "0x56198f0851d0-IdExpr", - "Expr": "0x56198f082de0-Expr" + "id": "0x564132fd41d0-IdExpr", + "Expr": "0x564132fd1de0-Expr" }, { - "id": "0x56198f082de0-Expr", + "id": "0x564132fd1de0-Expr", "variantKey": "Designator", - "Designator": "0x56198f07dc40-Designator" + "Designator": "0x564132fccc40-Designator" }, { - "id": "0x56198f07dc40-Designator", + "id": "0x564132fccc40-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f07dc50-DataRef" + "DataRef": "0x564132fccc50-DataRef" }, { - "id": "0x56198f07dc50-DataRef", + "id": "0x564132fccc50-DataRef", "variantKey": "Name", - "Name": "0x56198f07dc50-Name" + "Name": "0x564132fccc50-Name" }, { - "id": "0x56198f07dc50-Name", + "id": "0x564132fccc50-Name", "source": "async_id" }, { - "id": "0x56198f0948d0-ExecutionPartConstruct", + "id": "0x564132fe38d0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56198f0948d0-ExecutableConstruct" + "ExecutableConstruct": "0x564132fe38d0-ExecutableConstruct" }, { - "id": "0x56198f0948d0-ExecutableConstruct", + "id": "0x564132fe38d0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56198f0948d0-Statement" + "Statement": "0x564132fe38d0-Statement" }, { - "id": "0x56198f0948d0-Statement", - "statement": "0x56198f0948e0-ActionStmt", + "id": "0x564132fe38d0-Statement", + "statement": "0x564132fe38e0-ActionStmt", "source": "read(unit = u_seq, fmt = '(I5)', blank = 'zero', end = 200, err = 900, iostat = ios) val" }, { - "id": "0x56198f0948e0-ActionStmt", + "id": "0x564132fe38e0-ActionStmt", "variantKey": "ReadStmt", - "ReadStmt": "0x56198f094770-ReadStmt" + "ReadStmt": "0x564132fe3770-ReadStmt" }, { - "id": "0x56198f094770-ReadStmt" + "id": "0x564132fe3770-ReadStmt" }, { - "id": "0x56198f081330-IoControlSpec", + "id": "0x564132fd0330-IoControlSpec", "variantKey": "IoUnit", - "IoUnit": "0x56198f081330-IoUnit" + "IoUnit": "0x564132fd0330-IoUnit" }, { - "id": "0x56198f081330-IoUnit", + "id": "0x564132fd0330-IoUnit", "variantKey": "Expr", - "Expr": "0x56198f135c90-Expr" + "Expr": "0x564133084c90-Expr" }, { - "id": "0x56198f135c90-Expr", + "id": "0x564133084c90-Expr", "variantKey": "Designator", - "Designator": "0x56198f083ce0-Designator" + "Designator": "0x564132fd2ce0-Designator" }, { - "id": "0x56198f083ce0-Designator", + "id": "0x564132fd2ce0-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f083cf0-DataRef" + "DataRef": "0x564132fd2cf0-DataRef" }, { - "id": "0x56198f083cf0-DataRef", + "id": "0x564132fd2cf0-DataRef", "variantKey": "Name", - "Name": "0x56198f083cf0-Name" + "Name": "0x564132fd2cf0-Name" }, { - "id": "0x56198f083cf0-Name", + "id": "0x564132fd2cf0-Name", "source": "u_seq" }, { - "id": "0x56198f083ef0-IoControlSpec", + "id": "0x564132fd2ef0-IoControlSpec", "variantKey": "Format", - "Format": "0x56198f083ef0-Format" + "Format": "0x564132fd2ef0-Format" }, { - "id": "0x56198f083ef0-Format", + "id": "0x564132fd2ef0-Format", "variantKey": "Expr", - "Expr": "0x56198f083ef0-Expr" + "Expr": "0x564132fd2ef0-Expr" }, { - "id": "0x56198f083ef0-Expr", + "id": "0x564132fd2ef0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f083f10-LiteralConstant" + "LiteralConstant": "0x564132fd2f10-LiteralConstant" }, { - "id": "0x56198f083f10-LiteralConstant", + "id": "0x564132fd2f10-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56198f083f10-CharLiteralConstant" + "CharLiteralConstant": "0x564132fd2f10-CharLiteralConstant" }, { - "id": "0x56198f083f10-CharLiteralConstant", + "id": "0x564132fd2f10-CharLiteralConstant", "string": "(I5)" }, { - "id": "0x56198f083ff0-IoControlSpec", + "id": "0x564132fd2ff0-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x56198f083ff0-CharExpr" + "CharExpr": "0x564132fd2ff0-CharExpr" }, { - "id": "0x56198f083ff0-CharExpr", - "Kind": "0x56198f083ff8-Kind", - "Expr": "0x56198f083d40-Expr" + "id": "0x564132fd2ff0-CharExpr", + "Kind": "0x564132fd2ff8-Kind", + "Expr": "0x564132fd2d40-Expr" }, { - "id": "0x56198f083ff8-Kind", + "id": "0x564132fd2ff8-Kind", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Blank" }, { - "id": "0x56198f083d40-Expr", + "id": "0x564132fd2d40-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f083d60-LiteralConstant" + "LiteralConstant": "0x564132fd2d60-LiteralConstant" }, { - "id": "0x56198f083d60-LiteralConstant", + "id": "0x564132fd2d60-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56198f083d60-CharLiteralConstant" + "CharLiteralConstant": "0x564132fd2d60-CharLiteralConstant" }, { - "id": "0x56198f083d60-CharLiteralConstant", + "id": "0x564132fd2d60-CharLiteralConstant", "string": "zero" }, { - "id": "0x56198f0840f0-IoControlSpec", + "id": "0x564132fd30f0-IoControlSpec", "variantKey": "EndLabel", - "EndLabel": "0x56198f0840f0-EndLabel" + "EndLabel": "0x564132fd30f0-EndLabel" }, { - "id": "0x56198f0840f0-EndLabel", + "id": "0x564132fd30f0-EndLabel", "uint64_t": "200" }, { - "id": "0x56198f0841f0-IoControlSpec", + "id": "0x564132fd31f0-IoControlSpec", "variantKey": "ErrLabel", - "ErrLabel": "0x56198f0841f0-ErrLabel" + "ErrLabel": "0x564132fd31f0-ErrLabel" }, { - "id": "0x56198f0841f0-ErrLabel", + "id": "0x564132fd31f0-ErrLabel", "uint64_t": "900" }, { - "id": "0x56198f0842f0-IoControlSpec", + "id": "0x564132fd32f0-IoControlSpec", "variantKey": "StatVariable", - "StatVariable": "0x56198f0842f0-StatVariable" + "StatVariable": "0x564132fd32f0-StatVariable" }, { - "id": "0x56198f0842f0-StatVariable", - "Variable": "0x56198f0842f0-Variable" + "id": "0x564132fd32f0-StatVariable", + "Variable": "0x564132fd32f0-Variable" }, { - "id": "0x56198f0842f0-Variable", + "id": "0x564132fd32f0-Variable", "variantKey": "Designator", - "Designator": "0x56198f083e80-Designator" + "Designator": "0x564132fd2e80-Designator" }, { - "id": "0x56198f083e80-Designator", + "id": "0x564132fd2e80-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f083e90-DataRef" + "DataRef": "0x564132fd2e90-DataRef" }, { - "id": "0x56198f083e90-DataRef", + "id": "0x564132fd2e90-DataRef", "variantKey": "Name", - "Name": "0x56198f083e90-Name" + "Name": "0x564132fd2e90-Name" }, { - "id": "0x56198f083e90-Name", + "id": "0x564132fd2e90-Name", "source": "ios" }, { - "id": "0x56198f084fe0-InputItem", + "id": "0x564132fd3fe0-InputItem", "variantKey": "Variable", - "Variable": "0x56198f084fe0-Variable" + "Variable": "0x564132fd3fe0-Variable" }, { - "id": "0x56198f084fe0-Variable", + "id": "0x564132fd3fe0-Variable", "variantKey": "Designator", - "Designator": "0x56198f07b7d0-Designator" + "Designator": "0x564132fca7d0-Designator" }, { - "id": "0x56198f07b7d0-Designator", + "id": "0x564132fca7d0-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f07b7e0-DataRef" + "DataRef": "0x564132fca7e0-DataRef" }, { - "id": "0x56198f07b7e0-DataRef", + "id": "0x564132fca7e0-DataRef", "variantKey": "Name", - "Name": "0x56198f07b7e0-Name" + "Name": "0x564132fca7e0-Name" }, { - "id": "0x56198f07b7e0-Name", + "id": "0x564132fca7e0-Name", "source": "val" }, { - "id": "0x56198f07e4b0-ExecutionPartConstruct", + "id": "0x564132fcd4b0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56198f07e4b0-ExecutableConstruct" + "ExecutableConstruct": "0x564132fcd4b0-ExecutableConstruct" }, { - "id": "0x56198f07e4b0-ExecutableConstruct", + "id": "0x564132fcd4b0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56198f07e4b0-Statement" + "Statement": "0x564132fcd4b0-Statement" }, { - "id": "0x56198f07e4b0-Statement", - "statement": "0x56198f07e4c0-ActionStmt", + "id": "0x564132fcd4b0-Statement", + "statement": "0x564132fcd4c0-ActionStmt", "label": "200", "source": "200 continue" }, { - "id": "0x56198f07e4c0-ActionStmt", + "id": "0x564132fcd4c0-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x56198f07e4c0-ContinueStmt" + "ContinueStmt": "0x564132fcd4c0-ContinueStmt" }, { - "id": "0x56198f07e4c0-ContinueStmt" + "id": "0x564132fcd4c0-ContinueStmt" }, { - "id": "0x56198f081490-ExecutionPartConstruct", + "id": "0x564132fd0490-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56198f081490-ExecutableConstruct" + "ExecutableConstruct": "0x564132fd0490-ExecutableConstruct" }, { - "id": "0x56198f081490-ExecutableConstruct", + "id": "0x564132fd0490-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56198f081490-Statement" + "Statement": "0x564132fd0490-Statement" }, { - "id": "0x56198f081490-Statement", - "statement": "0x56198f0814a0-ActionStmt", + "id": "0x564132fd0490-Statement", + "statement": "0x564132fd04a0-ActionStmt", "source": "print *, \"All 20 io-control-spec items demonstrated successfully!\"" }, { - "id": "0x56198f0814a0-ActionStmt", + "id": "0x564132fd04a0-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x56198f094a10-PrintStmt" + "PrintStmt": "0x564132fe3a10-PrintStmt" }, { - "id": "0x56198f094a10-PrintStmt", - "Format": "0x56198f094a28-Format", + "id": "0x564132fe3a10-PrintStmt", + "Format": "0x564132fe3a28-Format", "OutputItem": [ - "0x56198f094930-OutputItem" + "0x564132fe3930-OutputItem" ] }, { - "id": "0x56198f094a28-Format", + "id": "0x564132fe3a28-Format", "variantKey": "Star", - "Star": "0x56198f094a28-Star" + "Star": "0x564132fe3a28-Star" }, { - "id": "0x56198f094a28-Star" + "id": "0x564132fe3a28-Star" }, { - "id": "0x56198f094930-OutputItem", + "id": "0x564132fe3930-OutputItem", "variantKey": "Expr", - "Expr": "0x56198f094930-Expr" + "Expr": "0x564132fe3930-Expr" }, { - "id": "0x56198f094930-Expr", + "id": "0x564132fe3930-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f094950-LiteralConstant" + "LiteralConstant": "0x564132fe3950-LiteralConstant" }, { - "id": "0x56198f094950-LiteralConstant", + "id": "0x564132fe3950-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56198f094950-CharLiteralConstant" + "CharLiteralConstant": "0x564132fe3950-CharLiteralConstant" }, { - "id": "0x56198f094950-CharLiteralConstant", + "id": "0x564132fe3950-CharLiteralConstant", "string": "All 20 io-control-spec items demonstrated successfully!" }, { - "id": "0x56198f080e80-ExecutionPartConstruct", + "id": "0x564132fcfe80-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56198f080e80-ExecutableConstruct" + "ExecutableConstruct": "0x564132fcfe80-ExecutableConstruct" }, { - "id": "0x56198f080e80-ExecutableConstruct", + "id": "0x564132fcfe80-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56198f080e80-Statement" + "Statement": "0x564132fcfe80-Statement" }, { - "id": "0x56198f080e80-Statement", - "statement": "0x56198f080e90-ActionStmt", + "id": "0x564132fcfe80-Statement", + "statement": "0x564132fcfe90-ActionStmt", "source": "close(u_seq, status='delete')" }, { - "id": "0x56198f080e90-ActionStmt", + "id": "0x564132fcfe90-ActionStmt", "variantKey": "CloseStmt", - "CloseStmt": "0x56198f084a20-CloseStmt" + "CloseStmt": "0x564132fd3a20-CloseStmt" }, { - "id": "0x56198f084a20-CloseStmt", + "id": "0x564132fd3a20-CloseStmt", "CloseSpec": [ - "0x56198f085080-CloseSpec", - "0x56198f085040-CloseSpec" + "0x564132fd4080-CloseSpec", + "0x564132fd4040-CloseSpec" ] }, { - "id": "0x56198f085080-CloseSpec", + "id": "0x564132fd4080-CloseSpec", "variantKey": "FileUnitNumber", - "FileUnitNumber": "0x56198f085080-FileUnitNumber" + "FileUnitNumber": "0x564132fd4080-FileUnitNumber" }, { - "id": "0x56198f085080-FileUnitNumber", - "Expr": "0x56198f083c00-Expr" + "id": "0x564132fd4080-FileUnitNumber", + "Expr": "0x564132fd2c00-Expr" }, { - "id": "0x56198f083c00-Expr", + "id": "0x564132fd2c00-Expr", "variantKey": "Designator", - "Designator": "0x56198f080fb0-Designator" + "Designator": "0x564132fcffb0-Designator" }, { - "id": "0x56198f080fb0-Designator", + "id": "0x564132fcffb0-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f080fc0-DataRef" + "DataRef": "0x564132fcffc0-DataRef" }, { - "id": "0x56198f080fc0-DataRef", + "id": "0x564132fcffc0-DataRef", "variantKey": "Name", - "Name": "0x56198f080fc0-Name" + "Name": "0x564132fcffc0-Name" }, { - "id": "0x56198f080fc0-Name", + "id": "0x564132fcffc0-Name", "source": "u_seq" }, { - "id": "0x56198f085040-CloseSpec", + "id": "0x564132fd4040-CloseSpec", "variantKey": "StatusExpr", - "StatusExpr": "0x56198f085040-StatusExpr" + "StatusExpr": "0x564132fd4040-StatusExpr" }, { - "id": "0x56198f085040-StatusExpr", - "Expr": "0x56198f083b20-Expr" + "id": "0x564132fd4040-StatusExpr", + "Expr": "0x564132fd2b20-Expr" }, { - "id": "0x56198f083b20-Expr", + "id": "0x564132fd2b20-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f083b40-LiteralConstant" + "LiteralConstant": "0x564132fd2b40-LiteralConstant" }, { - "id": "0x56198f083b40-LiteralConstant", + "id": "0x564132fd2b40-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56198f083b40-CharLiteralConstant" + "CharLiteralConstant": "0x564132fd2b40-CharLiteralConstant" }, { - "id": "0x56198f083b40-CharLiteralConstant", + "id": "0x564132fd2b40-CharLiteralConstant", "string": "delete" }, { - "id": "0x56198f07d2f0-ExecutionPartConstruct", + "id": "0x564132fcc2f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56198f07d2f0-ExecutableConstruct" + "ExecutableConstruct": "0x564132fcc2f0-ExecutableConstruct" }, { - "id": "0x56198f07d2f0-ExecutableConstruct", + "id": "0x564132fcc2f0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56198f07d2f0-Statement" + "Statement": "0x564132fcc2f0-Statement" }, { - "id": "0x56198f07d2f0-Statement", - "statement": "0x56198f07d300-ActionStmt", + "id": "0x564132fcc2f0-Statement", + "statement": "0x564132fcc300-ActionStmt", "source": "close(u_dir, status='delete')" }, { - "id": "0x56198f07d300-ActionStmt", + "id": "0x564132fcc300-ActionStmt", "variantKey": "CloseStmt", - "CloseStmt": "0x56198f085010-CloseStmt" + "CloseStmt": "0x564132fd4010-CloseStmt" }, { - "id": "0x56198f085010-CloseStmt", + "id": "0x564132fd4010-CloseStmt", "CloseSpec": [ - "0x56198f085130-CloseSpec", - "0x56198f0850f0-CloseSpec" + "0x564132fd4130-CloseSpec", + "0x564132fd40f0-CloseSpec" ] }, { - "id": "0x56198f085130-CloseSpec", + "id": "0x564132fd4130-CloseSpec", "variantKey": "FileUnitNumber", - "FileUnitNumber": "0x56198f085130-FileUnitNumber" + "FileUnitNumber": "0x564132fd4130-FileUnitNumber" }, { - "id": "0x56198f085130-FileUnitNumber", - "Expr": "0x56198f083a40-Expr" + "id": "0x564132fd4130-FileUnitNumber", + "Expr": "0x564132fd2a40-Expr" }, { - "id": "0x56198f083a40-Expr", + "id": "0x564132fd2a40-Expr", "variantKey": "Designator", - "Designator": "0x56198f07f840-Designator" + "Designator": "0x564132fce840-Designator" }, { - "id": "0x56198f07f840-Designator", + "id": "0x564132fce840-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f07f850-DataRef" + "DataRef": "0x564132fce850-DataRef" }, { - "id": "0x56198f07f850-DataRef", + "id": "0x564132fce850-DataRef", "variantKey": "Name", - "Name": "0x56198f07f850-Name" + "Name": "0x564132fce850-Name" }, { - "id": "0x56198f07f850-Name", + "id": "0x564132fce850-Name", "source": "u_dir" }, { - "id": "0x56198f0850f0-CloseSpec", + "id": "0x564132fd40f0-CloseSpec", "variantKey": "StatusExpr", - "StatusExpr": "0x56198f0850f0-StatusExpr" + "StatusExpr": "0x564132fd40f0-StatusExpr" }, { - "id": "0x56198f0850f0-StatusExpr", - "Expr": "0x56198f080d90-Expr" + "id": "0x564132fd40f0-StatusExpr", + "Expr": "0x564132fcfd90-Expr" }, { - "id": "0x56198f080d90-Expr", + "id": "0x564132fcfd90-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f080db0-LiteralConstant" + "LiteralConstant": "0x564132fcfdb0-LiteralConstant" }, { - "id": "0x56198f080db0-LiteralConstant", + "id": "0x564132fcfdb0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56198f080db0-CharLiteralConstant" + "CharLiteralConstant": "0x564132fcfdb0-CharLiteralConstant" }, { - "id": "0x56198f080db0-CharLiteralConstant", + "id": "0x564132fcfdb0-CharLiteralConstant", "string": "delete" }, { - "id": "0x56198f081430-ExecutionPartConstruct", + "id": "0x564132fd0430-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56198f081430-ExecutableConstruct" + "ExecutableConstruct": "0x564132fd0430-ExecutableConstruct" }, { - "id": "0x56198f081430-ExecutableConstruct", + "id": "0x564132fd0430-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56198f081430-Statement" + "Statement": "0x564132fd0430-Statement" }, { - "id": "0x56198f081430-Statement", - "statement": "0x56198f081440-ActionStmt", + "id": "0x564132fd0430-Statement", + "statement": "0x564132fd0440-ActionStmt", "source": "close(u_stream, status='delete')" }, { - "id": "0x56198f081440-ActionStmt", + "id": "0x564132fd0440-ActionStmt", "variantKey": "CloseStmt", - "CloseStmt": "0x56198f084900-CloseStmt" + "CloseStmt": "0x564132fd3900-CloseStmt" }, { - "id": "0x56198f084900-CloseStmt", + "id": "0x564132fd3900-CloseStmt", "CloseSpec": [ - "0x56198f084f20-CloseSpec", - "0x56198f085170-CloseSpec" + "0x564132fd3f20-CloseSpec", + "0x564132fd4170-CloseSpec" ] }, { - "id": "0x56198f084f20-CloseSpec", + "id": "0x564132fd3f20-CloseSpec", "variantKey": "FileUnitNumber", - "FileUnitNumber": "0x56198f084f20-FileUnitNumber" + "FileUnitNumber": "0x564132fd3f20-FileUnitNumber" }, { - "id": "0x56198f084f20-FileUnitNumber", - "Expr": "0x56198f080cb0-Expr" + "id": "0x564132fd3f20-FileUnitNumber", + "Expr": "0x564132fcfcb0-Expr" }, { - "id": "0x56198f080cb0-Expr", + "id": "0x564132fcfcb0-Expr", "variantKey": "Designator", - "Designator": "0x56198f07d790-Designator" + "Designator": "0x564132fcc790-Designator" }, { - "id": "0x56198f07d790-Designator", + "id": "0x564132fcc790-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f07d7a0-DataRef" + "DataRef": "0x564132fcc7a0-DataRef" }, { - "id": "0x56198f07d7a0-DataRef", + "id": "0x564132fcc7a0-DataRef", "variantKey": "Name", - "Name": "0x56198f07d7a0-Name" + "Name": "0x564132fcc7a0-Name" }, { - "id": "0x56198f07d7a0-Name", + "id": "0x564132fcc7a0-Name", "source": "u_stream" }, { - "id": "0x56198f085170-CloseSpec", + "id": "0x564132fd4170-CloseSpec", "variantKey": "StatusExpr", - "StatusExpr": "0x56198f085170-StatusExpr" + "StatusExpr": "0x564132fd4170-StatusExpr" }, { - "id": "0x56198f085170-StatusExpr", - "Expr": "0x56198f094b10-Expr" + "id": "0x564132fd4170-StatusExpr", + "Expr": "0x564132fe3b10-Expr" }, { - "id": "0x56198f094b10-Expr", + "id": "0x564132fe3b10-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f094b30-LiteralConstant" + "LiteralConstant": "0x564132fe3b30-LiteralConstant" }, { - "id": "0x56198f094b30-LiteralConstant", + "id": "0x564132fe3b30-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56198f094b30-CharLiteralConstant" + "CharLiteralConstant": "0x564132fe3b30-CharLiteralConstant" }, { - "id": "0x56198f094b30-CharLiteralConstant", + "id": "0x564132fe3b30-CharLiteralConstant", "string": "delete" }, { - "id": "0x56198f0836f0-ExecutionPartConstruct", + "id": "0x564132fd26f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56198f0836f0-ExecutableConstruct" + "ExecutableConstruct": "0x564132fd26f0-ExecutableConstruct" }, { - "id": "0x56198f0836f0-ExecutableConstruct", + "id": "0x564132fd26f0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56198f0836f0-Statement" + "Statement": "0x564132fd26f0-Statement" }, { - "id": "0x56198f0836f0-Statement", - "statement": "0x56198f083700-ActionStmt", + "id": "0x564132fd26f0-Statement", + "statement": "0x564132fd2700-ActionStmt", "source": "stop" }, { - "id": "0x56198f083700-ActionStmt", + "id": "0x564132fd2700-ActionStmt", "variantKey": "StopStmt", - "StopStmt": "0x56198f094bf0-StopStmt" + "StopStmt": "0x564132fe3bf0-StopStmt" }, { - "id": "0x56198f094bf0-StopStmt", - "kind": "0x56198f094cd8-Kind" + "id": "0x564132fe3bf0-StopStmt", + "kind": "0x564132fe3cd8-Kind" }, { - "id": "0x56198f094cd8-Kind", + "id": "0x564132fe3cd8-Kind", "disambiguation": "Fortran::parser::StopStmt::Kind", "value": "Stop" }, { - "id": "0x56198f0951e0-ExecutionPartConstruct", + "id": "0x564132fe41e0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56198f0951e0-ExecutableConstruct" + "ExecutableConstruct": "0x564132fe41e0-ExecutableConstruct" }, { - "id": "0x56198f0951e0-ExecutableConstruct", + "id": "0x564132fe41e0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56198f0951e0-Statement" + "Statement": "0x564132fe41e0-Statement" }, { - "id": "0x56198f0951e0-Statement", - "statement": "0x56198f0951f0-ActionStmt", + "id": "0x564132fe41e0-Statement", + "statement": "0x564132fe41f0-ActionStmt", "label": "900", "source": "900 print *, \"I/O Error Occurred: \", trim(io_message)" }, { - "id": "0x56198f0951f0-ActionStmt", + "id": "0x564132fe41f0-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x56198f095070-PrintStmt" + "PrintStmt": "0x564132fe4070-PrintStmt" }, { - "id": "0x56198f095070-PrintStmt", - "Format": "0x56198f095088-Format", + "id": "0x564132fe4070-PrintStmt", + "Format": "0x564132fe4088-Format", "OutputItem": [ - "0x56198f094f90-OutputItem", - "0x56198f094ea0-OutputItem" + "0x564132fe3f90-OutputItem", + "0x564132fe3ea0-OutputItem" ] }, { - "id": "0x56198f095088-Format", + "id": "0x564132fe4088-Format", "variantKey": "Star", - "Star": "0x56198f095088-Star" + "Star": "0x564132fe4088-Star" }, { - "id": "0x56198f095088-Star" + "id": "0x564132fe4088-Star" }, { - "id": "0x56198f094f90-OutputItem", + "id": "0x564132fe3f90-OutputItem", "variantKey": "Expr", - "Expr": "0x56198f094f90-Expr" + "Expr": "0x564132fe3f90-Expr" }, { - "id": "0x56198f094f90-Expr", + "id": "0x564132fe3f90-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56198f094fb0-LiteralConstant" + "LiteralConstant": "0x564132fe3fb0-LiteralConstant" }, { - "id": "0x56198f094fb0-LiteralConstant", + "id": "0x564132fe3fb0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56198f094fb0-CharLiteralConstant" + "CharLiteralConstant": "0x564132fe3fb0-CharLiteralConstant" }, { - "id": "0x56198f094fb0-CharLiteralConstant", + "id": "0x564132fe3fb0-CharLiteralConstant", "string": "I/O Error Occurred: " }, { - "id": "0x56198f094ea0-OutputItem", + "id": "0x564132fe3ea0-OutputItem", "variantKey": "Expr", - "Expr": "0x56198f094ea0-Expr" + "Expr": "0x564132fe3ea0-Expr" }, { - "id": "0x56198f094ea0-Expr", + "id": "0x564132fe3ea0-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x56198f07daf0-FunctionReference" + "FunctionReference": "0x564132fccaf0-FunctionReference" }, { - "id": "0x56198f07daf0-FunctionReference", - "Call": "0x56198f07daf0-Call" + "id": "0x564132fccaf0-FunctionReference", + "Call": "0x564132fccaf0-Call" }, { - "id": "0x56198f07daf0-Call", - "ProcedureDesignator": "0x56198f07db08-ProcedureDesignator", + "id": "0x564132fccaf0-Call", + "ProcedureDesignator": "0x564132fccb08-ProcedureDesignator", "ActualArgSpec": [ - "0x56198f07c090-ActualArgSpec" + "0x564132fcb090-ActualArgSpec" ] }, { - "id": "0x56198f07db08-ProcedureDesignator", + "id": "0x564132fccb08-ProcedureDesignator", "variantKey": "Name", - "Name": "0x56198f07db08-Name" + "Name": "0x564132fccb08-Name" }, { - "id": "0x56198f07db08-Name", + "id": "0x564132fccb08-Name", "source": "trim" }, { - "id": "0x56198f07c090-ActualArgSpec", - "ActualArg": "0x56198f07c090-ActualArg" + "id": "0x564132fcb090-ActualArgSpec", + "ActualArg": "0x564132fcb090-ActualArg" }, { - "id": "0x56198f07c090-ActualArg", + "id": "0x564132fcb090-ActualArg", "variantKey": "Expr", - "Expr": "0x56198f094d50-Expr" + "Expr": "0x564132fe3d50-Expr" }, { - "id": "0x56198f094d50-Expr", + "id": "0x564132fe3d50-Expr", "variantKey": "Designator", - "Designator": "0x56198f094cf0-Designator" + "Designator": "0x564132fe3cf0-Designator" }, { - "id": "0x56198f094cf0-Designator", + "id": "0x564132fe3cf0-Designator", "variantKey": "DataRef", - "DataRef": "0x56198f094d00-DataRef" + "DataRef": "0x564132fe3d00-DataRef" }, { - "id": "0x56198f094d00-DataRef", + "id": "0x564132fe3d00-DataRef", "variantKey": "Name", - "Name": "0x56198f094d00-Name" + "Name": "0x564132fe3d00-Name" }, { - "id": "0x56198f094d00-Name", + "id": "0x564132fe3d00-Name", "source": "io_message" }, { - "id": "0x56198f08d5d0-Statement", - "statement": "0x56198f08d5e0-EndProgramStmt", + "id": "0x564132fdc5d0-Statement", + "statement": "0x564132fdc5e0-EndProgramStmt", "source": "end program IO_CONTROL_SPECS" }, { - "id": "0x56198f08d5e0-EndProgramStmt", - "Name": "0x56198f08d5e0-Name" + "id": "0x564132fdc5e0-EndProgramStmt", + "Name": "0x564132fdc5e0-Name" }, { - "id": "0x56198f08d5e0-Name", + "id": "0x564132fdc5e0-Name", "source": "IO_CONTROL_SPECS" } ], "comments": [ { "text": " Define a namelist for the NML specifier demo", - "stmtId": "0x56198f05cda0-Statement", + "stmtId": "0x564132fabda0-Statement", "trailing": false }, { "text": " Open temporary test files (Sequential, Direct, Stream)", - "stmtId": "0x56198f07b9b0-Statement", + "stmtId": "0x564132fca9b0-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x56198f080490-Statement", + "stmtId": "0x564132fcf490-Statement", "trailing": false }, { "text": " 1. Formatting, Rounding, Decimal, Sign, Delim, IOSTAT & IOMSG", - "stmtId": "0x56198f080490-Statement", + "stmtId": "0x564132fcf490-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x56198f080490-Statement", + "stmtId": "0x564132fcf490-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x56198f08bfe0-Statement", + "stmtId": "0x564132fdafe0-Statement", "trailing": false }, { "text": " 2. Namelist Specifier (NML)", - "stmtId": "0x56198f08bfe0-Statement", + "stmtId": "0x564132fdafe0-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x56198f08bfe0-Statement", + "stmtId": "0x564132fdafe0-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x56198f07e510-Statement", + "stmtId": "0x564132fcd510-Statement", "trailing": false }, { "text": " 3. Non-Advancing I/O (ADVANCE, SIZE, PAD, EOR, ERR)", - "stmtId": "0x56198f07e510-Statement", + "stmtId": "0x564132fcd510-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x56198f07e510-Statement", + "stmtId": "0x564132fcd510-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x56198f082850-Statement", + "stmtId": "0x564132fd1850-Statement", "trailing": false }, { "text": " 4. Direct Access (REC)", - "stmtId": "0x56198f082850-Statement", + "stmtId": "0x564132fd1850-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x56198f082850-Statement", + "stmtId": "0x564132fd1850-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x56198f081270-Statement", + "stmtId": "0x564132fd0270-Statement", "trailing": false }, { "text": " 5. Stream Access (POS)", - "stmtId": "0x56198f081270-Statement", + "stmtId": "0x564132fd0270-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x56198f081270-Statement", + "stmtId": "0x564132fd0270-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x56198f0839f0-Statement", + "stmtId": "0x564132fd29f0-Statement", "trailing": false }, { "text": " 6. Asynchronous Non-Blocking I/O (ASYNCHRONOUS, ID)", - "stmtId": "0x56198f0839f0-Statement", + "stmtId": "0x564132fd29f0-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x56198f0839f0-Statement", + "stmtId": "0x564132fd29f0-Statement", "trailing": false }, { "text": " Wait for async operation to complete before continuing", - "stmtId": "0x56198f081f50-Statement", + "stmtId": "0x564132fd0f50-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x56198f0948d0-Statement", + "stmtId": "0x564132fe38d0-Statement", "trailing": false }, { "text": " 7. Input Blank Handling and EOF Branching (BLANK, END)", - "stmtId": "0x56198f0948d0-Statement", + "stmtId": "0x564132fe38d0-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x56198f0948d0-Statement", + "stmtId": "0x564132fe38d0-Statement", "trailing": false }, { "text": " Clean up files", - "stmtId": "0x56198f080e80-Statement", + "stmtId": "0x564132fcfe80-Statement", "trailing": false } ], diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index b3452b10..09cbc87d 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -72,6 +72,8 @@ public enum FlangName implements StringProvider { RETURN_STMT, DIMENSION_STMT, DECLARATION, + NAMELIST_STMT, + GROUP, /// Conditional Statements IF_CONSTRUCT, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 7bf4884a..c2d898c0 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -134,6 +134,8 @@ public Nodes(FortranJsonResult data) { processors.put(ReturnStmt.class, s::returnStmt); processors.put(DimensionStmt.class, s::dimensionStmt); processors.put(DimensionDecl.class, s::dimensionDecl); + processors.put(NamelistStmt.class, s::namelistStmt); + processors.put(NamelistGroup.class, s::namelistGroup); var e = new ExprProcessors(data); processors.put(StringLiteral.class, e::stringLiteral); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 8e0e7ab5..3839ccd6 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -645,4 +645,22 @@ public void dimensionDecl(DimensionDecl dimensionDecl) { var arraySpec = getChild(dimensionDecl, FlangName.ARRAY_SPEC); dimensionDecl.addChild(arraySpec); } + + public void namelistStmt(NamelistStmt namelistStmt) { + var groups = getChildren(namelistStmt, FlangName.GROUP); + namelistStmt.addChildren(groups); + } + + public void namelistGroup(NamelistGroup namelistGroup) { + var attrs = attributes(namelistGroup); + + var groupNameId = attrs.getString("groupName"); + var groupName = attributes().get(groupNameId).getString("source"); + namelistGroup.set(NamelistGroup.GROUP_NAME, groupName); + + var objectNames = attrs.getStringList("objectNames").stream() + .map(objectNameId -> attributes().get(objectNameId).getString("source")) + .toList(); + namelistGroup.set(NamelistGroup.OBJECT_NAMES, objectNames); + } } From 455da34cd2d83800402fd4ca026b6f688a06c11b Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 27 Jul 2026 16:14:35 +0100 Subject: [PATCH 134/260] Create new nodes for allocation options --- .../ast/nodes/alloc/ExprAllocOption.java | 31 ++++++++++++++++++ .../ast/nodes/alloc/StatAllocOption.java | 24 -------------- .../ast/nodes/alloc/VarAllocOption.java | 32 +++++++++++++++++++ .../alloc/enums/ExprAllocOptionKind.java | 7 ++++ .../nodes/alloc/enums/VarAllocOptionKind.java | 7 ++++ .../fe/specs/fortran/parser/FlangToClass.java | 4 +-- .../parser/processors/AllocProcessors.java | 4 +-- .../fortran/parser/processors/Nodes.java | 4 +-- 8 files changed, 83 insertions(+), 30 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/ExprAllocOption.java delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/StatAllocOption.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/VarAllocOption.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/enums/ExprAllocOptionKind.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/enums/VarAllocOptionKind.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/ExprAllocOption.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/ExprAllocOption.java new file mode 100644 index 00000000..3acb1e99 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/ExprAllocOption.java @@ -0,0 +1,31 @@ +package pt.up.fe.specs.fortran.ast.nodes.alloc; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.alloc.enums.ExprAllocOptionKind; +import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; + +import java.util.Collection; + +public class ExprAllocOption extends AllocOption { + public static final DataKey KIND = KeyFactory.enumeration("kind", ExprAllocOptionKind.class); + + public ExprAllocOption(DataStore data, Collection children) { + super(data, children); + } + + public ExprAllocOptionKind getKind() { + return get(KIND); + } + + public Expr getExpr() { + return getChild(Expr.class, 0); + } + + @Override + public String getCode() { + return encase(getKind().name()) + "=" + getExpr().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/StatAllocOption.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/StatAllocOption.java deleted file mode 100644 index 04171d50..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/StatAllocOption.java +++ /dev/null @@ -1,24 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.alloc; - -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.FortranKeyword; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.decl.Variable; -import pt.up.fe.specs.fortran.ast.nodes.expr.DataRef; - -import java.util.Collection; - -public class StatAllocOption extends AllocOption { - public StatAllocOption(DataStore data, Collection children) { - super(data, children); - } - - public Variable getRef() { - return getChild(Variable.class); - } - - @Override - public String getCode() { - return keyword(FortranKeyword.STAT) + "=" + getRef().getCode(); - } -} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/VarAllocOption.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/VarAllocOption.java new file mode 100644 index 00000000..0ba63307 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/VarAllocOption.java @@ -0,0 +1,32 @@ +package pt.up.fe.specs.fortran.ast.nodes.alloc; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.alloc.enums.VarAllocOptionKind; +import pt.up.fe.specs.fortran.ast.nodes.decl.Variable; + +import java.util.Collection; + +public class VarAllocOption extends AllocOption { + public static final DataKey KIND = KeyFactory.enumeration("kind", VarAllocOptionKind.class); + + public VarAllocOption(DataStore data, Collection children) { + super(data, children); + } + + public VarAllocOptionKind getKind() { + return get(KIND); + } + + public Variable getVariable() { + return getChild(Variable.class); + } + + @Override + public String getCode() { + return encase(getKind().name()) + "=" + getVariable().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/enums/ExprAllocOptionKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/enums/ExprAllocOptionKind.java new file mode 100644 index 00000000..27aa8390 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/enums/ExprAllocOptionKind.java @@ -0,0 +1,7 @@ +package pt.up.fe.specs.fortran.ast.nodes.alloc.enums; + +public enum ExprAllocOptionKind { + MOLD, + SOURCE, + STREAM; +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/enums/VarAllocOptionKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/enums/VarAllocOptionKind.java new file mode 100644 index 00000000..e5ebc5c1 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/enums/VarAllocOptionKind.java @@ -0,0 +1,7 @@ +package pt.up.fe.specs.fortran.ast.nodes.alloc.enums; + +public enum VarAllocOptionKind { + ERRMSG, + STAT, + PINNED; +} diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index d4b6d1de..76aef3d4 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -2,7 +2,7 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.alloc.Allocation; -import pt.up.fe.specs.fortran.ast.nodes.alloc.StatAllocOption; +import pt.up.fe.specs.fortran.ast.nodes.alloc.VarAllocOption; import pt.up.fe.specs.fortran.ast.nodes.decl.*; import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.DeferredTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.ExprTypeParamValue; @@ -255,7 +255,7 @@ public class FlangToClass { /// UTILs NAME_TO_MAPPER.put(FlangName.NAME_VALUE, ClassMapper.always(NameValue.class)); - NAME_TO_MAPPER.put(FlangName.STAT_VARIABLE, ClassMapper.always(StatAllocOption.class)); + NAME_TO_MAPPER.put(FlangName.STAT_VARIABLE, ClassMapper.always(VarAllocOption.class)); /// OPENMP NAME_TO_MAPPER.put(FlangName.OMP_BLOCK_CONSTRUCT, ClassMapper.always(OmpBlockConstruct.class)); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AllocProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AllocProcessors.java index 41a6abd4..bbe08c0f 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AllocProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AllocProcessors.java @@ -1,7 +1,7 @@ package pt.up.fe.specs.fortran.parser.processors; import pt.up.fe.specs.fortran.ast.nodes.alloc.Allocation; -import pt.up.fe.specs.fortran.ast.nodes.alloc.StatAllocOption; +import pt.up.fe.specs.fortran.ast.nodes.alloc.VarAllocOption; import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; @@ -15,7 +15,7 @@ public void allocation(Allocation allocation) { allocation.addChildren(getChildren(allocation, FlangName.ALLOCATE_SHAPE_SPEC)); } - public void statAllocOption(StatAllocOption statAllocOption) { + public void statAllocOption(VarAllocOption statAllocOption) { statAllocOption.addChild(getChild(statAllocOption, FlangName.EXPR)); } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index c2d898c0..da0a70ed 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -2,7 +2,7 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.alloc.Allocation; -import pt.up.fe.specs.fortran.ast.nodes.alloc.StatAllocOption; +import pt.up.fe.specs.fortran.ast.nodes.alloc.VarAllocOption; import pt.up.fe.specs.fortran.ast.nodes.decl.*; import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.DeferredTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.ExprTypeParamValue; @@ -68,7 +68,7 @@ public Nodes(FortranJsonResult data) { var alloc = new AllocProcessors(data); processors.put(Allocation.class, alloc::allocation); - processors.put(StatAllocOption.class, alloc::statAllocOption); + processors.put(VarAllocOption.class, alloc::statAllocOption); var d = new DeclProcessors(data); processors.put(EntityDecl.class, d::entityDecl); From 1ddcb32087b0827b70774b7c965a3397add37f88 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 27 Jul 2026 16:26:11 +0100 Subject: [PATCH 135/260] Fix allocation option processors with new AST structure --- .../up/fe/specs/fortran/parser/FlangName.java | 5 +++ .../fe/specs/fortran/parser/FlangToClass.java | 9 +++- .../parser/processors/AllocProcessors.java | 43 ++++++++++++++++++- .../fortran/parser/processors/Nodes.java | 4 +- 4 files changed, 57 insertions(+), 4 deletions(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 09cbc87d..c1f43656 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -242,6 +242,11 @@ public enum FlangName implements StringProvider { NAME_VALUE, ALLOCATE_OBJECT, ALLOC_OPT, + MOLD, + SOURCE, + STAT_OR_ERRMSG, + STREAM, + PINNED, NAMED_CONSTANT, NAMED_CONSTANT_DEF; diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 76aef3d4..1cd41106 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -1,7 +1,9 @@ package pt.up.fe.specs.fortran.parser; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.alloc.AllocOption; import pt.up.fe.specs.fortran.ast.nodes.alloc.Allocation; +import pt.up.fe.specs.fortran.ast.nodes.alloc.ExprAllocOption; import pt.up.fe.specs.fortran.ast.nodes.alloc.VarAllocOption; import pt.up.fe.specs.fortran.ast.nodes.decl.*; import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.DeferredTypeParamValue; @@ -255,7 +257,12 @@ public class FlangToClass { /// UTILs NAME_TO_MAPPER.put(FlangName.NAME_VALUE, ClassMapper.always(NameValue.class)); - NAME_TO_MAPPER.put(FlangName.STAT_VARIABLE, ClassMapper.always(VarAllocOption.class)); + NAME_TO_MAPPER.put(FlangName.ALLOC_OPT, ClassMapper.caseFor(AllocOption.class) + .map(FlangName.MOLD, ExprAllocOption.class) + .map(FlangName.SOURCE, ExprAllocOption.class) + .map(FlangName.STAT_OR_ERRMSG, VarAllocOption.class) + .map(FlangName.STREAM, ExprAllocOption.class) + .map(FlangName.PINNED, VarAllocOption.class)); /// OPENMP NAME_TO_MAPPER.put(FlangName.OMP_BLOCK_CONSTRUCT, ClassMapper.always(OmpBlockConstruct.class)); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AllocProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AllocProcessors.java index bbe08c0f..7123136c 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AllocProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AllocProcessors.java @@ -1,7 +1,11 @@ package pt.up.fe.specs.fortran.parser.processors; import pt.up.fe.specs.fortran.ast.nodes.alloc.Allocation; +import pt.up.fe.specs.fortran.ast.nodes.alloc.ExprAllocOption; import pt.up.fe.specs.fortran.ast.nodes.alloc.VarAllocOption; +import pt.up.fe.specs.fortran.ast.nodes.alloc.enums.ExprAllocOptionKind; +import pt.up.fe.specs.fortran.ast.nodes.alloc.enums.VarAllocOptionKind; +import pt.up.fe.specs.fortran.parser.FlangAttributes; import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; @@ -15,7 +19,42 @@ public void allocation(Allocation allocation) { allocation.addChildren(getChildren(allocation, FlangName.ALLOCATE_SHAPE_SPEC)); } - public void statAllocOption(VarAllocOption statAllocOption) { - statAllocOption.addChild(getChild(statAllocOption, FlangName.EXPR)); + public void exprAllocOption(ExprAllocOption option) { + var attrs = attributes(option); + var variant = attrs.getVariantName(); + + var kind = switch (variant) { + case MOLD -> ExprAllocOptionKind.MOLD; + case SOURCE -> ExprAllocOptionKind.SOURCE; + case STREAM -> ExprAllocOptionKind.STREAM; + default -> throw new RuntimeException("Unknown variant: " + variant); + }; + option.set(ExprAllocOption.KIND, kind); + + var exprId = attributes().get(variant.toString()).getString(FlangName.EXPR); + var expr = getChild(exprId); + option.addChild(expr); + } + + public void varAllocOption(VarAllocOption option) { + var attrs = attributes(option); + var variant = attrs.getVariantName(); + + if (variant == FlangName.STAT_OR_ERRMSG) { + attrs = attributes().get(variant.toString()); + variant = attrs.getVariantName(); + } + + var kind = switch (variant) { + case STAT_VARIABLE -> VarAllocOptionKind.STAT; + case MSG_VARIABLE -> VarAllocOptionKind.ERRMSG; + case PINNED -> VarAllocOptionKind.PINNED; + default -> throw new RuntimeException("Unknown variant: " + variant); + }; + option.set(VarAllocOption.KIND, kind); + + var variableId = attributes().get(variant.toString()).getString(FlangName.VARIABLE); + var variable = getChild(variableId); + option.addChild(variable); } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index da0a70ed..eeaa6486 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -2,6 +2,7 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.alloc.Allocation; +import pt.up.fe.specs.fortran.ast.nodes.alloc.ExprAllocOption; import pt.up.fe.specs.fortran.ast.nodes.alloc.VarAllocOption; import pt.up.fe.specs.fortran.ast.nodes.decl.*; import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.DeferredTypeParamValue; @@ -68,7 +69,8 @@ public Nodes(FortranJsonResult data) { var alloc = new AllocProcessors(data); processors.put(Allocation.class, alloc::allocation); - processors.put(VarAllocOption.class, alloc::statAllocOption); + processors.put(ExprAllocOption.class, alloc::exprAllocOption); + processors.put(VarAllocOption.class, alloc::varAllocOption); var d = new DeclProcessors(data); processors.put(EntityDecl.class, d::entityDecl); From 579598a30740e20fd9bba80dc1f588085999ca5e Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 27 Jul 2026 16:38:49 +0100 Subject: [PATCH 136/260] Create nodes for read statement --- .../fe/specs/fortran/ast/FortranKeyword.java | 1 + .../fortran/ast/nodes/io/ExprInputItem.java | 22 +++++++++++ .../ast/nodes/io/InputImpliedDoItem.java | 13 +++++++ .../specs/fortran/ast/nodes/io/InputItem.java | 12 ++++++ .../specs/fortran/ast/nodes/io/ReadStmt.java | 37 +++++++++++++++++++ 5 files changed, 85 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprInputItem.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/InputImpliedDoItem.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/InputItem.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ReadStmt.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java index 444397d9..638c36d2 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -33,6 +33,7 @@ public enum FortranKeyword { NML, REWIND, NAMELIST, + READ, // Conditional statements IF, diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprInputItem.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprInputItem.java new file mode 100644 index 00000000..f7b1a5f9 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprInputItem.java @@ -0,0 +1,22 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; + +import java.util.Collection; + +public class ExprInputItem extends InputItem { + public ExprInputItem(DataStore data, Collection children) { + super(data, children); + } + + public Expr getExpr() { + return getChild(Expr.class, 0); + } + + @Override + public String getCode() { + return getExpr().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/InputImpliedDoItem.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/InputImpliedDoItem.java new file mode 100644 index 00000000..e2bde6f7 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/InputImpliedDoItem.java @@ -0,0 +1,13 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +// TODO(Process-ing): Implement and use this node +public class InputImpliedDoItem extends InputItem { + public InputImpliedDoItem(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/InputItem.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/InputItem.java new file mode 100644 index 00000000..4519f1be --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/InputItem.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class InputItem extends FortranNode { + public InputItem(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ReadStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ReadStmt.java new file mode 100644 index 00000000..bc7e61a8 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ReadStmt.java @@ -0,0 +1,37 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.ActionStmt; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +public class ReadStmt extends ActionStmt { + public ReadStmt(DataStore data, Collection children) { + super(data, children); + } + + public List getSpecs() { + return getChildrenOf(IoControlSpec.class); + } + + public List getItems() { + return getChildrenOf(InputItem.class); + } + + @Override + public String getStmtCode() { + var specsCode = getSpecs().stream() + .map(IoControlSpec::getCode) + .collect(Collectors.joining(", ", "(", ")")); + + var itemsCode = getItems().stream() + .map(InputItem::getCode) + .collect(Collectors.joining(", ")); + + return keyword(FortranKeyword.READ) + specsCode + " " + itemsCode; + } +} From 127f420088eba23f3852565c10195061e752517b Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 27 Jul 2026 16:48:39 +0100 Subject: [PATCH 137/260] Add processors for read statements --- .../fortran/ast/nodes/io/ExprInputItem.java | 22 --------------- .../fortran/ast/nodes/io/VarInputItem.java | 22 +++++++++++++++ .../up/fe/specs/fortran/parser/FlangName.java | 4 +++ .../fe/specs/fortran/parser/FlangToClass.java | 4 +++ .../parser/processors/IoProcessors.java | 28 +++++++++++++++++++ .../fortran/parser/processors/Nodes.java | 2 ++ 6 files changed, 60 insertions(+), 22 deletions(-) delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprInputItem.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/VarInputItem.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprInputItem.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprInputItem.java deleted file mode 100644 index f7b1a5f9..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprInputItem.java +++ /dev/null @@ -1,22 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.io; - -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; - -import java.util.Collection; - -public class ExprInputItem extends InputItem { - public ExprInputItem(DataStore data, Collection children) { - super(data, children); - } - - public Expr getExpr() { - return getChild(Expr.class, 0); - } - - @Override - public String getCode() { - return getExpr().getCode(); - } -} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/VarInputItem.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/VarInputItem.java new file mode 100644 index 00000000..89d2812b --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/VarInputItem.java @@ -0,0 +1,22 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.decl.Variable; + +import java.util.Collection; + +public class VarInputItem extends InputItem { + public VarInputItem(DataStore data, Collection children) { + super(data, children); + } + + public Variable getVariable() { + return getChild(Variable.class, 0); + } + + @Override + public String getCode() { + return getVariable().getCode(); + } +} diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index c1f43656..d0ac091c 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -202,6 +202,10 @@ public enum FlangName implements StringProvider { SIZE, REWIND_STMT, POSITION_OR_FLUSH_SPEC, + READ_STMT, + INPUT_ITEM, + INPUT_IMPLIED_DO, + /// OPENMP OPENMP_CONSTRUCT("OpenMPConstruct"), diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 1cd41106..255e7c7f 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -254,6 +254,10 @@ public class FlangToClass { .map(FlangName.MSG_VARIABLE, VarPosFlushSpec.class) .map(FlangName.STAT_VARIABLE, VarPosFlushSpec.class) .map(FlangName.ERR_LABEL, ErrPosFlushSpec.class)); + NAME_TO_MAPPER.put(FlangName.READ_STMT, ClassMapper.always(ReadStmt.class)); + NAME_TO_MAPPER.put(FlangName.INPUT_ITEM, ClassMapper.caseFor(InputItem.class) + .map(FlangName.VARIABLE, VarInputItem.class) + .map(FlangName.INPUT_IMPLIED_DO, InputImpliedDoItem.class)); /// UTILs NAME_TO_MAPPER.put(FlangName.NAME_VALUE, ClassMapper.always(NameValue.class)); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java index ad6a15a0..0c00ca63 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java @@ -241,4 +241,32 @@ public void errPosFlushSpec(ErrPosFlushSpec spec) { var label = attributes().getString(spec, "uint64_t", FlangName.ERR_LABEL); spec.set(ErrPosFlushSpec.LABEL, Integer.parseInt(label)); } + + public void readStmt(ReadStmt readStmt) { + if (attributes(readStmt).has(FlangName.IO_UNIT)) { + var ioUnit = getChild(readStmt, FlangName.IO_UNIT); + readStmt.addChild(ioUnit); + } + + if (attributes(readStmt).has(FlangName.FORMAT)) { + var format = getChild(readStmt, FlangName.FORMAT); + var spec = factory().newNode(FormatIoControlSpec.class, List.of(format)); + readStmt.addChild(spec); + } + + if (attributes(readStmt).has(FlangName.IO_CONTROL_SPEC)) { + var ioControlSpecs = getChildren(readStmt, FlangName.IO_CONTROL_SPEC); + readStmt.addChildren(ioControlSpecs); + } + + if (attributes(readStmt).has(FlangName.INPUT_ITEM)) { + var inputItems = getChildren(readStmt, FlangName.INPUT_ITEM); + readStmt.addChildren(inputItems); + } + } + + public void varInputItem(VarInputItem item) { + var variable = getChild(item, FlangName.VARIABLE); + item.addChild(variable); + } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index eeaa6486..492dd961 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -213,6 +213,8 @@ public Nodes(FortranJsonResult data) { processors.put(UnitPosFlushSpec.class, i::unitPosFlushSpec); processors.put(VarPosFlushSpec.class, i::varPosFlushSpec); processors.put(ErrPosFlushSpec.class, i::errPosFlushSpec); + processors.put(ReadStmt.class, i::readStmt); + processors.put(VarInputItem.class, i::varInputItem); var omp = new OmpProcessors(data, s); processors.put(OmpBlockConstruct.class, omp::ompBlockConstruct); From e9cd5e9963914d9132a07f39835e4a2a0b76aed4 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 27 Jul 2026 17:00:31 +0100 Subject: [PATCH 138/260] Create AST nodes for wait statement --- .../fe/specs/fortran/ast/FortranKeyword.java | 1 + .../fortran/ast/nodes/io/ExprWaitSpec.java | 31 +++++++++++++++++++ .../fortran/ast/nodes/io/LabelWaitSpec.java | 31 +++++++++++++++++++ .../fortran/ast/nodes/io/VarWaitSpec.java | 31 +++++++++++++++++++ .../specs/fortran/ast/nodes/io/WaitSpec.java | 12 +++++++ .../specs/fortran/ast/nodes/io/WaitStmt.java | 29 +++++++++++++++++ .../ast/nodes/io/enums/ExprWaitSpecKind.java | 6 ++++ .../ast/nodes/io/enums/LabelWaitSpecKind.java | 7 +++++ .../ast/nodes/io/enums/VarWaitSpecKind.java | 6 ++++ 9 files changed, 154 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprWaitSpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/LabelWaitSpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/VarWaitSpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/WaitSpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/WaitStmt.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/ExprWaitSpecKind.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/LabelWaitSpecKind.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/VarWaitSpecKind.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java index 638c36d2..25eb262e 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -34,6 +34,7 @@ public enum FortranKeyword { REWIND, NAMELIST, READ, + WAIT, // Conditional statements IF, diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprWaitSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprWaitSpec.java new file mode 100644 index 00000000..741f5dba --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprWaitSpec.java @@ -0,0 +1,31 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; +import pt.up.fe.specs.fortran.ast.nodes.io.enums.ExprWaitSpecKind; + +import java.util.Collection; + +public class ExprWaitSpec extends WaitSpec { + public static final DataKey KIND = KeyFactory.enumeration("kind", ExprWaitSpecKind.class); + + public ExprWaitSpec(DataStore data, Collection children) { + super(data, children); + } + + public ExprWaitSpecKind getKind() { + return get(KIND); + } + + public Expr getExpr() { + return getChild(Expr.class, 0); + } + + @Override + public String getCode() { + return encase(getKind().name()) + "=" + getExpr().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/LabelWaitSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/LabelWaitSpec.java new file mode 100644 index 00000000..49572d33 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/LabelWaitSpec.java @@ -0,0 +1,31 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.io.enums.LabelWaitSpecKind; + +import java.util.Collection; + +public class LabelWaitSpec extends WaitSpec { + public static final DataKey KIND = KeyFactory.enumeration("kind", LabelWaitSpecKind.class); + public static final DataKey LABEL = KeyFactory.integer("label"); + + public LabelWaitSpec(DataStore data, Collection children) { + super(data, children); + } + + public LabelWaitSpecKind getKind() { + return get(KIND); + } + + public int getLabel() { + return get(LABEL); + } + + @Override + public String getCode() { + return encase(getKind().name()) + "=" + getLabel(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/VarWaitSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/VarWaitSpec.java new file mode 100644 index 00000000..0b783882 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/VarWaitSpec.java @@ -0,0 +1,31 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.decl.Variable; +import pt.up.fe.specs.fortran.ast.nodes.io.enums.VarWaitSpecKind; + +import java.util.Collection; + +public class VarWaitSpec extends WaitSpec { + public static final DataKey KIND = KeyFactory.enumeration("kind", VarWaitSpecKind.class); + + public VarWaitSpec(DataStore data, Collection children) { + super(data, children); + } + + public VarWaitSpecKind getKind() { + return get(KIND); + } + + public Variable getVariable() { + return getChild(Variable.class, 0); + } + + @Override + public String getCode() { + return encase(getKind().name()) + "=" + getVariable().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/WaitSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/WaitSpec.java new file mode 100644 index 00000000..d6a3c2e8 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/WaitSpec.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class WaitSpec extends FortranNode { + public WaitSpec(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/WaitStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/WaitStmt.java new file mode 100644 index 00000000..7ace8e6a --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/WaitStmt.java @@ -0,0 +1,29 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.ActionStmt; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +public class WaitStmt extends ActionStmt { + public WaitStmt(DataStore data, Collection children) { + super(data, children); + } + + public List getSpecs() { + return getChildren(WaitSpec.class); + } + + @Override + public String getStmtCode() { + var specsCode = getSpecs().stream() + .map(WaitSpec::getCode) + .collect(Collectors.joining(", ", "(", ")")); + + return keyword(FortranKeyword.WAIT) + " " + specsCode; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/ExprWaitSpecKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/ExprWaitSpecKind.java new file mode 100644 index 00000000..b1b217bd --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/ExprWaitSpecKind.java @@ -0,0 +1,6 @@ +package pt.up.fe.specs.fortran.ast.nodes.io.enums; + +public enum ExprWaitSpecKind { + UNIT, + ID; +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/LabelWaitSpecKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/LabelWaitSpecKind.java new file mode 100644 index 00000000..463d5d0f --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/LabelWaitSpecKind.java @@ -0,0 +1,7 @@ +package pt.up.fe.specs.fortran.ast.nodes.io.enums; + +public enum LabelWaitSpecKind { + END, + EOR, + ERR; +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/VarWaitSpecKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/VarWaitSpecKind.java new file mode 100644 index 00000000..3d11abac --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/VarWaitSpecKind.java @@ -0,0 +1,6 @@ +package pt.up.fe.specs.fortran.ast.nodes.io.enums; + +public enum VarWaitSpecKind { + IOMSG, + IOSTAT; +} From dbc2f985cb67cab31068f7cfa23b0db9545f5cb0 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 27 Jul 2026 17:07:56 +0100 Subject: [PATCH 139/260] Extend structure of write statement --- .../fortran/ast/nodes/io/ExprOutputItem.java | 22 +++++++++ .../ast/nodes/io/OutputImpliedDoItem.java | 13 +++++ .../fortran/ast/nodes/io/OutputItem.java | 12 +++++ .../specs/fortran/ast/nodes/io/WriteStmt.java | 48 +++++-------------- 4 files changed, 58 insertions(+), 37 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprOutputItem.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/OutputImpliedDoItem.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/OutputItem.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprOutputItem.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprOutputItem.java new file mode 100644 index 00000000..dc80f0d7 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprOutputItem.java @@ -0,0 +1,22 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; + +import java.util.Collection; + +public class ExprOutputItem extends OutputItem { + public ExprOutputItem(DataStore data, Collection children) { + super(data, children); + } + + public Expr getExpr() { + return getChild(Expr.class, 0); + } + + @Override + public String getCode() { + return getExpr().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/OutputImpliedDoItem.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/OutputImpliedDoItem.java new file mode 100644 index 00000000..3171a100 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/OutputImpliedDoItem.java @@ -0,0 +1,13 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +// TODO(Process-ing): Implement and use this node +public class OutputImpliedDoItem extends OutputItem { + public OutputImpliedDoItem(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/OutputItem.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/OutputItem.java new file mode 100644 index 00000000..acd0fea4 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/OutputItem.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class OutputItem extends FortranNode { + public OutputItem(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/WriteStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/WriteStmt.java index 95080e9e..7704be16 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/WriteStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/WriteStmt.java @@ -5,13 +5,9 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; import pt.up.fe.specs.fortran.ast.nodes.stmt.ActionStmt; -import pt.up.fe.specs.fortran.ast.nodes.utils.Format; -import pt.up.fe.specs.fortran.ast.nodes.utils.IoUnit; -import java.util.ArrayList; import java.util.Collection; import java.util.List; -import java.util.Optional; import java.util.stream.Collectors; public class WriteStmt extends ActionStmt { @@ -19,46 +15,24 @@ public WriteStmt(DataStore data, Collection children) { super(data, children); } - public Optional getIoUnit() { - return getChildTry(IoUnit.class); + public List getSpecs() { + return getChildrenOf(IoControlSpec.class); } - public Optional getFormat() { - return getChildTry(Format.class); - } - - public List getControlSpecs() { - return getChildrenOf(ExprIoControlSpec.class); - } - - public List getOutputItems() { - return getChildrenOf(Expr.class); + public List getItems() { + return getChildrenOf(OutputItem.class); } @Override public String getStmtCode() { - StringBuilder code = new StringBuilder(); - code.append(FortranKeyword.WRITE).append("("); - - List parts = new ArrayList<>(); - - getIoUnit().ifPresent(unit -> parts.add(unit.getCode())); - - getFormat().ifPresent(fmt -> parts.add(fmt.getCode())); - - getControlSpecs().forEach(spec -> parts.add(spec.getCode())); - - code.append(String.join(", ", parts)); - - code.append(") "); + var specsCode = getSpecs().stream() + .map(IoControlSpec::getCode) + .collect(Collectors.joining(", ", "(", ")")); - code.append( - getOutputItems() - .stream() - .map(Expr::getCode) - .collect(Collectors.joining(", ")) - ); + var itemsCode = getItems().stream() + .map(OutputItem::getCode) + .collect(Collectors.joining(", ")); - return code.toString(); + return keyword(FortranKeyword.WRITE) + specsCode + " " + itemsCode; } } From 230b6f504f5848dfb38609c4d0fd0a10d99e8a1b Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 27 Jul 2026 17:11:06 +0100 Subject: [PATCH 140/260] Add processors for new output items --- .../up/fe/specs/fortran/parser/FlangName.java | 3 +- .../fe/specs/fortran/parser/FlangToClass.java | 26 ++++++---- .../parser/processors/IoProcessors.java | 50 ++++++++++--------- .../fortran/parser/processors/Nodes.java | 3 +- 4 files changed, 46 insertions(+), 36 deletions(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index d0ac091c..0482d2aa 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -205,7 +205,8 @@ public enum FlangName implements StringProvider { READ_STMT, INPUT_ITEM, INPUT_IMPLIED_DO, - + OUTPUT_IMPLIED_DO, + WAIT_STMT, /// OPENMP OPENMP_CONSTRUCT("OpenMPConstruct"), diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 255e7c7f..bb346952 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -53,6 +53,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Optional; +import java.util.jar.Attributes; public class FlangToClass { private static final Map> NAME_TO_MAPPER = new HashMap<>(); @@ -228,7 +229,16 @@ public class FlangToClass { .map(FlangName.NEWUNIT, VarConnectSpec.class) .map(FlangName.ERR_LABEL, ErrConnectSpec.class) .map(FlangName.STATUS_EXPR, ExprConnectSpec.class)); - NAME_TO_MAPPER.put(FlangName.WRITE_STMT, ClassMapper.always(WriteStmt.class)); + NAME_TO_MAPPER.put(FlangName.IO_UNIT, ClassMapper.caseFor(IoControlSpec.class) + .map(FlangName.EXPR, ExprIoControlSpec.class) + .map(FlangName.VARIABLE, VarIoControlSpec.class) + .map(FlangName.STAR, StarUnitIoControlSpec.class)); + NAME_TO_MAPPER.put(FlangName.REWIND_STMT, ClassMapper.always(RewindStmt.class)); + NAME_TO_MAPPER.put(FlangName.POSITION_OR_FLUSH_SPEC, ClassMapper.caseFor(PosFlushSpec.class) + .map(FlangName.FILE_UNIT_NUMBER, UnitPosFlushSpec.class) + .map(FlangName.MSG_VARIABLE, VarPosFlushSpec.class) + .map(FlangName.STAT_VARIABLE, VarPosFlushSpec.class) + .map(FlangName.ERR_LABEL, ErrPosFlushSpec.class)); NAME_TO_MAPPER.put(FlangName.IO_CONTROL_SPEC, ClassMapper.caseFor(IoControlSpec.class) .ignore(FlangName.IO_UNIT) .map(FlangName.FORMAT, FormatIoControlSpec.class) @@ -244,20 +254,14 @@ public class FlangToClass { .map(FlangName.POS, ExprIoControlSpec.class) .map(FlangName.REC, ExprIoControlSpec.class) .map(FlangName.SIZE, VarIoControlSpec.class)); - NAME_TO_MAPPER.put(FlangName.IO_UNIT, ClassMapper.caseFor(IoControlSpec.class) - .map(FlangName.EXPR, ExprIoControlSpec.class) - .map(FlangName.VARIABLE, VarIoControlSpec.class) - .map(FlangName.STAR, StarUnitIoControlSpec.class)); - NAME_TO_MAPPER.put(FlangName.REWIND_STMT, ClassMapper.always(RewindStmt.class)); - NAME_TO_MAPPER.put(FlangName.POSITION_OR_FLUSH_SPEC, ClassMapper.caseFor(PosFlushSpec.class) - .map(FlangName.FILE_UNIT_NUMBER, UnitPosFlushSpec.class) - .map(FlangName.MSG_VARIABLE, VarPosFlushSpec.class) - .map(FlangName.STAT_VARIABLE, VarPosFlushSpec.class) - .map(FlangName.ERR_LABEL, ErrPosFlushSpec.class)); NAME_TO_MAPPER.put(FlangName.READ_STMT, ClassMapper.always(ReadStmt.class)); NAME_TO_MAPPER.put(FlangName.INPUT_ITEM, ClassMapper.caseFor(InputItem.class) .map(FlangName.VARIABLE, VarInputItem.class) .map(FlangName.INPUT_IMPLIED_DO, InputImpliedDoItem.class)); + NAME_TO_MAPPER.put(FlangName.WRITE_STMT, ClassMapper.always(WriteStmt.class)); + NAME_TO_MAPPER.put(FlangName.OUTPUT_ITEM, ClassMapper.caseFor(OutputItem.class) + .map(FlangName.EXPR, ExprOutputItem.class) + .map(FlangName.OUTPUT_IMPLIED_DO, OutputImpliedDoItem.class)); /// UTILs NAME_TO_MAPPER.put(FlangName.NAME_VALUE, ClassMapper.always(NameValue.class)); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java index 0c00ca63..69b1dab1 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java @@ -98,29 +98,6 @@ public void errConnectSpec(ErrConnectSpec spec) { spec.set(ErrConnectSpec.LABEL, Integer.parseInt(label)); } - - public void writeStmt(WriteStmt writeStmt) { - stmtProcessors.actionStmt(writeStmt); - - if (attributes(writeStmt).has(FlangName.IO_UNIT)) { - writeStmt.addChild(getChild(writeStmt, FlangName.IO_UNIT)); - } - - if (attributes(writeStmt).has(FlangName.FORMAT)) { - var format = getChild(writeStmt, FlangName.FORMAT); - var spec = factory().newNode(FormatIoControlSpec.class, List.of(format)); - writeStmt.addChild(spec); - } - - if (attributes(writeStmt).has(FlangName.IO_CONTROL_SPEC)) { - writeStmt.addChildren(getChildren(writeStmt, FlangName.IO_CONTROL_SPEC)); - } - - if (attributes(writeStmt).has(FlangName.OUTPUT_ITEM)) { - writeStmt.addChildren(getChildren(writeStmt, FlangName.OUTPUT_ITEM)); - } - } - public void exprIoControlSpec(ExprIoControlSpec spec) { var attrs = attributes(spec); var nodeKind = getNodeKind(spec); @@ -269,4 +246,31 @@ public void varInputItem(VarInputItem item) { var variable = getChild(item, FlangName.VARIABLE); item.addChild(variable); } + + public void writeStmt(WriteStmt writeStmt) { + stmtProcessors.actionStmt(writeStmt); + + if (attributes(writeStmt).has(FlangName.IO_UNIT)) { + writeStmt.addChild(getChild(writeStmt, FlangName.IO_UNIT)); + } + + if (attributes(writeStmt).has(FlangName.FORMAT)) { + var format = getChild(writeStmt, FlangName.FORMAT); + var spec = factory().newNode(FormatIoControlSpec.class, List.of(format)); + writeStmt.addChild(spec); + } + + if (attributes(writeStmt).has(FlangName.IO_CONTROL_SPEC)) { + writeStmt.addChildren(getChildren(writeStmt, FlangName.IO_CONTROL_SPEC)); + } + + if (attributes(writeStmt).has(FlangName.OUTPUT_ITEM)) { + writeStmt.addChildren(getChildren(writeStmt, FlangName.OUTPUT_ITEM)); + } + } + + public void exprOutputItem(ExprOutputItem item) { + var expr = getChild(item, FlangName.EXPR); + item.addChild(expr); + } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 492dd961..7dddd630 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -202,7 +202,6 @@ public Nodes(FortranJsonResult data) { processors.put(ExprConnectSpec.class, i::exprConnectSpec); processors.put(VarConnectSpec.class, i::varConnectSpec); processors.put(ErrConnectSpec.class, i::errConnectSpec); - processors.put(WriteStmt.class, i::writeStmt); processors.put(ExprIoControlSpec.class, i::exprIoControlSpec); processors.put(VarIoControlSpec.class, i::varIoControlSpec); processors.put(LabelIoControlSpec.class, i::labelIoControlSpec); @@ -215,6 +214,8 @@ public Nodes(FortranJsonResult data) { processors.put(ErrPosFlushSpec.class, i::errPosFlushSpec); processors.put(ReadStmt.class, i::readStmt); processors.put(VarInputItem.class, i::varInputItem); + processors.put(WriteStmt.class, i::writeStmt); + processors.put(ExprOutputItem.class, i::exprOutputItem); var omp = new OmpProcessors(data, s); processors.put(OmpBlockConstruct.class, omp::ompBlockConstruct); From 5000fd544fcd9f5f2ec3be1719e050a3f60af1ea Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 27 Jul 2026 17:37:09 +0100 Subject: [PATCH 141/260] Add processors for wait statement --- .../up/fe/specs/fortran/parser/FlangName.java | 2 + .../fe/specs/fortran/parser/FlangToClass.java | 9 +++ .../parser/processors/AllocProcessors.java | 4 +- .../parser/processors/IoProcessors.java | 56 +++++++++++++++++++ .../fortran/parser/processors/Nodes.java | 4 ++ 5 files changed, 73 insertions(+), 2 deletions(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 0482d2aa..5f25ce95 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -207,6 +207,8 @@ public enum FlangName implements StringProvider { INPUT_IMPLIED_DO, OUTPUT_IMPLIED_DO, WAIT_STMT, + WAIT_SPEC, + ID_EXPR, /// OPENMP OPENMP_CONSTRUCT("OpenMPConstruct"), diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index bb346952..9a494263 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -262,6 +262,15 @@ public class FlangToClass { NAME_TO_MAPPER.put(FlangName.OUTPUT_ITEM, ClassMapper.caseFor(OutputItem.class) .map(FlangName.EXPR, ExprOutputItem.class) .map(FlangName.OUTPUT_IMPLIED_DO, OutputImpliedDoItem.class)); + NAME_TO_MAPPER.put(FlangName.WAIT_STMT, ClassMapper.always(WaitStmt.class)); + NAME_TO_MAPPER.put(FlangName.WAIT_SPEC, ClassMapper.caseFor(WaitSpec.class) + .map(FlangName.FILE_UNIT_NUMBER, ExprWaitSpec.class) + .map(FlangName.END_LABEL, LabelWaitSpec.class) + .map(FlangName.EOR_LABEL, LabelWaitSpec.class) + .map(FlangName.ERR_LABEL, LabelWaitSpec.class) + .map(FlangName.ID_EXPR, ExprWaitSpec.class) + .map(FlangName.MSG_VARIABLE, VarWaitSpec.class) + .map(FlangName.STAT_VARIABLE, VarWaitSpec.class)); /// UTILs NAME_TO_MAPPER.put(FlangName.NAME_VALUE, ClassMapper.always(NameValue.class)); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AllocProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AllocProcessors.java index 7123136c..1d319102 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AllocProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AllocProcessors.java @@ -31,7 +31,7 @@ public void exprAllocOption(ExprAllocOption option) { }; option.set(ExprAllocOption.KIND, kind); - var exprId = attributes().get(variant.toString()).getString(FlangName.EXPR); + var exprId = attributes().getString(option, FlangName.EXPR.getString(), variant); var expr = getChild(exprId); option.addChild(expr); } @@ -53,7 +53,7 @@ public void varAllocOption(VarAllocOption option) { }; option.set(VarAllocOption.KIND, kind); - var variableId = attributes().get(variant.toString()).getString(FlangName.VARIABLE); + var variableId = attributes().getString(option, FlangName.VARIABLE.getString(), variant); var variable = getChild(variableId); option.addChild(variable); } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java index 69b1dab1..ddf0ccc6 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java @@ -186,6 +186,8 @@ public void namelistIoControlSpec(NamelistIoControlSpec spec) { } public void rewindStmt(RewindStmt rewindStmt) { + stmtProcessors.actionStmt(rewindStmt); + if (attributes(rewindStmt).has(FlangName.POSITION_OR_FLUSH_SPEC)) { var children = getChildren(rewindStmt, FlangName.POSITION_OR_FLUSH_SPEC); rewindStmt.addChildren(children); @@ -220,6 +222,8 @@ public void errPosFlushSpec(ErrPosFlushSpec spec) { } public void readStmt(ReadStmt readStmt) { + stmtProcessors.actionStmt(readStmt); + if (attributes(readStmt).has(FlangName.IO_UNIT)) { var ioUnit = getChild(readStmt, FlangName.IO_UNIT); readStmt.addChild(ioUnit); @@ -273,4 +277,56 @@ public void exprOutputItem(ExprOutputItem item) { var expr = getChild(item, FlangName.EXPR); item.addChild(expr); } + + public void waitStmt(WaitStmt waitStmt) { + stmtProcessors.actionStmt(waitStmt); + + var specs = getChildren(waitStmt, FlangName.WAIT_SPEC); + waitStmt.addChildren(specs); + } + + public void exprWaitSpec(ExprWaitSpec spec) { + var variant = attributes(spec).getVariantName(); + + var kind = switch (variant) { + case FILE_UNIT_NUMBER -> ExprWaitSpecKind.UNIT; + case ID_EXPR -> ExprWaitSpecKind.ID; + default -> throw new RuntimeException("Variant '" + variant + "' of ExprWaitSpec is not handled."); + }; + spec.set(ExprWaitSpec.KIND, kind); + + var exprId = attributes().getString(spec, FlangName.EXPR.getString(), variant); + var expr = getChild(exprId); + spec.addChild(expr); + } + + public void varWaitSpec(VarWaitSpec spec) { + var variant = attributes(spec).getVariantName(); + + var kind = switch (variant) { + case MSG_VARIABLE -> VarWaitSpecKind.IOMSG; + case STAT_VARIABLE -> VarWaitSpecKind.IOSTAT; + default -> throw new RuntimeException("Variant '" + variant + "' of VarWaitSpec is not handled."); + }; + spec.set(VarWaitSpec.KIND, kind); + + var variableId = attributes().getString(spec, FlangName.VARIABLE.getString(), variant); + var variable = getChild(variableId); + spec.addChild(variable); + } + + public void labelWaitSpec(LabelWaitSpec spec) { + var variant = attributes(spec).getVariantName(); + + var kind = switch (variant) { + case END_LABEL -> LabelWaitSpecKind.END; + case EOR_LABEL -> LabelWaitSpecKind.EOR; + case ERR_LABEL -> LabelWaitSpecKind.ERR; + default -> throw new RuntimeException("Variant '" + variant + "' of LabelWaitSpec is not handled."); + }; + spec.set(LabelWaitSpec.KIND, kind); + + var label = attributes().getString(spec, "uint64_t", variant); + spec.set(LabelWaitSpec.LABEL, Integer.parseInt(label)); + } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 7dddd630..1d72681d 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -216,6 +216,10 @@ public Nodes(FortranJsonResult data) { processors.put(VarInputItem.class, i::varInputItem); processors.put(WriteStmt.class, i::writeStmt); processors.put(ExprOutputItem.class, i::exprOutputItem); + processors.put(WaitStmt.class, i::waitStmt); + processors.put(ExprWaitSpec.class, i::exprWaitSpec); + processors.put(VarWaitSpec.class, i::varWaitSpec); + processors.put(LabelWaitSpec.class, i::labelWaitSpec); var omp = new OmpProcessors(data, s); processors.put(OmpBlockConstruct.class, omp::ompBlockConstruct); From 47eb1f6c27889c17c0f56e561e2f83014fbc4144 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 27 Jul 2026 17:48:45 +0100 Subject: [PATCH 142/260] Add nodes for close statement --- .../fe/specs/fortran/ast/FortranKeyword.java | 1 + .../specs/fortran/ast/nodes/io/CloseSpec.java | 12 +++++++ .../specs/fortran/ast/nodes/io/CloseStmt.java | 29 +++++++++++++++++ .../fortran/ast/nodes/io/ErrCloseSpec.java | 26 +++++++++++++++ .../fortran/ast/nodes/io/ExprCloseSpec.java | 31 ++++++++++++++++++ .../fortran/ast/nodes/io/VarCloseSpec.java | 32 +++++++++++++++++++ .../ast/nodes/io/enums/ExprCloseSpecKind.java | 6 ++++ .../ast/nodes/io/enums/VarCloseSpecKind.java | 6 ++++ 8 files changed, 143 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/CloseSpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/CloseStmt.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ErrCloseSpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprCloseSpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/VarCloseSpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/ExprCloseSpecKind.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/VarCloseSpecKind.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java index 25eb262e..1c5a7604 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -35,6 +35,7 @@ public enum FortranKeyword { NAMELIST, READ, WAIT, + CLOSE, // Conditional statements IF, diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/CloseSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/CloseSpec.java new file mode 100644 index 00000000..00b62d25 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/CloseSpec.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class CloseSpec extends FortranNode { + public CloseSpec(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/CloseStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/CloseStmt.java new file mode 100644 index 00000000..5b3554d6 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/CloseStmt.java @@ -0,0 +1,29 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.ActionStmt; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +public class CloseStmt extends ActionStmt { + public CloseStmt(DataStore data, Collection children) { + super(data, children); + } + + public List getSpecs() { + return getChildren(CloseSpec.class); + } + + @Override + public String getStmtCode() { + var specsCode = getSpecs().stream() + .map(CloseSpec::getCode) + .collect(Collectors.joining(", ", "(", ")")); + + return keyword(FortranKeyword.CLOSE) + specsCode; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ErrCloseSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ErrCloseSpec.java new file mode 100644 index 00000000..c22222f9 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ErrCloseSpec.java @@ -0,0 +1,26 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class ErrCloseSpec extends CloseSpec { + public static final DataKey LABEL = KeyFactory.integer("label"); + + public ErrCloseSpec(DataStore data, Collection children) { + super(data, children); + } + + public int getLabel() { + return get(LABEL); + } + + @Override + public String getCode() { + return keyword(FortranKeyword.ERR) + "=" + getLabel(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprCloseSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprCloseSpec.java new file mode 100644 index 00000000..ba494e54 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprCloseSpec.java @@ -0,0 +1,31 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; +import pt.up.fe.specs.fortran.ast.nodes.io.enums.ExprCloseSpecKind; + +import java.util.Collection; + +public class ExprCloseSpec extends CloseSpec { + public static final DataKey KIND = KeyFactory.enumeration("kind", ExprCloseSpecKind.class); + + public ExprCloseSpec(DataStore data, Collection children) { + super(data, children); + } + + public ExprCloseSpecKind getKind() { + return get(KIND); + } + + public Expr getExpr() { + return getChild(Expr.class, 0); + } + + @Override + public String getCode() { + return encase(getKind().name()) + "=" + getExpr().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/VarCloseSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/VarCloseSpec.java new file mode 100644 index 00000000..5d437f1d --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/VarCloseSpec.java @@ -0,0 +1,32 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.decl.Variable; +import pt.up.fe.specs.fortran.ast.nodes.io.enums.VarCloseSpecKind; +import pt.up.fe.specs.fortran.ast.nodes.io.enums.VarConnectSpecKind; + +import java.util.Collection; + +public class VarCloseSpec extends CloseSpec { + public static final DataKey KIND = KeyFactory.enumeration("kind", VarCloseSpecKind.class); + + public VarCloseSpec(DataStore data, Collection children) { + super(data, children); + } + + public VarCloseSpecKind getKind() { + return get(KIND); + } + + public Variable getVariable() { + return getChild(Variable.class, 0); + } + + @Override + public String getCode() { + return encase(getKind().name()) + "=" + getVariable().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/ExprCloseSpecKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/ExprCloseSpecKind.java new file mode 100644 index 00000000..66159f02 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/ExprCloseSpecKind.java @@ -0,0 +1,6 @@ +package pt.up.fe.specs.fortran.ast.nodes.io.enums; + +public enum ExprCloseSpecKind { + UNIT, + STATUS; +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/VarCloseSpecKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/VarCloseSpecKind.java new file mode 100644 index 00000000..3b2b01e9 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/enums/VarCloseSpecKind.java @@ -0,0 +1,6 @@ +package pt.up.fe.specs.fortran.ast.nodes.io.enums; + +public enum VarCloseSpecKind { + IOSTAT, + IOMSG; +} From 0345d8bf76450ab612063cd9efc6179d0432df7a Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 27 Jul 2026 18:00:35 +0100 Subject: [PATCH 143/260] Add processors for close statement --- .../up/fe/specs/fortran/parser/FlangName.java | 2 + .../fe/specs/fortran/parser/FlangToClass.java | 7 +++ .../parser/processors/IoProcessors.java | 44 +++++++++++++++++++ .../fortran/parser/processors/Nodes.java | 4 ++ 4 files changed, 57 insertions(+) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 5f25ce95..1bc6b6f8 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -209,6 +209,8 @@ public enum FlangName implements StringProvider { WAIT_STMT, WAIT_SPEC, ID_EXPR, + CLOSE_STMT, + CLOSE_SPEC, /// OPENMP OPENMP_CONSTRUCT("OpenMPConstruct"), diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 9a494263..51e48a17 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -271,6 +271,13 @@ public class FlangToClass { .map(FlangName.ID_EXPR, ExprWaitSpec.class) .map(FlangName.MSG_VARIABLE, VarWaitSpec.class) .map(FlangName.STAT_VARIABLE, VarWaitSpec.class)); + NAME_TO_MAPPER.put(FlangName.CLOSE_STMT, ClassMapper.always(CloseStmt.class)); + NAME_TO_MAPPER.put(FlangName.CLOSE_SPEC, ClassMapper.caseFor(CloseSpec.class) + .map(FlangName.FILE_UNIT_NUMBER, ExprCloseSpec.class) + .map(FlangName.STAT_VARIABLE, VarCloseSpec.class) + .map(FlangName.MSG_VARIABLE, VarCloseSpec.class) + .map(FlangName.ERR_LABEL, ErrCloseSpec.class) + .map(FlangName.STATUS_EXPR, ExprCloseSpec.class)); /// UTILs NAME_TO_MAPPER.put(FlangName.NAME_VALUE, ClassMapper.always(NameValue.class)); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java index ddf0ccc6..6a5c82e0 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java @@ -329,4 +329,48 @@ public void labelWaitSpec(LabelWaitSpec spec) { var label = attributes().getString(spec, "uint64_t", variant); spec.set(LabelWaitSpec.LABEL, Integer.parseInt(label)); } + + public void closeStmt(CloseStmt closeStmt) { + stmtProcessors.actionStmt(closeStmt); + + if (attributes(closeStmt).has(FlangName.CLOSE_SPEC)) { + var closeSpecs = getChildren(closeStmt, FlangName.CLOSE_SPEC); + closeStmt.addChildren(closeSpecs); + } + } + + public void exprCloseSpec(ExprCloseSpec spec) { + var variant = attributes(spec).getVariantName(); + + var kind = switch (variant) { + case FILE_UNIT_NUMBER -> ExprCloseSpecKind.UNIT; + case STATUS_EXPR -> ExprCloseSpecKind.STATUS; + default -> throw new RuntimeException("Variant '" + variant + "' of ExprCloseSpec is not handled."); + }; + spec.set(ExprCloseSpec.KIND, kind); + + var exprId = attributes().getString(spec, FlangName.EXPR.getString(), variant); + var expr = getChild(exprId); + spec.addChild(expr); + } + + public void varCloseSpec(VarCloseSpec spec) { + var variant = attributes(spec).getVariantName(); + + var kind = switch (variant) { + case STAT_VARIABLE -> VarCloseSpecKind.IOSTAT; + case MSG_VARIABLE -> VarCloseSpecKind.IOMSG; + default -> throw new RuntimeException("Variant '" + variant + "' of VarCloseSpec is not handled."); + }; + spec.set(VarCloseSpec.KIND, kind); + + var variableId = attributes().getString(spec, FlangName.VARIABLE.getString(), variant); + var variable = getChild(variableId); + spec.addChild(variable); + } + + public void errCloseSpec(ErrCloseSpec spec) { + var label = attributes().getString(spec, "uint64_t", FlangName.ERR_LABEL); + spec.set(ErrCloseSpec.LABEL, Integer.parseInt(label)); + } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 1d72681d..e94255c5 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -220,6 +220,10 @@ public Nodes(FortranJsonResult data) { processors.put(ExprWaitSpec.class, i::exprWaitSpec); processors.put(VarWaitSpec.class, i::varWaitSpec); processors.put(LabelWaitSpec.class, i::labelWaitSpec); + processors.put(CloseStmt.class, i::closeStmt); + processors.put(ExprCloseSpec.class, i::exprCloseSpec); + processors.put(VarCloseSpec.class, i::varCloseSpec); + processors.put(ErrCloseSpec.class, i::errCloseSpec); var omp = new OmpProcessors(data, s); processors.put(OmpBlockConstruct.class, omp::ompBlockConstruct); From 108b49df55034187c643265b5763d8c871b38f5f Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 27 Jul 2026 18:04:42 +0100 Subject: [PATCH 144/260] Fix processing of namelist statements --- .../src/pt/up/fe/specs/fortran/parser/FlangToClass.java | 2 ++ .../up/fe/specs/fortran/parser/processors/StmtProcessors.java | 2 ++ 2 files changed, 4 insertions(+) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 51e48a17..d3c2a5b4 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -132,6 +132,8 @@ public class FlangToClass { NAME_TO_MAPPER.put(FlangName.RETURN_STMT, ClassMapper.always(ReturnStmt.class)); NAME_TO_MAPPER.put(FlangName.DIMENSION_STMT, ClassMapper.always(DimensionStmt.class)); NAME_TO_MAPPER.put(FlangName.DECLARATION, ClassMapper.always(DimensionDecl.class)); + NAME_TO_MAPPER.put(FlangName.NAMELIST_STMT, ClassMapper.always(NamelistStmt.class)); + NAME_TO_MAPPER.put(FlangName.GROUP, ClassMapper.always(NamelistGroup.class)); /// Variables //NAME_TO_CLASS.put(FlangName.DATA_REF, DataRef.class); // TODO(Process-ing): Improve this diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 3839ccd6..aa92a5b9 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -647,6 +647,8 @@ public void dimensionDecl(DimensionDecl dimensionDecl) { } public void namelistStmt(NamelistStmt namelistStmt) { + stmt(namelistStmt); + var groups = getChildren(namelistStmt, FlangName.GROUP); namelistStmt.addChildren(groups); } From d51f48c4c96d4ff409cef455434db7ecb3e43483 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 27 Jul 2026 18:12:16 +0100 Subject: [PATCH 145/260] Fix attribute lookup on processors for read and write statements --- .../fortran/parser/io/io_control.json | 2306 +++++++++-------- .../parser/processors/IoProcessors.java | 32 +- 2 files changed, 1203 insertions(+), 1135 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/io/io_control.json b/FortranParser/resources-test/fortran/parser/io/io_control.json index 33c1962e..162f56b7 100644 --- a/FortranParser/resources-test/fortran/parser/io/io_control.json +++ b/FortranParser/resources-test/fortran/parser/io/io_control.json @@ -2,2871 +2,2939 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x564132f9ef00-Program", + "id": "0x5586249b3f00-Program", "ProgramUnit": [ - "0x564132fdd9f0-ProgramUnit" + "0x5586249f29f0-ProgramUnit" ] }, { - "id": "0x564132fdd9f0-ProgramUnit", + "id": "0x5586249f29f0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x564132fdc5d0-MainProgram" + "MainProgram": "0x5586249f15d0-MainProgram" }, { - "id": "0x564132fdc5d0-MainProgram", - "Statement": "0x564132fdc718-Statement", - "SpecificationPart": "0x564132fdc670-SpecificationPart", - "ExecutionPart": "0x564132fdc658-ExecutionPart", - "Statement": "0x564132fdc5d0-Statement" + "id": "0x5586249f15d0-MainProgram", + "Statement": "0x5586249f1718-Statement", + "SpecificationPart": "0x5586249f1670-SpecificationPart", + "ExecutionPart": "0x5586249f1658-ExecutionPart", + "Statement": "0x5586249f15d0-Statement" }, { - "id": "0x564132fdc718-Statement", - "statement": "0x564132fdc728-ProgramStmt", + "id": "0x5586249f1718-Statement", + "statement": "0x5586249f1728-ProgramStmt", "source": "program IO_CONTROL_SPECS" }, { - "id": "0x564132fdc728-ProgramStmt", - "Name": "0x564132fdc728-Name" + "id": "0x5586249f1728-ProgramStmt", + "Name": "0x5586249f1728-Name" }, { - "id": "0x564132fdc728-Name", + "id": "0x5586249f1728-Name", "source": "IO_CONTROL_SPECS" }, { - "id": "0x564132fdc670-SpecificationPart", - "ImplicitPart": "0x564132fdc688-ImplicitPart", + "id": "0x5586249f1670-SpecificationPart", + "ImplicitPart": "0x5586249f1688-ImplicitPart", "DeclarationConstruct": [ - "0x564132fac170-DeclarationConstruct", - "0x564132fac110-DeclarationConstruct", - "0x564132fdbbe0-DeclarationConstruct", - "0x564132fdbcc0-DeclarationConstruct", - "0x564132fc9950-DeclarationConstruct", - "0x564132fc9c00-DeclarationConstruct", - "0x564132fabda0-DeclarationConstruct" + "0x5586249c1170-DeclarationConstruct", + "0x5586249c1110-DeclarationConstruct", + "0x5586249f0be0-DeclarationConstruct", + "0x5586249f0cc0-DeclarationConstruct", + "0x5586249de950-DeclarationConstruct", + "0x5586249dec00-DeclarationConstruct", + "0x5586249c0da0-DeclarationConstruct" ] }, { - "id": "0x564132fdc688-ImplicitPart" + "id": "0x5586249f1688-ImplicitPart" }, { - "id": "0x564132fac170-DeclarationConstruct", + "id": "0x5586249c1170-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x564132fac170-SpecificationConstruct" + "SpecificationConstruct": "0x5586249c1170-SpecificationConstruct" }, { - "id": "0x564132fac170-SpecificationConstruct", + "id": "0x5586249c1170-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x564132fac170-Statement" + "Statement": "0x5586249c1170-Statement" }, { - "id": "0x564132fac170-Statement", - "statement": "0x564132fdb170-TypeDeclarationStmt", + "id": "0x5586249c1170-Statement", + "statement": "0x5586249f0170-TypeDeclarationStmt", "source": "integer :: u_seq, u_dir, u_stream" }, { - "id": "0x564132fdb170-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x564132fdb1a0-DeclarationTypeSpec", + "id": "0x5586249f0170-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5586249f01a0-DeclarationTypeSpec", "EntityDecl": [ - "0x564132fdb460-EntityDecl", - "0x564132fdb280-EntityDecl", - "0x564132fdb370-EntityDecl" + "0x5586249f0460-EntityDecl", + "0x5586249f0280-EntityDecl", + "0x5586249f0370-EntityDecl" ] }, { - "id": "0x564132fdb1a0-DeclarationTypeSpec", + "id": "0x5586249f01a0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x564132fdb1a0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5586249f01a0-IntrinsicTypeSpec" }, { - "id": "0x564132fdb1a0-IntrinsicTypeSpec", + "id": "0x5586249f01a0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x564132fdb1a0-IntegerTypeSpec" + "IntegerTypeSpec": "0x5586249f01a0-IntegerTypeSpec" }, { - "id": "0x564132fdb1a0-IntegerTypeSpec" + "id": "0x5586249f01a0-IntegerTypeSpec" }, { - "id": "0x564132fdb460-EntityDecl", - "Name": "0x564132fdb518-Name" + "id": "0x5586249f0460-EntityDecl", + "Name": "0x5586249f0518-Name" }, { - "id": "0x564132fdb518-Name", + "id": "0x5586249f0518-Name", "source": "u_seq" }, { - "id": "0x564132fdb280-EntityDecl", - "Name": "0x564132fdb338-Name" + "id": "0x5586249f0280-EntityDecl", + "Name": "0x5586249f0338-Name" }, { - "id": "0x564132fdb338-Name", + "id": "0x5586249f0338-Name", "source": "u_dir" }, { - "id": "0x564132fdb370-EntityDecl", - "Name": "0x564132fdb428-Name" + "id": "0x5586249f0370-EntityDecl", + "Name": "0x5586249f0428-Name" }, { - "id": "0x564132fdb428-Name", + "id": "0x5586249f0428-Name", "source": "u_stream" }, { - "id": "0x564132fac110-DeclarationConstruct", + "id": "0x5586249c1110-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x564132fac110-SpecificationConstruct" + "SpecificationConstruct": "0x5586249c1110-SpecificationConstruct" }, { - "id": "0x564132fac110-SpecificationConstruct", + "id": "0x5586249c1110-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x564132fac110-Statement" + "Statement": "0x5586249c1110-Statement" }, { - "id": "0x564132fac110-Statement", - "statement": "0x564132fdb1f0-TypeDeclarationStmt", + "id": "0x5586249c1110-Statement", + "statement": "0x5586249f01f0-TypeDeclarationStmt", "source": "integer :: ios, async_id, chars_read" }, { - "id": "0x564132fdb1f0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x564132fdb220-DeclarationTypeSpec", + "id": "0x5586249f01f0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5586249f0220-DeclarationTypeSpec", "EntityDecl": [ - "0x564132fdb7b0-EntityDecl", - "0x564132fdb5d0-EntityDecl", - "0x564132fdb6c0-EntityDecl" + "0x5586249f07b0-EntityDecl", + "0x5586249f05d0-EntityDecl", + "0x5586249f06c0-EntityDecl" ] }, { - "id": "0x564132fdb220-DeclarationTypeSpec", + "id": "0x5586249f0220-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x564132fdb220-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5586249f0220-IntrinsicTypeSpec" }, { - "id": "0x564132fdb220-IntrinsicTypeSpec", + "id": "0x5586249f0220-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x564132fdb220-IntegerTypeSpec" + "IntegerTypeSpec": "0x5586249f0220-IntegerTypeSpec" }, { - "id": "0x564132fdb220-IntegerTypeSpec" + "id": "0x5586249f0220-IntegerTypeSpec" }, { - "id": "0x564132fdb7b0-EntityDecl", - "Name": "0x564132fdb868-Name" + "id": "0x5586249f07b0-EntityDecl", + "Name": "0x5586249f0868-Name" }, { - "id": "0x564132fdb868-Name", + "id": "0x5586249f0868-Name", "source": "ios" }, { - "id": "0x564132fdb5d0-EntityDecl", - "Name": "0x564132fdb688-Name" + "id": "0x5586249f05d0-EntityDecl", + "Name": "0x5586249f0688-Name" }, { - "id": "0x564132fdb688-Name", + "id": "0x5586249f0688-Name", "source": "async_id" }, { - "id": "0x564132fdb6c0-EntityDecl", - "Name": "0x564132fdb778-Name" + "id": "0x5586249f06c0-EntityDecl", + "Name": "0x5586249f0778-Name" }, { - "id": "0x564132fdb778-Name", + "id": "0x5586249f0778-Name", "source": "chars_read" }, { - "id": "0x564132fdbbe0-DeclarationConstruct", + "id": "0x5586249f0be0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x564132fdbbe0-SpecificationConstruct" + "SpecificationConstruct": "0x5586249f0be0-SpecificationConstruct" }, { - "id": "0x564132fdbbe0-SpecificationConstruct", + "id": "0x5586249f0be0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x564132fdbbe0-Statement" + "Statement": "0x5586249f0be0-Statement" }, { - "id": "0x564132fdbbe0-Statement", - "statement": "0x564132fdb540-TypeDeclarationStmt", + "id": "0x5586249f0be0-Statement", + "statement": "0x5586249f0540-TypeDeclarationStmt", "source": "character(len=200) :: io_message" }, { - "id": "0x564132fdb540-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x564132fdb570-DeclarationTypeSpec", + "id": "0x5586249f0540-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5586249f0570-DeclarationTypeSpec", "EntityDecl": [ - "0x564132fdba10-EntityDecl" + "0x5586249f0a10-EntityDecl" ] }, { - "id": "0x564132fdb570-DeclarationTypeSpec", + "id": "0x5586249f0570-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x564132fdb570-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5586249f0570-IntrinsicTypeSpec" }, { - "id": "0x564132fdb570-IntrinsicTypeSpec", + "id": "0x5586249f0570-IntrinsicTypeSpec", "variantKey": "Character", - "Character": "0x564132fdb570-Character" + "Character": "0x5586249f0570-Character" }, { - "id": "0x564132fdb570-Character", - "CharSelector": "0x564132fdb570-CharSelector" + "id": "0x5586249f0570-Character", + "CharSelector": "0x5586249f0570-CharSelector" }, { - "id": "0x564132fdb570-CharSelector", + "id": "0x5586249f0570-CharSelector", "variantKey": "LengthSelector", - "LengthSelector": "0x564132fdb570-LengthSelector" + "LengthSelector": "0x5586249f0570-LengthSelector" }, { - "id": "0x564132fdb570-LengthSelector", + "id": "0x5586249f0570-LengthSelector", "variantKey": "TypeParamValue", - "TypeParamValue": "0x564132fdb570-TypeParamValue" + "TypeParamValue": "0x5586249f0570-TypeParamValue" }, { - "id": "0x564132fdb570-TypeParamValue", + "id": "0x5586249f0570-TypeParamValue", "variantKey": "Expr", - "Expr": "0x564132f3e790-Expr" + "Expr": "0x558624953790-Expr" }, { - "id": "0x564132f3e790-Expr", + "id": "0x558624953790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132f3e7b0-LiteralConstant" + "LiteralConstant": "0x5586249537b0-LiteralConstant" }, { - "id": "0x564132f3e7b0-LiteralConstant", + "id": "0x5586249537b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564132f3e7b0-IntLiteralConstant" + "IntLiteralConstant": "0x5586249537b0-IntLiteralConstant" }, { - "id": "0x564132f3e7b0-IntLiteralConstant", + "id": "0x5586249537b0-IntLiteralConstant", "CharBlock": "200" }, { - "id": "0x564132fdba10-EntityDecl", - "Name": "0x564132fdbac8-Name" + "id": "0x5586249f0a10-EntityDecl", + "Name": "0x5586249f0ac8-Name" }, { - "id": "0x564132fdbac8-Name", + "id": "0x5586249f0ac8-Name", "source": "io_message" }, { - "id": "0x564132fdbcc0-DeclarationConstruct", + "id": "0x5586249f0cc0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x564132fdbcc0-SpecificationConstruct" + "SpecificationConstruct": "0x5586249f0cc0-SpecificationConstruct" }, { - "id": "0x564132fdbcc0-SpecificationConstruct", + "id": "0x5586249f0cc0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x564132fdbcc0-Statement" + "Statement": "0x5586249f0cc0-Statement" }, { - "id": "0x564132fdbcc0-Statement", - "statement": "0x564132fdb890-TypeDeclarationStmt", + "id": "0x5586249f0cc0-Statement", + "statement": "0x5586249f0890-TypeDeclarationStmt", "source": "character(len=20) :: text_buffer" }, { - "id": "0x564132fdb890-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x564132fdb8c0-DeclarationTypeSpec", + "id": "0x5586249f0890-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5586249f08c0-DeclarationTypeSpec", "EntityDecl": [ - "0x564132f54270-EntityDecl" + "0x558624969270-EntityDecl" ] }, { - "id": "0x564132fdb8c0-DeclarationTypeSpec", + "id": "0x5586249f08c0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x564132fdb8c0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5586249f08c0-IntrinsicTypeSpec" }, { - "id": "0x564132fdb8c0-IntrinsicTypeSpec", + "id": "0x5586249f08c0-IntrinsicTypeSpec", "variantKey": "Character", - "Character": "0x564132fdb8c0-Character" + "Character": "0x5586249f08c0-Character" }, { - "id": "0x564132fdb8c0-Character", - "CharSelector": "0x564132fdb8c0-CharSelector" + "id": "0x5586249f08c0-Character", + "CharSelector": "0x5586249f08c0-CharSelector" }, { - "id": "0x564132fdb8c0-CharSelector", + "id": "0x5586249f08c0-CharSelector", "variantKey": "LengthSelector", - "LengthSelector": "0x564132fdb8c0-LengthSelector" + "LengthSelector": "0x5586249f08c0-LengthSelector" }, { - "id": "0x564132fdb8c0-LengthSelector", + "id": "0x5586249f08c0-LengthSelector", "variantKey": "TypeParamValue", - "TypeParamValue": "0x564132fdb8c0-TypeParamValue" + "TypeParamValue": "0x5586249f08c0-TypeParamValue" }, { - "id": "0x564132fdb8c0-TypeParamValue", + "id": "0x5586249f08c0-TypeParamValue", "variantKey": "Expr", - "Expr": "0x564132fe2e90-Expr" + "Expr": "0x5586249f7e90-Expr" }, { - "id": "0x564132fe2e90-Expr", + "id": "0x5586249f7e90-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fe2eb0-LiteralConstant" + "LiteralConstant": "0x5586249f7eb0-LiteralConstant" }, { - "id": "0x564132fe2eb0-LiteralConstant", + "id": "0x5586249f7eb0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564132fe2eb0-IntLiteralConstant" + "IntLiteralConstant": "0x5586249f7eb0-IntLiteralConstant" }, { - "id": "0x564132fe2eb0-IntLiteralConstant", + "id": "0x5586249f7eb0-IntLiteralConstant", "CharBlock": "20" }, { - "id": "0x564132f54270-EntityDecl", - "Name": "0x564132f54328-Name" + "id": "0x558624969270-EntityDecl", + "Name": "0x558624969328-Name" }, { - "id": "0x564132f54328-Name", + "id": "0x558624969328-Name", "source": "text_buffer" }, { - "id": "0x564132fc9950-DeclarationConstruct", + "id": "0x5586249de950-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x564132fc9950-SpecificationConstruct" + "SpecificationConstruct": "0x5586249de950-SpecificationConstruct" }, { - "id": "0x564132fc9950-SpecificationConstruct", + "id": "0x5586249de950-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x564132fc9950-Statement" + "Statement": "0x5586249de950-Statement" }, { - "id": "0x564132fc9950-Statement", - "statement": "0x564132fdb910-TypeDeclarationStmt", + "id": "0x5586249de950-Statement", + "statement": "0x5586249f0910-TypeDeclarationStmt", "source": "real :: x = 123.456" }, { - "id": "0x564132fdb910-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x564132fdb940-DeclarationTypeSpec", + "id": "0x5586249f0910-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5586249f0940-DeclarationTypeSpec", "EntityDecl": [ - "0x564132fc9860-EntityDecl" + "0x5586249de860-EntityDecl" ] }, { - "id": "0x564132fdb940-DeclarationTypeSpec", + "id": "0x5586249f0940-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x564132fdb940-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5586249f0940-IntrinsicTypeSpec" }, { - "id": "0x564132fdb940-IntrinsicTypeSpec", + "id": "0x5586249f0940-IntrinsicTypeSpec", "variantKey": "Real", - "Real": "0x564132fdb940-Real" + "Real": "0x5586249f0940-Real" }, { - "id": "0x564132fdb940-Real" + "id": "0x5586249f0940-Real" }, { - "id": "0x564132fc9860-EntityDecl", - "Name": "0x564132fc9918-Name", - "Initialization": "0x564132fc9860-Initialization" + "id": "0x5586249de860-EntityDecl", + "Name": "0x5586249de918-Name", + "Initialization": "0x5586249de860-Initialization" }, { - "id": "0x564132fc9918-Name", + "id": "0x5586249de918-Name", "source": "x" }, { - "id": "0x564132fc9860-Initialization", + "id": "0x5586249de860-Initialization", "variantKey": "Expr", - "Expr": "0x564132fc9770-Expr" + "Expr": "0x5586249de770-Expr" }, { - "id": "0x564132fc9770-Expr", + "id": "0x5586249de770-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fc9790-LiteralConstant" + "LiteralConstant": "0x5586249de790-LiteralConstant" }, { - "id": "0x564132fc9790-LiteralConstant", + "id": "0x5586249de790-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x564132fc9790-RealLiteralConstant" + "RealLiteralConstant": "0x5586249de790-RealLiteralConstant" }, { - "id": "0x564132fc9790-RealLiteralConstant", - "real": "0x564132fc9790-Real" + "id": "0x5586249de790-RealLiteralConstant", + "real": "0x5586249de790-Real" }, { - "id": "0x564132fc9790-Real", + "id": "0x5586249de790-Real", "source": "123.456" }, { - "id": "0x564132fc9c00-DeclarationConstruct", + "id": "0x5586249dec00-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x564132fc9c00-SpecificationConstruct" + "SpecificationConstruct": "0x5586249dec00-SpecificationConstruct" }, { - "id": "0x564132fc9c00-SpecificationConstruct", + "id": "0x5586249dec00-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x564132fc9c00-Statement" + "Statement": "0x5586249dec00-Statement" }, { - "id": "0x564132fc9c00-Statement", - "statement": "0x564132fdbc30-TypeDeclarationStmt", + "id": "0x5586249dec00-Statement", + "statement": "0x5586249f0c30-TypeDeclarationStmt", "source": "integer :: val = 42" }, { - "id": "0x564132fdbc30-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x564132fdbc60-DeclarationTypeSpec", + "id": "0x5586249f0c30-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5586249f0c60-DeclarationTypeSpec", "EntityDecl": [ - "0x564132fc9b10-EntityDecl" + "0x5586249deb10-EntityDecl" ] }, { - "id": "0x564132fdbc60-DeclarationTypeSpec", + "id": "0x5586249f0c60-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x564132fdbc60-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5586249f0c60-IntrinsicTypeSpec" }, { - "id": "0x564132fdbc60-IntrinsicTypeSpec", + "id": "0x5586249f0c60-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x564132fdbc60-IntegerTypeSpec" + "IntegerTypeSpec": "0x5586249f0c60-IntegerTypeSpec" }, { - "id": "0x564132fdbc60-IntegerTypeSpec" + "id": "0x5586249f0c60-IntegerTypeSpec" }, { - "id": "0x564132fc9b10-EntityDecl", - "Name": "0x564132fc9bc8-Name", - "Initialization": "0x564132fc9b10-Initialization" + "id": "0x5586249deb10-EntityDecl", + "Name": "0x5586249debc8-Name", + "Initialization": "0x5586249deb10-Initialization" }, { - "id": "0x564132fc9bc8-Name", + "id": "0x5586249debc8-Name", "source": "val" }, { - "id": "0x564132fc9b10-Initialization", + "id": "0x5586249deb10-Initialization", "variantKey": "Expr", - "Expr": "0x564132fc9a20-Expr" + "Expr": "0x5586249dea20-Expr" }, { - "id": "0x564132fc9a20-Expr", + "id": "0x5586249dea20-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fc9a40-LiteralConstant" + "LiteralConstant": "0x5586249dea40-LiteralConstant" }, { - "id": "0x564132fc9a40-LiteralConstant", + "id": "0x5586249dea40-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564132fc9a40-IntLiteralConstant" + "IntLiteralConstant": "0x5586249dea40-IntLiteralConstant" }, { - "id": "0x564132fc9a40-IntLiteralConstant", + "id": "0x5586249dea40-IntLiteralConstant", "CharBlock": "42" }, { - "id": "0x564132fabda0-DeclarationConstruct", + "id": "0x5586249c0da0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x564132fabda0-SpecificationConstruct" + "SpecificationConstruct": "0x5586249c0da0-SpecificationConstruct" }, { - "id": "0x564132fabda0-SpecificationConstruct", + "id": "0x5586249c0da0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x564132fabda0-Statement" + "Statement": "0x5586249c0da0-Statement" }, { - "id": "0x564132fabda0-Statement", - "statement": "0x564132fabdb0-OtherSpecificationStmt", + "id": "0x5586249c0da0-Statement", + "statement": "0x5586249c0db0-OtherSpecificationStmt", "source": "namelist /my_namelist/ val, x" }, { - "id": "0x564132fabdb0-OtherSpecificationStmt", + "id": "0x5586249c0db0-OtherSpecificationStmt", "variantKey": "NamelistStmt", - "NamelistStmt": "0x564132fddbc0-NamelistStmt" + "NamelistStmt": "0x5586249f2bc0-NamelistStmt" }, { - "id": "0x564132fddbc0-NamelistStmt", + "id": "0x5586249f2bc0-NamelistStmt", "Group": [ - "0x564132fdc860-Group" + "0x5586249f1860-Group" ] }, { - "id": "0x564132fdc860-Group", - "groupName": "0x564132fdc878-Name", + "id": "0x5586249f1860-Group", + "groupName": "0x5586249f1878-Name", "objectNames": [ - "0x564132fdd970-Name", - "0x564132fdd940-Name" + "0x5586249f2970-Name", + "0x5586249f2940-Name" ] }, { - "id": "0x564132fdc878-Name", + "id": "0x5586249f1878-Name", "source": "my_namelist" }, { - "id": "0x564132fdd970-Name", + "id": "0x5586249f2970-Name", "source": "val" }, { - "id": "0x564132fdd940-Name", + "id": "0x5586249f2940-Name", "source": "x" }, { - "id": "0x564132fdc658-ExecutionPart", + "id": "0x5586249f1658-ExecutionPart", "ExecutionPartConstruct": [ - "0x564132fca9b0-ExecutionPartConstruct", - "0x564132fcda90-ExecutionPartConstruct", - "0x564132fcc9c0-ExecutionPartConstruct", - "0x564132fcf490-ExecutionPartConstruct", - "0x564132fdafe0-ExecutionPartConstruct", - "0x564132fcd510-ExecutionPartConstruct", - "0x564132fd1160-ExecutionPartConstruct", - "0x564132fd0210-ExecutionPartConstruct", - "0x564132fd1850-ExecutionPartConstruct", - "0x564132fd0270-ExecutionPartConstruct", - "0x564132fd29f0-ExecutionPartConstruct", - "0x564132fd0f50-ExecutionPartConstruct", - "0x564132fe38d0-ExecutionPartConstruct", - "0x564132fcd4b0-ExecutionPartConstruct", - "0x564132fd0490-ExecutionPartConstruct", - "0x564132fcfe80-ExecutionPartConstruct", - "0x564132fcc2f0-ExecutionPartConstruct", - "0x564132fd0430-ExecutionPartConstruct", - "0x564132fd26f0-ExecutionPartConstruct", - "0x564132fe41e0-ExecutionPartConstruct" + "0x5586249df9b0-ExecutionPartConstruct", + "0x5586249e2a90-ExecutionPartConstruct", + "0x5586249e19c0-ExecutionPartConstruct", + "0x5586249e4490-ExecutionPartConstruct", + "0x5586249effe0-ExecutionPartConstruct", + "0x5586249e2510-ExecutionPartConstruct", + "0x5586249e6160-ExecutionPartConstruct", + "0x5586249e5210-ExecutionPartConstruct", + "0x5586249e6850-ExecutionPartConstruct", + "0x5586249e5270-ExecutionPartConstruct", + "0x5586249e79f0-ExecutionPartConstruct", + "0x5586249e5f50-ExecutionPartConstruct", + "0x5586249f88d0-ExecutionPartConstruct", + "0x5586249e24b0-ExecutionPartConstruct", + "0x5586249e5490-ExecutionPartConstruct", + "0x5586249e4e80-ExecutionPartConstruct", + "0x5586249e12f0-ExecutionPartConstruct", + "0x5586249e5430-ExecutionPartConstruct", + "0x5586249e76f0-ExecutionPartConstruct", + "0x5586249f91e0-ExecutionPartConstruct" ] }, { - "id": "0x564132fdc658-ExecutionPartConstruct" + "id": "0x5586249f1658-ExecutionPartConstruct" }, { - "id": "0x564132fca9b0-ExecutionPartConstruct", + "id": "0x5586249df9b0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564132fca9b0-ExecutableConstruct" + "ExecutableConstruct": "0x5586249df9b0-ExecutableConstruct" }, { - "id": "0x564132fca9b0-ExecutableConstruct", + "id": "0x5586249df9b0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x564132fca9b0-Statement" + "Statement": "0x5586249df9b0-Statement" }, { - "id": "0x564132fca9b0-Statement", - "statement": "0x564132fca9c0-ActionStmt", + "id": "0x5586249df9b0-Statement", + "statement": "0x5586249df9c0-ActionStmt", "source": "open(newunit=u_seq, file='seq.txt', status='replace', action='readwrite')" }, { - "id": "0x564132fca9c0-ActionStmt", + "id": "0x5586249df9c0-ActionStmt", "variantKey": "OpenStmt", - "OpenStmt": "0x564132fdd9c0-OpenStmt" + "OpenStmt": "0x5586249f29c0-OpenStmt" }, { - "id": "0x564132fdd9c0-OpenStmt", + "id": "0x5586249f29c0-OpenStmt", "ConnectSpec": [ - "0x564132fd5160-ConnectSpec", - "0x564132fd5060-ConnectSpec", - "0x564132fd4c60-ConnectSpec", - "0x564132fd4ba0-ConnectSpec" + "0x5586249ea160-ConnectSpec", + "0x5586249ea060-ConnectSpec", + "0x5586249e9c60-ConnectSpec", + "0x5586249e9ba0-ConnectSpec" ] }, { - "id": "0x564132fd5160-ConnectSpec", + "id": "0x5586249ea160-ConnectSpec", "variantKey": "Newunit", - "Newunit": "0x564132fd5160-Newunit" + "Newunit": "0x5586249ea160-Newunit" }, { - "id": "0x564132fd5160-Newunit", - "Variable": "0x564132fd5160-Variable" + "id": "0x5586249ea160-Newunit", + "Variable": "0x5586249ea160-Variable" }, { - "id": "0x564132fd5160-Variable", + "id": "0x5586249ea160-Variable", "variantKey": "Designator", - "Designator": "0x564132fcce60-Designator" + "Designator": "0x5586249e1e60-Designator" }, { - "id": "0x564132fcce60-Designator", + "id": "0x5586249e1e60-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fcce70-DataRef" + "DataRef": "0x5586249e1e70-DataRef" }, { - "id": "0x564132fcce70-DataRef", + "id": "0x5586249e1e70-DataRef", "variantKey": "Name", - "Name": "0x564132fcce70-Name" + "Name": "0x5586249e1e70-Name" }, { - "id": "0x564132fcce70-Name", + "id": "0x5586249e1e70-Name", "source": "u_seq" }, { - "id": "0x564132fd5060-ConnectSpec", + "id": "0x5586249ea060-ConnectSpec", "variantKey": "Expr", - "Expr": "0x564132fca5c0-Expr" + "Expr": "0x5586249df5c0-Expr" }, { - "id": "0x564132fca5c0-Expr", + "id": "0x5586249df5c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fca5e0-LiteralConstant" + "LiteralConstant": "0x5586249df5e0-LiteralConstant" }, { - "id": "0x564132fca5e0-LiteralConstant", + "id": "0x5586249df5e0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x564132fca5e0-CharLiteralConstant" + "CharLiteralConstant": "0x5586249df5e0-CharLiteralConstant" }, { - "id": "0x564132fca5e0-CharLiteralConstant", + "id": "0x5586249df5e0-CharLiteralConstant", "string": "seq.txt" }, { - "id": "0x564132fd4c60-ConnectSpec", + "id": "0x5586249e9c60-ConnectSpec", "variantKey": "StatusExpr", - "StatusExpr": "0x564132fd4c60-StatusExpr" + "StatusExpr": "0x5586249e9c60-StatusExpr" }, { - "id": "0x564132fd4c60-StatusExpr", - "Expr": "0x564132fcb420-Expr" + "id": "0x5586249e9c60-StatusExpr", + "Expr": "0x5586249e0420-Expr" }, { - "id": "0x564132fcb420-Expr", + "id": "0x5586249e0420-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fcb440-LiteralConstant" + "LiteralConstant": "0x5586249e0440-LiteralConstant" }, { - "id": "0x564132fcb440-LiteralConstant", + "id": "0x5586249e0440-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x564132fcb440-CharLiteralConstant" + "CharLiteralConstant": "0x5586249e0440-CharLiteralConstant" }, { - "id": "0x564132fcb440-CharLiteralConstant", + "id": "0x5586249e0440-CharLiteralConstant", "string": "replace" }, { - "id": "0x564132fd4ba0-ConnectSpec", + "id": "0x5586249e9ba0-ConnectSpec", "variantKey": "CharExpr", - "CharExpr": "0x564132fd4ba0-CharExpr" + "CharExpr": "0x5586249e9ba0-CharExpr" }, { - "id": "0x564132fd4ba0-CharExpr", - "Kind": "0x564132fd4ba8-Kind", - "Expr": "0x564132fcafa0-Expr" + "id": "0x5586249e9ba0-CharExpr", + "Kind": "0x5586249e9ba8-Kind", + "Expr": "0x5586249dffa0-Expr" }, { - "id": "0x564132fd4ba8-Kind", + "id": "0x5586249e9ba8-Kind", "disambiguation": "Fortran::parser::ConnectSpec::CharExpr::Kind", "value": "Action" }, { - "id": "0x564132fcafa0-Expr", + "id": "0x5586249dffa0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fcafc0-LiteralConstant" + "LiteralConstant": "0x5586249dffc0-LiteralConstant" }, { - "id": "0x564132fcafc0-LiteralConstant", + "id": "0x5586249dffc0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x564132fcafc0-CharLiteralConstant" + "CharLiteralConstant": "0x5586249dffc0-CharLiteralConstant" }, { - "id": "0x564132fcafc0-CharLiteralConstant", + "id": "0x5586249dffc0-CharLiteralConstant", "string": "readwrite" }, { - "id": "0x564132fcda90-ExecutionPartConstruct", + "id": "0x5586249e2a90-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564132fcda90-ExecutableConstruct" + "ExecutableConstruct": "0x5586249e2a90-ExecutableConstruct" }, { - "id": "0x564132fcda90-ExecutableConstruct", + "id": "0x5586249e2a90-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x564132fcda90-Statement" + "Statement": "0x5586249e2a90-Statement" }, { - "id": "0x564132fcda90-Statement", - "statement": "0x564132fcdaa0-ActionStmt", + "id": "0x5586249e2a90-Statement", + "statement": "0x5586249e2aa0-ActionStmt", "source": "open(newunit=u_dir, file='dir.bin', status='replace', access='direct', recl=16)" }, { - "id": "0x564132fcdaa0-ActionStmt", + "id": "0x5586249e2aa0-ActionStmt", "variantKey": "OpenStmt", - "OpenStmt": "0x564132fdd890-OpenStmt" + "OpenStmt": "0x5586249f2890-OpenStmt" }, { - "id": "0x564132fdd890-OpenStmt", + "id": "0x5586249f2890-OpenStmt", "ConnectSpec": [ - "0x564132fd4210-ConnectSpec", - "0x564132fdda20-ConnectSpec", - "0x564132fdda80-ConnectSpec", - "0x564132fddac0-ConnectSpec", - "0x564132fd4440-ConnectSpec" + "0x5586249e9210-ConnectSpec", + "0x5586249f2a20-ConnectSpec", + "0x5586249f2a80-ConnectSpec", + "0x5586249f2ac0-ConnectSpec", + "0x5586249e9440-ConnectSpec" ] }, { - "id": "0x564132fd4210-ConnectSpec", + "id": "0x5586249e9210-ConnectSpec", "variantKey": "Newunit", - "Newunit": "0x564132fd4210-Newunit" + "Newunit": "0x5586249e9210-Newunit" }, { - "id": "0x564132fd4210-Newunit", - "Variable": "0x564132fd4210-Variable" + "id": "0x5586249e9210-Newunit", + "Variable": "0x5586249e9210-Variable" }, { - "id": "0x564132fd4210-Variable", + "id": "0x5586249e9210-Variable", "variantKey": "Designator", - "Designator": "0x564132fca0e0-Designator" + "Designator": "0x5586249df0e0-Designator" }, { - "id": "0x564132fca0e0-Designator", + "id": "0x5586249df0e0-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fca0f0-DataRef" + "DataRef": "0x5586249df0f0-DataRef" }, { - "id": "0x564132fca0f0-DataRef", + "id": "0x5586249df0f0-DataRef", "variantKey": "Name", - "Name": "0x564132fca0f0-Name" + "Name": "0x5586249df0f0-Name" }, { - "id": "0x564132fca0f0-Name", + "id": "0x5586249df0f0-Name", "source": "u_dir" }, { - "id": "0x564132fdda20-ConnectSpec", + "id": "0x5586249f2a20-ConnectSpec", "variantKey": "Expr", - "Expr": "0x564132fcd2b0-Expr" + "Expr": "0x5586249e22b0-Expr" }, { - "id": "0x564132fcd2b0-Expr", + "id": "0x5586249e22b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fcd2d0-LiteralConstant" + "LiteralConstant": "0x5586249e22d0-LiteralConstant" }, { - "id": "0x564132fcd2d0-LiteralConstant", + "id": "0x5586249e22d0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x564132fcd2d0-CharLiteralConstant" + "CharLiteralConstant": "0x5586249e22d0-CharLiteralConstant" }, { - "id": "0x564132fcd2d0-CharLiteralConstant", + "id": "0x5586249e22d0-CharLiteralConstant", "string": "dir.bin" }, { - "id": "0x564132fdda80-ConnectSpec", + "id": "0x5586249f2a80-ConnectSpec", "variantKey": "StatusExpr", - "StatusExpr": "0x564132fdda80-StatusExpr" + "StatusExpr": "0x5586249f2a80-StatusExpr" }, { - "id": "0x564132fdda80-StatusExpr", - "Expr": "0x564132fcd1d0-Expr" + "id": "0x5586249f2a80-StatusExpr", + "Expr": "0x5586249e21d0-Expr" }, { - "id": "0x564132fcd1d0-Expr", + "id": "0x5586249e21d0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fcd1f0-LiteralConstant" + "LiteralConstant": "0x5586249e21f0-LiteralConstant" }, { - "id": "0x564132fcd1f0-LiteralConstant", + "id": "0x5586249e21f0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x564132fcd1f0-CharLiteralConstant" + "CharLiteralConstant": "0x5586249e21f0-CharLiteralConstant" }, { - "id": "0x564132fcd1f0-CharLiteralConstant", + "id": "0x5586249e21f0-CharLiteralConstant", "string": "replace" }, { - "id": "0x564132fddac0-ConnectSpec", + "id": "0x5586249f2ac0-ConnectSpec", "variantKey": "CharExpr", - "CharExpr": "0x564132fddac0-CharExpr" + "CharExpr": "0x5586249f2ac0-CharExpr" }, { - "id": "0x564132fddac0-CharExpr", - "Kind": "0x564132fddac8-Kind", - "Expr": "0x564132fcd0f0-Expr" + "id": "0x5586249f2ac0-CharExpr", + "Kind": "0x5586249f2ac8-Kind", + "Expr": "0x5586249e20f0-Expr" }, { - "id": "0x564132fddac8-Kind", + "id": "0x5586249f2ac8-Kind", "disambiguation": "Fortran::parser::ConnectSpec::CharExpr::Kind", "value": "Access" }, { - "id": "0x564132fcd0f0-Expr", + "id": "0x5586249e20f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fcd110-LiteralConstant" + "LiteralConstant": "0x5586249e2110-LiteralConstant" }, { - "id": "0x564132fcd110-LiteralConstant", + "id": "0x5586249e2110-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x564132fcd110-CharLiteralConstant" + "CharLiteralConstant": "0x5586249e2110-CharLiteralConstant" }, { - "id": "0x564132fcd110-CharLiteralConstant", + "id": "0x5586249e2110-CharLiteralConstant", "string": "direct" }, { - "id": "0x564132fd4440-ConnectSpec", + "id": "0x5586249e9440-ConnectSpec", "variantKey": "Recl", - "Recl": "0x564132fd4440-Recl" + "Recl": "0x5586249e9440-Recl" }, { - "id": "0x564132fd4440-Recl", - "Expr": "0x564132fcd010-Expr" + "id": "0x5586249e9440-Recl", + "Expr": "0x5586249e2010-Expr" }, { - "id": "0x564132fcd010-Expr", + "id": "0x5586249e2010-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fcd030-LiteralConstant" + "LiteralConstant": "0x5586249e2030-LiteralConstant" }, { - "id": "0x564132fcd030-LiteralConstant", + "id": "0x5586249e2030-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564132fcd030-IntLiteralConstant" + "IntLiteralConstant": "0x5586249e2030-IntLiteralConstant" }, { - "id": "0x564132fcd030-IntLiteralConstant", + "id": "0x5586249e2030-IntLiteralConstant", "CharBlock": "16" }, { - "id": "0x564132fcc9c0-ExecutionPartConstruct", + "id": "0x5586249e19c0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564132fcc9c0-ExecutableConstruct" + "ExecutableConstruct": "0x5586249e19c0-ExecutableConstruct" }, { - "id": "0x564132fcc9c0-ExecutableConstruct", + "id": "0x5586249e19c0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x564132fcc9c0-Statement" + "Statement": "0x5586249e19c0-Statement" }, { - "id": "0x564132fcc9c0-Statement", - "statement": "0x564132fcc9d0-ActionStmt", + "id": "0x5586249e19c0-Statement", + "statement": "0x5586249e19d0-ActionStmt", "source": "open(newunit=u_stream, file='stream.bin', status='replace', access='stream')" }, { - "id": "0x564132fcc9d0-ActionStmt", + "id": "0x5586249e19d0-ActionStmt", "variantKey": "OpenStmt", - "OpenStmt": "0x564132fd39c0-OpenStmt" + "OpenStmt": "0x5586249e89c0-OpenStmt" }, { - "id": "0x564132fd39c0-OpenStmt", + "id": "0x5586249e89c0-OpenStmt", "ConnectSpec": [ - "0x564132fd4360-ConnectSpec", - "0x564132fd42c0-ConnectSpec", - "0x564132fd4280-ConnectSpec", - "0x564132fd4300-ConnectSpec" + "0x5586249e9360-ConnectSpec", + "0x5586249e92c0-ConnectSpec", + "0x5586249e9280-ConnectSpec", + "0x5586249e9300-ConnectSpec" ] }, { - "id": "0x564132fd4360-ConnectSpec", + "id": "0x5586249e9360-ConnectSpec", "variantKey": "Newunit", - "Newunit": "0x564132fd4360-Newunit" + "Newunit": "0x5586249e9360-Newunit" }, { - "id": "0x564132fd4360-Newunit", - "Variable": "0x564132fd4360-Variable" + "id": "0x5586249e9360-Newunit", + "Variable": "0x5586249e9360-Variable" }, { - "id": "0x564132fd4360-Variable", + "id": "0x5586249e9360-Variable", "variantKey": "Designator", - "Designator": "0x564132fcb190-Designator" + "Designator": "0x5586249e0190-Designator" }, { - "id": "0x564132fcb190-Designator", + "id": "0x5586249e0190-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fcb1a0-DataRef" + "DataRef": "0x5586249e01a0-DataRef" }, { - "id": "0x564132fcb1a0-DataRef", + "id": "0x5586249e01a0-DataRef", "variantKey": "Name", - "Name": "0x564132fcb1a0-Name" + "Name": "0x5586249e01a0-Name" }, { - "id": "0x564132fcb1a0-Name", + "id": "0x5586249e01a0-Name", "source": "u_stream" }, { - "id": "0x564132fd42c0-ConnectSpec", + "id": "0x5586249e92c0-ConnectSpec", "variantKey": "Expr", - "Expr": "0x564132fcddf0-Expr" + "Expr": "0x5586249e2df0-Expr" }, { - "id": "0x564132fcddf0-Expr", + "id": "0x5586249e2df0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fcde10-LiteralConstant" + "LiteralConstant": "0x5586249e2e10-LiteralConstant" }, { - "id": "0x564132fcde10-LiteralConstant", + "id": "0x5586249e2e10-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x564132fcde10-CharLiteralConstant" + "CharLiteralConstant": "0x5586249e2e10-CharLiteralConstant" }, { - "id": "0x564132fcde10-CharLiteralConstant", + "id": "0x5586249e2e10-CharLiteralConstant", "string": "stream.bin" }, { - "id": "0x564132fd4280-ConnectSpec", + "id": "0x5586249e9280-ConnectSpec", "variantKey": "StatusExpr", - "StatusExpr": "0x564132fd4280-StatusExpr" + "StatusExpr": "0x5586249e9280-StatusExpr" }, { - "id": "0x564132fd4280-StatusExpr", - "Expr": "0x564132fcdd10-Expr" + "id": "0x5586249e9280-StatusExpr", + "Expr": "0x5586249e2d10-Expr" }, { - "id": "0x564132fcdd10-Expr", + "id": "0x5586249e2d10-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fcdd30-LiteralConstant" + "LiteralConstant": "0x5586249e2d30-LiteralConstant" }, { - "id": "0x564132fcdd30-LiteralConstant", + "id": "0x5586249e2d30-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x564132fcdd30-CharLiteralConstant" + "CharLiteralConstant": "0x5586249e2d30-CharLiteralConstant" }, { - "id": "0x564132fcdd30-CharLiteralConstant", + "id": "0x5586249e2d30-CharLiteralConstant", "string": "replace" }, { - "id": "0x564132fd4300-ConnectSpec", + "id": "0x5586249e9300-ConnectSpec", "variantKey": "CharExpr", - "CharExpr": "0x564132fd4300-CharExpr" + "CharExpr": "0x5586249e9300-CharExpr" }, { - "id": "0x564132fd4300-CharExpr", - "Kind": "0x564132fd4308-Kind", - "Expr": "0x564132fcdc30-Expr" + "id": "0x5586249e9300-CharExpr", + "Kind": "0x5586249e9308-Kind", + "Expr": "0x5586249e2c30-Expr" }, { - "id": "0x564132fd4308-Kind", + "id": "0x5586249e9308-Kind", "disambiguation": "Fortran::parser::ConnectSpec::CharExpr::Kind", "value": "Access" }, { - "id": "0x564132fcdc30-Expr", + "id": "0x5586249e2c30-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fcdc50-LiteralConstant" + "LiteralConstant": "0x5586249e2c50-LiteralConstant" }, { - "id": "0x564132fcdc50-LiteralConstant", + "id": "0x5586249e2c50-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x564132fcdc50-CharLiteralConstant" + "CharLiteralConstant": "0x5586249e2c50-CharLiteralConstant" }, { - "id": "0x564132fcdc50-CharLiteralConstant", + "id": "0x5586249e2c50-CharLiteralConstant", "string": "stream" }, { - "id": "0x564132fcf490-ExecutionPartConstruct", + "id": "0x5586249e4490-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564132fcf490-ExecutableConstruct" + "ExecutableConstruct": "0x5586249e4490-ExecutableConstruct" }, { - "id": "0x564132fcf490-ExecutableConstruct", + "id": "0x5586249e4490-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x564132fcf490-Statement" + "Statement": "0x5586249e4490-Statement" }, { - "id": "0x564132fcf490-Statement", - "statement": "0x564132fcf4a0-ActionStmt", + "id": "0x5586249e4490-Statement", + "statement": "0x5586249e44a0-ActionStmt", "source": "write(unit = u_seq, fmt = *, decimal = 'comma', sign = 'plus', round = 'up', delim = 'quote', iostat = ios, iomsg = io_message)" }, { - "id": "0x564132fcf4a0-ActionStmt", + "id": "0x5586249e44a0-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x564132fcf2c0-WriteStmt" + "WriteStmt": "0x5586249e42c0-WriteStmt" }, { - "id": "0x564132fcf2c0-WriteStmt" + "id": "0x5586249e42c0-WriteStmt", + "controls": [ + "0x5586249e3ca0-IoControlSpec", + "0x5586249e2ee0-IoControlSpec", + "0x5586249e2fe0-IoControlSpec", + "0x5586249e31c0-IoControlSpec", + "0x5586249e33a0-IoControlSpec", + "0x5586249e3580-IoControlSpec", + "0x5586249e3750-IoControlSpec", + "0x5586249e3ba0-IoControlSpec" + ], + "items": [] }, { - "id": "0x564132fceca0-IoControlSpec", + "id": "0x5586249e3ca0-IoControlSpec", "variantKey": "IoUnit", - "IoUnit": "0x564132fceca0-IoUnit" + "IoUnit": "0x5586249e3ca0-IoUnit" }, { - "id": "0x564132fceca0-IoUnit", + "id": "0x5586249e3ca0-IoUnit", "variantKey": "Expr", - "Expr": "0x564133007c40-Expr" + "Expr": "0x558624a1cc40-Expr" }, { - "id": "0x564133007c40-Expr", + "id": "0x558624a1cc40-Expr", "variantKey": "Designator", - "Designator": "0x564132f9d4d0-Designator" + "Designator": "0x5586249b24d0-Designator" }, { - "id": "0x564132f9d4d0-Designator", + "id": "0x5586249b24d0-Designator", "variantKey": "DataRef", - "DataRef": "0x564132f9d4e0-DataRef" + "DataRef": "0x5586249b24e0-DataRef" }, { - "id": "0x564132f9d4e0-DataRef", + "id": "0x5586249b24e0-DataRef", "variantKey": "Name", - "Name": "0x564132f9d4e0-Name" + "Name": "0x5586249b24e0-Name" }, { - "id": "0x564132f9d4e0-Name", + "id": "0x5586249b24e0-Name", "source": "u_seq" }, { - "id": "0x564132fcdee0-IoControlSpec", + "id": "0x5586249e2ee0-IoControlSpec", "variantKey": "Format", - "Format": "0x564132fcdee0-Format" + "Format": "0x5586249e2ee0-Format" }, { - "id": "0x564132fcdee0-Format", + "id": "0x5586249e2ee0-Format", "variantKey": "Star", - "Star": "0x564132fcdee0-Star" + "Star": "0x5586249e2ee0-Star" }, { - "id": "0x564132fcdee0-Star" + "id": "0x5586249e2ee0-Star" }, { - "id": "0x564132fcdfe0-IoControlSpec", + "id": "0x5586249e2fe0-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x564132fcdfe0-CharExpr" + "CharExpr": "0x5586249e2fe0-CharExpr" }, { - "id": "0x564132fcdfe0-CharExpr", - "Kind": "0x564132fcdfe8-Kind", - "Expr": "0x564132fcac30-Expr" + "id": "0x5586249e2fe0-CharExpr", + "Kind": "0x5586249e2fe8-Kind", + "Expr": "0x5586249dfc30-Expr" }, { - "id": "0x564132fcdfe8-Kind", + "id": "0x5586249e2fe8-Kind", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Decimal" }, { - "id": "0x564132fcac30-Expr", + "id": "0x5586249dfc30-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fcac50-LiteralConstant" + "LiteralConstant": "0x5586249dfc50-LiteralConstant" }, { - "id": "0x564132fcac50-LiteralConstant", + "id": "0x5586249dfc50-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x564132fcac50-CharLiteralConstant" + "CharLiteralConstant": "0x5586249dfc50-CharLiteralConstant" }, { - "id": "0x564132fcac50-CharLiteralConstant", + "id": "0x5586249dfc50-CharLiteralConstant", "string": "comma" }, { - "id": "0x564132fce1c0-IoControlSpec", + "id": "0x5586249e31c0-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x564132fce1c0-CharExpr" + "CharExpr": "0x5586249e31c0-CharExpr" }, { - "id": "0x564132fce1c0-CharExpr", - "Kind": "0x564132fce1c8-Kind", - "Expr": "0x564132fce0d0-Expr" + "id": "0x5586249e31c0-CharExpr", + "Kind": "0x5586249e31c8-Kind", + "Expr": "0x5586249e30d0-Expr" }, { - "id": "0x564132fce1c8-Kind", + "id": "0x5586249e31c8-Kind", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Sign" }, { - "id": "0x564132fce0d0-Expr", + "id": "0x5586249e30d0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fce0f0-LiteralConstant" + "LiteralConstant": "0x5586249e30f0-LiteralConstant" }, { - "id": "0x564132fce0f0-LiteralConstant", + "id": "0x5586249e30f0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x564132fce0f0-CharLiteralConstant" + "CharLiteralConstant": "0x5586249e30f0-CharLiteralConstant" }, { - "id": "0x564132fce0f0-CharLiteralConstant", + "id": "0x5586249e30f0-CharLiteralConstant", "string": "plus" }, { - "id": "0x564132fce3a0-IoControlSpec", + "id": "0x5586249e33a0-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x564132fce3a0-CharExpr" + "CharExpr": "0x5586249e33a0-CharExpr" }, { - "id": "0x564132fce3a0-CharExpr", - "Kind": "0x564132fce3a8-Kind", - "Expr": "0x564132fce2b0-Expr" + "id": "0x5586249e33a0-CharExpr", + "Kind": "0x5586249e33a8-Kind", + "Expr": "0x5586249e32b0-Expr" }, { - "id": "0x564132fce3a8-Kind", + "id": "0x5586249e33a8-Kind", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Round" }, { - "id": "0x564132fce2b0-Expr", + "id": "0x5586249e32b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fce2d0-LiteralConstant" + "LiteralConstant": "0x5586249e32d0-LiteralConstant" }, { - "id": "0x564132fce2d0-LiteralConstant", + "id": "0x5586249e32d0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x564132fce2d0-CharLiteralConstant" + "CharLiteralConstant": "0x5586249e32d0-CharLiteralConstant" }, { - "id": "0x564132fce2d0-CharLiteralConstant", + "id": "0x5586249e32d0-CharLiteralConstant", "string": "up" }, { - "id": "0x564132fce580-IoControlSpec", + "id": "0x5586249e3580-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x564132fce580-CharExpr" + "CharExpr": "0x5586249e3580-CharExpr" }, { - "id": "0x564132fce580-CharExpr", - "Kind": "0x564132fce588-Kind", - "Expr": "0x564132fce490-Expr" + "id": "0x5586249e3580-CharExpr", + "Kind": "0x5586249e3588-Kind", + "Expr": "0x5586249e3490-Expr" }, { - "id": "0x564132fce588-Kind", + "id": "0x5586249e3588-Kind", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Delim" }, { - "id": "0x564132fce490-Expr", + "id": "0x5586249e3490-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fce4b0-LiteralConstant" + "LiteralConstant": "0x5586249e34b0-LiteralConstant" }, { - "id": "0x564132fce4b0-LiteralConstant", + "id": "0x5586249e34b0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x564132fce4b0-CharLiteralConstant" + "CharLiteralConstant": "0x5586249e34b0-CharLiteralConstant" }, { - "id": "0x564132fce4b0-CharLiteralConstant", + "id": "0x5586249e34b0-CharLiteralConstant", "string": "quote" }, { - "id": "0x564132fce750-IoControlSpec", + "id": "0x5586249e3750-IoControlSpec", "variantKey": "StatVariable", - "StatVariable": "0x564132fce750-StatVariable" + "StatVariable": "0x5586249e3750-StatVariable" }, { - "id": "0x564132fce750-StatVariable", - "Variable": "0x564132fce750-Variable" + "id": "0x5586249e3750-StatVariable", + "Variable": "0x5586249e3750-Variable" }, { - "id": "0x564132fce750-Variable", + "id": "0x5586249e3750-Variable", "variantKey": "Designator", - "Designator": "0x564132fce670-Designator" + "Designator": "0x5586249e3670-Designator" }, { - "id": "0x564132fce670-Designator", + "id": "0x5586249e3670-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fce680-DataRef" + "DataRef": "0x5586249e3680-DataRef" }, { - "id": "0x564132fce680-DataRef", + "id": "0x5586249e3680-DataRef", "variantKey": "Name", - "Name": "0x564132fce680-Name" + "Name": "0x5586249e3680-Name" }, { - "id": "0x564132fce680-Name", + "id": "0x5586249e3680-Name", "source": "ios" }, { - "id": "0x564132fceba0-IoControlSpec", + "id": "0x5586249e3ba0-IoControlSpec", "variantKey": "MsgVariable", - "MsgVariable": "0x564132fceba0-MsgVariable" + "MsgVariable": "0x5586249e3ba0-MsgVariable" }, { - "id": "0x564132fceba0-MsgVariable", - "Variable": "0x564132fceba0-Variable" + "id": "0x5586249e3ba0-MsgVariable", + "Variable": "0x5586249e3ba0-Variable" }, { - "id": "0x564132fceba0-Variable", + "id": "0x5586249e3ba0-Variable", "variantKey": "Designator", - "Designator": "0x564132fceac0-Designator" + "Designator": "0x5586249e3ac0-Designator" }, { - "id": "0x564132fceac0-Designator", + "id": "0x5586249e3ac0-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fcead0-DataRef" + "DataRef": "0x5586249e3ad0-DataRef" }, { - "id": "0x564132fcead0-DataRef", + "id": "0x5586249e3ad0-DataRef", "variantKey": "Name", - "Name": "0x564132fcead0-Name" + "Name": "0x5586249e3ad0-Name" }, { - "id": "0x564132fcead0-Name", + "id": "0x5586249e3ad0-Name", "source": "io_message" }, { - "id": "0x564132fdafe0-ExecutionPartConstruct", + "id": "0x5586249effe0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564132fdafe0-ExecutableConstruct" + "ExecutableConstruct": "0x5586249effe0-ExecutableConstruct" }, { - "id": "0x564132fdafe0-ExecutableConstruct", + "id": "0x5586249effe0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x564132fdafe0-Statement" + "Statement": "0x5586249effe0-Statement" }, { - "id": "0x564132fdafe0-Statement", - "statement": "0x564132fdaff0-ActionStmt", + "id": "0x5586249effe0-Statement", + "statement": "0x5586249efff0-ActionStmt", "source": "write(unit = u_seq, nml = my_namelist, iostat = ios)" }, { - "id": "0x564132fdaff0-ActionStmt", + "id": "0x5586249efff0-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x564132fcfa80-WriteStmt" + "WriteStmt": "0x5586249e4a80-WriteStmt" }, { - "id": "0x564132fcfa80-WriteStmt" + "id": "0x5586249e4a80-WriteStmt", + "controls": [ + "0x5586249e4990-IoControlSpec", + "0x5586249e4790-IoControlSpec", + "0x5586249e4890-IoControlSpec" + ], + "items": [] }, { - "id": "0x564132fcf990-IoControlSpec", + "id": "0x5586249e4990-IoControlSpec", "variantKey": "IoUnit", - "IoUnit": "0x564132fcf990-IoUnit" + "IoUnit": "0x5586249e4990-IoUnit" }, { - "id": "0x564132fcf990-IoUnit", + "id": "0x5586249e4990-IoUnit", "variantKey": "Expr", - "Expr": "0x564133084ad0-Expr" + "Expr": "0x558624a99ad0-Expr" }, { - "id": "0x564133084ad0-Expr", + "id": "0x558624a99ad0-Expr", "variantKey": "Designator", - "Designator": "0x564132fcad10-Designator" + "Designator": "0x5586249dfd10-Designator" }, { - "id": "0x564132fcad10-Designator", + "id": "0x5586249dfd10-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fcad20-DataRef" + "DataRef": "0x5586249dfd20-DataRef" }, { - "id": "0x564132fcad20-DataRef", + "id": "0x5586249dfd20-DataRef", "variantKey": "Name", - "Name": "0x564132fcad20-Name" + "Name": "0x5586249dfd20-Name" }, { - "id": "0x564132fcad20-Name", + "id": "0x5586249dfd20-Name", "source": "u_seq" }, { - "id": "0x564132fcf790-IoControlSpec", + "id": "0x5586249e4790-IoControlSpec", "variantKey": "Name", - "Name": "0x564132fcf790-Name" + "Name": "0x5586249e4790-Name" }, { - "id": "0x564132fcf790-Name", + "id": "0x5586249e4790-Name", "source": "my_namelist" }, { - "id": "0x564132fcf890-IoControlSpec", + "id": "0x5586249e4890-IoControlSpec", "variantKey": "StatVariable", - "StatVariable": "0x564132fcf890-StatVariable" + "StatVariable": "0x5586249e4890-StatVariable" }, { - "id": "0x564132fcf890-StatVariable", - "Variable": "0x564132fcf890-Variable" + "id": "0x5586249e4890-StatVariable", + "Variable": "0x5586249e4890-Variable" }, { - "id": "0x564132fcf890-Variable", + "id": "0x5586249e4890-Variable", "variantKey": "Designator", - "Designator": "0x564132fdaf70-Designator" + "Designator": "0x5586249eff70-Designator" }, { - "id": "0x564132fdaf70-Designator", + "id": "0x5586249eff70-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fdaf80-DataRef" + "DataRef": "0x5586249eff80-DataRef" }, { - "id": "0x564132fdaf80-DataRef", + "id": "0x5586249eff80-DataRef", "variantKey": "Name", - "Name": "0x564132fdaf80-Name" + "Name": "0x5586249eff80-Name" }, { - "id": "0x564132fdaf80-Name", + "id": "0x5586249eff80-Name", "source": "ios" }, { - "id": "0x564132fcd510-ExecutionPartConstruct", + "id": "0x5586249e2510-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564132fcd510-ExecutableConstruct" + "ExecutableConstruct": "0x5586249e2510-ExecutableConstruct" }, { - "id": "0x564132fcd510-ExecutableConstruct", + "id": "0x5586249e2510-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x564132fcd510-Statement" + "Statement": "0x5586249e2510-Statement" }, { - "id": "0x564132fcd510-Statement", - "statement": "0x564132fcd520-ActionStmt", + "id": "0x5586249e2510-Statement", + "statement": "0x5586249e2520-ActionStmt", "source": "rewind(u_seq)" }, { - "id": "0x564132fcd520-ActionStmt", + "id": "0x5586249e2520-ActionStmt", "variantKey": "RewindStmt", - "RewindStmt": "0x564132fd3d30-RewindStmt" + "RewindStmt": "0x5586249e8d30-RewindStmt" }, { - "id": "0x564132fd3d30-RewindStmt", + "id": "0x5586249e8d30-RewindStmt", "PositionOrFlushSpec": [ - "0x564132fd43a0-PositionOrFlushSpec" + "0x5586249e93a0-PositionOrFlushSpec" ] }, { - "id": "0x564132fd43a0-PositionOrFlushSpec", + "id": "0x5586249e93a0-PositionOrFlushSpec", "variantKey": "FileUnitNumber", - "FileUnitNumber": "0x564132fd43a0-FileUnitNumber" + "FileUnitNumber": "0x5586249e93a0-FileUnitNumber" }, { - "id": "0x564132fd43a0-FileUnitNumber", - "Expr": "0x564132fcf6a0-Expr" + "id": "0x5586249e93a0-FileUnitNumber", + "Expr": "0x5586249e46a0-Expr" }, { - "id": "0x564132fcf6a0-Expr", + "id": "0x5586249e46a0-Expr", "variantKey": "Designator", - "Designator": "0x564132fcc500-Designator" + "Designator": "0x5586249e1500-Designator" }, { - "id": "0x564132fcc500-Designator", + "id": "0x5586249e1500-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fcc510-DataRef" + "DataRef": "0x5586249e1510-DataRef" }, { - "id": "0x564132fcc510-DataRef", + "id": "0x5586249e1510-DataRef", "variantKey": "Name", - "Name": "0x564132fcc510-Name" + "Name": "0x5586249e1510-Name" }, { - "id": "0x564132fcc510-Name", + "id": "0x5586249e1510-Name", "source": "u_seq" }, { - "id": "0x564132fd1160-ExecutionPartConstruct", + "id": "0x5586249e6160-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564132fd1160-ExecutableConstruct" + "ExecutableConstruct": "0x5586249e6160-ExecutableConstruct" }, { - "id": "0x564132fd1160-ExecutableConstruct", + "id": "0x5586249e6160-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x564132fd1160-Statement" + "Statement": "0x5586249e6160-Statement" }, { - "id": "0x564132fd1160-Statement", - "statement": "0x564132fd1170-ActionStmt", + "id": "0x5586249e6160-Statement", + "statement": "0x5586249e6170-ActionStmt", "source": "read(unit = u_seq, fmt = '(A)', advance = 'no', pad = 'yes', size = chars_read, eor = 100, err = 900, iostat = ios) text_buffer" }, { - "id": "0x564132fd1170-ActionStmt", + "id": "0x5586249e6170-ActionStmt", "variantKey": "ReadStmt", - "ReadStmt": "0x564132fd1000-ReadStmt" - }, - { - "id": "0x564132fd1000-ReadStmt" + "ReadStmt": "0x5586249e6000-ReadStmt" + }, + { + "id": "0x5586249e6000-ReadStmt", + "controls": [ + "0x5586249e5df0-IoControlSpec", + "0x5586249e5690-IoControlSpec", + "0x5586249e5790-IoControlSpec", + "0x5586249e5890-IoControlSpec", + "0x5586249e5990-IoControlSpec", + "0x5586249e5a90-IoControlSpec", + "0x5586249e5b90-IoControlSpec", + "0x5586249e5cf0-IoControlSpec" + ], + "items": [ + "0x5586249e9400-InputItem" + ] }, { - "id": "0x564132fd0df0-IoControlSpec", + "id": "0x5586249e5df0-IoControlSpec", "variantKey": "IoUnit", - "IoUnit": "0x564132fd0df0-IoUnit" + "IoUnit": "0x5586249e5df0-IoUnit" }, { - "id": "0x564132fd0df0-IoUnit", + "id": "0x5586249e5df0-IoUnit", "variantKey": "Expr", - "Expr": "0x5641330849f0-Expr" + "Expr": "0x558624a999f0-Expr" }, { - "id": "0x5641330849f0-Expr", + "id": "0x558624a999f0-Expr", "variantKey": "Designator", - "Designator": "0x564132fd02c0-Designator" + "Designator": "0x5586249e52c0-Designator" }, { - "id": "0x564132fd02c0-Designator", + "id": "0x5586249e52c0-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fd02d0-DataRef" + "DataRef": "0x5586249e52d0-DataRef" }, { - "id": "0x564132fd02d0-DataRef", + "id": "0x5586249e52d0-DataRef", "variantKey": "Name", - "Name": "0x564132fd02d0-Name" + "Name": "0x5586249e52d0-Name" }, { - "id": "0x564132fd02d0-Name", + "id": "0x5586249e52d0-Name", "source": "u_seq" }, { - "id": "0x564132fd0690-IoControlSpec", + "id": "0x5586249e5690-IoControlSpec", "variantKey": "Format", - "Format": "0x564132fd0690-Format" + "Format": "0x5586249e5690-Format" }, { - "id": "0x564132fd0690-Format", + "id": "0x5586249e5690-Format", "variantKey": "Expr", - "Expr": "0x564132fd0690-Expr" + "Expr": "0x5586249e5690-Expr" }, { - "id": "0x564132fd0690-Expr", + "id": "0x5586249e5690-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fd06b0-LiteralConstant" + "LiteralConstant": "0x5586249e56b0-LiteralConstant" }, { - "id": "0x564132fd06b0-LiteralConstant", + "id": "0x5586249e56b0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x564132fd06b0-CharLiteralConstant" + "CharLiteralConstant": "0x5586249e56b0-CharLiteralConstant" }, { - "id": "0x564132fd06b0-CharLiteralConstant", + "id": "0x5586249e56b0-CharLiteralConstant", "string": "(A)" }, { - "id": "0x564132fd0790-IoControlSpec", + "id": "0x5586249e5790-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x564132fd0790-CharExpr" + "CharExpr": "0x5586249e5790-CharExpr" }, { - "id": "0x564132fd0790-CharExpr", - "Kind": "0x564132fd0798-Kind", - "Expr": "0x564132fd0010-Expr" + "id": "0x5586249e5790-CharExpr", + "Kind": "0x5586249e5798-Kind", + "Expr": "0x5586249e5010-Expr" }, { - "id": "0x564132fd0798-Kind", + "id": "0x5586249e5798-Kind", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Advance" }, { - "id": "0x564132fd0010-Expr", + "id": "0x5586249e5010-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fd0030-LiteralConstant" + "LiteralConstant": "0x5586249e5030-LiteralConstant" }, { - "id": "0x564132fd0030-LiteralConstant", + "id": "0x5586249e5030-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x564132fd0030-CharLiteralConstant" + "CharLiteralConstant": "0x5586249e5030-CharLiteralConstant" }, { - "id": "0x564132fd0030-CharLiteralConstant", + "id": "0x5586249e5030-CharLiteralConstant", "string": "no" }, { - "id": "0x564132fd0890-IoControlSpec", + "id": "0x5586249e5890-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x564132fd0890-CharExpr" + "CharExpr": "0x5586249e5890-CharExpr" }, { - "id": "0x564132fd0890-CharExpr", - "Kind": "0x564132fd0898-Kind", - "Expr": "0x564132fcfed0-Expr" + "id": "0x5586249e5890-CharExpr", + "Kind": "0x5586249e5898-Kind", + "Expr": "0x5586249e4ed0-Expr" }, { - "id": "0x564132fd0898-Kind", + "id": "0x5586249e5898-Kind", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Pad" }, { - "id": "0x564132fcfed0-Expr", + "id": "0x5586249e4ed0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fcfef0-LiteralConstant" + "LiteralConstant": "0x5586249e4ef0-LiteralConstant" }, { - "id": "0x564132fcfef0-LiteralConstant", + "id": "0x5586249e4ef0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x564132fcfef0-CharLiteralConstant" + "CharLiteralConstant": "0x5586249e4ef0-CharLiteralConstant" }, { - "id": "0x564132fcfef0-CharLiteralConstant", + "id": "0x5586249e4ef0-CharLiteralConstant", "string": "yes" }, { - "id": "0x564132fd0990-IoControlSpec", + "id": "0x5586249e5990-IoControlSpec", "variantKey": "Size", - "Size": "0x564132fd0990-Size" + "Size": "0x5586249e5990-Size" }, { - "id": "0x564132fd0990-Size", - "Variable": "0x564132fd0990-Variable" + "id": "0x5586249e5990-Size", + "Variable": "0x5586249e5990-Variable" }, { - "id": "0x564132fd0990-Variable", + "id": "0x5586249e5990-Variable", "variantKey": "Designator", - "Designator": "0x564132fd0620-Designator" + "Designator": "0x5586249e5620-Designator" }, { - "id": "0x564132fd0620-Designator", + "id": "0x5586249e5620-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fd0630-DataRef" + "DataRef": "0x5586249e5630-DataRef" }, { - "id": "0x564132fd0630-DataRef", + "id": "0x5586249e5630-DataRef", "variantKey": "Name", - "Name": "0x564132fd0630-Name" + "Name": "0x5586249e5630-Name" }, { - "id": "0x564132fd0630-Name", + "id": "0x5586249e5630-Name", "source": "chars_read" }, { - "id": "0x564132fd0a90-IoControlSpec", + "id": "0x5586249e5a90-IoControlSpec", "variantKey": "EorLabel", - "EorLabel": "0x564132fd0a90-EorLabel" + "EorLabel": "0x5586249e5a90-EorLabel" }, { - "id": "0x564132fd0a90-EorLabel", + "id": "0x5586249e5a90-EorLabel", "uint64_t": "100" }, { - "id": "0x564132fd0b90-IoControlSpec", + "id": "0x5586249e5b90-IoControlSpec", "variantKey": "ErrLabel", - "ErrLabel": "0x564132fd0b90-ErrLabel" + "ErrLabel": "0x5586249e5b90-ErrLabel" }, { - "id": "0x564132fd0b90-ErrLabel", + "id": "0x5586249e5b90-ErrLabel", "uint64_t": "900" }, { - "id": "0x564132fd0cf0-IoControlSpec", + "id": "0x5586249e5cf0-IoControlSpec", "variantKey": "StatVariable", - "StatVariable": "0x564132fd0cf0-StatVariable" + "StatVariable": "0x5586249e5cf0-StatVariable" }, { - "id": "0x564132fd0cf0-StatVariable", - "Variable": "0x564132fd0cf0-Variable" + "id": "0x5586249e5cf0-StatVariable", + "Variable": "0x5586249e5cf0-Variable" }, { - "id": "0x564132fd0cf0-Variable", + "id": "0x5586249e5cf0-Variable", "variantKey": "Designator", - "Designator": "0x564132fd0c80-Designator" + "Designator": "0x5586249e5c80-Designator" }, { - "id": "0x564132fd0c80-Designator", + "id": "0x5586249e5c80-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fd0c90-DataRef" + "DataRef": "0x5586249e5c90-DataRef" }, { - "id": "0x564132fd0c90-DataRef", + "id": "0x5586249e5c90-DataRef", "variantKey": "Name", - "Name": "0x564132fd0c90-Name" + "Name": "0x5586249e5c90-Name" }, { - "id": "0x564132fd0c90-Name", + "id": "0x5586249e5c90-Name", "source": "ios" }, { - "id": "0x564132fd4400-InputItem", + "id": "0x5586249e9400-InputItem", "variantKey": "Variable", - "Variable": "0x564132fd4400-Variable" + "Variable": "0x5586249e9400-Variable" }, { - "id": "0x564132fd4400-Variable", + "id": "0x5586249e9400-Variable", "variantKey": "Designator", - "Designator": "0x564132fd0fa0-Designator" + "Designator": "0x5586249e5fa0-Designator" }, { - "id": "0x564132fd0fa0-Designator", + "id": "0x5586249e5fa0-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fd0fb0-DataRef" + "DataRef": "0x5586249e5fb0-DataRef" }, { - "id": "0x564132fd0fb0-DataRef", + "id": "0x5586249e5fb0-DataRef", "variantKey": "Name", - "Name": "0x564132fd0fb0-Name" + "Name": "0x5586249e5fb0-Name" }, { - "id": "0x564132fd0fb0-Name", + "id": "0x5586249e5fb0-Name", "source": "text_buffer" }, { - "id": "0x564132fd0210-ExecutionPartConstruct", + "id": "0x5586249e5210-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564132fd0210-ExecutableConstruct" + "ExecutableConstruct": "0x5586249e5210-ExecutableConstruct" }, { - "id": "0x564132fd0210-ExecutableConstruct", + "id": "0x5586249e5210-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x564132fd0210-Statement" + "Statement": "0x5586249e5210-Statement" }, { - "id": "0x564132fd0210-Statement", - "statement": "0x564132fd0220-ActionStmt", + "id": "0x5586249e5210-Statement", + "statement": "0x5586249e5220-ActionStmt", "label": "100", "source": "100 continue" }, { - "id": "0x564132fd0220-ActionStmt", + "id": "0x5586249e5220-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x564132fd0220-ContinueStmt" + "ContinueStmt": "0x5586249e5220-ContinueStmt" }, { - "id": "0x564132fd0220-ContinueStmt" + "id": "0x5586249e5220-ContinueStmt" }, { - "id": "0x564132fd1850-ExecutionPartConstruct", + "id": "0x5586249e6850-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564132fd1850-ExecutableConstruct" + "ExecutableConstruct": "0x5586249e6850-ExecutableConstruct" }, { - "id": "0x564132fd1850-ExecutableConstruct", + "id": "0x5586249e6850-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x564132fd1850-Statement" + "Statement": "0x5586249e6850-Statement" }, { - "id": "0x564132fd1850-Statement", - "statement": "0x564132fd1860-ActionStmt", + "id": "0x5586249e6850-Statement", + "statement": "0x5586249e6860-ActionStmt", "source": "write(unit = u_dir, rec = 1, iostat = ios) val, x" }, { - "id": "0x564132fd1860-ActionStmt", + "id": "0x5586249e6860-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x564132fd16f0-WriteStmt" - }, - { - "id": "0x564132fd16f0-WriteStmt" + "WriteStmt": "0x5586249e66f0-WriteStmt" + }, + { + "id": "0x5586249e66f0-WriteStmt", + "controls": [ + "0x5586249e63c0-IoControlSpec", + "0x5586249e61c0-IoControlSpec", + "0x5586249e62c0-IoControlSpec" + ], + "items": [ + "0x5586249e6610-OutputItem", + "0x5586249e6520-OutputItem" + ] }, { - "id": "0x564132fd13c0-IoControlSpec", + "id": "0x5586249e63c0-IoControlSpec", "variantKey": "IoUnit", - "IoUnit": "0x564132fd13c0-IoUnit" + "IoUnit": "0x5586249e63c0-IoUnit" }, { - "id": "0x564132fd13c0-IoUnit", + "id": "0x5586249e63c0-IoUnit", "variantKey": "Expr", - "Expr": "0x564132fe05c0-Expr" + "Expr": "0x5586249f55c0-Expr" }, { - "id": "0x564132fe05c0-Expr", + "id": "0x5586249f55c0-Expr", "variantKey": "Designator", - "Designator": "0x564132fcd5d0-Designator" + "Designator": "0x5586249e25d0-Designator" }, { - "id": "0x564132fcd5d0-Designator", + "id": "0x5586249e25d0-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fcd5e0-DataRef" + "DataRef": "0x5586249e25e0-DataRef" }, { - "id": "0x564132fcd5e0-DataRef", + "id": "0x5586249e25e0-DataRef", "variantKey": "Name", - "Name": "0x564132fcd5e0-Name" + "Name": "0x5586249e25e0-Name" }, { - "id": "0x564132fcd5e0-Name", + "id": "0x5586249e25e0-Name", "source": "u_dir" }, { - "id": "0x564132fd11c0-IoControlSpec", + "id": "0x5586249e61c0-IoControlSpec", "variantKey": "Rec", - "Rec": "0x564132fd11c0-Rec" + "Rec": "0x5586249e61c0-Rec" }, { - "id": "0x564132fd11c0-Rec", - "Expr": "0x564132fcfbd0-Expr" + "id": "0x5586249e61c0-Rec", + "Expr": "0x5586249e4bd0-Expr" }, { - "id": "0x564132fcfbd0-Expr", + "id": "0x5586249e4bd0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fcfbf0-LiteralConstant" + "LiteralConstant": "0x5586249e4bf0-LiteralConstant" }, { - "id": "0x564132fcfbf0-LiteralConstant", + "id": "0x5586249e4bf0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564132fcfbf0-IntLiteralConstant" + "IntLiteralConstant": "0x5586249e4bf0-IntLiteralConstant" }, { - "id": "0x564132fcfbf0-IntLiteralConstant", + "id": "0x5586249e4bf0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x564132fd12c0-IoControlSpec", + "id": "0x5586249e62c0-IoControlSpec", "variantKey": "StatVariable", - "StatVariable": "0x564132fd12c0-StatVariable" + "StatVariable": "0x5586249e62c0-StatVariable" }, { - "id": "0x564132fd12c0-StatVariable", - "Variable": "0x564132fd12c0-Variable" + "id": "0x5586249e62c0-StatVariable", + "Variable": "0x5586249e62c0-Variable" }, { - "id": "0x564132fd12c0-Variable", + "id": "0x5586249e62c0-Variable", "variantKey": "Designator", - "Designator": "0x564132fcd860-Designator" + "Designator": "0x5586249e2860-Designator" }, { - "id": "0x564132fcd860-Designator", + "id": "0x5586249e2860-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fcd870-DataRef" + "DataRef": "0x5586249e2870-DataRef" }, { - "id": "0x564132fcd870-DataRef", + "id": "0x5586249e2870-DataRef", "variantKey": "Name", - "Name": "0x564132fcd870-Name" + "Name": "0x5586249e2870-Name" }, { - "id": "0x564132fcd870-Name", + "id": "0x5586249e2870-Name", "source": "ios" }, { - "id": "0x564132fd1610-OutputItem", + "id": "0x5586249e6610-OutputItem", "variantKey": "Expr", - "Expr": "0x564132fd1610-Expr" + "Expr": "0x5586249e6610-Expr" }, { - "id": "0x564132fd1610-Expr", + "id": "0x5586249e6610-Expr", "variantKey": "Designator", - "Designator": "0x564132fca8d0-Designator" + "Designator": "0x5586249df8d0-Designator" }, { - "id": "0x564132fca8d0-Designator", + "id": "0x5586249df8d0-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fca8e0-DataRef" + "DataRef": "0x5586249df8e0-DataRef" }, { - "id": "0x564132fca8e0-DataRef", + "id": "0x5586249df8e0-DataRef", "variantKey": "Name", - "Name": "0x564132fca8e0-Name" + "Name": "0x5586249df8e0-Name" }, { - "id": "0x564132fca8e0-Name", + "id": "0x5586249df8e0-Name", "source": "val" }, { - "id": "0x564132fd1520-OutputItem", + "id": "0x5586249e6520-OutputItem", "variantKey": "Expr", - "Expr": "0x564132fd1520-Expr" + "Expr": "0x5586249e6520-Expr" }, { - "id": "0x564132fd1520-Expr", + "id": "0x5586249e6520-Expr", "variantKey": "Designator", - "Designator": "0x564132fd14b0-Designator" + "Designator": "0x5586249e64b0-Designator" }, { - "id": "0x564132fd14b0-Designator", + "id": "0x5586249e64b0-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fd14c0-DataRef" + "DataRef": "0x5586249e64c0-DataRef" }, { - "id": "0x564132fd14c0-DataRef", + "id": "0x5586249e64c0-DataRef", "variantKey": "Name", - "Name": "0x564132fd14c0-Name" + "Name": "0x5586249e64c0-Name" }, { - "id": "0x564132fd14c0-Name", + "id": "0x5586249e64c0-Name", "source": "x" }, { - "id": "0x564132fd0270-ExecutionPartConstruct", + "id": "0x5586249e5270-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564132fd0270-ExecutableConstruct" + "ExecutableConstruct": "0x5586249e5270-ExecutableConstruct" }, { - "id": "0x564132fd0270-ExecutableConstruct", + "id": "0x5586249e5270-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x564132fd0270-Statement" + "Statement": "0x5586249e5270-Statement" }, { - "id": "0x564132fd0270-Statement", - "statement": "0x564132fd0280-ActionStmt", + "id": "0x5586249e5270-Statement", + "statement": "0x5586249e5280-ActionStmt", "source": "write(unit = u_stream, pos = 10, iostat = ios) \"Stream Header\"" }, { - "id": "0x564132fd0280-ActionStmt", + "id": "0x5586249e5280-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x564132fd1c90-WriteStmt" + "WriteStmt": "0x5586249e6c90-WriteStmt" }, { - "id": "0x564132fd1c90-WriteStmt" + "id": "0x5586249e6c90-WriteStmt", + "controls": [ + "0x5586249e6ab0-IoControlSpec", + "0x5586249e68b0-IoControlSpec", + "0x5586249e69b0-IoControlSpec" + ], + "items": [ + "0x5586249e6bb0-OutputItem" + ] }, { - "id": "0x564132fd1ab0-IoControlSpec", + "id": "0x5586249e6ab0-IoControlSpec", "variantKey": "IoUnit", - "IoUnit": "0x564132fd1ab0-IoUnit" + "IoUnit": "0x5586249e6ab0-IoUnit" }, { - "id": "0x564132fd1ab0-IoUnit", + "id": "0x5586249e6ab0-IoUnit", "variantKey": "Expr", - "Expr": "0x564132fe04e0-Expr" + "Expr": "0x5586249f54e0-Expr" }, { - "id": "0x564132fe04e0-Expr", + "id": "0x5586249f54e0-Expr", "variantKey": "Designator", - "Designator": "0x564132fd0ee0-Designator" + "Designator": "0x5586249e5ee0-Designator" }, { - "id": "0x564132fd0ee0-Designator", + "id": "0x5586249e5ee0-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fd0ef0-DataRef" + "DataRef": "0x5586249e5ef0-DataRef" }, { - "id": "0x564132fd0ef0-DataRef", + "id": "0x5586249e5ef0-DataRef", "variantKey": "Name", - "Name": "0x564132fd0ef0-Name" + "Name": "0x5586249e5ef0-Name" }, { - "id": "0x564132fd0ef0-Name", + "id": "0x5586249e5ef0-Name", "source": "u_stream" }, { - "id": "0x564132fd18b0-IoControlSpec", + "id": "0x5586249e68b0-IoControlSpec", "variantKey": "Pos", - "Pos": "0x564132fd18b0-Pos" + "Pos": "0x5586249e68b0-Pos" }, { - "id": "0x564132fd18b0-Pos", - "Expr": "0x564132fcf4e0-Expr" + "id": "0x5586249e68b0-Pos", + "Expr": "0x5586249e44e0-Expr" }, { - "id": "0x564132fcf4e0-Expr", + "id": "0x5586249e44e0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fcf500-LiteralConstant" + "LiteralConstant": "0x5586249e4500-LiteralConstant" }, { - "id": "0x564132fcf500-LiteralConstant", + "id": "0x5586249e4500-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564132fcf500-IntLiteralConstant" + "IntLiteralConstant": "0x5586249e4500-IntLiteralConstant" }, { - "id": "0x564132fcf500-IntLiteralConstant", + "id": "0x5586249e4500-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x564132fd19b0-IoControlSpec", + "id": "0x5586249e69b0-IoControlSpec", "variantKey": "StatVariable", - "StatVariable": "0x564132fd19b0-StatVariable" + "StatVariable": "0x5586249e69b0-StatVariable" }, { - "id": "0x564132fd19b0-StatVariable", - "Variable": "0x564132fd19b0-Variable" + "id": "0x5586249e69b0-StatVariable", + "Variable": "0x5586249e69b0-Variable" }, { - "id": "0x564132fd19b0-Variable", + "id": "0x5586249e69b0-Variable", "variantKey": "Designator", - "Designator": "0x564132fc9ec0-Designator" + "Designator": "0x5586249deec0-Designator" }, { - "id": "0x564132fc9ec0-Designator", + "id": "0x5586249deec0-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fc9ed0-DataRef" + "DataRef": "0x5586249deed0-DataRef" }, { - "id": "0x564132fc9ed0-DataRef", + "id": "0x5586249deed0-DataRef", "variantKey": "Name", - "Name": "0x564132fc9ed0-Name" + "Name": "0x5586249deed0-Name" }, { - "id": "0x564132fc9ed0-Name", + "id": "0x5586249deed0-Name", "source": "ios" }, { - "id": "0x564132fd1bb0-OutputItem", + "id": "0x5586249e6bb0-OutputItem", "variantKey": "Expr", - "Expr": "0x564132fd1bb0-Expr" + "Expr": "0x5586249e6bb0-Expr" }, { - "id": "0x564132fd1bb0-Expr", + "id": "0x5586249e6bb0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fd1bd0-LiteralConstant" + "LiteralConstant": "0x5586249e6bd0-LiteralConstant" }, { - "id": "0x564132fd1bd0-LiteralConstant", + "id": "0x5586249e6bd0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x564132fd1bd0-CharLiteralConstant" + "CharLiteralConstant": "0x5586249e6bd0-CharLiteralConstant" }, { - "id": "0x564132fd1bd0-CharLiteralConstant", + "id": "0x5586249e6bd0-CharLiteralConstant", "string": "Stream Header" }, { - "id": "0x564132fd29f0-ExecutionPartConstruct", + "id": "0x5586249e79f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564132fd29f0-ExecutableConstruct" + "ExecutableConstruct": "0x5586249e79f0-ExecutableConstruct" }, { - "id": "0x564132fd29f0-ExecutableConstruct", + "id": "0x5586249e79f0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x564132fd29f0-Statement" + "Statement": "0x5586249e79f0-Statement" }, { - "id": "0x564132fd29f0-Statement", - "statement": "0x564132fd2a00-ActionStmt", + "id": "0x5586249e79f0-Statement", + "statement": "0x5586249e7a00-ActionStmt", "source": "write(unit = u_seq, fmt = '(I5)', asynchronous = 'yes', id = async_id, iostat = ios) val" }, { - "id": "0x564132fd2a00-ActionStmt", + "id": "0x5586249e7a00-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x564132fd2890-WriteStmt" - }, - { - "id": "0x564132fd2890-WriteStmt" + "WriteStmt": "0x5586249e7890-WriteStmt" + }, + { + "id": "0x5586249e7890-WriteStmt", + "controls": [ + "0x5586249e7590-IoControlSpec", + "0x5586249e7130-IoControlSpec", + "0x5586249e7230-IoControlSpec", + "0x5586249e7330-IoControlSpec", + "0x5586249e7490-IoControlSpec" + ], + "items": [ + "0x5586249e77b0-OutputItem" + ] }, { - "id": "0x564132fd2590-IoControlSpec", + "id": "0x5586249e7590-IoControlSpec", "variantKey": "IoUnit", - "IoUnit": "0x564132fd2590-IoUnit" + "IoUnit": "0x5586249e7590-IoUnit" }, { - "id": "0x564132fd2590-IoUnit", + "id": "0x5586249e7590-IoUnit", "variantKey": "Expr", - "Expr": "0x564133084bb0-Expr" + "Expr": "0x558624a99bb0-Expr" }, { - "id": "0x564133084bb0-Expr", + "id": "0x558624a99bb0-Expr", "variantKey": "Designator", - "Designator": "0x564132fd1f80-Designator" + "Designator": "0x5586249e6f80-Designator" }, { - "id": "0x564132fd1f80-Designator", + "id": "0x5586249e6f80-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fd1f90-DataRef" + "DataRef": "0x5586249e6f90-DataRef" }, { - "id": "0x564132fd1f90-DataRef", + "id": "0x5586249e6f90-DataRef", "variantKey": "Name", - "Name": "0x564132fd1f90-Name" + "Name": "0x5586249e6f90-Name" }, { - "id": "0x564132fd1f90-Name", + "id": "0x5586249e6f90-Name", "source": "u_seq" }, { - "id": "0x564132fd2130-IoControlSpec", + "id": "0x5586249e7130-IoControlSpec", "variantKey": "Format", - "Format": "0x564132fd2130-Format" + "Format": "0x5586249e7130-Format" }, { - "id": "0x564132fd2130-Format", + "id": "0x5586249e7130-Format", "variantKey": "Expr", - "Expr": "0x564132fd2130-Expr" + "Expr": "0x5586249e7130-Expr" }, { - "id": "0x564132fd2130-Expr", + "id": "0x5586249e7130-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fd2150-LiteralConstant" + "LiteralConstant": "0x5586249e7150-LiteralConstant" }, { - "id": "0x564132fd2150-LiteralConstant", + "id": "0x5586249e7150-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x564132fd2150-CharLiteralConstant" + "CharLiteralConstant": "0x5586249e7150-CharLiteralConstant" }, { - "id": "0x564132fd2150-CharLiteralConstant", + "id": "0x5586249e7150-CharLiteralConstant", "string": "(I5)" }, { - "id": "0x564132fd2230-IoControlSpec", + "id": "0x5586249e7230-IoControlSpec", "variantKey": "Asynchronous", - "Asynchronous": "0x564132fd2230-Asynchronous" + "Asynchronous": "0x5586249e7230-Asynchronous" }, { - "id": "0x564132fd2230-Asynchronous", - "Expr": "0x564132fd1fe0-Expr" + "id": "0x5586249e7230-Asynchronous", + "Expr": "0x5586249e6fe0-Expr" }, { - "id": "0x564132fd1fe0-Expr", + "id": "0x5586249e6fe0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fd2000-LiteralConstant" + "LiteralConstant": "0x5586249e7000-LiteralConstant" }, { - "id": "0x564132fd2000-LiteralConstant", + "id": "0x5586249e7000-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x564132fd2000-CharLiteralConstant" + "CharLiteralConstant": "0x5586249e7000-CharLiteralConstant" }, { - "id": "0x564132fd2000-CharLiteralConstant", + "id": "0x5586249e7000-CharLiteralConstant", "string": "yes" }, { - "id": "0x564132fd2330-IoControlSpec", + "id": "0x5586249e7330-IoControlSpec", "variantKey": "IdVariable", - "IdVariable": "0x564132fd2330-IdVariable" + "IdVariable": "0x5586249e7330-IdVariable" }, { - "id": "0x564132fd2330-IdVariable", - "Variable": "0x564132fd2330-Variable" + "id": "0x5586249e7330-IdVariable", + "Variable": "0x5586249e7330-Variable" }, { - "id": "0x564132fd2330-Variable", + "id": "0x5586249e7330-Variable", "variantKey": "Designator", - "Designator": "0x564132fd20c0-Designator" + "Designator": "0x5586249e70c0-Designator" }, { - "id": "0x564132fd20c0-Designator", + "id": "0x5586249e70c0-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fd20d0-DataRef" + "DataRef": "0x5586249e70d0-DataRef" }, { - "id": "0x564132fd20d0-DataRef", + "id": "0x5586249e70d0-DataRef", "variantKey": "Name", - "Name": "0x564132fd20d0-Name" + "Name": "0x5586249e70d0-Name" }, { - "id": "0x564132fd20d0-Name", + "id": "0x5586249e70d0-Name", "source": "async_id" }, { - "id": "0x564132fd2490-IoControlSpec", + "id": "0x5586249e7490-IoControlSpec", "variantKey": "StatVariable", - "StatVariable": "0x564132fd2490-StatVariable" + "StatVariable": "0x5586249e7490-StatVariable" }, { - "id": "0x564132fd2490-StatVariable", - "Variable": "0x564132fd2490-Variable" + "id": "0x5586249e7490-StatVariable", + "Variable": "0x5586249e7490-Variable" }, { - "id": "0x564132fd2490-Variable", + "id": "0x5586249e7490-Variable", "variantKey": "Designator", - "Designator": "0x564132fd2420-Designator" + "Designator": "0x5586249e7420-Designator" }, { - "id": "0x564132fd2420-Designator", + "id": "0x5586249e7420-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fd2430-DataRef" + "DataRef": "0x5586249e7430-DataRef" }, { - "id": "0x564132fd2430-DataRef", + "id": "0x5586249e7430-DataRef", "variantKey": "Name", - "Name": "0x564132fd2430-Name" + "Name": "0x5586249e7430-Name" }, { - "id": "0x564132fd2430-Name", + "id": "0x5586249e7430-Name", "source": "ios" }, { - "id": "0x564132fd27b0-OutputItem", + "id": "0x5586249e77b0-OutputItem", "variantKey": "Expr", - "Expr": "0x564132fd27b0-Expr" + "Expr": "0x5586249e77b0-Expr" }, { - "id": "0x564132fd27b0-Expr", + "id": "0x5586249e77b0-Expr", "variantKey": "Designator", - "Designator": "0x564132fd2740-Designator" + "Designator": "0x5586249e7740-Designator" }, { - "id": "0x564132fd2740-Designator", + "id": "0x5586249e7740-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fd2750-DataRef" + "DataRef": "0x5586249e7750-DataRef" }, { - "id": "0x564132fd2750-DataRef", + "id": "0x5586249e7750-DataRef", "variantKey": "Name", - "Name": "0x564132fd2750-Name" + "Name": "0x5586249e7750-Name" }, { - "id": "0x564132fd2750-Name", + "id": "0x5586249e7750-Name", "source": "val" }, { - "id": "0x564132fd0f50-ExecutionPartConstruct", + "id": "0x5586249e5f50-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564132fd0f50-ExecutableConstruct" + "ExecutableConstruct": "0x5586249e5f50-ExecutableConstruct" }, { - "id": "0x564132fd0f50-ExecutableConstruct", + "id": "0x5586249e5f50-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x564132fd0f50-Statement" + "Statement": "0x5586249e5f50-Statement" }, { - "id": "0x564132fd0f50-Statement", - "statement": "0x564132fd0f60-ActionStmt", + "id": "0x5586249e5f50-Statement", + "statement": "0x5586249e5f60-ActionStmt", "source": "wait(unit=u_seq, id=async_id)" }, { - "id": "0x564132fd0f60-ActionStmt", + "id": "0x5586249e5f60-ActionStmt", "variantKey": "WaitStmt", - "WaitStmt": "0x564132fd4330-WaitStmt" + "WaitStmt": "0x5586249e9330-WaitStmt" }, { - "id": "0x564132fd4330-WaitStmt", + "id": "0x5586249e9330-WaitStmt", "WaitSpec": [ - "0x564132fd3fa0-WaitSpec", - "0x564132fd41d0-WaitSpec" + "0x5586249e8fa0-WaitSpec", + "0x5586249e91d0-WaitSpec" ] }, { - "id": "0x564132fd3fa0-WaitSpec", + "id": "0x5586249e8fa0-WaitSpec", "variantKey": "FileUnitNumber", - "FileUnitNumber": "0x564132fd3fa0-FileUnitNumber" + "FileUnitNumber": "0x5586249e8fa0-FileUnitNumber" }, { - "id": "0x564132fd3fa0-FileUnitNumber", - "Expr": "0x564132fcf5c0-Expr" + "id": "0x5586249e8fa0-FileUnitNumber", + "Expr": "0x5586249e45c0-Expr" }, { - "id": "0x564132fcf5c0-Expr", + "id": "0x5586249e45c0-Expr", "variantKey": "Designator", - "Designator": "0x564132fcc0c0-Designator" + "Designator": "0x5586249e10c0-Designator" }, { - "id": "0x564132fcc0c0-Designator", + "id": "0x5586249e10c0-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fcc0d0-DataRef" + "DataRef": "0x5586249e10d0-DataRef" }, { - "id": "0x564132fcc0d0-DataRef", + "id": "0x5586249e10d0-DataRef", "variantKey": "Name", - "Name": "0x564132fcc0d0-Name" + "Name": "0x5586249e10d0-Name" }, { - "id": "0x564132fcc0d0-Name", + "id": "0x5586249e10d0-Name", "source": "u_seq" }, { - "id": "0x564132fd41d0-WaitSpec", + "id": "0x5586249e91d0-WaitSpec", "variantKey": "IdExpr", - "IdExpr": "0x564132fd41d0-IdExpr" + "IdExpr": "0x5586249e91d0-IdExpr" }, { - "id": "0x564132fd41d0-IdExpr", - "Expr": "0x564132fd1de0-Expr" + "id": "0x5586249e91d0-IdExpr", + "Expr": "0x5586249e6de0-Expr" }, { - "id": "0x564132fd1de0-Expr", + "id": "0x5586249e6de0-Expr", "variantKey": "Designator", - "Designator": "0x564132fccc40-Designator" + "Designator": "0x5586249e1c40-Designator" }, { - "id": "0x564132fccc40-Designator", + "id": "0x5586249e1c40-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fccc50-DataRef" + "DataRef": "0x5586249e1c50-DataRef" }, { - "id": "0x564132fccc50-DataRef", + "id": "0x5586249e1c50-DataRef", "variantKey": "Name", - "Name": "0x564132fccc50-Name" + "Name": "0x5586249e1c50-Name" }, { - "id": "0x564132fccc50-Name", + "id": "0x5586249e1c50-Name", "source": "async_id" }, { - "id": "0x564132fe38d0-ExecutionPartConstruct", + "id": "0x5586249f88d0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564132fe38d0-ExecutableConstruct" + "ExecutableConstruct": "0x5586249f88d0-ExecutableConstruct" }, { - "id": "0x564132fe38d0-ExecutableConstruct", + "id": "0x5586249f88d0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x564132fe38d0-Statement" + "Statement": "0x5586249f88d0-Statement" }, { - "id": "0x564132fe38d0-Statement", - "statement": "0x564132fe38e0-ActionStmt", + "id": "0x5586249f88d0-Statement", + "statement": "0x5586249f88e0-ActionStmt", "source": "read(unit = u_seq, fmt = '(I5)', blank = 'zero', end = 200, err = 900, iostat = ios) val" }, { - "id": "0x564132fe38e0-ActionStmt", + "id": "0x5586249f88e0-ActionStmt", "variantKey": "ReadStmt", - "ReadStmt": "0x564132fe3770-ReadStmt" - }, - { - "id": "0x564132fe3770-ReadStmt" + "ReadStmt": "0x5586249f8770-ReadStmt" + }, + { + "id": "0x5586249f8770-ReadStmt", + "controls": [ + "0x5586249e5330-IoControlSpec", + "0x5586249e7ef0-IoControlSpec", + "0x5586249e7ff0-IoControlSpec", + "0x5586249e80f0-IoControlSpec", + "0x5586249e81f0-IoControlSpec", + "0x5586249e82f0-IoControlSpec" + ], + "items": [ + "0x5586249e8fe0-InputItem" + ] }, { - "id": "0x564132fd0330-IoControlSpec", + "id": "0x5586249e5330-IoControlSpec", "variantKey": "IoUnit", - "IoUnit": "0x564132fd0330-IoUnit" + "IoUnit": "0x5586249e5330-IoUnit" }, { - "id": "0x564132fd0330-IoUnit", + "id": "0x5586249e5330-IoUnit", "variantKey": "Expr", - "Expr": "0x564133084c90-Expr" + "Expr": "0x558624a99c90-Expr" }, { - "id": "0x564133084c90-Expr", + "id": "0x558624a99c90-Expr", "variantKey": "Designator", - "Designator": "0x564132fd2ce0-Designator" + "Designator": "0x5586249e7ce0-Designator" }, { - "id": "0x564132fd2ce0-Designator", + "id": "0x5586249e7ce0-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fd2cf0-DataRef" + "DataRef": "0x5586249e7cf0-DataRef" }, { - "id": "0x564132fd2cf0-DataRef", + "id": "0x5586249e7cf0-DataRef", "variantKey": "Name", - "Name": "0x564132fd2cf0-Name" + "Name": "0x5586249e7cf0-Name" }, { - "id": "0x564132fd2cf0-Name", + "id": "0x5586249e7cf0-Name", "source": "u_seq" }, { - "id": "0x564132fd2ef0-IoControlSpec", + "id": "0x5586249e7ef0-IoControlSpec", "variantKey": "Format", - "Format": "0x564132fd2ef0-Format" + "Format": "0x5586249e7ef0-Format" }, { - "id": "0x564132fd2ef0-Format", + "id": "0x5586249e7ef0-Format", "variantKey": "Expr", - "Expr": "0x564132fd2ef0-Expr" + "Expr": "0x5586249e7ef0-Expr" }, { - "id": "0x564132fd2ef0-Expr", + "id": "0x5586249e7ef0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fd2f10-LiteralConstant" + "LiteralConstant": "0x5586249e7f10-LiteralConstant" }, { - "id": "0x564132fd2f10-LiteralConstant", + "id": "0x5586249e7f10-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x564132fd2f10-CharLiteralConstant" + "CharLiteralConstant": "0x5586249e7f10-CharLiteralConstant" }, { - "id": "0x564132fd2f10-CharLiteralConstant", + "id": "0x5586249e7f10-CharLiteralConstant", "string": "(I5)" }, { - "id": "0x564132fd2ff0-IoControlSpec", + "id": "0x5586249e7ff0-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x564132fd2ff0-CharExpr" + "CharExpr": "0x5586249e7ff0-CharExpr" }, { - "id": "0x564132fd2ff0-CharExpr", - "Kind": "0x564132fd2ff8-Kind", - "Expr": "0x564132fd2d40-Expr" + "id": "0x5586249e7ff0-CharExpr", + "Kind": "0x5586249e7ff8-Kind", + "Expr": "0x5586249e7d40-Expr" }, { - "id": "0x564132fd2ff8-Kind", + "id": "0x5586249e7ff8-Kind", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Blank" }, { - "id": "0x564132fd2d40-Expr", + "id": "0x5586249e7d40-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fd2d60-LiteralConstant" + "LiteralConstant": "0x5586249e7d60-LiteralConstant" }, { - "id": "0x564132fd2d60-LiteralConstant", + "id": "0x5586249e7d60-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x564132fd2d60-CharLiteralConstant" + "CharLiteralConstant": "0x5586249e7d60-CharLiteralConstant" }, { - "id": "0x564132fd2d60-CharLiteralConstant", + "id": "0x5586249e7d60-CharLiteralConstant", "string": "zero" }, { - "id": "0x564132fd30f0-IoControlSpec", + "id": "0x5586249e80f0-IoControlSpec", "variantKey": "EndLabel", - "EndLabel": "0x564132fd30f0-EndLabel" + "EndLabel": "0x5586249e80f0-EndLabel" }, { - "id": "0x564132fd30f0-EndLabel", + "id": "0x5586249e80f0-EndLabel", "uint64_t": "200" }, { - "id": "0x564132fd31f0-IoControlSpec", + "id": "0x5586249e81f0-IoControlSpec", "variantKey": "ErrLabel", - "ErrLabel": "0x564132fd31f0-ErrLabel" + "ErrLabel": "0x5586249e81f0-ErrLabel" }, { - "id": "0x564132fd31f0-ErrLabel", + "id": "0x5586249e81f0-ErrLabel", "uint64_t": "900" }, { - "id": "0x564132fd32f0-IoControlSpec", + "id": "0x5586249e82f0-IoControlSpec", "variantKey": "StatVariable", - "StatVariable": "0x564132fd32f0-StatVariable" + "StatVariable": "0x5586249e82f0-StatVariable" }, { - "id": "0x564132fd32f0-StatVariable", - "Variable": "0x564132fd32f0-Variable" + "id": "0x5586249e82f0-StatVariable", + "Variable": "0x5586249e82f0-Variable" }, { - "id": "0x564132fd32f0-Variable", + "id": "0x5586249e82f0-Variable", "variantKey": "Designator", - "Designator": "0x564132fd2e80-Designator" + "Designator": "0x5586249e7e80-Designator" }, { - "id": "0x564132fd2e80-Designator", + "id": "0x5586249e7e80-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fd2e90-DataRef" + "DataRef": "0x5586249e7e90-DataRef" }, { - "id": "0x564132fd2e90-DataRef", + "id": "0x5586249e7e90-DataRef", "variantKey": "Name", - "Name": "0x564132fd2e90-Name" + "Name": "0x5586249e7e90-Name" }, { - "id": "0x564132fd2e90-Name", + "id": "0x5586249e7e90-Name", "source": "ios" }, { - "id": "0x564132fd3fe0-InputItem", + "id": "0x5586249e8fe0-InputItem", "variantKey": "Variable", - "Variable": "0x564132fd3fe0-Variable" + "Variable": "0x5586249e8fe0-Variable" }, { - "id": "0x564132fd3fe0-Variable", + "id": "0x5586249e8fe0-Variable", "variantKey": "Designator", - "Designator": "0x564132fca7d0-Designator" + "Designator": "0x5586249df7d0-Designator" }, { - "id": "0x564132fca7d0-Designator", + "id": "0x5586249df7d0-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fca7e0-DataRef" + "DataRef": "0x5586249df7e0-DataRef" }, { - "id": "0x564132fca7e0-DataRef", + "id": "0x5586249df7e0-DataRef", "variantKey": "Name", - "Name": "0x564132fca7e0-Name" + "Name": "0x5586249df7e0-Name" }, { - "id": "0x564132fca7e0-Name", + "id": "0x5586249df7e0-Name", "source": "val" }, { - "id": "0x564132fcd4b0-ExecutionPartConstruct", + "id": "0x5586249e24b0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564132fcd4b0-ExecutableConstruct" + "ExecutableConstruct": "0x5586249e24b0-ExecutableConstruct" }, { - "id": "0x564132fcd4b0-ExecutableConstruct", + "id": "0x5586249e24b0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x564132fcd4b0-Statement" + "Statement": "0x5586249e24b0-Statement" }, { - "id": "0x564132fcd4b0-Statement", - "statement": "0x564132fcd4c0-ActionStmt", + "id": "0x5586249e24b0-Statement", + "statement": "0x5586249e24c0-ActionStmt", "label": "200", "source": "200 continue" }, { - "id": "0x564132fcd4c0-ActionStmt", + "id": "0x5586249e24c0-ActionStmt", "variantKey": "ContinueStmt", - "ContinueStmt": "0x564132fcd4c0-ContinueStmt" + "ContinueStmt": "0x5586249e24c0-ContinueStmt" }, { - "id": "0x564132fcd4c0-ContinueStmt" + "id": "0x5586249e24c0-ContinueStmt" }, { - "id": "0x564132fd0490-ExecutionPartConstruct", + "id": "0x5586249e5490-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564132fd0490-ExecutableConstruct" + "ExecutableConstruct": "0x5586249e5490-ExecutableConstruct" }, { - "id": "0x564132fd0490-ExecutableConstruct", + "id": "0x5586249e5490-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x564132fd0490-Statement" + "Statement": "0x5586249e5490-Statement" }, { - "id": "0x564132fd0490-Statement", - "statement": "0x564132fd04a0-ActionStmt", + "id": "0x5586249e5490-Statement", + "statement": "0x5586249e54a0-ActionStmt", "source": "print *, \"All 20 io-control-spec items demonstrated successfully!\"" }, { - "id": "0x564132fd04a0-ActionStmt", + "id": "0x5586249e54a0-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x564132fe3a10-PrintStmt" + "PrintStmt": "0x5586249f8a10-PrintStmt" }, { - "id": "0x564132fe3a10-PrintStmt", - "Format": "0x564132fe3a28-Format", + "id": "0x5586249f8a10-PrintStmt", + "Format": "0x5586249f8a28-Format", "OutputItem": [ - "0x564132fe3930-OutputItem" + "0x5586249f8930-OutputItem" ] }, { - "id": "0x564132fe3a28-Format", + "id": "0x5586249f8a28-Format", "variantKey": "Star", - "Star": "0x564132fe3a28-Star" + "Star": "0x5586249f8a28-Star" }, { - "id": "0x564132fe3a28-Star" + "id": "0x5586249f8a28-Star" }, { - "id": "0x564132fe3930-OutputItem", + "id": "0x5586249f8930-OutputItem", "variantKey": "Expr", - "Expr": "0x564132fe3930-Expr" + "Expr": "0x5586249f8930-Expr" }, { - "id": "0x564132fe3930-Expr", + "id": "0x5586249f8930-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fe3950-LiteralConstant" + "LiteralConstant": "0x5586249f8950-LiteralConstant" }, { - "id": "0x564132fe3950-LiteralConstant", + "id": "0x5586249f8950-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x564132fe3950-CharLiteralConstant" + "CharLiteralConstant": "0x5586249f8950-CharLiteralConstant" }, { - "id": "0x564132fe3950-CharLiteralConstant", + "id": "0x5586249f8950-CharLiteralConstant", "string": "All 20 io-control-spec items demonstrated successfully!" }, { - "id": "0x564132fcfe80-ExecutionPartConstruct", + "id": "0x5586249e4e80-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564132fcfe80-ExecutableConstruct" + "ExecutableConstruct": "0x5586249e4e80-ExecutableConstruct" }, { - "id": "0x564132fcfe80-ExecutableConstruct", + "id": "0x5586249e4e80-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x564132fcfe80-Statement" + "Statement": "0x5586249e4e80-Statement" }, { - "id": "0x564132fcfe80-Statement", - "statement": "0x564132fcfe90-ActionStmt", + "id": "0x5586249e4e80-Statement", + "statement": "0x5586249e4e90-ActionStmt", "source": "close(u_seq, status='delete')" }, { - "id": "0x564132fcfe90-ActionStmt", + "id": "0x5586249e4e90-ActionStmt", "variantKey": "CloseStmt", - "CloseStmt": "0x564132fd3a20-CloseStmt" + "CloseStmt": "0x5586249e8a20-CloseStmt" }, { - "id": "0x564132fd3a20-CloseStmt", + "id": "0x5586249e8a20-CloseStmt", "CloseSpec": [ - "0x564132fd4080-CloseSpec", - "0x564132fd4040-CloseSpec" + "0x5586249e9080-CloseSpec", + "0x5586249e9040-CloseSpec" ] }, { - "id": "0x564132fd4080-CloseSpec", + "id": "0x5586249e9080-CloseSpec", "variantKey": "FileUnitNumber", - "FileUnitNumber": "0x564132fd4080-FileUnitNumber" + "FileUnitNumber": "0x5586249e9080-FileUnitNumber" }, { - "id": "0x564132fd4080-FileUnitNumber", - "Expr": "0x564132fd2c00-Expr" + "id": "0x5586249e9080-FileUnitNumber", + "Expr": "0x5586249e7c00-Expr" }, { - "id": "0x564132fd2c00-Expr", + "id": "0x5586249e7c00-Expr", "variantKey": "Designator", - "Designator": "0x564132fcffb0-Designator" + "Designator": "0x5586249e4fb0-Designator" }, { - "id": "0x564132fcffb0-Designator", + "id": "0x5586249e4fb0-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fcffc0-DataRef" + "DataRef": "0x5586249e4fc0-DataRef" }, { - "id": "0x564132fcffc0-DataRef", + "id": "0x5586249e4fc0-DataRef", "variantKey": "Name", - "Name": "0x564132fcffc0-Name" + "Name": "0x5586249e4fc0-Name" }, { - "id": "0x564132fcffc0-Name", + "id": "0x5586249e4fc0-Name", "source": "u_seq" }, { - "id": "0x564132fd4040-CloseSpec", + "id": "0x5586249e9040-CloseSpec", "variantKey": "StatusExpr", - "StatusExpr": "0x564132fd4040-StatusExpr" + "StatusExpr": "0x5586249e9040-StatusExpr" }, { - "id": "0x564132fd4040-StatusExpr", - "Expr": "0x564132fd2b20-Expr" + "id": "0x5586249e9040-StatusExpr", + "Expr": "0x5586249e7b20-Expr" }, { - "id": "0x564132fd2b20-Expr", + "id": "0x5586249e7b20-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fd2b40-LiteralConstant" + "LiteralConstant": "0x5586249e7b40-LiteralConstant" }, { - "id": "0x564132fd2b40-LiteralConstant", + "id": "0x5586249e7b40-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x564132fd2b40-CharLiteralConstant" + "CharLiteralConstant": "0x5586249e7b40-CharLiteralConstant" }, { - "id": "0x564132fd2b40-CharLiteralConstant", + "id": "0x5586249e7b40-CharLiteralConstant", "string": "delete" }, { - "id": "0x564132fcc2f0-ExecutionPartConstruct", + "id": "0x5586249e12f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564132fcc2f0-ExecutableConstruct" + "ExecutableConstruct": "0x5586249e12f0-ExecutableConstruct" }, { - "id": "0x564132fcc2f0-ExecutableConstruct", + "id": "0x5586249e12f0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x564132fcc2f0-Statement" + "Statement": "0x5586249e12f0-Statement" }, { - "id": "0x564132fcc2f0-Statement", - "statement": "0x564132fcc300-ActionStmt", + "id": "0x5586249e12f0-Statement", + "statement": "0x5586249e1300-ActionStmt", "source": "close(u_dir, status='delete')" }, { - "id": "0x564132fcc300-ActionStmt", + "id": "0x5586249e1300-ActionStmt", "variantKey": "CloseStmt", - "CloseStmt": "0x564132fd4010-CloseStmt" + "CloseStmt": "0x5586249e9010-CloseStmt" }, { - "id": "0x564132fd4010-CloseStmt", + "id": "0x5586249e9010-CloseStmt", "CloseSpec": [ - "0x564132fd4130-CloseSpec", - "0x564132fd40f0-CloseSpec" + "0x5586249e9130-CloseSpec", + "0x5586249e90f0-CloseSpec" ] }, { - "id": "0x564132fd4130-CloseSpec", + "id": "0x5586249e9130-CloseSpec", "variantKey": "FileUnitNumber", - "FileUnitNumber": "0x564132fd4130-FileUnitNumber" + "FileUnitNumber": "0x5586249e9130-FileUnitNumber" }, { - "id": "0x564132fd4130-FileUnitNumber", - "Expr": "0x564132fd2a40-Expr" + "id": "0x5586249e9130-FileUnitNumber", + "Expr": "0x5586249e7a40-Expr" }, { - "id": "0x564132fd2a40-Expr", + "id": "0x5586249e7a40-Expr", "variantKey": "Designator", - "Designator": "0x564132fce840-Designator" + "Designator": "0x5586249e3840-Designator" }, { - "id": "0x564132fce840-Designator", + "id": "0x5586249e3840-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fce850-DataRef" + "DataRef": "0x5586249e3850-DataRef" }, { - "id": "0x564132fce850-DataRef", + "id": "0x5586249e3850-DataRef", "variantKey": "Name", - "Name": "0x564132fce850-Name" + "Name": "0x5586249e3850-Name" }, { - "id": "0x564132fce850-Name", + "id": "0x5586249e3850-Name", "source": "u_dir" }, { - "id": "0x564132fd40f0-CloseSpec", + "id": "0x5586249e90f0-CloseSpec", "variantKey": "StatusExpr", - "StatusExpr": "0x564132fd40f0-StatusExpr" + "StatusExpr": "0x5586249e90f0-StatusExpr" }, { - "id": "0x564132fd40f0-StatusExpr", - "Expr": "0x564132fcfd90-Expr" + "id": "0x5586249e90f0-StatusExpr", + "Expr": "0x5586249e4d90-Expr" }, { - "id": "0x564132fcfd90-Expr", + "id": "0x5586249e4d90-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fcfdb0-LiteralConstant" + "LiteralConstant": "0x5586249e4db0-LiteralConstant" }, { - "id": "0x564132fcfdb0-LiteralConstant", + "id": "0x5586249e4db0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x564132fcfdb0-CharLiteralConstant" + "CharLiteralConstant": "0x5586249e4db0-CharLiteralConstant" }, { - "id": "0x564132fcfdb0-CharLiteralConstant", + "id": "0x5586249e4db0-CharLiteralConstant", "string": "delete" }, { - "id": "0x564132fd0430-ExecutionPartConstruct", + "id": "0x5586249e5430-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564132fd0430-ExecutableConstruct" + "ExecutableConstruct": "0x5586249e5430-ExecutableConstruct" }, { - "id": "0x564132fd0430-ExecutableConstruct", + "id": "0x5586249e5430-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x564132fd0430-Statement" + "Statement": "0x5586249e5430-Statement" }, { - "id": "0x564132fd0430-Statement", - "statement": "0x564132fd0440-ActionStmt", + "id": "0x5586249e5430-Statement", + "statement": "0x5586249e5440-ActionStmt", "source": "close(u_stream, status='delete')" }, { - "id": "0x564132fd0440-ActionStmt", + "id": "0x5586249e5440-ActionStmt", "variantKey": "CloseStmt", - "CloseStmt": "0x564132fd3900-CloseStmt" + "CloseStmt": "0x5586249e8900-CloseStmt" }, { - "id": "0x564132fd3900-CloseStmt", + "id": "0x5586249e8900-CloseStmt", "CloseSpec": [ - "0x564132fd3f20-CloseSpec", - "0x564132fd4170-CloseSpec" + "0x5586249e8f20-CloseSpec", + "0x5586249e9170-CloseSpec" ] }, { - "id": "0x564132fd3f20-CloseSpec", + "id": "0x5586249e8f20-CloseSpec", "variantKey": "FileUnitNumber", - "FileUnitNumber": "0x564132fd3f20-FileUnitNumber" + "FileUnitNumber": "0x5586249e8f20-FileUnitNumber" }, { - "id": "0x564132fd3f20-FileUnitNumber", - "Expr": "0x564132fcfcb0-Expr" + "id": "0x5586249e8f20-FileUnitNumber", + "Expr": "0x5586249e4cb0-Expr" }, { - "id": "0x564132fcfcb0-Expr", + "id": "0x5586249e4cb0-Expr", "variantKey": "Designator", - "Designator": "0x564132fcc790-Designator" + "Designator": "0x5586249e1790-Designator" }, { - "id": "0x564132fcc790-Designator", + "id": "0x5586249e1790-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fcc7a0-DataRef" + "DataRef": "0x5586249e17a0-DataRef" }, { - "id": "0x564132fcc7a0-DataRef", + "id": "0x5586249e17a0-DataRef", "variantKey": "Name", - "Name": "0x564132fcc7a0-Name" + "Name": "0x5586249e17a0-Name" }, { - "id": "0x564132fcc7a0-Name", + "id": "0x5586249e17a0-Name", "source": "u_stream" }, { - "id": "0x564132fd4170-CloseSpec", + "id": "0x5586249e9170-CloseSpec", "variantKey": "StatusExpr", - "StatusExpr": "0x564132fd4170-StatusExpr" + "StatusExpr": "0x5586249e9170-StatusExpr" }, { - "id": "0x564132fd4170-StatusExpr", - "Expr": "0x564132fe3b10-Expr" + "id": "0x5586249e9170-StatusExpr", + "Expr": "0x5586249f8b10-Expr" }, { - "id": "0x564132fe3b10-Expr", + "id": "0x5586249f8b10-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fe3b30-LiteralConstant" + "LiteralConstant": "0x5586249f8b30-LiteralConstant" }, { - "id": "0x564132fe3b30-LiteralConstant", + "id": "0x5586249f8b30-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x564132fe3b30-CharLiteralConstant" + "CharLiteralConstant": "0x5586249f8b30-CharLiteralConstant" }, { - "id": "0x564132fe3b30-CharLiteralConstant", + "id": "0x5586249f8b30-CharLiteralConstant", "string": "delete" }, { - "id": "0x564132fd26f0-ExecutionPartConstruct", + "id": "0x5586249e76f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564132fd26f0-ExecutableConstruct" + "ExecutableConstruct": "0x5586249e76f0-ExecutableConstruct" }, { - "id": "0x564132fd26f0-ExecutableConstruct", + "id": "0x5586249e76f0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x564132fd26f0-Statement" + "Statement": "0x5586249e76f0-Statement" }, { - "id": "0x564132fd26f0-Statement", - "statement": "0x564132fd2700-ActionStmt", + "id": "0x5586249e76f0-Statement", + "statement": "0x5586249e7700-ActionStmt", "source": "stop" }, { - "id": "0x564132fd2700-ActionStmt", + "id": "0x5586249e7700-ActionStmt", "variantKey": "StopStmt", - "StopStmt": "0x564132fe3bf0-StopStmt" + "StopStmt": "0x5586249f8bf0-StopStmt" }, { - "id": "0x564132fe3bf0-StopStmt", - "kind": "0x564132fe3cd8-Kind" + "id": "0x5586249f8bf0-StopStmt", + "kind": "0x5586249f8cd8-Kind" }, { - "id": "0x564132fe3cd8-Kind", + "id": "0x5586249f8cd8-Kind", "disambiguation": "Fortran::parser::StopStmt::Kind", "value": "Stop" }, { - "id": "0x564132fe41e0-ExecutionPartConstruct", + "id": "0x5586249f91e0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564132fe41e0-ExecutableConstruct" + "ExecutableConstruct": "0x5586249f91e0-ExecutableConstruct" }, { - "id": "0x564132fe41e0-ExecutableConstruct", + "id": "0x5586249f91e0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x564132fe41e0-Statement" + "Statement": "0x5586249f91e0-Statement" }, { - "id": "0x564132fe41e0-Statement", - "statement": "0x564132fe41f0-ActionStmt", + "id": "0x5586249f91e0-Statement", + "statement": "0x5586249f91f0-ActionStmt", "label": "900", "source": "900 print *, \"I/O Error Occurred: \", trim(io_message)" }, { - "id": "0x564132fe41f0-ActionStmt", + "id": "0x5586249f91f0-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x564132fe4070-PrintStmt" + "PrintStmt": "0x5586249f9070-PrintStmt" }, { - "id": "0x564132fe4070-PrintStmt", - "Format": "0x564132fe4088-Format", + "id": "0x5586249f9070-PrintStmt", + "Format": "0x5586249f9088-Format", "OutputItem": [ - "0x564132fe3f90-OutputItem", - "0x564132fe3ea0-OutputItem" + "0x5586249f8f90-OutputItem", + "0x5586249f8ea0-OutputItem" ] }, { - "id": "0x564132fe4088-Format", + "id": "0x5586249f9088-Format", "variantKey": "Star", - "Star": "0x564132fe4088-Star" + "Star": "0x5586249f9088-Star" }, { - "id": "0x564132fe4088-Star" + "id": "0x5586249f9088-Star" }, { - "id": "0x564132fe3f90-OutputItem", + "id": "0x5586249f8f90-OutputItem", "variantKey": "Expr", - "Expr": "0x564132fe3f90-Expr" + "Expr": "0x5586249f8f90-Expr" }, { - "id": "0x564132fe3f90-Expr", + "id": "0x5586249f8f90-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564132fe3fb0-LiteralConstant" + "LiteralConstant": "0x5586249f8fb0-LiteralConstant" }, { - "id": "0x564132fe3fb0-LiteralConstant", + "id": "0x5586249f8fb0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x564132fe3fb0-CharLiteralConstant" + "CharLiteralConstant": "0x5586249f8fb0-CharLiteralConstant" }, { - "id": "0x564132fe3fb0-CharLiteralConstant", + "id": "0x5586249f8fb0-CharLiteralConstant", "string": "I/O Error Occurred: " }, { - "id": "0x564132fe3ea0-OutputItem", + "id": "0x5586249f8ea0-OutputItem", "variantKey": "Expr", - "Expr": "0x564132fe3ea0-Expr" + "Expr": "0x5586249f8ea0-Expr" }, { - "id": "0x564132fe3ea0-Expr", + "id": "0x5586249f8ea0-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x564132fccaf0-FunctionReference" + "FunctionReference": "0x5586249e1af0-FunctionReference" }, { - "id": "0x564132fccaf0-FunctionReference", - "Call": "0x564132fccaf0-Call" + "id": "0x5586249e1af0-FunctionReference", + "Call": "0x5586249e1af0-Call" }, { - "id": "0x564132fccaf0-Call", - "ProcedureDesignator": "0x564132fccb08-ProcedureDesignator", + "id": "0x5586249e1af0-Call", + "ProcedureDesignator": "0x5586249e1b08-ProcedureDesignator", "ActualArgSpec": [ - "0x564132fcb090-ActualArgSpec" + "0x5586249e0090-ActualArgSpec" ] }, { - "id": "0x564132fccb08-ProcedureDesignator", + "id": "0x5586249e1b08-ProcedureDesignator", "variantKey": "Name", - "Name": "0x564132fccb08-Name" + "Name": "0x5586249e1b08-Name" }, { - "id": "0x564132fccb08-Name", + "id": "0x5586249e1b08-Name", "source": "trim" }, { - "id": "0x564132fcb090-ActualArgSpec", - "ActualArg": "0x564132fcb090-ActualArg" + "id": "0x5586249e0090-ActualArgSpec", + "ActualArg": "0x5586249e0090-ActualArg" }, { - "id": "0x564132fcb090-ActualArg", + "id": "0x5586249e0090-ActualArg", "variantKey": "Expr", - "Expr": "0x564132fe3d50-Expr" + "Expr": "0x5586249f8d50-Expr" }, { - "id": "0x564132fe3d50-Expr", + "id": "0x5586249f8d50-Expr", "variantKey": "Designator", - "Designator": "0x564132fe3cf0-Designator" + "Designator": "0x5586249f8cf0-Designator" }, { - "id": "0x564132fe3cf0-Designator", + "id": "0x5586249f8cf0-Designator", "variantKey": "DataRef", - "DataRef": "0x564132fe3d00-DataRef" + "DataRef": "0x5586249f8d00-DataRef" }, { - "id": "0x564132fe3d00-DataRef", + "id": "0x5586249f8d00-DataRef", "variantKey": "Name", - "Name": "0x564132fe3d00-Name" + "Name": "0x5586249f8d00-Name" }, { - "id": "0x564132fe3d00-Name", + "id": "0x5586249f8d00-Name", "source": "io_message" }, { - "id": "0x564132fdc5d0-Statement", - "statement": "0x564132fdc5e0-EndProgramStmt", + "id": "0x5586249f15d0-Statement", + "statement": "0x5586249f15e0-EndProgramStmt", "source": "end program IO_CONTROL_SPECS" }, { - "id": "0x564132fdc5e0-EndProgramStmt", - "Name": "0x564132fdc5e0-Name" + "id": "0x5586249f15e0-EndProgramStmt", + "Name": "0x5586249f15e0-Name" }, { - "id": "0x564132fdc5e0-Name", + "id": "0x5586249f15e0-Name", "source": "IO_CONTROL_SPECS" } ], "comments": [ { "text": " Define a namelist for the NML specifier demo", - "stmtId": "0x564132fabda0-Statement", + "stmtId": "0x5586249c0da0-Statement", "trailing": false }, { "text": " Open temporary test files (Sequential, Direct, Stream)", - "stmtId": "0x564132fca9b0-Statement", + "stmtId": "0x5586249df9b0-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x564132fcf490-Statement", + "stmtId": "0x5586249e4490-Statement", "trailing": false }, { "text": " 1. Formatting, Rounding, Decimal, Sign, Delim, IOSTAT & IOMSG", - "stmtId": "0x564132fcf490-Statement", + "stmtId": "0x5586249e4490-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x564132fcf490-Statement", + "stmtId": "0x5586249e4490-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x564132fdafe0-Statement", + "stmtId": "0x5586249effe0-Statement", "trailing": false }, { "text": " 2. Namelist Specifier (NML)", - "stmtId": "0x564132fdafe0-Statement", + "stmtId": "0x5586249effe0-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x564132fdafe0-Statement", + "stmtId": "0x5586249effe0-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x564132fcd510-Statement", + "stmtId": "0x5586249e2510-Statement", "trailing": false }, { "text": " 3. Non-Advancing I/O (ADVANCE, SIZE, PAD, EOR, ERR)", - "stmtId": "0x564132fcd510-Statement", + "stmtId": "0x5586249e2510-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x564132fcd510-Statement", + "stmtId": "0x5586249e2510-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x564132fd1850-Statement", + "stmtId": "0x5586249e6850-Statement", "trailing": false }, { "text": " 4. Direct Access (REC)", - "stmtId": "0x564132fd1850-Statement", + "stmtId": "0x5586249e6850-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x564132fd1850-Statement", + "stmtId": "0x5586249e6850-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x564132fd0270-Statement", + "stmtId": "0x5586249e5270-Statement", "trailing": false }, { "text": " 5. Stream Access (POS)", - "stmtId": "0x564132fd0270-Statement", + "stmtId": "0x5586249e5270-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x564132fd0270-Statement", + "stmtId": "0x5586249e5270-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x564132fd29f0-Statement", + "stmtId": "0x5586249e79f0-Statement", "trailing": false }, { "text": " 6. Asynchronous Non-Blocking I/O (ASYNCHRONOUS, ID)", - "stmtId": "0x564132fd29f0-Statement", + "stmtId": "0x5586249e79f0-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x564132fd29f0-Statement", + "stmtId": "0x5586249e79f0-Statement", "trailing": false }, { "text": " Wait for async operation to complete before continuing", - "stmtId": "0x564132fd0f50-Statement", + "stmtId": "0x5586249e5f50-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x564132fe38d0-Statement", + "stmtId": "0x5586249f88d0-Statement", "trailing": false }, { "text": " 7. Input Blank Handling and EOF Branching (BLANK, END)", - "stmtId": "0x564132fe38d0-Statement", + "stmtId": "0x5586249f88d0-Statement", "trailing": false }, { "text": " -----------------------------------------------------------------", - "stmtId": "0x564132fe38d0-Statement", + "stmtId": "0x5586249f88d0-Statement", "trailing": false }, { "text": " Clean up files", - "stmtId": "0x564132fcfe80-Statement", + "stmtId": "0x5586249e4e80-Statement", "trailing": false } ], diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java index 6a5c82e0..de6135b9 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java @@ -224,24 +224,24 @@ public void errPosFlushSpec(ErrPosFlushSpec spec) { public void readStmt(ReadStmt readStmt) { stmtProcessors.actionStmt(readStmt); - if (attributes(readStmt).has(FlangName.IO_UNIT)) { - var ioUnit = getChild(readStmt, FlangName.IO_UNIT); + if (attributes(readStmt).has("iounit")) { + var ioUnit = getChild(readStmt, "iounit"); readStmt.addChild(ioUnit); } - if (attributes(readStmt).has(FlangName.FORMAT)) { - var format = getChild(readStmt, FlangName.FORMAT); + if (attributes(readStmt).has("format")) { + var format = getChild(readStmt, "format"); var spec = factory().newNode(FormatIoControlSpec.class, List.of(format)); readStmt.addChild(spec); } - if (attributes(readStmt).has(FlangName.IO_CONTROL_SPEC)) { - var ioControlSpecs = getChildren(readStmt, FlangName.IO_CONTROL_SPEC); + if (attributes(readStmt).has("controls")) { + var ioControlSpecs = getChildren(readStmt, "controls"); readStmt.addChildren(ioControlSpecs); } - if (attributes(readStmt).has(FlangName.INPUT_ITEM)) { - var inputItems = getChildren(readStmt, FlangName.INPUT_ITEM); + if (attributes(readStmt).has("items")) { + var inputItems = getChildren(readStmt, "items"); readStmt.addChildren(inputItems); } } @@ -254,22 +254,22 @@ public void varInputItem(VarInputItem item) { public void writeStmt(WriteStmt writeStmt) { stmtProcessors.actionStmt(writeStmt); - if (attributes(writeStmt).has(FlangName.IO_UNIT)) { - writeStmt.addChild(getChild(writeStmt, FlangName.IO_UNIT)); + if (attributes(writeStmt).has("iounit")) { + writeStmt.addChild(getChild(writeStmt, "iounit")); } - if (attributes(writeStmt).has(FlangName.FORMAT)) { - var format = getChild(writeStmt, FlangName.FORMAT); + if (attributes(writeStmt).has("format")) { + var format = getChild(writeStmt, "format"); var spec = factory().newNode(FormatIoControlSpec.class, List.of(format)); writeStmt.addChild(spec); } - if (attributes(writeStmt).has(FlangName.IO_CONTROL_SPEC)) { - writeStmt.addChildren(getChildren(writeStmt, FlangName.IO_CONTROL_SPEC)); + if (attributes(writeStmt).has("controls")) { + writeStmt.addChildren(getChildren(writeStmt, "controls")); } - if (attributes(writeStmt).has(FlangName.OUTPUT_ITEM)) { - writeStmt.addChildren(getChildren(writeStmt, FlangName.OUTPUT_ITEM)); + if (attributes(writeStmt).has("items")) { + writeStmt.addChildren(getChildren(writeStmt, "items")); } } From dbdb827d2bf98967832f306f779985a3dcac896c Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 27 Jul 2026 18:19:58 +0100 Subject: [PATCH 146/260] Fix some nitpicks in code generation and fix expected code for IO control --- .../src/pt/up/fe/specs/fortran/ast/nodes/io/WaitStmt.java | 2 +- .../up/fe/specs/fortran/ast/nodes/stmt/NamelistGroup.java | 2 +- .../fortran/parser/io/io_control.expected.f90 | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/WaitStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/WaitStmt.java index 7ace8e6a..4298789c 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/WaitStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/WaitStmt.java @@ -24,6 +24,6 @@ public String getStmtCode() { .map(WaitSpec::getCode) .collect(Collectors.joining(", ", "(", ")")); - return keyword(FortranKeyword.WAIT) + " " + specsCode; + return keyword(FortranKeyword.WAIT) + specsCode; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/NamelistGroup.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/NamelistGroup.java index 7e3e2bfb..12ff4074 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/NamelistGroup.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/NamelistGroup.java @@ -28,6 +28,6 @@ public List getObjectNames() { public String getCode() { var objectsCode = String.join(", ", getObjectNames()); - return "/ " + getGroupName() + " / " + objectsCode; + return "/" + getGroupName() + "/ " + objectsCode; } } diff --git a/FortranParser/resources-test/fortran/parser/io/io_control.expected.f90 b/FortranParser/resources-test/fortran/parser/io/io_control.expected.f90 index f46250b6..310ace4c 100644 --- a/FortranParser/resources-test/fortran/parser/io/io_control.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/io/io_control.expected.f90 @@ -30,7 +30,7 @@ PROGRAM IO_CONTROL_SPECS ! ----------------------------------------------------------------- ! 3. Non-Advancing I/O (ADVANCE, SIZE, PAD, EOR, ERR) ! ----------------------------------------------------------------- - REWIND(u_seq) + REWIND(UNIT=u_seq) READ(UNIT=u_seq, FMT="(A)", ADVANCE="no", PAD="yes", SIZE=chars_read, EOR=100, ERR=900, IOSTAT=ios) text_buffer 100 CONTINUE @@ -65,9 +65,9 @@ PROGRAM IO_CONTROL_SPECS PRINT *, "All 20 io-control-spec items demonstrated successfully!" ! Clean up files - CLOSE(u_seq, STATUS="delete") - CLOSE(u_dir, STATUS="delete") - CLOSE(u_stream, STATUS="delete") + CLOSE(UNIT=u_seq, STATUS="delete") + CLOSE(UNIT=u_dir, STATUS="delete") + CLOSE(UNIT=u_stream, STATUS="delete") STOP 900 PRINT *, "I/O Error Occurred: ", trim(io_message) From 68b04d187d0a0c0a9d33928566e05d60fa0671e4 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 27 Jul 2026 21:14:24 +0100 Subject: [PATCH 147/260] Fix kind parameter parsing --- .../fortran/parser/expr/complex_literal.json | 704 +++++++++--------- .../parser/processors/ExprProcessors.java | 4 +- 2 files changed, 354 insertions(+), 354 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/expr/complex_literal.json b/FortranParser/resources-test/fortran/parser/expr/complex_literal.json index fa43b595..9b86dbbd 100644 --- a/FortranParser/resources-test/fortran/parser/expr/complex_literal.json +++ b/FortranParser/resources-test/fortran/parser/expr/complex_literal.json @@ -2,864 +2,864 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x555883433f00-Program", + "id": "0x55b4b269ef00-Program", "ProgramUnit": [ - "0x55588346fef0-ProgramUnit" + "0x55b4b26daef0-ProgramUnit" ] }, { - "id": "0x55588346fef0-ProgramUnit", + "id": "0x55b4b26daef0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x555883464010-MainProgram" + "MainProgram": "0x55b4b26cf010-MainProgram" }, { - "id": "0x555883464010-MainProgram", - "Statement": "0x555883464158-Statement", - "SpecificationPart": "0x5558834640b0-SpecificationPart", - "ExecutionPart": "0x555883464098-ExecutionPart", - "Statement": "0x555883464010-Statement" + "id": "0x55b4b26cf010-MainProgram", + "Statement": "0x55b4b26cf158-Statement", + "SpecificationPart": "0x55b4b26cf0b0-SpecificationPart", + "ExecutionPart": "0x55b4b26cf098-ExecutionPart", + "Statement": "0x55b4b26cf010-Statement" }, { - "id": "0x555883464158-Statement", - "statement": "0x555883464168-ProgramStmt", + "id": "0x55b4b26cf158-Statement", + "statement": "0x55b4b26cf168-ProgramStmt", "source": "program COMPLEX_LITERAL" }, { - "id": "0x555883464168-ProgramStmt", - "Name": "0x555883464168-Name" + "id": "0x55b4b26cf168-ProgramStmt", + "Name": "0x55b4b26cf168-Name" }, { - "id": "0x555883464168-Name", + "id": "0x55b4b26cf168-Name", "source": "COMPLEX_LITERAL" }, { - "id": "0x5558834640b0-SpecificationPart", + "id": "0x55b4b26cf0b0-SpecificationPart", "Statement": [ - "0x55588346ec00-Statement" + "0x55b4b26d9c00-Statement" ], - "ImplicitPart": "0x5558834640c8-ImplicitPart", + "ImplicitPart": "0x55b4b26cf0c8-ImplicitPart", "DeclarationConstruct": [ - "0x55588345eab0-DeclarationConstruct", - "0x55588345ed60-DeclarationConstruct", - "0x55588345f010-DeclarationConstruct", - "0x55588345fa30-DeclarationConstruct", - "0x55588345fe20-DeclarationConstruct", - "0x555883460210-DeclarationConstruct" + "0x55b4b26c9ab0-DeclarationConstruct", + "0x55b4b26c9d60-DeclarationConstruct", + "0x55b4b26ca010-DeclarationConstruct", + "0x55b4b26caa30-DeclarationConstruct", + "0x55b4b26cae20-DeclarationConstruct", + "0x55b4b26cb210-DeclarationConstruct" ] }, { - "id": "0x55588346ec00-Statement", - "statement": "0x555883477cb0-UseStmt", + "id": "0x55b4b26d9c00-Statement", + "statement": "0x55b4b26e2cb0-UseStmt", "source": "use, intrinsic :: iso_fortran_env, only: sp => real32, dp => real64" }, { - "id": "0x555883477cb0-UseStmt", - "nature": "0x555883477cb0-ModuleNature = Intrinsic", - "moduleName": "0x555883477cb8-Name", + "id": "0x55b4b26e2cb0-UseStmt", + "nature": "0x55b4b26e2cb0-ModuleNature", + "moduleName": "0x55b4b26e2cb8-Name", "variantKey": "Only", "Only": [ - "0x555883441170-Only", - "0x5558834324e0-Only" + "0x55b4b26ac170-Only", + "0x55b4b269d4e0-Only" ] }, { - "id": "0x555883477cb0-ModuleNature = Intrinsic", + "id": "0x55b4b26e2cb0-ModuleNature", "disambiguation": "Fortran::parser::UseStmt::ModuleNature", "value": "Intrinsic" }, { - "id": "0x555883477cb8-Name", + "id": "0x55b4b26e2cb8-Name", "source": "iso_fortran_env" }, { - "id": "0x555883441170-Only", + "id": "0x55b4b26ac170-Only", "variantKey": "Rename", - "Rename": "0x555883441170-Rename" + "Rename": "0x55b4b26ac170-Rename" }, { - "id": "0x555883441170-Rename", + "id": "0x55b4b26ac170-Rename", "variantKey": "Names", - "Names": "0x555883441170-Names" + "Names": "0x55b4b26ac170-Names" }, { - "id": "0x555883441170-Names", - "local": "0x555883441188-Name", - "global": "0x555883441170-Name" + "id": "0x55b4b26ac170-Names", + "local": "0x55b4b26ac188-Name", + "global": "0x55b4b26ac170-Name" }, { - "id": "0x555883441188-Name", + "id": "0x55b4b26ac188-Name", "source": "sp" }, { - "id": "0x555883441170-Name", + "id": "0x55b4b26ac170-Name", "source": "real32" }, { - "id": "0x5558834324e0-Only", + "id": "0x55b4b269d4e0-Only", "variantKey": "Rename", - "Rename": "0x5558834324e0-Rename" + "Rename": "0x55b4b269d4e0-Rename" }, { - "id": "0x5558834324e0-Rename", + "id": "0x55b4b269d4e0-Rename", "variantKey": "Names", - "Names": "0x5558834324e0-Names" + "Names": "0x55b4b269d4e0-Names" }, { - "id": "0x5558834324e0-Names", - "local": "0x5558834324f8-Name", - "global": "0x5558834324e0-Name" + "id": "0x55b4b269d4e0-Names", + "local": "0x55b4b269d4f8-Name", + "global": "0x55b4b269d4e0-Name" }, { - "id": "0x5558834324f8-Name", + "id": "0x55b4b269d4f8-Name", "source": "dp" }, { - "id": "0x5558834324e0-Name", + "id": "0x55b4b269d4e0-Name", "source": "real64" }, { - "id": "0x5558834640c8-ImplicitPart" + "id": "0x55b4b26cf0c8-ImplicitPart" }, { - "id": "0x55588345eab0-DeclarationConstruct", + "id": "0x55b4b26c9ab0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55588345eab0-SpecificationConstruct" + "SpecificationConstruct": "0x55b4b26c9ab0-SpecificationConstruct" }, { - "id": "0x55588345eab0-SpecificationConstruct", + "id": "0x55b4b26c9ab0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55588345eab0-Statement" + "Statement": "0x55b4b26c9ab0-Statement" }, { - "id": "0x55588345eab0-Statement", - "statement": "0x555883470710-TypeDeclarationStmt", + "id": "0x55b4b26c9ab0-Statement", + "statement": "0x55b4b26db710-TypeDeclarationStmt", "source": "complex :: c_default =(3.0, 4.0)" }, { - "id": "0x555883470710-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x555883470740-DeclarationTypeSpec", + "id": "0x55b4b26db710-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55b4b26db740-DeclarationTypeSpec", "EntityDecl": [ - "0x55588345e8e0-EntityDecl" + "0x55b4b26c98e0-EntityDecl" ] }, { - "id": "0x555883470740-DeclarationTypeSpec", + "id": "0x55b4b26db740-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x555883470740-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55b4b26db740-IntrinsicTypeSpec" }, { - "id": "0x555883470740-IntrinsicTypeSpec", + "id": "0x55b4b26db740-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x555883470740-Complex" + "Complex": "0x55b4b26db740-Complex" }, { - "id": "0x555883470740-Complex" + "id": "0x55b4b26db740-Complex" }, { - "id": "0x55588345e8e0-EntityDecl", - "Name": "0x55588345e998-Name", - "Initialization": "0x55588345e8e0-Initialization" + "id": "0x55b4b26c98e0-EntityDecl", + "Name": "0x55b4b26c9998-Name", + "Initialization": "0x55b4b26c98e0-Initialization" }, { - "id": "0x55588345e998-Name", + "id": "0x55b4b26c9998-Name", "source": "c_default" }, { - "id": "0x55588345e8e0-Initialization", + "id": "0x55b4b26c98e0-Initialization", "variantKey": "Expr", - "Expr": "0x5558833d3790-Expr" + "Expr": "0x55b4b263e790-Expr" }, { - "id": "0x5558833d3790-Expr", + "id": "0x55b4b263e790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5558833d37b0-LiteralConstant" + "LiteralConstant": "0x55b4b263e7b0-LiteralConstant" }, { - "id": "0x5558833d37b0-LiteralConstant", + "id": "0x55b4b263e7b0-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x5558833d37b0-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x55b4b263e7b0-ComplexLiteralConstant" }, { - "id": "0x5558833d37b0-ComplexLiteralConstant", - "real": "0x5558833d3800-ComplexPart", - "imaginary": "0x5558833d37b0-ComplexPart" + "id": "0x55b4b263e7b0-ComplexLiteralConstant", + "real": "0x55b4b263e800-ComplexPart", + "imaginary": "0x55b4b263e7b0-ComplexPart" }, { - "id": "0x5558833d3800-ComplexPart", + "id": "0x55b4b263e800-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x5558833d3800-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55b4b263e800-SignedRealLiteralConstant" }, { - "id": "0x5558833d3800-SignedRealLiteralConstant", - "RealLiteralConstant": "0x5558833d3800-RealLiteralConstant" + "id": "0x55b4b263e800-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55b4b263e800-RealLiteralConstant" }, { - "id": "0x5558833d3800-RealLiteralConstant", - "real": "0x5558833d3800-Real" + "id": "0x55b4b263e800-RealLiteralConstant", + "real": "0x55b4b263e800-Real" }, { - "id": "0x5558833d3800-Real", + "id": "0x55b4b263e800-Real", "source": "3.0" }, { - "id": "0x5558833d37b0-ComplexPart", + "id": "0x55b4b263e7b0-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x5558833d37b0-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55b4b263e7b0-SignedRealLiteralConstant" }, { - "id": "0x5558833d37b0-SignedRealLiteralConstant", - "RealLiteralConstant": "0x5558833d37b0-RealLiteralConstant" + "id": "0x55b4b263e7b0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55b4b263e7b0-RealLiteralConstant" }, { - "id": "0x5558833d37b0-RealLiteralConstant", - "real": "0x5558833d37b0-Real" + "id": "0x55b4b263e7b0-RealLiteralConstant", + "real": "0x55b4b263e7b0-Real" }, { - "id": "0x5558833d37b0-Real", + "id": "0x55b4b263e7b0-Real", "source": "4.0" }, { - "id": "0x55588345ed60-DeclarationConstruct", + "id": "0x55b4b26c9d60-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55588345ed60-SpecificationConstruct" + "SpecificationConstruct": "0x55b4b26c9d60-SpecificationConstruct" }, { - "id": "0x55588345ed60-SpecificationConstruct", + "id": "0x55b4b26c9d60-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55588345ed60-Statement" + "Statement": "0x55b4b26c9d60-Statement" }, { - "id": "0x55588345ed60-Statement", - "statement": "0x555883470790-TypeDeclarationStmt", + "id": "0x55b4b26c9d60-Statement", + "statement": "0x55b4b26db790-TypeDeclarationStmt", "source": "complex :: c_int =(1, -2)" }, { - "id": "0x555883470790-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5558834707c0-DeclarationTypeSpec", + "id": "0x55b4b26db790-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55b4b26db7c0-DeclarationTypeSpec", "EntityDecl": [ - "0x55588345ec70-EntityDecl" + "0x55b4b26c9c70-EntityDecl" ] }, { - "id": "0x5558834707c0-DeclarationTypeSpec", + "id": "0x55b4b26db7c0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5558834707c0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55b4b26db7c0-IntrinsicTypeSpec" }, { - "id": "0x5558834707c0-IntrinsicTypeSpec", + "id": "0x55b4b26db7c0-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x5558834707c0-Complex" + "Complex": "0x55b4b26db7c0-Complex" }, { - "id": "0x5558834707c0-Complex" + "id": "0x55b4b26db7c0-Complex" }, { - "id": "0x55588345ec70-EntityDecl", - "Name": "0x55588345ed28-Name", - "Initialization": "0x55588345ec70-Initialization" + "id": "0x55b4b26c9c70-EntityDecl", + "Name": "0x55b4b26c9d28-Name", + "Initialization": "0x55b4b26c9c70-Initialization" }, { - "id": "0x55588345ed28-Name", + "id": "0x55b4b26c9d28-Name", "source": "c_int" }, { - "id": "0x55588345ec70-Initialization", + "id": "0x55b4b26c9c70-Initialization", "variantKey": "Expr", - "Expr": "0x55588345eb80-Expr" + "Expr": "0x55b4b26c9b80-Expr" }, { - "id": "0x55588345eb80-Expr", + "id": "0x55b4b26c9b80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55588345eba0-LiteralConstant" + "LiteralConstant": "0x55b4b26c9ba0-LiteralConstant" }, { - "id": "0x55588345eba0-LiteralConstant", + "id": "0x55b4b26c9ba0-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x55588345eba0-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x55b4b26c9ba0-ComplexLiteralConstant" }, { - "id": "0x55588345eba0-ComplexLiteralConstant", - "real": "0x55588345ebf0-ComplexPart", - "imaginary": "0x55588345eba0-ComplexPart" + "id": "0x55b4b26c9ba0-ComplexLiteralConstant", + "real": "0x55b4b26c9bf0-ComplexPart", + "imaginary": "0x55b4b26c9ba0-ComplexPart" }, { - "id": "0x55588345ebf0-ComplexPart", + "id": "0x55b4b26c9bf0-ComplexPart", "variantKey": "SignedIntLiteralConstant", - "SignedIntLiteralConstant": "0x55588345ebf0-SignedIntLiteralConstant" + "SignedIntLiteralConstant": "0x55b4b26c9bf0-SignedIntLiteralConstant" }, { - "id": "0x55588345ebf0-SignedIntLiteralConstant", + "id": "0x55b4b26c9bf0-SignedIntLiteralConstant", "CharBlock": "1", "source": "1" }, { - "id": "0x55588345eba0-ComplexPart", + "id": "0x55b4b26c9ba0-ComplexPart", "variantKey": "SignedIntLiteralConstant", - "SignedIntLiteralConstant": "0x55588345eba0-SignedIntLiteralConstant" + "SignedIntLiteralConstant": "0x55b4b26c9ba0-SignedIntLiteralConstant" }, { - "id": "0x55588345eba0-SignedIntLiteralConstant", + "id": "0x55b4b26c9ba0-SignedIntLiteralConstant", "CharBlock": "-2", "source": "-2" }, { - "id": "0x55588345f010-DeclarationConstruct", + "id": "0x55b4b26ca010-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55588345f010-SpecificationConstruct" + "SpecificationConstruct": "0x55b4b26ca010-SpecificationConstruct" }, { - "id": "0x55588345f010-SpecificationConstruct", + "id": "0x55b4b26ca010-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55588345f010-Statement" + "Statement": "0x55b4b26ca010-Statement" }, { - "id": "0x55588345f010-Statement", - "statement": "0x55588345eb00-TypeDeclarationStmt", + "id": "0x55b4b26ca010-Statement", + "statement": "0x55b4b26c9b00-TypeDeclarationStmt", "source": "complex :: c_exp =(1.5e2, -2.0e-1)" }, { - "id": "0x55588345eb00-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55588345eb30-DeclarationTypeSpec", + "id": "0x55b4b26c9b00-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55b4b26c9b30-DeclarationTypeSpec", "EntityDecl": [ - "0x55588345ef20-EntityDecl" + "0x55b4b26c9f20-EntityDecl" ] }, { - "id": "0x55588345eb30-DeclarationTypeSpec", + "id": "0x55b4b26c9b30-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55588345eb30-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55b4b26c9b30-IntrinsicTypeSpec" }, { - "id": "0x55588345eb30-IntrinsicTypeSpec", + "id": "0x55b4b26c9b30-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x55588345eb30-Complex" + "Complex": "0x55b4b26c9b30-Complex" }, { - "id": "0x55588345eb30-Complex" + "id": "0x55b4b26c9b30-Complex" }, { - "id": "0x55588345ef20-EntityDecl", - "Name": "0x55588345efd8-Name", - "Initialization": "0x55588345ef20-Initialization" + "id": "0x55b4b26c9f20-EntityDecl", + "Name": "0x55b4b26c9fd8-Name", + "Initialization": "0x55b4b26c9f20-Initialization" }, { - "id": "0x55588345efd8-Name", + "id": "0x55b4b26c9fd8-Name", "source": "c_exp" }, { - "id": "0x55588345ef20-Initialization", + "id": "0x55b4b26c9f20-Initialization", "variantKey": "Expr", - "Expr": "0x55588345ee30-Expr" + "Expr": "0x55b4b26c9e30-Expr" }, { - "id": "0x55588345ee30-Expr", + "id": "0x55b4b26c9e30-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55588345ee50-LiteralConstant" + "LiteralConstant": "0x55b4b26c9e50-LiteralConstant" }, { - "id": "0x55588345ee50-LiteralConstant", + "id": "0x55b4b26c9e50-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x55588345ee50-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x55b4b26c9e50-ComplexLiteralConstant" }, { - "id": "0x55588345ee50-ComplexLiteralConstant", - "real": "0x55588345eea0-ComplexPart", - "imaginary": "0x55588345ee50-ComplexPart" + "id": "0x55b4b26c9e50-ComplexLiteralConstant", + "real": "0x55b4b26c9ea0-ComplexPart", + "imaginary": "0x55b4b26c9e50-ComplexPart" }, { - "id": "0x55588345eea0-ComplexPart", + "id": "0x55b4b26c9ea0-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x55588345eea0-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55b4b26c9ea0-SignedRealLiteralConstant" }, { - "id": "0x55588345eea0-SignedRealLiteralConstant", - "RealLiteralConstant": "0x55588345eea0-RealLiteralConstant" + "id": "0x55b4b26c9ea0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55b4b26c9ea0-RealLiteralConstant" }, { - "id": "0x55588345eea0-RealLiteralConstant", - "real": "0x55588345eea0-Real" + "id": "0x55b4b26c9ea0-RealLiteralConstant", + "real": "0x55b4b26c9ea0-Real" }, { - "id": "0x55588345eea0-Real", + "id": "0x55b4b26c9ea0-Real", "source": "1.5e2" }, { - "id": "0x55588345ee50-ComplexPart", + "id": "0x55b4b26c9e50-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x55588345ee50-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55b4b26c9e50-SignedRealLiteralConstant" }, { - "id": "0x55588345ee50-SignedRealLiteralConstant", + "id": "0x55b4b26c9e50-SignedRealLiteralConstant", "Sign": "-", - "RealLiteralConstant": "0x55588345ee50-RealLiteralConstant" + "RealLiteralConstant": "0x55b4b26c9e50-RealLiteralConstant" }, { - "id": "0x55588345ee50-RealLiteralConstant", - "real": "0x55588345ee50-Real" + "id": "0x55b4b26c9e50-RealLiteralConstant", + "real": "0x55b4b26c9e50-Real" }, { - "id": "0x55588345ee50-Real", + "id": "0x55b4b26c9e50-Real", "source": "2.0e-1" }, { - "id": "0x55588345fa30-DeclarationConstruct", + "id": "0x55b4b26caa30-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55588345fa30-SpecificationConstruct" + "SpecificationConstruct": "0x55b4b26caa30-SpecificationConstruct" }, { - "id": "0x55588345fa30-SpecificationConstruct", + "id": "0x55b4b26caa30-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55588345fa30-Statement" + "Statement": "0x55b4b26caa30-Statement" }, { - "id": "0x55588345fa30-Statement", - "statement": "0x55588345edb0-TypeDeclarationStmt", + "id": "0x55b4b26caa30-Statement", + "statement": "0x55b4b26c9db0-TypeDeclarationStmt", "source": "complex(dp) :: c_double_d =(1.0d0, 3.141592653589793d0)" }, { - "id": "0x55588345edb0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55588345ede0-DeclarationTypeSpec", + "id": "0x55b4b26c9db0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55b4b26c9de0-DeclarationTypeSpec", "EntityDecl": [ - "0x55588345f860-EntityDecl" + "0x55b4b26ca860-EntityDecl" ] }, { - "id": "0x55588345ede0-DeclarationTypeSpec", + "id": "0x55b4b26c9de0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55588345ede0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55b4b26c9de0-IntrinsicTypeSpec" }, { - "id": "0x55588345ede0-IntrinsicTypeSpec", + "id": "0x55b4b26c9de0-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x55588345ede0-Complex" + "Complex": "0x55b4b26c9de0-Complex" }, { - "id": "0x55588345ede0-Complex", - "KindSelector": "0x55588345ede0-KindSelector" + "id": "0x55b4b26c9de0-Complex", + "KindSelector": "0x55b4b26c9de0-KindSelector" }, { - "id": "0x55588345ede0-KindSelector", + "id": "0x55b4b26c9de0-KindSelector", "variantKey": "Expr", - "Expr": "0x55588345f260-Expr" + "Expr": "0x55b4b26ca260-Expr" }, { - "id": "0x55588345f260-Expr", + "id": "0x55b4b26ca260-Expr", "variantKey": "Designator", - "Designator": "0x555883477b90-Designator" + "Designator": "0x55b4b26e2b90-Designator" }, { - "id": "0x555883477b90-Designator", + "id": "0x55b4b26e2b90-Designator", "variantKey": "DataRef", - "DataRef": "0x555883477ba0-DataRef" + "DataRef": "0x55b4b26e2ba0-DataRef" }, { - "id": "0x555883477ba0-DataRef", + "id": "0x55b4b26e2ba0-DataRef", "variantKey": "Name", - "Name": "0x555883477ba0-Name" + "Name": "0x55b4b26e2ba0-Name" }, { - "id": "0x555883477ba0-Name", + "id": "0x55b4b26e2ba0-Name", "source": "dp" }, { - "id": "0x55588345f860-EntityDecl", - "Name": "0x55588345f918-Name", - "Initialization": "0x55588345f860-Initialization" + "id": "0x55b4b26ca860-EntityDecl", + "Name": "0x55b4b26ca918-Name", + "Initialization": "0x55b4b26ca860-Initialization" }, { - "id": "0x55588345f918-Name", + "id": "0x55b4b26ca918-Name", "source": "c_double_d" }, { - "id": "0x55588345f860-Initialization", + "id": "0x55b4b26ca860-Initialization", "variantKey": "Expr", - "Expr": "0x55588345f770-Expr" + "Expr": "0x55b4b26ca770-Expr" }, { - "id": "0x55588345f770-Expr", + "id": "0x55b4b26ca770-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55588345f790-LiteralConstant" + "LiteralConstant": "0x55b4b26ca790-LiteralConstant" }, { - "id": "0x55588345f790-LiteralConstant", + "id": "0x55b4b26ca790-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x55588345f790-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x55b4b26ca790-ComplexLiteralConstant" }, { - "id": "0x55588345f790-ComplexLiteralConstant", - "real": "0x55588345f7e0-ComplexPart", - "imaginary": "0x55588345f790-ComplexPart" + "id": "0x55b4b26ca790-ComplexLiteralConstant", + "real": "0x55b4b26ca7e0-ComplexPart", + "imaginary": "0x55b4b26ca790-ComplexPart" }, { - "id": "0x55588345f7e0-ComplexPart", + "id": "0x55b4b26ca7e0-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x55588345f7e0-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55b4b26ca7e0-SignedRealLiteralConstant" }, { - "id": "0x55588345f7e0-SignedRealLiteralConstant", - "RealLiteralConstant": "0x55588345f7e0-RealLiteralConstant" + "id": "0x55b4b26ca7e0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55b4b26ca7e0-RealLiteralConstant" }, { - "id": "0x55588345f7e0-RealLiteralConstant", - "real": "0x55588345f7e0-Real" + "id": "0x55b4b26ca7e0-RealLiteralConstant", + "real": "0x55b4b26ca7e0-Real" }, { - "id": "0x55588345f7e0-Real", + "id": "0x55b4b26ca7e0-Real", "source": "1.0d0" }, { - "id": "0x55588345f790-ComplexPart", + "id": "0x55b4b26ca790-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x55588345f790-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55b4b26ca790-SignedRealLiteralConstant" }, { - "id": "0x55588345f790-SignedRealLiteralConstant", - "RealLiteralConstant": "0x55588345f790-RealLiteralConstant" + "id": "0x55b4b26ca790-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55b4b26ca790-RealLiteralConstant" }, { - "id": "0x55588345f790-RealLiteralConstant", - "real": "0x55588345f790-Real" + "id": "0x55b4b26ca790-RealLiteralConstant", + "real": "0x55b4b26ca790-Real" }, { - "id": "0x55588345f790-Real", + "id": "0x55b4b26ca790-Real", "source": "3.141592653589793d0" }, { - "id": "0x55588345fe20-DeclarationConstruct", + "id": "0x55b4b26cae20-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55588345fe20-SpecificationConstruct" + "SpecificationConstruct": "0x55b4b26cae20-SpecificationConstruct" }, { - "id": "0x55588345fe20-SpecificationConstruct", + "id": "0x55b4b26cae20-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55588345fe20-Statement" + "Statement": "0x55b4b26cae20-Statement" }, { - "id": "0x55588345fe20-Statement", - "statement": "0x55588345f060-TypeDeclarationStmt", + "id": "0x55b4b26cae20-Statement", + "statement": "0x55b4b26ca060-TypeDeclarationStmt", "source": "complex(dp) :: c_double_kind =(2.5_dp, -5.5_dp)" }, { - "id": "0x55588345f060-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55588345f090-DeclarationTypeSpec", + "id": "0x55b4b26ca060-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55b4b26ca090-DeclarationTypeSpec", "EntityDecl": [ - "0x55588345fd30-EntityDecl" + "0x55b4b26cad30-EntityDecl" ] }, { - "id": "0x55588345f090-DeclarationTypeSpec", + "id": "0x55b4b26ca090-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55588345f090-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55b4b26ca090-IntrinsicTypeSpec" }, { - "id": "0x55588345f090-IntrinsicTypeSpec", + "id": "0x55b4b26ca090-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x55588345f090-Complex" + "Complex": "0x55b4b26ca090-Complex" }, { - "id": "0x55588345f090-Complex", - "KindSelector": "0x55588345f090-KindSelector" + "id": "0x55b4b26ca090-Complex", + "KindSelector": "0x55b4b26ca090-KindSelector" }, { - "id": "0x55588345f090-KindSelector", + "id": "0x55b4b26ca090-KindSelector", "variantKey": "Expr", - "Expr": "0x55588345fb00-Expr" + "Expr": "0x55b4b26cab00-Expr" }, { - "id": "0x55588345fb00-Expr", + "id": "0x55b4b26cab00-Expr", "variantKey": "Designator", - "Designator": "0x555883440d90-Designator" + "Designator": "0x55b4b26abd90-Designator" }, { - "id": "0x555883440d90-Designator", + "id": "0x55b4b26abd90-Designator", "variantKey": "DataRef", - "DataRef": "0x555883440da0-DataRef" + "DataRef": "0x55b4b26abda0-DataRef" }, { - "id": "0x555883440da0-DataRef", + "id": "0x55b4b26abda0-DataRef", "variantKey": "Name", - "Name": "0x555883440da0-Name" + "Name": "0x55b4b26abda0-Name" }, { - "id": "0x555883440da0-Name", + "id": "0x55b4b26abda0-Name", "source": "dp" }, { - "id": "0x55588345fd30-EntityDecl", - "Name": "0x55588345fde8-Name", - "Initialization": "0x55588345fd30-Initialization" + "id": "0x55b4b26cad30-EntityDecl", + "Name": "0x55b4b26cade8-Name", + "Initialization": "0x55b4b26cad30-Initialization" }, { - "id": "0x55588345fde8-Name", + "id": "0x55b4b26cade8-Name", "source": "c_double_kind" }, { - "id": "0x55588345fd30-Initialization", + "id": "0x55b4b26cad30-Initialization", "variantKey": "Expr", - "Expr": "0x55588345fc40-Expr" + "Expr": "0x55b4b26cac40-Expr" }, { - "id": "0x55588345fc40-Expr", + "id": "0x55b4b26cac40-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55588345fc60-LiteralConstant" + "LiteralConstant": "0x55b4b26cac60-LiteralConstant" }, { - "id": "0x55588345fc60-LiteralConstant", + "id": "0x55b4b26cac60-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x55588345fc60-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x55b4b26cac60-ComplexLiteralConstant" }, { - "id": "0x55588345fc60-ComplexLiteralConstant", - "real": "0x55588345fcb0-ComplexPart", - "imaginary": "0x55588345fc60-ComplexPart" + "id": "0x55b4b26cac60-ComplexLiteralConstant", + "real": "0x55b4b26cacb0-ComplexPart", + "imaginary": "0x55b4b26cac60-ComplexPart" }, { - "id": "0x55588345fcb0-ComplexPart", + "id": "0x55b4b26cacb0-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x55588345fcb0-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55b4b26cacb0-SignedRealLiteralConstant" }, { - "id": "0x55588345fcb0-SignedRealLiteralConstant", - "RealLiteralConstant": "0x55588345fcb0-RealLiteralConstant" + "id": "0x55b4b26cacb0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55b4b26cacb0-RealLiteralConstant" }, { - "id": "0x55588345fcb0-RealLiteralConstant", - "real": "0x55588345fcb0-Real", - "kind": "0x55588345fcc0-KindParam" + "id": "0x55b4b26cacb0-RealLiteralConstant", + "real": "0x55b4b26cacb0-Real", + "kind": "0x55b4b26cacc0-KindParam" }, { - "id": "0x55588345fcb0-Real", + "id": "0x55b4b26cacb0-Real", "source": "2.5" }, { - "id": "0x55588345fcc0-KindParam", - "variantKey": "Expr", - "Expr": "0x55588345fcc0-Name" + "id": "0x55b4b26cacc0-KindParam", + "variantKey": "Name", + "Name": "0x55b4b26cacc0-Name" }, { - "id": "0x55588345fcc0-Name", + "id": "0x55b4b26cacc0-Name", "source": "dp" }, { - "id": "0x55588345fc60-ComplexPart", + "id": "0x55b4b26cac60-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x55588345fc60-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55b4b26cac60-SignedRealLiteralConstant" }, { - "id": "0x55588345fc60-SignedRealLiteralConstant", + "id": "0x55b4b26cac60-SignedRealLiteralConstant", "Sign": "-", - "RealLiteralConstant": "0x55588345fc60-RealLiteralConstant" + "RealLiteralConstant": "0x55b4b26cac60-RealLiteralConstant" }, { - "id": "0x55588345fc60-RealLiteralConstant", - "real": "0x55588345fc60-Real", - "kind": "0x55588345fc70-KindParam" + "id": "0x55b4b26cac60-RealLiteralConstant", + "real": "0x55b4b26cac60-Real", + "kind": "0x55b4b26cac70-KindParam" }, { - "id": "0x55588345fc60-Real", + "id": "0x55b4b26cac60-Real", "source": "5.5" }, { - "id": "0x55588345fc70-KindParam", - "variantKey": "Expr", - "Expr": "0x55588345fc70-Name" + "id": "0x55b4b26cac70-KindParam", + "variantKey": "Name", + "Name": "0x55b4b26cac70-Name" }, { - "id": "0x55588345fc70-Name", + "id": "0x55b4b26cac70-Name", "source": "dp" }, { - "id": "0x555883460210-DeclarationConstruct", + "id": "0x55b4b26cb210-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x555883460210-SpecificationConstruct" + "SpecificationConstruct": "0x55b4b26cb210-SpecificationConstruct" }, { - "id": "0x555883460210-SpecificationConstruct", + "id": "0x55b4b26cb210-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x555883460210-Statement" + "Statement": "0x55b4b26cb210-Statement" }, { - "id": "0x555883460210-Statement", - "statement": "0x55588345f0e0-TypeDeclarationStmt", + "id": "0x55b4b26cb210-Statement", + "statement": "0x55b4b26ca0e0-TypeDeclarationStmt", "source": "complex(sp) :: c_single_kind =(1.0_sp, 0.5_sp)" }, { - "id": "0x55588345f0e0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55588345f110-DeclarationTypeSpec", + "id": "0x55b4b26ca0e0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55b4b26ca110-DeclarationTypeSpec", "EntityDecl": [ - "0x555883460120-EntityDecl" + "0x55b4b26cb120-EntityDecl" ] }, { - "id": "0x55588345f110-DeclarationTypeSpec", + "id": "0x55b4b26ca110-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55588345f110-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55b4b26ca110-IntrinsicTypeSpec" }, { - "id": "0x55588345f110-IntrinsicTypeSpec", + "id": "0x55b4b26ca110-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x55588345f110-Complex" + "Complex": "0x55b4b26ca110-Complex" }, { - "id": "0x55588345f110-Complex", - "KindSelector": "0x55588345f110-KindSelector" + "id": "0x55b4b26ca110-Complex", + "KindSelector": "0x55b4b26ca110-KindSelector" }, { - "id": "0x55588345f110-KindSelector", + "id": "0x55b4b26ca110-KindSelector", "variantKey": "Expr", - "Expr": "0x55588345fef0-Expr" + "Expr": "0x55b4b26caef0-Expr" }, { - "id": "0x55588345fef0-Expr", + "id": "0x55b4b26caef0-Expr", "variantKey": "Designator", - "Designator": "0x555883441100-Designator" + "Designator": "0x55b4b26ac100-Designator" }, { - "id": "0x555883441100-Designator", + "id": "0x55b4b26ac100-Designator", "variantKey": "DataRef", - "DataRef": "0x555883441110-DataRef" + "DataRef": "0x55b4b26ac110-DataRef" }, { - "id": "0x555883441110-DataRef", + "id": "0x55b4b26ac110-DataRef", "variantKey": "Name", - "Name": "0x555883441110-Name" + "Name": "0x55b4b26ac110-Name" }, { - "id": "0x555883441110-Name", + "id": "0x55b4b26ac110-Name", "source": "sp" }, { - "id": "0x555883460120-EntityDecl", - "Name": "0x5558834601d8-Name", - "Initialization": "0x555883460120-Initialization" + "id": "0x55b4b26cb120-EntityDecl", + "Name": "0x55b4b26cb1d8-Name", + "Initialization": "0x55b4b26cb120-Initialization" }, { - "id": "0x5558834601d8-Name", + "id": "0x55b4b26cb1d8-Name", "source": "c_single_kind" }, { - "id": "0x555883460120-Initialization", + "id": "0x55b4b26cb120-Initialization", "variantKey": "Expr", - "Expr": "0x555883460030-Expr" + "Expr": "0x55b4b26cb030-Expr" }, { - "id": "0x555883460030-Expr", + "id": "0x55b4b26cb030-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x555883460050-LiteralConstant" + "LiteralConstant": "0x55b4b26cb050-LiteralConstant" }, { - "id": "0x555883460050-LiteralConstant", + "id": "0x55b4b26cb050-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x555883460050-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x55b4b26cb050-ComplexLiteralConstant" }, { - "id": "0x555883460050-ComplexLiteralConstant", - "real": "0x5558834600a0-ComplexPart", - "imaginary": "0x555883460050-ComplexPart" + "id": "0x55b4b26cb050-ComplexLiteralConstant", + "real": "0x55b4b26cb0a0-ComplexPart", + "imaginary": "0x55b4b26cb050-ComplexPart" }, { - "id": "0x5558834600a0-ComplexPart", + "id": "0x55b4b26cb0a0-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x5558834600a0-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55b4b26cb0a0-SignedRealLiteralConstant" }, { - "id": "0x5558834600a0-SignedRealLiteralConstant", - "RealLiteralConstant": "0x5558834600a0-RealLiteralConstant" + "id": "0x55b4b26cb0a0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55b4b26cb0a0-RealLiteralConstant" }, { - "id": "0x5558834600a0-RealLiteralConstant", - "real": "0x5558834600a0-Real", - "kind": "0x5558834600b0-KindParam" + "id": "0x55b4b26cb0a0-RealLiteralConstant", + "real": "0x55b4b26cb0a0-Real", + "kind": "0x55b4b26cb0b0-KindParam" }, { - "id": "0x5558834600a0-Real", + "id": "0x55b4b26cb0a0-Real", "source": "1.0" }, { - "id": "0x5558834600b0-KindParam", - "variantKey": "Expr", - "Expr": "0x5558834600b0-Name" + "id": "0x55b4b26cb0b0-KindParam", + "variantKey": "Name", + "Name": "0x55b4b26cb0b0-Name" }, { - "id": "0x5558834600b0-Name", + "id": "0x55b4b26cb0b0-Name", "source": "sp" }, { - "id": "0x555883460050-ComplexPart", + "id": "0x55b4b26cb050-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x555883460050-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55b4b26cb050-SignedRealLiteralConstant" }, { - "id": "0x555883460050-SignedRealLiteralConstant", - "RealLiteralConstant": "0x555883460050-RealLiteralConstant" + "id": "0x55b4b26cb050-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55b4b26cb050-RealLiteralConstant" }, { - "id": "0x555883460050-RealLiteralConstant", - "real": "0x555883460050-Real", - "kind": "0x555883460060-KindParam" + "id": "0x55b4b26cb050-RealLiteralConstant", + "real": "0x55b4b26cb050-Real", + "kind": "0x55b4b26cb060-KindParam" }, { - "id": "0x555883460050-Real", + "id": "0x55b4b26cb050-Real", "source": "0.5" }, { - "id": "0x555883460060-KindParam", - "variantKey": "Expr", - "Expr": "0x555883460060-Name" + "id": "0x55b4b26cb060-KindParam", + "variantKey": "Name", + "Name": "0x55b4b26cb060-Name" }, { - "id": "0x555883460060-Name", + "id": "0x55b4b26cb060-Name", "source": "sp" }, { - "id": "0x555883464098-ExecutionPart" + "id": "0x55b4b26cf098-ExecutionPart" }, { - "id": "0x555883464098-list" + "id": "0x55b4b26cf098-list" }, { - "id": "0x555883464010-Statement", - "statement": "0x555883464020-EndProgramStmt", + "id": "0x55b4b26cf010-Statement", + "statement": "0x55b4b26cf020-EndProgramStmt", "source": "end program COMPLEX_LITERAL" }, { - "id": "0x555883464020-EndProgramStmt", - "Name": "0x555883464020-Name" + "id": "0x55b4b26cf020-EndProgramStmt", + "Name": "0x55b4b26cf020-Name" }, { - "id": "0x555883464020-Name", + "id": "0x55b4b26cf020-Name", "source": "COMPLEX_LITERAL" } ], "comments": [ { "text": " 1. Basic Default Real Literals", - "stmtId": "0x55588345eab0-Statement", + "stmtId": "0x55b4b26c9ab0-Statement", "trailing": false }, { "text": " 2. Integer Components (automatically converted to real)", - "stmtId": "0x55588345ed60-Statement", + "stmtId": "0x55b4b26c9d60-Statement", "trailing": false }, { "text": " 3. Scientific / Exponential Notation", - "stmtId": "0x55588345f010-Statement", + "stmtId": "0x55b4b26ca010-Statement", "trailing": false }, { "text": " Represents (150.0, -0.2)", - "stmtId": "0x55588345f010-Statement", + "stmtId": "0x55b4b26ca010-Statement", "trailing": true }, { "text": " 4. Double Precision (using 'd' exponent notation)", - "stmtId": "0x55588345fa30-Statement", + "stmtId": "0x55b4b26caa30-Statement", "trailing": false }, { "text": " 5. Kind Parameter Suffixes (Modern Standard)", - "stmtId": "0x55588345fe20-Statement", + "stmtId": "0x55b4b26cae20-Statement", "trailing": false } ], diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java index b8020962..7f7b9636 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java @@ -23,8 +23,8 @@ public Optional getKindParam(String kindParamId) { var kindParam = kindParamAttrs.getString("uint64_t"); return Optional.of(kindParam); } - case "Expr" -> { - var nameAttrs = attributes().get(kindParamAttrs.getString(FlangName.EXPR)); + case "Name" -> { + var nameAttrs = attributes().get(kindParamAttrs.getString(FlangName.NAME)); var kindParam = nameAttrs.getString("source"); return Optional.of(kindParam); } From bdf56b0559f7c32328c416d4066f325e3c5c91f1 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 27 Jul 2026 22:27:33 +0100 Subject: [PATCH 148/260] Hide specifier keyword on allowed cases in generated code --- .../fortran/ast/nodes/io/ExprCloseSpec.java | 11 +- .../fortran/ast/nodes/io/ExprConnectSpec.java | 10 +- .../ast/nodes/io/ExprIoControlSpec.java | 9 +- .../fortran/ast/nodes/io/ExprWaitSpec.java | 11 +- .../ast/nodes/io/FormatIoControlSpec.java | 9 +- .../ast/nodes/io/NamelistIoControlSpec.java | 5 + .../ast/nodes/io/StarUnitIoControlSpec.java | 4 +- .../ast/nodes/io/UnitPosFlushSpec.java | 10 +- .../ast/nodes/io/VarIoControlSpec.java | 12 +- .../fortran/parser/io/io_control.expected.f90 | 24 +- .../fortran/parser/polybench/3mm.expected.f90 | 2 +- .../fortran/parser/polybench/3mm.json | 8439 ++++++++--------- .../up/fe/specs/fortran/parser/FlangData.java | 4 +- .../parser/processors/AllocProcessors.java | 5 +- 14 files changed, 4307 insertions(+), 4248 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprCloseSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprCloseSpec.java index ba494e54..e8d09f8d 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprCloseSpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprCloseSpec.java @@ -6,6 +6,7 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; import pt.up.fe.specs.fortran.ast.nodes.io.enums.ExprCloseSpecKind; +import pt.up.fe.specs.fortran.ast.nodes.io.enums.ExprConnectSpecKind; import java.util.Collection; @@ -26,6 +27,14 @@ public Expr getExpr() { @Override public String getCode() { - return encase(getKind().name()) + "=" + getExpr().getCode(); + var kind = getKind(); + var exprCode = getExpr().getCode(); + + // We can omit "UNIT=" from the first specifier + if (kind == ExprCloseSpecKind.UNIT && indexOfSelf() == 0) { + return exprCode; + } + + return encase(kind.name()) + "=" + exprCode; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprConnectSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprConnectSpec.java index 3b25e460..fa95274f 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprConnectSpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprConnectSpec.java @@ -6,6 +6,7 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; import pt.up.fe.specs.fortran.ast.nodes.io.enums.ExprConnectSpecKind; +import pt.up.fe.specs.fortran.ast.nodes.io.enums.ExprIoControlSpecKind; import java.util.Collection; @@ -26,9 +27,14 @@ public Expr getExpr() { @Override public String getCode() { - var kindCode = encase(getKind().name()); + var kind = getKind(); var exprCode = getExpr().getCode(); - return kindCode + "=" + exprCode; + // We can omit "UNIT=" from the first specifier + if (kind == ExprConnectSpecKind.UNIT && indexOfSelf() == 0) { + return exprCode; + } + + return encase(kind.name()) + "=" + exprCode; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprIoControlSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprIoControlSpec.java index d682c8b4..ea236f33 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprIoControlSpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprIoControlSpec.java @@ -26,9 +26,14 @@ public Expr getExpr() { @Override public String getCode() { - var kindCode = encase(getKind().name()); + var kind = getKind(); var exprCode = getExpr().getCode(); - return kindCode + "=" + exprCode; + // We can omit "UNIT=" from the first specifier + if (kind == ExprIoControlSpecKind.UNIT && indexOfSelf() == 0) { + return exprCode; + } + + return encase(kind.name()) + "=" + exprCode; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprWaitSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprWaitSpec.java index 741f5dba..15f422d0 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprWaitSpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprWaitSpec.java @@ -5,6 +5,7 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; +import pt.up.fe.specs.fortran.ast.nodes.io.enums.ExprConnectSpecKind; import pt.up.fe.specs.fortran.ast.nodes.io.enums.ExprWaitSpecKind; import java.util.Collection; @@ -26,6 +27,14 @@ public Expr getExpr() { @Override public String getCode() { - return encase(getKind().name()) + "=" + getExpr().getCode(); + var kind = getKind(); + var exprCode = getExpr().getCode(); + + // We can omit "UNIT=" from the first specifier + if (kind == ExprWaitSpecKind.UNIT && indexOfSelf() == 0) { + return exprCode; + } + + return encase(kind.name()) + "=" + exprCode; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/FormatIoControlSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/FormatIoControlSpec.java index 6115cdc9..675bac45 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/FormatIoControlSpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/FormatIoControlSpec.java @@ -18,6 +18,13 @@ public Format getFormat() { @Override public String getCode() { - return keyword(FortranKeyword.FMT) + "=" + getFormat().getCode(); + var formatCode = getFormat().getCode(); + + // We can omit "FMT=" on a format specifier right after the first unit specifier (if non-labeled too) + if (indexOfSelf() == 1) { + return formatCode; + } + + return keyword(FortranKeyword.FMT) + "=" + formatCode; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/NamelistIoControlSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/NamelistIoControlSpec.java index 455837fd..bdb8f1cb 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/NamelistIoControlSpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/NamelistIoControlSpec.java @@ -21,6 +21,11 @@ public String getNamelistName() { @Override public String getCode() { + // We can omit "NML=" on a namelist specifier right after the first unit specifier (if non-labeled too) + if (indexOfSelf() == 1) { + return getNamelistName(); + } + return keyword(FortranKeyword.NML) + "=" + getNamelistName(); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/StarUnitIoControlSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/StarUnitIoControlSpec.java index 5737b964..ae232cb5 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/StarUnitIoControlSpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/StarUnitIoControlSpec.java @@ -3,6 +3,7 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.io.enums.ExprIoControlSpecKind; import java.util.Collection; @@ -13,6 +14,7 @@ public StarUnitIoControlSpec(DataStore data, Collection c @Override public String getCode() { - return keyword(FortranKeyword.UNIT) + "=*"; + // We can omit "UNIT=" from the first specifier + return indexOfSelf() == 0 ? "*" : keyword(FortranKeyword.UNIT) + "=*"; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/UnitPosFlushSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/UnitPosFlushSpec.java index 51888f38..28356b13 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/UnitPosFlushSpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/UnitPosFlushSpec.java @@ -4,6 +4,7 @@ import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; +import pt.up.fe.specs.fortran.ast.nodes.io.enums.ExprIoControlSpecKind; import java.util.Collection; @@ -18,6 +19,13 @@ public Expr getExpr() { @Override public String getCode() { - return keyword(FortranKeyword.UNIT) + "=" + getExpr().getCode(); + var exprCode = getExpr().getCode(); + + // We can omit "UNIT=" from the first specifier + if (indexOfSelf() == 0) { + return exprCode; + } + + return keyword(FortranKeyword.UNIT) + "=" + exprCode; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/VarIoControlSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/VarIoControlSpec.java index 5945e4da..bcabd19c 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/VarIoControlSpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/VarIoControlSpec.java @@ -5,6 +5,7 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.decl.Variable; +import pt.up.fe.specs.fortran.ast.nodes.io.enums.ExprIoControlSpecKind; import pt.up.fe.specs.fortran.ast.nodes.io.enums.VarIoControlSpecKind; import java.util.Collection; @@ -26,9 +27,14 @@ public Variable getVariable() { @Override public String getCode() { - var kindCode = encase(getKind().name()); - var varCode = getVariable().getCode(); + var kind = getKind(); + var variableCode = getVariable().getCode(); - return kindCode + "=" + varCode; + // We can omit "UNIT=" from the first specifier + if (kind == VarIoControlSpecKind.UNIT && indexOfSelf() == 0) { + return variableCode; + } + + return encase(kind.name()) + "=" + variableCode; } } diff --git a/FortranParser/resources-test/fortran/parser/io/io_control.expected.f90 b/FortranParser/resources-test/fortran/parser/io/io_control.expected.f90 index 310ace4c..b8a94901 100644 --- a/FortranParser/resources-test/fortran/parser/io/io_control.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/io/io_control.expected.f90 @@ -18,20 +18,20 @@ PROGRAM IO_CONTROL_SPECS ! ----------------------------------------------------------------- ! 1. Formatting, Rounding, Decimal, Sign, Delim, IOSTAT & IOMSG ! ----------------------------------------------------------------- - WRITE(UNIT=u_seq, FMT=*, DECIMAL="comma", SIGN="plus", ROUND="up", DELIM="quote", IOSTAT=ios, IOMSG=io_message) + WRITE(u_seq, *, DECIMAL="comma", SIGN="plus", ROUND="up", DELIM="quote", IOSTAT=ios, IOMSG=io_message) ! ----------------------------------------------------------------- ! 2. Namelist Specifier (NML) ! ----------------------------------------------------------------- - WRITE(UNIT=u_seq, NML=my_namelist, IOSTAT=ios) + WRITE(u_seq, my_namelist, IOSTAT=ios) ! ----------------------------------------------------------------- ! 3. Non-Advancing I/O (ADVANCE, SIZE, PAD, EOR, ERR) ! ----------------------------------------------------------------- - REWIND(UNIT=u_seq) - READ(UNIT=u_seq, FMT="(A)", ADVANCE="no", PAD="yes", SIZE=chars_read, EOR=100, ERR=900, IOSTAT=ios) text_buffer + REWIND(u_seq) + READ(u_seq, "(A)", ADVANCE="no", PAD="yes", SIZE=chars_read, EOR=100, ERR=900, IOSTAT=ios) text_buffer 100 CONTINUE @@ -39,35 +39,35 @@ PROGRAM IO_CONTROL_SPECS ! ----------------------------------------------------------------- ! 4. Direct Access (REC) ! ----------------------------------------------------------------- - WRITE(UNIT=u_dir, REC=1, IOSTAT=ios) val, x + WRITE(u_dir, REC=1, IOSTAT=ios) val, x ! ----------------------------------------------------------------- ! 5. Stream Access (POS) ! ----------------------------------------------------------------- - WRITE(UNIT=u_stream, POS=10, IOSTAT=ios) "Stream Header" + WRITE(u_stream, POS=10, IOSTAT=ios) "Stream Header" ! ----------------------------------------------------------------- ! 6. Asynchronous Non-Blocking I/O (ASYNCHRONOUS, ID) ! ----------------------------------------------------------------- - WRITE(UNIT=u_seq, FMT="(I5)", ASYNCHRONOUS="yes", ID=async_id, IOSTAT=ios) val + WRITE(u_seq, "(I5)", ASYNCHRONOUS="yes", ID=async_id, IOSTAT=ios) val ! Wait for async operation to complete before continuing - WAIT(UNIT=u_seq, ID=async_id) + WAIT(u_seq, ID=async_id) ! ----------------------------------------------------------------- ! 7. Input Blank Handling and EOF Branching (BLANK, END) ! ----------------------------------------------------------------- - READ(UNIT=u_seq, FMT="(I5)", BLANK="zero", END=200, ERR=900, IOSTAT=ios) val + READ(u_seq, "(I5)", BLANK="zero", END=200, ERR=900, IOSTAT=ios) val 200 CONTINUE PRINT *, "All 20 io-control-spec items demonstrated successfully!" ! Clean up files - CLOSE(UNIT=u_seq, STATUS="delete") - CLOSE(UNIT=u_dir, STATUS="delete") - CLOSE(UNIT=u_stream, STATUS="delete") + CLOSE(u_seq, STATUS="delete") + CLOSE(u_dir, STATUS="delete") + CLOSE(u_stream, STATUS="delete") STOP 900 PRINT *, "I/O Error Occurred: ", trim(io_message) diff --git a/FortranParser/resources-test/fortran/parser/polybench/3mm.expected.f90 b/FortranParser/resources-test/fortran/parser/polybench/3mm.expected.f90 index b28baed9..5f63f55b 100644 --- a/FortranParser/resources-test/fortran/parser/polybench/3mm.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/polybench/3mm.expected.f90 @@ -86,7 +86,7 @@ SUBROUTINE print_array(ni, nl, g) INTEGER :: i, j DO i = 1, ni DO j = 1, nl -WRITE(0, "(f0.2,1x)", advance="no") g(j, i) +WRITE(0, "(f0.2,1x)", ADVANCE="no") g(j, i) IF (mod(((i - 1) * ni) + j - 1, 20) == 0) THEN WRITE(0, *) END IF diff --git a/FortranParser/resources-test/fortran/parser/polybench/3mm.json b/FortranParser/resources-test/fortran/parser/polybench/3mm.json index ba455bbe..70b5c2db 100644 --- a/FortranParser/resources-test/fortran/parser/polybench/3mm.json +++ b/FortranParser/resources-test/fortran/parser/polybench/3mm.json @@ -2,10534 +2,10533 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x558d739a5f00-Program", + "id": "0x55dbc10b3f00-Program", "ProgramUnit": [ - "0x558d739f36c0-ProgramUnit" + "0x55dbc11016c0-ProgramUnit" ] }, { - "id": "0x558d739f36c0-ProgramUnit", + "id": "0x55dbc11016c0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x558d739e4030-MainProgram" + "MainProgram": "0x55dbc10f2030-MainProgram" }, { - "id": "0x558d739e4030-MainProgram", - "Statement": "0x558d739e4178-Statement", - "SpecificationPart": "0x558d739e40d0-SpecificationPart", - "ExecutionPart": "0x558d739e40b8-ExecutionPart", - "InternalSubprogramPart": "0x558d739e4070-InternalSubprogramPart", - "Statement": "0x558d739e4030-Statement" + "id": "0x55dbc10f2030-MainProgram", + "Statement": "0x55dbc10f2178-Statement", + "SpecificationPart": "0x55dbc10f20d0-SpecificationPart", + "ExecutionPart": "0x55dbc10f20b8-ExecutionPart", + "InternalSubprogramPart": "0x55dbc10f2070-InternalSubprogramPart", + "Statement": "0x55dbc10f2030-Statement" }, { - "id": "0x558d739e4178-Statement", - "statement": "0x558d739e4188-ProgramStmt", + "id": "0x55dbc10f2178-Statement", + "statement": "0x55dbc10f2188-ProgramStmt", "source": "program THREE_MM" }, { - "id": "0x558d739e4188-ProgramStmt", - "Name": "0x558d739e4188-Name" + "id": "0x55dbc10f2188-ProgramStmt", + "Name": "0x55dbc10f2188-Name" }, { - "id": "0x558d739e4188-Name", + "id": "0x55dbc10f2188-Name", "source": "THREE_MM" }, { - "id": "0x558d739e40d0-SpecificationPart", - "ImplicitPart": "0x558d739e40e8-ImplicitPart", + "id": "0x55dbc10f20d0-SpecificationPart", + "ImplicitPart": "0x55dbc10f20e8-ImplicitPart", "DeclarationConstruct": [ - "0x558d739b3110-DeclarationConstruct", - "0x558d739b2da0-DeclarationConstruct", - "0x558d739e8700-DeclarationConstruct", - "0x558d739e8760-DeclarationConstruct", - "0x558d739d0870-DeclarationConstruct", - "0x558d739d0b60-DeclarationConstruct", - "0x558d739d0dd0-DeclarationConstruct", - "0x558d739b3170-DeclarationConstruct" + "0x55dbc10c1110-DeclarationConstruct", + "0x55dbc10c0da0-DeclarationConstruct", + "0x55dbc10f6700-DeclarationConstruct", + "0x55dbc10f6760-DeclarationConstruct", + "0x55dbc10de870-DeclarationConstruct", + "0x55dbc10deb60-DeclarationConstruct", + "0x55dbc10dedd0-DeclarationConstruct", + "0x55dbc10c1170-DeclarationConstruct" ] }, { - "id": "0x558d739e40e8-ImplicitPart" + "id": "0x55dbc10f20e8-ImplicitPart" }, { - "id": "0x558d739b3110-DeclarationConstruct", + "id": "0x55dbc10c1110-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558d739b3110-SpecificationConstruct" + "SpecificationConstruct": "0x55dbc10c1110-SpecificationConstruct" }, { - "id": "0x558d739b3110-SpecificationConstruct", + "id": "0x55dbc10c1110-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558d739b3110-Statement" + "Statement": "0x55dbc10c1110-Statement" }, { - "id": "0x558d739b3110-Statement", - "statement": "0x558d739e7ea0-TypeDeclarationStmt", + "id": "0x55dbc10c1110-Statement", + "statement": "0x55dbc10f5ea0-TypeDeclarationStmt", "source": "double precision, dimension(:, :), allocatable :: a" }, { - "id": "0x558d739e7ea0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558d739e7ed0-DeclarationTypeSpec", + "id": "0x55dbc10f5ea0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55dbc10f5ed0-DeclarationTypeSpec", "AttrSpec": [ - "0x558d739e3e20-AttrSpec", - "0x558d739eaf80-AttrSpec" + "0x55dbc10f1e20-AttrSpec", + "0x55dbc10f8f80-AttrSpec" ], "EntityDecl": [ - "0x558d739e8250-EntityDecl" + "0x55dbc10f6250-EntityDecl" ] }, { - "id": "0x558d739e7ed0-DeclarationTypeSpec", + "id": "0x55dbc10f5ed0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558d739e7ed0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55dbc10f5ed0-IntrinsicTypeSpec" }, { - "id": "0x558d739e7ed0-IntrinsicTypeSpec", + "id": "0x55dbc10f5ed0-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x558d739e7ed0-DoublePrecision" + "DoublePrecision": "0x55dbc10f5ed0-DoublePrecision" }, { - "id": "0x558d739e7ed0-DoublePrecision" + "id": "0x55dbc10f5ed0-DoublePrecision" }, { - "id": "0x558d739e3e20-AttrSpec", + "id": "0x55dbc10f1e20-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x558d739e3e20-ArraySpec" + "ArraySpec": "0x55dbc10f1e20-ArraySpec" }, { - "id": "0x558d739e3e20-ArraySpec", + "id": "0x55dbc10f1e20-ArraySpec", "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x558d739e3e20-DeferredShapeSpecList" + "DeferredShapeSpecList": "0x55dbc10f1e20-DeferredShapeSpecList" }, { - "id": "0x558d739e3e20-DeferredShapeSpecList", + "id": "0x55dbc10f1e20-DeferredShapeSpecList", "int": "2" }, { - "id": "0x558d739eaf80-AttrSpec", + "id": "0x55dbc10f8f80-AttrSpec", "variantKey": "Allocatable", - "Allocatable": "0x558d739eaf80-Allocatable" + "Allocatable": "0x55dbc10f8f80-Allocatable" }, { - "id": "0x558d739eaf80-Allocatable", + "id": "0x55dbc10f8f80-Allocatable", "keyword": "Allocatable" }, { - "id": "0x558d739e8250-EntityDecl", - "Name": "0x558d739e8308-Name" + "id": "0x55dbc10f6250-EntityDecl", + "Name": "0x55dbc10f6308-Name" }, { - "id": "0x558d739e8308-Name", + "id": "0x55dbc10f6308-Name", "source": "a" }, { - "id": "0x558d739b2da0-DeclarationConstruct", + "id": "0x55dbc10c0da0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558d739b2da0-SpecificationConstruct" + "SpecificationConstruct": "0x55dbc10c0da0-SpecificationConstruct" }, { - "id": "0x558d739b2da0-SpecificationConstruct", + "id": "0x55dbc10c0da0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558d739b2da0-Statement" + "Statement": "0x55dbc10c0da0-Statement" }, { - "id": "0x558d739b2da0-Statement", - "statement": "0x558d739e7f20-TypeDeclarationStmt", + "id": "0x55dbc10c0da0-Statement", + "statement": "0x55dbc10f5f20-TypeDeclarationStmt", "source": "double precision, dimension(:, :), allocatable :: b" }, { - "id": "0x558d739e7f20-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558d739e7f50-DeclarationTypeSpec", + "id": "0x55dbc10f5f20-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55dbc10f5f50-DeclarationTypeSpec", "AttrSpec": [ - "0x558d739dc1a0-AttrSpec", - "0x558d739bec80-AttrSpec" + "0x55dbc10ea1a0-AttrSpec", + "0x55dbc10ccc80-AttrSpec" ], "EntityDecl": [ - "0x558d739e84a0-EntityDecl" + "0x55dbc10f64a0-EntityDecl" ] }, { - "id": "0x558d739e7f50-DeclarationTypeSpec", + "id": "0x55dbc10f5f50-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558d739e7f50-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55dbc10f5f50-IntrinsicTypeSpec" }, { - "id": "0x558d739e7f50-IntrinsicTypeSpec", + "id": "0x55dbc10f5f50-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x558d739e7f50-DoublePrecision" + "DoublePrecision": "0x55dbc10f5f50-DoublePrecision" }, { - "id": "0x558d739e7f50-DoublePrecision" + "id": "0x55dbc10f5f50-DoublePrecision" }, { - "id": "0x558d739dc1a0-AttrSpec", + "id": "0x55dbc10ea1a0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x558d739dc1a0-ArraySpec" + "ArraySpec": "0x55dbc10ea1a0-ArraySpec" }, { - "id": "0x558d739dc1a0-ArraySpec", + "id": "0x55dbc10ea1a0-ArraySpec", "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x558d739dc1a0-DeferredShapeSpecList" + "DeferredShapeSpecList": "0x55dbc10ea1a0-DeferredShapeSpecList" }, { - "id": "0x558d739dc1a0-DeferredShapeSpecList", + "id": "0x55dbc10ea1a0-DeferredShapeSpecList", "int": "2" }, { - "id": "0x558d739bec80-AttrSpec", + "id": "0x55dbc10ccc80-AttrSpec", "variantKey": "Allocatable", - "Allocatable": "0x558d739bec80-Allocatable" + "Allocatable": "0x55dbc10ccc80-Allocatable" }, { - "id": "0x558d739bec80-Allocatable", + "id": "0x55dbc10ccc80-Allocatable", "keyword": "Allocatable" }, { - "id": "0x558d739e84a0-EntityDecl", - "Name": "0x558d739e8558-Name" + "id": "0x55dbc10f64a0-EntityDecl", + "Name": "0x55dbc10f6558-Name" }, { - "id": "0x558d739e8558-Name", + "id": "0x55dbc10f6558-Name", "source": "b" }, { - "id": "0x558d739e8700-DeclarationConstruct", + "id": "0x55dbc10f6700-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558d739e8700-SpecificationConstruct" + "SpecificationConstruct": "0x55dbc10f6700-SpecificationConstruct" }, { - "id": "0x558d739e8700-SpecificationConstruct", + "id": "0x55dbc10f6700-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558d739e8700-Statement" + "Statement": "0x55dbc10f6700-Statement" }, { - "id": "0x558d739e8700-Statement", - "statement": "0x558d739e8410-TypeDeclarationStmt", + "id": "0x55dbc10f6700-Statement", + "statement": "0x55dbc10f6410-TypeDeclarationStmt", "source": "double precision, dimension(:, :), allocatable :: c" }, { - "id": "0x558d739e8410-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558d739e8440-DeclarationTypeSpec", + "id": "0x55dbc10f6410-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55dbc10f6440-DeclarationTypeSpec", "AttrSpec": [ - "0x558d739de2c0-AttrSpec", - "0x558d739ea580-AttrSpec" + "0x55dbc10ec2c0-AttrSpec", + "0x55dbc10f8580-AttrSpec" ], "EntityDecl": [ - "0x558d739e8610-EntityDecl" + "0x55dbc10f6610-EntityDecl" ] }, { - "id": "0x558d739e8440-DeclarationTypeSpec", + "id": "0x55dbc10f6440-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558d739e8440-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55dbc10f6440-IntrinsicTypeSpec" }, { - "id": "0x558d739e8440-IntrinsicTypeSpec", + "id": "0x55dbc10f6440-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x558d739e8440-DoublePrecision" + "DoublePrecision": "0x55dbc10f6440-DoublePrecision" }, { - "id": "0x558d739e8440-DoublePrecision" + "id": "0x55dbc10f6440-DoublePrecision" }, { - "id": "0x558d739de2c0-AttrSpec", + "id": "0x55dbc10ec2c0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x558d739de2c0-ArraySpec" + "ArraySpec": "0x55dbc10ec2c0-ArraySpec" }, { - "id": "0x558d739de2c0-ArraySpec", + "id": "0x55dbc10ec2c0-ArraySpec", "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x558d739de2c0-DeferredShapeSpecList" + "DeferredShapeSpecList": "0x55dbc10ec2c0-DeferredShapeSpecList" }, { - "id": "0x558d739de2c0-DeferredShapeSpecList", + "id": "0x55dbc10ec2c0-DeferredShapeSpecList", "int": "2" }, { - "id": "0x558d739ea580-AttrSpec", + "id": "0x55dbc10f8580-AttrSpec", "variantKey": "Allocatable", - "Allocatable": "0x558d739ea580-Allocatable" + "Allocatable": "0x55dbc10f8580-Allocatable" }, { - "id": "0x558d739ea580-Allocatable", + "id": "0x55dbc10f8580-Allocatable", "keyword": "Allocatable" }, { - "id": "0x558d739e8610-EntityDecl", - "Name": "0x558d739e86c8-Name" + "id": "0x55dbc10f6610-EntityDecl", + "Name": "0x55dbc10f66c8-Name" }, { - "id": "0x558d739e86c8-Name", + "id": "0x55dbc10f66c8-Name", "source": "c" }, { - "id": "0x558d739e8760-DeclarationConstruct", + "id": "0x55dbc10f6760-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558d739e8760-SpecificationConstruct" + "SpecificationConstruct": "0x55dbc10f6760-SpecificationConstruct" }, { - "id": "0x558d739e8760-SpecificationConstruct", + "id": "0x55dbc10f6760-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558d739e8760-Statement" + "Statement": "0x55dbc10f6760-Statement" }, { - "id": "0x558d739e8760-Statement", - "statement": "0x558d739e8580-TypeDeclarationStmt", + "id": "0x55dbc10f6760-Statement", + "statement": "0x55dbc10f6580-TypeDeclarationStmt", "source": "double precision, dimension(:, :), allocatable :: d" }, { - "id": "0x558d739e8580-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558d739e85b0-DeclarationTypeSpec", + "id": "0x55dbc10f6580-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55dbc10f65b0-DeclarationTypeSpec", "AttrSpec": [ - "0x558d739ea530-AttrSpec", - "0x558d739e4310-AttrSpec" + "0x55dbc10f8530-AttrSpec", + "0x55dbc10f2310-AttrSpec" ], "EntityDecl": [ - "0x558d739e3c00-EntityDecl" + "0x55dbc10f1c00-EntityDecl" ] }, { - "id": "0x558d739e85b0-DeclarationTypeSpec", + "id": "0x55dbc10f65b0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558d739e85b0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55dbc10f65b0-IntrinsicTypeSpec" }, { - "id": "0x558d739e85b0-IntrinsicTypeSpec", + "id": "0x55dbc10f65b0-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x558d739e85b0-DoublePrecision" + "DoublePrecision": "0x55dbc10f65b0-DoublePrecision" }, { - "id": "0x558d739e85b0-DoublePrecision" + "id": "0x55dbc10f65b0-DoublePrecision" }, { - "id": "0x558d739ea530-AttrSpec", + "id": "0x55dbc10f8530-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x558d739ea530-ArraySpec" + "ArraySpec": "0x55dbc10f8530-ArraySpec" }, { - "id": "0x558d739ea530-ArraySpec", + "id": "0x55dbc10f8530-ArraySpec", "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x558d739ea530-DeferredShapeSpecList" + "DeferredShapeSpecList": "0x55dbc10f8530-DeferredShapeSpecList" }, { - "id": "0x558d739ea530-DeferredShapeSpecList", + "id": "0x55dbc10f8530-DeferredShapeSpecList", "int": "2" }, { - "id": "0x558d739e4310-AttrSpec", + "id": "0x55dbc10f2310-AttrSpec", "variantKey": "Allocatable", - "Allocatable": "0x558d739e4310-Allocatable" + "Allocatable": "0x55dbc10f2310-Allocatable" }, { - "id": "0x558d739e4310-Allocatable", + "id": "0x55dbc10f2310-Allocatable", "keyword": "Allocatable" }, { - "id": "0x558d739e3c00-EntityDecl", - "Name": "0x558d739e3cb8-Name" + "id": "0x55dbc10f1c00-EntityDecl", + "Name": "0x55dbc10f1cb8-Name" }, { - "id": "0x558d739e3cb8-Name", + "id": "0x55dbc10f1cb8-Name", "source": "d" }, { - "id": "0x558d739d0870-DeclarationConstruct", + "id": "0x55dbc10de870-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558d739d0870-SpecificationConstruct" + "SpecificationConstruct": "0x55dbc10de870-SpecificationConstruct" }, { - "id": "0x558d739d0870-SpecificationConstruct", + "id": "0x55dbc10de870-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558d739d0870-Statement" + "Statement": "0x55dbc10de870-Statement" }, { - "id": "0x558d739d0870-Statement", - "statement": "0x558d7395b2d0-TypeDeclarationStmt", + "id": "0x55dbc10de870-Statement", + "statement": "0x55dbc10692d0-TypeDeclarationStmt", "source": "double precision, dimension(:, :), allocatable :: e" }, { - "id": "0x558d7395b2d0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558d7395b300-DeclarationTypeSpec", + "id": "0x55dbc10692d0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55dbc1069300-DeclarationTypeSpec", "AttrSpec": [ - "0x558d739da3f0-AttrSpec", - "0x558d739cd100-AttrSpec" + "0x55dbc10e83f0-AttrSpec", + "0x55dbc10db100-AttrSpec" ], "EntityDecl": [ - "0x558d739d0780-EntityDecl" + "0x55dbc10de780-EntityDecl" ] }, { - "id": "0x558d7395b300-DeclarationTypeSpec", + "id": "0x55dbc1069300-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558d7395b300-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55dbc1069300-IntrinsicTypeSpec" }, { - "id": "0x558d7395b300-IntrinsicTypeSpec", + "id": "0x55dbc1069300-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x558d7395b300-DoublePrecision" + "DoublePrecision": "0x55dbc1069300-DoublePrecision" }, { - "id": "0x558d7395b300-DoublePrecision" + "id": "0x55dbc1069300-DoublePrecision" }, { - "id": "0x558d739da3f0-AttrSpec", + "id": "0x55dbc10e83f0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x558d739da3f0-ArraySpec" + "ArraySpec": "0x55dbc10e83f0-ArraySpec" }, { - "id": "0x558d739da3f0-ArraySpec", + "id": "0x55dbc10e83f0-ArraySpec", "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x558d739da3f0-DeferredShapeSpecList" + "DeferredShapeSpecList": "0x55dbc10e83f0-DeferredShapeSpecList" }, { - "id": "0x558d739da3f0-DeferredShapeSpecList", + "id": "0x55dbc10e83f0-DeferredShapeSpecList", "int": "2" }, { - "id": "0x558d739cd100-AttrSpec", + "id": "0x55dbc10db100-AttrSpec", "variantKey": "Allocatable", - "Allocatable": "0x558d739cd100-Allocatable" + "Allocatable": "0x55dbc10db100-Allocatable" }, { - "id": "0x558d739cd100-Allocatable", + "id": "0x55dbc10db100-Allocatable", "keyword": "Allocatable" }, { - "id": "0x558d739d0780-EntityDecl", - "Name": "0x558d739d0838-Name" + "id": "0x55dbc10de780-EntityDecl", + "Name": "0x55dbc10de838-Name" }, { - "id": "0x558d739d0838-Name", + "id": "0x55dbc10de838-Name", "source": "e" }, { - "id": "0x558d739d0b60-DeclarationConstruct", + "id": "0x55dbc10deb60-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558d739d0b60-SpecificationConstruct" + "SpecificationConstruct": "0x55dbc10deb60-SpecificationConstruct" }, { - "id": "0x558d739d0b60-SpecificationConstruct", + "id": "0x55dbc10deb60-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558d739d0b60-Statement" + "Statement": "0x55dbc10deb60-Statement" }, { - "id": "0x558d739d0b60-Statement", - "statement": "0x558d739d08c0-TypeDeclarationStmt", + "id": "0x55dbc10deb60-Statement", + "statement": "0x55dbc10de8c0-TypeDeclarationStmt", "source": "double precision, dimension(:, :), allocatable :: f" }, { - "id": "0x558d739d08c0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558d739d08f0-DeclarationTypeSpec", + "id": "0x55dbc10de8c0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55dbc10de8f0-DeclarationTypeSpec", "AttrSpec": [ - "0x558d739d0a20-AttrSpec", - "0x558d739d09d0-AttrSpec" + "0x55dbc10dea20-AttrSpec", + "0x55dbc10de9d0-AttrSpec" ], "EntityDecl": [ - "0x558d739d0a70-EntityDecl" + "0x55dbc10dea70-EntityDecl" ] }, { - "id": "0x558d739d08f0-DeclarationTypeSpec", + "id": "0x55dbc10de8f0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558d739d08f0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55dbc10de8f0-IntrinsicTypeSpec" }, { - "id": "0x558d739d08f0-IntrinsicTypeSpec", + "id": "0x55dbc10de8f0-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x558d739d08f0-DoublePrecision" + "DoublePrecision": "0x55dbc10de8f0-DoublePrecision" }, { - "id": "0x558d739d08f0-DoublePrecision" + "id": "0x55dbc10de8f0-DoublePrecision" }, { - "id": "0x558d739d0a20-AttrSpec", + "id": "0x55dbc10dea20-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x558d739d0a20-ArraySpec" + "ArraySpec": "0x55dbc10dea20-ArraySpec" }, { - "id": "0x558d739d0a20-ArraySpec", + "id": "0x55dbc10dea20-ArraySpec", "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x558d739d0a20-DeferredShapeSpecList" + "DeferredShapeSpecList": "0x55dbc10dea20-DeferredShapeSpecList" }, { - "id": "0x558d739d0a20-DeferredShapeSpecList", + "id": "0x55dbc10dea20-DeferredShapeSpecList", "int": "2" }, { - "id": "0x558d739d09d0-AttrSpec", + "id": "0x55dbc10de9d0-AttrSpec", "variantKey": "Allocatable", - "Allocatable": "0x558d739d09d0-Allocatable" + "Allocatable": "0x55dbc10de9d0-Allocatable" }, { - "id": "0x558d739d09d0-Allocatable", + "id": "0x55dbc10de9d0-Allocatable", "keyword": "Allocatable" }, { - "id": "0x558d739d0a70-EntityDecl", - "Name": "0x558d739d0b28-Name" + "id": "0x55dbc10dea70-EntityDecl", + "Name": "0x55dbc10deb28-Name" }, { - "id": "0x558d739d0b28-Name", + "id": "0x55dbc10deb28-Name", "source": "f" }, { - "id": "0x558d739d0dd0-DeclarationConstruct", + "id": "0x55dbc10dedd0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558d739d0dd0-SpecificationConstruct" + "SpecificationConstruct": "0x55dbc10dedd0-SpecificationConstruct" }, { - "id": "0x558d739d0dd0-SpecificationConstruct", + "id": "0x55dbc10dedd0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558d739d0dd0-Statement" + "Statement": "0x55dbc10dedd0-Statement" }, { - "id": "0x558d739d0dd0-Statement", - "statement": "0x558d739d0940-TypeDeclarationStmt", + "id": "0x55dbc10dedd0-Statement", + "statement": "0x55dbc10de940-TypeDeclarationStmt", "source": "double precision, dimension(:, :), allocatable :: g" }, { - "id": "0x558d739d0940-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558d739d0970-DeclarationTypeSpec", + "id": "0x55dbc10de940-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55dbc10de970-DeclarationTypeSpec", "AttrSpec": [ - "0x558d739d0c90-AttrSpec", - "0x558d739d0c40-AttrSpec" + "0x55dbc10dec90-AttrSpec", + "0x55dbc10dec40-AttrSpec" ], "EntityDecl": [ - "0x558d739d0ce0-EntityDecl" + "0x55dbc10dece0-EntityDecl" ] }, { - "id": "0x558d739d0970-DeclarationTypeSpec", + "id": "0x55dbc10de970-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558d739d0970-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55dbc10de970-IntrinsicTypeSpec" }, { - "id": "0x558d739d0970-IntrinsicTypeSpec", + "id": "0x55dbc10de970-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x558d739d0970-DoublePrecision" + "DoublePrecision": "0x55dbc10de970-DoublePrecision" }, { - "id": "0x558d739d0970-DoublePrecision" + "id": "0x55dbc10de970-DoublePrecision" }, { - "id": "0x558d739d0c90-AttrSpec", + "id": "0x55dbc10dec90-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x558d739d0c90-ArraySpec" + "ArraySpec": "0x55dbc10dec90-ArraySpec" }, { - "id": "0x558d739d0c90-ArraySpec", + "id": "0x55dbc10dec90-ArraySpec", "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x558d739d0c90-DeferredShapeSpecList" + "DeferredShapeSpecList": "0x55dbc10dec90-DeferredShapeSpecList" }, { - "id": "0x558d739d0c90-DeferredShapeSpecList", + "id": "0x55dbc10dec90-DeferredShapeSpecList", "int": "2" }, { - "id": "0x558d739d0c40-AttrSpec", + "id": "0x55dbc10dec40-AttrSpec", "variantKey": "Allocatable", - "Allocatable": "0x558d739d0c40-Allocatable" + "Allocatable": "0x55dbc10dec40-Allocatable" }, { - "id": "0x558d739d0c40-Allocatable", + "id": "0x55dbc10dec40-Allocatable", "keyword": "Allocatable" }, { - "id": "0x558d739d0ce0-EntityDecl", - "Name": "0x558d739d0d98-Name" + "id": "0x55dbc10dece0-EntityDecl", + "Name": "0x55dbc10ded98-Name" }, { - "id": "0x558d739d0d98-Name", + "id": "0x55dbc10ded98-Name", "source": "g" }, { - "id": "0x558d739b3170-DeclarationConstruct", + "id": "0x55dbc10c1170-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558d739b3170-SpecificationConstruct" + "SpecificationConstruct": "0x55dbc10c1170-SpecificationConstruct" }, { - "id": "0x558d739b3170-SpecificationConstruct", + "id": "0x55dbc10c1170-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558d739b3170-Statement" + "Statement": "0x55dbc10c1170-Statement" }, { - "id": "0x558d739b3170-Statement", - "statement": "0x558d739d0bb0-TypeDeclarationStmt", + "id": "0x55dbc10c1170-Statement", + "statement": "0x55dbc10debb0-TypeDeclarationStmt", "source": "integer :: i" }, { - "id": "0x558d739d0bb0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558d739d0be0-DeclarationTypeSpec", + "id": "0x55dbc10debb0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55dbc10debe0-DeclarationTypeSpec", "EntityDecl": [ - "0x558d739d0eb0-EntityDecl" + "0x55dbc10deeb0-EntityDecl" ] }, { - "id": "0x558d739d0be0-DeclarationTypeSpec", + "id": "0x55dbc10debe0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558d739d0be0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55dbc10debe0-IntrinsicTypeSpec" }, { - "id": "0x558d739d0be0-IntrinsicTypeSpec", + "id": "0x55dbc10debe0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x558d739d0be0-IntegerTypeSpec" + "IntegerTypeSpec": "0x55dbc10debe0-IntegerTypeSpec" }, { - "id": "0x558d739d0be0-IntegerTypeSpec" + "id": "0x55dbc10debe0-IntegerTypeSpec" }, { - "id": "0x558d739d0eb0-EntityDecl", - "Name": "0x558d739d0f68-Name" + "id": "0x55dbc10deeb0-EntityDecl", + "Name": "0x55dbc10def68-Name" }, { - "id": "0x558d739d0f68-Name", + "id": "0x55dbc10def68-Name", "source": "i" }, { - "id": "0x558d739e40b8-ExecutionPart", + "id": "0x55dbc10f20b8-ExecutionPart", "ExecutionPartConstruct": [ - "0x558d739d3030-ExecutionPartConstruct", - "0x558d739d2ef0-ExecutionPartConstruct", - "0x558d739d38d0-ExecutionPartConstruct", - "0x558d739d3870-ExecutionPartConstruct", - "0x558d739d4340-ExecutionPartConstruct", - "0x558d739d42e0-ExecutionPartConstruct", - "0x558d739d4db0-ExecutionPartConstruct", - "0x558d739d4d50-ExecutionPartConstruct", - "0x558d739d5820-ExecutionPartConstruct", - "0x558d739d57c0-ExecutionPartConstruct", - "0x558d739d6290-ExecutionPartConstruct", - "0x558d739d6230-ExecutionPartConstruct", - "0x558d739d6d00-ExecutionPartConstruct", - "0x558d739d6ca0-ExecutionPartConstruct", - "0x558d739d9ac0-ExecutionPartConstruct", - "0x558d739d8980-ExecutionPartConstruct", - "0x558d739ec6f0-ExecutionPartConstruct", - "0x558d739eb2c0-ExecutionPartConstruct", - "0x558d739eb6e0-ExecutionPartConstruct", - "0x558d739d8340-ExecutionPartConstruct", - "0x558d739eb4e0-ExecutionPartConstruct", - "0x558d739d7ae0-ExecutionPartConstruct", - "0x558d739d8760-ExecutionPartConstruct", - "0x558d739d5700-ExecutionPartConstruct", - "0x558d739d2290-ExecutionPartConstruct", - "0x558d739d1280-ExecutionPartConstruct", - "0x558d739d2ba0-ExecutionPartConstruct" + "0x55dbc10e1030-ExecutionPartConstruct", + "0x55dbc10e0ef0-ExecutionPartConstruct", + "0x55dbc10e18d0-ExecutionPartConstruct", + "0x55dbc10e1870-ExecutionPartConstruct", + "0x55dbc10e2340-ExecutionPartConstruct", + "0x55dbc10e22e0-ExecutionPartConstruct", + "0x55dbc10e2db0-ExecutionPartConstruct", + "0x55dbc10e2d50-ExecutionPartConstruct", + "0x55dbc10e3820-ExecutionPartConstruct", + "0x55dbc10e37c0-ExecutionPartConstruct", + "0x55dbc10e4290-ExecutionPartConstruct", + "0x55dbc10e4230-ExecutionPartConstruct", + "0x55dbc10e4d00-ExecutionPartConstruct", + "0x55dbc10e4ca0-ExecutionPartConstruct", + "0x55dbc10e7ac0-ExecutionPartConstruct", + "0x55dbc10e6980-ExecutionPartConstruct", + "0x55dbc10fa6f0-ExecutionPartConstruct", + "0x55dbc10f92c0-ExecutionPartConstruct", + "0x55dbc10f96e0-ExecutionPartConstruct", + "0x55dbc10e6340-ExecutionPartConstruct", + "0x55dbc10f94e0-ExecutionPartConstruct", + "0x55dbc10e5ae0-ExecutionPartConstruct", + "0x55dbc10e6760-ExecutionPartConstruct", + "0x55dbc10e3700-ExecutionPartConstruct", + "0x55dbc10e0290-ExecutionPartConstruct", + "0x55dbc10df280-ExecutionPartConstruct", + "0x55dbc10e0ba0-ExecutionPartConstruct" ] }, { - "id": "0x558d739e40b8-ExecutionPartConstruct" + "id": "0x55dbc10f20b8-ExecutionPartConstruct" }, { - "id": "0x558d739d3030-ExecutionPartConstruct", + "id": "0x55dbc10e1030-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739d3030-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10e1030-ExecutableConstruct" }, { - "id": "0x558d739d3030-ExecutableConstruct", + "id": "0x55dbc10e1030-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739d3030-Statement" + "Statement": "0x55dbc10e1030-Statement" }, { - "id": "0x558d739d3030-Statement", - "statement": "0x558d739d3040-ActionStmt", + "id": "0x55dbc10e1030-Statement", + "statement": "0x55dbc10e1040-ActionStmt", "source": "allocate(a(32 + 0, 32 + 0), stat = i)" }, { - "id": "0x558d739d3040-ActionStmt", + "id": "0x55dbc10e1040-ActionStmt", "variantKey": "AllocateStmt", - "AllocateStmt": "0x558d739d1de0-AllocateStmt" + "AllocateStmt": "0x55dbc10dfde0-AllocateStmt" }, { - "id": "0x558d739d1de0-AllocateStmt", + "id": "0x55dbc10dfde0-AllocateStmt", "Allocation": [ - "0x558d73942b10-Allocation" + "0x55dbc1050b10-Allocation" ], "AllocOpt": [ - "0x558d739d27b0-AllocOpt" + "0x55dbc10e07b0-AllocOpt" ] }, { - "id": "0x558d73942b10-Allocation", - "AllocateObject": "0x558d73942b58-AllocateObject", + "id": "0x55dbc1050b10-Allocation", + "AllocateObject": "0x55dbc1050b58-AllocateObject", "AllocateShapeSpec": [ - "0x558d739dc010-AllocateShapeSpec", - "0x558d739dbfe0-AllocateShapeSpec" + "0x55dbc10ea010-AllocateShapeSpec", + "0x55dbc10e9fe0-AllocateShapeSpec" ] }, { - "id": "0x558d73942b58-AllocateObject", + "id": "0x55dbc1050b58-AllocateObject", "variantKey": "Name", - "Name": "0x558d73942b68-Name" + "Name": "0x55dbc1050b68-Name" }, { - "id": "0x558d73942b68-Name", + "id": "0x55dbc1050b68-Name", "source": "a" }, { - "id": "0x558d739dc010-AllocateShapeSpec", - "upper_bound": "0x558d739d26c0-Expr" + "id": "0x55dbc10ea010-AllocateShapeSpec", + "upper_bound": "0x55dbc10e06c0-Expr" }, { - "id": "0x558d739d26c0-Expr", + "id": "0x55dbc10e06c0-Expr", "variantKey": "Add", - "Add": "0x558d739d26e0-Add" + "Add": "0x55dbc10e06e0-Add" }, { - "id": "0x558d739d26e0-Add", - "left": "0x558d739d25e0-Expr", - "right": "0x558d739d2500-Expr", + "id": "0x55dbc10e06e0-Add", + "left": "0x55dbc10e05e0-Expr", + "right": "0x55dbc10e0500-Expr", "op": "ADD" }, { - "id": "0x558d739d25e0-Expr", + "id": "0x55dbc10e05e0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d2600-LiteralConstant" + "LiteralConstant": "0x55dbc10e0600-LiteralConstant" }, { - "id": "0x558d739d2600-LiteralConstant", + "id": "0x55dbc10e0600-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d2600-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e0600-IntLiteralConstant" }, { - "id": "0x558d739d2600-IntLiteralConstant", + "id": "0x55dbc10e0600-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x558d739d2500-Expr", + "id": "0x55dbc10e0500-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d2520-LiteralConstant" + "LiteralConstant": "0x55dbc10e0520-LiteralConstant" }, { - "id": "0x558d739d2520-LiteralConstant", + "id": "0x55dbc10e0520-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d2520-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e0520-IntLiteralConstant" }, { - "id": "0x558d739d2520-IntLiteralConstant", + "id": "0x55dbc10e0520-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x558d739dbfe0-AllocateShapeSpec", - "upper_bound": "0x558d739d21a0-Expr" + "id": "0x55dbc10e9fe0-AllocateShapeSpec", + "upper_bound": "0x55dbc10e01a0-Expr" }, { - "id": "0x558d739d21a0-Expr", + "id": "0x55dbc10e01a0-Expr", "variantKey": "Add", - "Add": "0x558d739d21c0-Add" + "Add": "0x55dbc10e01c0-Add" }, { - "id": "0x558d739d21c0-Add", - "left": "0x558d739d20c0-Expr", - "right": "0x558d73945790-Expr", + "id": "0x55dbc10e01c0-Add", + "left": "0x55dbc10e00c0-Expr", + "right": "0x55dbc1053790-Expr", "op": "ADD" }, { - "id": "0x558d739d20c0-Expr", + "id": "0x55dbc10e00c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d20e0-LiteralConstant" + "LiteralConstant": "0x55dbc10e00e0-LiteralConstant" }, { - "id": "0x558d739d20e0-LiteralConstant", + "id": "0x55dbc10e00e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d20e0-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e00e0-IntLiteralConstant" }, { - "id": "0x558d739d20e0-IntLiteralConstant", + "id": "0x55dbc10e00e0-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x558d73945790-Expr", + "id": "0x55dbc1053790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739457b0-LiteralConstant" + "LiteralConstant": "0x55dbc10537b0-LiteralConstant" }, { - "id": "0x558d739457b0-LiteralConstant", + "id": "0x55dbc10537b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739457b0-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10537b0-IntLiteralConstant" }, { - "id": "0x558d739457b0-IntLiteralConstant", + "id": "0x55dbc10537b0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x558d739d27b0-AllocOpt", + "id": "0x55dbc10e07b0-AllocOpt", "variantKey": "StatOrErrmsg", - "StatOrErrmsg": "0x558d739d27b0-StatOrErrmsg" + "StatOrErrmsg": "0x55dbc10e07b0-StatOrErrmsg" }, { - "id": "0x558d739d27b0-StatOrErrmsg", + "id": "0x55dbc10e07b0-StatOrErrmsg", "variantKey": "StatVariable", - "StatVariable": "0x558d739d27b0-StatVariable" + "StatVariable": "0x55dbc10e07b0-StatVariable" }, { - "id": "0x558d739d27b0-StatVariable", - "Expr": "0x558d739d27b0-Variable" + "id": "0x55dbc10e07b0-StatVariable", + "Variable": "0x55dbc10e07b0-Variable" }, { - "id": "0x558d739d27b0-Variable", + "id": "0x55dbc10e07b0-Variable", "variantKey": "Designator", - "Designator": "0x558d739a44d0-Designator" + "Designator": "0x55dbc10b24d0-Designator" }, { - "id": "0x558d739a44d0-Designator", + "id": "0x55dbc10b24d0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739a44e0-DataRef" + "DataRef": "0x55dbc10b24e0-DataRef" }, { - "id": "0x558d739a44e0-DataRef", + "id": "0x55dbc10b24e0-DataRef", "variantKey": "Name", - "Name": "0x558d739a44e0-Name" + "Name": "0x55dbc10b24e0-Name" }, { - "id": "0x558d739a44e0-Name", + "id": "0x55dbc10b24e0-Name", "source": "i" }, { - "id": "0x558d739d2ef0-ExecutionPartConstruct", + "id": "0x55dbc10e0ef0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739d2ef0-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10e0ef0-ExecutableConstruct" }, { - "id": "0x558d739d2ef0-ExecutableConstruct", + "id": "0x55dbc10e0ef0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739d2ef0-Statement" + "Statement": "0x55dbc10e0ef0-Statement" }, { - "id": "0x558d739d2ef0-Statement", - "statement": "0x558d739d2f00-ActionStmt", + "id": "0x55dbc10e0ef0-Statement", + "statement": "0x55dbc10e0f00-ActionStmt", "source": "call check_err(i)" }, { - "id": "0x558d739d2f00-ActionStmt", + "id": "0x55dbc10e0f00-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x558d739dce20-CallStmt" + "CallStmt": "0x55dbc10eae20-CallStmt" }, { - "id": "0x558d739dce20-CallStmt", - "call": "0x558d739dce20-Call" + "id": "0x55dbc10eae20-CallStmt", + "call": "0x55dbc10eae20-Call" }, { - "id": "0x558d739dce20-Call", - "ProcedureDesignator": "0x558d739dce38-ProcedureDesignator", + "id": "0x55dbc10eae20-Call", + "ProcedureDesignator": "0x55dbc10eae38-ProcedureDesignator", "ActualArgSpec": [ - "0x558d739b3cf0-ActualArgSpec" + "0x55dbc10c1cf0-ActualArgSpec" ] }, { - "id": "0x558d739dce38-ProcedureDesignator", + "id": "0x55dbc10eae38-ProcedureDesignator", "variantKey": "Name", - "Name": "0x558d739dce38-Name" + "Name": "0x55dbc10eae38-Name" }, { - "id": "0x558d739dce38-Name", + "id": "0x55dbc10eae38-Name", "source": "check_err" }, { - "id": "0x558d739b3cf0-ActualArgSpec", - "ActualArg": "0x558d739b3cf0-ActualArg" + "id": "0x55dbc10c1cf0-ActualArgSpec", + "ActualArg": "0x55dbc10c1cf0-ActualArg" }, { - "id": "0x558d739b3cf0-ActualArg", + "id": "0x55dbc10c1cf0-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739d3080-Expr" + "Expr": "0x55dbc10e1080-Expr" }, { - "id": "0x558d739d3080-Expr", + "id": "0x55dbc10e1080-Expr", "variantKey": "Designator", - "Designator": "0x558d739d2060-Designator" + "Designator": "0x55dbc10e0060-Designator" }, { - "id": "0x558d739d2060-Designator", + "id": "0x55dbc10e0060-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739d2070-DataRef" + "DataRef": "0x55dbc10e0070-DataRef" }, { - "id": "0x558d739d2070-DataRef", + "id": "0x55dbc10e0070-DataRef", "variantKey": "Name", - "Name": "0x558d739d2070-Name" + "Name": "0x55dbc10e0070-Name" }, { - "id": "0x558d739d2070-Name", + "id": "0x55dbc10e0070-Name", "source": "i" }, { - "id": "0x558d739d38d0-ExecutionPartConstruct", + "id": "0x55dbc10e18d0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739d38d0-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10e18d0-ExecutableConstruct" }, { - "id": "0x558d739d38d0-ExecutableConstruct", + "id": "0x55dbc10e18d0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739d38d0-Statement" + "Statement": "0x55dbc10e18d0-Statement" }, { - "id": "0x558d739d38d0-Statement", - "statement": "0x558d739d38e0-ActionStmt", + "id": "0x55dbc10e18d0-Statement", + "statement": "0x55dbc10e18e0-ActionStmt", "source": "allocate(b(32 + 0, 32 + 0), stat = i)" }, { - "id": "0x558d739d38e0-ActionStmt", + "id": "0x55dbc10e18e0-ActionStmt", "variantKey": "AllocateStmt", - "AllocateStmt": "0x558d739d19f0-AllocateStmt" + "AllocateStmt": "0x55dbc10df9f0-AllocateStmt" }, { - "id": "0x558d739d19f0-AllocateStmt", + "id": "0x55dbc10df9f0-AllocateStmt", "Allocation": [ - "0x558d739d3700-Allocation" + "0x55dbc10e1700-Allocation" ], "AllocOpt": [ - "0x558d739d2800-AllocOpt" + "0x55dbc10e0800-AllocOpt" ] }, { - "id": "0x558d739d3700-Allocation", - "AllocateObject": "0x558d739d3748-AllocateObject", + "id": "0x55dbc10e1700-Allocation", + "AllocateObject": "0x55dbc10e1748-AllocateObject", "AllocateShapeSpec": [ - "0x558d739dc090-AllocateShapeSpec", - "0x558d739dc040-AllocateShapeSpec" + "0x55dbc10ea090-AllocateShapeSpec", + "0x55dbc10ea040-AllocateShapeSpec" ] }, { - "id": "0x558d739d3748-AllocateObject", + "id": "0x55dbc10e1748-AllocateObject", "variantKey": "Name", - "Name": "0x558d739d3758-Name" + "Name": "0x55dbc10e1758-Name" }, { - "id": "0x558d739d3758-Name", + "id": "0x55dbc10e1758-Name", "source": "b" }, { - "id": "0x558d739dc090-AllocateShapeSpec", - "upper_bound": "0x558d739d3240-Expr" + "id": "0x55dbc10ea090-AllocateShapeSpec", + "upper_bound": "0x55dbc10e1240-Expr" }, { - "id": "0x558d739d3240-Expr", + "id": "0x55dbc10e1240-Expr", "variantKey": "Add", - "Add": "0x558d739d3260-Add" + "Add": "0x55dbc10e1260-Add" }, { - "id": "0x558d739d3260-Add", - "left": "0x558d739d3160-Expr", - "right": "0x558d739d3320-Expr", + "id": "0x55dbc10e1260-Add", + "left": "0x55dbc10e1160-Expr", + "right": "0x55dbc10e1320-Expr", "op": "ADD" }, { - "id": "0x558d739d3160-Expr", + "id": "0x55dbc10e1160-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d3180-LiteralConstant" + "LiteralConstant": "0x55dbc10e1180-LiteralConstant" }, { - "id": "0x558d739d3180-LiteralConstant", + "id": "0x55dbc10e1180-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d3180-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e1180-IntLiteralConstant" }, { - "id": "0x558d739d3180-IntLiteralConstant", + "id": "0x55dbc10e1180-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x558d739d3320-Expr", + "id": "0x55dbc10e1320-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d3340-LiteralConstant" + "LiteralConstant": "0x55dbc10e1340-LiteralConstant" }, { - "id": "0x558d739d3340-LiteralConstant", + "id": "0x55dbc10e1340-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d3340-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e1340-IntLiteralConstant" }, { - "id": "0x558d739d3340-IntLiteralConstant", + "id": "0x55dbc10e1340-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x558d739dc040-AllocateShapeSpec", - "upper_bound": "0x558d739d34e0-Expr" + "id": "0x55dbc10ea040-AllocateShapeSpec", + "upper_bound": "0x55dbc10e14e0-Expr" }, { - "id": "0x558d739d34e0-Expr", + "id": "0x55dbc10e14e0-Expr", "variantKey": "Add", - "Add": "0x558d739d3500-Add" + "Add": "0x55dbc10e1500-Add" }, { - "id": "0x558d739d3500-Add", - "left": "0x558d739d3400-Expr", - "right": "0x558d739d35c0-Expr", + "id": "0x55dbc10e1500-Add", + "left": "0x55dbc10e1400-Expr", + "right": "0x55dbc10e15c0-Expr", "op": "ADD" }, { - "id": "0x558d739d3400-Expr", + "id": "0x55dbc10e1400-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d3420-LiteralConstant" + "LiteralConstant": "0x55dbc10e1420-LiteralConstant" }, { - "id": "0x558d739d3420-LiteralConstant", + "id": "0x55dbc10e1420-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d3420-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e1420-IntLiteralConstant" }, { - "id": "0x558d739d3420-IntLiteralConstant", + "id": "0x55dbc10e1420-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x558d739d35c0-Expr", + "id": "0x55dbc10e15c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d35e0-LiteralConstant" + "LiteralConstant": "0x55dbc10e15e0-LiteralConstant" }, { - "id": "0x558d739d35e0-LiteralConstant", + "id": "0x55dbc10e15e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d35e0-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e15e0-IntLiteralConstant" }, { - "id": "0x558d739d35e0-IntLiteralConstant", + "id": "0x55dbc10e15e0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x558d739d2800-AllocOpt", + "id": "0x55dbc10e0800-AllocOpt", "variantKey": "StatOrErrmsg", - "StatOrErrmsg": "0x558d739d2800-StatOrErrmsg" + "StatOrErrmsg": "0x55dbc10e0800-StatOrErrmsg" }, { - "id": "0x558d739d2800-StatOrErrmsg", + "id": "0x55dbc10e0800-StatOrErrmsg", "variantKey": "StatVariable", - "StatVariable": "0x558d739d2800-StatVariable" + "StatVariable": "0x55dbc10e0800-StatVariable" }, { - "id": "0x558d739d2800-StatVariable", - "Expr": "0x558d739d2800-Variable" + "id": "0x55dbc10e0800-StatVariable", + "Variable": "0x55dbc10e0800-Variable" }, { - "id": "0x558d739d2800-Variable", + "id": "0x55dbc10e0800-Variable", "variantKey": "Designator", - "Designator": "0x558d739d3800-Designator" + "Designator": "0x55dbc10e1800-Designator" }, { - "id": "0x558d739d3800-Designator", + "id": "0x55dbc10e1800-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739d3810-DataRef" + "DataRef": "0x55dbc10e1810-DataRef" }, { - "id": "0x558d739d3810-DataRef", + "id": "0x55dbc10e1810-DataRef", "variantKey": "Name", - "Name": "0x558d739d3810-Name" + "Name": "0x55dbc10e1810-Name" }, { - "id": "0x558d739d3810-Name", + "id": "0x55dbc10e1810-Name", "source": "i" }, { - "id": "0x558d739d3870-ExecutionPartConstruct", + "id": "0x55dbc10e1870-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739d3870-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10e1870-ExecutableConstruct" }, { - "id": "0x558d739d3870-ExecutableConstruct", + "id": "0x55dbc10e1870-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739d3870-Statement" + "Statement": "0x55dbc10e1870-Statement" }, { - "id": "0x558d739d3870-Statement", - "statement": "0x558d739d3880-ActionStmt", + "id": "0x55dbc10e1870-Statement", + "statement": "0x55dbc10e1880-ActionStmt", "source": "call check_err(i)" }, { - "id": "0x558d739d3880-ActionStmt", + "id": "0x55dbc10e1880-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x558d739d3b10-CallStmt" + "CallStmt": "0x55dbc10e1b10-CallStmt" }, { - "id": "0x558d739d3b10-CallStmt", - "call": "0x558d739d3b10-Call" + "id": "0x55dbc10e1b10-CallStmt", + "call": "0x55dbc10e1b10-Call" }, { - "id": "0x558d739d3b10-Call", - "ProcedureDesignator": "0x558d739d3b28-ProcedureDesignator", + "id": "0x55dbc10e1b10-Call", + "ProcedureDesignator": "0x55dbc10e1b28-ProcedureDesignator", "ActualArgSpec": [ - "0x558d739d3a10-ActualArgSpec" + "0x55dbc10e1a10-ActualArgSpec" ] }, { - "id": "0x558d739d3b28-ProcedureDesignator", + "id": "0x55dbc10e1b28-ProcedureDesignator", "variantKey": "Name", - "Name": "0x558d739d3b28-Name" + "Name": "0x55dbc10e1b28-Name" }, { - "id": "0x558d739d3b28-Name", + "id": "0x55dbc10e1b28-Name", "source": "check_err" }, { - "id": "0x558d739d3a10-ActualArgSpec", - "ActualArg": "0x558d739d3a10-ActualArg" + "id": "0x55dbc10e1a10-ActualArgSpec", + "ActualArg": "0x55dbc10e1a10-ActualArg" }, { - "id": "0x558d739d3a10-ActualArg", + "id": "0x55dbc10e1a10-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739d3920-Expr" + "Expr": "0x55dbc10e1920-Expr" }, { - "id": "0x558d739d3920-Expr", + "id": "0x55dbc10e1920-Expr", "variantKey": "Designator", - "Designator": "0x558d739d29f0-Designator" + "Designator": "0x55dbc10e09f0-Designator" }, { - "id": "0x558d739d29f0-Designator", + "id": "0x55dbc10e09f0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739d2a00-DataRef" + "DataRef": "0x55dbc10e0a00-DataRef" }, { - "id": "0x558d739d2a00-DataRef", + "id": "0x55dbc10e0a00-DataRef", "variantKey": "Name", - "Name": "0x558d739d2a00-Name" + "Name": "0x55dbc10e0a00-Name" }, { - "id": "0x558d739d2a00-Name", + "id": "0x55dbc10e0a00-Name", "source": "i" }, { - "id": "0x558d739d4340-ExecutionPartConstruct", + "id": "0x55dbc10e2340-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739d4340-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10e2340-ExecutableConstruct" }, { - "id": "0x558d739d4340-ExecutableConstruct", + "id": "0x55dbc10e2340-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739d4340-Statement" + "Statement": "0x55dbc10e2340-Statement" }, { - "id": "0x558d739d4340-Statement", - "statement": "0x558d739d4350-ActionStmt", + "id": "0x55dbc10e2340-Statement", + "statement": "0x55dbc10e2350-ActionStmt", "source": "allocate(c(32 + 0, 32 + 0), stat = i)" }, { - "id": "0x558d739d4350-ActionStmt", + "id": "0x55dbc10e2350-ActionStmt", "variantKey": "AllocateStmt", - "AllocateStmt": "0x558d739d1e70-AllocateStmt" + "AllocateStmt": "0x55dbc10dfe70-AllocateStmt" }, { - "id": "0x558d739d1e70-AllocateStmt", + "id": "0x55dbc10dfe70-AllocateStmt", "Allocation": [ - "0x558d739d4170-Allocation" + "0x55dbc10e2170-Allocation" ], "AllocOpt": [ - "0x558d739d36b0-AllocOpt" + "0x55dbc10e16b0-AllocOpt" ] }, { - "id": "0x558d739d4170-Allocation", - "AllocateObject": "0x558d739d41b8-AllocateObject", + "id": "0x55dbc10e2170-Allocation", + "AllocateObject": "0x55dbc10e21b8-AllocateObject", "AllocateShapeSpec": [ - "0x558d739e0390-AllocateShapeSpec", - "0x558d739e0360-AllocateShapeSpec" + "0x55dbc10ee390-AllocateShapeSpec", + "0x55dbc10ee360-AllocateShapeSpec" ] }, { - "id": "0x558d739d41b8-AllocateObject", + "id": "0x55dbc10e21b8-AllocateObject", "variantKey": "Name", - "Name": "0x558d739d41c8-Name" + "Name": "0x55dbc10e21c8-Name" }, { - "id": "0x558d739d41c8-Name", + "id": "0x55dbc10e21c8-Name", "source": "c" }, { - "id": "0x558d739e0390-AllocateShapeSpec", - "upper_bound": "0x558d739d3cb0-Expr" + "id": "0x55dbc10ee390-AllocateShapeSpec", + "upper_bound": "0x55dbc10e1cb0-Expr" }, { - "id": "0x558d739d3cb0-Expr", + "id": "0x55dbc10e1cb0-Expr", "variantKey": "Add", - "Add": "0x558d739d3cd0-Add" + "Add": "0x55dbc10e1cd0-Add" }, { - "id": "0x558d739d3cd0-Add", - "left": "0x558d739d3bd0-Expr", - "right": "0x558d739d3d90-Expr", + "id": "0x55dbc10e1cd0-Add", + "left": "0x55dbc10e1bd0-Expr", + "right": "0x55dbc10e1d90-Expr", "op": "ADD" }, { - "id": "0x558d739d3bd0-Expr", + "id": "0x55dbc10e1bd0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d3bf0-LiteralConstant" + "LiteralConstant": "0x55dbc10e1bf0-LiteralConstant" }, { - "id": "0x558d739d3bf0-LiteralConstant", + "id": "0x55dbc10e1bf0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d3bf0-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e1bf0-IntLiteralConstant" }, { - "id": "0x558d739d3bf0-IntLiteralConstant", + "id": "0x55dbc10e1bf0-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x558d739d3d90-Expr", + "id": "0x55dbc10e1d90-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d3db0-LiteralConstant" + "LiteralConstant": "0x55dbc10e1db0-LiteralConstant" }, { - "id": "0x558d739d3db0-LiteralConstant", + "id": "0x55dbc10e1db0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d3db0-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e1db0-IntLiteralConstant" }, { - "id": "0x558d739d3db0-IntLiteralConstant", + "id": "0x55dbc10e1db0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x558d739e0360-AllocateShapeSpec", - "upper_bound": "0x558d739d3f50-Expr" + "id": "0x55dbc10ee360-AllocateShapeSpec", + "upper_bound": "0x55dbc10e1f50-Expr" }, { - "id": "0x558d739d3f50-Expr", + "id": "0x55dbc10e1f50-Expr", "variantKey": "Add", - "Add": "0x558d739d3f70-Add" + "Add": "0x55dbc10e1f70-Add" }, { - "id": "0x558d739d3f70-Add", - "left": "0x558d739d3e70-Expr", - "right": "0x558d739d4030-Expr", + "id": "0x55dbc10e1f70-Add", + "left": "0x55dbc10e1e70-Expr", + "right": "0x55dbc10e2030-Expr", "op": "ADD" }, { - "id": "0x558d739d3e70-Expr", + "id": "0x55dbc10e1e70-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d3e90-LiteralConstant" + "LiteralConstant": "0x55dbc10e1e90-LiteralConstant" }, { - "id": "0x558d739d3e90-LiteralConstant", + "id": "0x55dbc10e1e90-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d3e90-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e1e90-IntLiteralConstant" }, { - "id": "0x558d739d3e90-IntLiteralConstant", + "id": "0x55dbc10e1e90-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x558d739d4030-Expr", + "id": "0x55dbc10e2030-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d4050-LiteralConstant" + "LiteralConstant": "0x55dbc10e2050-LiteralConstant" }, { - "id": "0x558d739d4050-LiteralConstant", + "id": "0x55dbc10e2050-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d4050-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e2050-IntLiteralConstant" }, { - "id": "0x558d739d4050-IntLiteralConstant", + "id": "0x55dbc10e2050-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x558d739d36b0-AllocOpt", + "id": "0x55dbc10e16b0-AllocOpt", "variantKey": "StatOrErrmsg", - "StatOrErrmsg": "0x558d739d36b0-StatOrErrmsg" + "StatOrErrmsg": "0x55dbc10e16b0-StatOrErrmsg" }, { - "id": "0x558d739d36b0-StatOrErrmsg", + "id": "0x55dbc10e16b0-StatOrErrmsg", "variantKey": "StatVariable", - "StatVariable": "0x558d739d36b0-StatVariable" + "StatVariable": "0x55dbc10e16b0-StatVariable" }, { - "id": "0x558d739d36b0-StatVariable", - "Expr": "0x558d739d36b0-Variable" + "id": "0x55dbc10e16b0-StatVariable", + "Variable": "0x55dbc10e16b0-Variable" }, { - "id": "0x558d739d36b0-Variable", + "id": "0x55dbc10e16b0-Variable", "variantKey": "Designator", - "Designator": "0x558d739d4270-Designator" + "Designator": "0x55dbc10e2270-Designator" }, { - "id": "0x558d739d4270-Designator", + "id": "0x55dbc10e2270-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739d4280-DataRef" + "DataRef": "0x55dbc10e2280-DataRef" }, { - "id": "0x558d739d4280-DataRef", + "id": "0x55dbc10e2280-DataRef", "variantKey": "Name", - "Name": "0x558d739d4280-Name" + "Name": "0x55dbc10e2280-Name" }, { - "id": "0x558d739d4280-Name", + "id": "0x55dbc10e2280-Name", "source": "i" }, { - "id": "0x558d739d42e0-ExecutionPartConstruct", + "id": "0x55dbc10e22e0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739d42e0-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10e22e0-ExecutableConstruct" }, { - "id": "0x558d739d42e0-ExecutableConstruct", + "id": "0x55dbc10e22e0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739d42e0-Statement" + "Statement": "0x55dbc10e22e0-Statement" }, { - "id": "0x558d739d42e0-Statement", - "statement": "0x558d739d42f0-ActionStmt", + "id": "0x55dbc10e22e0-Statement", + "statement": "0x55dbc10e22f0-ActionStmt", "source": "call check_err(i)" }, { - "id": "0x558d739d42f0-ActionStmt", + "id": "0x55dbc10e22f0-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x558d739d4580-CallStmt" + "CallStmt": "0x55dbc10e2580-CallStmt" }, { - "id": "0x558d739d4580-CallStmt", - "call": "0x558d739d4580-Call" + "id": "0x55dbc10e2580-CallStmt", + "call": "0x55dbc10e2580-Call" }, { - "id": "0x558d739d4580-Call", - "ProcedureDesignator": "0x558d739d4598-ProcedureDesignator", + "id": "0x55dbc10e2580-Call", + "ProcedureDesignator": "0x55dbc10e2598-ProcedureDesignator", "ActualArgSpec": [ - "0x558d739d4480-ActualArgSpec" + "0x55dbc10e2480-ActualArgSpec" ] }, { - "id": "0x558d739d4598-ProcedureDesignator", + "id": "0x55dbc10e2598-ProcedureDesignator", "variantKey": "Name", - "Name": "0x558d739d4598-Name" + "Name": "0x55dbc10e2598-Name" }, { - "id": "0x558d739d4598-Name", + "id": "0x55dbc10e2598-Name", "source": "check_err" }, { - "id": "0x558d739d4480-ActualArgSpec", - "ActualArg": "0x558d739d4480-ActualArg" + "id": "0x55dbc10e2480-ActualArgSpec", + "ActualArg": "0x55dbc10e2480-ActualArg" }, { - "id": "0x558d739d4480-ActualArg", + "id": "0x55dbc10e2480-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739d4390-Expr" + "Expr": "0x55dbc10e2390-Expr" }, { - "id": "0x558d739d4390-Expr", + "id": "0x55dbc10e2390-Expr", "variantKey": "Designator", - "Designator": "0x558d739d28b0-Designator" + "Designator": "0x55dbc10e08b0-Designator" }, { - "id": "0x558d739d28b0-Designator", + "id": "0x55dbc10e08b0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739d28c0-DataRef" + "DataRef": "0x55dbc10e08c0-DataRef" }, { - "id": "0x558d739d28c0-DataRef", + "id": "0x55dbc10e08c0-DataRef", "variantKey": "Name", - "Name": "0x558d739d28c0-Name" + "Name": "0x55dbc10e08c0-Name" }, { - "id": "0x558d739d28c0-Name", + "id": "0x55dbc10e08c0-Name", "source": "i" }, { - "id": "0x558d739d4db0-ExecutionPartConstruct", + "id": "0x55dbc10e2db0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739d4db0-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10e2db0-ExecutableConstruct" }, { - "id": "0x558d739d4db0-ExecutableConstruct", + "id": "0x55dbc10e2db0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739d4db0-Statement" + "Statement": "0x55dbc10e2db0-Statement" }, { - "id": "0x558d739d4db0-Statement", - "statement": "0x558d739d4dc0-ActionStmt", + "id": "0x55dbc10e2db0-Statement", + "statement": "0x55dbc10e2dc0-ActionStmt", "source": "allocate(d(32 + 0, 32 + 0), stat = i)" }, { - "id": "0x558d739d4dc0-ActionStmt", + "id": "0x55dbc10e2dc0-ActionStmt", "variantKey": "AllocateStmt", - "AllocateStmt": "0x558d739e39b0-AllocateStmt" + "AllocateStmt": "0x55dbc10f19b0-AllocateStmt" }, { - "id": "0x558d739e39b0-AllocateStmt", + "id": "0x55dbc10f19b0-AllocateStmt", "Allocation": [ - "0x558d739d4be0-Allocation" + "0x55dbc10e2be0-Allocation" ], "AllocOpt": [ - "0x558d739d4120-AllocOpt" + "0x55dbc10e2120-AllocOpt" ] }, { - "id": "0x558d739d4be0-Allocation", - "AllocateObject": "0x558d739d4c28-AllocateObject", + "id": "0x55dbc10e2be0-Allocation", + "AllocateObject": "0x55dbc10e2c28-AllocateObject", "AllocateShapeSpec": [ - "0x558d739daa80-AllocateShapeSpec", - "0x558d739e03e0-AllocateShapeSpec" + "0x55dbc10e8a80-AllocateShapeSpec", + "0x55dbc10ee3e0-AllocateShapeSpec" ] }, { - "id": "0x558d739d4c28-AllocateObject", + "id": "0x55dbc10e2c28-AllocateObject", "variantKey": "Name", - "Name": "0x558d739d4c38-Name" + "Name": "0x55dbc10e2c38-Name" }, { - "id": "0x558d739d4c38-Name", + "id": "0x55dbc10e2c38-Name", "source": "d" }, { - "id": "0x558d739daa80-AllocateShapeSpec", - "upper_bound": "0x558d739d4720-Expr" + "id": "0x55dbc10e8a80-AllocateShapeSpec", + "upper_bound": "0x55dbc10e2720-Expr" }, { - "id": "0x558d739d4720-Expr", + "id": "0x55dbc10e2720-Expr", "variantKey": "Add", - "Add": "0x558d739d4740-Add" + "Add": "0x55dbc10e2740-Add" }, { - "id": "0x558d739d4740-Add", - "left": "0x558d739d4640-Expr", - "right": "0x558d739d4800-Expr", + "id": "0x55dbc10e2740-Add", + "left": "0x55dbc10e2640-Expr", + "right": "0x55dbc10e2800-Expr", "op": "ADD" }, { - "id": "0x558d739d4640-Expr", + "id": "0x55dbc10e2640-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d4660-LiteralConstant" + "LiteralConstant": "0x55dbc10e2660-LiteralConstant" }, { - "id": "0x558d739d4660-LiteralConstant", + "id": "0x55dbc10e2660-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d4660-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e2660-IntLiteralConstant" }, { - "id": "0x558d739d4660-IntLiteralConstant", + "id": "0x55dbc10e2660-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x558d739d4800-Expr", + "id": "0x55dbc10e2800-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d4820-LiteralConstant" + "LiteralConstant": "0x55dbc10e2820-LiteralConstant" }, { - "id": "0x558d739d4820-LiteralConstant", + "id": "0x55dbc10e2820-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d4820-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e2820-IntLiteralConstant" }, { - "id": "0x558d739d4820-IntLiteralConstant", + "id": "0x55dbc10e2820-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x558d739e03e0-AllocateShapeSpec", - "upper_bound": "0x558d739d49c0-Expr" + "id": "0x55dbc10ee3e0-AllocateShapeSpec", + "upper_bound": "0x55dbc10e29c0-Expr" }, { - "id": "0x558d739d49c0-Expr", + "id": "0x55dbc10e29c0-Expr", "variantKey": "Add", - "Add": "0x558d739d49e0-Add" + "Add": "0x55dbc10e29e0-Add" }, { - "id": "0x558d739d49e0-Add", - "left": "0x558d739d48e0-Expr", - "right": "0x558d739d4aa0-Expr", + "id": "0x55dbc10e29e0-Add", + "left": "0x55dbc10e28e0-Expr", + "right": "0x55dbc10e2aa0-Expr", "op": "ADD" }, { - "id": "0x558d739d48e0-Expr", + "id": "0x55dbc10e28e0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d4900-LiteralConstant" + "LiteralConstant": "0x55dbc10e2900-LiteralConstant" }, { - "id": "0x558d739d4900-LiteralConstant", + "id": "0x55dbc10e2900-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d4900-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e2900-IntLiteralConstant" }, { - "id": "0x558d739d4900-IntLiteralConstant", + "id": "0x55dbc10e2900-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x558d739d4aa0-Expr", + "id": "0x55dbc10e2aa0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d4ac0-LiteralConstant" + "LiteralConstant": "0x55dbc10e2ac0-LiteralConstant" }, { - "id": "0x558d739d4ac0-LiteralConstant", + "id": "0x55dbc10e2ac0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d4ac0-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e2ac0-IntLiteralConstant" }, { - "id": "0x558d739d4ac0-IntLiteralConstant", + "id": "0x55dbc10e2ac0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x558d739d4120-AllocOpt", + "id": "0x55dbc10e2120-AllocOpt", "variantKey": "StatOrErrmsg", - "StatOrErrmsg": "0x558d739d4120-StatOrErrmsg" + "StatOrErrmsg": "0x55dbc10e2120-StatOrErrmsg" }, { - "id": "0x558d739d4120-StatOrErrmsg", + "id": "0x55dbc10e2120-StatOrErrmsg", "variantKey": "StatVariable", - "StatVariable": "0x558d739d4120-StatVariable" + "StatVariable": "0x55dbc10e2120-StatVariable" }, { - "id": "0x558d739d4120-StatVariable", - "Expr": "0x558d739d4120-Variable" + "id": "0x55dbc10e2120-StatVariable", + "Variable": "0x55dbc10e2120-Variable" }, { - "id": "0x558d739d4120-Variable", + "id": "0x55dbc10e2120-Variable", "variantKey": "Designator", - "Designator": "0x558d739d4ce0-Designator" + "Designator": "0x55dbc10e2ce0-Designator" }, { - "id": "0x558d739d4ce0-Designator", + "id": "0x55dbc10e2ce0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739d4cf0-DataRef" + "DataRef": "0x55dbc10e2cf0-DataRef" }, { - "id": "0x558d739d4cf0-DataRef", + "id": "0x55dbc10e2cf0-DataRef", "variantKey": "Name", - "Name": "0x558d739d4cf0-Name" + "Name": "0x55dbc10e2cf0-Name" }, { - "id": "0x558d739d4cf0-Name", + "id": "0x55dbc10e2cf0-Name", "source": "i" }, { - "id": "0x558d739d4d50-ExecutionPartConstruct", + "id": "0x55dbc10e2d50-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739d4d50-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10e2d50-ExecutableConstruct" }, { - "id": "0x558d739d4d50-ExecutableConstruct", + "id": "0x55dbc10e2d50-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739d4d50-Statement" + "Statement": "0x55dbc10e2d50-Statement" }, { - "id": "0x558d739d4d50-Statement", - "statement": "0x558d739d4d60-ActionStmt", + "id": "0x55dbc10e2d50-Statement", + "statement": "0x55dbc10e2d60-ActionStmt", "source": "call check_err(i)" }, { - "id": "0x558d739d4d60-ActionStmt", + "id": "0x55dbc10e2d60-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x558d739d4ff0-CallStmt" + "CallStmt": "0x55dbc10e2ff0-CallStmt" }, { - "id": "0x558d739d4ff0-CallStmt", - "call": "0x558d739d4ff0-Call" + "id": "0x55dbc10e2ff0-CallStmt", + "call": "0x55dbc10e2ff0-Call" }, { - "id": "0x558d739d4ff0-Call", - "ProcedureDesignator": "0x558d739d5008-ProcedureDesignator", + "id": "0x55dbc10e2ff0-Call", + "ProcedureDesignator": "0x55dbc10e3008-ProcedureDesignator", "ActualArgSpec": [ - "0x558d739d4ef0-ActualArgSpec" + "0x55dbc10e2ef0-ActualArgSpec" ] }, { - "id": "0x558d739d5008-ProcedureDesignator", + "id": "0x55dbc10e3008-ProcedureDesignator", "variantKey": "Name", - "Name": "0x558d739d5008-Name" + "Name": "0x55dbc10e3008-Name" }, { - "id": "0x558d739d5008-Name", + "id": "0x55dbc10e3008-Name", "source": "check_err" }, { - "id": "0x558d739d4ef0-ActualArgSpec", - "ActualArg": "0x558d739d4ef0-ActualArg" + "id": "0x55dbc10e2ef0-ActualArgSpec", + "ActualArg": "0x55dbc10e2ef0-ActualArg" }, { - "id": "0x558d739d4ef0-ActualArg", + "id": "0x55dbc10e2ef0-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739d4e00-Expr" + "Expr": "0x55dbc10e2e00-Expr" }, { - "id": "0x558d739d4e00-Expr", + "id": "0x55dbc10e2e00-Expr", "variantKey": "Designator", - "Designator": "0x558d739d2e10-Designator" + "Designator": "0x55dbc10e0e10-Designator" }, { - "id": "0x558d739d2e10-Designator", + "id": "0x55dbc10e0e10-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739d2e20-DataRef" + "DataRef": "0x55dbc10e0e20-DataRef" }, { - "id": "0x558d739d2e20-DataRef", + "id": "0x55dbc10e0e20-DataRef", "variantKey": "Name", - "Name": "0x558d739d2e20-Name" + "Name": "0x55dbc10e0e20-Name" }, { - "id": "0x558d739d2e20-Name", + "id": "0x55dbc10e0e20-Name", "source": "i" }, { - "id": "0x558d739d5820-ExecutionPartConstruct", + "id": "0x55dbc10e3820-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739d5820-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10e3820-ExecutableConstruct" }, { - "id": "0x558d739d5820-ExecutableConstruct", + "id": "0x55dbc10e3820-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739d5820-Statement" + "Statement": "0x55dbc10e3820-Statement" }, { - "id": "0x558d739d5820-Statement", - "statement": "0x558d739d5830-ActionStmt", + "id": "0x55dbc10e3820-Statement", + "statement": "0x55dbc10e3830-ActionStmt", "source": "allocate(e(32 + 0, 32 + 0), stat = i)" }, { - "id": "0x558d739d5830-ActionStmt", + "id": "0x55dbc10e3830-ActionStmt", "variantKey": "AllocateStmt", - "AllocateStmt": "0x558d739d1d50-AllocateStmt" + "AllocateStmt": "0x55dbc10dfd50-AllocateStmt" }, { - "id": "0x558d739d1d50-AllocateStmt", + "id": "0x55dbc10dfd50-AllocateStmt", "Allocation": [ - "0x558d739d5650-Allocation" + "0x55dbc10e3650-Allocation" ], "AllocOpt": [ - "0x558d739d4b90-AllocOpt" + "0x55dbc10e2b90-AllocOpt" ] }, { - "id": "0x558d739d5650-Allocation", - "AllocateObject": "0x558d739d5698-AllocateObject", + "id": "0x55dbc10e3650-Allocation", + "AllocateObject": "0x55dbc10e3698-AllocateObject", "AllocateShapeSpec": [ - "0x558d739ea3f0-AllocateShapeSpec", - "0x558d739ea200-AllocateShapeSpec" + "0x55dbc10f83f0-AllocateShapeSpec", + "0x55dbc10f8200-AllocateShapeSpec" ] }, { - "id": "0x558d739d5698-AllocateObject", + "id": "0x55dbc10e3698-AllocateObject", "variantKey": "Name", - "Name": "0x558d739d56a8-Name" + "Name": "0x55dbc10e36a8-Name" }, { - "id": "0x558d739d56a8-Name", + "id": "0x55dbc10e36a8-Name", "source": "e" }, { - "id": "0x558d739ea3f0-AllocateShapeSpec", - "upper_bound": "0x558d739d5190-Expr" + "id": "0x55dbc10f83f0-AllocateShapeSpec", + "upper_bound": "0x55dbc10e3190-Expr" }, { - "id": "0x558d739d5190-Expr", + "id": "0x55dbc10e3190-Expr", "variantKey": "Add", - "Add": "0x558d739d51b0-Add" + "Add": "0x55dbc10e31b0-Add" }, { - "id": "0x558d739d51b0-Add", - "left": "0x558d739d50b0-Expr", - "right": "0x558d739d5270-Expr", + "id": "0x55dbc10e31b0-Add", + "left": "0x55dbc10e30b0-Expr", + "right": "0x55dbc10e3270-Expr", "op": "ADD" }, { - "id": "0x558d739d50b0-Expr", + "id": "0x55dbc10e30b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d50d0-LiteralConstant" + "LiteralConstant": "0x55dbc10e30d0-LiteralConstant" }, { - "id": "0x558d739d50d0-LiteralConstant", + "id": "0x55dbc10e30d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d50d0-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e30d0-IntLiteralConstant" }, { - "id": "0x558d739d50d0-IntLiteralConstant", + "id": "0x55dbc10e30d0-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x558d739d5270-Expr", + "id": "0x55dbc10e3270-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d5290-LiteralConstant" + "LiteralConstant": "0x55dbc10e3290-LiteralConstant" }, { - "id": "0x558d739d5290-LiteralConstant", + "id": "0x55dbc10e3290-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d5290-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e3290-IntLiteralConstant" }, { - "id": "0x558d739d5290-IntLiteralConstant", + "id": "0x55dbc10e3290-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x558d739ea200-AllocateShapeSpec", - "upper_bound": "0x558d739d5430-Expr" + "id": "0x55dbc10f8200-AllocateShapeSpec", + "upper_bound": "0x55dbc10e3430-Expr" }, { - "id": "0x558d739d5430-Expr", + "id": "0x55dbc10e3430-Expr", "variantKey": "Add", - "Add": "0x558d739d5450-Add" + "Add": "0x55dbc10e3450-Add" }, { - "id": "0x558d739d5450-Add", - "left": "0x558d739d5350-Expr", - "right": "0x558d739d5510-Expr", + "id": "0x55dbc10e3450-Add", + "left": "0x55dbc10e3350-Expr", + "right": "0x55dbc10e3510-Expr", "op": "ADD" }, { - "id": "0x558d739d5350-Expr", + "id": "0x55dbc10e3350-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d5370-LiteralConstant" + "LiteralConstant": "0x55dbc10e3370-LiteralConstant" }, { - "id": "0x558d739d5370-LiteralConstant", + "id": "0x55dbc10e3370-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d5370-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e3370-IntLiteralConstant" }, { - "id": "0x558d739d5370-IntLiteralConstant", + "id": "0x55dbc10e3370-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x558d739d5510-Expr", + "id": "0x55dbc10e3510-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d5530-LiteralConstant" + "LiteralConstant": "0x55dbc10e3530-LiteralConstant" }, { - "id": "0x558d739d5530-LiteralConstant", + "id": "0x55dbc10e3530-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d5530-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e3530-IntLiteralConstant" }, { - "id": "0x558d739d5530-IntLiteralConstant", + "id": "0x55dbc10e3530-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x558d739d4b90-AllocOpt", + "id": "0x55dbc10e2b90-AllocOpt", "variantKey": "StatOrErrmsg", - "StatOrErrmsg": "0x558d739d4b90-StatOrErrmsg" + "StatOrErrmsg": "0x55dbc10e2b90-StatOrErrmsg" }, { - "id": "0x558d739d4b90-StatOrErrmsg", + "id": "0x55dbc10e2b90-StatOrErrmsg", "variantKey": "StatVariable", - "StatVariable": "0x558d739d4b90-StatVariable" + "StatVariable": "0x55dbc10e2b90-StatVariable" }, { - "id": "0x558d739d4b90-StatVariable", - "Expr": "0x558d739d4b90-Variable" + "id": "0x55dbc10e2b90-StatVariable", + "Variable": "0x55dbc10e2b90-Variable" }, { - "id": "0x558d739d4b90-Variable", + "id": "0x55dbc10e2b90-Variable", "variantKey": "Designator", - "Designator": "0x558d739d5750-Designator" + "Designator": "0x55dbc10e3750-Designator" }, { - "id": "0x558d739d5750-Designator", + "id": "0x55dbc10e3750-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739d5760-DataRef" + "DataRef": "0x55dbc10e3760-DataRef" }, { - "id": "0x558d739d5760-DataRef", + "id": "0x55dbc10e3760-DataRef", "variantKey": "Name", - "Name": "0x558d739d5760-Name" + "Name": "0x55dbc10e3760-Name" }, { - "id": "0x558d739d5760-Name", + "id": "0x55dbc10e3760-Name", "source": "i" }, { - "id": "0x558d739d57c0-ExecutionPartConstruct", + "id": "0x55dbc10e37c0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739d57c0-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10e37c0-ExecutableConstruct" }, { - "id": "0x558d739d57c0-ExecutableConstruct", + "id": "0x55dbc10e37c0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739d57c0-Statement" + "Statement": "0x55dbc10e37c0-Statement" }, { - "id": "0x558d739d57c0-Statement", - "statement": "0x558d739d57d0-ActionStmt", + "id": "0x55dbc10e37c0-Statement", + "statement": "0x55dbc10e37d0-ActionStmt", "source": "call check_err(i)" }, { - "id": "0x558d739d57d0-ActionStmt", + "id": "0x55dbc10e37d0-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x558d739d5a60-CallStmt" + "CallStmt": "0x55dbc10e3a60-CallStmt" }, { - "id": "0x558d739d5a60-CallStmt", - "call": "0x558d739d5a60-Call" + "id": "0x55dbc10e3a60-CallStmt", + "call": "0x55dbc10e3a60-Call" }, { - "id": "0x558d739d5a60-Call", - "ProcedureDesignator": "0x558d739d5a78-ProcedureDesignator", + "id": "0x55dbc10e3a60-Call", + "ProcedureDesignator": "0x55dbc10e3a78-ProcedureDesignator", "ActualArgSpec": [ - "0x558d739d5960-ActualArgSpec" + "0x55dbc10e3960-ActualArgSpec" ] }, { - "id": "0x558d739d5a78-ProcedureDesignator", + "id": "0x55dbc10e3a78-ProcedureDesignator", "variantKey": "Name", - "Name": "0x558d739d5a78-Name" + "Name": "0x55dbc10e3a78-Name" }, { - "id": "0x558d739d5a78-Name", + "id": "0x55dbc10e3a78-Name", "source": "check_err" }, { - "id": "0x558d739d5960-ActualArgSpec", - "ActualArg": "0x558d739d5960-ActualArg" + "id": "0x55dbc10e3960-ActualArgSpec", + "ActualArg": "0x55dbc10e3960-ActualArg" }, { - "id": "0x558d739d5960-ActualArg", + "id": "0x55dbc10e3960-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739d5870-Expr" + "Expr": "0x55dbc10e3870-Expr" }, { - "id": "0x558d739d5870-Expr", + "id": "0x55dbc10e3870-Expr", "variantKey": "Designator", - "Designator": "0x558d739d2ac0-Designator" + "Designator": "0x55dbc10e0ac0-Designator" }, { - "id": "0x558d739d2ac0-Designator", + "id": "0x55dbc10e0ac0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739d2ad0-DataRef" + "DataRef": "0x55dbc10e0ad0-DataRef" }, { - "id": "0x558d739d2ad0-DataRef", + "id": "0x55dbc10e0ad0-DataRef", "variantKey": "Name", - "Name": "0x558d739d2ad0-Name" + "Name": "0x55dbc10e0ad0-Name" }, { - "id": "0x558d739d2ad0-Name", + "id": "0x55dbc10e0ad0-Name", "source": "i" }, { - "id": "0x558d739d6290-ExecutionPartConstruct", + "id": "0x55dbc10e4290-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739d6290-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10e4290-ExecutableConstruct" }, { - "id": "0x558d739d6290-ExecutableConstruct", + "id": "0x55dbc10e4290-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739d6290-Statement" + "Statement": "0x55dbc10e4290-Statement" }, { - "id": "0x558d739d6290-Statement", - "statement": "0x558d739d62a0-ActionStmt", + "id": "0x55dbc10e4290-Statement", + "statement": "0x55dbc10e42a0-ActionStmt", "source": "allocate(f(32 + 0, 32 + 0), stat = i)" }, { - "id": "0x558d739d62a0-ActionStmt", + "id": "0x55dbc10e42a0-ActionStmt", "variantKey": "AllocateStmt", - "AllocateStmt": "0x558d7395b0b0-AllocateStmt" + "AllocateStmt": "0x55dbc10690b0-AllocateStmt" }, { - "id": "0x558d7395b0b0-AllocateStmt", + "id": "0x55dbc10690b0-AllocateStmt", "Allocation": [ - "0x558d739d60c0-Allocation" + "0x55dbc10e40c0-Allocation" ], "AllocOpt": [ - "0x558d739d5600-AllocOpt" + "0x55dbc10e3600-AllocOpt" ] }, { - "id": "0x558d739d60c0-Allocation", - "AllocateObject": "0x558d739d6108-AllocateObject", + "id": "0x55dbc10e40c0-Allocation", + "AllocateObject": "0x55dbc10e4108-AllocateObject", "AllocateShapeSpec": [ - "0x558d739da480-AllocateShapeSpec", - "0x558d739ea4a0-AllocateShapeSpec" + "0x55dbc10e8480-AllocateShapeSpec", + "0x55dbc10f84a0-AllocateShapeSpec" ] }, { - "id": "0x558d739d6108-AllocateObject", + "id": "0x55dbc10e4108-AllocateObject", "variantKey": "Name", - "Name": "0x558d739d6118-Name" + "Name": "0x55dbc10e4118-Name" }, { - "id": "0x558d739d6118-Name", + "id": "0x55dbc10e4118-Name", "source": "f" }, { - "id": "0x558d739da480-AllocateShapeSpec", - "upper_bound": "0x558d739d5c00-Expr" + "id": "0x55dbc10e8480-AllocateShapeSpec", + "upper_bound": "0x55dbc10e3c00-Expr" }, { - "id": "0x558d739d5c00-Expr", + "id": "0x55dbc10e3c00-Expr", "variantKey": "Add", - "Add": "0x558d739d5c20-Add" + "Add": "0x55dbc10e3c20-Add" }, { - "id": "0x558d739d5c20-Add", - "left": "0x558d739d5b20-Expr", - "right": "0x558d739d5ce0-Expr", + "id": "0x55dbc10e3c20-Add", + "left": "0x55dbc10e3b20-Expr", + "right": "0x55dbc10e3ce0-Expr", "op": "ADD" }, { - "id": "0x558d739d5b20-Expr", + "id": "0x55dbc10e3b20-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d5b40-LiteralConstant" + "LiteralConstant": "0x55dbc10e3b40-LiteralConstant" }, { - "id": "0x558d739d5b40-LiteralConstant", + "id": "0x55dbc10e3b40-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d5b40-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e3b40-IntLiteralConstant" }, { - "id": "0x558d739d5b40-IntLiteralConstant", + "id": "0x55dbc10e3b40-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x558d739d5ce0-Expr", + "id": "0x55dbc10e3ce0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d5d00-LiteralConstant" + "LiteralConstant": "0x55dbc10e3d00-LiteralConstant" }, { - "id": "0x558d739d5d00-LiteralConstant", + "id": "0x55dbc10e3d00-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d5d00-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e3d00-IntLiteralConstant" }, { - "id": "0x558d739d5d00-IntLiteralConstant", + "id": "0x55dbc10e3d00-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x558d739ea4a0-AllocateShapeSpec", - "upper_bound": "0x558d739d5ea0-Expr" + "id": "0x55dbc10f84a0-AllocateShapeSpec", + "upper_bound": "0x55dbc10e3ea0-Expr" }, { - "id": "0x558d739d5ea0-Expr", + "id": "0x55dbc10e3ea0-Expr", "variantKey": "Add", - "Add": "0x558d739d5ec0-Add" + "Add": "0x55dbc10e3ec0-Add" }, { - "id": "0x558d739d5ec0-Add", - "left": "0x558d739d5dc0-Expr", - "right": "0x558d739d5f80-Expr", + "id": "0x55dbc10e3ec0-Add", + "left": "0x55dbc10e3dc0-Expr", + "right": "0x55dbc10e3f80-Expr", "op": "ADD" }, { - "id": "0x558d739d5dc0-Expr", + "id": "0x55dbc10e3dc0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d5de0-LiteralConstant" + "LiteralConstant": "0x55dbc10e3de0-LiteralConstant" }, { - "id": "0x558d739d5de0-LiteralConstant", + "id": "0x55dbc10e3de0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d5de0-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e3de0-IntLiteralConstant" }, { - "id": "0x558d739d5de0-IntLiteralConstant", + "id": "0x55dbc10e3de0-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x558d739d5f80-Expr", + "id": "0x55dbc10e3f80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d5fa0-LiteralConstant" + "LiteralConstant": "0x55dbc10e3fa0-LiteralConstant" }, { - "id": "0x558d739d5fa0-LiteralConstant", + "id": "0x55dbc10e3fa0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d5fa0-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e3fa0-IntLiteralConstant" }, { - "id": "0x558d739d5fa0-IntLiteralConstant", + "id": "0x55dbc10e3fa0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x558d739d5600-AllocOpt", + "id": "0x55dbc10e3600-AllocOpt", "variantKey": "StatOrErrmsg", - "StatOrErrmsg": "0x558d739d5600-StatOrErrmsg" + "StatOrErrmsg": "0x55dbc10e3600-StatOrErrmsg" }, { - "id": "0x558d739d5600-StatOrErrmsg", + "id": "0x55dbc10e3600-StatOrErrmsg", "variantKey": "StatVariable", - "StatVariable": "0x558d739d5600-StatVariable" + "StatVariable": "0x55dbc10e3600-StatVariable" }, { - "id": "0x558d739d5600-StatVariable", - "Expr": "0x558d739d5600-Variable" + "id": "0x55dbc10e3600-StatVariable", + "Variable": "0x55dbc10e3600-Variable" }, { - "id": "0x558d739d5600-Variable", + "id": "0x55dbc10e3600-Variable", "variantKey": "Designator", - "Designator": "0x558d739d61c0-Designator" + "Designator": "0x55dbc10e41c0-Designator" }, { - "id": "0x558d739d61c0-Designator", + "id": "0x55dbc10e41c0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739d61d0-DataRef" + "DataRef": "0x55dbc10e41d0-DataRef" }, { - "id": "0x558d739d61d0-DataRef", + "id": "0x55dbc10e41d0-DataRef", "variantKey": "Name", - "Name": "0x558d739d61d0-Name" + "Name": "0x55dbc10e41d0-Name" }, { - "id": "0x558d739d61d0-Name", + "id": "0x55dbc10e41d0-Name", "source": "i" }, { - "id": "0x558d739d6230-ExecutionPartConstruct", + "id": "0x55dbc10e4230-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739d6230-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10e4230-ExecutableConstruct" }, { - "id": "0x558d739d6230-ExecutableConstruct", + "id": "0x55dbc10e4230-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739d6230-Statement" + "Statement": "0x55dbc10e4230-Statement" }, { - "id": "0x558d739d6230-Statement", - "statement": "0x558d739d6240-ActionStmt", + "id": "0x55dbc10e4230-Statement", + "statement": "0x55dbc10e4240-ActionStmt", "source": "call check_err(i)" }, { - "id": "0x558d739d6240-ActionStmt", + "id": "0x55dbc10e4240-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x558d739d64d0-CallStmt" + "CallStmt": "0x55dbc10e44d0-CallStmt" }, { - "id": "0x558d739d64d0-CallStmt", - "call": "0x558d739d64d0-Call" + "id": "0x55dbc10e44d0-CallStmt", + "call": "0x55dbc10e44d0-Call" }, { - "id": "0x558d739d64d0-Call", - "ProcedureDesignator": "0x558d739d64e8-ProcedureDesignator", + "id": "0x55dbc10e44d0-Call", + "ProcedureDesignator": "0x55dbc10e44e8-ProcedureDesignator", "ActualArgSpec": [ - "0x558d739d63d0-ActualArgSpec" + "0x55dbc10e43d0-ActualArgSpec" ] }, { - "id": "0x558d739d64e8-ProcedureDesignator", + "id": "0x55dbc10e44e8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x558d739d64e8-Name" + "Name": "0x55dbc10e44e8-Name" }, { - "id": "0x558d739d64e8-Name", + "id": "0x55dbc10e44e8-Name", "source": "check_err" }, { - "id": "0x558d739d63d0-ActualArgSpec", - "ActualArg": "0x558d739d63d0-ActualArg" + "id": "0x55dbc10e43d0-ActualArgSpec", + "ActualArg": "0x55dbc10e43d0-ActualArg" }, { - "id": "0x558d739d63d0-ActualArg", + "id": "0x55dbc10e43d0-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739d62e0-Expr" + "Expr": "0x55dbc10e42e0-Expr" }, { - "id": "0x558d739d62e0-Expr", + "id": "0x55dbc10e42e0-Expr", "variantKey": "Designator", - "Designator": "0x558d739d2000-Designator" + "Designator": "0x55dbc10e0000-Designator" }, { - "id": "0x558d739d2000-Designator", + "id": "0x55dbc10e0000-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739d2010-DataRef" + "DataRef": "0x55dbc10e0010-DataRef" }, { - "id": "0x558d739d2010-DataRef", + "id": "0x55dbc10e0010-DataRef", "variantKey": "Name", - "Name": "0x558d739d2010-Name" + "Name": "0x55dbc10e0010-Name" }, { - "id": "0x558d739d2010-Name", + "id": "0x55dbc10e0010-Name", "source": "i" }, { - "id": "0x558d739d6d00-ExecutionPartConstruct", + "id": "0x55dbc10e4d00-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739d6d00-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10e4d00-ExecutableConstruct" }, { - "id": "0x558d739d6d00-ExecutableConstruct", + "id": "0x55dbc10e4d00-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739d6d00-Statement" + "Statement": "0x55dbc10e4d00-Statement" }, { - "id": "0x558d739d6d00-Statement", - "statement": "0x558d739d6d10-ActionStmt", + "id": "0x55dbc10e4d00-Statement", + "statement": "0x55dbc10e4d10-ActionStmt", "source": "allocate(g(32 + 0, 32 + 0), stat = i)" }, { - "id": "0x558d739d6d10-ActionStmt", + "id": "0x55dbc10e4d10-ActionStmt", "variantKey": "AllocateStmt", - "AllocateStmt": "0x558d7395b1d0-AllocateStmt" + "AllocateStmt": "0x55dbc10691d0-AllocateStmt" }, { - "id": "0x558d7395b1d0-AllocateStmt", + "id": "0x55dbc10691d0-AllocateStmt", "Allocation": [ - "0x558d739d6b30-Allocation" + "0x55dbc10e4b30-Allocation" ], "AllocOpt": [ - "0x558d739d6070-AllocOpt" + "0x55dbc10e4070-AllocOpt" ] }, { - "id": "0x558d739d6b30-Allocation", - "AllocateObject": "0x558d739d6b78-AllocateObject", + "id": "0x55dbc10e4b30-Allocation", + "AllocateObject": "0x55dbc10e4b78-AllocateObject", "AllocateShapeSpec": [ - "0x558d739da680-AllocateShapeSpec", - "0x558d739da610-AllocateShapeSpec" + "0x55dbc10e8680-AllocateShapeSpec", + "0x55dbc10e8610-AllocateShapeSpec" ] }, { - "id": "0x558d739d6b78-AllocateObject", + "id": "0x55dbc10e4b78-AllocateObject", "variantKey": "Name", - "Name": "0x558d739d6b88-Name" + "Name": "0x55dbc10e4b88-Name" }, { - "id": "0x558d739d6b88-Name", + "id": "0x55dbc10e4b88-Name", "source": "g" }, { - "id": "0x558d739da680-AllocateShapeSpec", - "upper_bound": "0x558d739d6670-Expr" + "id": "0x55dbc10e8680-AllocateShapeSpec", + "upper_bound": "0x55dbc10e4670-Expr" }, { - "id": "0x558d739d6670-Expr", + "id": "0x55dbc10e4670-Expr", "variantKey": "Add", - "Add": "0x558d739d6690-Add" + "Add": "0x55dbc10e4690-Add" }, { - "id": "0x558d739d6690-Add", - "left": "0x558d739d6590-Expr", - "right": "0x558d739d6750-Expr", + "id": "0x55dbc10e4690-Add", + "left": "0x55dbc10e4590-Expr", + "right": "0x55dbc10e4750-Expr", "op": "ADD" }, { - "id": "0x558d739d6590-Expr", + "id": "0x55dbc10e4590-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d65b0-LiteralConstant" + "LiteralConstant": "0x55dbc10e45b0-LiteralConstant" }, { - "id": "0x558d739d65b0-LiteralConstant", + "id": "0x55dbc10e45b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d65b0-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e45b0-IntLiteralConstant" }, { - "id": "0x558d739d65b0-IntLiteralConstant", + "id": "0x55dbc10e45b0-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x558d739d6750-Expr", + "id": "0x55dbc10e4750-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d6770-LiteralConstant" + "LiteralConstant": "0x55dbc10e4770-LiteralConstant" }, { - "id": "0x558d739d6770-LiteralConstant", + "id": "0x55dbc10e4770-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d6770-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e4770-IntLiteralConstant" }, { - "id": "0x558d739d6770-IntLiteralConstant", + "id": "0x55dbc10e4770-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x558d739da610-AllocateShapeSpec", - "upper_bound": "0x558d739d6910-Expr" + "id": "0x55dbc10e8610-AllocateShapeSpec", + "upper_bound": "0x55dbc10e4910-Expr" }, { - "id": "0x558d739d6910-Expr", + "id": "0x55dbc10e4910-Expr", "variantKey": "Add", - "Add": "0x558d739d6930-Add" + "Add": "0x55dbc10e4930-Add" }, { - "id": "0x558d739d6930-Add", - "left": "0x558d739d6830-Expr", - "right": "0x558d739d69f0-Expr", + "id": "0x55dbc10e4930-Add", + "left": "0x55dbc10e4830-Expr", + "right": "0x55dbc10e49f0-Expr", "op": "ADD" }, { - "id": "0x558d739d6830-Expr", + "id": "0x55dbc10e4830-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d6850-LiteralConstant" + "LiteralConstant": "0x55dbc10e4850-LiteralConstant" }, { - "id": "0x558d739d6850-LiteralConstant", + "id": "0x55dbc10e4850-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d6850-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e4850-IntLiteralConstant" }, { - "id": "0x558d739d6850-IntLiteralConstant", + "id": "0x55dbc10e4850-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x558d739d69f0-Expr", + "id": "0x55dbc10e49f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d6a10-LiteralConstant" + "LiteralConstant": "0x55dbc10e4a10-LiteralConstant" }, { - "id": "0x558d739d6a10-LiteralConstant", + "id": "0x55dbc10e4a10-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d6a10-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e4a10-IntLiteralConstant" }, { - "id": "0x558d739d6a10-IntLiteralConstant", + "id": "0x55dbc10e4a10-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x558d739d6070-AllocOpt", + "id": "0x55dbc10e4070-AllocOpt", "variantKey": "StatOrErrmsg", - "StatOrErrmsg": "0x558d739d6070-StatOrErrmsg" + "StatOrErrmsg": "0x55dbc10e4070-StatOrErrmsg" }, { - "id": "0x558d739d6070-StatOrErrmsg", + "id": "0x55dbc10e4070-StatOrErrmsg", "variantKey": "StatVariable", - "StatVariable": "0x558d739d6070-StatVariable" + "StatVariable": "0x55dbc10e4070-StatVariable" }, { - "id": "0x558d739d6070-StatVariable", - "Expr": "0x558d739d6070-Variable" + "id": "0x55dbc10e4070-StatVariable", + "Variable": "0x55dbc10e4070-Variable" }, { - "id": "0x558d739d6070-Variable", + "id": "0x55dbc10e4070-Variable", "variantKey": "Designator", - "Designator": "0x558d739d6c30-Designator" + "Designator": "0x55dbc10e4c30-Designator" }, { - "id": "0x558d739d6c30-Designator", + "id": "0x55dbc10e4c30-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739d6c40-DataRef" + "DataRef": "0x55dbc10e4c40-DataRef" }, { - "id": "0x558d739d6c40-DataRef", + "id": "0x55dbc10e4c40-DataRef", "variantKey": "Name", - "Name": "0x558d739d6c40-Name" + "Name": "0x55dbc10e4c40-Name" }, { - "id": "0x558d739d6c40-Name", + "id": "0x55dbc10e4c40-Name", "source": "i" }, { - "id": "0x558d739d6ca0-ExecutionPartConstruct", + "id": "0x55dbc10e4ca0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739d6ca0-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10e4ca0-ExecutableConstruct" }, { - "id": "0x558d739d6ca0-ExecutableConstruct", + "id": "0x55dbc10e4ca0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739d6ca0-Statement" + "Statement": "0x55dbc10e4ca0-Statement" }, { - "id": "0x558d739d6ca0-Statement", - "statement": "0x558d739d6cb0-ActionStmt", + "id": "0x55dbc10e4ca0-Statement", + "statement": "0x55dbc10e4cb0-ActionStmt", "source": "call check_err(i)" }, { - "id": "0x558d739d6cb0-ActionStmt", + "id": "0x55dbc10e4cb0-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x558d739d6f40-CallStmt" + "CallStmt": "0x55dbc10e4f40-CallStmt" }, { - "id": "0x558d739d6f40-CallStmt", - "call": "0x558d739d6f40-Call" + "id": "0x55dbc10e4f40-CallStmt", + "call": "0x55dbc10e4f40-Call" }, { - "id": "0x558d739d6f40-Call", - "ProcedureDesignator": "0x558d739d6f58-ProcedureDesignator", + "id": "0x55dbc10e4f40-Call", + "ProcedureDesignator": "0x55dbc10e4f58-ProcedureDesignator", "ActualArgSpec": [ - "0x558d739d6e40-ActualArgSpec" + "0x55dbc10e4e40-ActualArgSpec" ] }, { - "id": "0x558d739d6f58-ProcedureDesignator", + "id": "0x55dbc10e4f58-ProcedureDesignator", "variantKey": "Name", - "Name": "0x558d739d6f58-Name" + "Name": "0x55dbc10e4f58-Name" }, { - "id": "0x558d739d6f58-Name", + "id": "0x55dbc10e4f58-Name", "source": "check_err" }, { - "id": "0x558d739d6e40-ActualArgSpec", - "ActualArg": "0x558d739d6e40-ActualArg" + "id": "0x55dbc10e4e40-ActualArgSpec", + "ActualArg": "0x55dbc10e4e40-ActualArg" }, { - "id": "0x558d739d6e40-ActualArg", + "id": "0x55dbc10e4e40-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739d6d50-Expr" + "Expr": "0x55dbc10e4d50-Expr" }, { - "id": "0x558d739d6d50-Expr", + "id": "0x55dbc10e4d50-Expr", "variantKey": "Designator", - "Designator": "0x558d739d37a0-Designator" + "Designator": "0x55dbc10e17a0-Designator" }, { - "id": "0x558d739d37a0-Designator", + "id": "0x55dbc10e17a0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739d37b0-DataRef" + "DataRef": "0x55dbc10e17b0-DataRef" }, { - "id": "0x558d739d37b0-DataRef", + "id": "0x55dbc10e17b0-DataRef", "variantKey": "Name", - "Name": "0x558d739d37b0-Name" + "Name": "0x55dbc10e17b0-Name" }, { - "id": "0x558d739d37b0-Name", + "id": "0x55dbc10e17b0-Name", "source": "i" }, { - "id": "0x558d739d9ac0-ExecutionPartConstruct", + "id": "0x55dbc10e7ac0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739d9ac0-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10e7ac0-ExecutableConstruct" }, { - "id": "0x558d739d9ac0-ExecutableConstruct", + "id": "0x55dbc10e7ac0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739d9ac0-Statement" + "Statement": "0x55dbc10e7ac0-Statement" }, { - "id": "0x558d739d9ac0-Statement", - "statement": "0x558d739d9ad0-ActionStmt", + "id": "0x55dbc10e7ac0-Statement", + "statement": "0x55dbc10e7ad0-ActionStmt", "source": "call init_array(32, 32, 32, 32, 32, a, b, c, d)" }, { - "id": "0x558d739d9ad0-ActionStmt", + "id": "0x55dbc10e7ad0-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x558d739d9980-CallStmt" + "CallStmt": "0x55dbc10e7980-CallStmt" }, { - "id": "0x558d739d9980-CallStmt", - "call": "0x558d739d9980-Call" + "id": "0x55dbc10e7980-CallStmt", + "call": "0x55dbc10e7980-Call" }, { - "id": "0x558d739d9980-Call", - "ProcedureDesignator": "0x558d739d9998-ProcedureDesignator", + "id": "0x55dbc10e7980-Call", + "ProcedureDesignator": "0x55dbc10e7998-ProcedureDesignator", "ActualArgSpec": [ - "0x558d739d9810-ActualArgSpec", - "0x558d739d8f30-ActualArgSpec", - "0x558d739d9040-ActualArgSpec", - "0x558d739d9150-ActualArgSpec", - "0x558d739d9260-ActualArgSpec", - "0x558d739d9370-ActualArgSpec", - "0x558d739d9480-ActualArgSpec", - "0x558d739d9590-ActualArgSpec", - "0x558d739d9700-ActualArgSpec" + "0x55dbc10e7810-ActualArgSpec", + "0x55dbc10e6f30-ActualArgSpec", + "0x55dbc10e7040-ActualArgSpec", + "0x55dbc10e7150-ActualArgSpec", + "0x55dbc10e7260-ActualArgSpec", + "0x55dbc10e7370-ActualArgSpec", + "0x55dbc10e7480-ActualArgSpec", + "0x55dbc10e7590-ActualArgSpec", + "0x55dbc10e7700-ActualArgSpec" ] }, { - "id": "0x558d739d9998-ProcedureDesignator", + "id": "0x55dbc10e7998-ProcedureDesignator", "variantKey": "Name", - "Name": "0x558d739d9998-Name" + "Name": "0x55dbc10e7998-Name" }, { - "id": "0x558d739d9998-Name", + "id": "0x55dbc10e7998-Name", "source": "init_array" }, { - "id": "0x558d739d9810-ActualArgSpec", - "ActualArg": "0x558d739d9810-ActualArg" + "id": "0x55dbc10e7810-ActualArgSpec", + "ActualArg": "0x55dbc10e7810-ActualArg" }, { - "id": "0x558d739d9810-ActualArg", + "id": "0x55dbc10e7810-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739d7fe0-Expr" + "Expr": "0x55dbc10e5fe0-Expr" }, { - "id": "0x558d739d7fe0-Expr", + "id": "0x55dbc10e5fe0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d8000-LiteralConstant" + "LiteralConstant": "0x55dbc10e6000-LiteralConstant" }, { - "id": "0x558d739d8000-LiteralConstant", + "id": "0x55dbc10e6000-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d8000-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e6000-IntLiteralConstant" }, { - "id": "0x558d739d8000-IntLiteralConstant", + "id": "0x55dbc10e6000-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x558d739d8f30-ActualArgSpec", - "ActualArg": "0x558d739d8f30-ActualArg" + "id": "0x55dbc10e6f30-ActualArgSpec", + "ActualArg": "0x55dbc10e6f30-ActualArg" }, { - "id": "0x558d739d8f30-ActualArg", + "id": "0x55dbc10e6f30-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739d79a0-Expr" + "Expr": "0x55dbc10e59a0-Expr" }, { - "id": "0x558d739d79a0-Expr", + "id": "0x55dbc10e59a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d79c0-LiteralConstant" + "LiteralConstant": "0x55dbc10e59c0-LiteralConstant" }, { - "id": "0x558d739d79c0-LiteralConstant", + "id": "0x55dbc10e59c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d79c0-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e59c0-IntLiteralConstant" }, { - "id": "0x558d739d79c0-IntLiteralConstant", + "id": "0x55dbc10e59c0-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x558d739d9040-ActualArgSpec", - "ActualArg": "0x558d739d9040-ActualArg" + "id": "0x55dbc10e7040-ActualArgSpec", + "ActualArg": "0x55dbc10e7040-ActualArg" }, { - "id": "0x558d739d9040-ActualArg", + "id": "0x55dbc10e7040-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739d7420-Expr" + "Expr": "0x55dbc10e5420-Expr" }, { - "id": "0x558d739d7420-Expr", + "id": "0x55dbc10e5420-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d7440-LiteralConstant" + "LiteralConstant": "0x55dbc10e5440-LiteralConstant" }, { - "id": "0x558d739d7440-LiteralConstant", + "id": "0x55dbc10e5440-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d7440-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e5440-IntLiteralConstant" }, { - "id": "0x558d739d7440-IntLiteralConstant", + "id": "0x55dbc10e5440-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x558d739d9150-ActualArgSpec", - "ActualArg": "0x558d739d9150-ActualArg" + "id": "0x55dbc10e7150-ActualArgSpec", + "ActualArg": "0x55dbc10e7150-ActualArg" }, { - "id": "0x558d739d9150-ActualArg", + "id": "0x55dbc10e7150-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739d72f0-Expr" + "Expr": "0x55dbc10e52f0-Expr" }, { - "id": "0x558d739d72f0-Expr", + "id": "0x55dbc10e52f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d7310-LiteralConstant" + "LiteralConstant": "0x55dbc10e5310-LiteralConstant" }, { - "id": "0x558d739d7310-LiteralConstant", + "id": "0x55dbc10e5310-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d7310-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e5310-IntLiteralConstant" }, { - "id": "0x558d739d7310-IntLiteralConstant", + "id": "0x55dbc10e5310-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x558d739d9260-ActualArgSpec", - "ActualArg": "0x558d739d9260-ActualArg" + "id": "0x55dbc10e7260-ActualArgSpec", + "ActualArg": "0x55dbc10e7260-ActualArg" }, { - "id": "0x558d739d9260-ActualArg", + "id": "0x55dbc10e7260-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739d71c0-Expr" + "Expr": "0x55dbc10e51c0-Expr" }, { - "id": "0x558d739d71c0-Expr", + "id": "0x55dbc10e51c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d71e0-LiteralConstant" + "LiteralConstant": "0x55dbc10e51e0-LiteralConstant" }, { - "id": "0x558d739d71e0-LiteralConstant", + "id": "0x55dbc10e51e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d71e0-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e51e0-IntLiteralConstant" }, { - "id": "0x558d739d71e0-IntLiteralConstant", + "id": "0x55dbc10e51e0-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x558d739d9370-ActualArgSpec", - "ActualArg": "0x558d739d9370-ActualArg" + "id": "0x55dbc10e7370-ActualArgSpec", + "ActualArg": "0x55dbc10e7370-ActualArg" }, { - "id": "0x558d739d9370-ActualArg", + "id": "0x55dbc10e7370-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739d70e0-Expr" + "Expr": "0x55dbc10e50e0-Expr" }, { - "id": "0x558d739d70e0-Expr", + "id": "0x55dbc10e50e0-Expr", "variantKey": "Designator", - "Designator": "0x558d739d8550-Designator" + "Designator": "0x55dbc10e6550-Designator" }, { - "id": "0x558d739d8550-Designator", + "id": "0x55dbc10e6550-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739d8560-DataRef" + "DataRef": "0x55dbc10e6560-DataRef" }, { - "id": "0x558d739d8560-DataRef", + "id": "0x55dbc10e6560-DataRef", "variantKey": "Name", - "Name": "0x558d739d8560-Name" + "Name": "0x55dbc10e6560-Name" }, { - "id": "0x558d739d8560-Name", + "id": "0x55dbc10e6560-Name", "source": "a" }, { - "id": "0x558d739d9480-ActualArgSpec", - "ActualArg": "0x558d739d9480-ActualArg" + "id": "0x55dbc10e7480-ActualArgSpec", + "ActualArg": "0x55dbc10e7480-ActualArg" }, { - "id": "0x558d739d9480-ActualArg", + "id": "0x55dbc10e7480-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739d7000-Expr" + "Expr": "0x55dbc10e5000-Expr" }, { - "id": "0x558d739d7000-Expr", + "id": "0x55dbc10e5000-Expr", "variantKey": "Designator", - "Designator": "0x558d739d7f10-Designator" + "Designator": "0x55dbc10e5f10-Designator" }, { - "id": "0x558d739d7f10-Designator", + "id": "0x55dbc10e5f10-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739d7f20-DataRef" + "DataRef": "0x55dbc10e5f20-DataRef" }, { - "id": "0x558d739d7f20-DataRef", + "id": "0x55dbc10e5f20-DataRef", "variantKey": "Name", - "Name": "0x558d739d7f20-Name" + "Name": "0x55dbc10e5f20-Name" }, { - "id": "0x558d739d7f20-Name", + "id": "0x55dbc10e5f20-Name", "source": "b" }, { - "id": "0x558d739d9590-ActualArgSpec", - "ActualArg": "0x558d739d9590-ActualArg" + "id": "0x55dbc10e7590-ActualArgSpec", + "ActualArg": "0x55dbc10e7590-ActualArg" }, { - "id": "0x558d739d9590-ActualArg", + "id": "0x55dbc10e7590-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739d8620-Expr" + "Expr": "0x55dbc10e6620-Expr" }, { - "id": "0x558d739d8620-Expr", + "id": "0x55dbc10e6620-Expr", "variantKey": "Designator", - "Designator": "0x558d739d78d0-Designator" + "Designator": "0x55dbc10e58d0-Designator" }, { - "id": "0x558d739d78d0-Designator", + "id": "0x55dbc10e58d0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739d78e0-DataRef" + "DataRef": "0x55dbc10e58e0-DataRef" }, { - "id": "0x558d739d78e0-DataRef", + "id": "0x55dbc10e58e0-DataRef", "variantKey": "Name", - "Name": "0x558d739d78e0-Name" + "Name": "0x55dbc10e58e0-Name" }, { - "id": "0x558d739d78e0-Name", + "id": "0x55dbc10e58e0-Name", "source": "c" }, { - "id": "0x558d739d9700-ActualArgSpec", - "ActualArg": "0x558d739d9700-ActualArg" + "id": "0x55dbc10e7700-ActualArgSpec", + "ActualArg": "0x55dbc10e7700-ActualArg" }, { - "id": "0x558d739d9700-ActualArg", + "id": "0x55dbc10e7700-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739d8c60-Expr" + "Expr": "0x55dbc10e6c60-Expr" }, { - "id": "0x558d739d8c60-Expr", + "id": "0x55dbc10e6c60-Expr", "variantKey": "Designator", - "Designator": "0x558d739d9690-Designator" + "Designator": "0x55dbc10e7690-Designator" }, { - "id": "0x558d739d9690-Designator", + "id": "0x55dbc10e7690-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739d96a0-DataRef" + "DataRef": "0x55dbc10e76a0-DataRef" }, { - "id": "0x558d739d96a0-DataRef", + "id": "0x55dbc10e76a0-DataRef", "variantKey": "Name", - "Name": "0x558d739d96a0-Name" + "Name": "0x55dbc10e76a0-Name" }, { - "id": "0x558d739d96a0-Name", + "id": "0x55dbc10e76a0-Name", "source": "d" }, { - "id": "0x558d739d8980-ExecutionPartConstruct", + "id": "0x55dbc10e6980-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739d8980-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10e6980-ExecutableConstruct" }, { - "id": "0x558d739d8980-ExecutableConstruct", + "id": "0x55dbc10e6980-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739d8980-Statement" + "Statement": "0x55dbc10e6980-Statement" }, { - "id": "0x558d739d8980-Statement", - "statement": "0x558d739d8990-ActionStmt", + "id": "0x55dbc10e6980-Statement", + "statement": "0x55dbc10e6990-ActionStmt", "source": "call polybench_timer_start()" }, { - "id": "0x558d739d8990-ActionStmt", + "id": "0x55dbc10e6990-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x558d739d9b10-CallStmt" + "CallStmt": "0x55dbc10e7b10-CallStmt" }, { - "id": "0x558d739d9b10-CallStmt", - "call": "0x558d739d9b10-Call" + "id": "0x55dbc10e7b10-CallStmt", + "call": "0x55dbc10e7b10-Call" }, { - "id": "0x558d739d9b10-Call", - "ProcedureDesignator": "0x558d739d9b28-ProcedureDesignator" + "id": "0x55dbc10e7b10-Call", + "ProcedureDesignator": "0x55dbc10e7b28-ProcedureDesignator" }, { - "id": "0x558d739d9b28-ProcedureDesignator", + "id": "0x55dbc10e7b28-ProcedureDesignator", "variantKey": "Name", - "Name": "0x558d739d9b28-Name" + "Name": "0x55dbc10e7b28-Name" }, { - "id": "0x558d739d9b28-Name", + "id": "0x55dbc10e7b28-Name", "source": "polybench_timer_start" }, { - "id": "0x558d739ec6f0-ExecutionPartConstruct", + "id": "0x55dbc10fa6f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739ec6f0-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10fa6f0-ExecutableConstruct" }, { - "id": "0x558d739ec6f0-ExecutableConstruct", + "id": "0x55dbc10fa6f0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739ec6f0-Statement" + "Statement": "0x55dbc10fa6f0-Statement" }, { - "id": "0x558d739ec6f0-Statement", - "statement": "0x558d739ec700-ActionStmt", + "id": "0x55dbc10fa6f0-Statement", + "statement": "0x55dbc10fa700-ActionStmt", "source": "call kernel_3mm(32, 32, 32, 32, 32, e, a, b, f, c, d, g)" }, { - "id": "0x558d739ec700-ActionStmt", + "id": "0x55dbc10fa700-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x558d739ec5b0-CallStmt" + "CallStmt": "0x55dbc10fa5b0-CallStmt" }, { - "id": "0x558d739ec5b0-CallStmt", - "call": "0x558d739ec5b0-Call" + "id": "0x55dbc10fa5b0-CallStmt", + "call": "0x55dbc10fa5b0-Call" }, { - "id": "0x558d739ec5b0-Call", - "ProcedureDesignator": "0x558d739ec5c8-ProcedureDesignator", + "id": "0x55dbc10fa5b0-Call", + "ProcedureDesignator": "0x55dbc10fa5c8-ProcedureDesignator", "ActualArgSpec": [ - "0x558d739ec440-ActualArgSpec", - "0x558d739eb7b0-ActualArgSpec", - "0x558d739eb8c0-ActualArgSpec", - "0x558d739eb9d0-ActualArgSpec", - "0x558d739ebae0-ActualArgSpec", - "0x558d739ebbf0-ActualArgSpec", - "0x558d739ebd00-ActualArgSpec", - "0x558d739ebe10-ActualArgSpec", - "0x558d739ebf20-ActualArgSpec", - "0x558d739ec030-ActualArgSpec", - "0x558d739ec140-ActualArgSpec", - "0x558d739ec330-ActualArgSpec" + "0x55dbc10fa440-ActualArgSpec", + "0x55dbc10f97b0-ActualArgSpec", + "0x55dbc10f98c0-ActualArgSpec", + "0x55dbc10f99d0-ActualArgSpec", + "0x55dbc10f9ae0-ActualArgSpec", + "0x55dbc10f9bf0-ActualArgSpec", + "0x55dbc10f9d00-ActualArgSpec", + "0x55dbc10f9e10-ActualArgSpec", + "0x55dbc10f9f20-ActualArgSpec", + "0x55dbc10fa030-ActualArgSpec", + "0x55dbc10fa140-ActualArgSpec", + "0x55dbc10fa330-ActualArgSpec" ] }, { - "id": "0x558d739ec5c8-ProcedureDesignator", + "id": "0x55dbc10fa5c8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x558d739ec5c8-Name" + "Name": "0x55dbc10fa5c8-Name" }, { - "id": "0x558d739ec5c8-Name", + "id": "0x55dbc10fa5c8-Name", "source": "kernel_3mm" }, { - "id": "0x558d739ec440-ActualArgSpec", - "ActualArg": "0x558d739ec440-ActualArg" + "id": "0x55dbc10fa440-ActualArgSpec", + "ActualArg": "0x55dbc10fa440-ActualArg" }, { - "id": "0x558d739ec440-ActualArg", + "id": "0x55dbc10fa440-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739da110-Expr" + "Expr": "0x55dbc10e8110-Expr" }, { - "id": "0x558d739da110-Expr", + "id": "0x55dbc10e8110-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739da130-LiteralConstant" + "LiteralConstant": "0x55dbc10e8130-LiteralConstant" }, { - "id": "0x558d739da130-LiteralConstant", + "id": "0x55dbc10e8130-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739da130-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e8130-IntLiteralConstant" }, { - "id": "0x558d739da130-IntLiteralConstant", + "id": "0x55dbc10e8130-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x558d739eb7b0-ActualArgSpec", - "ActualArg": "0x558d739eb7b0-ActualArg" + "id": "0x55dbc10f97b0-ActualArgSpec", + "ActualArg": "0x55dbc10f97b0-ActualArg" }, { - "id": "0x558d739eb7b0-ActualArg", + "id": "0x55dbc10f97b0-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739da030-Expr" + "Expr": "0x55dbc10e8030-Expr" }, { - "id": "0x558d739da030-Expr", + "id": "0x55dbc10e8030-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739da050-LiteralConstant" + "LiteralConstant": "0x55dbc10e8050-LiteralConstant" }, { - "id": "0x558d739da050-LiteralConstant", + "id": "0x55dbc10e8050-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739da050-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e8050-IntLiteralConstant" }, { - "id": "0x558d739da050-IntLiteralConstant", + "id": "0x55dbc10e8050-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x558d739eb8c0-ActualArgSpec", - "ActualArg": "0x558d739eb8c0-ActualArg" + "id": "0x55dbc10f98c0-ActualArgSpec", + "ActualArg": "0x55dbc10f98c0-ActualArg" }, { - "id": "0x558d739eb8c0-ActualArg", + "id": "0x55dbc10f98c0-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739d9f50-Expr" + "Expr": "0x55dbc10e7f50-Expr" }, { - "id": "0x558d739d9f50-Expr", + "id": "0x55dbc10e7f50-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d9f70-LiteralConstant" + "LiteralConstant": "0x55dbc10e7f70-LiteralConstant" }, { - "id": "0x558d739d9f70-LiteralConstant", + "id": "0x55dbc10e7f70-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d9f70-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e7f70-IntLiteralConstant" }, { - "id": "0x558d739d9f70-IntLiteralConstant", + "id": "0x55dbc10e7f70-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x558d739eb9d0-ActualArgSpec", - "ActualArg": "0x558d739eb9d0-ActualArg" + "id": "0x55dbc10f99d0-ActualArgSpec", + "ActualArg": "0x55dbc10f99d0-ActualArg" }, { - "id": "0x558d739eb9d0-ActualArg", + "id": "0x55dbc10f99d0-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739d9e70-Expr" + "Expr": "0x55dbc10e7e70-Expr" }, { - "id": "0x558d739d9e70-Expr", + "id": "0x55dbc10e7e70-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d9e90-LiteralConstant" + "LiteralConstant": "0x55dbc10e7e90-LiteralConstant" }, { - "id": "0x558d739d9e90-LiteralConstant", + "id": "0x55dbc10e7e90-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d9e90-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e7e90-IntLiteralConstant" }, { - "id": "0x558d739d9e90-IntLiteralConstant", + "id": "0x55dbc10e7e90-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x558d739ebae0-ActualArgSpec", - "ActualArg": "0x558d739ebae0-ActualArg" + "id": "0x55dbc10f9ae0-ActualArgSpec", + "ActualArg": "0x55dbc10f9ae0-ActualArg" }, { - "id": "0x558d739ebae0-ActualArg", + "id": "0x55dbc10f9ae0-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739d9d90-Expr" + "Expr": "0x55dbc10e7d90-Expr" }, { - "id": "0x558d739d9d90-Expr", + "id": "0x55dbc10e7d90-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d9db0-LiteralConstant" + "LiteralConstant": "0x55dbc10e7db0-LiteralConstant" }, { - "id": "0x558d739d9db0-LiteralConstant", + "id": "0x55dbc10e7db0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d9db0-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e7db0-IntLiteralConstant" }, { - "id": "0x558d739d9db0-IntLiteralConstant", + "id": "0x55dbc10e7db0-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x558d739ebbf0-ActualArgSpec", - "ActualArg": "0x558d739ebbf0-ActualArg" + "id": "0x55dbc10f9bf0-ActualArgSpec", + "ActualArg": "0x55dbc10f9bf0-ActualArg" }, { - "id": "0x558d739ebbf0-ActualArg", + "id": "0x55dbc10f9bf0-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739d9cb0-Expr" + "Expr": "0x55dbc10e7cb0-Expr" }, { - "id": "0x558d739d9cb0-Expr", + "id": "0x55dbc10e7cb0-Expr", "variantKey": "Designator", - "Designator": "0x558d739d16e0-Designator" + "Designator": "0x55dbc10df6e0-Designator" }, { - "id": "0x558d739d16e0-Designator", + "id": "0x55dbc10df6e0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739d16f0-DataRef" + "DataRef": "0x55dbc10df6f0-DataRef" }, { - "id": "0x558d739d16f0-DataRef", + "id": "0x55dbc10df6f0-DataRef", "variantKey": "Name", - "Name": "0x558d739d16f0-Name" + "Name": "0x55dbc10df6f0-Name" }, { - "id": "0x558d739d16f0-Name", + "id": "0x55dbc10df6f0-Name", "source": "e" }, { - "id": "0x558d739ebd00-ActualArgSpec", - "ActualArg": "0x558d739ebd00-ActualArg" + "id": "0x55dbc10f9d00-ActualArgSpec", + "ActualArg": "0x55dbc10f9d00-ActualArg" }, { - "id": "0x558d739ebd00-ActualArg", + "id": "0x55dbc10f9d00-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739d9bd0-Expr" + "Expr": "0x55dbc10e7bd0-Expr" }, { - "id": "0x558d739d9bd0-Expr", + "id": "0x55dbc10e7bd0-Expr", "variantKey": "Designator", - "Designator": "0x558d739d1bd0-Designator" + "Designator": "0x55dbc10dfbd0-Designator" }, { - "id": "0x558d739d1bd0-Designator", + "id": "0x55dbc10dfbd0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739d1be0-DataRef" + "DataRef": "0x55dbc10dfbe0-DataRef" }, { - "id": "0x558d739d1be0-DataRef", + "id": "0x55dbc10dfbe0-DataRef", "variantKey": "Name", - "Name": "0x558d739d1be0-Name" + "Name": "0x55dbc10dfbe0-Name" }, { - "id": "0x558d739d1be0-Name", + "id": "0x55dbc10dfbe0-Name", "source": "a" }, { - "id": "0x558d739ebe10-ActualArgSpec", - "ActualArg": "0x558d739ebe10-ActualArg" + "id": "0x55dbc10f9e10-ActualArgSpec", + "ActualArg": "0x55dbc10f9e10-ActualArg" }, { - "id": "0x558d739ebe10-ActualArg", + "id": "0x55dbc10f9e10-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739e7c10-Expr" + "Expr": "0x55dbc10f5c10-Expr" }, { - "id": "0x558d739e7c10-Expr", + "id": "0x55dbc10f5c10-Expr", "variantKey": "Designator", - "Designator": "0x558d739e3ad0-Designator" + "Designator": "0x55dbc10f1ad0-Designator" }, { - "id": "0x558d739e3ad0-Designator", + "id": "0x55dbc10f1ad0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739e3ae0-DataRef" + "DataRef": "0x55dbc10f1ae0-DataRef" }, { - "id": "0x558d739e3ae0-DataRef", + "id": "0x55dbc10f1ae0-DataRef", "variantKey": "Name", - "Name": "0x558d739e3ae0-Name" + "Name": "0x55dbc10f1ae0-Name" }, { - "id": "0x558d739e3ae0-Name", + "id": "0x55dbc10f1ae0-Name", "source": "b" }, { - "id": "0x558d739ebf20-ActualArgSpec", - "ActualArg": "0x558d739ebf20-ActualArg" + "id": "0x55dbc10f9f20-ActualArgSpec", + "ActualArg": "0x55dbc10f9f20-ActualArg" }, { - "id": "0x558d739ebf20-ActualArg", + "id": "0x55dbc10f9f20-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739eb5a0-Expr" + "Expr": "0x55dbc10f95a0-Expr" }, { - "id": "0x558d739eb5a0-Expr", + "id": "0x55dbc10f95a0-Expr", "variantKey": "Designator", - "Designator": "0x558d739d4210-Designator" + "Designator": "0x55dbc10e2210-Designator" }, { - "id": "0x558d739d4210-Designator", + "id": "0x55dbc10e2210-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739d4220-DataRef" + "DataRef": "0x55dbc10e2220-DataRef" }, { - "id": "0x558d739d4220-DataRef", + "id": "0x55dbc10e2220-DataRef", "variantKey": "Name", - "Name": "0x558d739d4220-Name" + "Name": "0x55dbc10e2220-Name" }, { - "id": "0x558d739d4220-Name", + "id": "0x55dbc10e2220-Name", "source": "f" }, { - "id": "0x558d739ec030-ActualArgSpec", - "ActualArg": "0x558d739ec030-ActualArg" + "id": "0x55dbc10fa030-ActualArgSpec", + "ActualArg": "0x55dbc10fa030-ActualArg" }, { - "id": "0x558d739ec030-ActualArg", + "id": "0x55dbc10fa030-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739d17b0-Expr" + "Expr": "0x55dbc10df7b0-Expr" }, { - "id": "0x558d739d17b0-Expr", + "id": "0x55dbc10df7b0-Expr", "variantKey": "Designator", - "Designator": "0x558d739d8b90-Designator" + "Designator": "0x55dbc10e6b90-Designator" }, { - "id": "0x558d739d8b90-Designator", + "id": "0x55dbc10e6b90-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739d8ba0-DataRef" + "DataRef": "0x55dbc10e6ba0-DataRef" }, { - "id": "0x558d739d8ba0-DataRef", + "id": "0x55dbc10e6ba0-DataRef", "variantKey": "Name", - "Name": "0x558d739d8ba0-Name" + "Name": "0x55dbc10e6ba0-Name" }, { - "id": "0x558d739d8ba0-Name", + "id": "0x55dbc10e6ba0-Name", "source": "c" }, { - "id": "0x558d739ec140-ActualArgSpec", - "ActualArg": "0x558d739ec140-ActualArg" + "id": "0x55dbc10fa140-ActualArgSpec", + "ActualArg": "0x55dbc10fa140-ActualArg" }, { - "id": "0x558d739ec140-ActualArg", + "id": "0x55dbc10fa140-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739d1190-Expr" + "Expr": "0x55dbc10df190-Expr" }, { - "id": "0x558d739d1190-Expr", + "id": "0x55dbc10df190-Expr", "variantKey": "Designator", - "Designator": "0x558d739d4c80-Designator" + "Designator": "0x55dbc10e2c80-Designator" }, { - "id": "0x558d739d4c80-Designator", + "id": "0x55dbc10e2c80-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739d4c90-DataRef" + "DataRef": "0x55dbc10e2c90-DataRef" }, { - "id": "0x558d739d4c90-DataRef", + "id": "0x55dbc10e2c90-DataRef", "variantKey": "Name", - "Name": "0x558d739d4c90-Name" + "Name": "0x55dbc10e2c90-Name" }, { - "id": "0x558d739d4c90-Name", + "id": "0x55dbc10e2c90-Name", "source": "d" }, { - "id": "0x558d739ec330-ActualArgSpec", - "ActualArg": "0x558d739ec330-ActualArg" + "id": "0x55dbc10fa330-ActualArgSpec", + "ActualArg": "0x55dbc10fa330-ActualArg" }, { - "id": "0x558d739ec330-ActualArg", + "id": "0x55dbc10fa330-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739ec240-Expr" + "Expr": "0x55dbc10fa240-Expr" }, { - "id": "0x558d739ec240-Expr", + "id": "0x55dbc10fa240-Expr", "variantKey": "Designator", - "Designator": "0x558d739da260-Designator" + "Designator": "0x55dbc10e8260-Designator" }, { - "id": "0x558d739da260-Designator", + "id": "0x55dbc10e8260-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739da270-DataRef" + "DataRef": "0x55dbc10e8270-DataRef" }, { - "id": "0x558d739da270-DataRef", + "id": "0x55dbc10e8270-DataRef", "variantKey": "Name", - "Name": "0x558d739da270-Name" + "Name": "0x55dbc10e8270-Name" }, { - "id": "0x558d739da270-Name", + "id": "0x55dbc10e8270-Name", "source": "g" }, { - "id": "0x558d739eb2c0-ExecutionPartConstruct", + "id": "0x55dbc10f92c0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739eb2c0-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10f92c0-ExecutableConstruct" }, { - "id": "0x558d739eb2c0-ExecutableConstruct", + "id": "0x55dbc10f92c0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739eb2c0-Statement" + "Statement": "0x55dbc10f92c0-Statement" }, { - "id": "0x558d739eb2c0-Statement", - "statement": "0x558d739eb2d0-ActionStmt", + "id": "0x55dbc10f92c0-Statement", + "statement": "0x55dbc10f92d0-ActionStmt", "source": "call polybench_timer_stop()" }, { - "id": "0x558d739eb2d0-ActionStmt", + "id": "0x55dbc10f92d0-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x558d739ec740-CallStmt" + "CallStmt": "0x55dbc10fa740-CallStmt" }, { - "id": "0x558d739ec740-CallStmt", - "call": "0x558d739ec740-Call" + "id": "0x55dbc10fa740-CallStmt", + "call": "0x55dbc10fa740-Call" }, { - "id": "0x558d739ec740-Call", - "ProcedureDesignator": "0x558d739ec758-ProcedureDesignator" + "id": "0x55dbc10fa740-Call", + "ProcedureDesignator": "0x55dbc10fa758-ProcedureDesignator" }, { - "id": "0x558d739ec758-ProcedureDesignator", + "id": "0x55dbc10fa758-ProcedureDesignator", "variantKey": "Name", - "Name": "0x558d739ec758-Name" + "Name": "0x55dbc10fa758-Name" }, { - "id": "0x558d739ec758-Name", + "id": "0x55dbc10fa758-Name", "source": "polybench_timer_stop" }, { - "id": "0x558d739eb6e0-ExecutionPartConstruct", + "id": "0x55dbc10f96e0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739eb6e0-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10f96e0-ExecutableConstruct" }, { - "id": "0x558d739eb6e0-ExecutableConstruct", + "id": "0x55dbc10f96e0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739eb6e0-Statement" + "Statement": "0x55dbc10f96e0-Statement" }, { - "id": "0x558d739eb6e0-Statement", - "statement": "0x558d739eb6f0-ActionStmt", + "id": "0x55dbc10f96e0-Statement", + "statement": "0x55dbc10f96f0-ActionStmt", "source": "call polybench_timer_print()" }, { - "id": "0x558d739eb6f0-ActionStmt", + "id": "0x55dbc10f96f0-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x558d739ec800-CallStmt" + "CallStmt": "0x55dbc10fa800-CallStmt" }, { - "id": "0x558d739ec800-CallStmt", - "call": "0x558d739ec800-Call" + "id": "0x55dbc10fa800-CallStmt", + "call": "0x55dbc10fa800-Call" }, { - "id": "0x558d739ec800-Call", - "ProcedureDesignator": "0x558d739ec818-ProcedureDesignator" + "id": "0x55dbc10fa800-Call", + "ProcedureDesignator": "0x55dbc10fa818-ProcedureDesignator" }, { - "id": "0x558d739ec818-ProcedureDesignator", + "id": "0x55dbc10fa818-ProcedureDesignator", "variantKey": "Name", - "Name": "0x558d739ec818-Name" + "Name": "0x55dbc10fa818-Name" }, { - "id": "0x558d739ec818-Name", + "id": "0x55dbc10fa818-Name", "source": "polybench_timer_print" }, { - "id": "0x558d739d8340-ExecutionPartConstruct", + "id": "0x55dbc10e6340-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739d8340-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10e6340-ExecutableConstruct" }, { - "id": "0x558d739d8340-ExecutableConstruct", + "id": "0x55dbc10e6340-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739d8340-Statement" + "Statement": "0x55dbc10e6340-Statement" }, { - "id": "0x558d739d8340-Statement", - "statement": "0x558d739d8350-ActionStmt", + "id": "0x55dbc10e6340-Statement", + "statement": "0x55dbc10e6350-ActionStmt", "source": "call print_array(32, 32, g)" }, { - "id": "0x558d739d8350-ActionStmt", + "id": "0x55dbc10e6350-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x558d739ece90-CallStmt" + "CallStmt": "0x55dbc10fae90-CallStmt" }, { - "id": "0x558d739ece90-CallStmt", - "call": "0x558d739ece90-Call" + "id": "0x55dbc10fae90-CallStmt", + "call": "0x55dbc10fae90-Call" }, { - "id": "0x558d739ece90-Call", - "ProcedureDesignator": "0x558d739ecea8-ProcedureDesignator", + "id": "0x55dbc10fae90-Call", + "ProcedureDesignator": "0x55dbc10faea8-ProcedureDesignator", "ActualArgSpec": [ - "0x558d739ecd90-ActualArgSpec", - "0x558d739ecb70-ActualArgSpec", - "0x558d739ecc80-ActualArgSpec" + "0x55dbc10fad90-ActualArgSpec", + "0x55dbc10fab70-ActualArgSpec", + "0x55dbc10fac80-ActualArgSpec" ] }, { - "id": "0x558d739ecea8-ProcedureDesignator", + "id": "0x55dbc10faea8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x558d739ecea8-Name" + "Name": "0x55dbc10faea8-Name" }, { - "id": "0x558d739ecea8-Name", + "id": "0x55dbc10faea8-Name", "source": "print_array" }, { - "id": "0x558d739ecd90-ActualArgSpec", - "ActualArg": "0x558d739ecd90-ActualArg" + "id": "0x55dbc10fad90-ActualArgSpec", + "ActualArg": "0x55dbc10fad90-ActualArg" }, { - "id": "0x558d739ecd90-ActualArg", + "id": "0x55dbc10fad90-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739eca80-Expr" + "Expr": "0x55dbc10faa80-Expr" }, { - "id": "0x558d739eca80-Expr", + "id": "0x55dbc10faa80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739ecaa0-LiteralConstant" + "LiteralConstant": "0x55dbc10faaa0-LiteralConstant" }, { - "id": "0x558d739ecaa0-LiteralConstant", + "id": "0x55dbc10faaa0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739ecaa0-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10faaa0-IntLiteralConstant" }, { - "id": "0x558d739ecaa0-IntLiteralConstant", + "id": "0x55dbc10faaa0-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x558d739ecb70-ActualArgSpec", - "ActualArg": "0x558d739ecb70-ActualArg" + "id": "0x55dbc10fab70-ActualArgSpec", + "ActualArg": "0x55dbc10fab70-ActualArg" }, { - "id": "0x558d739ecb70-ActualArg", + "id": "0x55dbc10fab70-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739ec9a0-Expr" + "Expr": "0x55dbc10fa9a0-Expr" }, { - "id": "0x558d739ec9a0-Expr", + "id": "0x55dbc10fa9a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739ec9c0-LiteralConstant" + "LiteralConstant": "0x55dbc10fa9c0-LiteralConstant" }, { - "id": "0x558d739ec9c0-LiteralConstant", + "id": "0x55dbc10fa9c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739ec9c0-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10fa9c0-IntLiteralConstant" }, { - "id": "0x558d739ec9c0-IntLiteralConstant", + "id": "0x55dbc10fa9c0-IntLiteralConstant", "CharBlock": "32" }, { - "id": "0x558d739ecc80-ActualArgSpec", - "ActualArg": "0x558d739ecc80-ActualArg" + "id": "0x55dbc10fac80-ActualArgSpec", + "ActualArg": "0x55dbc10fac80-ActualArg" }, { - "id": "0x558d739ecc80-ActualArg", + "id": "0x55dbc10fac80-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739ec8c0-Expr" + "Expr": "0x55dbc10fa8c0-Expr" }, { - "id": "0x558d739ec8c0-Expr", + "id": "0x55dbc10fa8c0-Expr", "variantKey": "Designator", - "Designator": "0x558d739d8110-Designator" + "Designator": "0x55dbc10e6110-Designator" }, { - "id": "0x558d739d8110-Designator", + "id": "0x55dbc10e6110-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739d8120-DataRef" + "DataRef": "0x55dbc10e6120-DataRef" }, { - "id": "0x558d739d8120-DataRef", + "id": "0x55dbc10e6120-DataRef", "variantKey": "Name", - "Name": "0x558d739d8120-Name" + "Name": "0x55dbc10e6120-Name" }, { - "id": "0x558d739d8120-Name", + "id": "0x55dbc10e6120-Name", "source": "g" }, { - "id": "0x558d739eb4e0-ExecutionPartConstruct", + "id": "0x55dbc10f94e0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739eb4e0-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10f94e0-ExecutableConstruct" }, { - "id": "0x558d739eb4e0-ExecutableConstruct", + "id": "0x55dbc10f94e0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739eb4e0-Statement" + "Statement": "0x55dbc10f94e0-Statement" }, { - "id": "0x558d739eb4e0-Statement", - "statement": "0x558d739eb4f0-ActionStmt", + "id": "0x55dbc10f94e0-Statement", + "statement": "0x55dbc10f94f0-ActionStmt", "source": "deallocate(a)" }, { - "id": "0x558d739eb4f0-ActionStmt", + "id": "0x55dbc10f94f0-ActionStmt", "variantKey": "DeallocateStmt", - "DeallocateStmt": "0x558d739dace0-DeallocateStmt" + "DeallocateStmt": "0x55dbc10e8ce0-DeallocateStmt" }, { - "id": "0x558d739dace0-DeallocateStmt", + "id": "0x55dbc10e8ce0-DeallocateStmt", "AllocateObject": [ - "0x558d739d9920-AllocateObject" + "0x55dbc10e7920-AllocateObject" ] }, { - "id": "0x558d739d9920-AllocateObject", + "id": "0x55dbc10e7920-AllocateObject", "variantKey": "Name", - "Name": "0x558d739d9930-Name" + "Name": "0x55dbc10e7930-Name" }, { - "id": "0x558d739d9930-Name", + "id": "0x55dbc10e7930-Name", "source": "a" }, { - "id": "0x558d739d7ae0-ExecutionPartConstruct", + "id": "0x55dbc10e5ae0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739d7ae0-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10e5ae0-ExecutableConstruct" }, { - "id": "0x558d739d7ae0-ExecutableConstruct", + "id": "0x55dbc10e5ae0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739d7ae0-Statement" + "Statement": "0x55dbc10e5ae0-Statement" }, { - "id": "0x558d739d7ae0-Statement", - "statement": "0x558d739d7af0-ActionStmt", + "id": "0x55dbc10e5ae0-Statement", + "statement": "0x55dbc10e5af0-ActionStmt", "source": "deallocate(b)" }, { - "id": "0x558d739d7af0-ActionStmt", + "id": "0x55dbc10e5af0-ActionStmt", "variantKey": "DeallocateStmt", - "DeallocateStmt": "0x558d739db3c0-DeallocateStmt" + "DeallocateStmt": "0x55dbc10e93c0-DeallocateStmt" }, { - "id": "0x558d739db3c0-DeallocateStmt", + "id": "0x55dbc10e93c0-DeallocateStmt", "AllocateObject": [ - "0x558d739d2430-AllocateObject" + "0x55dbc10e0430-AllocateObject" ] }, { - "id": "0x558d739d2430-AllocateObject", + "id": "0x55dbc10e0430-AllocateObject", "variantKey": "Name", - "Name": "0x558d739d2440-Name" + "Name": "0x55dbc10e0440-Name" }, { - "id": "0x558d739d2440-Name", + "id": "0x55dbc10e0440-Name", "source": "b" }, { - "id": "0x558d739d8760-ExecutionPartConstruct", + "id": "0x55dbc10e6760-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739d8760-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10e6760-ExecutableConstruct" }, { - "id": "0x558d739d8760-ExecutableConstruct", + "id": "0x55dbc10e6760-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739d8760-Statement" + "Statement": "0x55dbc10e6760-Statement" }, { - "id": "0x558d739d8760-Statement", - "statement": "0x558d739d8770-ActionStmt", + "id": "0x55dbc10e6760-Statement", + "statement": "0x55dbc10e6770-ActionStmt", "source": "deallocate(c)" }, { - "id": "0x558d739d8770-ActionStmt", + "id": "0x55dbc10e6770-ActionStmt", "variantKey": "DeallocateStmt", - "DeallocateStmt": "0x558d739db480-DeallocateStmt" + "DeallocateStmt": "0x55dbc10e9480-DeallocateStmt" }, { - "id": "0x558d739db480-DeallocateStmt", + "id": "0x55dbc10e9480-DeallocateStmt", "AllocateObject": [ - "0x558d739d9a50-AllocateObject" + "0x55dbc10e7a50-AllocateObject" ] }, { - "id": "0x558d739d9a50-AllocateObject", + "id": "0x55dbc10e7a50-AllocateObject", "variantKey": "Name", - "Name": "0x558d739d9a60-Name" + "Name": "0x55dbc10e7a60-Name" }, { - "id": "0x558d739d9a60-Name", + "id": "0x55dbc10e7a60-Name", "source": "c" }, { - "id": "0x558d739d5700-ExecutionPartConstruct", + "id": "0x55dbc10e3700-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739d5700-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10e3700-ExecutableConstruct" }, { - "id": "0x558d739d5700-ExecutableConstruct", + "id": "0x55dbc10e3700-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739d5700-Statement" + "Statement": "0x55dbc10e3700-Statement" }, { - "id": "0x558d739d5700-Statement", - "statement": "0x558d739d5710-ActionStmt", + "id": "0x55dbc10e3700-Statement", + "statement": "0x55dbc10e3710-ActionStmt", "source": "deallocate(d)" }, { - "id": "0x558d739d5710-ActionStmt", + "id": "0x55dbc10e3710-ActionStmt", "variantKey": "DeallocateStmt", - "DeallocateStmt": "0x558d739db880-DeallocateStmt" + "DeallocateStmt": "0x55dbc10e9880-DeallocateStmt" }, { - "id": "0x558d739db880-DeallocateStmt", + "id": "0x55dbc10e9880-DeallocateStmt", "AllocateObject": [ - "0x558d739e7e40-AllocateObject" + "0x55dbc10f5e40-AllocateObject" ] }, { - "id": "0x558d739e7e40-AllocateObject", + "id": "0x55dbc10f5e40-AllocateObject", "variantKey": "Name", - "Name": "0x558d739e7e50-Name" + "Name": "0x55dbc10f5e50-Name" }, { - "id": "0x558d739e7e50-Name", + "id": "0x55dbc10f5e50-Name", "source": "d" }, { - "id": "0x558d739d2290-ExecutionPartConstruct", + "id": "0x55dbc10e0290-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739d2290-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10e0290-ExecutableConstruct" }, { - "id": "0x558d739d2290-ExecutableConstruct", + "id": "0x55dbc10e0290-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739d2290-Statement" + "Statement": "0x55dbc10e0290-Statement" }, { - "id": "0x558d739d2290-Statement", - "statement": "0x558d739d22a0-ActionStmt", + "id": "0x55dbc10e0290-Statement", + "statement": "0x55dbc10e02a0-ActionStmt", "source": "deallocate(e)" }, { - "id": "0x558d739d22a0-ActionStmt", + "id": "0x55dbc10e02a0-ActionStmt", "variantKey": "DeallocateStmt", - "DeallocateStmt": "0x558d739dc0b0-DeallocateStmt" + "DeallocateStmt": "0x55dbc10ea0b0-DeallocateStmt" }, { - "id": "0x558d739dc0b0-DeallocateStmt", + "id": "0x55dbc10ea0b0-DeallocateStmt", "AllocateObject": [ - "0x558d739d8910-AllocateObject" + "0x55dbc10e6910-AllocateObject" ] }, { - "id": "0x558d739d8910-AllocateObject", + "id": "0x55dbc10e6910-AllocateObject", "variantKey": "Name", - "Name": "0x558d739d8920-Name" + "Name": "0x55dbc10e6920-Name" }, { - "id": "0x558d739d8920-Name", + "id": "0x55dbc10e6920-Name", "source": "e" }, { - "id": "0x558d739d1280-ExecutionPartConstruct", + "id": "0x55dbc10df280-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739d1280-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10df280-ExecutableConstruct" }, { - "id": "0x558d739d1280-ExecutableConstruct", + "id": "0x55dbc10df280-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739d1280-Statement" + "Statement": "0x55dbc10df280-Statement" }, { - "id": "0x558d739d1280-Statement", - "statement": "0x558d739d1290-ActionStmt", + "id": "0x55dbc10df280-Statement", + "statement": "0x55dbc10df290-ActionStmt", "source": "deallocate(f)" }, { - "id": "0x558d739d1290-ActionStmt", + "id": "0x55dbc10df290-ActionStmt", "variantKey": "DeallocateStmt", - "DeallocateStmt": "0x558d739dc110-DeallocateStmt" + "DeallocateStmt": "0x55dbc10ea110-DeallocateStmt" }, { - "id": "0x558d739dc110-DeallocateStmt", + "id": "0x55dbc10ea110-DeallocateStmt", "AllocateObject": [ - "0x558d739d89e0-AllocateObject" + "0x55dbc10e69e0-AllocateObject" ] }, { - "id": "0x558d739d89e0-AllocateObject", + "id": "0x55dbc10e69e0-AllocateObject", "variantKey": "Name", - "Name": "0x558d739d89f0-Name" + "Name": "0x55dbc10e69f0-Name" }, { - "id": "0x558d739d89f0-Name", + "id": "0x55dbc10e69f0-Name", "source": "f" }, { - "id": "0x558d739d2ba0-ExecutionPartConstruct", + "id": "0x55dbc10e0ba0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739d2ba0-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10e0ba0-ExecutableConstruct" }, { - "id": "0x558d739d2ba0-ExecutableConstruct", + "id": "0x55dbc10e0ba0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739d2ba0-Statement" + "Statement": "0x55dbc10e0ba0-Statement" }, { - "id": "0x558d739d2ba0-Statement", - "statement": "0x558d739d2bb0-ActionStmt", + "id": "0x55dbc10e0ba0-Statement", + "statement": "0x55dbc10e0bb0-ActionStmt", "source": "deallocate(g)" }, { - "id": "0x558d739d2bb0-ActionStmt", + "id": "0x55dbc10e0bb0-ActionStmt", "variantKey": "DeallocateStmt", - "DeallocateStmt": "0x558d739dc150-DeallocateStmt" + "DeallocateStmt": "0x55dbc10ea150-DeallocateStmt" }, { - "id": "0x558d739dc150-DeallocateStmt", + "id": "0x55dbc10ea150-DeallocateStmt", "AllocateObject": [ - "0x558d739eb250-AllocateObject" + "0x55dbc10f9250-AllocateObject" ] }, { - "id": "0x558d739eb250-AllocateObject", + "id": "0x55dbc10f9250-AllocateObject", "variantKey": "Name", - "Name": "0x558d739eb260-Name" + "Name": "0x55dbc10f9260-Name" }, { - "id": "0x558d739eb260-Name", + "id": "0x55dbc10f9260-Name", "source": "g" }, { - "id": "0x558d739e4070-InternalSubprogramPart", - "Statement": "0x558d739e4088-Statement", + "id": "0x55dbc10f2070-InternalSubprogramPart", + "Statement": "0x55dbc10f2088-Statement", "InternalSubprogram": [ - "0x558d739e9de0-InternalSubprogram", - "0x558d739ea120-InternalSubprogram", - "0x558d739f9240-InternalSubprogram" + "0x55dbc10f7de0-InternalSubprogram", + "0x55dbc10f8120-InternalSubprogram", + "0x55dbc1107240-InternalSubprogram" ] }, { - "id": "0x558d739e4088-Statement", - "statement": "0x558d739e4098-ContainsStmt", + "id": "0x55dbc10f2088-Statement", + "statement": "0x55dbc10f2098-ContainsStmt", "source": "contains" }, { - "id": "0x558d739e4098-ContainsStmt" + "id": "0x55dbc10f2098-ContainsStmt" }, { - "id": "0x558d739e9de0-InternalSubprogram", + "id": "0x55dbc10f7de0-InternalSubprogram", "variantKey": "SubroutineSubprogram", - "SubroutineSubprogram": "0x558d739f2bb0-SubroutineSubprogram" + "SubroutineSubprogram": "0x55dbc1100bb0-SubroutineSubprogram" }, { - "id": "0x558d739f2bb0-SubroutineSubprogram", - "Statement": "0x558d739f2cf8-Statement", - "SpecificationPart": "0x558d739f2c50-SpecificationPart", - "ExecutionPart": "0x558d739f2c38-ExecutionPart", - "Statement": "0x558d739f2bb0-Statement" + "id": "0x55dbc1100bb0-SubroutineSubprogram", + "Statement": "0x55dbc1100cf8-Statement", + "SpecificationPart": "0x55dbc1100c50-SpecificationPart", + "ExecutionPart": "0x55dbc1100c38-ExecutionPart", + "Statement": "0x55dbc1100bb0-Statement" }, { - "id": "0x558d739f2cf8-Statement", - "statement": "0x558d739f2d08-SubroutineStmt", + "id": "0x55dbc1100cf8-Statement", + "statement": "0x55dbc1100d08-SubroutineStmt", "source": "subroutine init_array(ni, nj, nk, nl, nm, a, b, c, d)" }, { - "id": "0x558d739f2d08-SubroutineStmt", - "Name": "0x558d739f2d40-Name", + "id": "0x55dbc1100d08-SubroutineStmt", + "Name": "0x55dbc1100d40-Name", "DummyArg": [ - "0x558d739daa00-DummyArg", - "0x558d739dac70-DummyArg", - "0x558d739daa40-DummyArg", - "0x558d739daaf0-DummyArg", - "0x558d739daab0-DummyArg", - "0x558d739dab30-DummyArg", - "0x558d739dab90-DummyArg", - "0x558d739dabd0-DummyArg", - "0x558d739dac30-DummyArg" + "0x55dbc10e8a00-DummyArg", + "0x55dbc10e8c70-DummyArg", + "0x55dbc10e8a40-DummyArg", + "0x55dbc10e8af0-DummyArg", + "0x55dbc10e8ab0-DummyArg", + "0x55dbc10e8b30-DummyArg", + "0x55dbc10e8b90-DummyArg", + "0x55dbc10e8bd0-DummyArg", + "0x55dbc10e8c30-DummyArg" ] }, { - "id": "0x558d739f2d40-Name", + "id": "0x55dbc1100d40-Name", "source": "init_array" }, { - "id": "0x558d739daa00-DummyArg", + "id": "0x55dbc10e8a00-DummyArg", "variantKey": "Name", - "Name": "0x558d739daa00-Name" + "Name": "0x55dbc10e8a00-Name" }, { - "id": "0x558d739daa00-Name", + "id": "0x55dbc10e8a00-Name", "source": "ni" }, { - "id": "0x558d739dac70-DummyArg", + "id": "0x55dbc10e8c70-DummyArg", "variantKey": "Name", - "Name": "0x558d739dac70-Name" + "Name": "0x55dbc10e8c70-Name" }, { - "id": "0x558d739dac70-Name", + "id": "0x55dbc10e8c70-Name", "source": "nj" }, { - "id": "0x558d739daa40-DummyArg", + "id": "0x55dbc10e8a40-DummyArg", "variantKey": "Name", - "Name": "0x558d739daa40-Name" + "Name": "0x55dbc10e8a40-Name" }, { - "id": "0x558d739daa40-Name", + "id": "0x55dbc10e8a40-Name", "source": "nk" }, { - "id": "0x558d739daaf0-DummyArg", + "id": "0x55dbc10e8af0-DummyArg", "variantKey": "Name", - "Name": "0x558d739daaf0-Name" + "Name": "0x55dbc10e8af0-Name" }, { - "id": "0x558d739daaf0-Name", + "id": "0x55dbc10e8af0-Name", "source": "nl" }, { - "id": "0x558d739daab0-DummyArg", + "id": "0x55dbc10e8ab0-DummyArg", "variantKey": "Name", - "Name": "0x558d739daab0-Name" + "Name": "0x55dbc10e8ab0-Name" }, { - "id": "0x558d739daab0-Name", + "id": "0x55dbc10e8ab0-Name", "source": "nm" }, { - "id": "0x558d739dab30-DummyArg", + "id": "0x55dbc10e8b30-DummyArg", "variantKey": "Name", - "Name": "0x558d739dab30-Name" + "Name": "0x55dbc10e8b30-Name" }, { - "id": "0x558d739dab30-Name", + "id": "0x55dbc10e8b30-Name", "source": "a" }, { - "id": "0x558d739dab90-DummyArg", + "id": "0x55dbc10e8b90-DummyArg", "variantKey": "Name", - "Name": "0x558d739dab90-Name" + "Name": "0x55dbc10e8b90-Name" }, { - "id": "0x558d739dab90-Name", + "id": "0x55dbc10e8b90-Name", "source": "b" }, { - "id": "0x558d739dabd0-DummyArg", + "id": "0x55dbc10e8bd0-DummyArg", "variantKey": "Name", - "Name": "0x558d739dabd0-Name" + "Name": "0x55dbc10e8bd0-Name" }, { - "id": "0x558d739dabd0-Name", + "id": "0x55dbc10e8bd0-Name", "source": "c" }, { - "id": "0x558d739dac30-DummyArg", + "id": "0x55dbc10e8c30-DummyArg", "variantKey": "Name", - "Name": "0x558d739dac30-Name" + "Name": "0x55dbc10e8c30-Name" }, { - "id": "0x558d739dac30-Name", + "id": "0x55dbc10e8c30-Name", "source": "d" }, { - "id": "0x558d739f2c50-SpecificationPart", - "ImplicitPart": "0x558d739f2c68-ImplicitPart", + "id": "0x55dbc1100c50-SpecificationPart", + "ImplicitPart": "0x55dbc1100c68-ImplicitPart", "DeclarationConstruct": [ - "0x558d739d2c70-DeclarationConstruct", - "0x558d739da340-DeclarationConstruct", - "0x558d739ef260-DeclarationConstruct", - "0x558d739ed4c0-DeclarationConstruct", - "0x558d739d22f0-DeclarationConstruct", - "0x558d739d8df0-DeclarationConstruct" + "0x55dbc10e0c70-DeclarationConstruct", + "0x55dbc10e8340-DeclarationConstruct", + "0x55dbc10fd260-DeclarationConstruct", + "0x55dbc10fb4c0-DeclarationConstruct", + "0x55dbc10e02f0-DeclarationConstruct", + "0x55dbc10e6df0-DeclarationConstruct" ] }, { - "id": "0x558d739f2c68-ImplicitPart" + "id": "0x55dbc1100c68-ImplicitPart" }, { - "id": "0x558d739d2c70-DeclarationConstruct", + "id": "0x55dbc10e0c70-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558d739d2c70-SpecificationConstruct" + "SpecificationConstruct": "0x55dbc10e0c70-SpecificationConstruct" }, { - "id": "0x558d739d2c70-SpecificationConstruct", + "id": "0x55dbc10e0c70-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558d739d2c70-Statement" + "Statement": "0x55dbc10e0c70-Statement" }, { - "id": "0x558d739d2c70-Statement", - "statement": "0x558d739ed770-TypeDeclarationStmt", + "id": "0x55dbc10e0c70-Statement", + "statement": "0x55dbc10fb770-TypeDeclarationStmt", "source": "double precision, dimension(nk, ni) :: a" }, { - "id": "0x558d739ed770-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558d739ed7a0-DeclarationTypeSpec", + "id": "0x55dbc10fb770-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55dbc10fb7a0-DeclarationTypeSpec", "AttrSpec": [ - "0x558d739d72b0-AttrSpec" + "0x55dbc10e52b0-AttrSpec" ], "EntityDecl": [ - "0x558d739ed910-EntityDecl" + "0x55dbc10fb910-EntityDecl" ] }, { - "id": "0x558d739ed7a0-DeclarationTypeSpec", + "id": "0x55dbc10fb7a0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558d739ed7a0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55dbc10fb7a0-IntrinsicTypeSpec" }, { - "id": "0x558d739ed7a0-IntrinsicTypeSpec", + "id": "0x55dbc10fb7a0-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x558d739ed7a0-DoublePrecision" + "DoublePrecision": "0x55dbc10fb7a0-DoublePrecision" }, { - "id": "0x558d739ed7a0-DoublePrecision" + "id": "0x55dbc10fb7a0-DoublePrecision" }, { - "id": "0x558d739d72b0-AttrSpec", + "id": "0x55dbc10e52b0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x558d739d72b0-ArraySpec" + "ArraySpec": "0x55dbc10e52b0-ArraySpec" }, { - "id": "0x558d739d72b0-ArraySpec", + "id": "0x55dbc10e52b0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x558d739ea150-ExplicitShapeSpec", - "0x558d739da8f0-ExplicitShapeSpec" + "0x55dbc10f8150-ExplicitShapeSpec", + "0x55dbc10e88f0-ExplicitShapeSpec" ] }, { - "id": "0x558d739ea150-ExplicitShapeSpec", - "upper_bound": "0x558d739ea150-SpecificationExpr" + "id": "0x55dbc10f8150-ExplicitShapeSpec", + "upper_bound": "0x55dbc10f8150-SpecificationExpr" }, { - "id": "0x558d739ea150-SpecificationExpr", - "Expr": "0x558d739ecf50-Expr" + "id": "0x55dbc10f8150-SpecificationExpr", + "Expr": "0x55dbc10faf50-Expr" }, { - "id": "0x558d739ecf50-Expr", + "id": "0x55dbc10faf50-Expr", "variantKey": "Designator", - "Designator": "0x558d739e7cf0-Designator" + "Designator": "0x55dbc10f5cf0-Designator" }, { - "id": "0x558d739e7cf0-Designator", + "id": "0x55dbc10f5cf0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739e7d00-DataRef" + "DataRef": "0x55dbc10f5d00-DataRef" }, { - "id": "0x558d739e7d00-DataRef", + "id": "0x55dbc10f5d00-DataRef", "variantKey": "Name", - "Name": "0x558d739e7d00-Name" + "Name": "0x55dbc10f5d00-Name" }, { - "id": "0x558d739e7d00-Name", + "id": "0x55dbc10f5d00-Name", "source": "nk" }, { - "id": "0x558d739da8f0-ExplicitShapeSpec", - "upper_bound": "0x558d739da8f0-SpecificationExpr" + "id": "0x55dbc10e88f0-ExplicitShapeSpec", + "upper_bound": "0x55dbc10e88f0-SpecificationExpr" }, { - "id": "0x558d739da8f0-SpecificationExpr", - "Expr": "0x558d739ef450-Expr" + "id": "0x55dbc10e88f0-SpecificationExpr", + "Expr": "0x55dbc10fd450-Expr" }, { - "id": "0x558d739ef450-Expr", + "id": "0x55dbc10fd450-Expr", "variantKey": "Designator", - "Designator": "0x558d739d6160-Designator" + "Designator": "0x55dbc10e4160-Designator" }, { - "id": "0x558d739d6160-Designator", + "id": "0x55dbc10e4160-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739d6170-DataRef" + "DataRef": "0x55dbc10e4170-DataRef" }, { - "id": "0x558d739d6170-DataRef", + "id": "0x55dbc10e4170-DataRef", "variantKey": "Name", - "Name": "0x558d739d6170-Name" + "Name": "0x55dbc10e4170-Name" }, { - "id": "0x558d739d6170-Name", + "id": "0x55dbc10e4170-Name", "source": "ni" }, { - "id": "0x558d739ed910-EntityDecl", - "Name": "0x558d739ed9c8-Name" + "id": "0x55dbc10fb910-EntityDecl", + "Name": "0x55dbc10fb9c8-Name" }, { - "id": "0x558d739ed9c8-Name", + "id": "0x55dbc10fb9c8-Name", "source": "a" }, { - "id": "0x558d739da340-DeclarationConstruct", + "id": "0x55dbc10e8340-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558d739da340-SpecificationConstruct" + "SpecificationConstruct": "0x55dbc10e8340-SpecificationConstruct" }, { - "id": "0x558d739da340-SpecificationConstruct", + "id": "0x55dbc10e8340-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558d739da340-Statement" + "Statement": "0x55dbc10e8340-Statement" }, { - "id": "0x558d739da340-Statement", - "statement": "0x558d739e3ea0-TypeDeclarationStmt", + "id": "0x55dbc10e8340-Statement", + "statement": "0x55dbc10f1ea0-TypeDeclarationStmt", "source": "double precision, dimension(nj, nk) :: b" }, { - "id": "0x558d739e3ea0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558d739e3ed0-DeclarationTypeSpec", + "id": "0x55dbc10f1ea0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55dbc10f1ed0-DeclarationTypeSpec", "AttrSpec": [ - "0x558d739d6ae0-AttrSpec" + "0x55dbc10e4ae0-AttrSpec" ], "EntityDecl": [ - "0x558d739efea0-EntityDecl" + "0x55dbc10fdea0-EntityDecl" ] }, { - "id": "0x558d739e3ed0-DeclarationTypeSpec", + "id": "0x55dbc10f1ed0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558d739e3ed0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55dbc10f1ed0-IntrinsicTypeSpec" }, { - "id": "0x558d739e3ed0-IntrinsicTypeSpec", + "id": "0x55dbc10f1ed0-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x558d739e3ed0-DoublePrecision" + "DoublePrecision": "0x55dbc10f1ed0-DoublePrecision" }, { - "id": "0x558d739e3ed0-DoublePrecision" + "id": "0x55dbc10f1ed0-DoublePrecision" }, { - "id": "0x558d739d6ae0-AttrSpec", + "id": "0x55dbc10e4ae0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x558d739d6ae0-ArraySpec" + "ArraySpec": "0x55dbc10e4ae0-ArraySpec" }, { - "id": "0x558d739d6ae0-ArraySpec", + "id": "0x55dbc10e4ae0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x558d739e96b0-ExplicitShapeSpec", - "0x558d739e9520-ExplicitShapeSpec" + "0x55dbc10f76b0-ExplicitShapeSpec", + "0x55dbc10f7520-ExplicitShapeSpec" ] }, { - "id": "0x558d739e96b0-ExplicitShapeSpec", - "upper_bound": "0x558d739e96b0-SpecificationExpr" + "id": "0x55dbc10f76b0-ExplicitShapeSpec", + "upper_bound": "0x55dbc10f76b0-SpecificationExpr" }, { - "id": "0x558d739e96b0-SpecificationExpr", - "Expr": "0x558d739efcd0-Expr" + "id": "0x55dbc10f76b0-SpecificationExpr", + "Expr": "0x55dbc10fdcd0-Expr" }, { - "id": "0x558d739efcd0-Expr", + "id": "0x55dbc10fdcd0-Expr", "variantKey": "Designator", - "Designator": "0x558d739da2d0-Designator" + "Designator": "0x55dbc10e82d0-Designator" }, { - "id": "0x558d739da2d0-Designator", + "id": "0x55dbc10e82d0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739da2e0-DataRef" + "DataRef": "0x55dbc10e82e0-DataRef" }, { - "id": "0x558d739da2e0-DataRef", + "id": "0x55dbc10e82e0-DataRef", "variantKey": "Name", - "Name": "0x558d739da2e0-Name" + "Name": "0x55dbc10e82e0-Name" }, { - "id": "0x558d739da2e0-Name", + "id": "0x55dbc10e82e0-Name", "source": "nj" }, { - "id": "0x558d739e9520-ExplicitShapeSpec", - "upper_bound": "0x558d739e9520-SpecificationExpr" + "id": "0x55dbc10f7520-ExplicitShapeSpec", + "upper_bound": "0x55dbc10f7520-SpecificationExpr" }, { - "id": "0x558d739e9520-SpecificationExpr", - "Expr": "0x558d739efdb0-Expr" + "id": "0x55dbc10f7520-SpecificationExpr", + "Expr": "0x55dbc10fddb0-Expr" }, { - "id": "0x558d739efdb0-Expr", + "id": "0x55dbc10fddb0-Expr", "variantKey": "Designator", - "Designator": "0x558d739d1890-Designator" + "Designator": "0x55dbc10df890-Designator" }, { - "id": "0x558d739d1890-Designator", + "id": "0x55dbc10df890-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739d18a0-DataRef" + "DataRef": "0x55dbc10df8a0-DataRef" }, { - "id": "0x558d739d18a0-DataRef", + "id": "0x55dbc10df8a0-DataRef", "variantKey": "Name", - "Name": "0x558d739d18a0-Name" + "Name": "0x55dbc10df8a0-Name" }, { - "id": "0x558d739d18a0-Name", + "id": "0x55dbc10df8a0-Name", "source": "nk" }, { - "id": "0x558d739efea0-EntityDecl", - "Name": "0x558d739eff58-Name" + "id": "0x55dbc10fdea0-EntityDecl", + "Name": "0x55dbc10fdf58-Name" }, { - "id": "0x558d739eff58-Name", + "id": "0x55dbc10fdf58-Name", "source": "b" }, { - "id": "0x558d739ef260-DeclarationConstruct", + "id": "0x55dbc10fd260-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558d739ef260-SpecificationConstruct" + "SpecificationConstruct": "0x55dbc10fd260-SpecificationConstruct" }, { - "id": "0x558d739ef260-SpecificationConstruct", + "id": "0x55dbc10fd260-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558d739ef260-Statement" + "Statement": "0x55dbc10fd260-Statement" }, { - "id": "0x558d739ef260-Statement", - "statement": "0x558d739d1110-TypeDeclarationStmt", + "id": "0x55dbc10fd260-Statement", + "statement": "0x55dbc10df110-TypeDeclarationStmt", "source": "double precision, dimension(nm, nj) :: c" }, { - "id": "0x558d739d1110-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558d739d1140-DeclarationTypeSpec", + "id": "0x55dbc10df110-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55dbc10df140-DeclarationTypeSpec", "AttrSpec": [ - "0x558d739d73e0-AttrSpec" + "0x55dbc10e53e0-AttrSpec" ], "EntityDecl": [ - "0x558d739ef170-EntityDecl" + "0x55dbc10fd170-EntityDecl" ] }, { - "id": "0x558d739d1140-DeclarationTypeSpec", + "id": "0x55dbc10df140-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558d739d1140-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55dbc10df140-IntrinsicTypeSpec" }, { - "id": "0x558d739d1140-IntrinsicTypeSpec", + "id": "0x55dbc10df140-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x558d739d1140-DoublePrecision" + "DoublePrecision": "0x55dbc10df140-DoublePrecision" }, { - "id": "0x558d739d1140-DoublePrecision" + "id": "0x55dbc10df140-DoublePrecision" }, { - "id": "0x558d739d73e0-AttrSpec", + "id": "0x55dbc10e53e0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x558d739d73e0-ArraySpec" + "ArraySpec": "0x55dbc10e53e0-ArraySpec" }, { - "id": "0x558d739d73e0-ArraySpec", + "id": "0x55dbc10e53e0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x558d739e99f0-ExplicitShapeSpec", - "0x558d739e9900-ExplicitShapeSpec" + "0x55dbc10f79f0-ExplicitShapeSpec", + "0x55dbc10f7900-ExplicitShapeSpec" ] }, { - "id": "0x558d739e99f0-ExplicitShapeSpec", - "upper_bound": "0x558d739e99f0-SpecificationExpr" + "id": "0x55dbc10f79f0-ExplicitShapeSpec", + "upper_bound": "0x55dbc10f79f0-SpecificationExpr" }, { - "id": "0x558d739e99f0-SpecificationExpr", - "Expr": "0x558d739eeee0-Expr" + "id": "0x55dbc10f79f0-SpecificationExpr", + "Expr": "0x55dbc10fcee0-Expr" }, { - "id": "0x558d739eeee0-Expr", + "id": "0x55dbc10fcee0-Expr", "variantKey": "Designator", - "Designator": "0x558d739d7cf0-Designator" + "Designator": "0x55dbc10e5cf0-Designator" }, { - "id": "0x558d739d7cf0-Designator", + "id": "0x55dbc10e5cf0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739d7d00-DataRef" + "DataRef": "0x55dbc10e5d00-DataRef" }, { - "id": "0x558d739d7d00-DataRef", + "id": "0x55dbc10e5d00-DataRef", "variantKey": "Name", - "Name": "0x558d739d7d00-Name" + "Name": "0x55dbc10e5d00-Name" }, { - "id": "0x558d739d7d00-Name", + "id": "0x55dbc10e5d00-Name", "source": "nm" }, { - "id": "0x558d739e9900-ExplicitShapeSpec", - "upper_bound": "0x558d739e9900-SpecificationExpr" + "id": "0x55dbc10f7900-ExplicitShapeSpec", + "upper_bound": "0x55dbc10f7900-SpecificationExpr" }, { - "id": "0x558d739e9900-SpecificationExpr", - "Expr": "0x558d739ef080-Expr" + "id": "0x55dbc10f7900-SpecificationExpr", + "Expr": "0x55dbc10fd080-Expr" }, { - "id": "0x558d739ef080-Expr", + "id": "0x55dbc10fd080-Expr", "variantKey": "Designator", - "Designator": "0x558d739ef020-Designator" + "Designator": "0x55dbc10fd020-Designator" }, { - "id": "0x558d739ef020-Designator", + "id": "0x55dbc10fd020-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739ef030-DataRef" + "DataRef": "0x55dbc10fd030-DataRef" }, { - "id": "0x558d739ef030-DataRef", + "id": "0x55dbc10fd030-DataRef", "variantKey": "Name", - "Name": "0x558d739ef030-Name" + "Name": "0x55dbc10fd030-Name" }, { - "id": "0x558d739ef030-Name", + "id": "0x55dbc10fd030-Name", "source": "nj" }, { - "id": "0x558d739ef170-EntityDecl", - "Name": "0x558d739ef228-Name" + "id": "0x55dbc10fd170-EntityDecl", + "Name": "0x55dbc10fd228-Name" }, { - "id": "0x558d739ef228-Name", + "id": "0x55dbc10fd228-Name", "source": "c" }, { - "id": "0x558d739ed4c0-DeclarationConstruct", + "id": "0x55dbc10fb4c0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558d739ed4c0-SpecificationConstruct" + "SpecificationConstruct": "0x55dbc10fb4c0-SpecificationConstruct" }, { - "id": "0x558d739ed4c0-SpecificationConstruct", + "id": "0x55dbc10fb4c0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558d739ed4c0-Statement" + "Statement": "0x55dbc10fb4c0-Statement" }, { - "id": "0x558d739ed4c0-Statement", - "statement": "0x558d739ef570-TypeDeclarationStmt", + "id": "0x55dbc10fb4c0-Statement", + "statement": "0x55dbc10fd570-TypeDeclarationStmt", "source": "double precision, dimension(nl, nm) :: d" }, { - "id": "0x558d739ef570-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558d739ef5a0-DeclarationTypeSpec", + "id": "0x55dbc10fd570-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55dbc10fd5a0-DeclarationTypeSpec", "AttrSpec": [ - "0x558d739d7510-AttrSpec" + "0x55dbc10e5510-AttrSpec" ], "EntityDecl": [ - "0x558d739ed3d0-EntityDecl" + "0x55dbc10fb3d0-EntityDecl" ] }, { - "id": "0x558d739ef5a0-DeclarationTypeSpec", + "id": "0x55dbc10fd5a0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558d739ef5a0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55dbc10fd5a0-IntrinsicTypeSpec" }, { - "id": "0x558d739ef5a0-IntrinsicTypeSpec", + "id": "0x55dbc10fd5a0-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x558d739ef5a0-DoublePrecision" + "DoublePrecision": "0x55dbc10fd5a0-DoublePrecision" }, { - "id": "0x558d739ef5a0-DoublePrecision" + "id": "0x55dbc10fd5a0-DoublePrecision" }, { - "id": "0x558d739d7510-AttrSpec", + "id": "0x55dbc10e5510-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x558d739d7510-ArraySpec" + "ArraySpec": "0x55dbc10e5510-ArraySpec" }, { - "id": "0x558d739d7510-ArraySpec", + "id": "0x55dbc10e5510-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x558d739e9bd0-ExplicitShapeSpec", - "0x558d739e9a60-ExplicitShapeSpec" + "0x55dbc10f7bd0-ExplicitShapeSpec", + "0x55dbc10f7a60-ExplicitShapeSpec" ] }, { - "id": "0x558d739e9bd0-ExplicitShapeSpec", - "upper_bound": "0x558d739e9bd0-SpecificationExpr" + "id": "0x55dbc10f7bd0-ExplicitShapeSpec", + "upper_bound": "0x55dbc10f7bd0-SpecificationExpr" }, { - "id": "0x558d739e9bd0-SpecificationExpr", - "Expr": "0x558d739ed140-Expr" + "id": "0x55dbc10f7bd0-SpecificationExpr", + "Expr": "0x55dbc10fb140-Expr" }, { - "id": "0x558d739ed140-Expr", + "id": "0x55dbc10fb140-Expr", "variantKey": "Designator", - "Designator": "0x558d739d1490-Designator" + "Designator": "0x55dbc10df490-Designator" }, { - "id": "0x558d739d1490-Designator", + "id": "0x55dbc10df490-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739d14a0-DataRef" + "DataRef": "0x55dbc10df4a0-DataRef" }, { - "id": "0x558d739d14a0-DataRef", + "id": "0x55dbc10df4a0-DataRef", "variantKey": "Name", - "Name": "0x558d739d14a0-Name" + "Name": "0x55dbc10df4a0-Name" }, { - "id": "0x558d739d14a0-Name", + "id": "0x55dbc10df4a0-Name", "source": "nl" }, { - "id": "0x558d739e9a60-ExplicitShapeSpec", - "upper_bound": "0x558d739e9a60-SpecificationExpr" + "id": "0x55dbc10f7a60-ExplicitShapeSpec", + "upper_bound": "0x55dbc10f7a60-SpecificationExpr" }, { - "id": "0x558d739e9a60-SpecificationExpr", - "Expr": "0x558d739ed2e0-Expr" + "id": "0x55dbc10f7a60-SpecificationExpr", + "Expr": "0x55dbc10fb2e0-Expr" }, { - "id": "0x558d739ed2e0-Expr", + "id": "0x55dbc10fb2e0-Expr", "variantKey": "Designator", - "Designator": "0x558d739ed280-Designator" + "Designator": "0x55dbc10fb280-Designator" }, { - "id": "0x558d739ed280-Designator", + "id": "0x55dbc10fb280-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739ed290-DataRef" + "DataRef": "0x55dbc10fb290-DataRef" }, { - "id": "0x558d739ed290-DataRef", + "id": "0x55dbc10fb290-DataRef", "variantKey": "Name", - "Name": "0x558d739ed290-Name" + "Name": "0x55dbc10fb290-Name" }, { - "id": "0x558d739ed290-Name", + "id": "0x55dbc10fb290-Name", "source": "nm" }, { - "id": "0x558d739ed3d0-EntityDecl", - "Name": "0x558d739ed488-Name" + "id": "0x55dbc10fb3d0-EntityDecl", + "Name": "0x55dbc10fb488-Name" }, { - "id": "0x558d739ed488-Name", + "id": "0x55dbc10fb488-Name", "source": "d" }, { - "id": "0x558d739d22f0-DeclarationConstruct", + "id": "0x55dbc10e02f0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558d739d22f0-SpecificationConstruct" + "SpecificationConstruct": "0x55dbc10e02f0-SpecificationConstruct" }, { - "id": "0x558d739d22f0-SpecificationConstruct", + "id": "0x55dbc10e02f0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558d739d22f0-Statement" + "Statement": "0x55dbc10e02f0-Statement" }, { - "id": "0x558d739d22f0-Statement", - "statement": "0x558d739ee5e0-TypeDeclarationStmt", + "id": "0x55dbc10e02f0-Statement", + "statement": "0x55dbc10fc5e0-TypeDeclarationStmt", "source": "integer :: ni, nj, nk, nl, nm" }, { - "id": "0x558d739ee5e0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558d739ee610-DeclarationTypeSpec", + "id": "0x55dbc10fc5e0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55dbc10fc610-DeclarationTypeSpec", "EntityDecl": [ - "0x558d739f0750-EntityDecl", - "0x558d739ed520-EntityDecl", - "0x558d739ed610-EntityDecl", - "0x558d739f0570-EntityDecl", - "0x558d739f0660-EntityDecl" + "0x55dbc10fe750-EntityDecl", + "0x55dbc10fb520-EntityDecl", + "0x55dbc10fb610-EntityDecl", + "0x55dbc10fe570-EntityDecl", + "0x55dbc10fe660-EntityDecl" ] }, { - "id": "0x558d739ee610-DeclarationTypeSpec", + "id": "0x55dbc10fc610-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558d739ee610-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55dbc10fc610-IntrinsicTypeSpec" }, { - "id": "0x558d739ee610-IntrinsicTypeSpec", + "id": "0x55dbc10fc610-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x558d739ee610-IntegerTypeSpec" + "IntegerTypeSpec": "0x55dbc10fc610-IntegerTypeSpec" }, { - "id": "0x558d739ee610-IntegerTypeSpec" + "id": "0x55dbc10fc610-IntegerTypeSpec" }, { - "id": "0x558d739f0750-EntityDecl", - "Name": "0x558d739f0808-Name" + "id": "0x55dbc10fe750-EntityDecl", + "Name": "0x55dbc10fe808-Name" }, { - "id": "0x558d739f0808-Name", + "id": "0x55dbc10fe808-Name", "source": "ni" }, { - "id": "0x558d739ed520-EntityDecl", - "Name": "0x558d739ed5d8-Name" + "id": "0x55dbc10fb520-EntityDecl", + "Name": "0x55dbc10fb5d8-Name" }, { - "id": "0x558d739ed5d8-Name", + "id": "0x55dbc10fb5d8-Name", "source": "nj" }, { - "id": "0x558d739ed610-EntityDecl", - "Name": "0x558d739ed6c8-Name" + "id": "0x55dbc10fb610-EntityDecl", + "Name": "0x55dbc10fb6c8-Name" }, { - "id": "0x558d739ed6c8-Name", + "id": "0x55dbc10fb6c8-Name", "source": "nk" }, { - "id": "0x558d739f0570-EntityDecl", - "Name": "0x558d739f0628-Name" + "id": "0x55dbc10fe570-EntityDecl", + "Name": "0x55dbc10fe628-Name" }, { - "id": "0x558d739f0628-Name", + "id": "0x55dbc10fe628-Name", "source": "nl" }, { - "id": "0x558d739f0660-EntityDecl", - "Name": "0x558d739f0718-Name" + "id": "0x55dbc10fe660-EntityDecl", + "Name": "0x55dbc10fe718-Name" }, { - "id": "0x558d739f0718-Name", + "id": "0x55dbc10fe718-Name", "source": "nm" }, { - "id": "0x558d739d8df0-DeclarationConstruct", + "id": "0x55dbc10e6df0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558d739d8df0-SpecificationConstruct" + "SpecificationConstruct": "0x55dbc10e6df0-SpecificationConstruct" }, { - "id": "0x558d739d8df0-SpecificationConstruct", + "id": "0x55dbc10e6df0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558d739d8df0-Statement" + "Statement": "0x55dbc10e6df0-Statement" }, { - "id": "0x558d739d8df0-Statement", - "statement": "0x558d739ef3d0-TypeDeclarationStmt", + "id": "0x55dbc10e6df0-Statement", + "statement": "0x55dbc10fd3d0-TypeDeclarationStmt", "source": "integer :: i, j" }, { - "id": "0x558d739ef3d0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558d739ef400-DeclarationTypeSpec", + "id": "0x55dbc10fd3d0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55dbc10fd400-DeclarationTypeSpec", "EntityDecl": [ - "0x558d739f0930-EntityDecl", - "0x558d739f0840-EntityDecl" + "0x55dbc10fe930-EntityDecl", + "0x55dbc10fe840-EntityDecl" ] }, { - "id": "0x558d739ef400-DeclarationTypeSpec", + "id": "0x55dbc10fd400-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558d739ef400-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55dbc10fd400-IntrinsicTypeSpec" }, { - "id": "0x558d739ef400-IntrinsicTypeSpec", + "id": "0x55dbc10fd400-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x558d739ef400-IntegerTypeSpec" + "IntegerTypeSpec": "0x55dbc10fd400-IntegerTypeSpec" }, { - "id": "0x558d739ef400-IntegerTypeSpec" + "id": "0x55dbc10fd400-IntegerTypeSpec" }, { - "id": "0x558d739f0930-EntityDecl", - "Name": "0x558d739f09e8-Name" + "id": "0x55dbc10fe930-EntityDecl", + "Name": "0x55dbc10fe9e8-Name" }, { - "id": "0x558d739f09e8-Name", + "id": "0x55dbc10fe9e8-Name", "source": "i" }, { - "id": "0x558d739f0840-EntityDecl", - "Name": "0x558d739f08f8-Name" + "id": "0x55dbc10fe840-EntityDecl", + "Name": "0x55dbc10fe8f8-Name" }, { - "id": "0x558d739f08f8-Name", + "id": "0x55dbc10fe8f8-Name", "source": "j" }, { - "id": "0x558d739f2c38-ExecutionPart", + "id": "0x55dbc1100c38-ExecutionPart", "ExecutionPartConstruct": [ - "0x558d739edb30-ExecutionPartConstruct", - "0x558d739ee070-ExecutionPartConstruct", - "0x558d739ea860-ExecutionPartConstruct", - "0x558d739e93f0-ExecutionPartConstruct" + "0x55dbc10fbb30-ExecutionPartConstruct", + "0x55dbc10fc070-ExecutionPartConstruct", + "0x55dbc10f8860-ExecutionPartConstruct", + "0x55dbc10f73f0-ExecutionPartConstruct" ] }, { - "id": "0x558d739f2c38-ExecutionPartConstruct" + "id": "0x55dbc1100c38-ExecutionPartConstruct" }, { - "id": "0x558d739edb30-ExecutionPartConstruct", + "id": "0x55dbc10fbb30-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739edb30-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10fbb30-ExecutableConstruct" }, { - "id": "0x558d739edb30-ExecutableConstruct", + "id": "0x55dbc10fbb30-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x558d739d7710-DoConstruct" + "DoConstruct": "0x55dbc10e5710-DoConstruct" }, { - "id": "0x558d739d7710-DoConstruct", - "Statement": "0x558d739d7768-Statement", + "id": "0x55dbc10e5710-DoConstruct", + "Statement": "0x55dbc10e5768-Statement", "ExecutionPartConstruct": [ - "0x558d739e9630-ExecutionPartConstruct" + "0x55dbc10f7630-ExecutionPartConstruct" ], - "Statement": "0x558d739d7710-Statement" + "Statement": "0x55dbc10e5710-Statement" }, { - "id": "0x558d739d7768-Statement", - "statement": "0x558d739d7778-NonLabelDoStmt", + "id": "0x55dbc10e5768-Statement", + "statement": "0x55dbc10e5778-NonLabelDoStmt", "source": "do i = 1, ni" }, { - "id": "0x558d739d7778-NonLabelDoStmt", - "LoopControl": "0x558d739d7778-LoopControl" + "id": "0x55dbc10e5778-NonLabelDoStmt", + "LoopControl": "0x55dbc10e5778-LoopControl" }, { - "id": "0x558d739d7778-LoopControl", + "id": "0x55dbc10e5778-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x558d739d7778-LoopBounds" + "LoopBounds": "0x55dbc10e5778-LoopBounds" }, { - "id": "0x558d739d7778-LoopBounds", - "var": "0x558d739d7778-Name", - "lower": "0x558d739d8e40-Expr", - "upper": "0x558d739d1600-Expr" + "id": "0x55dbc10e5778-LoopBounds", + "var": "0x55dbc10e5778-Name", + "lower": "0x55dbc10e6e40-Expr", + "upper": "0x55dbc10df600-Expr" }, { - "id": "0x558d739d7778-Name", + "id": "0x55dbc10e5778-Name", "source": "i" }, { - "id": "0x558d739d8e40-Expr", + "id": "0x55dbc10e6e40-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d8e60-LiteralConstant" + "LiteralConstant": "0x55dbc10e6e60-LiteralConstant" }, { - "id": "0x558d739d8e60-LiteralConstant", + "id": "0x55dbc10e6e60-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d8e60-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e6e60-IntLiteralConstant" }, { - "id": "0x558d739d8e60-IntLiteralConstant", + "id": "0x55dbc10e6e60-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x558d739d1600-Expr", + "id": "0x55dbc10df600-Expr", "variantKey": "Designator", - "Designator": "0x558d739ea4c0-Designator" + "Designator": "0x55dbc10f84c0-Designator" }, { - "id": "0x558d739ea4c0-Designator", + "id": "0x55dbc10f84c0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739ea4d0-DataRef" + "DataRef": "0x55dbc10f84d0-DataRef" }, { - "id": "0x558d739ea4d0-DataRef", + "id": "0x55dbc10f84d0-DataRef", "variantKey": "Name", - "Name": "0x558d739ea4d0-Name" + "Name": "0x55dbc10f84d0-Name" }, { - "id": "0x558d739ea4d0-Name", + "id": "0x55dbc10f84d0-Name", "source": "ni" }, { - "id": "0x558d739d7750-ExecutionPartConstruct" + "id": "0x55dbc10e5750-ExecutionPartConstruct" }, { - "id": "0x558d739e9630-ExecutionPartConstruct", + "id": "0x55dbc10f7630-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739e9630-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10f7630-ExecutableConstruct" }, { - "id": "0x558d739e9630-ExecutableConstruct", + "id": "0x55dbc10f7630-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x558d7397b780-DoConstruct" + "DoConstruct": "0x55dbc1089780-DoConstruct" }, { - "id": "0x558d7397b780-DoConstruct", - "Statement": "0x558d7397b7d8-Statement", + "id": "0x55dbc1089780-DoConstruct", + "Statement": "0x55dbc10897d8-Statement", "ExecutionPartConstruct": [ - "0x558d739e98a0-ExecutionPartConstruct" + "0x55dbc10f78a0-ExecutionPartConstruct" ], - "Statement": "0x558d7397b780-Statement" + "Statement": "0x55dbc1089780-Statement" }, { - "id": "0x558d7397b7d8-Statement", - "statement": "0x558d7397b7e8-NonLabelDoStmt", + "id": "0x55dbc10897d8-Statement", + "statement": "0x55dbc10897e8-NonLabelDoStmt", "source": "do j = 1, nk" }, { - "id": "0x558d7397b7e8-NonLabelDoStmt", - "LoopControl": "0x558d7397b7e8-LoopControl" + "id": "0x55dbc10897e8-NonLabelDoStmt", + "LoopControl": "0x55dbc10897e8-LoopControl" }, { - "id": "0x558d7397b7e8-LoopControl", + "id": "0x55dbc10897e8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x558d7397b7e8-LoopBounds" + "LoopBounds": "0x55dbc10897e8-LoopBounds" }, { - "id": "0x558d7397b7e8-LoopBounds", - "var": "0x558d7397b7e8-Name", - "lower": "0x558d739e7d50-Expr", - "upper": "0x558d739d7550-Expr" + "id": "0x55dbc10897e8-LoopBounds", + "var": "0x55dbc10897e8-Name", + "lower": "0x55dbc10f5d50-Expr", + "upper": "0x55dbc10e5550-Expr" }, { - "id": "0x558d7397b7e8-Name", + "id": "0x55dbc10897e8-Name", "source": "j" }, { - "id": "0x558d739e7d50-Expr", + "id": "0x55dbc10f5d50-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739e7d70-LiteralConstant" + "LiteralConstant": "0x55dbc10f5d70-LiteralConstant" }, { - "id": "0x558d739e7d70-LiteralConstant", + "id": "0x55dbc10f5d70-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739e7d70-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10f5d70-IntLiteralConstant" }, { - "id": "0x558d739e7d70-IntLiteralConstant", + "id": "0x55dbc10f5d70-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x558d739d7550-Expr", + "id": "0x55dbc10e5550-Expr", "variantKey": "Designator", - "Designator": "0x558d739eefc0-Designator" + "Designator": "0x55dbc10fcfc0-Designator" }, { - "id": "0x558d739eefc0-Designator", + "id": "0x55dbc10fcfc0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739eefd0-DataRef" + "DataRef": "0x55dbc10fcfd0-DataRef" }, { - "id": "0x558d739eefd0-DataRef", + "id": "0x55dbc10fcfd0-DataRef", "variantKey": "Name", - "Name": "0x558d739eefd0-Name" + "Name": "0x55dbc10fcfd0-Name" }, { - "id": "0x558d739eefd0-Name", + "id": "0x55dbc10fcfd0-Name", "source": "nk" }, { - "id": "0x558d7397b7c0-ExecutionPartConstruct" + "id": "0x55dbc10897c0-ExecutionPartConstruct" }, { - "id": "0x558d739e98a0-ExecutionPartConstruct", + "id": "0x55dbc10f78a0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739e98a0-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10f78a0-ExecutableConstruct" }, { - "id": "0x558d739e98a0-ExecutableConstruct", + "id": "0x55dbc10f78a0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739e98a0-Statement" + "Statement": "0x55dbc10f78a0-Statement" }, { - "id": "0x558d739e98a0-Statement", - "statement": "0x558d739e98b0-ActionStmt", + "id": "0x55dbc10f78a0-Statement", + "statement": "0x55dbc10f78b0-ActionStmt", "source": "a(j, i) = dble(i - 1) * dble(j - 1) / ni" }, { - "id": "0x558d739e98b0-ActionStmt", + "id": "0x55dbc10f78b0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x558d739ed7f0-AssignmentStmt" + "AssignmentStmt": "0x55dbc10fb7f0-AssignmentStmt" }, { - "id": "0x558d739ed7f0-AssignmentStmt", - "Variable": "0x558d739ed8d0-Variable", - "Expr": "0x558d739ed800-Expr" + "id": "0x55dbc10fb7f0-AssignmentStmt", + "Variable": "0x55dbc10fb8d0-Variable", + "Expr": "0x55dbc10fb800-Expr" }, { - "id": "0x558d739ed8d0-Variable", + "id": "0x55dbc10fb8d0-Variable", "variantKey": "Designator", - "Designator": "0x558d73a14030-Designator" + "Designator": "0x55dbc1122030-Designator" }, { - "id": "0x558d73a14030-Designator", + "id": "0x55dbc1122030-Designator", "variantKey": "DataRef", - "DataRef": "0x558d73a14040-DataRef" + "DataRef": "0x55dbc1122040-DataRef" }, { - "id": "0x558d73a14040-DataRef", + "id": "0x55dbc1122040-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x558d73a06800-ArrayElement" + "ArrayElement": "0x55dbc1114800-ArrayElement" }, { - "id": "0x558d73a06800-ArrayElement", - "base": "0x558d73a06800-DataRef", + "id": "0x55dbc1114800-ArrayElement", + "base": "0x55dbc1114800-DataRef", "subscripts": [ - "0x558d739e3640-SectionSubscript", - "0x558d73a1ba90-SectionSubscript" + "0x55dbc10f1640-SectionSubscript", + "0x55dbc1129a90-SectionSubscript" ] }, { - "id": "0x558d73a06800-DataRef", + "id": "0x55dbc1114800-DataRef", "variantKey": "Name", - "Name": "0x558d73a06800-Name" + "Name": "0x55dbc1114800-Name" }, { - "id": "0x558d73a06800-Name", + "id": "0x55dbc1114800-Name", "source": "a" }, { - "id": "0x558d739e3640-SectionSubscript", + "id": "0x55dbc10f1640-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d73a28d20-Expr" + "Expr": "0x55dbc1136d20-Expr" }, { - "id": "0x558d73a28d20-Expr", + "id": "0x55dbc1136d20-Expr", "variantKey": "Designator", - "Designator": "0x558d739e9980-Designator" + "Designator": "0x55dbc10f7980-Designator" }, { - "id": "0x558d739e9980-Designator", + "id": "0x55dbc10f7980-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739e9990-DataRef" + "DataRef": "0x55dbc10f7990-DataRef" }, { - "id": "0x558d739e9990-DataRef", + "id": "0x55dbc10f7990-DataRef", "variantKey": "Name", - "Name": "0x558d739e9990-Name" + "Name": "0x55dbc10f7990-Name" }, { - "id": "0x558d739e9990-Name", + "id": "0x55dbc10f7990-Name", "source": "j" }, { - "id": "0x558d73a1ba90-SectionSubscript", + "id": "0x55dbc1129a90-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d73a047c0-Expr" + "Expr": "0x55dbc11127c0-Expr" }, { - "id": "0x558d73a047c0-Expr", + "id": "0x55dbc11127c0-Expr", "variantKey": "Designator", - "Designator": "0x558d739dcc50-Designator" + "Designator": "0x55dbc10eac50-Designator" }, { - "id": "0x558d739dcc50-Designator", + "id": "0x55dbc10eac50-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739dcc60-DataRef" + "DataRef": "0x55dbc10eac60-DataRef" }, { - "id": "0x558d739dcc60-DataRef", + "id": "0x55dbc10eac60-DataRef", "variantKey": "Name", - "Name": "0x558d739dcc60-Name" + "Name": "0x55dbc10eac60-Name" }, { - "id": "0x558d739dcc60-Name", + "id": "0x55dbc10eac60-Name", "source": "i" }, { - "id": "0x558d739ed800-Expr", + "id": "0x55dbc10fb800-Expr", "variantKey": "Divide", - "Divide": "0x558d739ed820-Divide" + "Divide": "0x55dbc10fb820-Divide" }, { - "id": "0x558d739ed820-Divide", - "left": "0x558d739e97b0-Expr", - "right": "0x558d739e96d0-Expr", + "id": "0x55dbc10fb820-Divide", + "left": "0x55dbc10f77b0-Expr", + "right": "0x55dbc10f76d0-Expr", "op": "DIVIDE" }, { - "id": "0x558d739e97b0-Expr", + "id": "0x55dbc10f77b0-Expr", "variantKey": "Multiply", - "Multiply": "0x558d739e97d0-Multiply" + "Multiply": "0x55dbc10f77d0-Multiply" }, { - "id": "0x558d739e97d0-Multiply", - "left": "0x558d739e9bf0-Expr", - "right": "0x558d739eb380-Expr", + "id": "0x55dbc10f77d0-Multiply", + "left": "0x55dbc10f7bf0-Expr", + "right": "0x55dbc10f9380-Expr", "op": "MULTIPLY" }, { - "id": "0x558d739e9bf0-Expr", + "id": "0x55dbc10f7bf0-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x558d739d1b60-FunctionReference" + "FunctionReference": "0x55dbc10dfb60-FunctionReference" }, { - "id": "0x558d739d1b60-FunctionReference", - "Call": "0x558d739d1b60-Call" + "id": "0x55dbc10dfb60-FunctionReference", + "Call": "0x55dbc10dfb60-Call" }, { - "id": "0x558d739d1b60-Call", - "ProcedureDesignator": "0x558d739d1b78-ProcedureDesignator", + "id": "0x55dbc10dfb60-Call", + "ProcedureDesignator": "0x55dbc10dfb78-ProcedureDesignator", "ActualArgSpec": [ - "0x558d739ee1b0-ActualArgSpec" + "0x55dbc10fc1b0-ActualArgSpec" ] }, { - "id": "0x558d739d1b78-ProcedureDesignator", + "id": "0x55dbc10dfb78-ProcedureDesignator", "variantKey": "Name", - "Name": "0x558d739d1b78-Name" + "Name": "0x55dbc10dfb78-Name" }, { - "id": "0x558d739d1b78-Name", + "id": "0x55dbc10dfb78-Name", "source": "dble" }, { - "id": "0x558d739ee1b0-ActualArgSpec", - "ActualArg": "0x558d739ee1b0-ActualArg" + "id": "0x55dbc10fc1b0-ActualArgSpec", + "ActualArg": "0x55dbc10fc1b0-ActualArg" }, { - "id": "0x558d739ee1b0-ActualArg", + "id": "0x55dbc10fc1b0-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739d2910-Expr" + "Expr": "0x55dbc10e0910-Expr" }, { - "id": "0x558d739d2910-Expr", + "id": "0x55dbc10e0910-Expr", "variantKey": "Subtract", - "Subtract": "0x558d739d2930-Subtract" + "Subtract": "0x55dbc10e0930-Subtract" }, { - "id": "0x558d739d2930-Subtract", - "left": "0x558d739d87b0-Expr", - "right": "0x558d739e41c0-Expr", + "id": "0x55dbc10e0930-Subtract", + "left": "0x55dbc10e67b0-Expr", + "right": "0x55dbc10f21c0-Expr", "op": "SUBTRACT" }, { - "id": "0x558d739d87b0-Expr", + "id": "0x55dbc10e67b0-Expr", "variantKey": "Designator", - "Designator": "0x558d739ea0b0-Designator" + "Designator": "0x55dbc10f80b0-Designator" }, { - "id": "0x558d739ea0b0-Designator", + "id": "0x55dbc10f80b0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739ea0c0-DataRef" + "DataRef": "0x55dbc10f80c0-DataRef" }, { - "id": "0x558d739ea0c0-DataRef", + "id": "0x55dbc10f80c0-DataRef", "variantKey": "Name", - "Name": "0x558d739ea0c0-Name" + "Name": "0x55dbc10f80c0-Name" }, { - "id": "0x558d739ea0c0-Name", + "id": "0x55dbc10f80c0-Name", "source": "i" }, { - "id": "0x558d739e41c0-Expr", + "id": "0x55dbc10f21c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739e41e0-LiteralConstant" + "LiteralConstant": "0x55dbc10f21e0-LiteralConstant" }, { - "id": "0x558d739e41e0-LiteralConstant", + "id": "0x55dbc10f21e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739e41e0-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10f21e0-IntLiteralConstant" }, { - "id": "0x558d739e41e0-IntLiteralConstant", + "id": "0x55dbc10f21e0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x558d739eb380-Expr", + "id": "0x55dbc10f9380-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x558d739d1420-FunctionReference" + "FunctionReference": "0x55dbc10df420-FunctionReference" }, { - "id": "0x558d739d1420-FunctionReference", - "Call": "0x558d739d1420-Call" + "id": "0x55dbc10df420-FunctionReference", + "Call": "0x55dbc10df420-Call" }, { - "id": "0x558d739d1420-Call", - "ProcedureDesignator": "0x558d739d1438-ProcedureDesignator", + "id": "0x55dbc10df420-Call", + "ProcedureDesignator": "0x55dbc10df438-ProcedureDesignator", "ActualArgSpec": [ - "0x558d739ee4e0-ActualArgSpec" + "0x55dbc10fc4e0-ActualArgSpec" ] }, { - "id": "0x558d739d1438-ProcedureDesignator", + "id": "0x55dbc10df438-ProcedureDesignator", "variantKey": "Name", - "Name": "0x558d739d1438-Name" + "Name": "0x55dbc10df438-Name" }, { - "id": "0x558d739d1438-Name", + "id": "0x55dbc10df438-Name", "source": "dble" }, { - "id": "0x558d739ee4e0-ActualArgSpec", - "ActualArg": "0x558d739ee4e0-ActualArg" + "id": "0x55dbc10fc4e0-ActualArgSpec", + "ActualArg": "0x55dbc10fc4e0-ActualArg" }, { - "id": "0x558d739ee4e0-ActualArg", + "id": "0x55dbc10fc4e0-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739d81e0-Expr" + "Expr": "0x55dbc10e61e0-Expr" }, { - "id": "0x558d739d81e0-Expr", + "id": "0x55dbc10e61e0-Expr", "variantKey": "Subtract", - "Subtract": "0x558d739d8200-Subtract" + "Subtract": "0x55dbc10e6200-Subtract" }, { - "id": "0x558d739d8200-Subtract", - "left": "0x558d739d8470-Expr", - "right": "0x558d739d8390-Expr", + "id": "0x55dbc10e6200-Subtract", + "left": "0x55dbc10e6470-Expr", + "right": "0x55dbc10e6390-Expr", "op": "SUBTRACT" }, { - "id": "0x558d739d8470-Expr", + "id": "0x55dbc10e6470-Expr", "variantKey": "Designator", - "Designator": "0x558d739edbf0-Designator" + "Designator": "0x55dbc10fbbf0-Designator" }, { - "id": "0x558d739edbf0-Designator", + "id": "0x55dbc10fbbf0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739edc00-DataRef" + "DataRef": "0x55dbc10fbc00-DataRef" }, { - "id": "0x558d739edc00-DataRef", + "id": "0x55dbc10fbc00-DataRef", "variantKey": "Name", - "Name": "0x558d739edc00-Name" + "Name": "0x55dbc10fbc00-Name" }, { - "id": "0x558d739edc00-Name", + "id": "0x55dbc10fbc00-Name", "source": "j" }, { - "id": "0x558d739d8390-Expr", + "id": "0x55dbc10e6390-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739d83b0-LiteralConstant" + "LiteralConstant": "0x55dbc10e63b0-LiteralConstant" }, { - "id": "0x558d739d83b0-LiteralConstant", + "id": "0x55dbc10e63b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739d83b0-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e63b0-IntLiteralConstant" }, { - "id": "0x558d739d83b0-IntLiteralConstant", + "id": "0x55dbc10e63b0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x558d739e96d0-Expr", + "id": "0x55dbc10f76d0-Expr", "variantKey": "Designator", - "Designator": "0x558d739e9ee0-Designator" + "Designator": "0x55dbc10f7ee0-Designator" }, { - "id": "0x558d739e9ee0-Designator", + "id": "0x55dbc10f7ee0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739e9ef0-DataRef" + "DataRef": "0x55dbc10f7ef0-DataRef" }, { - "id": "0x558d739e9ef0-DataRef", + "id": "0x55dbc10f7ef0-DataRef", "variantKey": "Name", - "Name": "0x558d739e9ef0-Name" + "Name": "0x55dbc10f7ef0-Name" }, { - "id": "0x558d739e9ef0-Name", + "id": "0x55dbc10f7ef0-Name", "source": "ni" }, { - "id": "0x558d7397b780-Statement", - "statement": "0x558d7397b790-EndDoStmt", + "id": "0x55dbc1089780-Statement", + "statement": "0x55dbc1089790-EndDoStmt", "source": "end do" }, { - "id": "0x558d7397b790-EndDoStmt" + "id": "0x55dbc1089790-EndDoStmt" }, { - "id": "0x558d739d7710-Statement", - "statement": "0x558d739d7720-EndDoStmt", + "id": "0x55dbc10e5710-Statement", + "statement": "0x55dbc10e5720-EndDoStmt", "source": "end do" }, { - "id": "0x558d739d7720-EndDoStmt" + "id": "0x55dbc10e5720-EndDoStmt" }, { - "id": "0x558d739ee070-ExecutionPartConstruct", + "id": "0x55dbc10fc070-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739ee070-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10fc070-ExecutableConstruct" }, { - "id": "0x558d739ee070-ExecutableConstruct", + "id": "0x55dbc10fc070-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x558d739db9e0-DoConstruct" + "DoConstruct": "0x55dbc10e99e0-DoConstruct" }, { - "id": "0x558d739db9e0-DoConstruct", - "Statement": "0x558d739dba38-Statement", + "id": "0x55dbc10e99e0-DoConstruct", + "Statement": "0x55dbc10e9a38-Statement", "ExecutionPartConstruct": [ - "0x558d739ee010-ExecutionPartConstruct" + "0x55dbc10fc010-ExecutionPartConstruct" ], - "Statement": "0x558d739db9e0-Statement" + "Statement": "0x55dbc10e99e0-Statement" }, { - "id": "0x558d739dba38-Statement", - "statement": "0x558d739dba48-NonLabelDoStmt", + "id": "0x55dbc10e9a38-Statement", + "statement": "0x55dbc10e9a48-NonLabelDoStmt", "source": "do i = 1, nk" }, { - "id": "0x558d739dba48-NonLabelDoStmt", - "LoopControl": "0x558d739dba48-LoopControl" + "id": "0x55dbc10e9a48-NonLabelDoStmt", + "LoopControl": "0x55dbc10e9a48-LoopControl" }, { - "id": "0x558d739dba48-LoopControl", + "id": "0x55dbc10e9a48-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x558d739dba48-LoopBounds" + "LoopBounds": "0x55dbc10e9a48-LoopBounds" }, { - "id": "0x558d739dba48-LoopBounds", - "var": "0x558d739dba48-Name", - "lower": "0x558d739e7fa0-Expr", - "upper": "0x558d739e8080-Expr" + "id": "0x55dbc10e9a48-LoopBounds", + "var": "0x55dbc10e9a48-Name", + "lower": "0x55dbc10f5fa0-Expr", + "upper": "0x55dbc10f6080-Expr" }, { - "id": "0x558d739dba48-Name", + "id": "0x55dbc10e9a48-Name", "source": "i" }, { - "id": "0x558d739e7fa0-Expr", + "id": "0x55dbc10f5fa0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739e7fc0-LiteralConstant" + "LiteralConstant": "0x55dbc10f5fc0-LiteralConstant" }, { - "id": "0x558d739e7fc0-LiteralConstant", + "id": "0x55dbc10f5fc0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739e7fc0-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10f5fc0-IntLiteralConstant" }, { - "id": "0x558d739e7fc0-IntLiteralConstant", + "id": "0x55dbc10f5fc0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x558d739e8080-Expr", + "id": "0x55dbc10f6080-Expr", "variantKey": "Designator", - "Designator": "0x558d739e9cd0-Designator" + "Designator": "0x55dbc10f7cd0-Designator" }, { - "id": "0x558d739e9cd0-Designator", + "id": "0x55dbc10f7cd0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739e9ce0-DataRef" + "DataRef": "0x55dbc10f7ce0-DataRef" }, { - "id": "0x558d739e9ce0-DataRef", + "id": "0x55dbc10f7ce0-DataRef", "variantKey": "Name", - "Name": "0x558d739e9ce0-Name" + "Name": "0x55dbc10f7ce0-Name" }, { - "id": "0x558d739e9ce0-Name", + "id": "0x55dbc10f7ce0-Name", "source": "nk" }, { - "id": "0x558d739dba20-ExecutionPartConstruct" + "id": "0x55dbc10e9a20-ExecutionPartConstruct" }, { - "id": "0x558d739ee010-ExecutionPartConstruct", + "id": "0x55dbc10fc010-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739ee010-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10fc010-ExecutableConstruct" }, { - "id": "0x558d739ee010-ExecutableConstruct", + "id": "0x55dbc10fc010-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x558d739db8c0-DoConstruct" + "DoConstruct": "0x55dbc10e98c0-DoConstruct" }, { - "id": "0x558d739db8c0-DoConstruct", - "Statement": "0x558d739db918-Statement", + "id": "0x55dbc10e98c0-DoConstruct", + "Statement": "0x55dbc10e9918-Statement", "ExecutionPartConstruct": [ - "0x558d739e4c50-ExecutionPartConstruct" + "0x55dbc10f2c50-ExecutionPartConstruct" ], - "Statement": "0x558d739db8c0-Statement" + "Statement": "0x55dbc10e98c0-Statement" }, { - "id": "0x558d739db918-Statement", - "statement": "0x558d739db928-NonLabelDoStmt", + "id": "0x55dbc10e9918-Statement", + "statement": "0x55dbc10e9928-NonLabelDoStmt", "source": "do j = 1, nj" }, { - "id": "0x558d739db928-NonLabelDoStmt", - "LoopControl": "0x558d739db928-LoopControl" + "id": "0x55dbc10e9928-NonLabelDoStmt", + "LoopControl": "0x55dbc10e9928-LoopControl" }, { - "id": "0x558d739db928-LoopControl", + "id": "0x55dbc10e9928-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x558d739db928-LoopBounds" + "LoopBounds": "0x55dbc10e9928-LoopBounds" }, { - "id": "0x558d739db928-LoopBounds", - "var": "0x558d739db928-Name", - "lower": "0x558d739e8160-Expr", - "upper": "0x558d739f00a0-Expr" + "id": "0x55dbc10e9928-LoopBounds", + "var": "0x55dbc10e9928-Name", + "lower": "0x55dbc10f6160-Expr", + "upper": "0x55dbc10fe0a0-Expr" }, { - "id": "0x558d739db928-Name", + "id": "0x55dbc10e9928-Name", "source": "j" }, { - "id": "0x558d739e8160-Expr", + "id": "0x55dbc10f6160-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739e8180-LiteralConstant" + "LiteralConstant": "0x55dbc10f6180-LiteralConstant" }, { - "id": "0x558d739e8180-LiteralConstant", + "id": "0x55dbc10f6180-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739e8180-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10f6180-IntLiteralConstant" }, { - "id": "0x558d739e8180-IntLiteralConstant", + "id": "0x55dbc10f6180-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x558d739f00a0-Expr", + "id": "0x55dbc10fe0a0-Expr", "variantKey": "Designator", - "Designator": "0x558d739e9920-Designator" + "Designator": "0x55dbc10f7920-Designator" }, { - "id": "0x558d739e9920-Designator", + "id": "0x55dbc10f7920-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739e9930-DataRef" + "DataRef": "0x55dbc10f7930-DataRef" }, { - "id": "0x558d739e9930-DataRef", + "id": "0x55dbc10f7930-DataRef", "variantKey": "Name", - "Name": "0x558d739e9930-Name" + "Name": "0x55dbc10f7930-Name" }, { - "id": "0x558d739e9930-Name", + "id": "0x55dbc10f7930-Name", "source": "nj" }, { - "id": "0x558d739db900-ExecutionPartConstruct" + "id": "0x55dbc10e9900-ExecutionPartConstruct" }, { - "id": "0x558d739e4c50-ExecutionPartConstruct", + "id": "0x55dbc10f2c50-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739e4c50-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10f2c50-ExecutableConstruct" }, { - "id": "0x558d739e4c50-ExecutableConstruct", + "id": "0x55dbc10f2c50-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739e4c50-Statement" + "Statement": "0x55dbc10f2c50-Statement" }, { - "id": "0x558d739e4c50-Statement", - "statement": "0x558d739e4c60-ActionStmt", + "id": "0x55dbc10f2c50-Statement", + "statement": "0x55dbc10f2c60-ActionStmt", "source": "b(j, i) =(dble(i - 1) * dble(j))/ nj" }, { - "id": "0x558d739e4c60-ActionStmt", + "id": "0x55dbc10f2c60-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x558d739e4ac0-AssignmentStmt" + "AssignmentStmt": "0x55dbc10f2ac0-AssignmentStmt" }, { - "id": "0x558d739e4ac0-AssignmentStmt", - "Variable": "0x558d739e4ba0-Variable", - "Expr": "0x558d739e4ad0-Expr" + "id": "0x55dbc10f2ac0-AssignmentStmt", + "Variable": "0x55dbc10f2ba0-Variable", + "Expr": "0x55dbc10f2ad0-Expr" }, { - "id": "0x558d739e4ba0-Variable", + "id": "0x55dbc10f2ba0-Variable", "variantKey": "Designator", - "Designator": "0x558d73a022a0-Designator" + "Designator": "0x55dbc11102a0-Designator" }, { - "id": "0x558d73a022a0-Designator", + "id": "0x55dbc11102a0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d73a022b0-DataRef" + "DataRef": "0x55dbc11102b0-DataRef" }, { - "id": "0x558d73a022b0-DataRef", + "id": "0x55dbc11102b0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x558d73a05d90-ArrayElement" + "ArrayElement": "0x55dbc1113d90-ArrayElement" }, { - "id": "0x558d73a05d90-ArrayElement", - "base": "0x558d73a05d90-DataRef", + "id": "0x55dbc1113d90-ArrayElement", + "base": "0x55dbc1113d90-DataRef", "subscripts": [ - "0x558d73aac2d0-SectionSubscript", - "0x558d73aac320-SectionSubscript" + "0x55dbc11ba2d0-SectionSubscript", + "0x55dbc11ba320-SectionSubscript" ] }, { - "id": "0x558d73a05d90-DataRef", + "id": "0x55dbc1113d90-DataRef", "variantKey": "Name", - "Name": "0x558d73a05d90-Name" + "Name": "0x55dbc1113d90-Name" }, { - "id": "0x558d73a05d90-Name", + "id": "0x55dbc1113d90-Name", "source": "b" }, { - "id": "0x558d73aac2d0-SectionSubscript", + "id": "0x55dbc11ba2d0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739d2340-Expr" + "Expr": "0x55dbc10e0340-Expr" }, { - "id": "0x558d739d2340-Expr", + "id": "0x55dbc10e0340-Expr", "variantKey": "Designator", - "Designator": "0x558d739e3780-Designator" + "Designator": "0x55dbc10f1780-Designator" }, { - "id": "0x558d739e3780-Designator", + "id": "0x55dbc10f1780-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739e3790-DataRef" + "DataRef": "0x55dbc10f1790-DataRef" }, { - "id": "0x558d739e3790-DataRef", + "id": "0x55dbc10f1790-DataRef", "variantKey": "Name", - "Name": "0x558d739e3790-Name" + "Name": "0x55dbc10f1790-Name" }, { - "id": "0x558d739e3790-Name", + "id": "0x55dbc10f1790-Name", "source": "j" }, { - "id": "0x558d73aac320-SectionSubscript", + "id": "0x55dbc11ba320-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739d2d30-Expr" + "Expr": "0x55dbc10e0d30-Expr" }, { - "id": "0x558d739d2d30-Expr", + "id": "0x55dbc10e0d30-Expr", "variantKey": "Designator", - "Designator": "0x558d739cd090-Designator" + "Designator": "0x55dbc10db090-Designator" }, { - "id": "0x558d739cd090-Designator", + "id": "0x55dbc10db090-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739cd0a0-DataRef" + "DataRef": "0x55dbc10db0a0-DataRef" }, { - "id": "0x558d739cd0a0-DataRef", + "id": "0x55dbc10db0a0-DataRef", "variantKey": "Name", - "Name": "0x558d739cd0a0-Name" + "Name": "0x55dbc10db0a0-Name" }, { - "id": "0x558d739cd0a0-Name", + "id": "0x55dbc10db0a0-Name", "source": "i" }, { - "id": "0x558d739e4ad0-Expr", + "id": "0x55dbc10f2ad0-Expr", "variantKey": "Divide", - "Divide": "0x558d739e4af0-Divide" + "Divide": "0x55dbc10f2af0-Divide" }, { - "id": "0x558d739e4af0-Divide", - "left": "0x558d739e4970-Expr", - "right": "0x558d739e4890-Expr", + "id": "0x55dbc10f2af0-Divide", + "left": "0x55dbc10f2970-Expr", + "right": "0x55dbc10f2890-Expr", "op": "DIVIDE" }, { - "id": "0x558d739e4970-Expr", + "id": "0x55dbc10f2970-Expr", "variantKey": "Parentheses", - "Parentheses": "0x558d739e4990-Parentheses" + "Parentheses": "0x55dbc10f2990-Parentheses" }, { - "id": "0x558d739e4990-Parentheses", - "Expr": "0x558d739eea70-Expr", + "id": "0x55dbc10f2990-Parentheses", + "Expr": "0x55dbc10fca70-Expr", "op": "PARENTHESES" }, { - "id": "0x558d739eea70-Expr", + "id": "0x55dbc10fca70-Expr", "variantKey": "Multiply", - "Multiply": "0x558d739eea90-Multiply" + "Multiply": "0x55dbc10fca90-Multiply" }, { - "id": "0x558d739eea90-Multiply", - "left": "0x558d739ee990-Expr", - "right": "0x558d739ee8b0-Expr", + "id": "0x55dbc10fca90-Multiply", + "left": "0x55dbc10fc990-Expr", + "right": "0x55dbc10fc8b0-Expr", "op": "MULTIPLY" }, { - "id": "0x558d739ee990-Expr", + "id": "0x55dbc10fc990-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x558d739e9540-FunctionReference" + "FunctionReference": "0x55dbc10f7540-FunctionReference" }, { - "id": "0x558d739e9540-FunctionReference", - "Call": "0x558d739e9540-Call" + "id": "0x55dbc10f7540-FunctionReference", + "Call": "0x55dbc10f7540-Call" }, { - "id": "0x558d739e9540-Call", - "ProcedureDesignator": "0x558d739e9558-ProcedureDesignator", + "id": "0x55dbc10f7540-Call", + "ProcedureDesignator": "0x55dbc10f7558-ProcedureDesignator", "ActualArgSpec": [ - "0x558d739edea0-ActualArgSpec" + "0x55dbc10fbea0-ActualArgSpec" ] }, { - "id": "0x558d739e9558-ProcedureDesignator", + "id": "0x55dbc10f7558-ProcedureDesignator", "variantKey": "Name", - "Name": "0x558d739e9558-Name" + "Name": "0x55dbc10f7558-Name" }, { - "id": "0x558d739e9558-Name", + "id": "0x55dbc10f7558-Name", "source": "dble" }, { - "id": "0x558d739edea0-ActualArgSpec", - "ActualArg": "0x558d739edea0-ActualArg" + "id": "0x55dbc10fbea0-ActualArgSpec", + "ActualArg": "0x55dbc10fbea0-ActualArg" }, { - "id": "0x558d739edea0-ActualArg", + "id": "0x55dbc10fbea0-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739db740-Expr" + "Expr": "0x55dbc10e9740-Expr" }, { - "id": "0x558d739db740-Expr", + "id": "0x55dbc10e9740-Expr", "variantKey": "Subtract", - "Subtract": "0x558d739db760-Subtract" + "Subtract": "0x55dbc10e9760-Subtract" }, { - "id": "0x558d739db760-Subtract", - "left": "0x558d739eddb0-Expr", - "right": "0x558d739edcd0-Expr", + "id": "0x55dbc10e9760-Subtract", + "left": "0x55dbc10fbdb0-Expr", + "right": "0x55dbc10fbcd0-Expr", "op": "SUBTRACT" }, { - "id": "0x558d739eddb0-Expr", + "id": "0x55dbc10fbdb0-Expr", "variantKey": "Designator", - "Designator": "0x558d739eed20-Designator" + "Designator": "0x55dbc10fcd20-Designator" }, { - "id": "0x558d739eed20-Designator", + "id": "0x55dbc10fcd20-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739eed30-DataRef" + "DataRef": "0x55dbc10fcd30-DataRef" }, { - "id": "0x558d739eed30-DataRef", + "id": "0x55dbc10fcd30-DataRef", "variantKey": "Name", - "Name": "0x558d739eed30-Name" + "Name": "0x55dbc10fcd30-Name" }, { - "id": "0x558d739eed30-Name", + "id": "0x55dbc10fcd30-Name", "source": "i" }, { - "id": "0x558d739edcd0-Expr", + "id": "0x55dbc10fbcd0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739edcf0-LiteralConstant" + "LiteralConstant": "0x55dbc10fbcf0-LiteralConstant" }, { - "id": "0x558d739edcf0-LiteralConstant", + "id": "0x55dbc10fbcf0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739edcf0-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10fbcf0-IntLiteralConstant" }, { - "id": "0x558d739edcf0-IntLiteralConstant", + "id": "0x55dbc10fbcf0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x558d739ee8b0-Expr", + "id": "0x55dbc10fc8b0-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x558d739d7db0-FunctionReference" + "FunctionReference": "0x55dbc10e5db0-FunctionReference" }, { - "id": "0x558d739d7db0-FunctionReference", - "Call": "0x558d739d7db0-Call" + "id": "0x55dbc10e5db0-FunctionReference", + "Call": "0x55dbc10e5db0-Call" }, { - "id": "0x558d739d7db0-Call", - "ProcedureDesignator": "0x558d739d7dc8-ProcedureDesignator", + "id": "0x55dbc10e5db0-Call", + "ProcedureDesignator": "0x55dbc10e5dc8-ProcedureDesignator", "ActualArgSpec": [ - "0x558d739ee7b0-ActualArgSpec" + "0x55dbc10fc7b0-ActualArgSpec" ] }, { - "id": "0x558d739d7dc8-ProcedureDesignator", + "id": "0x55dbc10e5dc8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x558d739d7dc8-Name" + "Name": "0x55dbc10e5dc8-Name" }, { - "id": "0x558d739d7dc8-Name", + "id": "0x55dbc10e5dc8-Name", "source": "dble" }, { - "id": "0x558d739ee7b0-ActualArgSpec", - "ActualArg": "0x558d739ee7b0-ActualArg" + "id": "0x55dbc10fc7b0-ActualArgSpec", + "ActualArg": "0x55dbc10fc7b0-ActualArg" }, { - "id": "0x558d739ee7b0-ActualArg", + "id": "0x55dbc10fc7b0-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739ee660-Expr" + "Expr": "0x55dbc10fc660-Expr" }, { - "id": "0x558d739ee660-Expr", + "id": "0x55dbc10fc660-Expr", "variantKey": "Designator", - "Designator": "0x558d739d7830-Designator" + "Designator": "0x55dbc10e5830-Designator" }, { - "id": "0x558d739d7830-Designator", + "id": "0x55dbc10e5830-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739d7840-DataRef" + "DataRef": "0x55dbc10e5840-DataRef" }, { - "id": "0x558d739d7840-DataRef", + "id": "0x55dbc10e5840-DataRef", "variantKey": "Name", - "Name": "0x558d739d7840-Name" + "Name": "0x55dbc10e5840-Name" }, { - "id": "0x558d739d7840-Name", + "id": "0x55dbc10e5840-Name", "source": "j" }, { - "id": "0x558d739e4890-Expr", + "id": "0x55dbc10f2890-Expr", "variantKey": "Designator", - "Designator": "0x558d739e47c0-Designator" + "Designator": "0x55dbc10f27c0-Designator" }, { - "id": "0x558d739e47c0-Designator", + "id": "0x55dbc10f27c0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739e47d0-DataRef" + "DataRef": "0x55dbc10f27d0-DataRef" }, { - "id": "0x558d739e47d0-DataRef", + "id": "0x55dbc10f27d0-DataRef", "variantKey": "Name", - "Name": "0x558d739e47d0-Name" + "Name": "0x55dbc10f27d0-Name" }, { - "id": "0x558d739e47d0-Name", + "id": "0x55dbc10f27d0-Name", "source": "nj" }, { - "id": "0x558d739db8c0-Statement", - "statement": "0x558d739db8d0-EndDoStmt", + "id": "0x55dbc10e98c0-Statement", + "statement": "0x55dbc10e98d0-EndDoStmt", "source": "end do" }, { - "id": "0x558d739db8d0-EndDoStmt" + "id": "0x55dbc10e98d0-EndDoStmt" }, { - "id": "0x558d739db9e0-Statement", - "statement": "0x558d739db9f0-EndDoStmt", + "id": "0x55dbc10e99e0-Statement", + "statement": "0x55dbc10e99f0-EndDoStmt", "source": "end do" }, { - "id": "0x558d739db9f0-EndDoStmt" + "id": "0x55dbc10e99f0-EndDoStmt" }, { - "id": "0x558d739ea860-ExecutionPartConstruct", + "id": "0x55dbc10f8860-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739ea860-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10f8860-ExecutableConstruct" }, { - "id": "0x558d739ea860-ExecutableConstruct", + "id": "0x55dbc10f8860-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x558d739dca60-DoConstruct" + "DoConstruct": "0x55dbc10eaa60-DoConstruct" }, { - "id": "0x558d739dca60-DoConstruct", - "Statement": "0x558d739dcab8-Statement", + "id": "0x55dbc10eaa60-DoConstruct", + "Statement": "0x55dbc10eaab8-Statement", "ExecutionPartConstruct": [ - "0x558d739ea7a0-ExecutionPartConstruct" + "0x55dbc10f87a0-ExecutionPartConstruct" ], - "Statement": "0x558d739dca60-Statement" + "Statement": "0x55dbc10eaa60-Statement" }, { - "id": "0x558d739dcab8-Statement", - "statement": "0x558d739dcac8-NonLabelDoStmt", + "id": "0x55dbc10eaab8-Statement", + "statement": "0x55dbc10eaac8-NonLabelDoStmt", "source": "do i = 1, nj" }, { - "id": "0x558d739dcac8-NonLabelDoStmt", - "LoopControl": "0x558d739dcac8-LoopControl" + "id": "0x55dbc10eaac8-NonLabelDoStmt", + "LoopControl": "0x55dbc10eaac8-LoopControl" }, { - "id": "0x558d739dcac8-LoopControl", + "id": "0x55dbc10eaac8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x558d739dcac8-LoopBounds" + "LoopBounds": "0x55dbc10eaac8-LoopBounds" }, { - "id": "0x558d739dcac8-LoopBounds", - "var": "0x558d739dcac8-Name", - "lower": "0x558d739dbb00-Expr", - "upper": "0x558d739dbbe0-Expr" + "id": "0x55dbc10eaac8-LoopBounds", + "var": "0x55dbc10eaac8-Name", + "lower": "0x55dbc10e9b00-Expr", + "upper": "0x55dbc10e9be0-Expr" }, { - "id": "0x558d739dcac8-Name", + "id": "0x55dbc10eaac8-Name", "source": "i" }, { - "id": "0x558d739dbb00-Expr", + "id": "0x55dbc10e9b00-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739dbb20-LiteralConstant" + "LiteralConstant": "0x55dbc10e9b20-LiteralConstant" }, { - "id": "0x558d739dbb20-LiteralConstant", + "id": "0x55dbc10e9b20-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739dbb20-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e9b20-IntLiteralConstant" }, { - "id": "0x558d739dbb20-IntLiteralConstant", + "id": "0x55dbc10e9b20-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x558d739dbbe0-Expr", + "id": "0x55dbc10e9be0-Expr", "variantKey": "Designator", - "Designator": "0x558d739eeb50-Designator" + "Designator": "0x55dbc10fcb50-Designator" }, { - "id": "0x558d739eeb50-Designator", + "id": "0x55dbc10fcb50-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739eeb60-DataRef" + "DataRef": "0x55dbc10fcb60-DataRef" }, { - "id": "0x558d739eeb60-DataRef", + "id": "0x55dbc10fcb60-DataRef", "variantKey": "Name", - "Name": "0x558d739eeb60-Name" + "Name": "0x55dbc10fcb60-Name" }, { - "id": "0x558d739eeb60-Name", + "id": "0x55dbc10fcb60-Name", "source": "nj" }, { - "id": "0x558d739dcaa0-ExecutionPartConstruct" + "id": "0x55dbc10eaaa0-ExecutionPartConstruct" }, { - "id": "0x558d739ea7a0-ExecutionPartConstruct", + "id": "0x55dbc10f87a0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739ea7a0-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10f87a0-ExecutableConstruct" }, { - "id": "0x558d739ea7a0-ExecutableConstruct", + "id": "0x55dbc10f87a0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x558d739dc940-DoConstruct" + "DoConstruct": "0x55dbc10ea940-DoConstruct" }, { - "id": "0x558d739dc940-DoConstruct", - "Statement": "0x558d739dc998-Statement", + "id": "0x55dbc10ea940-DoConstruct", + "Statement": "0x55dbc10ea998-Statement", "ExecutionPartConstruct": [ - "0x558d739dc8f0-ExecutionPartConstruct" + "0x55dbc10ea8f0-ExecutionPartConstruct" ], - "Statement": "0x558d739dc940-Statement" + "Statement": "0x55dbc10ea940-Statement" }, { - "id": "0x558d739dc998-Statement", - "statement": "0x558d739dc9a8-NonLabelDoStmt", + "id": "0x55dbc10ea998-Statement", + "statement": "0x55dbc10ea9a8-NonLabelDoStmt", "source": "do j = 1, nm" }, { - "id": "0x558d739dc9a8-NonLabelDoStmt", - "LoopControl": "0x558d739dc9a8-LoopControl" + "id": "0x55dbc10ea9a8-NonLabelDoStmt", + "LoopControl": "0x55dbc10ea9a8-LoopControl" }, { - "id": "0x558d739dc9a8-LoopControl", + "id": "0x55dbc10ea9a8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x558d739dc9a8-LoopBounds" + "LoopBounds": "0x55dbc10ea9a8-LoopBounds" }, { - "id": "0x558d739dc9a8-LoopBounds", - "var": "0x558d739dc9a8-Name", - "lower": "0x558d739dbcc0-Expr", - "upper": "0x558d739dbda0-Expr" + "id": "0x55dbc10ea9a8-LoopBounds", + "var": "0x55dbc10ea9a8-Name", + "lower": "0x55dbc10e9cc0-Expr", + "upper": "0x55dbc10e9da0-Expr" }, { - "id": "0x558d739dc9a8-Name", + "id": "0x55dbc10ea9a8-Name", "source": "j" }, { - "id": "0x558d739dbcc0-Expr", + "id": "0x55dbc10e9cc0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739dbce0-LiteralConstant" + "LiteralConstant": "0x55dbc10e9ce0-LiteralConstant" }, { - "id": "0x558d739dbce0-LiteralConstant", + "id": "0x55dbc10e9ce0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739dbce0-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e9ce0-IntLiteralConstant" }, { - "id": "0x558d739dbce0-IntLiteralConstant", + "id": "0x55dbc10e9ce0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x558d739dbda0-Expr", + "id": "0x55dbc10e9da0-Expr", "variantKey": "Designator", - "Designator": "0x558d739ed220-Designator" + "Designator": "0x55dbc10fb220-Designator" }, { - "id": "0x558d739ed220-Designator", + "id": "0x55dbc10fb220-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739ed230-DataRef" + "DataRef": "0x55dbc10fb230-DataRef" }, { - "id": "0x558d739ed230-DataRef", + "id": "0x55dbc10fb230-DataRef", "variantKey": "Name", - "Name": "0x558d739ed230-Name" + "Name": "0x55dbc10fb230-Name" }, { - "id": "0x558d739ed230-Name", + "id": "0x55dbc10fb230-Name", "source": "nm" }, { - "id": "0x558d739dc980-ExecutionPartConstruct" + "id": "0x55dbc10ea980-ExecutionPartConstruct" }, { - "id": "0x558d739dc8f0-ExecutionPartConstruct", + "id": "0x55dbc10ea8f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739dc8f0-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10ea8f0-ExecutableConstruct" }, { - "id": "0x558d739dc8f0-ExecutableConstruct", + "id": "0x55dbc10ea8f0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739dc8f0-Statement" + "Statement": "0x55dbc10ea8f0-Statement" }, { - "id": "0x558d739dc8f0-Statement", - "statement": "0x558d739dc900-ActionStmt", + "id": "0x55dbc10ea8f0-Statement", + "statement": "0x55dbc10ea900-ActionStmt", "source": "c(j, i) =(dble(i - 1) * dble(j + 2))/ nl" }, { - "id": "0x558d739dc900-ActionStmt", + "id": "0x55dbc10ea900-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x558d739dc760-AssignmentStmt" + "AssignmentStmt": "0x55dbc10ea760-AssignmentStmt" }, { - "id": "0x558d739dc760-AssignmentStmt", - "Variable": "0x558d739dc840-Variable", - "Expr": "0x558d739dc770-Expr" + "id": "0x55dbc10ea760-AssignmentStmt", + "Variable": "0x55dbc10ea840-Variable", + "Expr": "0x55dbc10ea770-Expr" }, { - "id": "0x558d739dc840-Variable", + "id": "0x55dbc10ea840-Variable", "variantKey": "Designator", - "Designator": "0x558d73a02340-Designator" + "Designator": "0x55dbc1110340-Designator" }, { - "id": "0x558d73a02340-Designator", + "id": "0x55dbc1110340-Designator", "variantKey": "DataRef", - "DataRef": "0x558d73a02350-DataRef" + "DataRef": "0x55dbc1110350-DataRef" }, { - "id": "0x558d73a02350-DataRef", + "id": "0x55dbc1110350-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x558d73a02300-ArrayElement" + "ArrayElement": "0x55dbc1110300-ArrayElement" }, { - "id": "0x558d73a02300-ArrayElement", - "base": "0x558d73a02300-DataRef", + "id": "0x55dbc1110300-ArrayElement", + "base": "0x55dbc1110300-DataRef", "subscripts": [ - "0x558d73aac370-SectionSubscript", - "0x558d73aac3c0-SectionSubscript" + "0x55dbc11ba370-SectionSubscript", + "0x55dbc11ba3c0-SectionSubscript" ] }, { - "id": "0x558d73a02300-DataRef", + "id": "0x55dbc1110300-DataRef", "variantKey": "Name", - "Name": "0x558d73a02300-Name" + "Name": "0x55dbc1110300-Name" }, { - "id": "0x558d73a02300-Name", + "id": "0x55dbc1110300-Name", "source": "c" }, { - "id": "0x558d73aac370-SectionSubscript", + "id": "0x55dbc11ba370-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739f0180-Expr" + "Expr": "0x55dbc10fe180-Expr" }, { - "id": "0x558d739f0180-Expr", + "id": "0x55dbc10fe180-Expr", "variantKey": "Designator", - "Designator": "0x558d739db6e0-Designator" + "Designator": "0x55dbc10e96e0-Designator" }, { - "id": "0x558d739db6e0-Designator", + "id": "0x55dbc10e96e0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739db6f0-DataRef" + "DataRef": "0x55dbc10e96f0-DataRef" }, { - "id": "0x558d739db6f0-DataRef", + "id": "0x55dbc10e96f0-DataRef", "variantKey": "Name", - "Name": "0x558d739db6f0-Name" + "Name": "0x55dbc10e96f0-Name" }, { - "id": "0x558d739db6f0-Name", + "id": "0x55dbc10e96f0-Name", "source": "j" }, { - "id": "0x558d73aac3c0-SectionSubscript", + "id": "0x55dbc11ba3c0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739f0260-Expr" + "Expr": "0x55dbc10fe260-Expr" }, { - "id": "0x558d739f0260-Expr", + "id": "0x55dbc10fe260-Expr", "variantKey": "Designator", - "Designator": "0x558d739e3b90-Designator" + "Designator": "0x55dbc10f1b90-Designator" }, { - "id": "0x558d739e3b90-Designator", + "id": "0x55dbc10f1b90-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739e3ba0-DataRef" + "DataRef": "0x55dbc10f1ba0-DataRef" }, { - "id": "0x558d739e3ba0-DataRef", + "id": "0x55dbc10f1ba0-DataRef", "variantKey": "Name", - "Name": "0x558d739e3ba0-Name" + "Name": "0x55dbc10f1ba0-Name" }, { - "id": "0x558d739e3ba0-Name", + "id": "0x55dbc10f1ba0-Name", "source": "i" }, { - "id": "0x558d739dc770-Expr", + "id": "0x55dbc10ea770-Expr", "variantKey": "Divide", - "Divide": "0x558d739dc790-Divide" + "Divide": "0x55dbc10ea790-Divide" }, { - "id": "0x558d739dc790-Divide", - "left": "0x558d739dc610-Expr", - "right": "0x558d739dc530-Expr", + "id": "0x55dbc10ea790-Divide", + "left": "0x55dbc10ea610-Expr", + "right": "0x55dbc10ea530-Expr", "op": "DIVIDE" }, { - "id": "0x558d739dc610-Expr", + "id": "0x55dbc10ea610-Expr", "variantKey": "Parentheses", - "Parentheses": "0x558d739dc630-Parentheses" + "Parentheses": "0x55dbc10ea630-Parentheses" }, { - "id": "0x558d739dc630-Parentheses", - "Expr": "0x558d739eae80-Expr", + "id": "0x55dbc10ea630-Parentheses", + "Expr": "0x55dbc10f8e80-Expr", "op": "PARENTHESES" }, { - "id": "0x558d739eae80-Expr", + "id": "0x55dbc10f8e80-Expr", "variantKey": "Multiply", - "Multiply": "0x558d739eaea0-Multiply" + "Multiply": "0x55dbc10f8ea0-Multiply" }, { - "id": "0x558d739eaea0-Multiply", - "left": "0x558d739eada0-Expr", - "right": "0x558d739eacc0-Expr", + "id": "0x55dbc10f8ea0-Multiply", + "left": "0x55dbc10f8da0-Expr", + "right": "0x55dbc10f8cc0-Expr", "op": "MULTIPLY" }, { - "id": "0x558d739eada0-Expr", + "id": "0x55dbc10f8da0-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x558d739da6a0-FunctionReference" + "FunctionReference": "0x55dbc10e86a0-FunctionReference" }, { - "id": "0x558d739da6a0-FunctionReference", - "Call": "0x558d739da6a0-Call" + "id": "0x55dbc10e86a0-FunctionReference", + "Call": "0x55dbc10e86a0-Call" }, { - "id": "0x558d739da6a0-Call", - "ProcedureDesignator": "0x558d739da6b8-ProcedureDesignator", + "id": "0x55dbc10e86a0-Call", + "ProcedureDesignator": "0x55dbc10e86b8-ProcedureDesignator", "ActualArgSpec": [ - "0x558d739ea5d0-ActualArgSpec" + "0x55dbc10f85d0-ActualArgSpec" ] }, { - "id": "0x558d739da6b8-ProcedureDesignator", + "id": "0x55dbc10e86b8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x558d739da6b8-Name" + "Name": "0x55dbc10e86b8-Name" }, { - "id": "0x558d739da6b8-Name", + "id": "0x55dbc10e86b8-Name", "source": "dble" }, { - "id": "0x558d739ea5d0-ActualArgSpec", - "ActualArg": "0x558d739ea5d0-ActualArg" + "id": "0x55dbc10f85d0-ActualArgSpec", + "ActualArg": "0x55dbc10f85d0-ActualArg" }, { - "id": "0x558d739ea5d0-ActualArg", + "id": "0x55dbc10f85d0-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739db100-Expr" + "Expr": "0x55dbc10e9100-Expr" }, { - "id": "0x558d739db100-Expr", + "id": "0x55dbc10e9100-Expr", "variantKey": "Subtract", - "Subtract": "0x558d739db120-Subtract" + "Subtract": "0x55dbc10e9120-Subtract" }, { - "id": "0x558d739db120-Subtract", - "left": "0x558d739db2c0-Expr", - "right": "0x558d739db1e0-Expr", + "id": "0x55dbc10e9120-Subtract", + "left": "0x55dbc10e92c0-Expr", + "right": "0x55dbc10e91e0-Expr", "op": "SUBTRACT" }, { - "id": "0x558d739db2c0-Expr", + "id": "0x55dbc10e92c0-Expr", "variantKey": "Designator", - "Designator": "0x558d739e4680-Designator" + "Designator": "0x55dbc10f2680-Designator" }, { - "id": "0x558d739e4680-Designator", + "id": "0x55dbc10f2680-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739e4690-DataRef" + "DataRef": "0x55dbc10f2690-DataRef" }, { - "id": "0x558d739e4690-DataRef", + "id": "0x55dbc10f2690-DataRef", "variantKey": "Name", - "Name": "0x558d739e4690-Name" + "Name": "0x55dbc10f2690-Name" }, { - "id": "0x558d739e4690-Name", + "id": "0x55dbc10f2690-Name", "source": "i" }, { - "id": "0x558d739db1e0-Expr", + "id": "0x55dbc10e91e0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739db200-LiteralConstant" + "LiteralConstant": "0x55dbc10e9200-LiteralConstant" }, { - "id": "0x558d739db200-LiteralConstant", + "id": "0x55dbc10e9200-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739db200-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10e9200-IntLiteralConstant" }, { - "id": "0x558d739db200-IntLiteralConstant", + "id": "0x55dbc10e9200-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x558d739eacc0-Expr", + "id": "0x55dbc10f8cc0-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x558d739d8170-FunctionReference" + "FunctionReference": "0x55dbc10e6170-FunctionReference" }, { - "id": "0x558d739d8170-FunctionReference", - "Call": "0x558d739d8170-Call" + "id": "0x55dbc10e6170-FunctionReference", + "Call": "0x55dbc10e6170-Call" }, { - "id": "0x558d739d8170-Call", - "ProcedureDesignator": "0x558d739d8188-ProcedureDesignator", + "id": "0x55dbc10e6170-Call", + "ProcedureDesignator": "0x55dbc10e6188-ProcedureDesignator", "ActualArgSpec": [ - "0x558d739eabc0-ActualArgSpec" + "0x55dbc10f8bc0-ActualArgSpec" ] }, { - "id": "0x558d739d8188-ProcedureDesignator", + "id": "0x55dbc10e6188-ProcedureDesignator", "variantKey": "Name", - "Name": "0x558d739d8188-Name" + "Name": "0x55dbc10e6188-Name" }, { - "id": "0x558d739d8188-Name", + "id": "0x55dbc10e6188-Name", "source": "dble" }, { - "id": "0x558d739eabc0-ActualArgSpec", - "ActualArg": "0x558d739eabc0-ActualArg" + "id": "0x55dbc10f8bc0-ActualArgSpec", + "ActualArg": "0x55dbc10f8bc0-ActualArg" }, { - "id": "0x558d739eabc0-ActualArg", + "id": "0x55dbc10f8bc0-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739ea8b0-Expr" + "Expr": "0x55dbc10f88b0-Expr" }, { - "id": "0x558d739ea8b0-Expr", + "id": "0x55dbc10f88b0-Expr", "variantKey": "Add", - "Add": "0x558d739ea8d0-Add" + "Add": "0x55dbc10f88d0-Add" }, { - "id": "0x558d739ea8d0-Add", - "left": "0x558d739eaa70-Expr", - "right": "0x558d739ea990-Expr", + "id": "0x55dbc10f88d0-Add", + "left": "0x55dbc10f8a70-Expr", + "right": "0x55dbc10f8990-Expr", "op": "ADD" }, { - "id": "0x558d739eaa70-Expr", + "id": "0x55dbc10f8a70-Expr", "variantKey": "Designator", - "Designator": "0x558d739ea7f0-Designator" + "Designator": "0x55dbc10f87f0-Designator" }, { - "id": "0x558d739ea7f0-Designator", + "id": "0x55dbc10f87f0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739ea800-DataRef" + "DataRef": "0x55dbc10f8800-DataRef" }, { - "id": "0x558d739ea800-DataRef", + "id": "0x55dbc10f8800-DataRef", "variantKey": "Name", - "Name": "0x558d739ea800-Name" + "Name": "0x55dbc10f8800-Name" }, { - "id": "0x558d739ea800-Name", + "id": "0x55dbc10f8800-Name", "source": "j" }, { - "id": "0x558d739ea990-Expr", + "id": "0x55dbc10f8990-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739ea9b0-LiteralConstant" + "LiteralConstant": "0x55dbc10f89b0-LiteralConstant" }, { - "id": "0x558d739ea9b0-LiteralConstant", + "id": "0x55dbc10f89b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739ea9b0-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10f89b0-IntLiteralConstant" }, { - "id": "0x558d739ea9b0-IntLiteralConstant", + "id": "0x55dbc10f89b0-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x558d739dc530-Expr", + "id": "0x55dbc10ea530-Expr", "variantKey": "Designator", - "Designator": "0x558d739dc460-Designator" + "Designator": "0x55dbc10ea460-Designator" }, { - "id": "0x558d739dc460-Designator", + "id": "0x55dbc10ea460-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739dc470-DataRef" + "DataRef": "0x55dbc10ea470-DataRef" }, { - "id": "0x558d739dc470-DataRef", + "id": "0x55dbc10ea470-DataRef", "variantKey": "Name", - "Name": "0x558d739dc470-Name" + "Name": "0x55dbc10ea470-Name" }, { - "id": "0x558d739dc470-Name", + "id": "0x55dbc10ea470-Name", "source": "nl" }, { - "id": "0x558d739dc940-Statement", - "statement": "0x558d739dc950-EndDoStmt", + "id": "0x55dbc10ea940-Statement", + "statement": "0x55dbc10ea950-EndDoStmt", "source": "end do" }, { - "id": "0x558d739dc950-EndDoStmt" + "id": "0x55dbc10ea950-EndDoStmt" }, { - "id": "0x558d739dca60-Statement", - "statement": "0x558d739dca70-EndDoStmt", + "id": "0x55dbc10eaa60-Statement", + "statement": "0x55dbc10eaa70-EndDoStmt", "source": "end do" }, { - "id": "0x558d739dca70-EndDoStmt" + "id": "0x55dbc10eaa70-EndDoStmt" }, { - "id": "0x558d739e93f0-ExecutionPartConstruct", + "id": "0x55dbc10f73f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739e93f0-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10f73f0-ExecutableConstruct" }, { - "id": "0x558d739e93f0-ExecutableConstruct", + "id": "0x55dbc10f73f0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x558d739f1720-DoConstruct" + "DoConstruct": "0x55dbc10ff720-DoConstruct" }, { - "id": "0x558d739f1720-DoConstruct", - "Statement": "0x558d739f1778-Statement", + "id": "0x55dbc10ff720-DoConstruct", + "Statement": "0x55dbc10ff778-Statement", "ExecutionPartConstruct": [ - "0x558d739e9390-ExecutionPartConstruct" + "0x55dbc10f7390-ExecutionPartConstruct" ], - "Statement": "0x558d739f1720-Statement" + "Statement": "0x55dbc10ff720-Statement" }, { - "id": "0x558d739f1778-Statement", - "statement": "0x558d739f1788-NonLabelDoStmt", + "id": "0x55dbc10ff778-Statement", + "statement": "0x55dbc10ff788-NonLabelDoStmt", "source": "do i = 1, nm" }, { - "id": "0x558d739f1788-NonLabelDoStmt", - "LoopControl": "0x558d739f1788-LoopControl" + "id": "0x55dbc10ff788-NonLabelDoStmt", + "LoopControl": "0x55dbc10ff788-LoopControl" }, { - "id": "0x558d739f1788-LoopControl", + "id": "0x55dbc10ff788-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x558d739f1788-LoopBounds" + "LoopBounds": "0x55dbc10ff788-LoopBounds" }, { - "id": "0x558d739f1788-LoopBounds", - "var": "0x558d739f1788-Name", - "lower": "0x558d739e8810-Expr", - "upper": "0x558d739e88f0-Expr" + "id": "0x55dbc10ff788-LoopBounds", + "var": "0x55dbc10ff788-Name", + "lower": "0x55dbc10f6810-Expr", + "upper": "0x55dbc10f68f0-Expr" }, { - "id": "0x558d739f1788-Name", + "id": "0x55dbc10ff788-Name", "source": "i" }, { - "id": "0x558d739e8810-Expr", + "id": "0x55dbc10f6810-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739e8830-LiteralConstant" + "LiteralConstant": "0x55dbc10f6830-LiteralConstant" }, { - "id": "0x558d739e8830-LiteralConstant", + "id": "0x55dbc10f6830-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739e8830-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10f6830-IntLiteralConstant" }, { - "id": "0x558d739e8830-IntLiteralConstant", + "id": "0x55dbc10f6830-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x558d739e88f0-Expr", + "id": "0x55dbc10f68f0-Expr", "variantKey": "Designator", - "Designator": "0x558d739dc1e0-Designator" + "Designator": "0x55dbc10ea1e0-Designator" }, { - "id": "0x558d739dc1e0-Designator", + "id": "0x55dbc10ea1e0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739dc1f0-DataRef" + "DataRef": "0x55dbc10ea1f0-DataRef" }, { - "id": "0x558d739dc1f0-DataRef", + "id": "0x55dbc10ea1f0-DataRef", "variantKey": "Name", - "Name": "0x558d739dc1f0-Name" + "Name": "0x55dbc10ea1f0-Name" }, { - "id": "0x558d739dc1f0-Name", + "id": "0x55dbc10ea1f0-Name", "source": "nm" }, { - "id": "0x558d739f1760-ExecutionPartConstruct" + "id": "0x55dbc10ff760-ExecutionPartConstruct" }, { - "id": "0x558d739e9390-ExecutionPartConstruct", + "id": "0x55dbc10f7390-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739e9390-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10f7390-ExecutableConstruct" }, { - "id": "0x558d739e9390-ExecutableConstruct", + "id": "0x55dbc10f7390-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x558d739f1600-DoConstruct" + "DoConstruct": "0x55dbc10ff600-DoConstruct" }, { - "id": "0x558d739f1600-DoConstruct", - "Statement": "0x558d739f1658-Statement", + "id": "0x55dbc10ff600-DoConstruct", + "Statement": "0x55dbc10ff658-Statement", "ExecutionPartConstruct": [ - "0x558d739f15b0-ExecutionPartConstruct" + "0x55dbc10ff5b0-ExecutionPartConstruct" ], - "Statement": "0x558d739f1600-Statement" + "Statement": "0x55dbc10ff600-Statement" }, { - "id": "0x558d739f1658-Statement", - "statement": "0x558d739f1668-NonLabelDoStmt", + "id": "0x55dbc10ff658-Statement", + "statement": "0x55dbc10ff668-NonLabelDoStmt", "source": "do j = 1, nl" }, { - "id": "0x558d739f1668-NonLabelDoStmt", - "LoopControl": "0x558d739f1668-LoopControl" + "id": "0x55dbc10ff668-NonLabelDoStmt", + "LoopControl": "0x55dbc10ff668-LoopControl" }, { - "id": "0x558d739f1668-LoopControl", + "id": "0x55dbc10ff668-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x558d739f1668-LoopBounds" + "LoopBounds": "0x55dbc10ff668-LoopBounds" }, { - "id": "0x558d739f1668-LoopBounds", - "var": "0x558d739f1668-Name", - "lower": "0x558d739e89d0-Expr", - "upper": "0x558d739e8ab0-Expr" + "id": "0x55dbc10ff668-LoopBounds", + "var": "0x55dbc10ff668-Name", + "lower": "0x55dbc10f69d0-Expr", + "upper": "0x55dbc10f6ab0-Expr" }, { - "id": "0x558d739f1668-Name", + "id": "0x55dbc10ff668-Name", "source": "j" }, { - "id": "0x558d739e89d0-Expr", + "id": "0x55dbc10f69d0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739e89f0-LiteralConstant" + "LiteralConstant": "0x55dbc10f69f0-LiteralConstant" }, { - "id": "0x558d739e89f0-LiteralConstant", + "id": "0x55dbc10f69f0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739e89f0-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10f69f0-IntLiteralConstant" }, { - "id": "0x558d739e89f0-IntLiteralConstant", + "id": "0x55dbc10f69f0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x558d739e8ab0-Expr", + "id": "0x55dbc10f6ab0-Expr", "variantKey": "Designator", - "Designator": "0x558d739d6bd0-Designator" + "Designator": "0x55dbc10e4bd0-Designator" }, { - "id": "0x558d739d6bd0-Designator", + "id": "0x55dbc10e4bd0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739d6be0-DataRef" + "DataRef": "0x55dbc10e4be0-DataRef" }, { - "id": "0x558d739d6be0-DataRef", + "id": "0x55dbc10e4be0-DataRef", "variantKey": "Name", - "Name": "0x558d739d6be0-Name" + "Name": "0x55dbc10e4be0-Name" }, { - "id": "0x558d739d6be0-Name", + "id": "0x55dbc10e4be0-Name", "source": "nl" }, { - "id": "0x558d739f1640-ExecutionPartConstruct" + "id": "0x55dbc10ff640-ExecutionPartConstruct" }, { - "id": "0x558d739f15b0-ExecutionPartConstruct", + "id": "0x55dbc10ff5b0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739f15b0-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10ff5b0-ExecutableConstruct" }, { - "id": "0x558d739f15b0-ExecutableConstruct", + "id": "0x55dbc10ff5b0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739f15b0-Statement" + "Statement": "0x55dbc10ff5b0-Statement" }, { - "id": "0x558d739f15b0-Statement", - "statement": "0x558d739f15c0-ActionStmt", + "id": "0x55dbc10ff5b0-Statement", + "statement": "0x55dbc10ff5c0-ActionStmt", "source": "d(j, i) =(dble(i - 1) * dble(j + 1))/ nk" }, { - "id": "0x558d739f15c0-ActionStmt", + "id": "0x55dbc10ff5c0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x558d739f1420-AssignmentStmt" + "AssignmentStmt": "0x55dbc10ff420-AssignmentStmt" }, { - "id": "0x558d739f1420-AssignmentStmt", - "Variable": "0x558d739f1500-Variable", - "Expr": "0x558d739f1430-Expr" + "id": "0x55dbc10ff420-AssignmentStmt", + "Variable": "0x55dbc10ff500-Variable", + "Expr": "0x55dbc10ff430-Expr" }, { - "id": "0x558d739f1500-Variable", + "id": "0x55dbc10ff500-Variable", "variantKey": "Designator", - "Designator": "0x558d73a01fe0-Designator" + "Designator": "0x55dbc110ffe0-Designator" }, { - "id": "0x558d73a01fe0-Designator", + "id": "0x55dbc110ffe0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d73a01ff0-DataRef" + "DataRef": "0x55dbc110fff0-DataRef" }, { - "id": "0x558d73a01ff0-DataRef", + "id": "0x55dbc110fff0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x558d739efc90-ArrayElement" + "ArrayElement": "0x55dbc10fdc90-ArrayElement" }, { - "id": "0x558d739efc90-ArrayElement", - "base": "0x558d739efc90-DataRef", + "id": "0x55dbc10fdc90-ArrayElement", + "base": "0x55dbc10fdc90-DataRef", "subscripts": [ - "0x558d73aac410-SectionSubscript", - "0x558d73a214b0-SectionSubscript" + "0x55dbc11ba410-SectionSubscript", + "0x55dbc112f4b0-SectionSubscript" ] }, { - "id": "0x558d739efc90-DataRef", + "id": "0x55dbc10fdc90-DataRef", "variantKey": "Name", - "Name": "0x558d739efc90-Name" + "Name": "0x55dbc10fdc90-Name" }, { - "id": "0x558d739efc90-Name", + "id": "0x55dbc10fdc90-Name", "source": "d" }, { - "id": "0x558d73aac410-SectionSubscript", + "id": "0x55dbc11ba410-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739dad20-Expr" + "Expr": "0x55dbc10e8d20-Expr" }, { - "id": "0x558d739dad20-Expr", + "id": "0x55dbc10e8d20-Expr", "variantKey": "Designator", - "Designator": "0x558d739d8d40-Designator" + "Designator": "0x55dbc10e6d40-Designator" }, { - "id": "0x558d739d8d40-Designator", + "id": "0x55dbc10e6d40-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739d8d50-DataRef" + "DataRef": "0x55dbc10e6d50-DataRef" }, { - "id": "0x558d739d8d50-DataRef", + "id": "0x55dbc10e6d50-DataRef", "variantKey": "Name", - "Name": "0x558d739d8d50-Name" + "Name": "0x55dbc10e6d50-Name" }, { - "id": "0x558d739d8d50-Name", + "id": "0x55dbc10e6d50-Name", "source": "j" }, { - "id": "0x558d73a214b0-SectionSubscript", + "id": "0x55dbc112f4b0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739dae00-Expr" + "Expr": "0x55dbc10e8e00-Expr" }, { - "id": "0x558d739dae00-Expr", + "id": "0x55dbc10e8e00-Expr", "variantKey": "Designator", - "Designator": "0x558d739e42a0-Designator" + "Designator": "0x55dbc10f22a0-Designator" }, { - "id": "0x558d739e42a0-Designator", + "id": "0x55dbc10f22a0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739e42b0-DataRef" + "DataRef": "0x55dbc10f22b0-DataRef" }, { - "id": "0x558d739e42b0-DataRef", + "id": "0x55dbc10f22b0-DataRef", "variantKey": "Name", - "Name": "0x558d739e42b0-Name" + "Name": "0x55dbc10f22b0-Name" }, { - "id": "0x558d739e42b0-Name", + "id": "0x55dbc10f22b0-Name", "source": "i" }, { - "id": "0x558d739f1430-Expr", + "id": "0x55dbc10ff430-Expr", "variantKey": "Divide", - "Divide": "0x558d739f1450-Divide" + "Divide": "0x55dbc10ff450-Divide" }, { - "id": "0x558d739f1450-Divide", - "left": "0x558d739f12d0-Expr", - "right": "0x558d739f11f0-Expr", + "id": "0x55dbc10ff450-Divide", + "left": "0x55dbc10ff2d0-Expr", + "right": "0x55dbc10ff1f0-Expr", "op": "DIVIDE" }, { - "id": "0x558d739f12d0-Expr", + "id": "0x55dbc10ff2d0-Expr", "variantKey": "Parentheses", - "Parentheses": "0x558d739f12f0-Parentheses" + "Parentheses": "0x55dbc10ff2f0-Parentheses" }, { - "id": "0x558d739f12f0-Parentheses", - "Expr": "0x558d739f0f80-Expr", + "id": "0x55dbc10ff2f0-Parentheses", + "Expr": "0x55dbc10fef80-Expr", "op": "PARENTHESES" }, { - "id": "0x558d739f0f80-Expr", + "id": "0x55dbc10fef80-Expr", "variantKey": "Multiply", - "Multiply": "0x558d739f0fa0-Multiply" + "Multiply": "0x55dbc10fefa0-Multiply" }, { - "id": "0x558d739f0fa0-Multiply", - "left": "0x558d739f0ea0-Expr", - "right": "0x558d739f0dc0-Expr", + "id": "0x55dbc10fefa0-Multiply", + "left": "0x55dbc10feea0-Expr", + "right": "0x55dbc10fedc0-Expr", "op": "MULTIPLY" }, { - "id": "0x558d739f0ea0-Expr", + "id": "0x55dbc10feea0-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x558d739d2840-FunctionReference" + "FunctionReference": "0x55dbc10e0840-FunctionReference" }, { - "id": "0x558d739d2840-FunctionReference", - "Call": "0x558d739d2840-Call" + "id": "0x55dbc10e0840-FunctionReference", + "Call": "0x55dbc10e0840-Call" }, { - "id": "0x558d739d2840-Call", - "ProcedureDesignator": "0x558d739d2858-ProcedureDesignator", + "id": "0x55dbc10e0840-Call", + "ProcedureDesignator": "0x55dbc10e0858-ProcedureDesignator", "ActualArgSpec": [ - "0x558d739e9220-ActualArgSpec" + "0x55dbc10f7220-ActualArgSpec" ] }, { - "id": "0x558d739d2858-ProcedureDesignator", + "id": "0x55dbc10e0858-ProcedureDesignator", "variantKey": "Name", - "Name": "0x558d739d2858-Name" + "Name": "0x55dbc10e0858-Name" }, { - "id": "0x558d739d2858-Name", + "id": "0x55dbc10e0858-Name", "source": "dble" }, { - "id": "0x558d739e9220-ActualArgSpec", - "ActualArg": "0x558d739e9220-ActualArg" + "id": "0x55dbc10f7220-ActualArgSpec", + "ActualArg": "0x55dbc10f7220-ActualArg" }, { - "id": "0x558d739e9220-ActualArg", + "id": "0x55dbc10f7220-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739e8f70-Expr" + "Expr": "0x55dbc10f6f70-Expr" }, { - "id": "0x558d739e8f70-Expr", + "id": "0x55dbc10f6f70-Expr", "variantKey": "Subtract", - "Subtract": "0x558d739e8f90-Subtract" + "Subtract": "0x55dbc10f6f90-Subtract" }, { - "id": "0x558d739e8f90-Subtract", - "left": "0x558d739e9130-Expr", - "right": "0x558d739e9050-Expr", + "id": "0x55dbc10f6f90-Subtract", + "left": "0x55dbc10f7130-Expr", + "right": "0x55dbc10f7050-Expr", "op": "SUBTRACT" }, { - "id": "0x558d739e9130-Expr", + "id": "0x55dbc10f7130-Expr", "variantKey": "Designator", - "Designator": "0x558d739dc240-Designator" + "Designator": "0x55dbc10ea240-Designator" }, { - "id": "0x558d739dc240-Designator", + "id": "0x55dbc10ea240-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739dc250-DataRef" + "DataRef": "0x55dbc10ea250-DataRef" }, { - "id": "0x558d739dc250-DataRef", + "id": "0x55dbc10ea250-DataRef", "variantKey": "Name", - "Name": "0x558d739dc250-Name" + "Name": "0x55dbc10ea250-Name" }, { - "id": "0x558d739dc250-Name", + "id": "0x55dbc10ea250-Name", "source": "i" }, { - "id": "0x558d739e9050-Expr", + "id": "0x55dbc10f7050-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739e9070-LiteralConstant" + "LiteralConstant": "0x55dbc10f7070-LiteralConstant" }, { - "id": "0x558d739e9070-LiteralConstant", + "id": "0x55dbc10f7070-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739e9070-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10f7070-IntLiteralConstant" }, { - "id": "0x558d739e9070-IntLiteralConstant", + "id": "0x55dbc10f7070-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x558d739f0dc0-Expr", + "id": "0x55dbc10fedc0-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x558d739d1c30-FunctionReference" + "FunctionReference": "0x55dbc10dfc30-FunctionReference" }, { - "id": "0x558d739d1c30-FunctionReference", - "Call": "0x558d739d1c30-Call" + "id": "0x55dbc10dfc30-FunctionReference", + "Call": "0x55dbc10dfc30-Call" }, { - "id": "0x558d739d1c30-Call", - "ProcedureDesignator": "0x558d739d1c48-ProcedureDesignator", + "id": "0x55dbc10dfc30-Call", + "ProcedureDesignator": "0x55dbc10dfc48-ProcedureDesignator", "ActualArgSpec": [ - "0x558d739f0cc0-ActualArgSpec" + "0x55dbc10fecc0-ActualArgSpec" ] }, { - "id": "0x558d739d1c48-ProcedureDesignator", + "id": "0x55dbc10dfc48-ProcedureDesignator", "variantKey": "Name", - "Name": "0x558d739d1c48-Name" + "Name": "0x55dbc10dfc48-Name" }, { - "id": "0x558d739d1c48-Name", + "id": "0x55dbc10dfc48-Name", "source": "dble" }, { - "id": "0x558d739f0cc0-ActualArgSpec", - "ActualArg": "0x558d739f0cc0-ActualArg" + "id": "0x55dbc10fecc0-ActualArgSpec", + "ActualArg": "0x55dbc10fecc0-ActualArg" }, { - "id": "0x558d739f0cc0-ActualArg", + "id": "0x55dbc10fecc0-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739f0a10-Expr" + "Expr": "0x55dbc10fea10-Expr" }, { - "id": "0x558d739f0a10-Expr", + "id": "0x55dbc10fea10-Expr", "variantKey": "Add", - "Add": "0x558d739f0a30-Add" + "Add": "0x55dbc10fea30-Add" }, { - "id": "0x558d739f0a30-Add", - "left": "0x558d739f0bd0-Expr", - "right": "0x558d739f0af0-Expr", + "id": "0x55dbc10fea30-Add", + "left": "0x55dbc10febd0-Expr", + "right": "0x55dbc10feaf0-Expr", "op": "ADD" }, { - "id": "0x558d739f0bd0-Expr", + "id": "0x55dbc10febd0-Expr", "variantKey": "Designator", - "Designator": "0x558d739e9440-Designator" + "Designator": "0x55dbc10f7440-Designator" }, { - "id": "0x558d739e9440-Designator", + "id": "0x55dbc10f7440-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739e9450-DataRef" + "DataRef": "0x55dbc10f7450-DataRef" }, { - "id": "0x558d739e9450-DataRef", + "id": "0x55dbc10f7450-DataRef", "variantKey": "Name", - "Name": "0x558d739e9450-Name" + "Name": "0x55dbc10f7450-Name" }, { - "id": "0x558d739e9450-Name", + "id": "0x55dbc10f7450-Name", "source": "j" }, { - "id": "0x558d739f0af0-Expr", + "id": "0x55dbc10feaf0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739f0b10-LiteralConstant" + "LiteralConstant": "0x55dbc10feb10-LiteralConstant" }, { - "id": "0x558d739f0b10-LiteralConstant", + "id": "0x55dbc10feb10-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739f0b10-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10feb10-IntLiteralConstant" }, { - "id": "0x558d739f0b10-IntLiteralConstant", + "id": "0x55dbc10feb10-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x558d739f11f0-Expr", + "id": "0x55dbc10ff1f0-Expr", "variantKey": "Designator", - "Designator": "0x558d739f1120-Designator" + "Designator": "0x55dbc10ff120-Designator" }, { - "id": "0x558d739f1120-Designator", + "id": "0x55dbc10ff120-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739f1130-DataRef" + "DataRef": "0x55dbc10ff130-DataRef" }, { - "id": "0x558d739f1130-DataRef", + "id": "0x55dbc10ff130-DataRef", "variantKey": "Name", - "Name": "0x558d739f1130-Name" + "Name": "0x55dbc10ff130-Name" }, { - "id": "0x558d739f1130-Name", + "id": "0x55dbc10ff130-Name", "source": "nk" }, { - "id": "0x558d739f1600-Statement", - "statement": "0x558d739f1610-EndDoStmt", + "id": "0x55dbc10ff600-Statement", + "statement": "0x55dbc10ff610-EndDoStmt", "source": "end do" }, { - "id": "0x558d739f1610-EndDoStmt" + "id": "0x55dbc10ff610-EndDoStmt" }, { - "id": "0x558d739f1720-Statement", - "statement": "0x558d739f1730-EndDoStmt", + "id": "0x55dbc10ff720-Statement", + "statement": "0x55dbc10ff730-EndDoStmt", "source": "end do" }, { - "id": "0x558d739f1730-EndDoStmt" + "id": "0x55dbc10ff730-EndDoStmt" }, { - "id": "0x558d739f2bb0-Statement", - "statement": "0x558d739f2bc0-EndSubroutineStmt", + "id": "0x55dbc1100bb0-Statement", + "statement": "0x55dbc1100bc0-EndSubroutineStmt", "source": "end subroutine" }, { - "id": "0x558d739f2bc0-EndSubroutineStmt" + "id": "0x55dbc1100bc0-EndSubroutineStmt" }, { - "id": "0x558d739ea120-InternalSubprogram", + "id": "0x55dbc10f8120-InternalSubprogram", "variantKey": "SubroutineSubprogram", - "SubroutineSubprogram": "0x558d739f8df0-SubroutineSubprogram" + "SubroutineSubprogram": "0x55dbc1106df0-SubroutineSubprogram" }, { - "id": "0x558d739f8df0-SubroutineSubprogram", - "Statement": "0x558d739f8f38-Statement", - "SpecificationPart": "0x558d739f8e90-SpecificationPart", - "ExecutionPart": "0x558d739f8e78-ExecutionPart", - "Statement": "0x558d739f8df0-Statement" + "id": "0x55dbc1106df0-SubroutineSubprogram", + "Statement": "0x55dbc1106f38-Statement", + "SpecificationPart": "0x55dbc1106e90-SpecificationPart", + "ExecutionPart": "0x55dbc1106e78-ExecutionPart", + "Statement": "0x55dbc1106df0-Statement" }, { - "id": "0x558d739f8f38-Statement", - "statement": "0x558d739f8f48-SubroutineStmt", + "id": "0x55dbc1106f38-Statement", + "statement": "0x55dbc1106f48-SubroutineStmt", "source": "subroutine print_array(ni, nl, g)" }, { - "id": "0x558d739f8f48-SubroutineStmt", - "Name": "0x558d739f8f80-Name", + "id": "0x55dbc1106f48-SubroutineStmt", + "Name": "0x55dbc1106f80-Name", "DummyArg": [ - "0x558d739da870-DummyArg", - "0x558d739da7d0-DummyArg", - "0x558d739da810-DummyArg" + "0x55dbc10e8870-DummyArg", + "0x55dbc10e87d0-DummyArg", + "0x55dbc10e8810-DummyArg" ] }, { - "id": "0x558d739f8f80-Name", + "id": "0x55dbc1106f80-Name", "source": "print_array" }, { - "id": "0x558d739da870-DummyArg", + "id": "0x55dbc10e8870-DummyArg", "variantKey": "Name", - "Name": "0x558d739da870-Name" + "Name": "0x55dbc10e8870-Name" }, { - "id": "0x558d739da870-Name", + "id": "0x55dbc10e8870-Name", "source": "ni" }, { - "id": "0x558d739da7d0-DummyArg", + "id": "0x55dbc10e87d0-DummyArg", "variantKey": "Name", - "Name": "0x558d739da7d0-Name" + "Name": "0x55dbc10e87d0-Name" }, { - "id": "0x558d739da7d0-Name", + "id": "0x55dbc10e87d0-Name", "source": "nl" }, { - "id": "0x558d739da810-DummyArg", + "id": "0x55dbc10e8810-DummyArg", "variantKey": "Name", - "Name": "0x558d739da810-Name" + "Name": "0x55dbc10e8810-Name" }, { - "id": "0x558d739da810-Name", + "id": "0x55dbc10e8810-Name", "source": "g" }, { - "id": "0x558d739f8e90-SpecificationPart", - "ImplicitPart": "0x558d739f8ea8-ImplicitPart", + "id": "0x55dbc1106e90-SpecificationPart", + "ImplicitPart": "0x55dbc1106ea8-ImplicitPart", "DeclarationConstruct": [ - "0x558d739edfb0-DeclarationConstruct", - "0x558d739d7d60-DeclarationConstruct", - "0x558d739db830-DeclarationConstruct" + "0x55dbc10fbfb0-DeclarationConstruct", + "0x55dbc10e5d60-DeclarationConstruct", + "0x55dbc10e9830-DeclarationConstruct" ] }, { - "id": "0x558d739f8ea8-ImplicitPart" + "id": "0x55dbc1106ea8-ImplicitPart" }, { - "id": "0x558d739edfb0-DeclarationConstruct", + "id": "0x55dbc10fbfb0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558d739edfb0-SpecificationConstruct" + "SpecificationConstruct": "0x55dbc10fbfb0-SpecificationConstruct" }, { - "id": "0x558d739edfb0-SpecificationConstruct", + "id": "0x55dbc10fbfb0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558d739edfb0-Statement" + "Statement": "0x55dbc10fbfb0-Statement" }, { - "id": "0x558d739edfb0-Statement", - "statement": "0x558d739d1f00-TypeDeclarationStmt", + "id": "0x55dbc10fbfb0-Statement", + "statement": "0x55dbc10dff00-TypeDeclarationStmt", "source": "double precision, dimension(nl, ni) :: g" }, { - "id": "0x558d739d1f00-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558d739d1f30-DeclarationTypeSpec", + "id": "0x55dbc10dff00-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55dbc10dff30-DeclarationTypeSpec", "AttrSpec": [ - "0x558d739d7a90-AttrSpec" + "0x55dbc10e5a90-AttrSpec" ], "EntityDecl": [ - "0x558d739f3770-EntityDecl" + "0x55dbc1101770-EntityDecl" ] }, { - "id": "0x558d739d1f30-DeclarationTypeSpec", + "id": "0x55dbc10dff30-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558d739d1f30-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55dbc10dff30-IntrinsicTypeSpec" }, { - "id": "0x558d739d1f30-IntrinsicTypeSpec", + "id": "0x55dbc10dff30-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x558d739d1f30-DoublePrecision" + "DoublePrecision": "0x55dbc10dff30-DoublePrecision" }, { - "id": "0x558d739d1f30-DoublePrecision" + "id": "0x55dbc10dff30-DoublePrecision" }, { - "id": "0x558d739d7a90-AttrSpec", + "id": "0x55dbc10e5a90-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x558d739d7a90-ArraySpec" + "ArraySpec": "0x55dbc10e5a90-ArraySpec" }, { - "id": "0x558d739d7a90-ArraySpec", + "id": "0x55dbc10e5a90-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x558d739e9db0-ExplicitShapeSpec", - "0x558d739e3cf0-ExplicitShapeSpec" + "0x55dbc10f7db0-ExplicitShapeSpec", + "0x55dbc10f1cf0-ExplicitShapeSpec" ] }, { - "id": "0x558d739e9db0-ExplicitShapeSpec", - "upper_bound": "0x558d739e9db0-SpecificationExpr" + "id": "0x55dbc10f7db0-ExplicitShapeSpec", + "upper_bound": "0x55dbc10f7db0-SpecificationExpr" }, { - "id": "0x558d739e9db0-SpecificationExpr", - "Expr": "0x558d739ee0c0-Expr" + "id": "0x55dbc10f7db0-SpecificationExpr", + "Expr": "0x55dbc10fc0c0-Expr" }, { - "id": "0x558d739ee0c0-Expr", + "id": "0x55dbc10fc0c0-Expr", "variantKey": "Designator", - "Designator": "0x558d739f1060-Designator" + "Designator": "0x55dbc10ff060-Designator" }, { - "id": "0x558d739f1060-Designator", + "id": "0x55dbc10ff060-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739f1070-DataRef" + "DataRef": "0x55dbc10ff070-DataRef" }, { - "id": "0x558d739f1070-DataRef", + "id": "0x55dbc10ff070-DataRef", "variantKey": "Name", - "Name": "0x558d739f1070-Name" + "Name": "0x55dbc10ff070-Name" }, { - "id": "0x558d739f1070-Name", + "id": "0x55dbc10ff070-Name", "source": "nl" }, { - "id": "0x558d739e3cf0-ExplicitShapeSpec", - "upper_bound": "0x558d739e3cf0-SpecificationExpr" + "id": "0x55dbc10f1cf0-ExplicitShapeSpec", + "upper_bound": "0x55dbc10f1cf0-SpecificationExpr" }, { - "id": "0x558d739e3cf0-SpecificationExpr", - "Expr": "0x558d739f2a00-Expr" + "id": "0x55dbc10f1cf0-SpecificationExpr", + "Expr": "0x55dbc1100a00-Expr" }, { - "id": "0x558d739f2a00-Expr", + "id": "0x55dbc1100a00-Expr", "variantKey": "Designator", - "Designator": "0x558d739eab50-Designator" + "Designator": "0x55dbc10f8b50-Designator" }, { - "id": "0x558d739eab50-Designator", + "id": "0x55dbc10f8b50-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739eab60-DataRef" + "DataRef": "0x55dbc10f8b60-DataRef" }, { - "id": "0x558d739eab60-DataRef", + "id": "0x55dbc10f8b60-DataRef", "variantKey": "Name", - "Name": "0x558d739eab60-Name" + "Name": "0x55dbc10f8b60-Name" }, { - "id": "0x558d739eab60-Name", + "id": "0x55dbc10f8b60-Name", "source": "ni" }, { - "id": "0x558d739f3770-EntityDecl", - "Name": "0x558d739f3828-Name" + "id": "0x55dbc1101770-EntityDecl", + "Name": "0x55dbc1101828-Name" }, { - "id": "0x558d739f3828-Name", + "id": "0x55dbc1101828-Name", "source": "g" }, { - "id": "0x558d739d7d60-DeclarationConstruct", + "id": "0x55dbc10e5d60-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558d739d7d60-SpecificationConstruct" + "SpecificationConstruct": "0x55dbc10e5d60-SpecificationConstruct" }, { - "id": "0x558d739d7d60-SpecificationConstruct", + "id": "0x55dbc10e5d60-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558d739d7d60-Statement" + "Statement": "0x55dbc10e5d60-Statement" }, { - "id": "0x558d739d7d60-Statement", - "statement": "0x558d739ef2d0-TypeDeclarationStmt", + "id": "0x55dbc10e5d60-Statement", + "statement": "0x55dbc10fd2d0-TypeDeclarationStmt", "source": "integer :: ni, nl" }, { - "id": "0x558d739ef2d0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558d739ef300-DeclarationTypeSpec", + "id": "0x55dbc10fd2d0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55dbc10fd300-DeclarationTypeSpec", "EntityDecl": [ - "0x558d739f3950-EntityDecl", - "0x558d739f3860-EntityDecl" + "0x55dbc1101950-EntityDecl", + "0x55dbc1101860-EntityDecl" ] }, { - "id": "0x558d739ef300-DeclarationTypeSpec", + "id": "0x55dbc10fd300-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558d739ef300-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55dbc10fd300-IntrinsicTypeSpec" }, { - "id": "0x558d739ef300-IntrinsicTypeSpec", + "id": "0x55dbc10fd300-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x558d739ef300-IntegerTypeSpec" + "IntegerTypeSpec": "0x55dbc10fd300-IntegerTypeSpec" }, { - "id": "0x558d739ef300-IntegerTypeSpec" + "id": "0x55dbc10fd300-IntegerTypeSpec" }, { - "id": "0x558d739f3950-EntityDecl", - "Name": "0x558d739f3a08-Name" + "id": "0x55dbc1101950-EntityDecl", + "Name": "0x55dbc1101a08-Name" }, { - "id": "0x558d739f3a08-Name", + "id": "0x55dbc1101a08-Name", "source": "ni" }, { - "id": "0x558d739f3860-EntityDecl", - "Name": "0x558d739f3918-Name" + "id": "0x55dbc1101860-EntityDecl", + "Name": "0x55dbc1101918-Name" }, { - "id": "0x558d739f3918-Name", + "id": "0x55dbc1101918-Name", "source": "nl" }, { - "id": "0x558d739db830-DeclarationConstruct", + "id": "0x55dbc10e9830-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558d739db830-SpecificationConstruct" + "SpecificationConstruct": "0x55dbc10e9830-SpecificationConstruct" }, { - "id": "0x558d739db830-SpecificationConstruct", + "id": "0x55dbc10e9830-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558d739db830-Statement" + "Statement": "0x55dbc10e9830-Statement" }, { - "id": "0x558d739db830-Statement", - "statement": "0x558d739cca90-TypeDeclarationStmt", + "id": "0x55dbc10e9830-Statement", + "statement": "0x55dbc10daa90-TypeDeclarationStmt", "source": "integer :: i, j" }, { - "id": "0x558d739cca90-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558d739ccac0-DeclarationTypeSpec", + "id": "0x55dbc10daa90-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55dbc10daac0-DeclarationTypeSpec", "EntityDecl": [ - "0x558d739f19d0-EntityDecl", - "0x558d739f18e0-EntityDecl" + "0x55dbc10ff9d0-EntityDecl", + "0x55dbc10ff8e0-EntityDecl" ] }, { - "id": "0x558d739ccac0-DeclarationTypeSpec", + "id": "0x55dbc10daac0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558d739ccac0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55dbc10daac0-IntrinsicTypeSpec" }, { - "id": "0x558d739ccac0-IntrinsicTypeSpec", + "id": "0x55dbc10daac0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x558d739ccac0-IntegerTypeSpec" + "IntegerTypeSpec": "0x55dbc10daac0-IntegerTypeSpec" }, { - "id": "0x558d739ccac0-IntegerTypeSpec" + "id": "0x55dbc10daac0-IntegerTypeSpec" }, { - "id": "0x558d739f19d0-EntityDecl", - "Name": "0x558d739f1a88-Name" + "id": "0x55dbc10ff9d0-EntityDecl", + "Name": "0x55dbc10ffa88-Name" }, { - "id": "0x558d739f1a88-Name", + "id": "0x55dbc10ffa88-Name", "source": "i" }, { - "id": "0x558d739f18e0-EntityDecl", - "Name": "0x558d739f1998-Name" + "id": "0x55dbc10ff8e0-EntityDecl", + "Name": "0x55dbc10ff998-Name" }, { - "id": "0x558d739f1998-Name", + "id": "0x55dbc10ff998-Name", "source": "j" }, { - "id": "0x558d739f8e78-ExecutionPart", + "id": "0x55dbc1106e78-ExecutionPart", "ExecutionPartConstruct": [ - "0x558d739f2af0-ExecutionPartConstruct", - "0x558d739dbe90-ExecutionPartConstruct" + "0x55dbc1100af0-ExecutionPartConstruct", + "0x55dbc10e9e90-ExecutionPartConstruct" ] }, { - "id": "0x558d739f8e78-ExecutionPartConstruct" + "id": "0x55dbc1106e78-ExecutionPartConstruct" }, { - "id": "0x558d739f2af0-ExecutionPartConstruct", + "id": "0x55dbc1100af0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739f2af0-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc1100af0-ExecutableConstruct" }, { - "id": "0x558d739f2af0-ExecutableConstruct", + "id": "0x55dbc1100af0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x558d739f7270-DoConstruct" + "DoConstruct": "0x55dbc1105270-DoConstruct" }, { - "id": "0x558d739f7270-DoConstruct", - "Statement": "0x558d739f72c8-Statement", + "id": "0x55dbc1105270-DoConstruct", + "Statement": "0x55dbc11052c8-Statement", "ExecutionPartConstruct": [ - "0x558d739e9b70-ExecutionPartConstruct" + "0x55dbc10f7b70-ExecutionPartConstruct" ], - "Statement": "0x558d739f7270-Statement" + "Statement": "0x55dbc1105270-Statement" }, { - "id": "0x558d739f72c8-Statement", - "statement": "0x558d739f72d8-NonLabelDoStmt", + "id": "0x55dbc11052c8-Statement", + "statement": "0x55dbc11052d8-NonLabelDoStmt", "source": "do i = 1, ni" }, { - "id": "0x558d739f72d8-NonLabelDoStmt", - "LoopControl": "0x558d739f72d8-LoopControl" + "id": "0x55dbc11052d8-NonLabelDoStmt", + "LoopControl": "0x55dbc11052d8-LoopControl" }, { - "id": "0x558d739f72d8-LoopControl", + "id": "0x55dbc11052d8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x558d739f72d8-LoopBounds" + "LoopBounds": "0x55dbc11052d8-LoopBounds" }, { - "id": "0x558d739f72d8-LoopBounds", - "var": "0x558d739f72d8-Name", - "lower": "0x558d739f1ab0-Expr", - "upper": "0x558d739f1b90-Expr" + "id": "0x55dbc11052d8-LoopBounds", + "var": "0x55dbc11052d8-Name", + "lower": "0x55dbc10ffab0-Expr", + "upper": "0x55dbc10ffb90-Expr" }, { - "id": "0x558d739f72d8-Name", + "id": "0x55dbc11052d8-Name", "source": "i" }, { - "id": "0x558d739f1ab0-Expr", + "id": "0x55dbc10ffab0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739f1ad0-LiteralConstant" + "LiteralConstant": "0x55dbc10ffad0-LiteralConstant" }, { - "id": "0x558d739f1ad0-LiteralConstant", + "id": "0x55dbc10ffad0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739f1ad0-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10ffad0-IntLiteralConstant" }, { - "id": "0x558d739f1ad0-IntLiteralConstant", + "id": "0x55dbc10ffad0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x558d739f1b90-Expr", + "id": "0x55dbc10ffb90-Expr", "variantKey": "Designator", - "Designator": "0x558d739ee740-Designator" + "Designator": "0x55dbc10fc740-Designator" }, { - "id": "0x558d739ee740-Designator", + "id": "0x55dbc10fc740-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739ee750-DataRef" + "DataRef": "0x55dbc10fc750-DataRef" }, { - "id": "0x558d739ee750-DataRef", + "id": "0x55dbc10fc750-DataRef", "variantKey": "Name", - "Name": "0x558d739ee750-Name" + "Name": "0x55dbc10fc750-Name" }, { - "id": "0x558d739ee750-Name", + "id": "0x55dbc10fc750-Name", "source": "ni" }, { - "id": "0x558d739f72b0-ExecutionPartConstruct" + "id": "0x55dbc11052b0-ExecutionPartConstruct" }, { - "id": "0x558d739e9b70-ExecutionPartConstruct", + "id": "0x55dbc10f7b70-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739e9b70-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10f7b70-ExecutableConstruct" }, { - "id": "0x558d739e9b70-ExecutableConstruct", + "id": "0x55dbc10f7b70-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x558d739f7150-DoConstruct" + "DoConstruct": "0x55dbc1105150-DoConstruct" }, { - "id": "0x558d739f7150-DoConstruct", - "Statement": "0x558d739f71a8-Statement", + "id": "0x55dbc1105150-DoConstruct", + "Statement": "0x55dbc11051a8-Statement", "ExecutionPartConstruct": [ - "0x558d739eda00-ExecutionPartConstruct", - "0x558d739f4da0-ExecutionPartConstruct" + "0x55dbc10fba00-ExecutionPartConstruct", + "0x55dbc1102da0-ExecutionPartConstruct" ], - "Statement": "0x558d739f7150-Statement" + "Statement": "0x55dbc1105150-Statement" }, { - "id": "0x558d739f71a8-Statement", - "statement": "0x558d739f71b8-NonLabelDoStmt", + "id": "0x55dbc11051a8-Statement", + "statement": "0x55dbc11051b8-NonLabelDoStmt", "source": "do j = 1, nl" }, { - "id": "0x558d739f71b8-NonLabelDoStmt", - "LoopControl": "0x558d739f71b8-LoopControl" + "id": "0x55dbc11051b8-NonLabelDoStmt", + "LoopControl": "0x55dbc11051b8-LoopControl" }, { - "id": "0x558d739f71b8-LoopControl", + "id": "0x55dbc11051b8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x558d739f71b8-LoopBounds" + "LoopBounds": "0x55dbc11051b8-LoopBounds" }, { - "id": "0x558d739f71b8-LoopBounds", - "var": "0x558d739f71b8-Name", - "lower": "0x558d739f1c70-Expr", - "upper": "0x558d739f1d50-Expr" + "id": "0x55dbc11051b8-LoopBounds", + "var": "0x55dbc11051b8-Name", + "lower": "0x55dbc10ffc70-Expr", + "upper": "0x55dbc10ffd50-Expr" }, { - "id": "0x558d739f71b8-Name", + "id": "0x55dbc11051b8-Name", "source": "j" }, { - "id": "0x558d739f1c70-Expr", + "id": "0x55dbc10ffc70-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739f1c90-LiteralConstant" + "LiteralConstant": "0x55dbc10ffc90-LiteralConstant" }, { - "id": "0x558d739f1c90-LiteralConstant", + "id": "0x55dbc10ffc90-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739f1c90-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10ffc90-IntLiteralConstant" }, { - "id": "0x558d739f1c90-IntLiteralConstant", + "id": "0x55dbc10ffc90-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x558d739f1d50-Expr", + "id": "0x55dbc10ffd50-Expr", "variantKey": "Designator", - "Designator": "0x558d739ea6d0-Designator" + "Designator": "0x55dbc10f86d0-Designator" }, { - "id": "0x558d739ea6d0-Designator", + "id": "0x55dbc10f86d0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739ea6e0-DataRef" + "DataRef": "0x55dbc10f86e0-DataRef" }, { - "id": "0x558d739ea6e0-DataRef", + "id": "0x55dbc10f86e0-DataRef", "variantKey": "Name", - "Name": "0x558d739ea6e0-Name" + "Name": "0x55dbc10f86e0-Name" }, { - "id": "0x558d739ea6e0-Name", + "id": "0x55dbc10f86e0-Name", "source": "nl" }, { - "id": "0x558d739f7190-ExecutionPartConstruct" + "id": "0x55dbc1105190-ExecutionPartConstruct" }, { - "id": "0x558d739eda00-ExecutionPartConstruct", + "id": "0x55dbc10fba00-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739eda00-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10fba00-ExecutableConstruct" }, { - "id": "0x558d739eda00-ExecutableConstruct", + "id": "0x55dbc10fba00-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739eda00-Statement" + "Statement": "0x55dbc10fba00-Statement" }, { - "id": "0x558d739eda00-Statement", - "statement": "0x558d739eda10-ActionStmt", + "id": "0x55dbc10fba00-Statement", + "statement": "0x55dbc10fba10-ActionStmt", "source": "write(0, \"(f0.2,1x)\", advance = 'no') g(j, i)" }, { - "id": "0x558d739eda10-ActionStmt", + "id": "0x55dbc10fba10-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x558d739f41c0-WriteStmt" + "WriteStmt": "0x55dbc11021c0-WriteStmt" }, { - "id": "0x558d739f41c0-WriteStmt", - "iounit": "0x558d739f41c0-IoUnit", - "format": "0x558d739f41f0-Format", + "id": "0x55dbc11021c0-WriteStmt", + "iounit": "0x55dbc11021c0-IoUnit", + "format": "0x55dbc11021f0-Format", "controls": [ - "0x558d739f2410-IoControlSpec" + "0x55dbc1100410-IoControlSpec" ], "items": [ - "0x558d739f40e0-OutputItem" + "0x55dbc11020e0-OutputItem" ] }, { - "id": "0x558d739f41c0-IoUnit", + "id": "0x55dbc11021c0-IoUnit", "variantKey": "Expr", - "Expr": "0x558d739f1e30-Expr" + "Expr": "0x55dbc10ffe30-Expr" }, { - "id": "0x558d739f1e30-Expr", + "id": "0x55dbc10ffe30-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739f1e50-LiteralConstant" + "LiteralConstant": "0x55dbc10ffe50-LiteralConstant" }, { - "id": "0x558d739f1e50-LiteralConstant", + "id": "0x55dbc10ffe50-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739f1e50-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc10ffe50-IntLiteralConstant" }, { - "id": "0x558d739f1e50-IntLiteralConstant", + "id": "0x55dbc10ffe50-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x558d739f41f0-Format", + "id": "0x55dbc11021f0-Format", "variantKey": "Expr", - "Expr": "0x558d739f41f0-Expr" + "Expr": "0x55dbc11021f0-Expr" }, { - "id": "0x558d739f41f0-Expr", + "id": "0x55dbc11021f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739f4210-LiteralConstant" + "LiteralConstant": "0x55dbc1102210-LiteralConstant" }, { - "id": "0x558d739f4210-LiteralConstant", + "id": "0x55dbc1102210-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x558d739f4210-CharLiteralConstant" + "CharLiteralConstant": "0x55dbc1102210-CharLiteralConstant" }, { - "id": "0x558d739f4210-CharLiteralConstant", + "id": "0x55dbc1102210-CharLiteralConstant", "string": "(f0.2,1x)" }, { - "id": "0x558d739f2410-IoControlSpec", + "id": "0x55dbc1100410-IoControlSpec", "variantKey": "CharExpr", - "CharExpr": "0x558d739f2410-CharExpr" + "CharExpr": "0x55dbc1100410-CharExpr" }, { - "id": "0x558d739f2410-CharExpr", - "Kind = Advance": "0x558d739f2418-Kind = Advance", - "Expr": "0x558d739f1f10-Expr", - "kind": "Advance" + "id": "0x55dbc1100410-CharExpr", + "Kind": "0x55dbc1100418-Kind", + "Expr": "0x55dbc10fff10-Expr" }, { - "id": "0x558d739f2418-Kind = Advance", + "id": "0x55dbc1100418-Kind", "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", "value": "Advance" }, { - "id": "0x558d739f1f10-Expr", + "id": "0x55dbc10fff10-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739f1f30-LiteralConstant" + "LiteralConstant": "0x55dbc10fff30-LiteralConstant" }, { - "id": "0x558d739f1f30-LiteralConstant", + "id": "0x55dbc10fff30-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x558d739f1f30-CharLiteralConstant" + "CharLiteralConstant": "0x55dbc10fff30-CharLiteralConstant" }, { - "id": "0x558d739f1f30-CharLiteralConstant", + "id": "0x55dbc10fff30-CharLiteralConstant", "string": "no" }, { - "id": "0x558d739f40e0-OutputItem", + "id": "0x55dbc11020e0-OutputItem", "variantKey": "Expr", - "Expr": "0x558d739f40e0-Expr" + "Expr": "0x55dbc11020e0-Expr" }, { - "id": "0x558d739f40e0-Expr", + "id": "0x55dbc11020e0-Expr", "variantKey": "Designator", - "Designator": "0x558d73a129e0-Designator" + "Designator": "0x55dbc11209e0-Designator" }, { - "id": "0x558d73a129e0-Designator", + "id": "0x55dbc11209e0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d73a129f0-DataRef" + "DataRef": "0x55dbc11209f0-DataRef" }, { - "id": "0x558d73a129f0-DataRef", + "id": "0x55dbc11209f0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x558d73a06350-ArrayElement" + "ArrayElement": "0x55dbc1114350-ArrayElement" }, { - "id": "0x558d73a06350-ArrayElement", - "base": "0x558d73a06350-DataRef", + "id": "0x55dbc1114350-ArrayElement", + "base": "0x55dbc1114350-DataRef", "subscripts": [ - "0x558d73a06600-SectionSubscript", - "0x558d73a072d0-SectionSubscript" + "0x55dbc1114600-SectionSubscript", + "0x55dbc11152d0-SectionSubscript" ] }, { - "id": "0x558d73a06350-DataRef", + "id": "0x55dbc1114350-DataRef", "variantKey": "Name", - "Name": "0x558d73a06350-Name" + "Name": "0x55dbc1114350-Name" }, { - "id": "0x558d73a06350-Name", + "id": "0x55dbc1114350-Name", "source": "g" }, { - "id": "0x558d73a06600-SectionSubscript", + "id": "0x55dbc1114600-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739e8b90-Expr" + "Expr": "0x55dbc10f6b90-Expr" }, { - "id": "0x558d739e8b90-Expr", + "id": "0x55dbc10f6b90-Expr", "variantKey": "Designator", - "Designator": "0x558d739f1840-Designator" + "Designator": "0x55dbc10ff840-Designator" }, { - "id": "0x558d739f1840-Designator", + "id": "0x55dbc10ff840-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739f1850-DataRef" + "DataRef": "0x55dbc10ff850-DataRef" }, { - "id": "0x558d739f1850-DataRef", + "id": "0x55dbc10ff850-DataRef", "variantKey": "Name", - "Name": "0x558d739f1850-Name" + "Name": "0x55dbc10ff850-Name" }, { - "id": "0x558d739f1850-Name", + "id": "0x55dbc10ff850-Name", "source": "j" }, { - "id": "0x558d73a072d0-SectionSubscript", + "id": "0x55dbc11152d0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739e8c70-Expr" + "Expr": "0x55dbc10f6c70-Expr" }, { - "id": "0x558d739e8c70-Expr", + "id": "0x55dbc10f6c70-Expr", "variantKey": "Designator", - "Designator": "0x558d739f2500-Designator" + "Designator": "0x55dbc1100500-Designator" }, { - "id": "0x558d739f2500-Designator", + "id": "0x55dbc1100500-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739f2510-DataRef" + "DataRef": "0x55dbc1100510-DataRef" }, { - "id": "0x558d739f2510-DataRef", + "id": "0x55dbc1100510-DataRef", "variantKey": "Name", - "Name": "0x558d739f2510-Name" + "Name": "0x55dbc1100510-Name" }, { - "id": "0x558d739f2510-Name", + "id": "0x55dbc1100510-Name", "source": "i" }, { - "id": "0x558d739f4da0-ExecutionPartConstruct", + "id": "0x55dbc1102da0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739f4da0-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc1102da0-ExecutableConstruct" }, { - "id": "0x558d739f4da0-ExecutableConstruct", + "id": "0x55dbc1102da0-ExecutableConstruct", "variantKey": "IfConstruct", - "IfConstruct": "0x558d739f7030-IfConstruct" + "IfConstruct": "0x55dbc1105030-IfConstruct" }, { - "id": "0x558d739f7030-IfConstruct", - "Statement": "0x558d739f7100-Statement", + "id": "0x55dbc1105030-IfConstruct", + "Statement": "0x55dbc1105100-Statement", "ExecutionPartConstruct": [ - "0x558d739e9330-ExecutionPartConstruct" + "0x55dbc10f7330-ExecutionPartConstruct" ], - "Statement": "0x558d739f7030-Statement" + "Statement": "0x55dbc1105030-Statement" }, { - "id": "0x558d739f7100-Statement", - "statement": "0x558d739f7110-IfThenStmt", + "id": "0x55dbc1105100-Statement", + "statement": "0x55dbc1105110-IfThenStmt", "source": "if(mod(((i - 1) * ni) + j - 1, 20) == 0) then" }, { - "id": "0x558d739f7110-IfThenStmt", - "Expr": "0x558d739f6d20-Expr" + "id": "0x55dbc1105110-IfThenStmt", + "Expr": "0x55dbc1104d20-Expr" }, { - "id": "0x558d739f6d20-Expr", + "id": "0x55dbc1104d20-Expr", "variantKey": "EQ", - "EQ": "0x558d739f6d40-EQ" + "EQ": "0x55dbc1104d40-EQ" }, { - "id": "0x558d739f6d40-EQ", - "left": "0x558d739f6c40-Expr", - "right": "0x558d739f6b60-Expr", + "id": "0x55dbc1104d40-EQ", + "left": "0x55dbc1104c40-Expr", + "right": "0x55dbc1104b60-Expr", "op": "EQ" }, { - "id": "0x558d739f6c40-Expr", + "id": "0x55dbc1104c40-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x558d739e9f40-FunctionReference" + "FunctionReference": "0x55dbc10f7f40-FunctionReference" }, { - "id": "0x558d739e9f40-FunctionReference", - "Call": "0x558d739e9f40-Call" + "id": "0x55dbc10f7f40-FunctionReference", + "Call": "0x55dbc10f7f40-Call" }, { - "id": "0x558d739e9f40-Call", - "ProcedureDesignator": "0x558d739e9f58-ProcedureDesignator", + "id": "0x55dbc10f7f40-Call", + "ProcedureDesignator": "0x55dbc10f7f58-ProcedureDesignator", "ActualArgSpec": [ - "0x558d739f2300-ActualArgSpec", - "0x558d739f5270-ActualArgSpec" + "0x55dbc1100300-ActualArgSpec", + "0x55dbc1103270-ActualArgSpec" ] }, { - "id": "0x558d739e9f58-ProcedureDesignator", + "id": "0x55dbc10f7f58-ProcedureDesignator", "variantKey": "Name", - "Name": "0x558d739e9f58-Name" + "Name": "0x55dbc10f7f58-Name" }, { - "id": "0x558d739e9f58-Name", + "id": "0x55dbc10f7f58-Name", "source": "mod" }, { - "id": "0x558d739f2300-ActualArgSpec", - "ActualArg": "0x558d739f2300-ActualArg" + "id": "0x55dbc1100300-ActualArgSpec", + "ActualArg": "0x55dbc1100300-ActualArg" }, { - "id": "0x558d739f2300-ActualArg", + "id": "0x55dbc1100300-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739f69a0-Expr" + "Expr": "0x55dbc11049a0-Expr" }, { - "id": "0x558d739f69a0-Expr", + "id": "0x55dbc11049a0-Expr", "variantKey": "Subtract", - "Subtract": "0x558d739f69c0-Subtract" + "Subtract": "0x55dbc11049c0-Subtract" }, { - "id": "0x558d739f69c0-Subtract", - "left": "0x558d739f67e0-Expr", - "right": "0x558d739f6700-Expr", + "id": "0x55dbc11049c0-Subtract", + "left": "0x55dbc11047e0-Expr", + "right": "0x55dbc1104700-Expr", "op": "SUBTRACT" }, { - "id": "0x558d739f67e0-Expr", + "id": "0x55dbc11047e0-Expr", "variantKey": "Add", - "Add": "0x558d739f6800-Add" + "Add": "0x55dbc1104800-Add" }, { - "id": "0x558d739f6800-Add", - "left": "0x558d739f5120-Expr", - "right": "0x558d739f4310-Expr", + "id": "0x55dbc1104800-Add", + "left": "0x55dbc1103120-Expr", + "right": "0x55dbc1102310-Expr", "op": "ADD" }, { - "id": "0x558d739f5120-Expr", + "id": "0x55dbc1103120-Expr", "variantKey": "Parentheses", - "Parentheses": "0x558d739f5140-Parentheses" + "Parentheses": "0x55dbc1103140-Parentheses" }, { - "id": "0x558d739f5140-Parentheses", - "Expr": "0x558d739f6620-Expr", + "id": "0x55dbc1103140-Parentheses", + "Expr": "0x55dbc1104620-Expr", "op": "PARENTHESES" }, { - "id": "0x558d739f6620-Expr", + "id": "0x55dbc1104620-Expr", "variantKey": "Multiply", - "Multiply": "0x558d739f6640-Multiply" + "Multiply": "0x55dbc1104640-Multiply" }, { - "id": "0x558d739f6640-Multiply", - "left": "0x558d739f44d0-Expr", - "right": "0x558d739f4690-Expr", + "id": "0x55dbc1104640-Multiply", + "left": "0x55dbc11024d0-Expr", + "right": "0x55dbc1102690-Expr", "op": "MULTIPLY" }, { - "id": "0x558d739f44d0-Expr", + "id": "0x55dbc11024d0-Expr", "variantKey": "Parentheses", - "Parentheses": "0x558d739f44f0-Parentheses" + "Parentheses": "0x55dbc11024f0-Parentheses" }, { - "id": "0x558d739f44f0-Parentheses", - "Expr": "0x558d739f45b0-Expr", + "id": "0x55dbc11024f0-Parentheses", + "Expr": "0x55dbc11025b0-Expr", "op": "PARENTHESES" }, { - "id": "0x558d739f45b0-Expr", + "id": "0x55dbc11025b0-Expr", "variantKey": "Subtract", - "Subtract": "0x558d739f45d0-Subtract" + "Subtract": "0x55dbc11025d0-Subtract" }, { - "id": "0x558d739f45d0-Subtract", - "left": "0x558d739f64d0-Expr", - "right": "0x558d739f43f0-Expr", + "id": "0x55dbc11025d0-Subtract", + "left": "0x55dbc11044d0-Expr", + "right": "0x55dbc11023f0-Expr", "op": "SUBTRACT" }, { - "id": "0x558d739f64d0-Expr", + "id": "0x55dbc11044d0-Expr", "variantKey": "Designator", - "Designator": "0x558d739ef670-Designator" + "Designator": "0x55dbc10fd670-Designator" }, { - "id": "0x558d739ef670-Designator", + "id": "0x55dbc10fd670-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739ef680-DataRef" + "DataRef": "0x55dbc10fd680-DataRef" }, { - "id": "0x558d739ef680-DataRef", + "id": "0x55dbc10fd680-DataRef", "variantKey": "Name", - "Name": "0x558d739ef680-Name" + "Name": "0x55dbc10fd680-Name" }, { - "id": "0x558d739ef680-Name", + "id": "0x55dbc10fd680-Name", "source": "i" }, { - "id": "0x558d739f43f0-Expr", + "id": "0x55dbc11023f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739f4410-LiteralConstant" + "LiteralConstant": "0x55dbc1102410-LiteralConstant" }, { - "id": "0x558d739f4410-LiteralConstant", + "id": "0x55dbc1102410-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739f4410-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc1102410-IntLiteralConstant" }, { - "id": "0x558d739f4410-IntLiteralConstant", + "id": "0x55dbc1102410-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x558d739f4690-Expr", + "id": "0x55dbc1102690-Expr", "variantKey": "Designator", - "Designator": "0x558d739dcb80-Designator" + "Designator": "0x55dbc10eab80-Designator" }, { - "id": "0x558d739dcb80-Designator", + "id": "0x55dbc10eab80-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739dcb90-DataRef" + "DataRef": "0x55dbc10eab90-DataRef" }, { - "id": "0x558d739dcb90-DataRef", + "id": "0x55dbc10eab90-DataRef", "variantKey": "Name", - "Name": "0x558d739dcb90-Name" + "Name": "0x55dbc10eab90-Name" }, { - "id": "0x558d739dcb90-Name", + "id": "0x55dbc10eab90-Name", "source": "ni" }, { - "id": "0x558d739f4310-Expr", + "id": "0x55dbc1102310-Expr", "variantKey": "Designator", - "Designator": "0x558d739f2d90-Designator" + "Designator": "0x55dbc1100d90-Designator" }, { - "id": "0x558d739f2d90-Designator", + "id": "0x55dbc1100d90-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739f2da0-DataRef" + "DataRef": "0x55dbc1100da0-DataRef" }, { - "id": "0x558d739f2da0-DataRef", + "id": "0x55dbc1100da0-DataRef", "variantKey": "Name", - "Name": "0x558d739f2da0-Name" + "Name": "0x55dbc1100da0-Name" }, { - "id": "0x558d739f2da0-Name", + "id": "0x55dbc1100da0-Name", "source": "j" }, { - "id": "0x558d739f6700-Expr", + "id": "0x55dbc1104700-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739f6720-LiteralConstant" + "LiteralConstant": "0x55dbc1104720-LiteralConstant" }, { - "id": "0x558d739f6720-LiteralConstant", + "id": "0x55dbc1104720-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739f6720-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc1104720-IntLiteralConstant" }, { - "id": "0x558d739f6720-IntLiteralConstant", + "id": "0x55dbc1104720-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x558d739f5270-ActualArgSpec", - "ActualArg": "0x558d739f5270-ActualArg" + "id": "0x55dbc1103270-ActualArgSpec", + "ActualArg": "0x55dbc1103270-ActualArg" }, { - "id": "0x558d739f5270-ActualArg", + "id": "0x55dbc1103270-ActualArg", "variantKey": "Expr", - "Expr": "0x558d739f6a80-Expr" + "Expr": "0x55dbc1104a80-Expr" }, { - "id": "0x558d739f6a80-Expr", + "id": "0x55dbc1104a80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739f6aa0-LiteralConstant" + "LiteralConstant": "0x55dbc1104aa0-LiteralConstant" }, { - "id": "0x558d739f6aa0-LiteralConstant", + "id": "0x55dbc1104aa0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739f6aa0-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc1104aa0-IntLiteralConstant" }, { - "id": "0x558d739f6aa0-IntLiteralConstant", + "id": "0x55dbc1104aa0-IntLiteralConstant", "CharBlock": "20" }, { - "id": "0x558d739f6b60-Expr", + "id": "0x55dbc1104b60-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739f6b80-LiteralConstant" + "LiteralConstant": "0x55dbc1104b80-LiteralConstant" }, { - "id": "0x558d739f6b80-LiteralConstant", + "id": "0x55dbc1104b80-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739f6b80-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc1104b80-IntLiteralConstant" }, { - "id": "0x558d739f6b80-IntLiteralConstant", + "id": "0x55dbc1104b80-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x558d739f70e8-ExecutionPartConstruct" + "id": "0x55dbc11050e8-ExecutionPartConstruct" }, { - "id": "0x558d739e9330-ExecutionPartConstruct", + "id": "0x55dbc10f7330-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739e9330-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10f7330-ExecutableConstruct" }, { - "id": "0x558d739e9330-ExecutableConstruct", + "id": "0x55dbc10f7330-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739e9330-Statement" + "Statement": "0x55dbc10f7330-Statement" }, { - "id": "0x558d739e9330-Statement", - "statement": "0x558d739e9340-ActionStmt", + "id": "0x55dbc10f7330-Statement", + "statement": "0x55dbc10f7340-ActionStmt", "source": "write(0, *)" }, { - "id": "0x558d739e9340-ActionStmt", + "id": "0x55dbc10f7340-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x558d739f6ee0-WriteStmt" + "WriteStmt": "0x55dbc1104ee0-WriteStmt" }, { - "id": "0x558d739f6ee0-WriteStmt", - "iounit": "0x558d739f6ee0-IoUnit", - "format": "0x558d739f6f10-Format", + "id": "0x55dbc1104ee0-WriteStmt", + "iounit": "0x55dbc1104ee0-IoUnit", + "format": "0x55dbc1104f10-Format", "controls": [], "items": [] }, { - "id": "0x558d739f6ee0-IoUnit", + "id": "0x55dbc1104ee0-IoUnit", "variantKey": "Expr", - "Expr": "0x558d739f6e00-Expr" + "Expr": "0x55dbc1104e00-Expr" }, { - "id": "0x558d739f6e00-Expr", + "id": "0x55dbc1104e00-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739f6e20-LiteralConstant" + "LiteralConstant": "0x55dbc1104e20-LiteralConstant" }, { - "id": "0x558d739f6e20-LiteralConstant", + "id": "0x55dbc1104e20-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739f6e20-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc1104e20-IntLiteralConstant" }, { - "id": "0x558d739f6e20-IntLiteralConstant", + "id": "0x55dbc1104e20-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x558d739f6f10-Format", + "id": "0x55dbc1104f10-Format", "variantKey": "Star", - "Star": "0x558d739f6f10-Star" + "Star": "0x55dbc1104f10-Star" }, { - "id": "0x558d739f6f10-Star" + "id": "0x55dbc1104f10-Star" }, { - "id": "0x558d739f7030-Statement", - "statement": "0x558d739f7040-EndIfStmt", + "id": "0x55dbc1105030-Statement", + "statement": "0x55dbc1105040-EndIfStmt", "source": "end if" }, { - "id": "0x558d739f7040-EndIfStmt" + "id": "0x55dbc1105040-EndIfStmt" }, { - "id": "0x558d739f7150-Statement", - "statement": "0x558d739f7160-EndDoStmt", + "id": "0x55dbc1105150-Statement", + "statement": "0x55dbc1105160-EndDoStmt", "source": "end do" }, { - "id": "0x558d739f7160-EndDoStmt" + "id": "0x55dbc1105160-EndDoStmt" }, { - "id": "0x558d739f7270-Statement", - "statement": "0x558d739f7280-EndDoStmt", + "id": "0x55dbc1105270-Statement", + "statement": "0x55dbc1105280-EndDoStmt", "source": "end do" }, { - "id": "0x558d739f7280-EndDoStmt" + "id": "0x55dbc1105280-EndDoStmt" }, { - "id": "0x558d739dbe90-ExecutionPartConstruct", + "id": "0x55dbc10e9e90-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739dbe90-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc10e9e90-ExecutableConstruct" }, { - "id": "0x558d739dbe90-ExecutableConstruct", + "id": "0x55dbc10e9e90-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739dbe90-Statement" + "Statement": "0x55dbc10e9e90-Statement" }, { - "id": "0x558d739dbe90-Statement", - "statement": "0x558d739dbea0-ActionStmt", + "id": "0x55dbc10e9e90-Statement", + "statement": "0x55dbc10e9ea0-ActionStmt", "source": "write(0, *)" }, { - "id": "0x558d739dbea0-ActionStmt", + "id": "0x55dbc10e9ea0-ActionStmt", "variantKey": "WriteStmt", - "WriteStmt": "0x558d739f7470-WriteStmt" + "WriteStmt": "0x55dbc1105470-WriteStmt" }, { - "id": "0x558d739f7470-WriteStmt", - "iounit": "0x558d739f7470-IoUnit", - "format": "0x558d739f74a0-Format", + "id": "0x55dbc1105470-WriteStmt", + "iounit": "0x55dbc1105470-IoUnit", + "format": "0x55dbc11054a0-Format", "controls": [], "items": [] }, { - "id": "0x558d739f7470-IoUnit", + "id": "0x55dbc1105470-IoUnit", "variantKey": "Expr", - "Expr": "0x558d739f7390-Expr" + "Expr": "0x55dbc1105390-Expr" }, { - "id": "0x558d739f7390-Expr", + "id": "0x55dbc1105390-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739f73b0-LiteralConstant" + "LiteralConstant": "0x55dbc11053b0-LiteralConstant" }, { - "id": "0x558d739f73b0-LiteralConstant", + "id": "0x55dbc11053b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739f73b0-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc11053b0-IntLiteralConstant" }, { - "id": "0x558d739f73b0-IntLiteralConstant", + "id": "0x55dbc11053b0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x558d739f74a0-Format", + "id": "0x55dbc11054a0-Format", "variantKey": "Star", - "Star": "0x558d739f74a0-Star" + "Star": "0x55dbc11054a0-Star" }, { - "id": "0x558d739f74a0-Star" + "id": "0x55dbc11054a0-Star" }, { - "id": "0x558d739f8df0-Statement", - "statement": "0x558d739f8e00-EndSubroutineStmt", + "id": "0x55dbc1106df0-Statement", + "statement": "0x55dbc1106e00-EndSubroutineStmt", "source": "end subroutine" }, { - "id": "0x558d739f8e00-EndSubroutineStmt" + "id": "0x55dbc1106e00-EndSubroutineStmt" }, { - "id": "0x558d739f9240-InternalSubprogram", + "id": "0x55dbc1107240-InternalSubprogram", "variantKey": "SubroutineSubprogram", - "SubroutineSubprogram": "0x558d73a01620-SubroutineSubprogram" + "SubroutineSubprogram": "0x55dbc110f620-SubroutineSubprogram" }, { - "id": "0x558d73a01620-SubroutineSubprogram", - "Statement": "0x558d73a01768-Statement", - "SpecificationPart": "0x558d73a016c0-SpecificationPart", - "ExecutionPart": "0x558d73a016a8-ExecutionPart", - "Statement": "0x558d73a01620-Statement" + "id": "0x55dbc110f620-SubroutineSubprogram", + "Statement": "0x55dbc110f768-Statement", + "SpecificationPart": "0x55dbc110f6c0-SpecificationPart", + "ExecutionPart": "0x55dbc110f6a8-ExecutionPart", + "Statement": "0x55dbc110f620-Statement" }, { - "id": "0x558d73a01768-Statement", - "statement": "0x558d73a01778-SubroutineStmt", + "id": "0x55dbc110f768-Statement", + "statement": "0x55dbc110f778-SubroutineStmt", "source": "subroutine kernel_3mm(ni, nj, nk, nl, nm, e, a, b, f, c, d, g)" }, { - "id": "0x558d73a01778-SubroutineStmt", - "Name": "0x558d73a017b0-Name", + "id": "0x55dbc110f778-SubroutineStmt", + "Name": "0x55dbc110f7b0-Name", "DummyArg": [ - "0x558d739dacb0-DummyArg", - "0x558d739da8b0-DummyArg", - "0x558d739da920-DummyArg", - "0x558d739da960-DummyArg", - "0x558d739da9a0-DummyArg", - "0x558d739ef540-DummyArg", - "0x558d739e3e70-DummyArg", - "0x558d739e3f30-DummyArg", - "0x558d739dcf70-DummyArg", - "0x558d739e9a20-DummyArg", - "0x558d739da440-DummyArg", - "0x558d739da640-DummyArg" + "0x55dbc10e8cb0-DummyArg", + "0x55dbc10e88b0-DummyArg", + "0x55dbc10e8920-DummyArg", + "0x55dbc10e8960-DummyArg", + "0x55dbc10e89a0-DummyArg", + "0x55dbc10fd540-DummyArg", + "0x55dbc10f1e70-DummyArg", + "0x55dbc10f1f30-DummyArg", + "0x55dbc10eaf70-DummyArg", + "0x55dbc10f7a20-DummyArg", + "0x55dbc10e8440-DummyArg", + "0x55dbc10e8640-DummyArg" ] }, { - "id": "0x558d73a017b0-Name", + "id": "0x55dbc110f7b0-Name", "source": "kernel_3mm" }, { - "id": "0x558d739dacb0-DummyArg", + "id": "0x55dbc10e8cb0-DummyArg", "variantKey": "Name", - "Name": "0x558d739dacb0-Name" + "Name": "0x55dbc10e8cb0-Name" }, { - "id": "0x558d739dacb0-Name", + "id": "0x55dbc10e8cb0-Name", "source": "ni" }, { - "id": "0x558d739da8b0-DummyArg", + "id": "0x55dbc10e88b0-DummyArg", "variantKey": "Name", - "Name": "0x558d739da8b0-Name" + "Name": "0x55dbc10e88b0-Name" }, { - "id": "0x558d739da8b0-Name", + "id": "0x55dbc10e88b0-Name", "source": "nj" }, { - "id": "0x558d739da920-DummyArg", + "id": "0x55dbc10e8920-DummyArg", "variantKey": "Name", - "Name": "0x558d739da920-Name" + "Name": "0x55dbc10e8920-Name" }, { - "id": "0x558d739da920-Name", + "id": "0x55dbc10e8920-Name", "source": "nk" }, { - "id": "0x558d739da960-DummyArg", + "id": "0x55dbc10e8960-DummyArg", "variantKey": "Name", - "Name": "0x558d739da960-Name" + "Name": "0x55dbc10e8960-Name" }, { - "id": "0x558d739da960-Name", + "id": "0x55dbc10e8960-Name", "source": "nl" }, { - "id": "0x558d739da9a0-DummyArg", + "id": "0x55dbc10e89a0-DummyArg", "variantKey": "Name", - "Name": "0x558d739da9a0-Name" + "Name": "0x55dbc10e89a0-Name" }, { - "id": "0x558d739da9a0-Name", + "id": "0x55dbc10e89a0-Name", "source": "nm" }, { - "id": "0x558d739ef540-DummyArg", + "id": "0x55dbc10fd540-DummyArg", "variantKey": "Name", - "Name": "0x558d739ef540-Name" + "Name": "0x55dbc10fd540-Name" }, { - "id": "0x558d739ef540-Name", + "id": "0x55dbc10fd540-Name", "source": "e" }, { - "id": "0x558d739e3e70-DummyArg", + "id": "0x55dbc10f1e70-DummyArg", "variantKey": "Name", - "Name": "0x558d739e3e70-Name" + "Name": "0x55dbc10f1e70-Name" }, { - "id": "0x558d739e3e70-Name", + "id": "0x55dbc10f1e70-Name", "source": "a" }, { - "id": "0x558d739e3f30-DummyArg", + "id": "0x55dbc10f1f30-DummyArg", "variantKey": "Name", - "Name": "0x558d739e3f30-Name" + "Name": "0x55dbc10f1f30-Name" }, { - "id": "0x558d739e3f30-Name", + "id": "0x55dbc10f1f30-Name", "source": "b" }, { - "id": "0x558d739dcf70-DummyArg", + "id": "0x55dbc10eaf70-DummyArg", "variantKey": "Name", - "Name": "0x558d739dcf70-Name" + "Name": "0x55dbc10eaf70-Name" }, { - "id": "0x558d739dcf70-Name", + "id": "0x55dbc10eaf70-Name", "source": "f" }, { - "id": "0x558d739e9a20-DummyArg", + "id": "0x55dbc10f7a20-DummyArg", "variantKey": "Name", - "Name": "0x558d739e9a20-Name" + "Name": "0x55dbc10f7a20-Name" }, { - "id": "0x558d739e9a20-Name", + "id": "0x55dbc10f7a20-Name", "source": "c" }, { - "id": "0x558d739da440-DummyArg", + "id": "0x55dbc10e8440-DummyArg", "variantKey": "Name", - "Name": "0x558d739da440-Name" + "Name": "0x55dbc10e8440-Name" }, { - "id": "0x558d739da440-Name", + "id": "0x55dbc10e8440-Name", "source": "d" }, { - "id": "0x558d739da640-DummyArg", + "id": "0x55dbc10e8640-DummyArg", "variantKey": "Name", - "Name": "0x558d739da640-Name" + "Name": "0x55dbc10e8640-Name" }, { - "id": "0x558d739da640-Name", + "id": "0x55dbc10e8640-Name", "source": "g" }, { - "id": "0x558d73a016c0-SpecificationPart", - "ImplicitPart": "0x558d73a016d8-ImplicitPart", + "id": "0x55dbc110f6c0-SpecificationPart", + "ImplicitPart": "0x55dbc110f6d8-ImplicitPart", "DeclarationConstruct": [ - "0x558d739da720-DeclarationConstruct", - "0x558d739ea740-DeclarationConstruct", - "0x558d739f7df0-DeclarationConstruct", - "0x558d739f8220-DeclarationConstruct", - "0x558d739f8650-DeclarationConstruct", - "0x558d739f8a80-DeclarationConstruct", - "0x558d739f91e0-DeclarationConstruct", - "0x558d739eda60-DeclarationConstruct", - "0x558d739f5380-DeclarationConstruct" + "0x55dbc10e8720-DeclarationConstruct", + "0x55dbc10f8740-DeclarationConstruct", + "0x55dbc1105df0-DeclarationConstruct", + "0x55dbc1106220-DeclarationConstruct", + "0x55dbc1106650-DeclarationConstruct", + "0x55dbc1106a80-DeclarationConstruct", + "0x55dbc11071e0-DeclarationConstruct", + "0x55dbc10fba60-DeclarationConstruct", + "0x55dbc1103380-DeclarationConstruct" ] }, { - "id": "0x558d73a016d8-ImplicitPart" + "id": "0x55dbc110f6d8-ImplicitPart" }, { - "id": "0x558d739da720-DeclarationConstruct", + "id": "0x55dbc10e8720-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558d739da720-SpecificationConstruct" + "SpecificationConstruct": "0x55dbc10e8720-SpecificationConstruct" }, { - "id": "0x558d739da720-SpecificationConstruct", + "id": "0x55dbc10e8720-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558d739da720-Statement" + "Statement": "0x55dbc10e8720-Statement" }, { - "id": "0x558d739da720-Statement", - "statement": "0x558d739f32a0-TypeDeclarationStmt", + "id": "0x55dbc10e8720-Statement", + "statement": "0x55dbc11012a0-TypeDeclarationStmt", "source": "double precision, dimension(nk, ni) :: a" }, { - "id": "0x558d739f32a0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558d739f32d0-DeclarationTypeSpec", + "id": "0x55dbc11012a0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55dbc11012d0-DeclarationTypeSpec", "AttrSpec": [ - "0x558d739d80d0-AttrSpec" + "0x55dbc10e60d0-AttrSpec" ], "EntityDecl": [ - "0x558d739f7740-EntityDecl" + "0x55dbc1105740-EntityDecl" ] }, { - "id": "0x558d739f32d0-DeclarationTypeSpec", + "id": "0x55dbc11012d0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558d739f32d0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55dbc11012d0-IntrinsicTypeSpec" }, { - "id": "0x558d739f32d0-IntrinsicTypeSpec", + "id": "0x55dbc11012d0-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x558d739f32d0-DoublePrecision" + "DoublePrecision": "0x55dbc11012d0-DoublePrecision" }, { - "id": "0x558d739f32d0-DoublePrecision" + "id": "0x55dbc11012d0-DoublePrecision" }, { - "id": "0x558d739d80d0-AttrSpec", + "id": "0x55dbc10e60d0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x558d739d80d0-ArraySpec" + "ArraySpec": "0x55dbc10e60d0-ArraySpec" }, { - "id": "0x558d739d80d0-ArraySpec", + "id": "0x55dbc10e60d0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x558d739de290-ExplicitShapeSpec", - "0x558d739ea2a0-ExplicitShapeSpec" + "0x55dbc10ec290-ExplicitShapeSpec", + "0x55dbc10f82a0-ExplicitShapeSpec" ] }, { - "id": "0x558d739de290-ExplicitShapeSpec", - "upper_bound": "0x558d739de290-SpecificationExpr" + "id": "0x55dbc10ec290-ExplicitShapeSpec", + "upper_bound": "0x55dbc10ec290-SpecificationExpr" }, { - "id": "0x558d739de290-SpecificationExpr", - "Expr": "0x558d739f8fd0-Expr" + "id": "0x55dbc10ec290-SpecificationExpr", + "Expr": "0x55dbc1106fd0-Expr" }, { - "id": "0x558d739f8fd0-Expr", + "id": "0x55dbc1106fd0-Expr", "variantKey": "Designator", - "Designator": "0x558d739cd030-Designator" + "Designator": "0x55dbc10db030-Designator" }, { - "id": "0x558d739cd030-Designator", + "id": "0x55dbc10db030-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739cd040-DataRef" + "DataRef": "0x55dbc10db040-DataRef" }, { - "id": "0x558d739cd040-DataRef", + "id": "0x55dbc10db040-DataRef", "variantKey": "Name", - "Name": "0x558d739cd040-Name" + "Name": "0x55dbc10db040-Name" }, { - "id": "0x558d739cd040-Name", + "id": "0x55dbc10db040-Name", "source": "nk" }, { - "id": "0x558d739ea2a0-ExplicitShapeSpec", - "upper_bound": "0x558d739ea2a0-SpecificationExpr" + "id": "0x55dbc10f82a0-ExplicitShapeSpec", + "upper_bound": "0x55dbc10f82a0-SpecificationExpr" }, { - "id": "0x558d739ea2a0-SpecificationExpr", - "Expr": "0x558d739f7650-Expr" + "id": "0x55dbc10f82a0-SpecificationExpr", + "Expr": "0x55dbc1105650-Expr" }, { - "id": "0x558d739f7650-Expr", + "id": "0x55dbc1105650-Expr", "variantKey": "Designator", - "Designator": "0x558d739f5200-Designator" + "Designator": "0x55dbc1103200-Designator" }, { - "id": "0x558d739f5200-Designator", + "id": "0x55dbc1103200-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739f5210-DataRef" + "DataRef": "0x55dbc1103210-DataRef" }, { - "id": "0x558d739f5210-DataRef", + "id": "0x55dbc1103210-DataRef", "variantKey": "Name", - "Name": "0x558d739f5210-Name" + "Name": "0x55dbc1103210-Name" }, { - "id": "0x558d739f5210-Name", + "id": "0x55dbc1103210-Name", "source": "ni" }, { - "id": "0x558d739f7740-EntityDecl", - "Name": "0x558d739f77f8-Name" + "id": "0x55dbc1105740-EntityDecl", + "Name": "0x55dbc11057f8-Name" }, { - "id": "0x558d739f77f8-Name", + "id": "0x55dbc11057f8-Name", "source": "a" }, { - "id": "0x558d739ea740-DeclarationConstruct", + "id": "0x55dbc10f8740-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558d739ea740-SpecificationConstruct" + "SpecificationConstruct": "0x55dbc10f8740-SpecificationConstruct" }, { - "id": "0x558d739ea740-SpecificationConstruct", + "id": "0x55dbc10f8740-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558d739ea740-Statement" + "Statement": "0x55dbc10f8740-Statement" }, { - "id": "0x558d739ea740-Statement", - "statement": "0x558d739f3ab0-TypeDeclarationStmt", + "id": "0x55dbc10f8740-Statement", + "statement": "0x55dbc1101ab0-TypeDeclarationStmt", "source": "double precision, dimension(nj, nk) :: b" }, { - "id": "0x558d739f3ab0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558d739f3ae0-DeclarationTypeSpec", + "id": "0x55dbc1101ab0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55dbc1101ae0-DeclarationTypeSpec", "AttrSpec": [ - "0x558d739da3a0-AttrSpec" + "0x55dbc10e83a0-AttrSpec" ], "EntityDecl": [ - "0x558d739f79f0-EntityDecl" + "0x55dbc11059f0-EntityDecl" ] }, { - "id": "0x558d739f3ae0-DeclarationTypeSpec", + "id": "0x55dbc1101ae0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558d739f3ae0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55dbc1101ae0-IntrinsicTypeSpec" }, { - "id": "0x558d739f3ae0-IntrinsicTypeSpec", + "id": "0x55dbc1101ae0-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x558d739f3ae0-DoublePrecision" + "DoublePrecision": "0x55dbc1101ae0-DoublePrecision" }, { - "id": "0x558d739f3ae0-DoublePrecision" + "id": "0x55dbc1101ae0-DoublePrecision" }, { - "id": "0x558d739da3a0-AttrSpec", + "id": "0x55dbc10e83a0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x558d739da3a0-ArraySpec" + "ArraySpec": "0x55dbc10e83a0-ArraySpec" }, { - "id": "0x558d739da3a0-ArraySpec", + "id": "0x55dbc10e83a0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x558d739f2630-ExplicitShapeSpec", - "0x558d7395b360-ExplicitShapeSpec" + "0x55dbc1100630-ExplicitShapeSpec", + "0x55dbc1069360-ExplicitShapeSpec" ] }, { - "id": "0x558d739f2630-ExplicitShapeSpec", - "upper_bound": "0x558d739f2630-SpecificationExpr" + "id": "0x55dbc1100630-ExplicitShapeSpec", + "upper_bound": "0x55dbc1100630-SpecificationExpr" }, { - "id": "0x558d739f2630-SpecificationExpr", - "Expr": "0x558d739f7820-Expr" + "id": "0x55dbc1100630-SpecificationExpr", + "Expr": "0x55dbc1105820-Expr" }, { - "id": "0x558d739f7820-Expr", + "id": "0x55dbc1105820-Expr", "variantKey": "Designator", - "Designator": "0x558d739f2560-Designator" + "Designator": "0x55dbc1100560-Designator" }, { - "id": "0x558d739f2560-Designator", + "id": "0x55dbc1100560-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739f2570-DataRef" + "DataRef": "0x55dbc1100570-DataRef" }, { - "id": "0x558d739f2570-DataRef", + "id": "0x55dbc1100570-DataRef", "variantKey": "Name", - "Name": "0x558d739f2570-Name" + "Name": "0x55dbc1100570-Name" }, { - "id": "0x558d739f2570-Name", + "id": "0x55dbc1100570-Name", "source": "nj" }, { - "id": "0x558d7395b360-ExplicitShapeSpec", - "upper_bound": "0x558d7395b360-SpecificationExpr" + "id": "0x55dbc1069360-ExplicitShapeSpec", + "upper_bound": "0x55dbc1069360-SpecificationExpr" }, { - "id": "0x558d7395b360-SpecificationExpr", - "Expr": "0x558d739f7900-Expr" + "id": "0x55dbc1069360-SpecificationExpr", + "Expr": "0x55dbc1105900-Expr" }, { - "id": "0x558d739f7900-Expr", + "id": "0x55dbc1105900-Expr", "variantKey": "Designator", - "Designator": "0x558d739f4f00-Designator" + "Designator": "0x55dbc1102f00-Designator" }, { - "id": "0x558d739f4f00-Designator", + "id": "0x55dbc1102f00-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739f4f10-DataRef" + "DataRef": "0x55dbc1102f10-DataRef" }, { - "id": "0x558d739f4f10-DataRef", + "id": "0x55dbc1102f10-DataRef", "variantKey": "Name", - "Name": "0x558d739f4f10-Name" + "Name": "0x55dbc1102f10-Name" }, { - "id": "0x558d739f4f10-Name", + "id": "0x55dbc1102f10-Name", "source": "nk" }, { - "id": "0x558d739f79f0-EntityDecl", - "Name": "0x558d739f7aa8-Name" + "id": "0x55dbc11059f0-EntityDecl", + "Name": "0x55dbc1105aa8-Name" }, { - "id": "0x558d739f7aa8-Name", + "id": "0x55dbc1105aa8-Name", "source": "b" }, { - "id": "0x558d739f7df0-DeclarationConstruct", + "id": "0x55dbc1105df0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558d739f7df0-SpecificationConstruct" + "SpecificationConstruct": "0x55dbc1105df0-SpecificationConstruct" }, { - "id": "0x558d739f7df0-SpecificationConstruct", + "id": "0x55dbc1105df0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558d739f7df0-Statement" + "Statement": "0x55dbc1105df0-Statement" }, { - "id": "0x558d739f7df0-Statement", - "statement": "0x558d739ee2b0-TypeDeclarationStmt", + "id": "0x55dbc1105df0-Statement", + "statement": "0x55dbc10fc2b0-TypeDeclarationStmt", "source": "double precision, dimension(nm, nj) :: c" }, { - "id": "0x558d739ee2b0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558d739ee2e0-DeclarationTypeSpec", + "id": "0x55dbc10fc2b0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55dbc10fc2e0-DeclarationTypeSpec", "AttrSpec": [ - "0x558d739dbef0-AttrSpec" + "0x55dbc10e9ef0-AttrSpec" ], "EntityDecl": [ - "0x558d739f7d00-EntityDecl" + "0x55dbc1105d00-EntityDecl" ] }, { - "id": "0x558d739ee2e0-DeclarationTypeSpec", + "id": "0x55dbc10fc2e0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558d739ee2e0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55dbc10fc2e0-IntrinsicTypeSpec" }, { - "id": "0x558d739ee2e0-IntrinsicTypeSpec", + "id": "0x55dbc10fc2e0-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x558d739ee2e0-DoublePrecision" + "DoublePrecision": "0x55dbc10fc2e0-DoublePrecision" }, { - "id": "0x558d739ee2e0-DoublePrecision" + "id": "0x55dbc10fc2e0-DoublePrecision" }, { - "id": "0x558d739dbef0-AttrSpec", + "id": "0x55dbc10e9ef0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x558d739dbef0-ArraySpec" + "ArraySpec": "0x55dbc10e9ef0-ArraySpec" }, { - "id": "0x558d739dbef0-ArraySpec", + "id": "0x55dbc10e9ef0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x558d739f18b0-ExplicitShapeSpec", - "0x558d739ef6e0-ExplicitShapeSpec" + "0x55dbc10ff8b0-ExplicitShapeSpec", + "0x55dbc10fd6e0-ExplicitShapeSpec" ] }, { - "id": "0x558d739f18b0-ExplicitShapeSpec", - "upper_bound": "0x558d739f18b0-SpecificationExpr" + "id": "0x55dbc10ff8b0-ExplicitShapeSpec", + "upper_bound": "0x55dbc10ff8b0-SpecificationExpr" }, { - "id": "0x558d739f18b0-SpecificationExpr", - "Expr": "0x558d739f7ad0-Expr" + "id": "0x55dbc10ff8b0-SpecificationExpr", + "Expr": "0x55dbc1105ad0-Expr" }, { - "id": "0x558d739f7ad0-Expr", + "id": "0x55dbc1105ad0-Expr", "variantKey": "Designator", - "Designator": "0x558d739f25c0-Designator" + "Designator": "0x55dbc11005c0-Designator" }, { - "id": "0x558d739f25c0-Designator", + "id": "0x55dbc11005c0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739f25d0-DataRef" + "DataRef": "0x55dbc11005d0-DataRef" }, { - "id": "0x558d739f25d0-DataRef", + "id": "0x55dbc11005d0-DataRef", "variantKey": "Name", - "Name": "0x558d739f25d0-Name" + "Name": "0x55dbc11005d0-Name" }, { - "id": "0x558d739f25d0-Name", + "id": "0x55dbc11005d0-Name", "source": "nm" }, { - "id": "0x558d739ef6e0-ExplicitShapeSpec", - "upper_bound": "0x558d739ef6e0-SpecificationExpr" + "id": "0x55dbc10fd6e0-ExplicitShapeSpec", + "upper_bound": "0x55dbc10fd6e0-SpecificationExpr" }, { - "id": "0x558d739ef6e0-SpecificationExpr", - "Expr": "0x558d739f7c10-Expr" + "id": "0x55dbc10fd6e0-SpecificationExpr", + "Expr": "0x55dbc1105c10-Expr" }, { - "id": "0x558d739f7c10-Expr", + "id": "0x55dbc1105c10-Expr", "variantKey": "Designator", - "Designator": "0x558d739f7bb0-Designator" + "Designator": "0x55dbc1105bb0-Designator" }, { - "id": "0x558d739f7bb0-Designator", + "id": "0x55dbc1105bb0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739f7bc0-DataRef" + "DataRef": "0x55dbc1105bc0-DataRef" }, { - "id": "0x558d739f7bc0-DataRef", + "id": "0x55dbc1105bc0-DataRef", "variantKey": "Name", - "Name": "0x558d739f7bc0-Name" + "Name": "0x55dbc1105bc0-Name" }, { - "id": "0x558d739f7bc0-Name", + "id": "0x55dbc1105bc0-Name", "source": "nj" }, { - "id": "0x558d739f7d00-EntityDecl", - "Name": "0x558d739f7db8-Name" + "id": "0x55dbc1105d00-EntityDecl", + "Name": "0x55dbc1105db8-Name" }, { - "id": "0x558d739f7db8-Name", + "id": "0x55dbc1105db8-Name", "source": "c" }, { - "id": "0x558d739f8220-DeclarationConstruct", + "id": "0x55dbc1106220-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558d739f8220-SpecificationConstruct" + "SpecificationConstruct": "0x55dbc1106220-SpecificationConstruct" }, { - "id": "0x558d739f8220-SpecificationConstruct", + "id": "0x55dbc1106220-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558d739f8220-Statement" + "Statement": "0x55dbc1106220-Statement" }, { - "id": "0x558d739f8220-Statement", - "statement": "0x558d739f3c40-TypeDeclarationStmt", + "id": "0x55dbc1106220-Statement", + "statement": "0x55dbc1101c40-TypeDeclarationStmt", "source": "double precision, dimension(nl, nm) :: d" }, { - "id": "0x558d739f3c40-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558d739f3c70-DeclarationTypeSpec", + "id": "0x55dbc1101c40-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55dbc1101c70-DeclarationTypeSpec", "AttrSpec": [ - "0x558d739ef9f0-AttrSpec" + "0x55dbc10fd9f0-AttrSpec" ], "EntityDecl": [ - "0x558d739f8130-EntityDecl" + "0x55dbc1106130-EntityDecl" ] }, { - "id": "0x558d739f3c70-DeclarationTypeSpec", + "id": "0x55dbc1101c70-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558d739f3c70-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55dbc1101c70-IntrinsicTypeSpec" }, { - "id": "0x558d739f3c70-IntrinsicTypeSpec", + "id": "0x55dbc1101c70-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x558d739f3c70-DoublePrecision" + "DoublePrecision": "0x55dbc1101c70-DoublePrecision" }, { - "id": "0x558d739f3c70-DoublePrecision" + "id": "0x55dbc1101c70-DoublePrecision" }, { - "id": "0x558d739ef9f0-AttrSpec", + "id": "0x55dbc10fd9f0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x558d739ef9f0-ArraySpec" + "ArraySpec": "0x55dbc10fd9f0-ArraySpec" }, { - "id": "0x558d739ef9f0-ArraySpec", + "id": "0x55dbc10fd9f0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x558d739f8100-ExplicitShapeSpec", - "0x558d739f80d0-ExplicitShapeSpec" + "0x55dbc1106100-ExplicitShapeSpec", + "0x55dbc11060d0-ExplicitShapeSpec" ] }, { - "id": "0x558d739f8100-ExplicitShapeSpec", - "upper_bound": "0x558d739f8100-SpecificationExpr" + "id": "0x55dbc1106100-ExplicitShapeSpec", + "upper_bound": "0x55dbc1106100-SpecificationExpr" }, { - "id": "0x558d739f8100-SpecificationExpr", - "Expr": "0x558d739f7e40-Expr" + "id": "0x55dbc1106100-SpecificationExpr", + "Expr": "0x55dbc1105e40-Expr" }, { - "id": "0x558d739f7e40-Expr", + "id": "0x55dbc1105e40-Expr", "variantKey": "Designator", - "Designator": "0x558d739f10c0-Designator" + "Designator": "0x55dbc10ff0c0-Designator" }, { - "id": "0x558d739f10c0-Designator", + "id": "0x55dbc10ff0c0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739f10d0-DataRef" + "DataRef": "0x55dbc10ff0d0-DataRef" }, { - "id": "0x558d739f10d0-DataRef", + "id": "0x55dbc10ff0d0-DataRef", "variantKey": "Name", - "Name": "0x558d739f10d0-Name" + "Name": "0x55dbc10ff0d0-Name" }, { - "id": "0x558d739f10d0-Name", + "id": "0x55dbc10ff0d0-Name", "source": "nl" }, { - "id": "0x558d739f80d0-ExplicitShapeSpec", - "upper_bound": "0x558d739f80d0-SpecificationExpr" + "id": "0x55dbc11060d0-ExplicitShapeSpec", + "upper_bound": "0x55dbc11060d0-SpecificationExpr" }, { - "id": "0x558d739f80d0-SpecificationExpr", - "Expr": "0x558d739f7fe0-Expr" + "id": "0x55dbc11060d0-SpecificationExpr", + "Expr": "0x55dbc1105fe0-Expr" }, { - "id": "0x558d739f7fe0-Expr", + "id": "0x55dbc1105fe0-Expr", "variantKey": "Designator", - "Designator": "0x558d739f7f80-Designator" + "Designator": "0x55dbc1105f80-Designator" }, { - "id": "0x558d739f7f80-Designator", + "id": "0x55dbc1105f80-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739f7f90-DataRef" + "DataRef": "0x55dbc1105f90-DataRef" }, { - "id": "0x558d739f7f90-DataRef", + "id": "0x55dbc1105f90-DataRef", "variantKey": "Name", - "Name": "0x558d739f7f90-Name" + "Name": "0x55dbc1105f90-Name" }, { - "id": "0x558d739f7f90-Name", + "id": "0x55dbc1105f90-Name", "source": "nm" }, { - "id": "0x558d739f8130-EntityDecl", - "Name": "0x558d739f81e8-Name" + "id": "0x55dbc1106130-EntityDecl", + "Name": "0x55dbc11061e8-Name" }, { - "id": "0x558d739f81e8-Name", + "id": "0x55dbc11061e8-Name", "source": "d" }, { - "id": "0x558d739f8650-DeclarationConstruct", + "id": "0x55dbc1106650-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558d739f8650-SpecificationConstruct" + "SpecificationConstruct": "0x55dbc1106650-SpecificationConstruct" }, { - "id": "0x558d739f8650-SpecificationConstruct", + "id": "0x55dbc1106650-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558d739f8650-Statement" + "Statement": "0x55dbc1106650-Statement" }, { - "id": "0x558d739f8650-Statement", - "statement": "0x558d739ef350-TypeDeclarationStmt", + "id": "0x55dbc1106650-Statement", + "statement": "0x55dbc10fd350-TypeDeclarationStmt", "source": "double precision, dimension(nj, ni) :: e" }, { - "id": "0x558d739ef350-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558d739ef380-DeclarationTypeSpec", + "id": "0x55dbc10fd350-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55dbc10fd380-DeclarationTypeSpec", "AttrSpec": [ - "0x558d739da780-AttrSpec" + "0x55dbc10e8780-AttrSpec" ], "EntityDecl": [ - "0x558d739f8560-EntityDecl" + "0x55dbc1106560-EntityDecl" ] }, { - "id": "0x558d739ef380-DeclarationTypeSpec", + "id": "0x55dbc10fd380-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558d739ef380-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55dbc10fd380-IntrinsicTypeSpec" }, { - "id": "0x558d739ef380-IntrinsicTypeSpec", + "id": "0x55dbc10fd380-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x558d739ef380-DoublePrecision" + "DoublePrecision": "0x55dbc10fd380-DoublePrecision" }, { - "id": "0x558d739ef380-DoublePrecision" + "id": "0x55dbc10fd380-DoublePrecision" }, { - "id": "0x558d739da780-AttrSpec", + "id": "0x55dbc10e8780-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x558d739da780-ArraySpec" + "ArraySpec": "0x55dbc10e8780-ArraySpec" }, { - "id": "0x558d739da780-ArraySpec", + "id": "0x55dbc10e8780-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x558d739f8530-ExplicitShapeSpec", - "0x558d739f8500-ExplicitShapeSpec" + "0x55dbc1106530-ExplicitShapeSpec", + "0x55dbc1106500-ExplicitShapeSpec" ] }, { - "id": "0x558d739f8530-ExplicitShapeSpec", - "upper_bound": "0x558d739f8530-SpecificationExpr" + "id": "0x55dbc1106530-ExplicitShapeSpec", + "upper_bound": "0x55dbc1106530-SpecificationExpr" }, { - "id": "0x558d739f8530-SpecificationExpr", - "Expr": "0x558d739f8270-Expr" + "id": "0x55dbc1106530-SpecificationExpr", + "Expr": "0x55dbc1106270-Expr" }, { - "id": "0x558d739f8270-Expr", + "id": "0x55dbc1106270-Expr", "variantKey": "Designator", - "Designator": "0x558d739e3b30-Designator" + "Designator": "0x55dbc10f1b30-Designator" }, { - "id": "0x558d739e3b30-Designator", + "id": "0x55dbc10f1b30-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739e3b40-DataRef" + "DataRef": "0x55dbc10f1b40-DataRef" }, { - "id": "0x558d739e3b40-DataRef", + "id": "0x55dbc10f1b40-DataRef", "variantKey": "Name", - "Name": "0x558d739e3b40-Name" + "Name": "0x55dbc10f1b40-Name" }, { - "id": "0x558d739e3b40-Name", + "id": "0x55dbc10f1b40-Name", "source": "nj" }, { - "id": "0x558d739f8500-ExplicitShapeSpec", - "upper_bound": "0x558d739f8500-SpecificationExpr" + "id": "0x55dbc1106500-ExplicitShapeSpec", + "upper_bound": "0x55dbc1106500-SpecificationExpr" }, { - "id": "0x558d739f8500-SpecificationExpr", - "Expr": "0x558d739f8410-Expr" + "id": "0x55dbc1106500-SpecificationExpr", + "Expr": "0x55dbc1106410-Expr" }, { - "id": "0x558d739f8410-Expr", + "id": "0x55dbc1106410-Expr", "variantKey": "Designator", - "Designator": "0x558d739f83b0-Designator" + "Designator": "0x55dbc11063b0-Designator" }, { - "id": "0x558d739f83b0-Designator", + "id": "0x55dbc11063b0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739f83c0-DataRef" + "DataRef": "0x55dbc11063c0-DataRef" }, { - "id": "0x558d739f83c0-DataRef", + "id": "0x55dbc11063c0-DataRef", "variantKey": "Name", - "Name": "0x558d739f83c0-Name" + "Name": "0x55dbc11063c0-Name" }, { - "id": "0x558d739f83c0-Name", + "id": "0x55dbc11063c0-Name", "source": "ni" }, { - "id": "0x558d739f8560-EntityDecl", - "Name": "0x558d739f8618-Name" + "id": "0x55dbc1106560-EntityDecl", + "Name": "0x55dbc1106618-Name" }, { - "id": "0x558d739f8618-Name", + "id": "0x55dbc1106618-Name", "source": "e" }, { - "id": "0x558d739f8a80-DeclarationConstruct", + "id": "0x55dbc1106a80-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558d739f8a80-SpecificationConstruct" + "SpecificationConstruct": "0x55dbc1106a80-SpecificationConstruct" }, { - "id": "0x558d739f8a80-SpecificationConstruct", + "id": "0x55dbc1106a80-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558d739f8a80-Statement" + "Statement": "0x55dbc1106a80-Statement" }, { - "id": "0x558d739f8a80-Statement", - "statement": "0x558d739f3e60-TypeDeclarationStmt", + "id": "0x55dbc1106a80-Statement", + "statement": "0x55dbc1101e60-TypeDeclarationStmt", "source": "double precision, dimension(nl, nj) :: f" }, { - "id": "0x558d739f3e60-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558d739f3e90-DeclarationTypeSpec", + "id": "0x55dbc1101e60-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55dbc1101e90-DeclarationTypeSpec", "AttrSpec": [ - "0x558d739e37f0-AttrSpec" + "0x55dbc10f17f0-AttrSpec" ], "EntityDecl": [ - "0x558d739f8990-EntityDecl" + "0x55dbc1106990-EntityDecl" ] }, { - "id": "0x558d739f3e90-DeclarationTypeSpec", + "id": "0x55dbc1101e90-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558d739f3e90-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55dbc1101e90-IntrinsicTypeSpec" }, { - "id": "0x558d739f3e90-IntrinsicTypeSpec", + "id": "0x55dbc1101e90-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x558d739f3e90-DoublePrecision" + "DoublePrecision": "0x55dbc1101e90-DoublePrecision" }, { - "id": "0x558d739f3e90-DoublePrecision" + "id": "0x55dbc1101e90-DoublePrecision" }, { - "id": "0x558d739e37f0-AttrSpec", + "id": "0x55dbc10f17f0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x558d739e37f0-ArraySpec" + "ArraySpec": "0x55dbc10f17f0-ArraySpec" }, { - "id": "0x558d739e37f0-ArraySpec", + "id": "0x55dbc10f17f0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x558d739f8960-ExplicitShapeSpec", - "0x558d739f8930-ExplicitShapeSpec" + "0x55dbc1106960-ExplicitShapeSpec", + "0x55dbc1106930-ExplicitShapeSpec" ] }, { - "id": "0x558d739f8960-ExplicitShapeSpec", - "upper_bound": "0x558d739f8960-SpecificationExpr" + "id": "0x55dbc1106960-ExplicitShapeSpec", + "upper_bound": "0x55dbc1106960-SpecificationExpr" }, { - "id": "0x558d739f8960-SpecificationExpr", - "Expr": "0x558d739f86a0-Expr" + "id": "0x55dbc1106960-SpecificationExpr", + "Expr": "0x55dbc11066a0-Expr" }, { - "id": "0x558d739f86a0-Expr", + "id": "0x55dbc11066a0-Expr", "variantKey": "Designator", - "Designator": "0x558d739f7f20-Designator" + "Designator": "0x55dbc1105f20-Designator" }, { - "id": "0x558d739f7f20-Designator", + "id": "0x55dbc1105f20-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739f7f30-DataRef" + "DataRef": "0x55dbc1105f30-DataRef" }, { - "id": "0x558d739f7f30-DataRef", + "id": "0x55dbc1105f30-DataRef", "variantKey": "Name", - "Name": "0x558d739f7f30-Name" + "Name": "0x55dbc1105f30-Name" }, { - "id": "0x558d739f7f30-Name", + "id": "0x55dbc1105f30-Name", "source": "nl" }, { - "id": "0x558d739f8930-ExplicitShapeSpec", - "upper_bound": "0x558d739f8930-SpecificationExpr" + "id": "0x55dbc1106930-ExplicitShapeSpec", + "upper_bound": "0x55dbc1106930-SpecificationExpr" }, { - "id": "0x558d739f8930-SpecificationExpr", - "Expr": "0x558d739f8840-Expr" + "id": "0x55dbc1106930-SpecificationExpr", + "Expr": "0x55dbc1106840-Expr" }, { - "id": "0x558d739f8840-Expr", + "id": "0x55dbc1106840-Expr", "variantKey": "Designator", - "Designator": "0x558d739f87e0-Designator" + "Designator": "0x55dbc11067e0-Designator" }, { - "id": "0x558d739f87e0-Designator", + "id": "0x55dbc11067e0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739f87f0-DataRef" + "DataRef": "0x55dbc11067f0-DataRef" }, { - "id": "0x558d739f87f0-DataRef", + "id": "0x55dbc11067f0-DataRef", "variantKey": "Name", - "Name": "0x558d739f87f0-Name" + "Name": "0x55dbc11067f0-Name" }, { - "id": "0x558d739f87f0-Name", + "id": "0x55dbc11067f0-Name", "source": "nj" }, { - "id": "0x558d739f8990-EntityDecl", - "Name": "0x558d739f8a48-Name" + "id": "0x55dbc1106990-EntityDecl", + "Name": "0x55dbc1106a48-Name" }, { - "id": "0x558d739f8a48-Name", + "id": "0x55dbc1106a48-Name", "source": "f" }, { - "id": "0x558d739f91e0-DeclarationConstruct", + "id": "0x55dbc11071e0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558d739f91e0-SpecificationConstruct" + "SpecificationConstruct": "0x55dbc11071e0-SpecificationConstruct" }, { - "id": "0x558d739f91e0-SpecificationConstruct", + "id": "0x55dbc11071e0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558d739f91e0-Statement" + "Statement": "0x55dbc11071e0-Statement" }, { - "id": "0x558d739f91e0-Statement", - "statement": "0x558d739f3f70-TypeDeclarationStmt", + "id": "0x55dbc11071e0-Statement", + "statement": "0x55dbc1101f70-TypeDeclarationStmt", "source": "double precision, dimension(nl, ni) :: g" }, { - "id": "0x558d739f3f70-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558d739f3fa0-DeclarationTypeSpec", + "id": "0x55dbc1101f70-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55dbc1101fa0-DeclarationTypeSpec", "AttrSpec": [ - "0x558d739d8710-AttrSpec" + "0x55dbc10e6710-AttrSpec" ], "EntityDecl": [ - "0x558d739f94e0-EntityDecl" + "0x55dbc11074e0-EntityDecl" ] }, { - "id": "0x558d739f3fa0-DeclarationTypeSpec", + "id": "0x55dbc1101fa0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558d739f3fa0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55dbc1101fa0-IntrinsicTypeSpec" }, { - "id": "0x558d739f3fa0-IntrinsicTypeSpec", + "id": "0x55dbc1101fa0-IntrinsicTypeSpec", "variantKey": "DoublePrecision", - "DoublePrecision": "0x558d739f3fa0-DoublePrecision" + "DoublePrecision": "0x55dbc1101fa0-DoublePrecision" }, { - "id": "0x558d739f3fa0-DoublePrecision" + "id": "0x55dbc1101fa0-DoublePrecision" }, { - "id": "0x558d739d8710-AttrSpec", + "id": "0x55dbc10e6710-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x558d739d8710-ArraySpec" + "ArraySpec": "0x55dbc10e6710-ArraySpec" }, { - "id": "0x558d739d8710-ArraySpec", + "id": "0x55dbc10e6710-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x558d739f8dd0-ExplicitShapeSpec", - "0x558d739f8c20-ExplicitShapeSpec" + "0x55dbc1106dd0-ExplicitShapeSpec", + "0x55dbc1106c20-ExplicitShapeSpec" ] }, { - "id": "0x558d739f8dd0-ExplicitShapeSpec", - "upper_bound": "0x558d739f8dd0-SpecificationExpr" + "id": "0x55dbc1106dd0-ExplicitShapeSpec", + "upper_bound": "0x55dbc1106dd0-SpecificationExpr" }, { - "id": "0x558d739f8dd0-SpecificationExpr", - "Expr": "0x558d739f8ad0-Expr" + "id": "0x55dbc1106dd0-SpecificationExpr", + "Expr": "0x55dbc1106ad0-Expr" }, { - "id": "0x558d739f8ad0-Expr", + "id": "0x55dbc1106ad0-Expr", "variantKey": "Designator", - "Designator": "0x558d739f8350-Designator" + "Designator": "0x55dbc1106350-Designator" }, { - "id": "0x558d739f8350-Designator", + "id": "0x55dbc1106350-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739f8360-DataRef" + "DataRef": "0x55dbc1106360-DataRef" }, { - "id": "0x558d739f8360-DataRef", + "id": "0x55dbc1106360-DataRef", "variantKey": "Name", - "Name": "0x558d739f8360-Name" + "Name": "0x55dbc1106360-Name" }, { - "id": "0x558d739f8360-Name", + "id": "0x55dbc1106360-Name", "source": "nl" }, { - "id": "0x558d739f8c20-ExplicitShapeSpec", - "upper_bound": "0x558d739f8c20-SpecificationExpr" + "id": "0x55dbc1106c20-ExplicitShapeSpec", + "upper_bound": "0x55dbc1106c20-SpecificationExpr" }, { - "id": "0x558d739f8c20-SpecificationExpr", - "Expr": "0x558d739f93f0-Expr" + "id": "0x55dbc1106c20-SpecificationExpr", + "Expr": "0x55dbc11073f0-Expr" }, { - "id": "0x558d739f93f0-Expr", + "id": "0x55dbc11073f0-Expr", "variantKey": "Designator", - "Designator": "0x558d739f8d60-Designator" + "Designator": "0x55dbc1106d60-Designator" }, { - "id": "0x558d739f8d60-Designator", + "id": "0x55dbc1106d60-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739f8d70-DataRef" + "DataRef": "0x55dbc1106d70-DataRef" }, { - "id": "0x558d739f8d70-DataRef", + "id": "0x55dbc1106d70-DataRef", "variantKey": "Name", - "Name": "0x558d739f8d70-Name" + "Name": "0x55dbc1106d70-Name" }, { - "id": "0x558d739f8d70-Name", + "id": "0x55dbc1106d70-Name", "source": "ni" }, { - "id": "0x558d739f94e0-EntityDecl", - "Name": "0x558d739f9598-Name" + "id": "0x55dbc11074e0-EntityDecl", + "Name": "0x55dbc1107598-Name" }, { - "id": "0x558d739f9598-Name", + "id": "0x55dbc1107598-Name", "source": "g" }, { - "id": "0x558d739eda60-DeclarationConstruct", + "id": "0x55dbc10fba60-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558d739eda60-SpecificationConstruct" + "SpecificationConstruct": "0x55dbc10fba60-SpecificationConstruct" }, { - "id": "0x558d739eda60-SpecificationConstruct", + "id": "0x55dbc10fba60-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558d739eda60-Statement" + "Statement": "0x55dbc10fba60-Statement" }, { - "id": "0x558d739eda60-Statement", - "statement": "0x558d739d7e90-TypeDeclarationStmt", + "id": "0x55dbc10fba60-Statement", + "statement": "0x55dbc10e5e90-TypeDeclarationStmt", "source": "integer :: ni, nj, nk, nl, nm" }, { - "id": "0x558d739d7e90-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558d739d7ec0-DeclarationTypeSpec", + "id": "0x55dbc10e5e90-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55dbc10e5ec0-DeclarationTypeSpec", "EntityDecl": [ - "0x558d739f9990-EntityDecl", - "0x558d739f95d0-EntityDecl", - "0x558d739f96c0-EntityDecl", - "0x558d739f97b0-EntityDecl", - "0x558d739f98a0-EntityDecl" + "0x55dbc1107990-EntityDecl", + "0x55dbc11075d0-EntityDecl", + "0x55dbc11076c0-EntityDecl", + "0x55dbc11077b0-EntityDecl", + "0x55dbc11078a0-EntityDecl" ] }, { - "id": "0x558d739d7ec0-DeclarationTypeSpec", + "id": "0x55dbc10e5ec0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558d739d7ec0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55dbc10e5ec0-IntrinsicTypeSpec" }, { - "id": "0x558d739d7ec0-IntrinsicTypeSpec", + "id": "0x55dbc10e5ec0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x558d739d7ec0-IntegerTypeSpec" + "IntegerTypeSpec": "0x55dbc10e5ec0-IntegerTypeSpec" }, { - "id": "0x558d739d7ec0-IntegerTypeSpec" + "id": "0x55dbc10e5ec0-IntegerTypeSpec" }, { - "id": "0x558d739f9990-EntityDecl", - "Name": "0x558d739f9a48-Name" + "id": "0x55dbc1107990-EntityDecl", + "Name": "0x55dbc1107a48-Name" }, { - "id": "0x558d739f9a48-Name", + "id": "0x55dbc1107a48-Name", "source": "ni" }, { - "id": "0x558d739f95d0-EntityDecl", - "Name": "0x558d739f9688-Name" + "id": "0x55dbc11075d0-EntityDecl", + "Name": "0x55dbc1107688-Name" }, { - "id": "0x558d739f9688-Name", + "id": "0x55dbc1107688-Name", "source": "nj" }, { - "id": "0x558d739f96c0-EntityDecl", - "Name": "0x558d739f9778-Name" + "id": "0x55dbc11076c0-EntityDecl", + "Name": "0x55dbc1107778-Name" }, { - "id": "0x558d739f9778-Name", + "id": "0x55dbc1107778-Name", "source": "nk" }, { - "id": "0x558d739f97b0-EntityDecl", - "Name": "0x558d739f9868-Name" + "id": "0x55dbc11077b0-EntityDecl", + "Name": "0x55dbc1107868-Name" }, { - "id": "0x558d739f9868-Name", + "id": "0x55dbc1107868-Name", "source": "nl" }, { - "id": "0x558d739f98a0-EntityDecl", - "Name": "0x558d739f9958-Name" + "id": "0x55dbc11078a0-EntityDecl", + "Name": "0x55dbc1107958-Name" }, { - "id": "0x558d739f9958-Name", + "id": "0x55dbc1107958-Name", "source": "nm" }, { - "id": "0x558d739f5380-DeclarationConstruct", + "id": "0x55dbc1103380-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558d739f5380-SpecificationConstruct" + "SpecificationConstruct": "0x55dbc1103380-SpecificationConstruct" }, { - "id": "0x558d739f5380-SpecificationConstruct", + "id": "0x55dbc1103380-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558d739f5380-Statement" + "Statement": "0x55dbc1103380-Statement" }, { - "id": "0x558d739f5380-Statement", - "statement": "0x558d739f2870-TypeDeclarationStmt", + "id": "0x55dbc1103380-Statement", + "statement": "0x55dbc1100870-TypeDeclarationStmt", "source": "integer :: i, j, k" }, { - "id": "0x558d739f2870-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558d739f28a0-DeclarationTypeSpec", + "id": "0x55dbc1100870-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55dbc11008a0-DeclarationTypeSpec", "EntityDecl": [ - "0x558d739f9c60-EntityDecl", - "0x558d739f9a80-EntityDecl", - "0x558d739f9b70-EntityDecl" + "0x55dbc1107c60-EntityDecl", + "0x55dbc1107a80-EntityDecl", + "0x55dbc1107b70-EntityDecl" ] }, { - "id": "0x558d739f28a0-DeclarationTypeSpec", + "id": "0x55dbc11008a0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558d739f28a0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55dbc11008a0-IntrinsicTypeSpec" }, { - "id": "0x558d739f28a0-IntrinsicTypeSpec", + "id": "0x55dbc11008a0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x558d739f28a0-IntegerTypeSpec" + "IntegerTypeSpec": "0x55dbc11008a0-IntegerTypeSpec" }, { - "id": "0x558d739f28a0-IntegerTypeSpec" + "id": "0x55dbc11008a0-IntegerTypeSpec" }, { - "id": "0x558d739f9c60-EntityDecl", - "Name": "0x558d739f9d18-Name" + "id": "0x55dbc1107c60-EntityDecl", + "Name": "0x55dbc1107d18-Name" }, { - "id": "0x558d739f9d18-Name", + "id": "0x55dbc1107d18-Name", "source": "i" }, { - "id": "0x558d739f9a80-EntityDecl", - "Name": "0x558d739f9b38-Name" + "id": "0x55dbc1107a80-EntityDecl", + "Name": "0x55dbc1107b38-Name" }, { - "id": "0x558d739f9b38-Name", + "id": "0x55dbc1107b38-Name", "source": "j" }, { - "id": "0x558d739f9b70-EntityDecl", - "Name": "0x558d739f9c28-Name" + "id": "0x55dbc1107b70-EntityDecl", + "Name": "0x55dbc1107c28-Name" }, { - "id": "0x558d739f9c28-Name", + "id": "0x55dbc1107c28-Name", "source": "k" }, { - "id": "0x558d73a016a8-ExecutionPart", + "id": "0x55dbc110f6a8-ExecutionPart", "ExecutionPartConstruct": [ - "0x558d739fbd60-ExecutionPartConstruct", - "0x558d739fe5c0-ExecutionPartConstruct", - "0x558d73a00c80-ExecutionPartConstruct" + "0x55dbc1109d60-ExecutionPartConstruct", + "0x55dbc110c5c0-ExecutionPartConstruct", + "0x55dbc110ec80-ExecutionPartConstruct" ] }, { - "id": "0x558d73a016a8-ExecutionPartConstruct" + "id": "0x55dbc110f6a8-ExecutionPartConstruct" }, { - "id": "0x558d739fbd60-ExecutionPartConstruct", + "id": "0x55dbc1109d60-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739fbd60-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc1109d60-ExecutableConstruct" }, { - "id": "0x558d739fbd60-ExecutableConstruct", + "id": "0x55dbc1109d60-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x558d739fc900-DoConstruct" + "DoConstruct": "0x55dbc110a900-DoConstruct" }, { - "id": "0x558d739fc900-DoConstruct", - "Statement": "0x558d739fc958-Statement", + "id": "0x55dbc110a900-DoConstruct", + "Statement": "0x55dbc110a958-Statement", "ExecutionPartConstruct": [ - "0x558d739fbbc0-ExecutionPartConstruct" + "0x55dbc1109bc0-ExecutionPartConstruct" ], - "Statement": "0x558d739fc900-Statement" + "Statement": "0x55dbc110a900-Statement" }, { - "id": "0x558d739fc958-Statement", - "statement": "0x558d739fc968-NonLabelDoStmt", + "id": "0x55dbc110a958-Statement", + "statement": "0x55dbc110a968-NonLabelDoStmt", "source": "do i = 1, ni" }, { - "id": "0x558d739fc968-NonLabelDoStmt", - "LoopControl": "0x558d739fc968-LoopControl" + "id": "0x55dbc110a968-NonLabelDoStmt", + "LoopControl": "0x55dbc110a968-LoopControl" }, { - "id": "0x558d739fc968-LoopControl", + "id": "0x55dbc110a968-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x558d739fc968-LoopBounds" + "LoopBounds": "0x55dbc110a968-LoopBounds" }, { - "id": "0x558d739fc968-LoopBounds", - "var": "0x558d739fc968-Name", - "lower": "0x558d739f9d40-Expr", - "upper": "0x558d739f9e20-Expr" + "id": "0x55dbc110a968-LoopBounds", + "var": "0x55dbc110a968-Name", + "lower": "0x55dbc1107d40-Expr", + "upper": "0x55dbc1107e20-Expr" }, { - "id": "0x558d739fc968-Name", + "id": "0x55dbc110a968-Name", "source": "i" }, { - "id": "0x558d739f9d40-Expr", + "id": "0x55dbc1107d40-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739f9d60-LiteralConstant" + "LiteralConstant": "0x55dbc1107d60-LiteralConstant" }, { - "id": "0x558d739f9d60-LiteralConstant", + "id": "0x55dbc1107d60-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739f9d60-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc1107d60-IntLiteralConstant" }, { - "id": "0x558d739f9d60-IntLiteralConstant", + "id": "0x55dbc1107d60-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x558d739f9e20-Expr", + "id": "0x55dbc1107e20-Expr", "variantKey": "Designator", - "Designator": "0x558d739f3cc0-Designator" + "Designator": "0x55dbc1101cc0-Designator" }, { - "id": "0x558d739f3cc0-Designator", + "id": "0x55dbc1101cc0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739f3cd0-DataRef" + "DataRef": "0x55dbc1101cd0-DataRef" }, { - "id": "0x558d739f3cd0-DataRef", + "id": "0x55dbc1101cd0-DataRef", "variantKey": "Name", - "Name": "0x558d739f3cd0-Name" + "Name": "0x55dbc1101cd0-Name" }, { - "id": "0x558d739f3cd0-Name", + "id": "0x55dbc1101cd0-Name", "source": "ni" }, { - "id": "0x558d739fc940-ExecutionPartConstruct" + "id": "0x55dbc110a940-ExecutionPartConstruct" }, { - "id": "0x558d739fbbc0-ExecutionPartConstruct", + "id": "0x55dbc1109bc0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739fbbc0-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc1109bc0-ExecutableConstruct" }, { - "id": "0x558d739fbbc0-ExecutableConstruct", + "id": "0x55dbc1109bc0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x558d739fc7e0-DoConstruct" + "DoConstruct": "0x55dbc110a7e0-DoConstruct" }, { - "id": "0x558d739fc7e0-DoConstruct", - "Statement": "0x558d739fc838-Statement", + "id": "0x55dbc110a7e0-DoConstruct", + "Statement": "0x55dbc110a838-Statement", "ExecutionPartConstruct": [ - "0x558d739fa680-ExecutionPartConstruct", - "0x558d739fbb60-ExecutionPartConstruct" + "0x55dbc1108680-ExecutionPartConstruct", + "0x55dbc1109b60-ExecutionPartConstruct" ], - "Statement": "0x558d739fc7e0-Statement" + "Statement": "0x55dbc110a7e0-Statement" }, { - "id": "0x558d739fc838-Statement", - "statement": "0x558d739fc848-NonLabelDoStmt", + "id": "0x55dbc110a838-Statement", + "statement": "0x55dbc110a848-NonLabelDoStmt", "source": "do j = 1, nj" }, { - "id": "0x558d739fc848-NonLabelDoStmt", - "LoopControl": "0x558d739fc848-LoopControl" + "id": "0x55dbc110a848-NonLabelDoStmt", + "LoopControl": "0x55dbc110a848-LoopControl" }, { - "id": "0x558d739fc848-LoopControl", + "id": "0x55dbc110a848-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x558d739fc848-LoopBounds" + "LoopBounds": "0x55dbc110a848-LoopBounds" }, { - "id": "0x558d739fc848-LoopBounds", - "var": "0x558d739fc848-Name", - "lower": "0x558d739f9f00-Expr", - "upper": "0x558d739f9fe0-Expr" + "id": "0x55dbc110a848-LoopBounds", + "var": "0x55dbc110a848-Name", + "lower": "0x55dbc1107f00-Expr", + "upper": "0x55dbc1107fe0-Expr" }, { - "id": "0x558d739fc848-Name", + "id": "0x55dbc110a848-Name", "source": "j" }, { - "id": "0x558d739f9f00-Expr", + "id": "0x55dbc1107f00-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739f9f20-LiteralConstant" + "LiteralConstant": "0x55dbc1107f20-LiteralConstant" }, { - "id": "0x558d739f9f20-LiteralConstant", + "id": "0x55dbc1107f20-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739f9f20-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc1107f20-IntLiteralConstant" }, { - "id": "0x558d739f9f20-IntLiteralConstant", + "id": "0x55dbc1107f20-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x558d739f9fe0-Expr", + "id": "0x55dbc1107fe0-Expr", "variantKey": "Designator", - "Designator": "0x558d739f8780-Designator" + "Designator": "0x55dbc1106780-Designator" }, { - "id": "0x558d739f8780-Designator", + "id": "0x55dbc1106780-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739f8790-DataRef" + "DataRef": "0x55dbc1106790-DataRef" }, { - "id": "0x558d739f8790-DataRef", + "id": "0x55dbc1106790-DataRef", "variantKey": "Name", - "Name": "0x558d739f8790-Name" + "Name": "0x55dbc1106790-Name" }, { - "id": "0x558d739f8790-Name", + "id": "0x55dbc1106790-Name", "source": "nj" }, { - "id": "0x558d739fc820-ExecutionPartConstruct" + "id": "0x55dbc110a820-ExecutionPartConstruct" }, { - "id": "0x558d739fa680-ExecutionPartConstruct", + "id": "0x55dbc1108680-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739fa680-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc1108680-ExecutableConstruct" }, { - "id": "0x558d739fa680-ExecutableConstruct", + "id": "0x55dbc1108680-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739fa680-Statement" + "Statement": "0x55dbc1108680-Statement" }, { - "id": "0x558d739fa680-Statement", - "statement": "0x558d739fa690-ActionStmt", + "id": "0x55dbc1108680-Statement", + "statement": "0x55dbc1108690-ActionStmt", "source": "e(j, i) = 0.0" }, { - "id": "0x558d739fa690-ActionStmt", + "id": "0x55dbc1108690-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x558d739fa560-AssignmentStmt" + "AssignmentStmt": "0x55dbc1108560-AssignmentStmt" }, { - "id": "0x558d739fa560-AssignmentStmt", - "Variable": "0x558d739fa640-Variable", - "Expr": "0x558d739fa570-Expr" + "id": "0x55dbc1108560-AssignmentStmt", + "Variable": "0x55dbc1108640-Variable", + "Expr": "0x55dbc1108570-Expr" }, { - "id": "0x558d739fa640-Variable", + "id": "0x55dbc1108640-Variable", "variantKey": "Designator", - "Designator": "0x558d73a22b70-Designator" + "Designator": "0x55dbc1130b70-Designator" }, { - "id": "0x558d73a22b70-Designator", + "id": "0x55dbc1130b70-Designator", "variantKey": "DataRef", - "DataRef": "0x558d73a22b80-DataRef" + "DataRef": "0x55dbc1130b80-DataRef" }, { - "id": "0x558d73a22b80-DataRef", + "id": "0x55dbc1130b80-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x558d7395b190-ArrayElement" + "ArrayElement": "0x55dbc1069190-ArrayElement" }, { - "id": "0x558d7395b190-ArrayElement", - "base": "0x558d7395b190-DataRef", + "id": "0x55dbc1069190-ArrayElement", + "base": "0x55dbc1069190-DataRef", "subscripts": [ - "0x558d73ab7390-SectionSubscript", - "0x558d73ab73e0-SectionSubscript" + "0x55dbc11c5390-SectionSubscript", + "0x55dbc11c53e0-SectionSubscript" ] }, { - "id": "0x558d7395b190-DataRef", + "id": "0x55dbc1069190-DataRef", "variantKey": "Name", - "Name": "0x558d7395b190-Name" + "Name": "0x55dbc1069190-Name" }, { - "id": "0x558d7395b190-Name", + "id": "0x55dbc1069190-Name", "source": "e" }, { - "id": "0x558d73ab7390-SectionSubscript", + "id": "0x55dbc11c5390-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739f1ff0-Expr" + "Expr": "0x55dbc10ffff0-Expr" }, { - "id": "0x558d739f1ff0-Expr", + "id": "0x55dbc10ffff0-Expr", "variantKey": "Designator", - "Designator": "0x558d739fa200-Designator" + "Designator": "0x55dbc1108200-Designator" }, { - "id": "0x558d739fa200-Designator", + "id": "0x55dbc1108200-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739fa210-DataRef" + "DataRef": "0x55dbc1108210-DataRef" }, { - "id": "0x558d739fa210-DataRef", + "id": "0x55dbc1108210-DataRef", "variantKey": "Name", - "Name": "0x558d739fa210-Name" + "Name": "0x55dbc1108210-Name" }, { - "id": "0x558d739fa210-Name", + "id": "0x55dbc1108210-Name", "source": "j" }, { - "id": "0x558d73ab73e0-SectionSubscript", + "id": "0x55dbc11c53e0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739f3ff0-Expr" + "Expr": "0x55dbc1101ff0-Expr" }, { - "id": "0x558d739f3ff0-Expr", + "id": "0x55dbc1101ff0-Expr", "variantKey": "Designator", - "Designator": "0x558d739f27e0-Designator" + "Designator": "0x55dbc11007e0-Designator" }, { - "id": "0x558d739f27e0-Designator", + "id": "0x55dbc11007e0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739f27f0-DataRef" + "DataRef": "0x55dbc11007f0-DataRef" }, { - "id": "0x558d739f27f0-DataRef", + "id": "0x55dbc11007f0-DataRef", "variantKey": "Name", - "Name": "0x558d739f27f0-Name" + "Name": "0x55dbc11007f0-Name" }, { - "id": "0x558d739f27f0-Name", + "id": "0x55dbc11007f0-Name", "source": "i" }, { - "id": "0x558d739fa570-Expr", + "id": "0x55dbc1108570-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739fa590-LiteralConstant" + "LiteralConstant": "0x55dbc1108590-LiteralConstant" }, { - "id": "0x558d739fa590-LiteralConstant", + "id": "0x55dbc1108590-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x558d739fa590-RealLiteralConstant" + "RealLiteralConstant": "0x55dbc1108590-RealLiteralConstant" }, { - "id": "0x558d739fa590-RealLiteralConstant", - "real": "0x558d739fa590-Real" + "id": "0x55dbc1108590-RealLiteralConstant", + "real": "0x55dbc1108590-Real" }, { - "id": "0x558d739fa590-Real", + "id": "0x55dbc1108590-Real", "source": "0.0" }, { - "id": "0x558d739fbb60-ExecutionPartConstruct", + "id": "0x55dbc1109b60-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739fbb60-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc1109b60-ExecutableConstruct" }, { - "id": "0x558d739fbb60-ExecutableConstruct", + "id": "0x55dbc1109b60-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x558d739fc6c0-DoConstruct" + "DoConstruct": "0x55dbc110a6c0-DoConstruct" }, { - "id": "0x558d739fc6c0-DoConstruct", - "Statement": "0x558d739fc718-Statement", + "id": "0x55dbc110a6c0-DoConstruct", + "Statement": "0x55dbc110a718-Statement", "ExecutionPartConstruct": [ - "0x558d739fc670-ExecutionPartConstruct" + "0x55dbc110a670-ExecutionPartConstruct" ], - "Statement": "0x558d739fc6c0-Statement" + "Statement": "0x55dbc110a6c0-Statement" }, { - "id": "0x558d739fc718-Statement", - "statement": "0x558d739fc728-NonLabelDoStmt", + "id": "0x55dbc110a718-Statement", + "statement": "0x55dbc110a728-NonLabelDoStmt", "source": "do k = 1, nk" }, { - "id": "0x558d739fc728-NonLabelDoStmt", - "LoopControl": "0x558d739fc728-LoopControl" + "id": "0x55dbc110a728-NonLabelDoStmt", + "LoopControl": "0x55dbc110a728-LoopControl" }, { - "id": "0x558d739fc728-LoopControl", + "id": "0x55dbc110a728-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x558d739fc728-LoopBounds" + "LoopBounds": "0x55dbc110a728-LoopBounds" }, { - "id": "0x558d739fc728-LoopBounds", - "var": "0x558d739fc728-Name", - "lower": "0x558d739fa6d0-Expr", - "upper": "0x558d739fa7b0-Expr" + "id": "0x55dbc110a728-LoopBounds", + "var": "0x55dbc110a728-Name", + "lower": "0x55dbc11086d0-Expr", + "upper": "0x55dbc11087b0-Expr" }, { - "id": "0x558d739fc728-Name", + "id": "0x55dbc110a728-Name", "source": "k" }, { - "id": "0x558d739fa6d0-Expr", + "id": "0x55dbc11086d0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739fa6f0-LiteralConstant" + "LiteralConstant": "0x55dbc11086f0-LiteralConstant" }, { - "id": "0x558d739fa6f0-LiteralConstant", + "id": "0x55dbc11086f0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739fa6f0-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc11086f0-IntLiteralConstant" }, { - "id": "0x558d739fa6f0-IntLiteralConstant", + "id": "0x55dbc11086f0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x558d739fa7b0-Expr", + "id": "0x55dbc11087b0-Expr", "variantKey": "Designator", - "Designator": "0x558d739f53d0-Designator" + "Designator": "0x55dbc11033d0-Designator" }, { - "id": "0x558d739f53d0-Designator", + "id": "0x55dbc11033d0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739f53e0-DataRef" + "DataRef": "0x55dbc11033e0-DataRef" }, { - "id": "0x558d739f53e0-DataRef", + "id": "0x55dbc11033e0-DataRef", "variantKey": "Name", - "Name": "0x558d739f53e0-Name" + "Name": "0x55dbc11033e0-Name" }, { - "id": "0x558d739f53e0-Name", + "id": "0x55dbc11033e0-Name", "source": "nk" }, { - "id": "0x558d739fc700-ExecutionPartConstruct" + "id": "0x55dbc110a700-ExecutionPartConstruct" }, { - "id": "0x558d739fc670-ExecutionPartConstruct", + "id": "0x55dbc110a670-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739fc670-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc110a670-ExecutableConstruct" }, { - "id": "0x558d739fc670-ExecutableConstruct", + "id": "0x55dbc110a670-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739fc670-Statement" + "Statement": "0x55dbc110a670-Statement" }, { - "id": "0x558d739fc670-Statement", - "statement": "0x558d739fc680-ActionStmt", + "id": "0x55dbc110a670-Statement", + "statement": "0x55dbc110a680-ActionStmt", "source": "e(j, i) = e(j, i) + a(k, i) * b(j, k)" }, { - "id": "0x558d739fc680-ActionStmt", + "id": "0x55dbc110a680-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x558d739fc550-AssignmentStmt" + "AssignmentStmt": "0x55dbc110a550-AssignmentStmt" }, { - "id": "0x558d739fc550-AssignmentStmt", - "Variable": "0x558d739fc630-Variable", - "Expr": "0x558d739fc560-Expr" + "id": "0x55dbc110a550-AssignmentStmt", + "Variable": "0x55dbc110a630-Variable", + "Expr": "0x55dbc110a560-Expr" }, { - "id": "0x558d739fc630-Variable", + "id": "0x55dbc110a630-Variable", "variantKey": "Designator", - "Designator": "0x558d73a202c0-Designator" + "Designator": "0x55dbc112e2c0-Designator" }, { - "id": "0x558d73a202c0-Designator", + "id": "0x55dbc112e2c0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d73a202d0-DataRef" + "DataRef": "0x55dbc112e2d0-DataRef" }, { - "id": "0x558d73a202d0-DataRef", + "id": "0x55dbc112e2d0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x558d739f3f30-ArrayElement" + "ArrayElement": "0x55dbc1101f30-ArrayElement" }, { - "id": "0x558d739f3f30-ArrayElement", - "base": "0x558d739f3f30-DataRef", + "id": "0x55dbc1101f30-ArrayElement", + "base": "0x55dbc1101f30-DataRef", "subscripts": [ - "0x558d739f4eb0-SectionSubscript", - "0x558d73ab7b40-SectionSubscript" + "0x55dbc1102eb0-SectionSubscript", + "0x55dbc11c5b40-SectionSubscript" ] }, { - "id": "0x558d739f3f30-DataRef", + "id": "0x55dbc1101f30-DataRef", "variantKey": "Name", - "Name": "0x558d739f3f30-Name" + "Name": "0x55dbc1101f30-Name" }, { - "id": "0x558d739f3f30-Name", + "id": "0x55dbc1101f30-Name", "source": "e" }, { - "id": "0x558d739f4eb0-SectionSubscript", + "id": "0x55dbc1102eb0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739fa0c0-Expr" + "Expr": "0x55dbc11080c0-Expr" }, { - "id": "0x558d739fa0c0-Expr", + "id": "0x55dbc11080c0-Expr", "variantKey": "Designator", - "Designator": "0x558d739fa970-Designator" + "Designator": "0x55dbc1108970-Designator" }, { - "id": "0x558d739fa970-Designator", + "id": "0x55dbc1108970-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739fa980-DataRef" + "DataRef": "0x55dbc1108980-DataRef" }, { - "id": "0x558d739fa980-DataRef", + "id": "0x55dbc1108980-DataRef", "variantKey": "Name", - "Name": "0x558d739fa980-Name" + "Name": "0x55dbc1108980-Name" }, { - "id": "0x558d739fa980-Name", + "id": "0x55dbc1108980-Name", "source": "j" }, { - "id": "0x558d73ab7b40-SectionSubscript", + "id": "0x55dbc11c5b40-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739fa260-Expr" + "Expr": "0x55dbc1108260-Expr" }, { - "id": "0x558d739fa260-Expr", + "id": "0x55dbc1108260-Expr", "variantKey": "Designator", - "Designator": "0x558d739f8bb0-Designator" + "Designator": "0x55dbc1106bb0-Designator" }, { - "id": "0x558d739f8bb0-Designator", + "id": "0x55dbc1106bb0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739f8bc0-DataRef" + "DataRef": "0x55dbc1106bc0-DataRef" }, { - "id": "0x558d739f8bc0-DataRef", + "id": "0x55dbc1106bc0-DataRef", "variantKey": "Name", - "Name": "0x558d739f8bc0-Name" + "Name": "0x55dbc1106bc0-Name" }, { - "id": "0x558d739f8bc0-Name", + "id": "0x55dbc1106bc0-Name", "source": "i" }, { - "id": "0x558d739fc560-Expr", + "id": "0x55dbc110a560-Expr", "variantKey": "Add", - "Add": "0x558d739fc580-Add" + "Add": "0x55dbc110a580-Add" }, { - "id": "0x558d739fc580-Add", - "left": "0x558d739fc470-Expr", - "right": "0x558d739fc390-Expr", + "id": "0x55dbc110a580-Add", + "left": "0x55dbc110a470-Expr", + "right": "0x55dbc110a390-Expr", "op": "ADD" }, { - "id": "0x558d739fc470-Expr", + "id": "0x55dbc110a470-Expr", "variantKey": "Designator", - "Designator": "0x558d73ab7df0-Designator" + "Designator": "0x55dbc11c5df0-Designator" }, { - "id": "0x558d73ab7df0-Designator", + "id": "0x55dbc11c5df0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d73ab7e00-DataRef" + "DataRef": "0x55dbc11c5e00-DataRef" }, { - "id": "0x558d73ab7e00-DataRef", + "id": "0x55dbc11c5e00-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x558d739f7610-ArrayElement" + "ArrayElement": "0x55dbc1105610-ArrayElement" }, { - "id": "0x558d739f7610-ArrayElement", - "base": "0x558d739f7610-DataRef", + "id": "0x55dbc1105610-ArrayElement", + "base": "0x55dbc1105610-DataRef", "subscripts": [ - "0x558d73ab7d60-SectionSubscript", - "0x558d73ab7db0-SectionSubscript" + "0x55dbc11c5d60-SectionSubscript", + "0x55dbc11c5db0-SectionSubscript" ] }, { - "id": "0x558d739f7610-DataRef", + "id": "0x55dbc1105610-DataRef", "variantKey": "Name", - "Name": "0x558d739f7610-Name" + "Name": "0x55dbc1105610-Name" }, { - "id": "0x558d739f7610-Name", + "id": "0x55dbc1105610-Name", "source": "e" }, { - "id": "0x558d73ab7d60-SectionSubscript", + "id": "0x55dbc11c5d60-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739fa890-Expr" + "Expr": "0x55dbc1108890-Expr" }, { - "id": "0x558d739fa890-Expr", + "id": "0x55dbc1108890-Expr", "variantKey": "Designator", - "Designator": "0x558d739fb050-Designator" + "Designator": "0x55dbc1109050-Designator" }, { - "id": "0x558d739fb050-Designator", + "id": "0x55dbc1109050-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739fb060-DataRef" + "DataRef": "0x55dbc1109060-DataRef" }, { - "id": "0x558d739fb060-DataRef", + "id": "0x55dbc1109060-DataRef", "variantKey": "Name", - "Name": "0x558d739fb060-Name" + "Name": "0x55dbc1109060-Name" }, { - "id": "0x558d739fb060-Name", + "id": "0x55dbc1109060-Name", "source": "j" }, { - "id": "0x558d73ab7db0-SectionSubscript", + "id": "0x55dbc11c5db0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739fa9d0-Expr" + "Expr": "0x55dbc11089d0-Expr" }, { - "id": "0x558d739fa9d0-Expr", + "id": "0x55dbc11089d0-Expr", "variantKey": "Designator", - "Designator": "0x558d739fae50-Designator" + "Designator": "0x55dbc1108e50-Designator" }, { - "id": "0x558d739fae50-Designator", + "id": "0x55dbc1108e50-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739fae60-DataRef" + "DataRef": "0x55dbc1108e60-DataRef" }, { - "id": "0x558d739fae60-DataRef", + "id": "0x55dbc1108e60-DataRef", "variantKey": "Name", - "Name": "0x558d739fae60-Name" + "Name": "0x55dbc1108e60-Name" }, { - "id": "0x558d739fae60-Name", + "id": "0x55dbc1108e60-Name", "source": "i" }, { - "id": "0x558d739fc390-Expr", + "id": "0x55dbc110a390-Expr", "variantKey": "Multiply", - "Multiply": "0x558d739fc3b0-Multiply" + "Multiply": "0x55dbc110a3b0-Multiply" }, { - "id": "0x558d739fc3b0-Multiply", - "left": "0x558d739fc2b0-Expr", - "right": "0x558d739fc1d0-Expr", + "id": "0x55dbc110a3b0-Multiply", + "left": "0x55dbc110a2b0-Expr", + "right": "0x55dbc110a1d0-Expr", "op": "MULTIPLY" }, { - "id": "0x558d739fc2b0-Expr", + "id": "0x55dbc110a2b0-Expr", "variantKey": "Designator", - "Designator": "0x558d73ab8150-Designator" + "Designator": "0x55dbc11c6150-Designator" }, { - "id": "0x558d73ab8150-Designator", + "id": "0x55dbc11c6150-Designator", "variantKey": "DataRef", - "DataRef": "0x558d73ab8160-DataRef" + "DataRef": "0x55dbc11c6160-DataRef" }, { - "id": "0x558d73ab8160-DataRef", + "id": "0x55dbc11c6160-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x558d73a00520-ArrayElement" + "ArrayElement": "0x55dbc110e520-ArrayElement" }, { - "id": "0x558d73a00520-ArrayElement", - "base": "0x558d73a00520-DataRef", + "id": "0x55dbc110e520-ArrayElement", + "base": "0x55dbc110e520-DataRef", "subscripts": [ - "0x558d73ab80c0-SectionSubscript", - "0x558d73ab8110-SectionSubscript" + "0x55dbc11c60c0-SectionSubscript", + "0x55dbc11c6110-SectionSubscript" ] }, { - "id": "0x558d73a00520-DataRef", + "id": "0x55dbc110e520-DataRef", "variantKey": "Name", - "Name": "0x558d73a00520-Name" + "Name": "0x55dbc110e520-Name" }, { - "id": "0x558d73a00520-Name", + "id": "0x55dbc110e520-Name", "source": "a" }, { - "id": "0x558d73ab80c0-SectionSubscript", + "id": "0x55dbc11c60c0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739faeb0-Expr" + "Expr": "0x55dbc1108eb0-Expr" }, { - "id": "0x558d739faeb0-Expr", + "id": "0x55dbc1108eb0-Expr", "variantKey": "Designator", - "Designator": "0x558d739fb730-Designator" + "Designator": "0x55dbc1109730-Designator" }, { - "id": "0x558d739fb730-Designator", + "id": "0x55dbc1109730-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739fb740-DataRef" + "DataRef": "0x55dbc1109740-DataRef" }, { - "id": "0x558d739fb740-DataRef", + "id": "0x55dbc1109740-DataRef", "variantKey": "Name", - "Name": "0x558d739fb740-Name" + "Name": "0x55dbc1109740-Name" }, { - "id": "0x558d739fb740-Name", + "id": "0x55dbc1109740-Name", "source": "k" }, { - "id": "0x558d73ab8110-SectionSubscript", + "id": "0x55dbc11c6110-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739fb0b0-Expr" + "Expr": "0x55dbc11090b0-Expr" }, { - "id": "0x558d739fb0b0-Expr", + "id": "0x55dbc11090b0-Expr", "variantKey": "Designator", - "Designator": "0x558d739fb530-Designator" + "Designator": "0x55dbc1109530-Designator" }, { - "id": "0x558d739fb530-Designator", + "id": "0x55dbc1109530-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739fb540-DataRef" + "DataRef": "0x55dbc1109540-DataRef" }, { - "id": "0x558d739fb540-DataRef", + "id": "0x55dbc1109540-DataRef", "variantKey": "Name", - "Name": "0x558d739fb540-Name" + "Name": "0x55dbc1109540-Name" }, { - "id": "0x558d739fb540-Name", + "id": "0x55dbc1109540-Name", "source": "i" }, { - "id": "0x558d739fc1d0-Expr", + "id": "0x55dbc110a1d0-Expr", "variantKey": "Designator", - "Designator": "0x558d73ab84b0-Designator" + "Designator": "0x55dbc11c64b0-Designator" }, { - "id": "0x558d73ab84b0-Designator", + "id": "0x55dbc11c64b0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d73ab84c0-DataRef" + "DataRef": "0x55dbc11c64c0-DataRef" }, { - "id": "0x558d73ab84c0-DataRef", + "id": "0x55dbc11c64c0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x558d739e7a40-ArrayElement" + "ArrayElement": "0x55dbc10f5a40-ArrayElement" }, { - "id": "0x558d739e7a40-ArrayElement", - "base": "0x558d739e7a40-DataRef", + "id": "0x55dbc10f5a40-ArrayElement", + "base": "0x55dbc10f5a40-DataRef", "subscripts": [ - "0x558d73ab8420-SectionSubscript", - "0x558d73ab8470-SectionSubscript" + "0x55dbc11c6420-SectionSubscript", + "0x55dbc11c6470-SectionSubscript" ] }, { - "id": "0x558d739e7a40-DataRef", + "id": "0x55dbc10f5a40-DataRef", "variantKey": "Name", - "Name": "0x558d739e7a40-Name" + "Name": "0x55dbc10f5a40-Name" }, { - "id": "0x558d739e7a40-Name", + "id": "0x55dbc10f5a40-Name", "source": "b" }, { - "id": "0x558d73ab8420-SectionSubscript", + "id": "0x55dbc11c6420-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739fb590-Expr" + "Expr": "0x55dbc1109590-Expr" }, { - "id": "0x558d739fb590-Expr", + "id": "0x55dbc1109590-Expr", "variantKey": "Designator", - "Designator": "0x558d739fbe10-Designator" + "Designator": "0x55dbc1109e10-Designator" }, { - "id": "0x558d739fbe10-Designator", + "id": "0x55dbc1109e10-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739fbe20-DataRef" + "DataRef": "0x55dbc1109e20-DataRef" }, { - "id": "0x558d739fbe20-DataRef", + "id": "0x55dbc1109e20-DataRef", "variantKey": "Name", - "Name": "0x558d739fbe20-Name" + "Name": "0x55dbc1109e20-Name" }, { - "id": "0x558d739fbe20-Name", + "id": "0x55dbc1109e20-Name", "source": "j" }, { - "id": "0x558d73ab8470-SectionSubscript", + "id": "0x55dbc11c6470-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739fb790-Expr" + "Expr": "0x55dbc1109790-Expr" }, { - "id": "0x558d739fb790-Expr", + "id": "0x55dbc1109790-Expr", "variantKey": "Designator", - "Designator": "0x558d739fbc10-Designator" + "Designator": "0x55dbc1109c10-Designator" }, { - "id": "0x558d739fbc10-Designator", + "id": "0x55dbc1109c10-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739fbc20-DataRef" + "DataRef": "0x55dbc1109c20-DataRef" }, { - "id": "0x558d739fbc20-DataRef", + "id": "0x55dbc1109c20-DataRef", "variantKey": "Name", - "Name": "0x558d739fbc20-Name" + "Name": "0x55dbc1109c20-Name" }, { - "id": "0x558d739fbc20-Name", + "id": "0x55dbc1109c20-Name", "source": "k" }, { - "id": "0x558d739fc6c0-Statement", - "statement": "0x558d739fc6d0-EndDoStmt", + "id": "0x55dbc110a6c0-Statement", + "statement": "0x55dbc110a6d0-EndDoStmt", "source": "end do" }, { - "id": "0x558d739fc6d0-EndDoStmt" + "id": "0x55dbc110a6d0-EndDoStmt" }, { - "id": "0x558d739fc7e0-Statement", - "statement": "0x558d739fc7f0-EndDoStmt", + "id": "0x55dbc110a7e0-Statement", + "statement": "0x55dbc110a7f0-EndDoStmt", "source": "end do" }, { - "id": "0x558d739fc7f0-EndDoStmt" + "id": "0x55dbc110a7f0-EndDoStmt" }, { - "id": "0x558d739fc900-Statement", - "statement": "0x558d739fc910-EndDoStmt", + "id": "0x55dbc110a900-Statement", + "statement": "0x55dbc110a910-EndDoStmt", "source": "end do" }, { - "id": "0x558d739fc910-EndDoStmt" + "id": "0x55dbc110a910-EndDoStmt" }, { - "id": "0x558d739fe5c0-ExecutionPartConstruct", + "id": "0x55dbc110c5c0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739fe5c0-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc110c5c0-ExecutableConstruct" }, { - "id": "0x558d739fe5c0-ExecutableConstruct", + "id": "0x55dbc110c5c0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x558d739ff160-DoConstruct" + "DoConstruct": "0x55dbc110d160-DoConstruct" }, { - "id": "0x558d739ff160-DoConstruct", - "Statement": "0x558d739ff1b8-Statement", + "id": "0x55dbc110d160-DoConstruct", + "Statement": "0x55dbc110d1b8-Statement", "ExecutionPartConstruct": [ - "0x558d739fe420-ExecutionPartConstruct" + "0x55dbc110c420-ExecutionPartConstruct" ], - "Statement": "0x558d739ff160-Statement" + "Statement": "0x55dbc110d160-Statement" }, { - "id": "0x558d739ff1b8-Statement", - "statement": "0x558d739ff1c8-NonLabelDoStmt", + "id": "0x55dbc110d1b8-Statement", + "statement": "0x55dbc110d1c8-NonLabelDoStmt", "source": "do i = 1, nj" }, { - "id": "0x558d739ff1c8-NonLabelDoStmt", - "LoopControl": "0x558d739ff1c8-LoopControl" + "id": "0x55dbc110d1c8-NonLabelDoStmt", + "LoopControl": "0x55dbc110d1c8-LoopControl" }, { - "id": "0x558d739ff1c8-LoopControl", + "id": "0x55dbc110d1c8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x558d739ff1c8-LoopBounds" + "LoopBounds": "0x55dbc110d1c8-LoopBounds" }, { - "id": "0x558d739ff1c8-LoopBounds", - "var": "0x558d739ff1c8-Name", - "lower": "0x558d739fca20-Expr", - "upper": "0x558d739fcb00-Expr" + "id": "0x55dbc110d1c8-LoopBounds", + "var": "0x55dbc110d1c8-Name", + "lower": "0x55dbc110aa20-Expr", + "upper": "0x55dbc110ab00-Expr" }, { - "id": "0x558d739ff1c8-Name", + "id": "0x55dbc110d1c8-Name", "source": "i" }, { - "id": "0x558d739fca20-Expr", + "id": "0x55dbc110aa20-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739fca40-LiteralConstant" + "LiteralConstant": "0x55dbc110aa40-LiteralConstant" }, { - "id": "0x558d739fca40-LiteralConstant", + "id": "0x55dbc110aa40-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739fca40-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc110aa40-IntLiteralConstant" }, { - "id": "0x558d739fca40-IntLiteralConstant", + "id": "0x55dbc110aa40-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x558d739fcb00-Expr", + "id": "0x55dbc110ab00-Expr", "variantKey": "Designator", - "Designator": "0x558d739fbf50-Designator" + "Designator": "0x55dbc1109f50-Designator" }, { - "id": "0x558d739fbf50-Designator", + "id": "0x55dbc1109f50-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739fbf60-DataRef" + "DataRef": "0x55dbc1109f60-DataRef" }, { - "id": "0x558d739fbf60-DataRef", + "id": "0x55dbc1109f60-DataRef", "variantKey": "Name", - "Name": "0x558d739fbf60-Name" + "Name": "0x55dbc1109f60-Name" }, { - "id": "0x558d739fbf60-Name", + "id": "0x55dbc1109f60-Name", "source": "nj" }, { - "id": "0x558d739ff1a0-ExecutionPartConstruct" + "id": "0x55dbc110d1a0-ExecutionPartConstruct" }, { - "id": "0x558d739fe420-ExecutionPartConstruct", + "id": "0x55dbc110c420-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739fe420-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc110c420-ExecutableConstruct" }, { - "id": "0x558d739fe420-ExecutableConstruct", + "id": "0x55dbc110c420-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x558d739ff040-DoConstruct" + "DoConstruct": "0x55dbc110d040-DoConstruct" }, { - "id": "0x558d739ff040-DoConstruct", - "Statement": "0x558d739ff098-Statement", + "id": "0x55dbc110d040-DoConstruct", + "Statement": "0x55dbc110d098-Statement", "ExecutionPartConstruct": [ - "0x558d739fae00-ExecutionPartConstruct", - "0x558d739fe3c0-ExecutionPartConstruct" + "0x55dbc1108e00-ExecutionPartConstruct", + "0x55dbc110c3c0-ExecutionPartConstruct" ], - "Statement": "0x558d739ff040-Statement" + "Statement": "0x55dbc110d040-Statement" }, { - "id": "0x558d739ff098-Statement", - "statement": "0x558d739ff0a8-NonLabelDoStmt", + "id": "0x55dbc110d098-Statement", + "statement": "0x55dbc110d0a8-NonLabelDoStmt", "source": "do j = 1, nl" }, { - "id": "0x558d739ff0a8-NonLabelDoStmt", - "LoopControl": "0x558d739ff0a8-LoopControl" + "id": "0x55dbc110d0a8-NonLabelDoStmt", + "LoopControl": "0x55dbc110d0a8-LoopControl" }, { - "id": "0x558d739ff0a8-LoopControl", + "id": "0x55dbc110d0a8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x558d739ff0a8-LoopBounds" + "LoopBounds": "0x55dbc110d0a8-LoopBounds" }, { - "id": "0x558d739ff0a8-LoopBounds", - "var": "0x558d739ff0a8-Name", - "lower": "0x558d739fcbe0-Expr", - "upper": "0x558d739fccc0-Expr" + "id": "0x55dbc110d0a8-LoopBounds", + "var": "0x55dbc110d0a8-Name", + "lower": "0x55dbc110abe0-Expr", + "upper": "0x55dbc110acc0-Expr" }, { - "id": "0x558d739ff0a8-Name", + "id": "0x55dbc110d0a8-Name", "source": "j" }, { - "id": "0x558d739fcbe0-Expr", + "id": "0x55dbc110abe0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739fcc00-LiteralConstant" + "LiteralConstant": "0x55dbc110ac00-LiteralConstant" }, { - "id": "0x558d739fcc00-LiteralConstant", + "id": "0x55dbc110ac00-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739fcc00-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc110ac00-IntLiteralConstant" }, { - "id": "0x558d739fcc00-IntLiteralConstant", + "id": "0x55dbc110ac00-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x558d739fccc0-Expr", + "id": "0x55dbc110acc0-Expr", "variantKey": "Designator", - "Designator": "0x558d739fa500-Designator" + "Designator": "0x55dbc1108500-Designator" }, { - "id": "0x558d739fa500-Designator", + "id": "0x55dbc1108500-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739fa510-DataRef" + "DataRef": "0x55dbc1108510-DataRef" }, { - "id": "0x558d739fa510-DataRef", + "id": "0x55dbc1108510-DataRef", "variantKey": "Name", - "Name": "0x558d739fa510-Name" + "Name": "0x55dbc1108510-Name" }, { - "id": "0x558d739fa510-Name", + "id": "0x55dbc1108510-Name", "source": "nl" }, { - "id": "0x558d739ff080-ExecutionPartConstruct" + "id": "0x55dbc110d080-ExecutionPartConstruct" }, { - "id": "0x558d739fae00-ExecutionPartConstruct", + "id": "0x55dbc1108e00-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739fae00-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc1108e00-ExecutableConstruct" }, { - "id": "0x558d739fae00-ExecutableConstruct", + "id": "0x55dbc1108e00-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739fae00-Statement" + "Statement": "0x55dbc1108e00-Statement" }, { - "id": "0x558d739fae00-Statement", - "statement": "0x558d739fae10-ActionStmt", + "id": "0x55dbc1108e00-Statement", + "statement": "0x55dbc1108e10-ActionStmt", "source": "f(j, i) = 0.0" }, { - "id": "0x558d739fae10-ActionStmt", + "id": "0x55dbc1108e10-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x558d739fd180-AssignmentStmt" + "AssignmentStmt": "0x55dbc110b180-AssignmentStmt" }, { - "id": "0x558d739fd180-AssignmentStmt", - "Variable": "0x558d739fd260-Variable", - "Expr": "0x558d739fd190-Expr" + "id": "0x55dbc110b180-AssignmentStmt", + "Variable": "0x55dbc110b260-Variable", + "Expr": "0x55dbc110b190-Expr" }, { - "id": "0x558d739fd260-Variable", + "id": "0x55dbc110b260-Variable", "variantKey": "Designator", - "Designator": "0x558d73a1bb80-Designator" + "Designator": "0x55dbc1129b80-Designator" }, { - "id": "0x558d73a1bb80-Designator", + "id": "0x55dbc1129b80-Designator", "variantKey": "DataRef", - "DataRef": "0x558d73a1bb90-DataRef" + "DataRef": "0x55dbc1129b90-DataRef" }, { - "id": "0x558d73a1bb90-DataRef", + "id": "0x55dbc1129b90-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x558d73a02540-ArrayElement" + "ArrayElement": "0x55dbc1110540-ArrayElement" }, { - "id": "0x558d73a02540-ArrayElement", - "base": "0x558d73a02540-DataRef", + "id": "0x55dbc1110540-ArrayElement", + "base": "0x55dbc1110540-DataRef", "subscripts": [ - "0x558d739facf0-SectionSubscript", - "0x558d73ab9750-SectionSubscript" + "0x55dbc1108cf0-SectionSubscript", + "0x55dbc11c7750-SectionSubscript" ] }, { - "id": "0x558d73a02540-DataRef", + "id": "0x55dbc1110540-DataRef", "variantKey": "Name", - "Name": "0x558d73a02540-Name" + "Name": "0x55dbc1110540-Name" }, { - "id": "0x558d73a02540-Name", + "id": "0x55dbc1110540-Name", "source": "f" }, { - "id": "0x558d739facf0-SectionSubscript", + "id": "0x55dbc1108cf0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739fbc70-Expr" + "Expr": "0x55dbc1109c70-Expr" }, { - "id": "0x558d739fbc70-Expr", + "id": "0x55dbc1109c70-Expr", "variantKey": "Designator", - "Designator": "0x558d739fb190-Designator" + "Designator": "0x55dbc1109190-Designator" }, { - "id": "0x558d739fb190-Designator", + "id": "0x55dbc1109190-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739fb1a0-DataRef" + "DataRef": "0x55dbc11091a0-DataRef" }, { - "id": "0x558d739fb1a0-DataRef", + "id": "0x55dbc11091a0-DataRef", "variantKey": "Name", - "Name": "0x558d739fb1a0-Name" + "Name": "0x55dbc11091a0-Name" }, { - "id": "0x558d739fb1a0-Name", + "id": "0x55dbc11091a0-Name", "source": "j" }, { - "id": "0x558d73ab9750-SectionSubscript", + "id": "0x55dbc11c7750-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739fbe70-Expr" + "Expr": "0x55dbc1109e70-Expr" }, { - "id": "0x558d739fbe70-Expr", + "id": "0x55dbc1109e70-Expr", "variantKey": "Designator", - "Designator": "0x558d739fad30-Designator" + "Designator": "0x55dbc1108d30-Designator" }, { - "id": "0x558d739fad30-Designator", + "id": "0x55dbc1108d30-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739fad40-DataRef" + "DataRef": "0x55dbc1108d40-DataRef" }, { - "id": "0x558d739fad40-DataRef", + "id": "0x55dbc1108d40-DataRef", "variantKey": "Name", - "Name": "0x558d739fad40-Name" + "Name": "0x55dbc1108d40-Name" }, { - "id": "0x558d739fad40-Name", + "id": "0x55dbc1108d40-Name", "source": "i" }, { - "id": "0x558d739fd190-Expr", + "id": "0x55dbc110b190-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739fd1b0-LiteralConstant" + "LiteralConstant": "0x55dbc110b1b0-LiteralConstant" }, { - "id": "0x558d739fd1b0-LiteralConstant", + "id": "0x55dbc110b1b0-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x558d739fd1b0-RealLiteralConstant" + "RealLiteralConstant": "0x55dbc110b1b0-RealLiteralConstant" }, { - "id": "0x558d739fd1b0-RealLiteralConstant", - "real": "0x558d739fd1b0-Real" + "id": "0x55dbc110b1b0-RealLiteralConstant", + "real": "0x55dbc110b1b0-Real" }, { - "id": "0x558d739fd1b0-Real", + "id": "0x55dbc110b1b0-Real", "source": "0.0" }, { - "id": "0x558d739fe3c0-ExecutionPartConstruct", + "id": "0x55dbc110c3c0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739fe3c0-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc110c3c0-ExecutableConstruct" }, { - "id": "0x558d739fe3c0-ExecutableConstruct", + "id": "0x55dbc110c3c0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x558d739fef20-DoConstruct" + "DoConstruct": "0x55dbc110cf20-DoConstruct" }, { - "id": "0x558d739fef20-DoConstruct", - "Statement": "0x558d739fef78-Statement", + "id": "0x55dbc110cf20-DoConstruct", + "Statement": "0x55dbc110cf78-Statement", "ExecutionPartConstruct": [ - "0x558d739feed0-ExecutionPartConstruct" + "0x55dbc110ced0-ExecutionPartConstruct" ], - "Statement": "0x558d739fef20-Statement" + "Statement": "0x55dbc110cf20-Statement" }, { - "id": "0x558d739fef78-Statement", - "statement": "0x558d739fef88-NonLabelDoStmt", + "id": "0x55dbc110cf78-Statement", + "statement": "0x55dbc110cf88-NonLabelDoStmt", "source": "do k = 1, nm" }, { - "id": "0x558d739fef88-NonLabelDoStmt", - "LoopControl": "0x558d739fef88-LoopControl" + "id": "0x55dbc110cf88-NonLabelDoStmt", + "LoopControl": "0x55dbc110cf88-LoopControl" }, { - "id": "0x558d739fef88-LoopControl", + "id": "0x55dbc110cf88-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x558d739fef88-LoopBounds" + "LoopBounds": "0x55dbc110cf88-LoopBounds" }, { - "id": "0x558d739fef88-LoopBounds", - "var": "0x558d739fef88-Name", - "lower": "0x558d739fd290-Expr", - "upper": "0x558d739fd370-Expr" + "id": "0x55dbc110cf88-LoopBounds", + "var": "0x55dbc110cf88-Name", + "lower": "0x55dbc110b290-Expr", + "upper": "0x55dbc110b370-Expr" }, { - "id": "0x558d739fef88-Name", + "id": "0x55dbc110cf88-Name", "source": "k" }, { - "id": "0x558d739fd290-Expr", + "id": "0x55dbc110b290-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739fd2b0-LiteralConstant" + "LiteralConstant": "0x55dbc110b2b0-LiteralConstant" }, { - "id": "0x558d739fd2b0-LiteralConstant", + "id": "0x55dbc110b2b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739fd2b0-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc110b2b0-IntLiteralConstant" }, { - "id": "0x558d739fd2b0-IntLiteralConstant", + "id": "0x55dbc110b2b0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x558d739fd370-Expr", + "id": "0x55dbc110b370-Expr", "variantKey": "Designator", - "Designator": "0x558d739faf90-Designator" + "Designator": "0x55dbc1108f90-Designator" }, { - "id": "0x558d739faf90-Designator", + "id": "0x55dbc1108f90-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739fafa0-DataRef" + "DataRef": "0x55dbc1108fa0-DataRef" }, { - "id": "0x558d739fafa0-DataRef", + "id": "0x55dbc1108fa0-DataRef", "variantKey": "Name", - "Name": "0x558d739fafa0-Name" + "Name": "0x55dbc1108fa0-Name" }, { - "id": "0x558d739fafa0-Name", + "id": "0x55dbc1108fa0-Name", "source": "nm" }, { - "id": "0x558d739fef60-ExecutionPartConstruct" + "id": "0x55dbc110cf60-ExecutionPartConstruct" }, { - "id": "0x558d739feed0-ExecutionPartConstruct", + "id": "0x55dbc110ced0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739feed0-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc110ced0-ExecutableConstruct" }, { - "id": "0x558d739feed0-ExecutableConstruct", + "id": "0x55dbc110ced0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739feed0-Statement" + "Statement": "0x55dbc110ced0-Statement" }, { - "id": "0x558d739feed0-Statement", - "statement": "0x558d739feee0-ActionStmt", + "id": "0x55dbc110ced0-Statement", + "statement": "0x55dbc110cee0-ActionStmt", "source": "f(j, i) = f(j, i) + c(k, i) * d(j, k)" }, { - "id": "0x558d739feee0-ActionStmt", + "id": "0x55dbc110cee0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x558d739fedb0-AssignmentStmt" + "AssignmentStmt": "0x55dbc110cdb0-AssignmentStmt" }, { - "id": "0x558d739fedb0-AssignmentStmt", - "Variable": "0x558d739fee90-Variable", - "Expr": "0x558d739fedc0-Expr" + "id": "0x55dbc110cdb0-AssignmentStmt", + "Variable": "0x55dbc110ce90-Variable", + "Expr": "0x55dbc110cdc0-Expr" }, { - "id": "0x558d739fee90-Variable", + "id": "0x55dbc110ce90-Variable", "variantKey": "Designator", - "Designator": "0x558d73ab86e0-Designator" + "Designator": "0x55dbc11c66e0-Designator" }, { - "id": "0x558d73ab86e0-Designator", + "id": "0x55dbc11c66e0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d73ab86f0-DataRef" + "DataRef": "0x55dbc11c66f0-DataRef" }, { - "id": "0x558d73ab86f0-DataRef", + "id": "0x55dbc11c66f0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x558d73ab9790-ArrayElement" + "ArrayElement": "0x55dbc11c7790-ArrayElement" }, { - "id": "0x558d73ab9790-ArrayElement", - "base": "0x558d73ab9790-DataRef", + "id": "0x55dbc11c7790-ArrayElement", + "base": "0x55dbc11c7790-DataRef", "subscripts": [ - "0x558d73abb100-SectionSubscript", - "0x558d73abb150-SectionSubscript" + "0x55dbc11c9100-SectionSubscript", + "0x55dbc11c9150-SectionSubscript" ] }, { - "id": "0x558d73ab9790-DataRef", + "id": "0x55dbc11c7790-DataRef", "variantKey": "Name", - "Name": "0x558d73ab9790-Name" + "Name": "0x55dbc11c7790-Name" }, { - "id": "0x558d73ab9790-Name", + "id": "0x55dbc11c7790-Name", "source": "f" }, { - "id": "0x558d73abb100-SectionSubscript", + "id": "0x55dbc11c9100-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739fcda0-Expr" + "Expr": "0x55dbc110ada0-Expr" }, { - "id": "0x558d739fcda0-Expr", + "id": "0x55dbc110ada0-Expr", "variantKey": "Designator", - "Designator": "0x558d739fb670-Designator" + "Designator": "0x55dbc1109670-Designator" }, { - "id": "0x558d739fb670-Designator", + "id": "0x55dbc1109670-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739fb680-DataRef" + "DataRef": "0x55dbc1109680-DataRef" }, { - "id": "0x558d739fb680-DataRef", + "id": "0x55dbc1109680-DataRef", "variantKey": "Name", - "Name": "0x558d739fb680-Name" + "Name": "0x55dbc1109680-Name" }, { - "id": "0x558d739fb680-Name", + "id": "0x55dbc1109680-Name", "source": "j" }, { - "id": "0x558d73abb150-SectionSubscript", + "id": "0x55dbc11c9150-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739fce80-Expr" + "Expr": "0x55dbc110ae80-Expr" }, { - "id": "0x558d739fce80-Expr", + "id": "0x55dbc110ae80-Expr", "variantKey": "Designator", - "Designator": "0x558d739fa1a0-Designator" + "Designator": "0x55dbc11081a0-Designator" }, { - "id": "0x558d739fa1a0-Designator", + "id": "0x55dbc11081a0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739fa1b0-DataRef" + "DataRef": "0x55dbc11081b0-DataRef" }, { - "id": "0x558d739fa1b0-DataRef", + "id": "0x55dbc11081b0-DataRef", "variantKey": "Name", - "Name": "0x558d739fa1b0-Name" + "Name": "0x55dbc11081b0-Name" }, { - "id": "0x558d739fa1b0-Name", + "id": "0x55dbc11081b0-Name", "source": "i" }, { - "id": "0x558d739fedc0-Expr", + "id": "0x55dbc110cdc0-Expr", "variantKey": "Add", - "Add": "0x558d739fede0-Add" + "Add": "0x55dbc110cde0-Add" }, { - "id": "0x558d739fede0-Add", - "left": "0x558d739fecd0-Expr", - "right": "0x558d739febf0-Expr", + "id": "0x55dbc110cde0-Add", + "left": "0x55dbc110ccd0-Expr", + "right": "0x55dbc110cbf0-Expr", "op": "ADD" }, { - "id": "0x558d739fecd0-Expr", + "id": "0x55dbc110ccd0-Expr", "variantKey": "Designator", - "Designator": "0x558d73abb390-Designator" + "Designator": "0x55dbc11c9390-Designator" }, { - "id": "0x558d73abb390-Designator", + "id": "0x55dbc11c9390-Designator", "variantKey": "DataRef", - "DataRef": "0x558d73abb3a0-DataRef" + "DataRef": "0x55dbc11c93a0-DataRef" }, { - "id": "0x558d73abb3a0-DataRef", + "id": "0x55dbc11c93a0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x558d739fd610-ArrayElement" + "ArrayElement": "0x55dbc110b610-ArrayElement" }, { - "id": "0x558d739fd610-ArrayElement", - "base": "0x558d739fd610-DataRef", + "id": "0x55dbc110b610-ArrayElement", + "base": "0x55dbc110b610-DataRef", "subscripts": [ - "0x558d73abb300-SectionSubscript", - "0x558d73abb350-SectionSubscript" + "0x55dbc11c9300-SectionSubscript", + "0x55dbc11c9350-SectionSubscript" ] }, { - "id": "0x558d739fd610-DataRef", + "id": "0x55dbc110b610-DataRef", "variantKey": "Name", - "Name": "0x558d739fd610-Name" + "Name": "0x55dbc110b610-Name" }, { - "id": "0x558d739fd610-Name", + "id": "0x55dbc110b610-Name", "source": "f" }, { - "id": "0x558d73abb300-SectionSubscript", + "id": "0x55dbc11c9300-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739fd450-Expr" + "Expr": "0x55dbc110b450-Expr" }, { - "id": "0x558d739fd450-Expr", + "id": "0x55dbc110b450-Expr", "variantKey": "Designator", - "Designator": "0x558d739fb6d0-Designator" + "Designator": "0x55dbc11096d0-Designator" }, { - "id": "0x558d739fb6d0-Designator", + "id": "0x55dbc11096d0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739fb6e0-DataRef" + "DataRef": "0x55dbc11096e0-DataRef" }, { - "id": "0x558d739fb6e0-DataRef", + "id": "0x55dbc11096e0-DataRef", "variantKey": "Name", - "Name": "0x558d739fb6e0-Name" + "Name": "0x55dbc11096e0-Name" }, { - "id": "0x558d739fb6e0-Name", + "id": "0x55dbc11096e0-Name", "source": "j" }, { - "id": "0x558d73abb350-SectionSubscript", + "id": "0x55dbc11c9350-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739fd530-Expr" + "Expr": "0x55dbc110b530-Expr" }, { - "id": "0x558d739fd530-Expr", + "id": "0x55dbc110b530-Expr", "variantKey": "Designator", - "Designator": "0x558d739fbdb0-Designator" + "Designator": "0x55dbc1109db0-Designator" }, { - "id": "0x558d739fbdb0-Designator", + "id": "0x55dbc1109db0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739fbdc0-DataRef" + "DataRef": "0x55dbc1109dc0-DataRef" }, { - "id": "0x558d739fbdc0-DataRef", + "id": "0x55dbc1109dc0-DataRef", "variantKey": "Name", - "Name": "0x558d739fbdc0-Name" + "Name": "0x55dbc1109dc0-Name" }, { - "id": "0x558d739fbdc0-Name", + "id": "0x55dbc1109dc0-Name", "source": "i" }, { - "id": "0x558d739febf0-Expr", + "id": "0x55dbc110cbf0-Expr", "variantKey": "Multiply", - "Multiply": "0x558d739fec10-Multiply" + "Multiply": "0x55dbc110cc10-Multiply" }, { - "id": "0x558d739fec10-Multiply", - "left": "0x558d739feb10-Expr", - "right": "0x558d739fea30-Expr", + "id": "0x55dbc110cc10-Multiply", + "left": "0x55dbc110cb10-Expr", + "right": "0x55dbc110ca30-Expr", "op": "MULTIPLY" }, { - "id": "0x558d739feb10-Expr", + "id": "0x55dbc110cb10-Expr", "variantKey": "Designator", - "Designator": "0x558d73abb730-Designator" + "Designator": "0x55dbc11c9730-Designator" }, { - "id": "0x558d73abb730-Designator", + "id": "0x55dbc11c9730-Designator", "variantKey": "DataRef", - "DataRef": "0x558d73abb740-DataRef" + "DataRef": "0x55dbc11c9740-DataRef" }, { - "id": "0x558d73abb740-DataRef", + "id": "0x55dbc11c9740-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x558d739fdb00-ArrayElement" + "ArrayElement": "0x55dbc110bb00-ArrayElement" }, { - "id": "0x558d739fdb00-ArrayElement", - "base": "0x558d739fdb00-DataRef", + "id": "0x55dbc110bb00-ArrayElement", + "base": "0x55dbc110bb00-DataRef", "subscripts": [ - "0x558d739fdc00-SectionSubscript", - "0x558d73abb6f0-SectionSubscript" + "0x55dbc110bc00-SectionSubscript", + "0x55dbc11c96f0-SectionSubscript" ] }, { - "id": "0x558d739fdb00-DataRef", + "id": "0x55dbc110bb00-DataRef", "variantKey": "Name", - "Name": "0x558d739fdb00-Name" + "Name": "0x55dbc110bb00-Name" }, { - "id": "0x558d739fdb00-Name", + "id": "0x55dbc110bb00-Name", "source": "c" }, { - "id": "0x558d739fdc00-SectionSubscript", + "id": "0x55dbc110bc00-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739fd830-Expr" + "Expr": "0x55dbc110b830-Expr" }, { - "id": "0x558d739fd830-Expr", + "id": "0x55dbc110b830-Expr", "variantKey": "Designator", - "Designator": "0x558d739fdf90-Designator" + "Designator": "0x55dbc110bf90-Designator" }, { - "id": "0x558d739fdf90-Designator", + "id": "0x55dbc110bf90-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739fdfa0-DataRef" + "DataRef": "0x55dbc110bfa0-DataRef" }, { - "id": "0x558d739fdfa0-DataRef", + "id": "0x55dbc110bfa0-DataRef", "variantKey": "Name", - "Name": "0x558d739fdfa0-Name" + "Name": "0x55dbc110bfa0-Name" }, { - "id": "0x558d739fdfa0-Name", + "id": "0x55dbc110bfa0-Name", "source": "k" }, { - "id": "0x558d73abb6f0-SectionSubscript", + "id": "0x55dbc11c96f0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739fd910-Expr" + "Expr": "0x55dbc110b910-Expr" }, { - "id": "0x558d739fd910-Expr", + "id": "0x55dbc110b910-Expr", "variantKey": "Designator", - "Designator": "0x558d739fdd90-Designator" + "Designator": "0x55dbc110bd90-Designator" }, { - "id": "0x558d739fdd90-Designator", + "id": "0x55dbc110bd90-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739fdda0-DataRef" + "DataRef": "0x55dbc110bda0-DataRef" }, { - "id": "0x558d739fdda0-DataRef", + "id": "0x55dbc110bda0-DataRef", "variantKey": "Name", - "Name": "0x558d739fdda0-Name" + "Name": "0x55dbc110bda0-Name" }, { - "id": "0x558d739fdda0-Name", + "id": "0x55dbc110bda0-Name", "source": "i" }, { - "id": "0x558d739fea30-Expr", + "id": "0x55dbc110ca30-Expr", "variantKey": "Designator", - "Designator": "0x558d73abbba0-Designator" + "Designator": "0x55dbc11c9ba0-Designator" }, { - "id": "0x558d73abbba0-Designator", + "id": "0x55dbc11c9ba0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d73abbbb0-DataRef" + "DataRef": "0x55dbc11c9bb0-DataRef" }, { - "id": "0x558d73abbbb0-DataRef", + "id": "0x55dbc11c9bb0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x558d739fe1e0-ArrayElement" + "ArrayElement": "0x55dbc110c1e0-ArrayElement" }, { - "id": "0x558d739fe1e0-ArrayElement", - "base": "0x558d739fe1e0-DataRef", + "id": "0x55dbc110c1e0-ArrayElement", + "base": "0x55dbc110c1e0-DataRef", "subscripts": [ - "0x558d73abbb10-SectionSubscript", - "0x558d73abbb60-SectionSubscript" + "0x55dbc11c9b10-SectionSubscript", + "0x55dbc11c9b60-SectionSubscript" ] }, { - "id": "0x558d739fe1e0-DataRef", + "id": "0x55dbc110c1e0-DataRef", "variantKey": "Name", - "Name": "0x558d739fe1e0-Name" + "Name": "0x55dbc110c1e0-Name" }, { - "id": "0x558d739fe1e0-Name", + "id": "0x55dbc110c1e0-Name", "source": "d" }, { - "id": "0x558d73abbb10-SectionSubscript", + "id": "0x55dbc11c9b10-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739fddf0-Expr" + "Expr": "0x55dbc110bdf0-Expr" }, { - "id": "0x558d739fddf0-Expr", + "id": "0x55dbc110bdf0-Expr", "variantKey": "Designator", - "Designator": "0x558d739fe670-Designator" + "Designator": "0x55dbc110c670-Designator" }, { - "id": "0x558d739fe670-Designator", + "id": "0x55dbc110c670-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739fe680-DataRef" + "DataRef": "0x55dbc110c680-DataRef" }, { - "id": "0x558d739fe680-DataRef", + "id": "0x55dbc110c680-DataRef", "variantKey": "Name", - "Name": "0x558d739fe680-Name" + "Name": "0x55dbc110c680-Name" }, { - "id": "0x558d739fe680-Name", + "id": "0x55dbc110c680-Name", "source": "j" }, { - "id": "0x558d73abbb60-SectionSubscript", + "id": "0x55dbc11c9b60-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739fdff0-Expr" + "Expr": "0x55dbc110bff0-Expr" }, { - "id": "0x558d739fdff0-Expr", + "id": "0x55dbc110bff0-Expr", "variantKey": "Designator", - "Designator": "0x558d739fe470-Designator" + "Designator": "0x55dbc110c470-Designator" }, { - "id": "0x558d739fe470-Designator", + "id": "0x55dbc110c470-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739fe480-DataRef" + "DataRef": "0x55dbc110c480-DataRef" }, { - "id": "0x558d739fe480-DataRef", + "id": "0x55dbc110c480-DataRef", "variantKey": "Name", - "Name": "0x558d739fe480-Name" + "Name": "0x55dbc110c480-Name" }, { - "id": "0x558d739fe480-Name", + "id": "0x55dbc110c480-Name", "source": "k" }, { - "id": "0x558d739fef20-Statement", - "statement": "0x558d739fef30-EndDoStmt", + "id": "0x55dbc110cf20-Statement", + "statement": "0x55dbc110cf30-EndDoStmt", "source": "end do" }, { - "id": "0x558d739fef30-EndDoStmt" + "id": "0x55dbc110cf30-EndDoStmt" }, { - "id": "0x558d739ff040-Statement", - "statement": "0x558d739ff050-EndDoStmt", + "id": "0x55dbc110d040-Statement", + "statement": "0x55dbc110d050-EndDoStmt", "source": "end do" }, { - "id": "0x558d739ff050-EndDoStmt" + "id": "0x55dbc110d050-EndDoStmt" }, { - "id": "0x558d739ff160-Statement", - "statement": "0x558d739ff170-EndDoStmt", + "id": "0x55dbc110d160-Statement", + "statement": "0x55dbc110d170-EndDoStmt", "source": "end do" }, { - "id": "0x558d739ff170-EndDoStmt" + "id": "0x55dbc110d170-EndDoStmt" }, { - "id": "0x558d73a00c80-ExecutionPartConstruct", + "id": "0x55dbc110ec80-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d73a00c80-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc110ec80-ExecutableConstruct" }, { - "id": "0x558d73a00c80-ExecutableConstruct", + "id": "0x55dbc110ec80-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x558d739f5550-DoConstruct" + "DoConstruct": "0x55dbc1103550-DoConstruct" }, { - "id": "0x558d739f5550-DoConstruct", - "Statement": "0x558d739f55a8-Statement", + "id": "0x55dbc1103550-DoConstruct", + "Statement": "0x55dbc11035a8-Statement", "ExecutionPartConstruct": [ - "0x558d73a00c20-ExecutionPartConstruct" + "0x55dbc110ec20-ExecutionPartConstruct" ], - "Statement": "0x558d739f5550-Statement" + "Statement": "0x55dbc1103550-Statement" }, { - "id": "0x558d739f55a8-Statement", - "statement": "0x558d739f55b8-NonLabelDoStmt", + "id": "0x55dbc11035a8-Statement", + "statement": "0x55dbc11035b8-NonLabelDoStmt", "source": "do i = 1, ni" }, { - "id": "0x558d739f55b8-NonLabelDoStmt", - "LoopControl": "0x558d739f55b8-LoopControl" + "id": "0x55dbc11035b8-NonLabelDoStmt", + "LoopControl": "0x55dbc11035b8-LoopControl" }, { - "id": "0x558d739f55b8-LoopControl", + "id": "0x55dbc11035b8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x558d739f55b8-LoopBounds" + "LoopBounds": "0x55dbc11035b8-LoopBounds" }, { - "id": "0x558d739f55b8-LoopBounds", - "var": "0x558d739f55b8-Name", - "lower": "0x558d739ff280-Expr", - "upper": "0x558d739ff360-Expr" + "id": "0x55dbc11035b8-LoopBounds", + "var": "0x55dbc11035b8-Name", + "lower": "0x55dbc110d280-Expr", + "upper": "0x55dbc110d360-Expr" }, { - "id": "0x558d739f55b8-Name", + "id": "0x55dbc11035b8-Name", "source": "i" }, { - "id": "0x558d739ff280-Expr", + "id": "0x55dbc110d280-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739ff2a0-LiteralConstant" + "LiteralConstant": "0x55dbc110d2a0-LiteralConstant" }, { - "id": "0x558d739ff2a0-LiteralConstant", + "id": "0x55dbc110d2a0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739ff2a0-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc110d2a0-IntLiteralConstant" }, { - "id": "0x558d739ff2a0-IntLiteralConstant", + "id": "0x55dbc110d2a0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x558d739ff360-Expr", + "id": "0x55dbc110d360-Expr", "variantKey": "Designator", - "Designator": "0x558d739fe7b0-Designator" + "Designator": "0x55dbc110c7b0-Designator" }, { - "id": "0x558d739fe7b0-Designator", + "id": "0x55dbc110c7b0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739fe7c0-DataRef" + "DataRef": "0x55dbc110c7c0-DataRef" }, { - "id": "0x558d739fe7c0-DataRef", + "id": "0x55dbc110c7c0-DataRef", "variantKey": "Name", - "Name": "0x558d739fe7c0-Name" + "Name": "0x55dbc110c7c0-Name" }, { - "id": "0x558d739fe7c0-Name", + "id": "0x55dbc110c7c0-Name", "source": "ni" }, { - "id": "0x558d739f5590-ExecutionPartConstruct" + "id": "0x55dbc1103590-ExecutionPartConstruct" }, { - "id": "0x558d73a00c20-ExecutionPartConstruct", + "id": "0x55dbc110ec20-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d73a00c20-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc110ec20-ExecutableConstruct" }, { - "id": "0x558d73a00c20-ExecutableConstruct", + "id": "0x55dbc110ec20-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x558d739f5430-DoConstruct" + "DoConstruct": "0x55dbc1103430-DoConstruct" }, { - "id": "0x558d739f5430-DoConstruct", - "Statement": "0x558d739f5488-Statement", + "id": "0x55dbc1103430-DoConstruct", + "Statement": "0x55dbc1103488-Statement", "ExecutionPartConstruct": [ - "0x558d739fada0-ExecutionPartConstruct", - "0x558d73a00bc0-ExecutionPartConstruct" + "0x55dbc1108da0-ExecutionPartConstruct", + "0x55dbc110ebc0-ExecutionPartConstruct" ], - "Statement": "0x558d739f5430-Statement" + "Statement": "0x55dbc1103430-Statement" }, { - "id": "0x558d739f5488-Statement", - "statement": "0x558d739f5498-NonLabelDoStmt", + "id": "0x55dbc1103488-Statement", + "statement": "0x55dbc1103498-NonLabelDoStmt", "source": "do j = 1, nl" }, { - "id": "0x558d739f5498-NonLabelDoStmt", - "LoopControl": "0x558d739f5498-LoopControl" + "id": "0x55dbc1103498-NonLabelDoStmt", + "LoopControl": "0x55dbc1103498-LoopControl" }, { - "id": "0x558d739f5498-LoopControl", + "id": "0x55dbc1103498-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x558d739f5498-LoopBounds" + "LoopBounds": "0x55dbc1103498-LoopBounds" }, { - "id": "0x558d739f5498-LoopBounds", - "var": "0x558d739f5498-Name", - "lower": "0x558d739ff440-Expr", - "upper": "0x558d739ff520-Expr" + "id": "0x55dbc1103498-LoopBounds", + "var": "0x55dbc1103498-Name", + "lower": "0x55dbc110d440-Expr", + "upper": "0x55dbc110d520-Expr" }, { - "id": "0x558d739f5498-Name", + "id": "0x55dbc1103498-Name", "source": "j" }, { - "id": "0x558d739ff440-Expr", + "id": "0x55dbc110d440-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739ff460-LiteralConstant" + "LiteralConstant": "0x55dbc110d460-LiteralConstant" }, { - "id": "0x558d739ff460-LiteralConstant", + "id": "0x55dbc110d460-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739ff460-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc110d460-IntLiteralConstant" }, { - "id": "0x558d739ff460-IntLiteralConstant", + "id": "0x55dbc110d460-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x558d739ff520-Expr", + "id": "0x55dbc110d520-Expr", "variantKey": "Designator", - "Designator": "0x558d739fa390-Designator" + "Designator": "0x55dbc1108390-Designator" }, { - "id": "0x558d739fa390-Designator", + "id": "0x55dbc1108390-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739fa3a0-DataRef" + "DataRef": "0x55dbc11083a0-DataRef" }, { - "id": "0x558d739fa3a0-DataRef", + "id": "0x55dbc11083a0-DataRef", "variantKey": "Name", - "Name": "0x558d739fa3a0-Name" + "Name": "0x55dbc11083a0-Name" }, { - "id": "0x558d739fa3a0-Name", + "id": "0x55dbc11083a0-Name", "source": "nl" }, { - "id": "0x558d739f5470-ExecutionPartConstruct" + "id": "0x55dbc1103470-ExecutionPartConstruct" }, { - "id": "0x558d739fada0-ExecutionPartConstruct", + "id": "0x55dbc1108da0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739fada0-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc1108da0-ExecutableConstruct" }, { - "id": "0x558d739fada0-ExecutableConstruct", + "id": "0x55dbc1108da0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739fada0-Statement" + "Statement": "0x55dbc1108da0-Statement" }, { - "id": "0x558d739fada0-Statement", - "statement": "0x558d739fadb0-ActionStmt", + "id": "0x55dbc1108da0-Statement", + "statement": "0x55dbc1108db0-ActionStmt", "source": "g(j, i) = 0.0" }, { - "id": "0x558d739fadb0-ActionStmt", + "id": "0x55dbc1108db0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x558d739ff9e0-AssignmentStmt" + "AssignmentStmt": "0x55dbc110d9e0-AssignmentStmt" }, { - "id": "0x558d739ff9e0-AssignmentStmt", - "Variable": "0x558d739ffac0-Variable", - "Expr": "0x558d739ff9f0-Expr" + "id": "0x55dbc110d9e0-AssignmentStmt", + "Variable": "0x55dbc110dac0-Variable", + "Expr": "0x55dbc110d9f0-Expr" }, { - "id": "0x558d739ffac0-Variable", + "id": "0x55dbc110dac0-Variable", "variantKey": "Designator", - "Designator": "0x558d73abb240-Designator" + "Designator": "0x55dbc11c9240-Designator" }, { - "id": "0x558d73abb240-Designator", + "id": "0x55dbc11c9240-Designator", "variantKey": "DataRef", - "DataRef": "0x558d73abb250-DataRef" + "DataRef": "0x55dbc11c9250-DataRef" }, { - "id": "0x558d73abb250-DataRef", + "id": "0x55dbc11c9250-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x558d739fe8c0-ArrayElement" + "ArrayElement": "0x55dbc110c8c0-ArrayElement" }, { - "id": "0x558d739fe8c0-ArrayElement", - "base": "0x558d739fe8c0-DataRef", + "id": "0x55dbc110c8c0-ArrayElement", + "base": "0x55dbc110c8c0-DataRef", "subscripts": [ - "0x558d73abb2b0-SectionSubscript", - "0x558d73abd190-SectionSubscript" + "0x55dbc11c92b0-SectionSubscript", + "0x55dbc11cb190-SectionSubscript" ] }, { - "id": "0x558d739fe8c0-DataRef", + "id": "0x55dbc110c8c0-DataRef", "variantKey": "Name", - "Name": "0x558d739fe8c0-Name" + "Name": "0x55dbc110c8c0-Name" }, { - "id": "0x558d739fe8c0-Name", + "id": "0x55dbc110c8c0-Name", "source": "g" }, { - "id": "0x558d73abb2b0-SectionSubscript", + "id": "0x55dbc11c92b0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739fe4d0-Expr" + "Expr": "0x55dbc110c4d0-Expr" }, { - "id": "0x558d739fe4d0-Expr", + "id": "0x55dbc110c4d0-Expr", "variantKey": "Designator", - "Designator": "0x558d739fd9f0-Designator" + "Designator": "0x55dbc110b9f0-Designator" }, { - "id": "0x558d739fd9f0-Designator", + "id": "0x55dbc110b9f0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739fda00-DataRef" + "DataRef": "0x55dbc110ba00-DataRef" }, { - "id": "0x558d739fda00-DataRef", + "id": "0x55dbc110ba00-DataRef", "variantKey": "Name", - "Name": "0x558d739fda00-Name" + "Name": "0x55dbc110ba00-Name" }, { - "id": "0x558d739fda00-Name", + "id": "0x55dbc110ba00-Name", "source": "j" }, { - "id": "0x558d73abd190-SectionSubscript", + "id": "0x55dbc11cb190-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739fe6d0-Expr" + "Expr": "0x55dbc110c6d0-Expr" }, { - "id": "0x558d739fe6d0-Expr", + "id": "0x55dbc110c6d0-Expr", "variantKey": "Designator", - "Designator": "0x558d739fb470-Designator" + "Designator": "0x55dbc1109470-Designator" }, { - "id": "0x558d739fb470-Designator", + "id": "0x55dbc1109470-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739fb480-DataRef" + "DataRef": "0x55dbc1109480-DataRef" }, { - "id": "0x558d739fb480-DataRef", + "id": "0x55dbc1109480-DataRef", "variantKey": "Name", - "Name": "0x558d739fb480-Name" + "Name": "0x55dbc1109480-Name" }, { - "id": "0x558d739fb480-Name", + "id": "0x55dbc1109480-Name", "source": "i" }, { - "id": "0x558d739ff9f0-Expr", + "id": "0x55dbc110d9f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739ffa10-LiteralConstant" + "LiteralConstant": "0x55dbc110da10-LiteralConstant" }, { - "id": "0x558d739ffa10-LiteralConstant", + "id": "0x55dbc110da10-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x558d739ffa10-RealLiteralConstant" + "RealLiteralConstant": "0x55dbc110da10-RealLiteralConstant" }, { - "id": "0x558d739ffa10-RealLiteralConstant", - "real": "0x558d739ffa10-Real" + "id": "0x55dbc110da10-RealLiteralConstant", + "real": "0x55dbc110da10-Real" }, { - "id": "0x558d739ffa10-Real", + "id": "0x55dbc110da10-Real", "source": "0.0" }, { - "id": "0x558d73a00bc0-ExecutionPartConstruct", + "id": "0x55dbc110ebc0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d73a00bc0-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc110ebc0-ExecutableConstruct" }, { - "id": "0x558d73a00bc0-ExecutableConstruct", + "id": "0x55dbc110ebc0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x558d739f5990-DoConstruct" + "DoConstruct": "0x55dbc1103990-DoConstruct" }, { - "id": "0x558d739f5990-DoConstruct", - "Statement": "0x558d739f59e8-Statement", + "id": "0x55dbc1103990-DoConstruct", + "Statement": "0x55dbc11039e8-Statement", "ExecutionPartConstruct": [ - "0x558d739f5940-ExecutionPartConstruct" + "0x55dbc1103940-ExecutionPartConstruct" ], - "Statement": "0x558d739f5990-Statement" + "Statement": "0x55dbc1103990-Statement" }, { - "id": "0x558d739f59e8-Statement", - "statement": "0x558d739f59f8-NonLabelDoStmt", + "id": "0x55dbc11039e8-Statement", + "statement": "0x55dbc11039f8-NonLabelDoStmt", "source": "do k = 1, nj" }, { - "id": "0x558d739f59f8-NonLabelDoStmt", - "LoopControl": "0x558d739f59f8-LoopControl" + "id": "0x55dbc11039f8-NonLabelDoStmt", + "LoopControl": "0x55dbc11039f8-LoopControl" }, { - "id": "0x558d739f59f8-LoopControl", + "id": "0x55dbc11039f8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x558d739f59f8-LoopBounds" + "LoopBounds": "0x55dbc11039f8-LoopBounds" }, { - "id": "0x558d739f59f8-LoopBounds", - "var": "0x558d739f59f8-Name", - "lower": "0x558d739ffaf0-Expr", - "upper": "0x558d739ffbd0-Expr" + "id": "0x55dbc11039f8-LoopBounds", + "var": "0x55dbc11039f8-Name", + "lower": "0x55dbc110daf0-Expr", + "upper": "0x55dbc110dbd0-Expr" }, { - "id": "0x558d739f59f8-Name", + "id": "0x55dbc11039f8-Name", "source": "k" }, { - "id": "0x558d739ffaf0-Expr", + "id": "0x55dbc110daf0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558d739ffb10-LiteralConstant" + "LiteralConstant": "0x55dbc110db10-LiteralConstant" }, { - "id": "0x558d739ffb10-LiteralConstant", + "id": "0x55dbc110db10-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558d739ffb10-IntLiteralConstant" + "IntLiteralConstant": "0x55dbc110db10-IntLiteralConstant" }, { - "id": "0x558d739ffb10-IntLiteralConstant", + "id": "0x55dbc110db10-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x558d739ffbd0-Expr", + "id": "0x55dbc110dbd0-Expr", "variantKey": "Designator", - "Designator": "0x558d739ee330-Designator" + "Designator": "0x55dbc10fc330-Designator" }, { - "id": "0x558d739ee330-Designator", + "id": "0x55dbc10fc330-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739ee340-DataRef" + "DataRef": "0x55dbc10fc340-DataRef" }, { - "id": "0x558d739ee340-DataRef", + "id": "0x55dbc10fc340-DataRef", "variantKey": "Name", - "Name": "0x558d739ee340-Name" + "Name": "0x55dbc10fc340-Name" }, { - "id": "0x558d739ee340-Name", + "id": "0x55dbc10fc340-Name", "source": "nj" }, { - "id": "0x558d739f59d0-ExecutionPartConstruct" + "id": "0x55dbc11039d0-ExecutionPartConstruct" }, { - "id": "0x558d739f5940-ExecutionPartConstruct", + "id": "0x55dbc1103940-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558d739f5940-ExecutableConstruct" + "ExecutableConstruct": "0x55dbc1103940-ExecutableConstruct" }, { - "id": "0x558d739f5940-ExecutableConstruct", + "id": "0x55dbc1103940-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558d739f5940-Statement" + "Statement": "0x55dbc1103940-Statement" }, { - "id": "0x558d739f5940-Statement", - "statement": "0x558d739f5950-ActionStmt", + "id": "0x55dbc1103940-Statement", + "statement": "0x55dbc1103950-ActionStmt", "source": "g(j, i) = g(j, i) + e(k, i) * f(j, k)" }, { - "id": "0x558d739f5950-ActionStmt", + "id": "0x55dbc1103950-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x558d739f5820-AssignmentStmt" + "AssignmentStmt": "0x55dbc1103820-AssignmentStmt" }, { - "id": "0x558d739f5820-AssignmentStmt", - "Variable": "0x558d739f5900-Variable", - "Expr": "0x558d739f5830-Expr" + "id": "0x55dbc1103820-AssignmentStmt", + "Variable": "0x55dbc1103900-Variable", + "Expr": "0x55dbc1103830-Expr" }, { - "id": "0x558d739f5900-Variable", + "id": "0x55dbc1103900-Variable", "variantKey": "Designator", - "Designator": "0x558d73abbf00-Designator" + "Designator": "0x55dbc11c9f00-Designator" }, { - "id": "0x558d73abbf00-Designator", + "id": "0x55dbc11c9f00-Designator", "variantKey": "DataRef", - "DataRef": "0x558d73abbf10-DataRef" + "DataRef": "0x55dbc11c9f10-DataRef" }, { - "id": "0x558d73abbf10-DataRef", + "id": "0x55dbc11c9f10-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x558d739ff870-ArrayElement" + "ArrayElement": "0x55dbc110d870-ArrayElement" }, { - "id": "0x558d739ff870-ArrayElement", - "base": "0x558d739ff870-DataRef", + "id": "0x55dbc110d870-ArrayElement", + "base": "0x55dbc110d870-DataRef", "subscripts": [ - "0x558d73abeb90-SectionSubscript", - "0x558d73abebe0-SectionSubscript" + "0x55dbc11ccb90-SectionSubscript", + "0x55dbc11ccbe0-SectionSubscript" ] }, { - "id": "0x558d739ff870-DataRef", + "id": "0x55dbc110d870-DataRef", "variantKey": "Name", - "Name": "0x558d739ff870-Name" + "Name": "0x55dbc110d870-Name" }, { - "id": "0x558d739ff870-Name", + "id": "0x55dbc110d870-Name", "source": "g" }, { - "id": "0x558d73abeb90-SectionSubscript", + "id": "0x55dbc11ccb90-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739ff600-Expr" + "Expr": "0x55dbc110d600-Expr" }, { - "id": "0x558d739ff600-Expr", + "id": "0x55dbc110d600-Expr", "variantKey": "Designator", - "Designator": "0x558d739fded0-Designator" + "Designator": "0x55dbc110bed0-Designator" }, { - "id": "0x558d739fded0-Designator", + "id": "0x55dbc110bed0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739fdee0-DataRef" + "DataRef": "0x55dbc110bee0-DataRef" }, { - "id": "0x558d739fdee0-DataRef", + "id": "0x55dbc110bee0-DataRef", "variantKey": "Name", - "Name": "0x558d739fdee0-Name" + "Name": "0x55dbc110bee0-Name" }, { - "id": "0x558d739fdee0-Name", + "id": "0x55dbc110bee0-Name", "source": "j" }, { - "id": "0x558d73abebe0-SectionSubscript", + "id": "0x55dbc11ccbe0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739ff6e0-Expr" + "Expr": "0x55dbc110d6e0-Expr" }, { - "id": "0x558d739ff6e0-Expr", + "id": "0x55dbc110d6e0-Expr", "variantKey": "Designator", - "Designator": "0x558d739fb870-Designator" + "Designator": "0x55dbc1109870-Designator" }, { - "id": "0x558d739fb870-Designator", + "id": "0x55dbc1109870-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739fb880-DataRef" + "DataRef": "0x55dbc1109880-DataRef" }, { - "id": "0x558d739fb880-DataRef", + "id": "0x55dbc1109880-DataRef", "variantKey": "Name", - "Name": "0x558d739fb880-Name" + "Name": "0x55dbc1109880-Name" }, { - "id": "0x558d739fb880-Name", + "id": "0x55dbc1109880-Name", "source": "i" }, { - "id": "0x558d739f5830-Expr", + "id": "0x55dbc1103830-Expr", "variantKey": "Add", - "Add": "0x558d739f5850-Add" + "Add": "0x55dbc1103850-Add" }, { - "id": "0x558d739f5850-Add", - "left": "0x558d739d1010-Expr", - "right": "0x558d739e3d10-Expr", + "id": "0x55dbc1103850-Add", + "left": "0x55dbc10df010-Expr", + "right": "0x55dbc10f1d10-Expr", "op": "ADD" }, { - "id": "0x558d739d1010-Expr", + "id": "0x55dbc10df010-Expr", "variantKey": "Designator", - "Designator": "0x558d73abed70-Designator" + "Designator": "0x55dbc11ccd70-Designator" }, { - "id": "0x558d73abed70-Designator", + "id": "0x55dbc11ccd70-Designator", "variantKey": "DataRef", - "DataRef": "0x558d73abed80-DataRef" + "DataRef": "0x55dbc11ccd80-DataRef" }, { - "id": "0x558d73abed80-DataRef", + "id": "0x55dbc11ccd80-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x558d739ff9a0-ArrayElement" + "ArrayElement": "0x55dbc110d9a0-ArrayElement" }, { - "id": "0x558d739ff9a0-ArrayElement", - "base": "0x558d739ff9a0-DataRef", + "id": "0x55dbc110d9a0-ArrayElement", + "base": "0x55dbc110d9a0-DataRef", "subscripts": [ - "0x558d73abece0-SectionSubscript", - "0x558d73abed30-SectionSubscript" + "0x55dbc11ccce0-SectionSubscript", + "0x55dbc11ccd30-SectionSubscript" ] }, { - "id": "0x558d739ff9a0-DataRef", + "id": "0x55dbc110d9a0-DataRef", "variantKey": "Name", - "Name": "0x558d739ff9a0-Name" + "Name": "0x55dbc110d9a0-Name" }, { - "id": "0x558d739ff9a0-Name", + "id": "0x55dbc110d9a0-Name", "source": "g" }, { - "id": "0x558d73abece0-SectionSubscript", + "id": "0x55dbc11ccce0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739ffcb0-Expr" + "Expr": "0x55dbc110dcb0-Expr" }, { - "id": "0x558d739ffcb0-Expr", + "id": "0x55dbc110dcb0-Expr", "variantKey": "Designator", - "Designator": "0x558d739fdf30-Designator" + "Designator": "0x55dbc110bf30-Designator" }, { - "id": "0x558d739fdf30-Designator", + "id": "0x55dbc110bf30-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739fdf40-DataRef" + "DataRef": "0x55dbc110bf40-DataRef" }, { - "id": "0x558d739fdf40-DataRef", + "id": "0x55dbc110bf40-DataRef", "variantKey": "Name", - "Name": "0x558d739fdf40-Name" + "Name": "0x55dbc110bf40-Name" }, { - "id": "0x558d739fdf40-Name", + "id": "0x55dbc110bf40-Name", "source": "j" }, { - "id": "0x558d73abed30-SectionSubscript", + "id": "0x55dbc11ccd30-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d739ffd90-Expr" + "Expr": "0x55dbc110dd90-Expr" }, { - "id": "0x558d739ffd90-Expr", + "id": "0x55dbc110dd90-Expr", "variantKey": "Designator", - "Designator": "0x558d739fe610-Designator" + "Designator": "0x55dbc110c610-Designator" }, { - "id": "0x558d739fe610-Designator", + "id": "0x55dbc110c610-Designator", "variantKey": "DataRef", - "DataRef": "0x558d739fe620-DataRef" + "DataRef": "0x55dbc110c620-DataRef" }, { - "id": "0x558d739fe620-DataRef", + "id": "0x55dbc110c620-DataRef", "variantKey": "Name", - "Name": "0x558d739fe620-Name" + "Name": "0x55dbc110c620-Name" }, { - "id": "0x558d739fe620-Name", + "id": "0x55dbc110c620-Name", "source": "i" }, { - "id": "0x558d739e3d10-Expr", + "id": "0x55dbc10f1d10-Expr", "variantKey": "Multiply", - "Multiply": "0x558d739e3d30-Multiply" + "Multiply": "0x55dbc10f1d30-Multiply" }, { - "id": "0x558d739e3d30-Multiply", - "left": "0x558d739f61f0-Expr", - "right": "0x558d739f5cf0-Expr", + "id": "0x55dbc10f1d30-Multiply", + "left": "0x55dbc11041f0-Expr", + "right": "0x55dbc1103cf0-Expr", "op": "MULTIPLY" }, { - "id": "0x558d739f61f0-Expr", + "id": "0x55dbc11041f0-Expr", "variantKey": "Designator", - "Designator": "0x558d73abf110-Designator" + "Designator": "0x55dbc11cd110-Designator" }, { - "id": "0x558d73abf110-Designator", + "id": "0x55dbc11cd110-Designator", "variantKey": "DataRef", - "DataRef": "0x558d73abf120-DataRef" + "DataRef": "0x55dbc11cd120-DataRef" }, { - "id": "0x558d73abf120-DataRef", + "id": "0x55dbc11cd120-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x558d73a00360-ArrayElement" + "ArrayElement": "0x55dbc110e360-ArrayElement" }, { - "id": "0x558d73a00360-ArrayElement", - "base": "0x558d73a00360-DataRef", + "id": "0x55dbc110e360-ArrayElement", + "base": "0x55dbc110e360-DataRef", "subscripts": [ - "0x558d73a00460-SectionSubscript", - "0x558d73abf0d0-SectionSubscript" + "0x55dbc110e460-SectionSubscript", + "0x55dbc11cd0d0-SectionSubscript" ] }, { - "id": "0x558d73a00360-DataRef", + "id": "0x55dbc110e360-DataRef", "variantKey": "Name", - "Name": "0x558d73a00360-Name" + "Name": "0x55dbc110e360-Name" }, { - "id": "0x558d73a00360-Name", + "id": "0x55dbc110e360-Name", "source": "e" }, { - "id": "0x558d73a00460-SectionSubscript", + "id": "0x55dbc110e460-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d73a00090-Expr" + "Expr": "0x55dbc110e090-Expr" }, { - "id": "0x558d73a00090-Expr", + "id": "0x55dbc110e090-Expr", "variantKey": "Designator", - "Designator": "0x558d73a007f0-Designator" + "Designator": "0x55dbc110e7f0-Designator" }, { - "id": "0x558d73a007f0-Designator", + "id": "0x55dbc110e7f0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d73a00800-DataRef" + "DataRef": "0x55dbc110e800-DataRef" }, { - "id": "0x558d73a00800-DataRef", + "id": "0x55dbc110e800-DataRef", "variantKey": "Name", - "Name": "0x558d73a00800-Name" + "Name": "0x55dbc110e800-Name" }, { - "id": "0x558d73a00800-Name", + "id": "0x55dbc110e800-Name", "source": "k" }, { - "id": "0x558d73abf0d0-SectionSubscript", + "id": "0x55dbc11cd0d0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d73a00170-Expr" + "Expr": "0x55dbc110e170-Expr" }, { - "id": "0x558d73a00170-Expr", + "id": "0x55dbc110e170-Expr", "variantKey": "Designator", - "Designator": "0x558d73a005f0-Designator" + "Designator": "0x55dbc110e5f0-Designator" }, { - "id": "0x558d73a005f0-Designator", + "id": "0x55dbc110e5f0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d73a00600-DataRef" + "DataRef": "0x55dbc110e600-DataRef" }, { - "id": "0x558d73a00600-DataRef", + "id": "0x55dbc110e600-DataRef", "variantKey": "Name", - "Name": "0x558d73a00600-Name" + "Name": "0x55dbc110e600-Name" }, { - "id": "0x558d73a00600-Name", + "id": "0x55dbc110e600-Name", "source": "i" }, { - "id": "0x558d739f5cf0-Expr", + "id": "0x55dbc1103cf0-Expr", "variantKey": "Designator", - "Designator": "0x558d73abf580-Designator" + "Designator": "0x55dbc11cd580-Designator" }, { - "id": "0x558d73abf580-Designator", + "id": "0x55dbc11cd580-Designator", "variantKey": "DataRef", - "DataRef": "0x558d73abf590-DataRef" + "DataRef": "0x55dbc11cd590-DataRef" }, { - "id": "0x558d73abf590-DataRef", + "id": "0x55dbc11cd590-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x558d73a00a40-ArrayElement" + "ArrayElement": "0x55dbc110ea40-ArrayElement" }, { - "id": "0x558d73a00a40-ArrayElement", - "base": "0x558d73a00a40-DataRef", + "id": "0x55dbc110ea40-ArrayElement", + "base": "0x55dbc110ea40-DataRef", "subscripts": [ - "0x558d73abf4f0-SectionSubscript", - "0x558d73abf540-SectionSubscript" + "0x55dbc11cd4f0-SectionSubscript", + "0x55dbc11cd540-SectionSubscript" ] }, { - "id": "0x558d73a00a40-DataRef", + "id": "0x55dbc110ea40-DataRef", "variantKey": "Name", - "Name": "0x558d73a00a40-Name" + "Name": "0x55dbc110ea40-Name" }, { - "id": "0x558d73a00a40-Name", + "id": "0x55dbc110ea40-Name", "source": "f" }, { - "id": "0x558d73abf4f0-SectionSubscript", + "id": "0x55dbc11cd4f0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d73a00650-Expr" + "Expr": "0x55dbc110e650-Expr" }, { - "id": "0x558d73a00650-Expr", + "id": "0x55dbc110e650-Expr", "variantKey": "Designator", - "Designator": "0x558d73a00ed0-Designator" + "Designator": "0x55dbc110eed0-Designator" }, { - "id": "0x558d73a00ed0-Designator", + "id": "0x55dbc110eed0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d73a00ee0-DataRef" + "DataRef": "0x55dbc110eee0-DataRef" }, { - "id": "0x558d73a00ee0-DataRef", + "id": "0x55dbc110eee0-DataRef", "variantKey": "Name", - "Name": "0x558d73a00ee0-Name" + "Name": "0x55dbc110eee0-Name" }, { - "id": "0x558d73a00ee0-Name", + "id": "0x55dbc110eee0-Name", "source": "j" }, { - "id": "0x558d73abf540-SectionSubscript", + "id": "0x55dbc11cd540-SectionSubscript", "variantKey": "Expr", - "Expr": "0x558d73a00850-Expr" + "Expr": "0x55dbc110e850-Expr" }, { - "id": "0x558d73a00850-Expr", + "id": "0x55dbc110e850-Expr", "variantKey": "Designator", - "Designator": "0x558d73a00cd0-Designator" + "Designator": "0x55dbc110ecd0-Designator" }, { - "id": "0x558d73a00cd0-Designator", + "id": "0x55dbc110ecd0-Designator", "variantKey": "DataRef", - "DataRef": "0x558d73a00ce0-DataRef" + "DataRef": "0x55dbc110ece0-DataRef" }, { - "id": "0x558d73a00ce0-DataRef", + "id": "0x55dbc110ece0-DataRef", "variantKey": "Name", - "Name": "0x558d73a00ce0-Name" + "Name": "0x55dbc110ece0-Name" }, { - "id": "0x558d73a00ce0-Name", + "id": "0x55dbc110ece0-Name", "source": "k" }, { - "id": "0x558d739f5990-Statement", - "statement": "0x558d739f59a0-EndDoStmt", + "id": "0x55dbc1103990-Statement", + "statement": "0x55dbc11039a0-EndDoStmt", "source": "end do" }, { - "id": "0x558d739f59a0-EndDoStmt" + "id": "0x55dbc11039a0-EndDoStmt" }, { - "id": "0x558d739f5430-Statement", - "statement": "0x558d739f5440-EndDoStmt", + "id": "0x55dbc1103430-Statement", + "statement": "0x55dbc1103440-EndDoStmt", "source": "end do" }, { - "id": "0x558d739f5440-EndDoStmt" + "id": "0x55dbc1103440-EndDoStmt" }, { - "id": "0x558d739f5550-Statement", - "statement": "0x558d739f5560-EndDoStmt", + "id": "0x55dbc1103550-Statement", + "statement": "0x55dbc1103560-EndDoStmt", "source": "end do" }, { - "id": "0x558d739f5560-EndDoStmt" + "id": "0x55dbc1103560-EndDoStmt" }, { - "id": "0x558d73a01620-Statement", - "statement": "0x558d73a01630-EndSubroutineStmt", + "id": "0x55dbc110f620-Statement", + "statement": "0x55dbc110f630-EndSubroutineStmt", "source": "end subroutine" }, { - "id": "0x558d73a01630-EndSubroutineStmt" + "id": "0x55dbc110f630-EndSubroutineStmt" }, { - "id": "0x558d739e4030-Statement", - "statement": "0x558d739e4040-EndProgramStmt", + "id": "0x55dbc10f2030-Statement", + "statement": "0x55dbc10f2040-EndProgramStmt", "source": "end program" }, { - "id": "0x558d739e4040-EndProgramStmt" + "id": "0x55dbc10f2040-EndProgramStmt" } ], "comments": [ { "text": "******************************************************************************", - "stmtId": "0x558d739e4178-Statement", + "stmtId": "0x55dbc10f2178-Statement", "trailing": false }, { "text": "", - "stmtId": "0x558d739e4178-Statement", + "stmtId": "0x55dbc10f2178-Statement", "trailing": false }, { "text": " 3mm.F90: This file is part of the PolyBench/Fortran 1.0 test suite.", - "stmtId": "0x558d739e4178-Statement", + "stmtId": "0x55dbc10f2178-Statement", "trailing": false }, { "text": "", - "stmtId": "0x558d739e4178-Statement", + "stmtId": "0x55dbc10f2178-Statement", "trailing": false }, { "text": " Contact: Louis-Noel Pouchet ", - "stmtId": "0x558d739e4178-Statement", + "stmtId": "0x55dbc10f2178-Statement", "trailing": false }, { "text": " Web address: http://polybench.sourceforge.net", - "stmtId": "0x558d739e4178-Statement", + "stmtId": "0x55dbc10f2178-Statement", "trailing": false }, { "text": "", - "stmtId": "0x558d739e4178-Statement", + "stmtId": "0x55dbc10f2178-Statement", "trailing": false }, { "text": "******************************************************************************", - "stmtId": "0x558d739e4178-Statement", + "stmtId": "0x55dbc10f2178-Statement", "trailing": false }, { "text": " Include polybench common header.", - "stmtId": "0x558d739e4178-Statement", + "stmtId": "0x55dbc10f2178-Statement", "trailing": false }, { "text": " Include benchmark-specific header.", - "stmtId": "0x558d739e4178-Statement", + "stmtId": "0x55dbc10f2178-Statement", "trailing": false }, { "text": " Default data type is double, default size is 4000.", - "stmtId": "0x558d739e4178-Statement", + "stmtId": "0x55dbc10f2178-Statement", "trailing": false }, { "text": " Allocation of Arrays", - "stmtId": "0x558d739d3030-Statement", + "stmtId": "0x55dbc10e1030-Statement", "trailing": false }, { "text": " Initialization", - "stmtId": "0x558d739d9ac0-Statement", + "stmtId": "0x55dbc10e7ac0-Statement", "trailing": false }, { "text": " Kernel Execution", - "stmtId": "0x558d739d8980-Statement", + "stmtId": "0x55dbc10e6980-Statement", "trailing": false }, { "text": " Prevent dead-code elimination. All live-out data must be printed", - "stmtId": "0x558d739d8340-Statement", + "stmtId": "0x55dbc10e6340-Statement", "trailing": false }, { "text": " by the function call in argument.", - "stmtId": "0x558d739d8340-Statement", + "stmtId": "0x55dbc10e6340-Statement", "trailing": false }, { "text": " Deallocation of Arrays", - "stmtId": "0x558d739eb4e0-Statement", + "stmtId": "0x55dbc10f94e0-Statement", "trailing": false }, { "text": "$pragma scop", - "stmtId": "0x558d739fc958-Statement", + "stmtId": "0x55dbc110a958-Statement", "trailing": false }, { "text": " E := A*B", - "stmtId": "0x558d739fc958-Statement", + "stmtId": "0x55dbc110a958-Statement", "trailing": false }, { "text": " F := C*D", - "stmtId": "0x558d739ff1b8-Statement", + "stmtId": "0x55dbc110d1b8-Statement", "trailing": false }, { "text": " G := E*F", - "stmtId": "0x558d739f55a8-Statement", + "stmtId": "0x55dbc11035a8-Statement", "trailing": false }, { "text": "$pragma endscop", - "stmtId": "0x558d73a01620-Statement", + "stmtId": "0x55dbc110f620-Statement", "trailing": false } ], diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangData.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangData.java index 06b01362..a14eca0f 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangData.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangData.java @@ -29,7 +29,9 @@ public FlangData(Map attributes) { } public FlangAttributes get(String id) { - return attributes.get(id); + var attrs = attributes.get(id); + Objects.requireNonNull(attrs, () -> "Could not find attributes for id '" + id + "'"); + return attrs; } public boolean isIdInteger(String id) { diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AllocProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AllocProcessors.java index 1d319102..e31f1506 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AllocProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AllocProcessors.java @@ -41,7 +41,7 @@ public void varAllocOption(VarAllocOption option) { var variant = attrs.getVariantName(); if (variant == FlangName.STAT_OR_ERRMSG) { - attrs = attributes().get(variant.toString()); + attrs = attributes().get(attrs.getVariantString()); variant = attrs.getVariantName(); } @@ -53,7 +53,8 @@ public void varAllocOption(VarAllocOption option) { }; option.set(VarAllocOption.KIND, kind); - var variableId = attributes().getString(option, FlangName.VARIABLE.getString(), variant); + var childId = attrs.getVariantString(); + var variableId = attributes().get(childId).getString(FlangName.VARIABLE); var variable = getChild(variableId); option.addChild(variable); } From c73cbe24e71e7cf9859ed6b04277d79278e37419 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 27 Jul 2026 23:16:06 +0100 Subject: [PATCH 149/260] Fix continuation line limit trigger --- .../ast/nodes/program/FortranFile.java | 2 +- .../parser/continuation_line.expected.f | 6 +- .../fortran/parser/continuation_line.f | 4 +- .../fortran/parser/continuation_line.json | 387 ++++++++++-------- 4 files changed, 235 insertions(+), 164 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java index a97481b0..fc33689e 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java @@ -119,7 +119,7 @@ private String compactLine(String line) { continue; } - if (lineSize == COLUMN_LIMIT - 1) { + if (lineSize == COLUMN_LIMIT) { newLine.append("\n +"); lineSize = 6; } diff --git a/FortranParser/resources-test/fortran/parser/continuation_line.expected.f b/FortranParser/resources-test/fortran/parser/continuation_line.expected.f index 2c047efc..1769c11c 100644 --- a/FortranParser/resources-test/fortran/parser/continuation_line.expected.f +++ b/FortranParser/resources-test/fortran/parser/continuation_line.expected.f @@ -1,4 +1,6 @@ PROGRAMCONTINUATION_LINE - INTEGERa(1000),b(100),c(100),d(100),e(100),f(100),g(100),code,err - +or + INTEGERa(1000),b(100),c(100),d(100),e(100),f(100),g(100),code,erro + +r_here + WRITE(*,*)"REALLY cc + +c LONG STRING" END \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/continuation_line.f b/FortranParser/resources-test/fortran/parser/continuation_line.f index dfa89b0d..571b0b3b 100644 --- a/FortranParser/resources-test/fortran/parser/continuation_line.f +++ b/FortranParser/resources-test/fortran/parser/continuation_line.f @@ -1,4 +1,6 @@ program continuation_line integer a(1000),b(100),c(100),d(100),e(100),f(100),g(100),code - + ,error + + ,error_here + write (*,*) 'REALLY + =ccc LONG STRING' end program continuation_line \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/continuation_line.json b/FortranParser/resources-test/fortran/parser/continuation_line.json index 83dbf196..1ec970d8 100644 --- a/FortranParser/resources-test/fortran/parser/continuation_line.json +++ b/FortranParser/resources-test/fortran/parser/continuation_line.json @@ -2,388 +2,455 @@ "fileExtension": "f", "nodes": [ { - "id": "0x561c6f709f00-Program", + "id": "0x55a5bfc43f00-Program", "ProgramUnit": [ - "0x561c6f74c0c0-ProgramUnit" + "0x55a5bfc86030-ProgramUnit" ] }, { - "id": "0x561c6f74c0c0-ProgramUnit", + "id": "0x55a5bfc86030-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x561c6f737cc0-MainProgram" + "MainProgram": "0x55a5bfc80930-MainProgram" }, { - "id": "0x561c6f737cc0-MainProgram", - "Statement": "0x561c6f737e08-Statement", - "SpecificationPart": "0x561c6f737d60-SpecificationPart", - "ExecutionPart": "0x561c6f737d48-ExecutionPart", - "Statement": "0x561c6f737cc0-Statement" + "id": "0x55a5bfc80930-MainProgram", + "Statement": "0x55a5bfc80a78-Statement", + "SpecificationPart": "0x55a5bfc809d0-SpecificationPart", + "ExecutionPart": "0x55a5bfc809b8-ExecutionPart", + "Statement": "0x55a5bfc80930-Statement" }, { - "id": "0x561c6f737e08-Statement", - "statement": "0x561c6f737e18-ProgramStmt", + "id": "0x55a5bfc80a78-Statement", + "statement": "0x55a5bfc80a88-ProgramStmt", "source": "programCONTINUATION_LINE" }, { - "id": "0x561c6f737e18-ProgramStmt", - "Name": "0x561c6f737e18-Name" + "id": "0x55a5bfc80a88-ProgramStmt", + "Name": "0x55a5bfc80a88-Name" }, { - "id": "0x561c6f737e18-Name", + "id": "0x55a5bfc80a88-Name", "source": "CONTINUATION_LINE" }, { - "id": "0x561c6f737d60-SpecificationPart", - "ImplicitPart": "0x561c6f737d78-ImplicitPart", + "id": "0x55a5bfc809d0-SpecificationPart", + "ImplicitPart": "0x55a5bfc809e8-ImplicitPart", "DeclarationConstruct": [ - "0x561c6f74aca0-DeclarationConstruct" + "0x55a5bfc6e9b0-DeclarationConstruct" ] }, { - "id": "0x561c6f737d78-ImplicitPart" + "id": "0x55a5bfc809e8-ImplicitPart" }, { - "id": "0x561c6f74aca0-DeclarationConstruct", + "id": "0x55a5bfc6e9b0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x561c6f74aca0-SpecificationConstruct" + "SpecificationConstruct": "0x55a5bfc6e9b0-SpecificationConstruct" }, { - "id": "0x561c6f74aca0-SpecificationConstruct", + "id": "0x55a5bfc6e9b0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x561c6f74aca0-Statement" + "Statement": "0x55a5bfc6e9b0-Statement" }, { - "id": "0x561c6f74aca0-Statement", - "statement": "0x561c6f748f50-TypeDeclarationStmt", - "source": "integera(1000),b(100),c(100),d(100),e(100),f(100),g(100),code,error" + "id": "0x55a5bfc6e9b0-Statement", + "statement": "0x55a5bfc83780-TypeDeclarationStmt", + "source": "integera(1000),b(100),c(100),d(100),e(100),f(100),g(100),code,error_here" }, { - "id": "0x561c6f748f50-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x561c6f748f80-DeclarationTypeSpec", + "id": "0x55a5bfc83780-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55a5bfc837b0-DeclarationTypeSpec", "EntityDecl": [ - "0x561c6f74aa70-EntityDecl", - "0x561c6f749450-EntityDecl", - "0x561c6f7497e0-EntityDecl", - "0x561c6f749bd0-EntityDecl", - "0x561c6f749fc0-EntityDecl", - "0x561c6f74a3b0-EntityDecl", - "0x561c6f74a7a0-EntityDecl", - "0x561c6f74a890-EntityDecl", - "0x561c6f74a980-EntityDecl" + "0x55a5bfc6e780-EntityDecl", + "0x55a5bfc83ba0-EntityDecl", + "0x55a5bfc83f30-EntityDecl", + "0x55a5bfc84320-EntityDecl", + "0x55a5bfc84710-EntityDecl", + "0x55a5bfc84b00-EntityDecl", + "0x55a5bfc84ef0-EntityDecl", + "0x55a5bfc87130-EntityDecl", + "0x55a5bfbf9270-EntityDecl" ] }, { - "id": "0x561c6f748f80-DeclarationTypeSpec", + "id": "0x55a5bfc837b0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x561c6f748f80-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55a5bfc837b0-IntrinsicTypeSpec" }, { - "id": "0x561c6f748f80-IntrinsicTypeSpec", + "id": "0x55a5bfc837b0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x561c6f748f80-IntegerTypeSpec" + "IntegerTypeSpec": "0x55a5bfc837b0-IntegerTypeSpec" }, { - "id": "0x561c6f748f80-IntegerTypeSpec" + "id": "0x55a5bfc837b0-IntegerTypeSpec" }, { - "id": "0x561c6f74aa70-EntityDecl", - "Name": "0x561c6f74ab28-Name", - "ArraySpec": "0x561c6f74aaf0-ArraySpec" + "id": "0x55a5bfc6e780-EntityDecl", + "Name": "0x55a5bfc6e838-Name", + "ArraySpec": "0x55a5bfc6e800-ArraySpec" }, { - "id": "0x561c6f74ab28-Name", + "id": "0x55a5bfc6e838-Name", "source": "a" }, { - "id": "0x561c6f74aaf0-ArraySpec", + "id": "0x55a5bfc6e800-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x561c6f73ee30-ExplicitShapeSpec" + "0x55a5bfc795e0-ExplicitShapeSpec" ] }, { - "id": "0x561c6f73ee30-ExplicitShapeSpec", - "upper_bound": "0x561c6f73ee30-SpecificationExpr" + "id": "0x55a5bfc795e0-ExplicitShapeSpec", + "upper_bound": "0x55a5bfc795e0-SpecificationExpr" }, { - "id": "0x561c6f73ee30-SpecificationExpr", - "Expr": "0x561c6f7490c0-Expr" + "id": "0x55a5bfc795e0-SpecificationExpr", + "Expr": "0x55a5bfbe3790-Expr" }, { - "id": "0x561c6f7490c0-Expr", + "id": "0x55a5bfbe3790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561c6f7490e0-LiteralConstant" + "LiteralConstant": "0x55a5bfbe37b0-LiteralConstant" }, { - "id": "0x561c6f7490e0-LiteralConstant", + "id": "0x55a5bfbe37b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561c6f7490e0-IntLiteralConstant" + "IntLiteralConstant": "0x55a5bfbe37b0-IntLiteralConstant" }, { - "id": "0x561c6f7490e0-IntLiteralConstant", + "id": "0x55a5bfbe37b0-IntLiteralConstant", "CharBlock": "1000" }, { - "id": "0x561c6f749450-EntityDecl", - "Name": "0x561c6f749508-Name", - "ArraySpec": "0x561c6f7494d0-ArraySpec" + "id": "0x55a5bfc83ba0-EntityDecl", + "Name": "0x55a5bfc83c58-Name", + "ArraySpec": "0x55a5bfc83c20-ArraySpec" }, { - "id": "0x561c6f749508-Name", + "id": "0x55a5bfc83c58-Name", "source": "b" }, { - "id": "0x561c6f7494d0-ArraySpec", + "id": "0x55a5bfc83c20-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x561c6f73ee60-ExplicitShapeSpec" + "0x55a5bfc79610-ExplicitShapeSpec" ] }, { - "id": "0x561c6f73ee60-ExplicitShapeSpec", - "upper_bound": "0x561c6f73ee60-SpecificationExpr" + "id": "0x55a5bfc79610-ExplicitShapeSpec", + "upper_bound": "0x55a5bfc79610-SpecificationExpr" }, { - "id": "0x561c6f73ee60-SpecificationExpr", - "Expr": "0x561c6f749360-Expr" + "id": "0x55a5bfc79610-SpecificationExpr", + "Expr": "0x55a5bfc83ab0-Expr" }, { - "id": "0x561c6f749360-Expr", + "id": "0x55a5bfc83ab0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561c6f749380-LiteralConstant" + "LiteralConstant": "0x55a5bfc83ad0-LiteralConstant" }, { - "id": "0x561c6f749380-LiteralConstant", + "id": "0x55a5bfc83ad0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561c6f749380-IntLiteralConstant" + "IntLiteralConstant": "0x55a5bfc83ad0-IntLiteralConstant" }, { - "id": "0x561c6f749380-IntLiteralConstant", + "id": "0x55a5bfc83ad0-IntLiteralConstant", "CharBlock": "100" }, { - "id": "0x561c6f7497e0-EntityDecl", - "Name": "0x561c6f749898-Name", - "ArraySpec": "0x561c6f749860-ArraySpec" + "id": "0x55a5bfc83f30-EntityDecl", + "Name": "0x55a5bfc83fe8-Name", + "ArraySpec": "0x55a5bfc83fb0-ArraySpec" }, { - "id": "0x561c6f749898-Name", + "id": "0x55a5bfc83fe8-Name", "source": "c" }, { - "id": "0x561c6f749860-ArraySpec", + "id": "0x55a5bfc83fb0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x561c6f73ee90-ExplicitShapeSpec" + "0x55a5bfc79640-ExplicitShapeSpec" ] }, { - "id": "0x561c6f73ee90-ExplicitShapeSpec", - "upper_bound": "0x561c6f73ee90-SpecificationExpr" + "id": "0x55a5bfc79640-ExplicitShapeSpec", + "upper_bound": "0x55a5bfc79640-SpecificationExpr" }, { - "id": "0x561c6f73ee90-SpecificationExpr", - "Expr": "0x561c6f7496f0-Expr" + "id": "0x55a5bfc79640-SpecificationExpr", + "Expr": "0x55a5bfc83e40-Expr" }, { - "id": "0x561c6f7496f0-Expr", + "id": "0x55a5bfc83e40-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561c6f749710-LiteralConstant" + "LiteralConstant": "0x55a5bfc83e60-LiteralConstant" }, { - "id": "0x561c6f749710-LiteralConstant", + "id": "0x55a5bfc83e60-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561c6f749710-IntLiteralConstant" + "IntLiteralConstant": "0x55a5bfc83e60-IntLiteralConstant" }, { - "id": "0x561c6f749710-IntLiteralConstant", + "id": "0x55a5bfc83e60-IntLiteralConstant", "CharBlock": "100" }, { - "id": "0x561c6f749bd0-EntityDecl", - "Name": "0x561c6f749c88-Name", - "ArraySpec": "0x561c6f749c50-ArraySpec" + "id": "0x55a5bfc84320-EntityDecl", + "Name": "0x55a5bfc843d8-Name", + "ArraySpec": "0x55a5bfc843a0-ArraySpec" }, { - "id": "0x561c6f749c88-Name", + "id": "0x55a5bfc843d8-Name", "source": "d" }, { - "id": "0x561c6f749c50-ArraySpec", + "id": "0x55a5bfc843a0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x561c6f73eee0-ExplicitShapeSpec" + "0x55a5bfc79690-ExplicitShapeSpec" ] }, { - "id": "0x561c6f73eee0-ExplicitShapeSpec", - "upper_bound": "0x561c6f73eee0-SpecificationExpr" + "id": "0x55a5bfc79690-ExplicitShapeSpec", + "upper_bound": "0x55a5bfc79690-SpecificationExpr" }, { - "id": "0x561c6f73eee0-SpecificationExpr", - "Expr": "0x561c6f749ae0-Expr" + "id": "0x55a5bfc79690-SpecificationExpr", + "Expr": "0x55a5bfc84230-Expr" }, { - "id": "0x561c6f749ae0-Expr", + "id": "0x55a5bfc84230-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561c6f749b00-LiteralConstant" + "LiteralConstant": "0x55a5bfc84250-LiteralConstant" }, { - "id": "0x561c6f749b00-LiteralConstant", + "id": "0x55a5bfc84250-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561c6f749b00-IntLiteralConstant" + "IntLiteralConstant": "0x55a5bfc84250-IntLiteralConstant" }, { - "id": "0x561c6f749b00-IntLiteralConstant", + "id": "0x55a5bfc84250-IntLiteralConstant", "CharBlock": "100" }, { - "id": "0x561c6f749fc0-EntityDecl", - "Name": "0x561c6f74a078-Name", - "ArraySpec": "0x561c6f74a040-ArraySpec" + "id": "0x55a5bfc84710-EntityDecl", + "Name": "0x55a5bfc847c8-Name", + "ArraySpec": "0x55a5bfc84790-ArraySpec" }, { - "id": "0x561c6f74a078-Name", + "id": "0x55a5bfc847c8-Name", "source": "e" }, { - "id": "0x561c6f74a040-ArraySpec", + "id": "0x55a5bfc84790-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x561c6f73eff0-ExplicitShapeSpec" + "0x55a5bfc797a0-ExplicitShapeSpec" ] }, { - "id": "0x561c6f73eff0-ExplicitShapeSpec", - "upper_bound": "0x561c6f73eff0-SpecificationExpr" + "id": "0x55a5bfc797a0-ExplicitShapeSpec", + "upper_bound": "0x55a5bfc797a0-SpecificationExpr" }, { - "id": "0x561c6f73eff0-SpecificationExpr", - "Expr": "0x561c6f749ed0-Expr" + "id": "0x55a5bfc797a0-SpecificationExpr", + "Expr": "0x55a5bfc84620-Expr" }, { - "id": "0x561c6f749ed0-Expr", + "id": "0x55a5bfc84620-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561c6f749ef0-LiteralConstant" + "LiteralConstant": "0x55a5bfc84640-LiteralConstant" }, { - "id": "0x561c6f749ef0-LiteralConstant", + "id": "0x55a5bfc84640-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561c6f749ef0-IntLiteralConstant" + "IntLiteralConstant": "0x55a5bfc84640-IntLiteralConstant" }, { - "id": "0x561c6f749ef0-IntLiteralConstant", + "id": "0x55a5bfc84640-IntLiteralConstant", "CharBlock": "100" }, { - "id": "0x561c6f74a3b0-EntityDecl", - "Name": "0x561c6f74a468-Name", - "ArraySpec": "0x561c6f74a430-ArraySpec" + "id": "0x55a5bfc84b00-EntityDecl", + "Name": "0x55a5bfc84bb8-Name", + "ArraySpec": "0x55a5bfc84b80-ArraySpec" }, { - "id": "0x561c6f74a468-Name", + "id": "0x55a5bfc84bb8-Name", "source": "f" }, { - "id": "0x561c6f74a430-ArraySpec", + "id": "0x55a5bfc84b80-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x561c6f73f020-ExplicitShapeSpec" + "0x55a5bfc797d0-ExplicitShapeSpec" ] }, { - "id": "0x561c6f73f020-ExplicitShapeSpec", - "upper_bound": "0x561c6f73f020-SpecificationExpr" + "id": "0x55a5bfc797d0-ExplicitShapeSpec", + "upper_bound": "0x55a5bfc797d0-SpecificationExpr" }, { - "id": "0x561c6f73f020-SpecificationExpr", - "Expr": "0x561c6f74a2c0-Expr" + "id": "0x55a5bfc797d0-SpecificationExpr", + "Expr": "0x55a5bfc84a10-Expr" }, { - "id": "0x561c6f74a2c0-Expr", + "id": "0x55a5bfc84a10-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561c6f74a2e0-LiteralConstant" + "LiteralConstant": "0x55a5bfc84a30-LiteralConstant" }, { - "id": "0x561c6f74a2e0-LiteralConstant", + "id": "0x55a5bfc84a30-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561c6f74a2e0-IntLiteralConstant" + "IntLiteralConstant": "0x55a5bfc84a30-IntLiteralConstant" }, { - "id": "0x561c6f74a2e0-IntLiteralConstant", + "id": "0x55a5bfc84a30-IntLiteralConstant", "CharBlock": "100" }, { - "id": "0x561c6f74a7a0-EntityDecl", - "Name": "0x561c6f74a858-Name", - "ArraySpec": "0x561c6f74a820-ArraySpec" + "id": "0x55a5bfc84ef0-EntityDecl", + "Name": "0x55a5bfc84fa8-Name", + "ArraySpec": "0x55a5bfc84f70-ArraySpec" }, { - "id": "0x561c6f74a858-Name", + "id": "0x55a5bfc84fa8-Name", "source": "g" }, { - "id": "0x561c6f74a820-ArraySpec", + "id": "0x55a5bfc84f70-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x561c6f73f070-ExplicitShapeSpec" + "0x55a5bfc79820-ExplicitShapeSpec" ] }, { - "id": "0x561c6f73f070-ExplicitShapeSpec", - "upper_bound": "0x561c6f73f070-SpecificationExpr" + "id": "0x55a5bfc79820-ExplicitShapeSpec", + "upper_bound": "0x55a5bfc79820-SpecificationExpr" }, { - "id": "0x561c6f73f070-SpecificationExpr", - "Expr": "0x561c6f74a6b0-Expr" + "id": "0x55a5bfc79820-SpecificationExpr", + "Expr": "0x55a5bfc84e00-Expr" }, { - "id": "0x561c6f74a6b0-Expr", + "id": "0x55a5bfc84e00-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x561c6f74a6d0-LiteralConstant" + "LiteralConstant": "0x55a5bfc84e20-LiteralConstant" }, { - "id": "0x561c6f74a6d0-LiteralConstant", + "id": "0x55a5bfc84e20-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x561c6f74a6d0-IntLiteralConstant" + "IntLiteralConstant": "0x55a5bfc84e20-IntLiteralConstant" }, { - "id": "0x561c6f74a6d0-IntLiteralConstant", + "id": "0x55a5bfc84e20-IntLiteralConstant", "CharBlock": "100" }, { - "id": "0x561c6f74a890-EntityDecl", - "Name": "0x561c6f74a948-Name" + "id": "0x55a5bfc87130-EntityDecl", + "Name": "0x55a5bfc871e8-Name" }, { - "id": "0x561c6f74a948-Name", + "id": "0x55a5bfc871e8-Name", "source": "code" }, { - "id": "0x561c6f74a980-EntityDecl", - "Name": "0x561c6f74aa38-Name" + "id": "0x55a5bfbf9270-EntityDecl", + "Name": "0x55a5bfbf9328-Name" }, { - "id": "0x561c6f74aa38-Name", - "source": "error" + "id": "0x55a5bfbf9328-Name", + "source": "error_here" }, { - "id": "0x561c6f737d48-ExecutionPart" + "id": "0x55a5bfc809b8-ExecutionPart", + "ExecutionPartConstruct": [ + "0x55a5bfc84bf0-ExecutionPartConstruct" + ] + }, + { + "id": "0x55a5bfc809b8-ExecutionPartConstruct" + }, + { + "id": "0x55a5bfc84bf0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55a5bfc84bf0-ExecutableConstruct" + }, + { + "id": "0x55a5bfc84bf0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55a5bfc84bf0-Statement" + }, + { + "id": "0x55a5bfc84bf0-Statement", + "statement": "0x55a5bfc84c00-ActionStmt", + "source": "write(*,*)'REALLY ccc LONG STRING'" + }, + { + "id": "0x55a5bfc84c00-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x55a5bfc7b0e0-WriteStmt" + }, + { + "id": "0x55a5bfc7b0e0-WriteStmt", + "iounit": "0x55a5bfc7b0e0-IoUnit", + "format": "0x55a5bfc7b110-Format", + "controls": [], + "items": [ + "0x55a5bfc6fc10-OutputItem" + ] + }, + { + "id": "0x55a5bfc7b0e0-IoUnit", + "variantKey": "Star", + "Star": "0x55a5bfc7b0e0-Star" + }, + { + "id": "0x55a5bfc7b0e0-Star" + }, + { + "id": "0x55a5bfc7b110-Format", + "variantKey": "Star", + "Star": "0x55a5bfc7b110-Star" + }, + { + "id": "0x55a5bfc7b110-Star" + }, + { + "id": "0x55a5bfc6fc10-OutputItem", + "variantKey": "Expr", + "Expr": "0x55a5bfc6fc10-Expr" + }, + { + "id": "0x55a5bfc6fc10-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55a5bfc6fc30-LiteralConstant" + }, + { + "id": "0x55a5bfc6fc30-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55a5bfc6fc30-CharLiteralConstant" }, { - "id": "0x561c6f737d48-list" + "id": "0x55a5bfc6fc30-CharLiteralConstant", + "string": "REALLY ccc LONG STRING" }, { - "id": "0x561c6f737cc0-Statement", - "statement": "0x561c6f737cd0-EndProgramStmt", + "id": "0x55a5bfc80930-Statement", + "statement": "0x55a5bfc80940-EndProgramStmt", "source": "endprogramCONTINUATION_LINE" }, { - "id": "0x561c6f737cd0-EndProgramStmt", - "Name": "0x561c6f737cd0-Name" + "id": "0x55a5bfc80940-EndProgramStmt", + "Name": "0x55a5bfc80940-Name" }, { - "id": "0x561c6f737cd0-Name", + "id": "0x55a5bfc80940-Name", "source": "CONTINUATION_LINE" } ], From 93e03a6257fae68e61e6212d05f619ae9438ac3e Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 30 Jul 2026 14:08:35 +0100 Subject: [PATCH 150/260] Improve mismatch reporting in unit tests --- .../fortran/parser/FortranParserTest.java | 34 ++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java index 737e87b4..35213285 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -9,6 +9,7 @@ import pt.up.fe.specs.util.SpecsIo; import pt.up.fe.specs.util.SpecsStrings; import pt.up.fe.specs.util.SpecsSystem; +import pt.up.fe.specs.util.utilities.StringLines; import java.util.function.BiFunction; @@ -75,9 +76,40 @@ private static void test(String resource, BiFunction numLines) { + reportMismatch(numLines, 0, expectedLines.get(numLines), "", original); + } else if (normalizedLines.size() > numLines) { + reportMismatch(numLines, 0, "", normalizedLines.get(numLines), original); + } + } + private static void reportMismatch(int line, int col, String expected, String got, String code) { + fail("Encountered a code mismatch on line " + line + " column " + col + ".\nExpected: '" + expected + + "'\nGot: '" + got + "'\n\nGenerated code:\n" + code); } @Test From c0b975057c3fc76116ab9f7946cf8f02a6e53802 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 3 Aug 2026 14:58:17 +0100 Subject: [PATCH 151/260] Improve AST nodes for format --- .../specs/fortran/ast/FortranNodeFactory.java | 2 +- .../fortran/ast/nodes/io/ExprFormat.java | 22 ++++++++++++++++ .../fe/specs/fortran/ast/nodes/io/Format.java | 12 +++++++++ .../ast/nodes/io/FormatIoControlSpec.java | 1 - .../fortran/ast/nodes/io/LabelFormat.java | 25 ++++++++++++++++++ .../fortran/ast/nodes/io/StarFormat.java | 17 ++++++++++++ .../fortran/ast/nodes/stmt/PrintStmt.java | 2 +- .../specs/fortran/ast/nodes/utils/Format.java | 26 ------------------- .../fe/specs/fortran/parser/FlangToClass.java | 1 - .../parser/processors/UtilsProcessors.java | 1 + 10 files changed, 79 insertions(+), 30 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprFormat.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/Format.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/LabelFormat.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/StarFormat.java delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/utils/Format.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java index 154bc303..fae9884e 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java @@ -26,7 +26,7 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.EndDoStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.UseOnlyStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.UseRenameStmt; -import pt.up.fe.specs.fortran.ast.nodes.utils.Format; +import pt.up.fe.specs.fortran.ast.nodes.io.Format; import pt.up.fe.specs.fortran.ast.nodes.utils.LabelRef; import pt.up.fe.specs.fortran.ast.nodes.utils.Star; import pt.up.fe.specs.util.SpecsCheck; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprFormat.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprFormat.java new file mode 100644 index 00000000..bbeac6c7 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/ExprFormat.java @@ -0,0 +1,22 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; + +import java.util.Collection; + +public class ExprFormat extends Format { + public ExprFormat(DataStore data, Collection children) { + super(data, children); + } + + public Expr getExpr() { + return getChild(Expr.class, 0); + } + + @Override + public String getCode() { + return getExpr().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/Format.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/Format.java new file mode 100644 index 00000000..d0a4187c --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/Format.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class Format extends FortranNode { + public Format(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/FormatIoControlSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/FormatIoControlSpec.java index 675bac45..5d9e110f 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/FormatIoControlSpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/FormatIoControlSpec.java @@ -3,7 +3,6 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.utils.Format; import java.util.Collection; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/LabelFormat.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/LabelFormat.java new file mode 100644 index 00000000..06e47d4d --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/LabelFormat.java @@ -0,0 +1,25 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class LabelFormat extends Format { + public static final DataKey LABEL = KeyFactory.integer("label"); + + public LabelFormat(DataStore data, Collection children) { + super(data, children); + } + + public int getLabel() { + return get(LABEL); + } + + @Override + public String getCode() { + return Integer.toString(getLabel()); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/StarFormat.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/StarFormat.java new file mode 100644 index 00000000..ccb1c162 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/io/StarFormat.java @@ -0,0 +1,17 @@ +package pt.up.fe.specs.fortran.ast.nodes.io; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class StarFormat extends Format { + public StarFormat(DataStore data, Collection children) { + super(data, children); + } + + @Override + public String getCode() { + return "*"; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/PrintStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/PrintStmt.java index d0adaafa..348d811d 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/PrintStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/PrintStmt.java @@ -3,7 +3,7 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.utils.Format; +import pt.up.fe.specs.fortran.ast.nodes.io.Format; import pt.up.fe.specs.util.SpecsCheck; import java.util.Collection; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/utils/Format.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/utils/Format.java deleted file mode 100644 index 1e15cbfa..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/utils/Format.java +++ /dev/null @@ -1,26 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.utils; - -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; - -import java.util.Collection; - -/** - * R1215 format - */ -// TODO(Process-ing): Rewrite this node to have better type consistency -public class Format extends FortranNode { - - public Format(DataStore data, Collection children) { - super(data, children); - } - - public FortranNode getFormatType() { - return getChild(0); - } - - @Override - public String getCode() { - return getFormatType().getCode(); - } -} diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index d3c2a5b4..bd610ba1 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -53,7 +53,6 @@ import java.util.HashMap; import java.util.Map; import java.util.Optional; -import java.util.jar.Attributes; public class FlangToClass { private static final Map> NAME_TO_MAPPER = new HashMap<>(); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java index ebded658..90d1b7a2 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java @@ -1,6 +1,7 @@ package pt.up.fe.specs.fortran.parser.processors; import pt.up.fe.specs.fortran.ast.nodes.io.ExprIoControlSpec; +import pt.up.fe.specs.fortran.ast.nodes.io.Format; import pt.up.fe.specs.fortran.ast.nodes.utils.*; import pt.up.fe.specs.fortran.ast.nodes.io.enums.ExprIoControlSpecKind; import pt.up.fe.specs.fortran.parser.FlangName; From 4932416a98018540845a7eafac0079a9f1ccd656 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 3 Aug 2026 15:06:20 +0100 Subject: [PATCH 152/260] Add processors for new format nodes --- .../fe/specs/fortran/parser/FlangToClass.java | 6 ++++-- .../parser/processors/IoProcessors.java | 12 +++++++++++ .../fortran/parser/processors/Nodes.java | 5 +++-- .../parser/processors/UtilsProcessors.java | 20 ------------------- 4 files changed, 19 insertions(+), 24 deletions(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index bd610ba1..d1ca9c38 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -149,8 +149,6 @@ public class FlangToClass { NAME_TO_MAPPER.put(FlangName.LOGICAL_LITERAL_CONSTANT, ClassMapper.always(LogicalLiteral.class)); NAME_TO_MAPPER.put(FlangName.REAL_LITERAL_CONSTANT, ClassMapper.always(RealLiteral.class)); NAME_TO_MAPPER.put(FlangName.SIGNED_REAL_LITERAL_CONSTANT, ClassMapper.always(RealLiteral.class)); - NAME_TO_MAPPER.put(FlangName.FORMAT, ClassMapper.always(Format.class)); - NAME_TO_MAPPER.put(FlangName.STAR, ClassMapper.always(Star.class)); NAME_TO_MAPPER.put(FlangName.PARENTHESES, ClassMapper.always(ParenExpr.class)); NAME_TO_MAPPER.put(FlangName.UNARY_PLUS, ClassMapper.always(UnaryOperator.class)); NAME_TO_MAPPER.put(FlangName.NEGATE, ClassMapper.always(UnaryOperator.class)); @@ -279,6 +277,10 @@ public class FlangToClass { .map(FlangName.MSG_VARIABLE, VarCloseSpec.class) .map(FlangName.ERR_LABEL, ErrCloseSpec.class) .map(FlangName.STATUS_EXPR, ExprCloseSpec.class)); + NAME_TO_MAPPER.put(FlangName.FORMAT, ClassMapper.caseFor(Format.class) + .map(FlangName.EXPR, ExprFormat.class) + .map("uint64_t", LabelFormat.class) + .map(FlangName.STAR, StarFormat.class)); /// UTILs NAME_TO_MAPPER.put(FlangName.NAME_VALUE, ClassMapper.always(NameValue.class)); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java index de6135b9..ffac75bc 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/IoProcessors.java @@ -373,4 +373,16 @@ public void errCloseSpec(ErrCloseSpec spec) { var label = attributes().getString(spec, "uint64_t", FlangName.ERR_LABEL); spec.set(ErrCloseSpec.LABEL, Integer.parseInt(label)); } + + public void exprFormat(ExprFormat format) { + var expr = getChild(format, FlangName.EXPR); + format.addChild(expr); + } + + public void labelFormat(LabelFormat format) { + var label = attributes(format).getString("uint64_t"); + format.set(LabelFormat.LABEL, Integer.parseInt(label)); + } + + public void starFormat(StarFormat ignoredFormat) {} } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index e94255c5..391d7f4e 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -186,8 +186,6 @@ public Nodes(FortranJsonResult data) { processors.put(AllocateShapeSpecification.class, shapes::allocateShapeSpec); var u = new UtilsProcessors(data); - processors.put(Star.class, u::star); - processors.put(Format.class, u::format); processors.put(NameValue.class, u::nameValue); processors.put(IoUnit.class, u::ioUnit); processors.put(ExprIoControlSpec.class, u::ioControlSpec); @@ -224,6 +222,9 @@ public Nodes(FortranJsonResult data) { processors.put(ExprCloseSpec.class, i::exprCloseSpec); processors.put(VarCloseSpec.class, i::varCloseSpec); processors.put(ErrCloseSpec.class, i::errCloseSpec); + processors.put(ExprFormat.class, i::exprFormat); + processors.put(LabelFormat.class, i::labelFormat); + processors.put(StarFormat.class, i::starFormat); var omp = new OmpProcessors(data, s); processors.put(OmpBlockConstruct.class, omp::ompBlockConstruct); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java index 90d1b7a2..c3e272ba 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/UtilsProcessors.java @@ -8,30 +8,10 @@ import pt.up.fe.specs.fortran.parser.FortranJsonResult; public class UtilsProcessors extends ANodeProcessor { - - public UtilsProcessors(FortranJsonResult data) { super(data); } - public void format(Format format) { - var childId = getVariantChildId(format); - - if (data().attributes().isIdInteger(childId)) { - // Create placeholder LabelDecl - var labelRef = factory().labelRef(factory().labelDecl(Integer.parseInt(childId))); - format.addChild(labelRef); - data().processorData().addLabelRef(labelRef); - return; - } - - format.addChild(getChild(childId)); - } - - public void star(Star star) { - - } - public void nameValue(NameValue nameValue) { nameValue.set(NameValue.NAME, attributes().getString(nameValue, "source", FlangName.NAME)); From 3c20bfda28b164f1f52dd5bcbb49a9f2e952346d Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 3 Aug 2026 15:10:00 +0100 Subject: [PATCH 153/260] Fix node factory --- .../pt/up/fe/specs/fortran/ast/FortranNodeFactory.java | 10 +++------- .../pt/up/fe/specs/fortran/ast/FortranAstTest.java | 2 +- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java index fae9884e..94f0f5af 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java @@ -8,6 +8,7 @@ import pt.up.fe.specs.fortran.ast.nodes.decl.ListInitialization; import pt.up.fe.specs.fortran.ast.nodes.expr.*; import pt.up.fe.specs.fortran.ast.nodes.expr.enums.BinaryOperatorKind; +import pt.up.fe.specs.fortran.ast.nodes.io.StarFormat; import pt.up.fe.specs.fortran.ast.nodes.loops.LoopControl; import pt.up.fe.specs.fortran.ast.nodes.loops.RangeLoopControl; import pt.up.fe.specs.fortran.ast.nodes.omp.OmpBlockConstruct; @@ -196,14 +197,9 @@ public StringLiteral stringLiteral(String literal, String kindParam) { // UTIL - public Format format(FortranNode formatType) { - // Check if node is of allowed type - if (!(formatType instanceof Star)) { - throw new RuntimeException("Unsupported type for Format child: " + formatType.getClass()); - } - + public StarFormat starFormat() { DataStore data = newDataStore(Format.class); - return new Format(data, List.of(formatType)); + return new StarFormat(data, List.of()); } public Star star() { diff --git a/FortranAst/test/pt/up/fe/specs/fortran/ast/FortranAstTest.java b/FortranAst/test/pt/up/fe/specs/fortran/ast/FortranAstTest.java index 4441629b..a34be08c 100644 --- a/FortranAst/test/pt/up/fe/specs/fortran/ast/FortranAstTest.java +++ b/FortranAst/test/pt/up/fe/specs/fortran/ast/FortranAstTest.java @@ -58,7 +58,7 @@ void testMainProgram() { @Test void testHelloWorld() { // Build AST - var print = factory.printStmt(factory.format(factory.star()), factory.stringLiteral("Hello, World!")); + var print = factory.printStmt(factory.starFormat(), factory.stringLiteral("Hello, World!")); var program = factory.fortranFile(List.of(factory.mainProgram("hello", List.of(print)))); test("hello.f90", program); } From eb6d04ab66254d3d3f9c982bffee23002a212272 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 3 Aug 2026 17:26:36 +0100 Subject: [PATCH 154/260] Restructure subroutine and main program nodes nodes --- .../specs/fortran/ast/FortranNodeFactory.java | 4 ++ .../ast/nodes/program/FortranFile.java | 1 + .../ast/nodes/program/InternalPart.java | 35 +++++++++++ .../ast/nodes/program/InternalSubprogram.java | 38 ----------- .../ast/nodes/program/MainProgram.java | 60 ------------------ .../ast/nodes/program/ProgramUnit.java | 42 ------------- .../ast/nodes/program/Specification.java | 1 - .../{ => subprogram}/EndProgramStmt.java | 3 +- .../{ => subprogram}/EndSubroutineStmt.java | 2 +- .../subprogram/InternalSubprogram.java | 12 ++++ .../program/{ => subprogram}/ProgramStmt.java | 3 +- .../nodes/program/subprogram/Subprogram.java | 51 +++++++++++++++ .../program/{ => subprogram}/Subroutine.java | 17 ++--- .../{ => subprogram}/SubroutineStmt.java | 2 +- .../ast/nodes/program/unit/MainProgram.java | 63 +++++++++++++++++++ .../ast/nodes/program/unit/ProgramUnit.java | 19 ++++++ .../nodes/program/unit/SubprogramUnit.java | 22 +++++++ .../fe/specs/fortran/parser/FlangToClass.java | 4 +- .../fortran/parser/FortranAstBuilder.java | 2 +- .../fortran/parser/processors/Nodes.java | 4 +- .../parser/processors/ProgramProcessors.java | 5 +- .../parser/processors/StmtProcessors.java | 5 +- 22 files changed, 231 insertions(+), 164 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/InternalPart.java delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/InternalSubprogram.java delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/MainProgram.java delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/ProgramUnit.java rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/{ => subprogram}/EndProgramStmt.java (85%) rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/{ => subprogram}/EndSubroutineStmt.java (92%) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/InternalSubprogram.java rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/{ => subprogram}/ProgramStmt.java (83%) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subprogram.java rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/{ => subprogram}/Subroutine.java (57%) rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/{ => subprogram}/SubroutineStmt.java (94%) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/MainProgram.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/ProgramUnit.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/SubprogramUnit.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java index 94f0f5af..1b5f7ded 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java @@ -20,6 +20,10 @@ import pt.up.fe.specs.fortran.ast.nodes.omp.enums.OmpClauseKind; import pt.up.fe.specs.fortran.ast.nodes.omp.enums.OmpDirectiveKind; import pt.up.fe.specs.fortran.ast.nodes.program.*; +import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.EndProgramStmt; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; +import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.ProgramStmt; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.ProgramUnit; import pt.up.fe.specs.fortran.ast.nodes.stmt.LiteralExecutionStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.PrintStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java index fc33689e..708d767a 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java @@ -6,6 +6,7 @@ import pt.up.fe.specs.fortran.ast.FortranAstOptions; import pt.up.fe.specs.fortran.ast.FortranContext; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.ProgramUnit; import pt.up.fe.specs.util.SpecsIo; import pt.up.fe.specs.util.utilities.StringLines; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/InternalPart.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/InternalPart.java new file mode 100644 index 00000000..68169995 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/InternalPart.java @@ -0,0 +1,35 @@ +package pt.up.fe.specs.fortran.ast.nodes.program; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.InternalSubprogram; +import pt.up.fe.specs.fortran.ast.nodes.stmt.ContainsStmt; + +import java.util.Collection; +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +public class InternalPart extends FortranNode { + public InternalPart(DataStore data, Collection children) { + super(data, children); + } + + public ContainsStmt getContainsStmt() { + return getChild(ContainsStmt.class); + } + + public List getSubprograms() { + return getChildrenOf(InternalSubprogram.class); + } + + @Override + public String getCode() { + var containsStmtCode = getContainsStmt().getCode(); + var subprogramsCode = getSubprograms().stream() + .map(subprogram -> ln() + subprogram.getCode()) + .collect(Collectors.joining()); + + return containsStmtCode + subprogramsCode; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/InternalSubprogram.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/InternalSubprogram.java deleted file mode 100644 index 0debd9b2..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/InternalSubprogram.java +++ /dev/null @@ -1,38 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.program; - -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.stmt.ContainsStmt; -import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; - -import java.util.Collection; -import java.util.List; -import java.util.Optional; -import java.util.stream.Collectors; - -public class InternalSubprogram extends FortranNode { - public InternalSubprogram(DataStore data, Collection children) { - super(data, children); - } - - public Optional getContains() { - return getChildTry(ContainsStmt.class); - } - - public List getSubprograms() { - return getChildrenOf(Subroutine.class); - } - - @Override - public String getCode() { - StringBuilder code = new StringBuilder(); - - getContains().ifPresent(stmt -> code.append(stmt.getCode()).append(ln())); - - code.append(getSubprograms().stream() - .map(Subroutine::getCode) - .collect(Collectors.joining(ln()))); - - return code.toString(); - } -} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/MainProgram.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/MainProgram.java deleted file mode 100644 index c3b4a1d5..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/MainProgram.java +++ /dev/null @@ -1,60 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.program; - -import org.suikasoft.jOptions.Datakey.DataKey; -import org.suikasoft.jOptions.Datakey.KeyFactory; -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; - -import java.util.Collection; -import java.util.Optional; - -import static pt.up.fe.specs.fortran.ast.FortranKeyword.END; -import static pt.up.fe.specs.fortran.ast.FortranKeyword.PROGRAM; - -/** - * R1401 main-program - *

- * [program-stmt] [specification-part] [execution-part] [internal-subprogram-part] end-program-stmt - *

- * Missing: [specification-part] [execution-part] [internal-subprogram-part] - */ -public class MainProgram extends ProgramUnit { - - // DATAKEYS BEGIN - - public final static DataKey> NAME = KeyFactory.optional("programName"); - - // DATAKEYS END - - public MainProgram(DataStore data, Collection children) { - super(data, children); - } - - public Optional getName() { - return get(NAME); - } - - public Optional getProgramStmt() { - return getChildOf(ProgramStmt.class); - } - - public EndProgramStmt getEndProgramStmt() { - return getChild(EndProgramStmt.class); - } - - @Override - public String getCode() { - var programStmtOpt = getProgramStmt(); - var endProgramStmt = getEndProgramStmt(); - - var code = new StringBuilder(); - - programStmtOpt.ifPresent(stmt -> code.append(stmt.getCode()).append(ln())); - - code.append(getBodyCode()).append(ln()); - - code.append(endProgramStmt.getCode()).append(ln()); - - return code.toString(); - } -} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/ProgramUnit.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/ProgramUnit.java deleted file mode 100644 index ade1be9e..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/ProgramUnit.java +++ /dev/null @@ -1,42 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.program; - -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; - -import java.util.Collection; -import java.util.stream.Collectors; - -/** - * R502 program-unit - */ -public abstract class ProgramUnit extends FortranNode { - public ProgramUnit(DataStore data, Collection children) { - super(data, children); - } - - public Specification getSpecification() { - return getChild(Specification.class); - } - - public String getBodyCode() { - /* - // Write code of the children, indented - var code = new StringBuilder(); - for(var stmt : getChildren()) { - - code.append(tab()); - - // If statement has a LabelDecl, print it - - } - */ - return getChildren().stream() - .filter(node -> (node instanceof StmtBlock) || (node instanceof InternalSubprogram)) - .map(FortranNode::getCode) - .filter(code -> !code.isEmpty()) - .map(this::indent) - .collect(Collectors.joining(ln())); - - //return code.toString(); - } -} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Specification.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Specification.java index d9ef82cf..b801602c 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Specification.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Specification.java @@ -9,7 +9,6 @@ import java.util.List; public class Specification extends StmtBlock { - public Specification(DataStore data, Collection children) { super(data, children); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/EndProgramStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/EndProgramStmt.java similarity index 85% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/EndProgramStmt.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/EndProgramStmt.java index 1f99b312..ed68f875 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/EndProgramStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/EndProgramStmt.java @@ -1,8 +1,9 @@ -package pt.up.fe.specs.fortran.ast.nodes.program; +package pt.up.fe.specs.fortran.ast.nodes.program.subprogram; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; import java.util.Collection; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/EndSubroutineStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/EndSubroutineStmt.java similarity index 92% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/EndSubroutineStmt.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/EndSubroutineStmt.java index 906ba69f..b1ddf6fc 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/EndSubroutineStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/EndSubroutineStmt.java @@ -1,4 +1,4 @@ -package pt.up.fe.specs.fortran.ast.nodes.program; +package pt.up.fe.specs.fortran.ast.nodes.program.subprogram; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.FortranKeyword; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/InternalSubprogram.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/InternalSubprogram.java new file mode 100644 index 00000000..9daa7840 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/InternalSubprogram.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.program.subprogram; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class InternalSubprogram extends Subprogram { + public InternalSubprogram(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/ProgramStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/ProgramStmt.java similarity index 83% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/ProgramStmt.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/ProgramStmt.java index 723def1c..c7117051 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/ProgramStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/ProgramStmt.java @@ -1,8 +1,9 @@ -package pt.up.fe.specs.fortran.ast.nodes.program; +package pt.up.fe.specs.fortran.ast.nodes.program.subprogram; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; import java.util.Collection; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subprogram.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subprogram.java new file mode 100644 index 00000000..9e6b61ee --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subprogram.java @@ -0,0 +1,51 @@ +package pt.up.fe.specs.fortran.ast.nodes.program.subprogram; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.program.Execution; +import pt.up.fe.specs.fortran.ast.nodes.program.InternalPart; +import pt.up.fe.specs.fortran.ast.nodes.program.Specification; +import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; + +import java.util.Collection; +import java.util.Optional; + +public abstract class Subprogram extends FortranNode { + public Subprogram(DataStore data, Collection children) { + super(data, children); + } + + protected Stmt getStartStmt() { + return getChild(Stmt.class, 0); + } + + protected Stmt getEndStmt() { + return getChild(Stmt.class, getNumChildren() - 1); + } + + public Specification getSpecification() { + return getChild(Specification.class, 1); + } + + public Execution getExecution() { + return getChild(Execution.class); + } + + public Optional getInternalPart() { + return getChildOf(InternalPart.class); + } + + public String getCode() { + var startStmtCode = getStartStmt().getCode(); + var specificationCode = getSpecification().getCode() + ln(); + var executionCode = getExecution().getCode(); + var internalPartCode = getInternalPart() + .map(part -> ln() + part.getCode()) + .orElse(""); + var endStmtCode = getEndStmt().getCode(); + + return startStmtCode + ln() + + indent(specificationCode + executionCode + internalPartCode) + ln() + + endStmtCode; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Subroutine.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subroutine.java similarity index 57% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Subroutine.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subroutine.java index f246494a..8fb1140d 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Subroutine.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subroutine.java @@ -1,4 +1,4 @@ -package pt.up.fe.specs.fortran.ast.nodes.program; +package pt.up.fe.specs.fortran.ast.nodes.program.subprogram; import org.suikasoft.jOptions.Datakey.DataKey; import org.suikasoft.jOptions.Datakey.KeyFactory; @@ -7,8 +7,7 @@ import java.util.Collection; -public class Subroutine extends ProgramUnit { - +public class Subroutine extends InternalSubprogram { public final static DataKey NAME = KeyFactory.string("name"); public Subroutine(DataStore data, Collection children) { @@ -20,18 +19,10 @@ public String getName() { } public SubroutineStmt getSubroutineStmt() { - return getChild(SubroutineStmt.class); + return (SubroutineStmt) getStartStmt(); } public EndSubroutineStmt getEndSubroutineStmt() { - return getChild(EndSubroutineStmt.class); - } - - @Override - public String getCode() { - var subroutineStmt = getSubroutineStmt(); - var endSubroutineStmt = getEndSubroutineStmt(); - - return subroutineStmt.getCode() + ln() + getBodyCode() + ln() + endSubroutineStmt.getCode(); + return (EndSubroutineStmt) getEndStmt(); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/SubroutineStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/SubroutineStmt.java similarity index 94% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/SubroutineStmt.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/SubroutineStmt.java index 3ac2a80a..1f6c6022 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/SubroutineStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/SubroutineStmt.java @@ -1,4 +1,4 @@ -package pt.up.fe.specs.fortran.ast.nodes.program; +package pt.up.fe.specs.fortran.ast.nodes.program.subprogram; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/MainProgram.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/MainProgram.java new file mode 100644 index 00000000..a255937c --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/MainProgram.java @@ -0,0 +1,63 @@ +package pt.up.fe.specs.fortran.ast.nodes.program.unit; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.program.Execution; +import pt.up.fe.specs.fortran.ast.nodes.program.InternalPart; +import pt.up.fe.specs.fortran.ast.nodes.program.Specification; +import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.EndProgramStmt; +import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.ProgramStmt; + +import java.util.Collection; +import java.util.Optional; + +public class MainProgram extends ProgramUnit { + public final static DataKey> NAME = KeyFactory.optional("name"); + + public MainProgram(DataStore data, Collection children) { + super(data, children); + } + + public Optional getName() { + return get(NAME); + } + + public Optional getProgramStmt() { + return getChildTry(ProgramStmt.class, 0); + } + + public Specification getSpecification() { + return getChild(Specification.class); + } + + public Execution getExecution() { + return getChild(Execution.class); + } + + public Optional getInternalPart() { + return getChildOf(InternalPart.class); + } + + public EndProgramStmt getEndProgramStmt() { + return getChild(EndProgramStmt.class); + } + + @Override + public String getCode() { + var programStmtCode = getProgramStmt() + .map(stmt -> stmt.getCode() + ln()) + .orElse(""); + var specificationCode = getSpecification().getCode() + ln(); + var executionCode = getExecution().getCode(); + var internalPartCode = getInternalPart() + .map(part -> ln() + part.getCode()) + .orElse(""); + var endProgramStmtCode = getEndProgramStmt().getCode(); + + return programStmtCode + + indent(specificationCode + executionCode + internalPartCode) + ln() + + endProgramStmtCode; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/ProgramUnit.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/ProgramUnit.java new file mode 100644 index 00000000..845a190f --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/ProgramUnit.java @@ -0,0 +1,19 @@ +package pt.up.fe.specs.fortran.ast.nodes.program.unit; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.program.InternalPart; +import pt.up.fe.specs.fortran.ast.nodes.program.Specification; +import pt.up.fe.specs.fortran.ast.nodes.program.StmtBlock; + +import java.util.Collection; +import java.util.stream.Collectors; + +/** + * R502 program-unit + */ +public abstract class ProgramUnit extends FortranNode { + public ProgramUnit(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/SubprogramUnit.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/SubprogramUnit.java new file mode 100644 index 00000000..70f038ce --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/SubprogramUnit.java @@ -0,0 +1,22 @@ +package pt.up.fe.specs.fortran.ast.nodes.program.unit; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.Subprogram; + +import java.util.Collection; + +public class SubprogramUnit extends ProgramUnit { + public SubprogramUnit(DataStore data, Collection children) { + super(data, children); + } + + public Subprogram getSubprogram() { + return getChild(Subprogram.class, 0); + } + + @Override + public String getCode() { + return getSubprogram().getCode(); + } +} diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index d1ca9c38..3b214d21 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -21,6 +21,8 @@ import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpNowaitClause; import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpReductionClause; import pt.up.fe.specs.fortran.ast.nodes.program.*; +import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.*; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; import pt.up.fe.specs.fortran.ast.nodes.specification.NamedConstantDef; import pt.up.fe.specs.fortran.ast.nodes.stmt.*; @@ -64,7 +66,7 @@ public class FlangToClass { NAME_TO_MAPPER.put(FlangName.END_PROGRAM_STMT, ClassMapper.always(EndProgramStmt.class)); NAME_TO_MAPPER.put(FlangName.SPECIFICATION_PART, ClassMapper.always(Specification.class)); NAME_TO_MAPPER.put(FlangName.EXECUTION_PART, ClassMapper.always(Execution.class)); - NAME_TO_MAPPER.put(FlangName.INTERNAL_SUBPROGRAM_PART, ClassMapper.always(InternalSubprogram.class)); + NAME_TO_MAPPER.put(FlangName.INTERNAL_SUBPROGRAM_PART, ClassMapper.always(InternalPart.class)); NAME_TO_MAPPER.put(FlangName.SUBROUTINE_SUBPROGRAM, ClassMapper.always(Subroutine.class)); NAME_TO_MAPPER.put(FlangName.SUBROUTINE_STMT, ClassMapper.always(SubroutineStmt.class)); NAME_TO_MAPPER.put(FlangName.END_SUBROUTINE_STMT, ClassMapper.always(EndSubroutineStmt.class)); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranAstBuilder.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranAstBuilder.java index 4b7d6844..3f3a1529 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranAstBuilder.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranAstBuilder.java @@ -2,7 +2,7 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.decl.LabelDecl; -import pt.up.fe.specs.fortran.ast.nodes.program.ProgramUnit; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.ProgramUnit; import pt.up.fe.specs.fortran.ast.nodes.utils.LabelRef; import pt.up.fe.specs.fortran.parser.processors.Nodes; diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 391d7f4e..60cf4a96 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -19,6 +19,8 @@ import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpNowaitClause; import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpReductionClause; import pt.up.fe.specs.fortran.ast.nodes.program.*; +import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.*; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; import pt.up.fe.specs.fortran.ast.nodes.specification.NamedConstantDef; import pt.up.fe.specs.fortran.ast.nodes.stmt.*; @@ -65,7 +67,7 @@ public Nodes(FortranJsonResult data) { processors.put(Specification.class, p::specification); processors.put(Execution.class, p::execution); processors.put(Subroutine.class, p::subroutine); - processors.put(InternalSubprogram.class, p::internalSubprogram); + processors.put(InternalPart.class, p::internalSubprogram); var alloc = new AllocProcessors(data); processors.put(Allocation.class, alloc::allocation); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java index e80b912d..34c7ac6c 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java @@ -1,8 +1,9 @@ package pt.up.fe.specs.fortran.parser.processors; import pt.up.fe.specs.fortran.ast.FortranContext; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.program.*; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; +import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.Subroutine; import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; import pt.up.fe.specs.util.SpecsIo; @@ -82,7 +83,7 @@ public void execution(Execution execution) { } } - public void internalSubprogram(InternalSubprogram internalSubprogram) { + public void internalSubprogram(InternalPart internalSubprogram) { if (attributes(internalSubprogram).has(FlangName.CONTAINS_STMT.getStmtAttr())) { internalSubprogram.addChild(getChild(internalSubprogram, FlangName.CONTAINS_STMT.getStmtAttr())); } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index aa92a5b9..5848e8a9 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -2,9 +2,12 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; -import pt.up.fe.specs.fortran.ast.nodes.io.WriteStmt; import pt.up.fe.specs.fortran.ast.nodes.loops.WhileLoopControl; import pt.up.fe.specs.fortran.ast.nodes.program.*; +import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.EndProgramStmt; +import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.EndSubroutineStmt; +import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.ProgramStmt; +import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.SubroutineStmt; import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; import pt.up.fe.specs.fortran.ast.nodes.specification.NamedConstantDef; import pt.up.fe.specs.fortran.ast.nodes.stmt.*; From 7ee0052e63009d16150b4cc0872143088589fe09 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 3 Aug 2026 17:44:40 +0100 Subject: [PATCH 155/260] Fix processing of new nodes --- .../ast/nodes/program/FortranFile.java | 4 +- .../fe/specs/fortran/parser/FlangToClass.java | 5 ++ .../fortran/parser/processors/Nodes.java | 2 + .../parser/processors/ProgramProcessors.java | 52 ++++++++++++------- 4 files changed, 42 insertions(+), 21 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java index 708d767a..9b5b0b2d 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java @@ -68,8 +68,8 @@ public String getCode() { .collect(Collectors.joining()); var programUnitsCode = getProgramUnits().stream() - .map(ProgramUnit::getCode) - .collect(Collectors.joining("\n")); + .map(programUnit -> programUnit.getCode() + ln()) + .collect(Collectors.joining()); var code = programUnitsCode + commentSuffix; if (fixedForm) { diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 3b214d21..360c1d64 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -23,6 +23,8 @@ import pt.up.fe.specs.fortran.ast.nodes.program.*; import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.*; import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.ProgramUnit; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.SubprogramUnit; import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; import pt.up.fe.specs.fortran.ast.nodes.specification.NamedConstantDef; import pt.up.fe.specs.fortran.ast.nodes.stmt.*; @@ -61,6 +63,9 @@ public class FlangToClass { static { NAME_TO_MAPPER.put(FlangName.PROGRAM, ClassMapper.always(FortranFile.class)); + NAME_TO_MAPPER.put(FlangName.PROGRAM_UNIT, ClassMapper.caseFor(ProgramUnit.class) + .ignore(FlangName.MAIN_PROGRAM) + .map(FlangName.SUBROUTINE_SUBPROGRAM, SubprogramUnit.class)); NAME_TO_MAPPER.put(FlangName.MAIN_PROGRAM, ClassMapper.always(MainProgram.class)); NAME_TO_MAPPER.put(FlangName.PROGRAM_STMT, ClassMapper.always(ProgramStmt.class)); NAME_TO_MAPPER.put(FlangName.END_PROGRAM_STMT, ClassMapper.always(EndProgramStmt.class)); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 60cf4a96..29e467e2 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -21,6 +21,7 @@ import pt.up.fe.specs.fortran.ast.nodes.program.*; import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.*; import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.SubprogramUnit; import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; import pt.up.fe.specs.fortran.ast.nodes.specification.NamedConstantDef; import pt.up.fe.specs.fortran.ast.nodes.stmt.*; @@ -64,6 +65,7 @@ public Nodes(FortranJsonResult data) { var p = new ProgramProcessors(data); processors.put(FortranFile.class, p::fortranFile); processors.put(MainProgram.class, p::mainProgram); + processors.put(SubprogramUnit.class, p::subprogramUnit); processors.put(Specification.class, p::specification); processors.put(Execution.class, p::execution); processors.put(Subroutine.class, p::subroutine); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java index 34c7ac6c..065d0f26 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java @@ -1,9 +1,11 @@ package pt.up.fe.specs.fortran.parser.processors; import pt.up.fe.specs.fortran.ast.FortranContext; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.program.*; import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.Subroutine; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.SubprogramUnit; import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; import pt.up.fe.specs.util.SpecsIo; @@ -44,24 +46,40 @@ public void fortranFile(FortranFile fortranFile) { } } + public void addSubprogramBody(FortranNode node) { + var specification = getChild(node, FlangName.SPECIFICATION_PART); + node.addChild(specification); + + var execution = getChild(node, FlangName.EXECUTION_PART); + node.addChild(execution); + + var internalPart = getChildOptional(node, FlangName.INTERNAL_SUBPROGRAM_PART); + internalPart.ifPresent(node::addChild); + } + public void mainProgram(MainProgram mainProgram) { var programStmt = getStmtChildOptional(mainProgram, FlangName.PROGRAM_STMT); - programStmt.ifPresent(mainProgram::addChild); - - var name = attributes().getOptionalString(mainProgram, "source", FlangName.PROGRAM_STMT, FlangName.NAME); - // [specification-part] - mainProgram.addChild(getChild(mainProgram, FlangName.SPECIFICATION_PART)); - // [execution-part] - mainProgram.addChild(getChild(mainProgram, FlangName.EXECUTION_PART)); - // [internal-subprogram-part] - if (attributes(mainProgram).has(FlangName.INTERNAL_SUBPROGRAM_PART)) { - mainProgram.addChild(getChild(mainProgram, FlangName.INTERNAL_SUBPROGRAM_PART)); - } + programStmt.ifPresent(stmt -> { + mainProgram.addChild(stmt); + + var name = attributes().getString(stmt, "source", FlangName.NAME); + mainProgram.setOptional(MainProgram.NAME, name); + }); + + addSubprogramBody(mainProgram); var endProgramStmt = getStmtChild(mainProgram, FlangName.END_PROGRAM_STMT); mainProgram.addChild(endProgramStmt); + } + + public void subprogramUnit(SubprogramUnit subprogramUnit) { + var variant = attributes(subprogramUnit).getVariantName(); + if (variant != FlangName.SUBROUTINE_SUBPROGRAM) { + throw new RuntimeException("Unknown variant: " + variant); + } - mainProgram.set(MainProgram.NAME, name); + var child = getChild(subprogramUnit, variant); + subprogramUnit.addChild(child); } public void specification(Specification specification) { @@ -97,16 +115,12 @@ public void subroutine(Subroutine subroutine) { var subroutineStmt = getStmtChild(subroutine, FlangName.SUBROUTINE_STMT); subroutine.addChild(subroutineStmt); - var specification = getChild(subroutine, FlangName.SPECIFICATION_PART); - subroutine.addChild(specification); + var name = attributes().getString(subroutineStmt, "source", FlangName.NAME); + subroutine.set(Subroutine.NAME, name); - var execution = getChild(subroutine, FlangName.EXECUTION_PART); - subroutine.addChild(execution); + addSubprogramBody(subroutine); var endSubroutineStmt = getStmtChild(subroutine, FlangName.END_SUBROUTINE_STMT); subroutine.addChild(endSubroutineStmt); - - var name = attributes().getString(subroutine, "source", FlangName.SUBROUTINE_STMT, FlangName.NAME); - subroutine.set(Subroutine.NAME, name); } } From 367d0f574932aa3a4df566a0de2f02e575cc6b0c Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 3 Aug 2026 19:06:56 +0100 Subject: [PATCH 156/260] Create test for functions --- .../parser/program/function.expected.f90 | 21 + .../fortran/parser/program/function.f90 | 22 + .../fortran/parser/program/function.json | 1291 +++++++++++++++++ .../fortran/parser/FortranParserTest.java | 12 + 4 files changed, 1346 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/program/function.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/program/function.f90 create mode 100644 FortranParser/resources-test/fortran/parser/program/function.json diff --git a/FortranParser/resources-test/fortran/parser/program/function.expected.f90 b/FortranParser/resources-test/fortran/parser/program/function.expected.f90 new file mode 100644 index 00000000..75ce5ef2 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/program/function.expected.f90 @@ -0,0 +1,21 @@ +PROGRAM FUNCTION + INTEGER :: x, y, total, useless + + x = 5 + y = 12 + useless = 0 + + total = add_numbers(x, y, useless) + + PRINT *, "The sum is:", total + +CONTAINS + FUNCTION add_numbers(a, b, useless) RESULT(res) + INTEGER, INTENT(IN) :: a, b + INTEGER, INTENT(INOUT) :: useless + INTEGER :: res + + res = a + b + END FUNCTION add_numbers + +END PROGRAM FUNCTION \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/program/function.f90 b/FortranParser/resources-test/fortran/parser/program/function.f90 new file mode 100644 index 00000000..de08f32a --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/program/function.f90 @@ -0,0 +1,22 @@ +program function + integer :: x, y, total, useless + + x = 5 + y = 12 + useless = 0 + + total = add_numbers(x, y, useless) + + print *, "The sum is:", total + +contains + + function add_numbers(a, b, useless) result(res) + integer, intent(in) :: a, b + integer, intent(inout) :: useless + integer :: res + + res = a + b + end function add_numbers + +end program function \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/program/function.json b/FortranParser/resources-test/fortran/parser/program/function.json new file mode 100644 index 00000000..2d729a3a --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/program/function.json @@ -0,0 +1,1291 @@ +{ + "fileExtension": "f90", + "nodes": [ + { + "id": "0x55e180a7ef00-Program", + "ProgramUnit": [ + "0x55e180abc840-ProgramUnit" + ] + }, + { + "id": "0x55e180abc840-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x55e180aac2b0-MainProgram" + }, + { + "id": "0x55e180aac2b0-MainProgram", + "Statement": "0x55e180aac3f8-Statement", + "SpecificationPart": "0x55e180aac350-SpecificationPart", + "ExecutionPart": "0x55e180aac338-ExecutionPart", + "InternalSubprogramPart": "0x55e180aac2f0-InternalSubprogramPart", + "Statement": "0x55e180aac2b0-Statement" + }, + { + "id": "0x55e180aac3f8-Statement", + "statement": "0x55e180aac408-ProgramStmt", + "source": "program FUNCTION" + }, + { + "id": "0x55e180aac408-ProgramStmt", + "Name": "0x55e180aac408-Name" + }, + { + "id": "0x55e180aac408-Name", + "source": "FUNCTION" + }, + { + "id": "0x55e180aac350-SpecificationPart", + "ImplicitPart": "0x55e180aac368-ImplicitPart", + "DeclarationConstruct": [ + "0x55e180a8c170-DeclarationConstruct" + ] + }, + { + "id": "0x55e180aac368-ImplicitPart" + }, + { + "id": "0x55e180a8c170-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55e180a8c170-SpecificationConstruct" + }, + { + "id": "0x55e180a8c170-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55e180a8c170-Statement" + }, + { + "id": "0x55e180a8c170-Statement", + "statement": "0x55e180ab9210-TypeDeclarationStmt", + "source": "integer :: x, y, total, useless" + }, + { + "id": "0x55e180ab9210-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e180ab9240-DeclarationTypeSpec", + "EntityDecl": [ + "0x55e180ab95f0-EntityDecl", + "0x55e180ab9320-EntityDecl", + "0x55e180ab9410-EntityDecl", + "0x55e180ab9500-EntityDecl" + ] + }, + { + "id": "0x55e180ab9240-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55e180ab9240-IntrinsicTypeSpec" + }, + { + "id": "0x55e180ab9240-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55e180ab9240-IntegerTypeSpec" + }, + { + "id": "0x55e180ab9240-IntegerTypeSpec" + }, + { + "id": "0x55e180ab95f0-EntityDecl", + "Name": "0x55e180ab96a8-Name" + }, + { + "id": "0x55e180ab96a8-Name", + "source": "x" + }, + { + "id": "0x55e180ab9320-EntityDecl", + "Name": "0x55e180ab93d8-Name" + }, + { + "id": "0x55e180ab93d8-Name", + "source": "y" + }, + { + "id": "0x55e180ab9410-EntityDecl", + "Name": "0x55e180ab94c8-Name" + }, + { + "id": "0x55e180ab94c8-Name", + "source": "total" + }, + { + "id": "0x55e180ab9500-EntityDecl", + "Name": "0x55e180ab95b8-Name" + }, + { + "id": "0x55e180ab95b8-Name", + "source": "useless" + }, + { + "id": "0x55e180aac338-ExecutionPart", + "ExecutionPartConstruct": [ + "0x55e180abaac0-ExecutionPartConstruct", + "0x55e180abac90-ExecutionPartConstruct", + "0x55e180abae60-ExecutionPartConstruct", + "0x55e180aaa010-ExecutionPartConstruct", + "0x55e180a8bda0-ExecutionPartConstruct" + ] + }, + { + "id": "0x55e180aac338-ExecutionPartConstruct" + }, + { + "id": "0x55e180abaac0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e180abaac0-ExecutableConstruct" + }, + { + "id": "0x55e180abaac0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e180abaac0-Statement" + }, + { + "id": "0x55e180abaac0-Statement", + "statement": "0x55e180abaad0-ActionStmt", + "source": "x = 5" + }, + { + "id": "0x55e180abaad0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55e180abb890-AssignmentStmt" + }, + { + "id": "0x55e180abb890-AssignmentStmt", + "Variable": "0x55e180abb970-Variable", + "Expr": "0x55e180abb8a0-Expr" + }, + { + "id": "0x55e180abb970-Variable", + "variantKey": "Designator", + "Designator": "0x55e180a8c100-Designator" + }, + { + "id": "0x55e180a8c100-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e180a8c110-DataRef" + }, + { + "id": "0x55e180a8c110-DataRef", + "variantKey": "Name", + "Name": "0x55e180a8c110-Name" + }, + { + "id": "0x55e180a8c110-Name", + "source": "x" + }, + { + "id": "0x55e180abb8a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e180abb8c0-LiteralConstant" + }, + { + "id": "0x55e180abb8c0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e180abb8c0-IntLiteralConstant" + }, + { + "id": "0x55e180abb8c0-IntLiteralConstant", + "CharBlock": "5" + }, + { + "id": "0x55e180abac90-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e180abac90-ExecutableConstruct" + }, + { + "id": "0x55e180abac90-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e180abac90-Statement" + }, + { + "id": "0x55e180abac90-Statement", + "statement": "0x55e180abaca0-ActionStmt", + "source": "y = 12" + }, + { + "id": "0x55e180abaca0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55e180abab70-AssignmentStmt" + }, + { + "id": "0x55e180abab70-AssignmentStmt", + "Variable": "0x55e180abac50-Variable", + "Expr": "0x55e180abab80-Expr" + }, + { + "id": "0x55e180abac50-Variable", + "variantKey": "Designator", + "Designator": "0x55e180aba7b0-Designator" + }, + { + "id": "0x55e180aba7b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e180aba7c0-DataRef" + }, + { + "id": "0x55e180aba7c0-DataRef", + "variantKey": "Name", + "Name": "0x55e180aba7c0-Name" + }, + { + "id": "0x55e180aba7c0-Name", + "source": "y" + }, + { + "id": "0x55e180abab80-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e180ababa0-LiteralConstant" + }, + { + "id": "0x55e180ababa0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e180ababa0-IntLiteralConstant" + }, + { + "id": "0x55e180ababa0-IntLiteralConstant", + "CharBlock": "12" + }, + { + "id": "0x55e180abae60-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e180abae60-ExecutableConstruct" + }, + { + "id": "0x55e180abae60-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e180abae60-Statement" + }, + { + "id": "0x55e180abae60-Statement", + "statement": "0x55e180abae70-ActionStmt", + "source": "useless = 0" + }, + { + "id": "0x55e180abae70-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55e180abad40-AssignmentStmt" + }, + { + "id": "0x55e180abad40-AssignmentStmt", + "Variable": "0x55e180abae20-Variable", + "Expr": "0x55e180abad50-Expr" + }, + { + "id": "0x55e180abae20-Variable", + "variantKey": "Designator", + "Designator": "0x55e180abab10-Designator" + }, + { + "id": "0x55e180abab10-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e180abab20-DataRef" + }, + { + "id": "0x55e180abab20-DataRef", + "variantKey": "Name", + "Name": "0x55e180abab20-Name" + }, + { + "id": "0x55e180abab20-Name", + "source": "useless" + }, + { + "id": "0x55e180abad50-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e180abad70-LiteralConstant" + }, + { + "id": "0x55e180abad70-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e180abad70-IntLiteralConstant" + }, + { + "id": "0x55e180abad70-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55e180aaa010-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e180aaa010-ExecutableConstruct" + }, + { + "id": "0x55e180aaa010-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e180aaa010-Statement" + }, + { + "id": "0x55e180aaa010-Statement", + "statement": "0x55e180aaa020-ActionStmt", + "source": "total = add_numbers(x, y, useless)" + }, + { + "id": "0x55e180aaa020-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55e180aa9e80-AssignmentStmt" + }, + { + "id": "0x55e180aa9e80-AssignmentStmt", + "Variable": "0x55e180aa9f60-Variable", + "Expr": "0x55e180aa9e90-Expr" + }, + { + "id": "0x55e180aa9f60-Variable", + "variantKey": "Designator", + "Designator": "0x55e180abace0-Designator" + }, + { + "id": "0x55e180abace0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e180abacf0-DataRef" + }, + { + "id": "0x55e180abacf0-DataRef", + "variantKey": "Name", + "Name": "0x55e180abacf0-Name" + }, + { + "id": "0x55e180abacf0-Name", + "source": "total" + }, + { + "id": "0x55e180aa9e90-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55e180aa9d30-FunctionReference" + }, + { + "id": "0x55e180aa9d30-FunctionReference", + "Call": "0x55e180aa9d30-Call" + }, + { + "id": "0x55e180aa9d30-Call", + "ProcedureDesignator": "0x55e180aa9d48-ProcedureDesignator", + "ActualArgSpec": [ + "0x55e180aa9bc0-ActualArgSpec", + "0x55e180aa99a0-ActualArgSpec", + "0x55e180aa9ab0-ActualArgSpec" + ] + }, + { + "id": "0x55e180aa9d48-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55e180aa9d48-Name" + }, + { + "id": "0x55e180aa9d48-Name", + "source": "add_numbers" + }, + { + "id": "0x55e180aa9bc0-ActualArgSpec", + "ActualArg": "0x55e180aa9bc0-ActualArg" + }, + { + "id": "0x55e180aa9bc0-ActualArg", + "variantKey": "Expr", + "Expr": "0x55e180aa9770-Expr" + }, + { + "id": "0x55e180aa9770-Expr", + "variantKey": "Designator", + "Designator": "0x55e180aba040-Designator" + }, + { + "id": "0x55e180aba040-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e180aba050-DataRef" + }, + { + "id": "0x55e180aba050-DataRef", + "variantKey": "Name", + "Name": "0x55e180aba050-Name" + }, + { + "id": "0x55e180aba050-Name", + "source": "x" + }, + { + "id": "0x55e180aa99a0-ActualArgSpec", + "ActualArg": "0x55e180aa99a0-ActualArg" + }, + { + "id": "0x55e180aa99a0-ActualArg", + "variantKey": "Expr", + "Expr": "0x55e180ab9a80-Expr" + }, + { + "id": "0x55e180ab9a80-Expr", + "variantKey": "Designator", + "Designator": "0x55e180ab99b0-Designator" + }, + { + "id": "0x55e180ab99b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e180ab99c0-DataRef" + }, + { + "id": "0x55e180ab99c0-DataRef", + "variantKey": "Name", + "Name": "0x55e180ab99c0-Name" + }, + { + "id": "0x55e180ab99c0-Name", + "source": "y" + }, + { + "id": "0x55e180aa9ab0-ActualArgSpec", + "ActualArg": "0x55e180aa9ab0-ActualArg" + }, + { + "id": "0x55e180aa9ab0-ActualArg", + "variantKey": "Expr", + "Expr": "0x55e180a1e790-Expr" + }, + { + "id": "0x55e180a1e790-Expr", + "variantKey": "Designator", + "Designator": "0x55e180abb3a0-Designator" + }, + { + "id": "0x55e180abb3a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e180abb3b0-DataRef" + }, + { + "id": "0x55e180abb3b0-DataRef", + "variantKey": "Name", + "Name": "0x55e180abb3b0-Name" + }, + { + "id": "0x55e180abb3b0-Name", + "source": "useless" + }, + { + "id": "0x55e180a8bda0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e180a8bda0-ExecutableConstruct" + }, + { + "id": "0x55e180a8bda0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e180a8bda0-Statement" + }, + { + "id": "0x55e180a8bda0-Statement", + "statement": "0x55e180a8bdb0-ActionStmt", + "source": "print *, \"The sum is:\", total" + }, + { + "id": "0x55e180a8bdb0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55e180aaa550-PrintStmt" + }, + { + "id": "0x55e180aaa550-PrintStmt", + "Format": "0x55e180aaa568-Format", + "OutputItem": [ + "0x55e180aaa400-OutputItem", + "0x55e180aaa310-OutputItem" + ] + }, + { + "id": "0x55e180aaa568-Format", + "variantKey": "Star", + "Star": "0x55e180aaa568-Star" + }, + { + "id": "0x55e180aaa568-Star" + }, + { + "id": "0x55e180aaa400-OutputItem", + "variantKey": "Expr", + "Expr": "0x55e180aaa400-Expr" + }, + { + "id": "0x55e180aaa400-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e180aaa420-LiteralConstant" + }, + { + "id": "0x55e180aaa420-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55e180aaa420-CharLiteralConstant" + }, + { + "id": "0x55e180aaa420-CharLiteralConstant", + "string": "The sum is:" + }, + { + "id": "0x55e180aaa310-OutputItem", + "variantKey": "Expr", + "Expr": "0x55e180aaa310-Expr" + }, + { + "id": "0x55e180aaa310-Expr", + "variantKey": "Designator", + "Designator": "0x55e180aa9850-Designator" + }, + { + "id": "0x55e180aa9850-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e180aa9860-DataRef" + }, + { + "id": "0x55e180aa9860-DataRef", + "variantKey": "Name", + "Name": "0x55e180aa9860-Name" + }, + { + "id": "0x55e180aa9860-Name", + "source": "total" + }, + { + "id": "0x55e180aac2f0-InternalSubprogramPart", + "Statement": "0x55e180aac308-Statement", + "InternalSubprogram": [ + "0x55e180abc730-InternalSubprogram" + ] + }, + { + "id": "0x55e180aac308-Statement", + "statement": "0x55e180aac318-ContainsStmt", + "source": "contains" + }, + { + "id": "0x55e180aac318-ContainsStmt" + }, + { + "id": "0x55e180abc730-InternalSubprogram", + "variantKey": "FunctionSubprogram", + "FunctionSubprogram": "0x55e180aadc00-FunctionSubprogram" + }, + { + "id": "0x55e180aadc00-FunctionSubprogram", + "Statement": "0x55e180aadd48-Statement", + "SpecificationPart": "0x55e180aadca0-SpecificationPart", + "ExecutionPart": "0x55e180aadc88-ExecutionPart", + "Statement": "0x55e180aadc00-Statement" + }, + { + "id": "0x55e180aadd48-Statement", + "statement": "0x55e180aadd58-FunctionStmt", + "source": "function add_numbers(a, b, useless) result(res)" + }, + { + "id": "0x55e180aadd58-FunctionStmt", + "Name": [ + "0x55e180abc6e0-Name", + "0x55e180abc680-Name", + "0x55e180abc6b0-Name" + ], + "Suffix": "0x55e180aadd58-Suffix" + }, + { + "id": "0x55e180aaddb8-Name", + "source": "add_numbers" + }, + { + "id": "0x55e180abc6e0-Name", + "source": "a" + }, + { + "id": "0x55e180abc680-Name", + "source": "b" + }, + { + "id": "0x55e180abc6b0-Name", + "source": "useless" + }, + { + "id": "0x55e180aadd58-Suffix" + }, + { + "id": "0x55e180aadd78-Name", + "source": "res" + }, + { + "id": "0x55e180aadca0-SpecificationPart", + "ImplicitPart": "0x55e180aadcb8-ImplicitPart", + "DeclarationConstruct": [ + "0x55e180abb480-DeclarationConstruct", + "0x55e180aba320-DeclarationConstruct", + "0x55e180ab9b70-DeclarationConstruct" + ] + }, + { + "id": "0x55e180aadcb8-ImplicitPart" + }, + { + "id": "0x55e180abb480-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55e180abb480-SpecificationConstruct" + }, + { + "id": "0x55e180abb480-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55e180abb480-Statement" + }, + { + "id": "0x55e180abb480-Statement", + "statement": "0x55e180aabff0-TypeDeclarationStmt", + "source": "integer, intent(in) :: a, b" + }, + { + "id": "0x55e180aabff0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e180aac020-DeclarationTypeSpec", + "AttrSpec": [ + "0x55e180abb680-AttrSpec" + ], + "EntityDecl": [ + "0x55e180aba460-EntityDecl", + "0x55e180aac5f0-EntityDecl" + ] + }, + { + "id": "0x55e180aac020-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55e180aac020-IntrinsicTypeSpec" + }, + { + "id": "0x55e180aac020-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55e180aac020-IntegerTypeSpec" + }, + { + "id": "0x55e180aac020-IntegerTypeSpec" + }, + { + "id": "0x55e180abb680-AttrSpec", + "variantKey": "IntentSpec", + "IntentSpec": "0x55e180abb680-IntentSpec" + }, + { + "id": "0x55e180abb680-IntentSpec", + "Intent": "0x55e180abb680-Intent", + "intent": "In" + }, + { + "id": "0x55e180abb680-Intent", + "disambiguation": "Fortran::parser::IntentSpec::Intent", + "value": "In" + }, + { + "id": "0x55e180aba460-EntityDecl", + "Name": "0x55e180aba518-Name" + }, + { + "id": "0x55e180aba518-Name", + "source": "a" + }, + { + "id": "0x55e180aac5f0-EntityDecl", + "Name": "0x55e180aac6a8-Name" + }, + { + "id": "0x55e180aac6a8-Name", + "source": "b" + }, + { + "id": "0x55e180aba320-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55e180aba320-SpecificationConstruct" + }, + { + "id": "0x55e180aba320-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55e180aba320-Statement" + }, + { + "id": "0x55e180aba320-Statement", + "statement": "0x55e180aaa900-TypeDeclarationStmt", + "source": "integer, intent(inout) :: useless" + }, + { + "id": "0x55e180aaa900-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e180aaa930-DeclarationTypeSpec", + "AttrSpec": [ + "0x55e180ac27e0-AttrSpec" + ], + "EntityDecl": [ + "0x55e180aba550-EntityDecl" + ] + }, + { + "id": "0x55e180aaa930-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55e180aaa930-IntrinsicTypeSpec" + }, + { + "id": "0x55e180aaa930-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55e180aaa930-IntegerTypeSpec" + }, + { + "id": "0x55e180aaa930-IntegerTypeSpec" + }, + { + "id": "0x55e180ac27e0-AttrSpec", + "variantKey": "IntentSpec", + "IntentSpec": "0x55e180ac27e0-IntentSpec" + }, + { + "id": "0x55e180ac27e0-IntentSpec", + "Intent": "0x55e180ac27e0-Intent", + "intent": "InOut" + }, + { + "id": "0x55e180ac27e0-Intent", + "disambiguation": "Fortran::parser::IntentSpec::Intent", + "value": "InOut" + }, + { + "id": "0x55e180aba550-EntityDecl", + "Name": "0x55e180aba608-Name" + }, + { + "id": "0x55e180aba608-Name", + "source": "useless" + }, + { + "id": "0x55e180ab9b70-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55e180ab9b70-SpecificationConstruct" + }, + { + "id": "0x55e180ab9b70-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55e180ab9b70-Statement" + }, + { + "id": "0x55e180ab9b70-Statement", + "statement": "0x55e180abb700-TypeDeclarationStmt", + "source": "integer :: res" + }, + { + "id": "0x55e180abb700-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e180abb730-DeclarationTypeSpec", + "EntityDecl": [ + "0x55e180aaa6d0-EntityDecl" + ] + }, + { + "id": "0x55e180abb730-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55e180abb730-IntrinsicTypeSpec" + }, + { + "id": "0x55e180abb730-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55e180abb730-IntegerTypeSpec" + }, + { + "id": "0x55e180abb730-IntegerTypeSpec" + }, + { + "id": "0x55e180aaa6d0-EntityDecl", + "Name": "0x55e180aaa788-Name" + }, + { + "id": "0x55e180aaa788-Name", + "source": "res" + }, + { + "id": "0x55e180aadc88-ExecutionPart", + "ExecutionPartConstruct": [ + "0x55e180aacf80-ExecutionPartConstruct" + ] + }, + { + "id": "0x55e180aadc88-ExecutionPartConstruct" + }, + { + "id": "0x55e180aacf80-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e180aacf80-ExecutableConstruct" + }, + { + "id": "0x55e180aacf80-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e180aacf80-Statement" + }, + { + "id": "0x55e180aacf80-Statement", + "statement": "0x55e180aacf90-ActionStmt", + "source": "res = a + b" + }, + { + "id": "0x55e180aacf90-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55e180aace60-AssignmentStmt" + }, + { + "id": "0x55e180aace60-AssignmentStmt", + "Variable": "0x55e180aacf40-Variable", + "Expr": "0x55e180aace70-Expr" + }, + { + "id": "0x55e180aacf40-Variable", + "variantKey": "Designator", + "Designator": "0x55e180abaf10-Designator" + }, + { + "id": "0x55e180abaf10-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e180abaf20-DataRef" + }, + { + "id": "0x55e180abaf20-DataRef", + "variantKey": "Name", + "Name": "0x55e180abaf20-Name" + }, + { + "id": "0x55e180abaf20-Name", + "source": "res" + }, + { + "id": "0x55e180aace70-Expr", + "variantKey": "Add", + "Add": "0x55e180aace90-Add" + }, + { + "id": "0x55e180aace90-Add", + "left": "0x55e180aaab70-Expr", + "right": "0x55e180aaaa90-Expr", + "op": "ADD" + }, + { + "id": "0x55e180aaab70-Expr", + "variantKey": "Designator", + "Designator": "0x55e180aaa7b0-Designator" + }, + { + "id": "0x55e180aaa7b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e180aaa7c0-DataRef" + }, + { + "id": "0x55e180aaa7c0-DataRef", + "variantKey": "Name", + "Name": "0x55e180aaa7c0-Name" + }, + { + "id": "0x55e180aaa7c0-Name", + "source": "a" + }, + { + "id": "0x55e180aaaa90-Expr", + "variantKey": "Designator", + "Designator": "0x55e180ab8f80-Designator" + }, + { + "id": "0x55e180ab8f80-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e180ab8f90-DataRef" + }, + { + "id": "0x55e180ab8f90-DataRef", + "variantKey": "Name", + "Name": "0x55e180ab8f90-Name" + }, + { + "id": "0x55e180ab8f90-Name", + "source": "b" + }, + { + "id": "0x55e180aadc00-Statement", + "statement": "0x55e180aadc10-EndFunctionStmt", + "source": "end function add_numbers" + }, + { + "id": "0x55e180aadc10-EndFunctionStmt", + "Name": "0x55e180aadc10-Name" + }, + { + "id": "0x55e180aadc10-Name", + "source": "add_numbers" + }, + { + "id": "0x55e180aac2b0-Statement", + "statement": "0x55e180aac2c0-EndProgramStmt", + "source": "end program FUNCTION" + }, + { + "id": "0x55e180aac2c0-EndProgramStmt", + "Name": "0x55e180aac2c0-Name" + }, + { + "id": "0x55e180aac2c0-Name", + "source": "FUNCTION" + } + ], + "comments": [], + "enums": { + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "Fortran::common::ImportKind": [ + "Default", + "Only", + "None", + "All" + ], + "Fortran::common::OmpDependenceKind": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::common::OmpMemoryOrderType": [ + "Acq_Rel", + "Acquire", + "Relaxed", + "Release", + "Seq_Cst" + ], + "Fortran::common::OpenACCDeviceType": [ + "Star", + "Default", + "Nvidia", + "Radeon", + "Host", + "Multicore", + "None" + ], + "Fortran::parser::AccDataModifier::Modifier": [ + "ReadOnly", + "Zero" + ], + "Fortran::parser::AccessSpec::Kind": [ + "Public", + "Private" + ], + "Fortran::parser::BindEntity::Kind": [ + "Object", + "Common" + ], + "Fortran::parser::CompilerDirective::VectorLength::Kind": [ + "Auto", + "Fixed", + "Scalable" + ], + "Fortran::parser::ConnectSpec::CharExpr::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Encoding", + "Form", + "Pad", + "Position", + "Round", + "Sign", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::DefinedOperator::IntrinsicOperator": [ + "Power", + "Multiply", + "Divide", + "Add", + "Subtract", + "Concat", + "LT", + "LE", + "EQ", + "NE", + "GE", + "GT", + "NOT", + "AND", + "OR", + "EQV", + "NEQV" + ], + "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec": [ + "External", + "Type" + ], + "Fortran::parser::InquireSpec::CharVar::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Direct", + "Encoding", + "Form", + "Formatted", + "Iomsg", + "Name", + "Pad", + "Position", + "Read", + "Readwrite", + "Round", + "Sequential", + "Sign", + "Stream", + "Status", + "Unformatted", + "Write", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::InquireSpec::IntVar::Kind": [ + "Iostat", + "Nextrec", + "Number", + "Pos", + "Recl", + "Size" + ], + "Fortran::parser::InquireSpec::LogVar::Kind": [ + "Exist", + "Named", + "Opened", + "Pending" + ], + "Fortran::parser::IntentSpec::Intent": [ + "In", + "Out", + "InOut" + ], + "Fortran::parser::IoControlSpec::CharExpr::Kind": [ + "Advance", + "Blank", + "Decimal", + "Delim", + "Pad", + "Round", + "Sign" + ], + "Fortran::parser::ReductionOperator::Operator": [ + "Plus", + "Multiply", + "Max", + "Min", + "Iand", + "Ior", + "Ieor", + "And", + "Or", + "Eqv", + "Neqv" + ], + "Fortran::parser::OmpAccessGroup::Value": [ + "Cgroup" + ], + "Fortran::parser::OmpAdjustArgsClause::OmpAdjustOp::Value": [ + "Nothing", + "Need_Device_Ptr" + ], + "Fortran::parser::OmpAlwaysModifier::Value": [ + "Always" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpAttachModifier::Value": [ + "Always", + "Never", + "Auto" + ], + "Fortran::parser::OmpAutomapModifier::Value": [ + "Automap" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpCloseModifier::Value": [ + "Close" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default", + "Present" + ], + "Fortran::parser::OmpDeleteModifier::Value": [ + "Delete" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpDirectiveSpecification::Flag": [ + "DeprecatedSyntax", + "CrossesLabelDo" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpInteropType::Value": [ + "Target", + "Targetsync" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "Storage", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpObject::Invalid::Kind": [ + "BlankCommonBlock" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpPresentModifier::Value": [ + "Present" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpRefModifier::Value": [ + "Ref_Ptee", + "Ref_Ptr", + "Ref_Ptr_Ptee" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpSelfModifier::Value": [ + "Self" + ], + "Fortran::parser::OmpSeverityClause::SevLevel": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpThreadsetClause::ThreadsetPolicy": [ + "Omp_Pool", + "Omp_Team" + ], + "Fortran::parser::OmpTraitSelectorName::Value": [ + "Arch", + "Atomic_Default_Mem_Order", + "Condition", + "Device_Num", + "Extension", + "Isa", + "Kind", + "Requires", + "Simd", + "Uid", + "Vendor" + ], + "Fortran::parser::OmpTraitSetSelectorName::Value": [ + "Construct", + "Device", + "Implementation", + "Target_Device", + "User" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpxHoldModifier::Value": [ + "Ompx_Hold" + ], + "Fortran::parser::ProcedureStmt::Kind": [ + "ModuleProcedure", + "Procedure" + ], + "Fortran::parser::SavedEntity::Kind": [ + "Entity", + "Common" + ], + "Fortran::parser::StopStmt::Kind": [ + "Stop", + "ErrorStop" + ], + "Fortran::parser::UseStmt::ModuleNature": [ + "Intrinsic", + "Non_Intrinsic" + ] + } +} diff --git a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java index 35213285..2b37d881 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -651,6 +651,18 @@ void testIoControlNative() { } } + @Test + void testFunction() { + testJson("program/function.json"); + } + + @Test + void testFunctionNative() { + if (SpecsPlatforms.isLinux()) { + testNative("program/function.f90"); + } + } + @Test void testFujitsu0000_0000() { testJson("fujitsu/0000/0000_0000.json"); From e1927d9e0fe22765028ca3be90ddc162974a5b0b Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 3 Aug 2026 20:02:24 +0100 Subject: [PATCH 157/260] Add AST nodes for functions --- .../fe/specs/fortran/ast/FortranKeyword.java | 1 + .../program/subprogram/EndFunctionStmt.java | 20 ++++++++++++ .../program/subprogram/EndProgramStmt.java | 1 + .../program/subprogram/EndSubroutineStmt.java | 1 + .../nodes/program/subprogram/Function.java | 20 ++++++++++++ .../program/subprogram/FunctionStmt.java | 32 +++++++++++++++++++ .../nodes/program/subprogram/Subprogram.java | 8 +++++ .../nodes/program/subprogram/Subroutine.java | 8 ----- 8 files changed, 83 insertions(+), 8 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/EndFunctionStmt.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Function.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/FunctionStmt.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java index 1c5a7604..9c58da34 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -5,6 +5,7 @@ public enum FortranKeyword { PROGRAM, CONCURRENT, SUBROUTINE, + FUNCTION, USE, INTRINSIC, NON_INTRINSIC, diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/EndFunctionStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/EndFunctionStmt.java new file mode 100644 index 00000000..40231a4b --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/EndFunctionStmt.java @@ -0,0 +1,20 @@ +package pt.up.fe.specs.fortran.ast.nodes.program.subprogram; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; + +import java.util.Collection; + +public class EndFunctionStmt extends Stmt { + public EndFunctionStmt(DataStore data, Collection children) { + super(data, children); + } + + @Override + public String getStmtCode() { + var functionName = getAncestor(Function.class).getName(); + return keyword(FortranKeyword.END) + " " + keyword(FortranKeyword.FUNCTION) + " " + functionName; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/EndProgramStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/EndProgramStmt.java index ed68f875..075b99f1 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/EndProgramStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/EndProgramStmt.java @@ -15,6 +15,7 @@ public EndProgramStmt(DataStore data, Collection children @Override public String getStmtCode() { + // TODO(Process-ing): Remove this special case if (fixedForm()) { return keyword(FortranKeyword.END); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/EndSubroutineStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/EndSubroutineStmt.java index b1ddf6fc..1de7286b 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/EndSubroutineStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/EndSubroutineStmt.java @@ -14,6 +14,7 @@ public EndSubroutineStmt(DataStore data, Collection child @Override public String getStmtCode() { + // TODO(Process-ing): Remove this special case if (fixedForm()) { return keyword(FortranKeyword.END); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Function.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Function.java new file mode 100644 index 00000000..770bf6fc --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Function.java @@ -0,0 +1,20 @@ +package pt.up.fe.specs.fortran.ast.nodes.program.subprogram; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class Function extends InternalSubprogram { + public Function(DataStore data, Collection children) { + super(data, children); + } + + public FunctionStmt getFunctionStmt() { + return (FunctionStmt) getStartStmt(); + } + + public EndFunctionStmt getEndFunctionStmt() { + return (EndFunctionStmt) getEndStmt(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/FunctionStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/FunctionStmt.java new file mode 100644 index 00000000..7e3b000b --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/FunctionStmt.java @@ -0,0 +1,32 @@ +package pt.up.fe.specs.fortran.ast.nodes.program.subprogram; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.decl.NamedParameter; +import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; + +import java.util.Collection; +import java.util.List; + +// TODO(Process-ing): Include support for `prefix` and `suffix` +public class FunctionStmt extends Stmt { + public FunctionStmt(DataStore data, Collection children) { + super(data, children); + } + + public List getParameters() { + return getChildrenOf(NamedParameter.class); + } + + @Override + public String getStmtCode() { + var functionName = getAncestor(Function.class).getName(); + + var argCode = getParameters().stream() + .map(NamedParameter::getCode) + .collect(java.util.stream.Collectors.joining(", ", "(", ")")); + + return keyword(FortranKeyword.FUNCTION) + " " + functionName + argCode; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subprogram.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subprogram.java index 9e6b61ee..a8c6deb8 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subprogram.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subprogram.java @@ -1,5 +1,7 @@ package pt.up.fe.specs.fortran.ast.nodes.program.subprogram; +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.program.Execution; @@ -11,10 +13,16 @@ import java.util.Optional; public abstract class Subprogram extends FortranNode { + public final static DataKey NAME = KeyFactory.string("name"); + public Subprogram(DataStore data, Collection children) { super(data, children); } + public String getName() { + return get(NAME); + } + protected Stmt getStartStmt() { return getChild(Stmt.class, 0); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subroutine.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subroutine.java index 8fb1140d..4060ec58 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subroutine.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subroutine.java @@ -1,23 +1,15 @@ package pt.up.fe.specs.fortran.ast.nodes.program.subprogram; -import org.suikasoft.jOptions.Datakey.DataKey; -import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import java.util.Collection; public class Subroutine extends InternalSubprogram { - public final static DataKey NAME = KeyFactory.string("name"); - public Subroutine(DataStore data, Collection children) { super(data, children); } - public String getName() { - return get(NAME); - } - public SubroutineStmt getSubroutineStmt() { return (SubroutineStmt) getStartStmt(); } From 973ea399433eeb6633ac63ae719edd0f0747ea16 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 3 Aug 2026 20:18:52 +0100 Subject: [PATCH 158/260] Regenerate dump --- .../fortran/parser/program/function.json | 738 +++++++++--------- 1 file changed, 370 insertions(+), 368 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/program/function.json b/FortranParser/resources-test/fortran/parser/program/function.json index 2d729a3a..e4151588 100644 --- a/FortranParser/resources-test/fortran/parser/program/function.json +++ b/FortranParser/resources-test/fortran/parser/program/function.json @@ -2,914 +2,916 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x55e180a7ef00-Program", + "id": "0x5606a589df00-Program", "ProgramUnit": [ - "0x55e180abc840-ProgramUnit" + "0x5606a58db840-ProgramUnit" ] }, { - "id": "0x55e180abc840-ProgramUnit", + "id": "0x5606a58db840-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x55e180aac2b0-MainProgram" + "MainProgram": "0x5606a58cb2b0-MainProgram" }, { - "id": "0x55e180aac2b0-MainProgram", - "Statement": "0x55e180aac3f8-Statement", - "SpecificationPart": "0x55e180aac350-SpecificationPart", - "ExecutionPart": "0x55e180aac338-ExecutionPart", - "InternalSubprogramPart": "0x55e180aac2f0-InternalSubprogramPart", - "Statement": "0x55e180aac2b0-Statement" + "id": "0x5606a58cb2b0-MainProgram", + "Statement": "0x5606a58cb3f8-Statement", + "SpecificationPart": "0x5606a58cb350-SpecificationPart", + "ExecutionPart": "0x5606a58cb338-ExecutionPart", + "InternalSubprogramPart": "0x5606a58cb2f0-InternalSubprogramPart", + "Statement": "0x5606a58cb2b0-Statement" }, { - "id": "0x55e180aac3f8-Statement", - "statement": "0x55e180aac408-ProgramStmt", + "id": "0x5606a58cb3f8-Statement", + "statement": "0x5606a58cb408-ProgramStmt", "source": "program FUNCTION" }, { - "id": "0x55e180aac408-ProgramStmt", - "Name": "0x55e180aac408-Name" + "id": "0x5606a58cb408-ProgramStmt", + "Name": "0x5606a58cb408-Name" }, { - "id": "0x55e180aac408-Name", + "id": "0x5606a58cb408-Name", "source": "FUNCTION" }, { - "id": "0x55e180aac350-SpecificationPart", - "ImplicitPart": "0x55e180aac368-ImplicitPart", + "id": "0x5606a58cb350-SpecificationPart", + "ImplicitPart": "0x5606a58cb368-ImplicitPart", "DeclarationConstruct": [ - "0x55e180a8c170-DeclarationConstruct" + "0x5606a58ab170-DeclarationConstruct" ] }, { - "id": "0x55e180aac368-ImplicitPart" + "id": "0x5606a58cb368-ImplicitPart" }, { - "id": "0x55e180a8c170-DeclarationConstruct", + "id": "0x5606a58ab170-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55e180a8c170-SpecificationConstruct" + "SpecificationConstruct": "0x5606a58ab170-SpecificationConstruct" }, { - "id": "0x55e180a8c170-SpecificationConstruct", + "id": "0x5606a58ab170-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55e180a8c170-Statement" + "Statement": "0x5606a58ab170-Statement" }, { - "id": "0x55e180a8c170-Statement", - "statement": "0x55e180ab9210-TypeDeclarationStmt", + "id": "0x5606a58ab170-Statement", + "statement": "0x5606a58d8210-TypeDeclarationStmt", "source": "integer :: x, y, total, useless" }, { - "id": "0x55e180ab9210-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55e180ab9240-DeclarationTypeSpec", + "id": "0x5606a58d8210-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5606a58d8240-DeclarationTypeSpec", "EntityDecl": [ - "0x55e180ab95f0-EntityDecl", - "0x55e180ab9320-EntityDecl", - "0x55e180ab9410-EntityDecl", - "0x55e180ab9500-EntityDecl" + "0x5606a58d85f0-EntityDecl", + "0x5606a58d8320-EntityDecl", + "0x5606a58d8410-EntityDecl", + "0x5606a58d8500-EntityDecl" ] }, { - "id": "0x55e180ab9240-DeclarationTypeSpec", + "id": "0x5606a58d8240-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55e180ab9240-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5606a58d8240-IntrinsicTypeSpec" }, { - "id": "0x55e180ab9240-IntrinsicTypeSpec", + "id": "0x5606a58d8240-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55e180ab9240-IntegerTypeSpec" + "IntegerTypeSpec": "0x5606a58d8240-IntegerTypeSpec" }, { - "id": "0x55e180ab9240-IntegerTypeSpec" + "id": "0x5606a58d8240-IntegerTypeSpec" }, { - "id": "0x55e180ab95f0-EntityDecl", - "Name": "0x55e180ab96a8-Name" + "id": "0x5606a58d85f0-EntityDecl", + "Name": "0x5606a58d86a8-Name" }, { - "id": "0x55e180ab96a8-Name", + "id": "0x5606a58d86a8-Name", "source": "x" }, { - "id": "0x55e180ab9320-EntityDecl", - "Name": "0x55e180ab93d8-Name" + "id": "0x5606a58d8320-EntityDecl", + "Name": "0x5606a58d83d8-Name" }, { - "id": "0x55e180ab93d8-Name", + "id": "0x5606a58d83d8-Name", "source": "y" }, { - "id": "0x55e180ab9410-EntityDecl", - "Name": "0x55e180ab94c8-Name" + "id": "0x5606a58d8410-EntityDecl", + "Name": "0x5606a58d84c8-Name" }, { - "id": "0x55e180ab94c8-Name", + "id": "0x5606a58d84c8-Name", "source": "total" }, { - "id": "0x55e180ab9500-EntityDecl", - "Name": "0x55e180ab95b8-Name" + "id": "0x5606a58d8500-EntityDecl", + "Name": "0x5606a58d85b8-Name" }, { - "id": "0x55e180ab95b8-Name", + "id": "0x5606a58d85b8-Name", "source": "useless" }, { - "id": "0x55e180aac338-ExecutionPart", + "id": "0x5606a58cb338-ExecutionPart", "ExecutionPartConstruct": [ - "0x55e180abaac0-ExecutionPartConstruct", - "0x55e180abac90-ExecutionPartConstruct", - "0x55e180abae60-ExecutionPartConstruct", - "0x55e180aaa010-ExecutionPartConstruct", - "0x55e180a8bda0-ExecutionPartConstruct" + "0x5606a58d9ac0-ExecutionPartConstruct", + "0x5606a58d9c90-ExecutionPartConstruct", + "0x5606a58d9e60-ExecutionPartConstruct", + "0x5606a58c9010-ExecutionPartConstruct", + "0x5606a58aada0-ExecutionPartConstruct" ] }, { - "id": "0x55e180aac338-ExecutionPartConstruct" + "id": "0x5606a58cb338-ExecutionPartConstruct" }, { - "id": "0x55e180abaac0-ExecutionPartConstruct", + "id": "0x5606a58d9ac0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55e180abaac0-ExecutableConstruct" + "ExecutableConstruct": "0x5606a58d9ac0-ExecutableConstruct" }, { - "id": "0x55e180abaac0-ExecutableConstruct", + "id": "0x5606a58d9ac0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55e180abaac0-Statement" + "Statement": "0x5606a58d9ac0-Statement" }, { - "id": "0x55e180abaac0-Statement", - "statement": "0x55e180abaad0-ActionStmt", + "id": "0x5606a58d9ac0-Statement", + "statement": "0x5606a58d9ad0-ActionStmt", "source": "x = 5" }, { - "id": "0x55e180abaad0-ActionStmt", + "id": "0x5606a58d9ad0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55e180abb890-AssignmentStmt" + "AssignmentStmt": "0x5606a58da890-AssignmentStmt" }, { - "id": "0x55e180abb890-AssignmentStmt", - "Variable": "0x55e180abb970-Variable", - "Expr": "0x55e180abb8a0-Expr" + "id": "0x5606a58da890-AssignmentStmt", + "Variable": "0x5606a58da970-Variable", + "Expr": "0x5606a58da8a0-Expr" }, { - "id": "0x55e180abb970-Variable", + "id": "0x5606a58da970-Variable", "variantKey": "Designator", - "Designator": "0x55e180a8c100-Designator" + "Designator": "0x5606a58ab100-Designator" }, { - "id": "0x55e180a8c100-Designator", + "id": "0x5606a58ab100-Designator", "variantKey": "DataRef", - "DataRef": "0x55e180a8c110-DataRef" + "DataRef": "0x5606a58ab110-DataRef" }, { - "id": "0x55e180a8c110-DataRef", + "id": "0x5606a58ab110-DataRef", "variantKey": "Name", - "Name": "0x55e180a8c110-Name" + "Name": "0x5606a58ab110-Name" }, { - "id": "0x55e180a8c110-Name", + "id": "0x5606a58ab110-Name", "source": "x" }, { - "id": "0x55e180abb8a0-Expr", + "id": "0x5606a58da8a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e180abb8c0-LiteralConstant" + "LiteralConstant": "0x5606a58da8c0-LiteralConstant" }, { - "id": "0x55e180abb8c0-LiteralConstant", + "id": "0x5606a58da8c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e180abb8c0-IntLiteralConstant" + "IntLiteralConstant": "0x5606a58da8c0-IntLiteralConstant" }, { - "id": "0x55e180abb8c0-IntLiteralConstant", + "id": "0x5606a58da8c0-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x55e180abac90-ExecutionPartConstruct", + "id": "0x5606a58d9c90-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55e180abac90-ExecutableConstruct" + "ExecutableConstruct": "0x5606a58d9c90-ExecutableConstruct" }, { - "id": "0x55e180abac90-ExecutableConstruct", + "id": "0x5606a58d9c90-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55e180abac90-Statement" + "Statement": "0x5606a58d9c90-Statement" }, { - "id": "0x55e180abac90-Statement", - "statement": "0x55e180abaca0-ActionStmt", + "id": "0x5606a58d9c90-Statement", + "statement": "0x5606a58d9ca0-ActionStmt", "source": "y = 12" }, { - "id": "0x55e180abaca0-ActionStmt", + "id": "0x5606a58d9ca0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55e180abab70-AssignmentStmt" + "AssignmentStmt": "0x5606a58d9b70-AssignmentStmt" }, { - "id": "0x55e180abab70-AssignmentStmt", - "Variable": "0x55e180abac50-Variable", - "Expr": "0x55e180abab80-Expr" + "id": "0x5606a58d9b70-AssignmentStmt", + "Variable": "0x5606a58d9c50-Variable", + "Expr": "0x5606a58d9b80-Expr" }, { - "id": "0x55e180abac50-Variable", + "id": "0x5606a58d9c50-Variable", "variantKey": "Designator", - "Designator": "0x55e180aba7b0-Designator" + "Designator": "0x5606a58d97b0-Designator" }, { - "id": "0x55e180aba7b0-Designator", + "id": "0x5606a58d97b0-Designator", "variantKey": "DataRef", - "DataRef": "0x55e180aba7c0-DataRef" + "DataRef": "0x5606a58d97c0-DataRef" }, { - "id": "0x55e180aba7c0-DataRef", + "id": "0x5606a58d97c0-DataRef", "variantKey": "Name", - "Name": "0x55e180aba7c0-Name" + "Name": "0x5606a58d97c0-Name" }, { - "id": "0x55e180aba7c0-Name", + "id": "0x5606a58d97c0-Name", "source": "y" }, { - "id": "0x55e180abab80-Expr", + "id": "0x5606a58d9b80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e180ababa0-LiteralConstant" + "LiteralConstant": "0x5606a58d9ba0-LiteralConstant" }, { - "id": "0x55e180ababa0-LiteralConstant", + "id": "0x5606a58d9ba0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e180ababa0-IntLiteralConstant" + "IntLiteralConstant": "0x5606a58d9ba0-IntLiteralConstant" }, { - "id": "0x55e180ababa0-IntLiteralConstant", + "id": "0x5606a58d9ba0-IntLiteralConstant", "CharBlock": "12" }, { - "id": "0x55e180abae60-ExecutionPartConstruct", + "id": "0x5606a58d9e60-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55e180abae60-ExecutableConstruct" + "ExecutableConstruct": "0x5606a58d9e60-ExecutableConstruct" }, { - "id": "0x55e180abae60-ExecutableConstruct", + "id": "0x5606a58d9e60-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55e180abae60-Statement" + "Statement": "0x5606a58d9e60-Statement" }, { - "id": "0x55e180abae60-Statement", - "statement": "0x55e180abae70-ActionStmt", + "id": "0x5606a58d9e60-Statement", + "statement": "0x5606a58d9e70-ActionStmt", "source": "useless = 0" }, { - "id": "0x55e180abae70-ActionStmt", + "id": "0x5606a58d9e70-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55e180abad40-AssignmentStmt" + "AssignmentStmt": "0x5606a58d9d40-AssignmentStmt" }, { - "id": "0x55e180abad40-AssignmentStmt", - "Variable": "0x55e180abae20-Variable", - "Expr": "0x55e180abad50-Expr" + "id": "0x5606a58d9d40-AssignmentStmt", + "Variable": "0x5606a58d9e20-Variable", + "Expr": "0x5606a58d9d50-Expr" }, { - "id": "0x55e180abae20-Variable", + "id": "0x5606a58d9e20-Variable", "variantKey": "Designator", - "Designator": "0x55e180abab10-Designator" + "Designator": "0x5606a58d9b10-Designator" }, { - "id": "0x55e180abab10-Designator", + "id": "0x5606a58d9b10-Designator", "variantKey": "DataRef", - "DataRef": "0x55e180abab20-DataRef" + "DataRef": "0x5606a58d9b20-DataRef" }, { - "id": "0x55e180abab20-DataRef", + "id": "0x5606a58d9b20-DataRef", "variantKey": "Name", - "Name": "0x55e180abab20-Name" + "Name": "0x5606a58d9b20-Name" }, { - "id": "0x55e180abab20-Name", + "id": "0x5606a58d9b20-Name", "source": "useless" }, { - "id": "0x55e180abad50-Expr", + "id": "0x5606a58d9d50-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e180abad70-LiteralConstant" + "LiteralConstant": "0x5606a58d9d70-LiteralConstant" }, { - "id": "0x55e180abad70-LiteralConstant", + "id": "0x5606a58d9d70-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e180abad70-IntLiteralConstant" + "IntLiteralConstant": "0x5606a58d9d70-IntLiteralConstant" }, { - "id": "0x55e180abad70-IntLiteralConstant", + "id": "0x5606a58d9d70-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55e180aaa010-ExecutionPartConstruct", + "id": "0x5606a58c9010-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55e180aaa010-ExecutableConstruct" + "ExecutableConstruct": "0x5606a58c9010-ExecutableConstruct" }, { - "id": "0x55e180aaa010-ExecutableConstruct", + "id": "0x5606a58c9010-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55e180aaa010-Statement" + "Statement": "0x5606a58c9010-Statement" }, { - "id": "0x55e180aaa010-Statement", - "statement": "0x55e180aaa020-ActionStmt", + "id": "0x5606a58c9010-Statement", + "statement": "0x5606a58c9020-ActionStmt", "source": "total = add_numbers(x, y, useless)" }, { - "id": "0x55e180aaa020-ActionStmt", + "id": "0x5606a58c9020-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55e180aa9e80-AssignmentStmt" + "AssignmentStmt": "0x5606a58c8e80-AssignmentStmt" }, { - "id": "0x55e180aa9e80-AssignmentStmt", - "Variable": "0x55e180aa9f60-Variable", - "Expr": "0x55e180aa9e90-Expr" + "id": "0x5606a58c8e80-AssignmentStmt", + "Variable": "0x5606a58c8f60-Variable", + "Expr": "0x5606a58c8e90-Expr" }, { - "id": "0x55e180aa9f60-Variable", + "id": "0x5606a58c8f60-Variable", "variantKey": "Designator", - "Designator": "0x55e180abace0-Designator" + "Designator": "0x5606a58d9ce0-Designator" }, { - "id": "0x55e180abace0-Designator", + "id": "0x5606a58d9ce0-Designator", "variantKey": "DataRef", - "DataRef": "0x55e180abacf0-DataRef" + "DataRef": "0x5606a58d9cf0-DataRef" }, { - "id": "0x55e180abacf0-DataRef", + "id": "0x5606a58d9cf0-DataRef", "variantKey": "Name", - "Name": "0x55e180abacf0-Name" + "Name": "0x5606a58d9cf0-Name" }, { - "id": "0x55e180abacf0-Name", + "id": "0x5606a58d9cf0-Name", "source": "total" }, { - "id": "0x55e180aa9e90-Expr", + "id": "0x5606a58c8e90-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55e180aa9d30-FunctionReference" + "FunctionReference": "0x5606a58c8d30-FunctionReference" }, { - "id": "0x55e180aa9d30-FunctionReference", - "Call": "0x55e180aa9d30-Call" + "id": "0x5606a58c8d30-FunctionReference", + "Call": "0x5606a58c8d30-Call" }, { - "id": "0x55e180aa9d30-Call", - "ProcedureDesignator": "0x55e180aa9d48-ProcedureDesignator", + "id": "0x5606a58c8d30-Call", + "ProcedureDesignator": "0x5606a58c8d48-ProcedureDesignator", "ActualArgSpec": [ - "0x55e180aa9bc0-ActualArgSpec", - "0x55e180aa99a0-ActualArgSpec", - "0x55e180aa9ab0-ActualArgSpec" + "0x5606a58c8bc0-ActualArgSpec", + "0x5606a58c89a0-ActualArgSpec", + "0x5606a58c8ab0-ActualArgSpec" ] }, { - "id": "0x55e180aa9d48-ProcedureDesignator", + "id": "0x5606a58c8d48-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55e180aa9d48-Name" + "Name": "0x5606a58c8d48-Name" }, { - "id": "0x55e180aa9d48-Name", + "id": "0x5606a58c8d48-Name", "source": "add_numbers" }, { - "id": "0x55e180aa9bc0-ActualArgSpec", - "ActualArg": "0x55e180aa9bc0-ActualArg" + "id": "0x5606a58c8bc0-ActualArgSpec", + "ActualArg": "0x5606a58c8bc0-ActualArg" }, { - "id": "0x55e180aa9bc0-ActualArg", + "id": "0x5606a58c8bc0-ActualArg", "variantKey": "Expr", - "Expr": "0x55e180aa9770-Expr" + "Expr": "0x5606a58c8770-Expr" }, { - "id": "0x55e180aa9770-Expr", + "id": "0x5606a58c8770-Expr", "variantKey": "Designator", - "Designator": "0x55e180aba040-Designator" + "Designator": "0x5606a58d9040-Designator" }, { - "id": "0x55e180aba040-Designator", + "id": "0x5606a58d9040-Designator", "variantKey": "DataRef", - "DataRef": "0x55e180aba050-DataRef" + "DataRef": "0x5606a58d9050-DataRef" }, { - "id": "0x55e180aba050-DataRef", + "id": "0x5606a58d9050-DataRef", "variantKey": "Name", - "Name": "0x55e180aba050-Name" + "Name": "0x5606a58d9050-Name" }, { - "id": "0x55e180aba050-Name", + "id": "0x5606a58d9050-Name", "source": "x" }, { - "id": "0x55e180aa99a0-ActualArgSpec", - "ActualArg": "0x55e180aa99a0-ActualArg" + "id": "0x5606a58c89a0-ActualArgSpec", + "ActualArg": "0x5606a58c89a0-ActualArg" }, { - "id": "0x55e180aa99a0-ActualArg", + "id": "0x5606a58c89a0-ActualArg", "variantKey": "Expr", - "Expr": "0x55e180ab9a80-Expr" + "Expr": "0x5606a58d8a80-Expr" }, { - "id": "0x55e180ab9a80-Expr", + "id": "0x5606a58d8a80-Expr", "variantKey": "Designator", - "Designator": "0x55e180ab99b0-Designator" + "Designator": "0x5606a58d89b0-Designator" }, { - "id": "0x55e180ab99b0-Designator", + "id": "0x5606a58d89b0-Designator", "variantKey": "DataRef", - "DataRef": "0x55e180ab99c0-DataRef" + "DataRef": "0x5606a58d89c0-DataRef" }, { - "id": "0x55e180ab99c0-DataRef", + "id": "0x5606a58d89c0-DataRef", "variantKey": "Name", - "Name": "0x55e180ab99c0-Name" + "Name": "0x5606a58d89c0-Name" }, { - "id": "0x55e180ab99c0-Name", + "id": "0x5606a58d89c0-Name", "source": "y" }, { - "id": "0x55e180aa9ab0-ActualArgSpec", - "ActualArg": "0x55e180aa9ab0-ActualArg" + "id": "0x5606a58c8ab0-ActualArgSpec", + "ActualArg": "0x5606a58c8ab0-ActualArg" }, { - "id": "0x55e180aa9ab0-ActualArg", + "id": "0x5606a58c8ab0-ActualArg", "variantKey": "Expr", - "Expr": "0x55e180a1e790-Expr" + "Expr": "0x5606a583d790-Expr" }, { - "id": "0x55e180a1e790-Expr", + "id": "0x5606a583d790-Expr", "variantKey": "Designator", - "Designator": "0x55e180abb3a0-Designator" + "Designator": "0x5606a58da3a0-Designator" }, { - "id": "0x55e180abb3a0-Designator", + "id": "0x5606a58da3a0-Designator", "variantKey": "DataRef", - "DataRef": "0x55e180abb3b0-DataRef" + "DataRef": "0x5606a58da3b0-DataRef" }, { - "id": "0x55e180abb3b0-DataRef", + "id": "0x5606a58da3b0-DataRef", "variantKey": "Name", - "Name": "0x55e180abb3b0-Name" + "Name": "0x5606a58da3b0-Name" }, { - "id": "0x55e180abb3b0-Name", + "id": "0x5606a58da3b0-Name", "source": "useless" }, { - "id": "0x55e180a8bda0-ExecutionPartConstruct", + "id": "0x5606a58aada0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55e180a8bda0-ExecutableConstruct" + "ExecutableConstruct": "0x5606a58aada0-ExecutableConstruct" }, { - "id": "0x55e180a8bda0-ExecutableConstruct", + "id": "0x5606a58aada0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55e180a8bda0-Statement" + "Statement": "0x5606a58aada0-Statement" }, { - "id": "0x55e180a8bda0-Statement", - "statement": "0x55e180a8bdb0-ActionStmt", + "id": "0x5606a58aada0-Statement", + "statement": "0x5606a58aadb0-ActionStmt", "source": "print *, \"The sum is:\", total" }, { - "id": "0x55e180a8bdb0-ActionStmt", + "id": "0x5606a58aadb0-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x55e180aaa550-PrintStmt" + "PrintStmt": "0x5606a58c9550-PrintStmt" }, { - "id": "0x55e180aaa550-PrintStmt", - "Format": "0x55e180aaa568-Format", + "id": "0x5606a58c9550-PrintStmt", + "Format": "0x5606a58c9568-Format", "OutputItem": [ - "0x55e180aaa400-OutputItem", - "0x55e180aaa310-OutputItem" + "0x5606a58c9400-OutputItem", + "0x5606a58c9310-OutputItem" ] }, { - "id": "0x55e180aaa568-Format", + "id": "0x5606a58c9568-Format", "variantKey": "Star", - "Star": "0x55e180aaa568-Star" + "Star": "0x5606a58c9568-Star" }, { - "id": "0x55e180aaa568-Star" + "id": "0x5606a58c9568-Star" }, { - "id": "0x55e180aaa400-OutputItem", + "id": "0x5606a58c9400-OutputItem", "variantKey": "Expr", - "Expr": "0x55e180aaa400-Expr" + "Expr": "0x5606a58c9400-Expr" }, { - "id": "0x55e180aaa400-Expr", + "id": "0x5606a58c9400-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e180aaa420-LiteralConstant" + "LiteralConstant": "0x5606a58c9420-LiteralConstant" }, { - "id": "0x55e180aaa420-LiteralConstant", + "id": "0x5606a58c9420-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55e180aaa420-CharLiteralConstant" + "CharLiteralConstant": "0x5606a58c9420-CharLiteralConstant" }, { - "id": "0x55e180aaa420-CharLiteralConstant", + "id": "0x5606a58c9420-CharLiteralConstant", "string": "The sum is:" }, { - "id": "0x55e180aaa310-OutputItem", + "id": "0x5606a58c9310-OutputItem", "variantKey": "Expr", - "Expr": "0x55e180aaa310-Expr" + "Expr": "0x5606a58c9310-Expr" }, { - "id": "0x55e180aaa310-Expr", + "id": "0x5606a58c9310-Expr", "variantKey": "Designator", - "Designator": "0x55e180aa9850-Designator" + "Designator": "0x5606a58c8850-Designator" }, { - "id": "0x55e180aa9850-Designator", + "id": "0x5606a58c8850-Designator", "variantKey": "DataRef", - "DataRef": "0x55e180aa9860-DataRef" + "DataRef": "0x5606a58c8860-DataRef" }, { - "id": "0x55e180aa9860-DataRef", + "id": "0x5606a58c8860-DataRef", "variantKey": "Name", - "Name": "0x55e180aa9860-Name" + "Name": "0x5606a58c8860-Name" }, { - "id": "0x55e180aa9860-Name", + "id": "0x5606a58c8860-Name", "source": "total" }, { - "id": "0x55e180aac2f0-InternalSubprogramPart", - "Statement": "0x55e180aac308-Statement", + "id": "0x5606a58cb2f0-InternalSubprogramPart", + "Statement": "0x5606a58cb308-Statement", "InternalSubprogram": [ - "0x55e180abc730-InternalSubprogram" + "0x5606a58db730-InternalSubprogram" ] }, { - "id": "0x55e180aac308-Statement", - "statement": "0x55e180aac318-ContainsStmt", + "id": "0x5606a58cb308-Statement", + "statement": "0x5606a58cb318-ContainsStmt", "source": "contains" }, { - "id": "0x55e180aac318-ContainsStmt" + "id": "0x5606a58cb318-ContainsStmt" }, { - "id": "0x55e180abc730-InternalSubprogram", + "id": "0x5606a58db730-InternalSubprogram", "variantKey": "FunctionSubprogram", - "FunctionSubprogram": "0x55e180aadc00-FunctionSubprogram" + "FunctionSubprogram": "0x5606a58ccc00-FunctionSubprogram" }, { - "id": "0x55e180aadc00-FunctionSubprogram", - "Statement": "0x55e180aadd48-Statement", - "SpecificationPart": "0x55e180aadca0-SpecificationPart", - "ExecutionPart": "0x55e180aadc88-ExecutionPart", - "Statement": "0x55e180aadc00-Statement" + "id": "0x5606a58ccc00-FunctionSubprogram", + "Statement": "0x5606a58ccd48-Statement", + "SpecificationPart": "0x5606a58ccca0-SpecificationPart", + "ExecutionPart": "0x5606a58ccc88-ExecutionPart", + "Statement": "0x5606a58ccc00-Statement" }, { - "id": "0x55e180aadd48-Statement", - "statement": "0x55e180aadd58-FunctionStmt", + "id": "0x5606a58ccd48-Statement", + "statement": "0x5606a58ccd58-FunctionStmt", "source": "function add_numbers(a, b, useless) result(res)" }, { - "id": "0x55e180aadd58-FunctionStmt", - "Name": [ - "0x55e180abc6e0-Name", - "0x55e180abc680-Name", - "0x55e180abc6b0-Name" + "id": "0x5606a58ccd58-FunctionStmt", + "prefix": [], + "functionName": "0x5606a58ccdb8-Name", + "argNames": [ + "0x5606a58db6e0-Name", + "0x5606a58db680-Name", + "0x5606a58db6b0-Name" ], - "Suffix": "0x55e180aadd58-Suffix" + "suffix": "0x5606a58ccd58-Suffix" }, { - "id": "0x55e180aaddb8-Name", + "id": "0x5606a58ccdb8-Name", "source": "add_numbers" }, { - "id": "0x55e180abc6e0-Name", + "id": "0x5606a58db6e0-Name", "source": "a" }, { - "id": "0x55e180abc680-Name", + "id": "0x5606a58db680-Name", "source": "b" }, { - "id": "0x55e180abc6b0-Name", + "id": "0x5606a58db6b0-Name", "source": "useless" }, { - "id": "0x55e180aadd58-Suffix" + "id": "0x5606a58ccd58-Suffix" }, { - "id": "0x55e180aadd78-Name", + "id": "0x5606a58ccd78-Name", "source": "res" }, { - "id": "0x55e180aadca0-SpecificationPart", - "ImplicitPart": "0x55e180aadcb8-ImplicitPart", + "id": "0x5606a58ccca0-SpecificationPart", + "ImplicitPart": "0x5606a58cccb8-ImplicitPart", "DeclarationConstruct": [ - "0x55e180abb480-DeclarationConstruct", - "0x55e180aba320-DeclarationConstruct", - "0x55e180ab9b70-DeclarationConstruct" + "0x5606a58da480-DeclarationConstruct", + "0x5606a58d9320-DeclarationConstruct", + "0x5606a58d8b70-DeclarationConstruct" ] }, { - "id": "0x55e180aadcb8-ImplicitPart" + "id": "0x5606a58cccb8-ImplicitPart" }, { - "id": "0x55e180abb480-DeclarationConstruct", + "id": "0x5606a58da480-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55e180abb480-SpecificationConstruct" + "SpecificationConstruct": "0x5606a58da480-SpecificationConstruct" }, { - "id": "0x55e180abb480-SpecificationConstruct", + "id": "0x5606a58da480-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55e180abb480-Statement" + "Statement": "0x5606a58da480-Statement" }, { - "id": "0x55e180abb480-Statement", - "statement": "0x55e180aabff0-TypeDeclarationStmt", + "id": "0x5606a58da480-Statement", + "statement": "0x5606a58caff0-TypeDeclarationStmt", "source": "integer, intent(in) :: a, b" }, { - "id": "0x55e180aabff0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55e180aac020-DeclarationTypeSpec", + "id": "0x5606a58caff0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5606a58cb020-DeclarationTypeSpec", "AttrSpec": [ - "0x55e180abb680-AttrSpec" + "0x5606a58da680-AttrSpec" ], "EntityDecl": [ - "0x55e180aba460-EntityDecl", - "0x55e180aac5f0-EntityDecl" + "0x5606a58d9460-EntityDecl", + "0x5606a58cb5f0-EntityDecl" ] }, { - "id": "0x55e180aac020-DeclarationTypeSpec", + "id": "0x5606a58cb020-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55e180aac020-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5606a58cb020-IntrinsicTypeSpec" }, { - "id": "0x55e180aac020-IntrinsicTypeSpec", + "id": "0x5606a58cb020-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55e180aac020-IntegerTypeSpec" + "IntegerTypeSpec": "0x5606a58cb020-IntegerTypeSpec" }, { - "id": "0x55e180aac020-IntegerTypeSpec" + "id": "0x5606a58cb020-IntegerTypeSpec" }, { - "id": "0x55e180abb680-AttrSpec", + "id": "0x5606a58da680-AttrSpec", "variantKey": "IntentSpec", - "IntentSpec": "0x55e180abb680-IntentSpec" + "IntentSpec": "0x5606a58da680-IntentSpec" }, { - "id": "0x55e180abb680-IntentSpec", - "Intent": "0x55e180abb680-Intent", + "id": "0x5606a58da680-IntentSpec", + "Intent": "0x5606a58da680-Intent", "intent": "In" }, { - "id": "0x55e180abb680-Intent", + "id": "0x5606a58da680-Intent", "disambiguation": "Fortran::parser::IntentSpec::Intent", "value": "In" }, { - "id": "0x55e180aba460-EntityDecl", - "Name": "0x55e180aba518-Name" + "id": "0x5606a58d9460-EntityDecl", + "Name": "0x5606a58d9518-Name" }, { - "id": "0x55e180aba518-Name", + "id": "0x5606a58d9518-Name", "source": "a" }, { - "id": "0x55e180aac5f0-EntityDecl", - "Name": "0x55e180aac6a8-Name" + "id": "0x5606a58cb5f0-EntityDecl", + "Name": "0x5606a58cb6a8-Name" }, { - "id": "0x55e180aac6a8-Name", + "id": "0x5606a58cb6a8-Name", "source": "b" }, { - "id": "0x55e180aba320-DeclarationConstruct", + "id": "0x5606a58d9320-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55e180aba320-SpecificationConstruct" + "SpecificationConstruct": "0x5606a58d9320-SpecificationConstruct" }, { - "id": "0x55e180aba320-SpecificationConstruct", + "id": "0x5606a58d9320-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55e180aba320-Statement" + "Statement": "0x5606a58d9320-Statement" }, { - "id": "0x55e180aba320-Statement", - "statement": "0x55e180aaa900-TypeDeclarationStmt", + "id": "0x5606a58d9320-Statement", + "statement": "0x5606a58c9900-TypeDeclarationStmt", "source": "integer, intent(inout) :: useless" }, { - "id": "0x55e180aaa900-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55e180aaa930-DeclarationTypeSpec", + "id": "0x5606a58c9900-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5606a58c9930-DeclarationTypeSpec", "AttrSpec": [ - "0x55e180ac27e0-AttrSpec" + "0x5606a58e17e0-AttrSpec" ], "EntityDecl": [ - "0x55e180aba550-EntityDecl" + "0x5606a58d9550-EntityDecl" ] }, { - "id": "0x55e180aaa930-DeclarationTypeSpec", + "id": "0x5606a58c9930-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55e180aaa930-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5606a58c9930-IntrinsicTypeSpec" }, { - "id": "0x55e180aaa930-IntrinsicTypeSpec", + "id": "0x5606a58c9930-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55e180aaa930-IntegerTypeSpec" + "IntegerTypeSpec": "0x5606a58c9930-IntegerTypeSpec" }, { - "id": "0x55e180aaa930-IntegerTypeSpec" + "id": "0x5606a58c9930-IntegerTypeSpec" }, { - "id": "0x55e180ac27e0-AttrSpec", + "id": "0x5606a58e17e0-AttrSpec", "variantKey": "IntentSpec", - "IntentSpec": "0x55e180ac27e0-IntentSpec" + "IntentSpec": "0x5606a58e17e0-IntentSpec" }, { - "id": "0x55e180ac27e0-IntentSpec", - "Intent": "0x55e180ac27e0-Intent", + "id": "0x5606a58e17e0-IntentSpec", + "Intent": "0x5606a58e17e0-Intent", "intent": "InOut" }, { - "id": "0x55e180ac27e0-Intent", + "id": "0x5606a58e17e0-Intent", "disambiguation": "Fortran::parser::IntentSpec::Intent", "value": "InOut" }, { - "id": "0x55e180aba550-EntityDecl", - "Name": "0x55e180aba608-Name" + "id": "0x5606a58d9550-EntityDecl", + "Name": "0x5606a58d9608-Name" }, { - "id": "0x55e180aba608-Name", + "id": "0x5606a58d9608-Name", "source": "useless" }, { - "id": "0x55e180ab9b70-DeclarationConstruct", + "id": "0x5606a58d8b70-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55e180ab9b70-SpecificationConstruct" + "SpecificationConstruct": "0x5606a58d8b70-SpecificationConstruct" }, { - "id": "0x55e180ab9b70-SpecificationConstruct", + "id": "0x5606a58d8b70-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55e180ab9b70-Statement" + "Statement": "0x5606a58d8b70-Statement" }, { - "id": "0x55e180ab9b70-Statement", - "statement": "0x55e180abb700-TypeDeclarationStmt", + "id": "0x5606a58d8b70-Statement", + "statement": "0x5606a58da700-TypeDeclarationStmt", "source": "integer :: res" }, { - "id": "0x55e180abb700-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55e180abb730-DeclarationTypeSpec", + "id": "0x5606a58da700-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5606a58da730-DeclarationTypeSpec", "EntityDecl": [ - "0x55e180aaa6d0-EntityDecl" + "0x5606a58c96d0-EntityDecl" ] }, { - "id": "0x55e180abb730-DeclarationTypeSpec", + "id": "0x5606a58da730-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55e180abb730-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5606a58da730-IntrinsicTypeSpec" }, { - "id": "0x55e180abb730-IntrinsicTypeSpec", + "id": "0x5606a58da730-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55e180abb730-IntegerTypeSpec" + "IntegerTypeSpec": "0x5606a58da730-IntegerTypeSpec" }, { - "id": "0x55e180abb730-IntegerTypeSpec" + "id": "0x5606a58da730-IntegerTypeSpec" }, { - "id": "0x55e180aaa6d0-EntityDecl", - "Name": "0x55e180aaa788-Name" + "id": "0x5606a58c96d0-EntityDecl", + "Name": "0x5606a58c9788-Name" }, { - "id": "0x55e180aaa788-Name", + "id": "0x5606a58c9788-Name", "source": "res" }, { - "id": "0x55e180aadc88-ExecutionPart", + "id": "0x5606a58ccc88-ExecutionPart", "ExecutionPartConstruct": [ - "0x55e180aacf80-ExecutionPartConstruct" + "0x5606a58cbf80-ExecutionPartConstruct" ] }, { - "id": "0x55e180aadc88-ExecutionPartConstruct" + "id": "0x5606a58ccc88-ExecutionPartConstruct" }, { - "id": "0x55e180aacf80-ExecutionPartConstruct", + "id": "0x5606a58cbf80-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55e180aacf80-ExecutableConstruct" + "ExecutableConstruct": "0x5606a58cbf80-ExecutableConstruct" }, { - "id": "0x55e180aacf80-ExecutableConstruct", + "id": "0x5606a58cbf80-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55e180aacf80-Statement" + "Statement": "0x5606a58cbf80-Statement" }, { - "id": "0x55e180aacf80-Statement", - "statement": "0x55e180aacf90-ActionStmt", + "id": "0x5606a58cbf80-Statement", + "statement": "0x5606a58cbf90-ActionStmt", "source": "res = a + b" }, { - "id": "0x55e180aacf90-ActionStmt", + "id": "0x5606a58cbf90-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55e180aace60-AssignmentStmt" + "AssignmentStmt": "0x5606a58cbe60-AssignmentStmt" }, { - "id": "0x55e180aace60-AssignmentStmt", - "Variable": "0x55e180aacf40-Variable", - "Expr": "0x55e180aace70-Expr" + "id": "0x5606a58cbe60-AssignmentStmt", + "Variable": "0x5606a58cbf40-Variable", + "Expr": "0x5606a58cbe70-Expr" }, { - "id": "0x55e180aacf40-Variable", + "id": "0x5606a58cbf40-Variable", "variantKey": "Designator", - "Designator": "0x55e180abaf10-Designator" + "Designator": "0x5606a58d9f10-Designator" }, { - "id": "0x55e180abaf10-Designator", + "id": "0x5606a58d9f10-Designator", "variantKey": "DataRef", - "DataRef": "0x55e180abaf20-DataRef" + "DataRef": "0x5606a58d9f20-DataRef" }, { - "id": "0x55e180abaf20-DataRef", + "id": "0x5606a58d9f20-DataRef", "variantKey": "Name", - "Name": "0x55e180abaf20-Name" + "Name": "0x5606a58d9f20-Name" }, { - "id": "0x55e180abaf20-Name", + "id": "0x5606a58d9f20-Name", "source": "res" }, { - "id": "0x55e180aace70-Expr", + "id": "0x5606a58cbe70-Expr", "variantKey": "Add", - "Add": "0x55e180aace90-Add" + "Add": "0x5606a58cbe90-Add" }, { - "id": "0x55e180aace90-Add", - "left": "0x55e180aaab70-Expr", - "right": "0x55e180aaaa90-Expr", + "id": "0x5606a58cbe90-Add", + "left": "0x5606a58c9b70-Expr", + "right": "0x5606a58c9a90-Expr", "op": "ADD" }, { - "id": "0x55e180aaab70-Expr", + "id": "0x5606a58c9b70-Expr", "variantKey": "Designator", - "Designator": "0x55e180aaa7b0-Designator" + "Designator": "0x5606a58c97b0-Designator" }, { - "id": "0x55e180aaa7b0-Designator", + "id": "0x5606a58c97b0-Designator", "variantKey": "DataRef", - "DataRef": "0x55e180aaa7c0-DataRef" + "DataRef": "0x5606a58c97c0-DataRef" }, { - "id": "0x55e180aaa7c0-DataRef", + "id": "0x5606a58c97c0-DataRef", "variantKey": "Name", - "Name": "0x55e180aaa7c0-Name" + "Name": "0x5606a58c97c0-Name" }, { - "id": "0x55e180aaa7c0-Name", + "id": "0x5606a58c97c0-Name", "source": "a" }, { - "id": "0x55e180aaaa90-Expr", + "id": "0x5606a58c9a90-Expr", "variantKey": "Designator", - "Designator": "0x55e180ab8f80-Designator" + "Designator": "0x5606a58d7f80-Designator" }, { - "id": "0x55e180ab8f80-Designator", + "id": "0x5606a58d7f80-Designator", "variantKey": "DataRef", - "DataRef": "0x55e180ab8f90-DataRef" + "DataRef": "0x5606a58d7f90-DataRef" }, { - "id": "0x55e180ab8f90-DataRef", + "id": "0x5606a58d7f90-DataRef", "variantKey": "Name", - "Name": "0x55e180ab8f90-Name" + "Name": "0x5606a58d7f90-Name" }, { - "id": "0x55e180ab8f90-Name", + "id": "0x5606a58d7f90-Name", "source": "b" }, { - "id": "0x55e180aadc00-Statement", - "statement": "0x55e180aadc10-EndFunctionStmt", + "id": "0x5606a58ccc00-Statement", + "statement": "0x5606a58ccc10-EndFunctionStmt", "source": "end function add_numbers" }, { - "id": "0x55e180aadc10-EndFunctionStmt", - "Name": "0x55e180aadc10-Name" + "id": "0x5606a58ccc10-EndFunctionStmt", + "Name": "0x5606a58ccc10-Name" }, { - "id": "0x55e180aadc10-Name", + "id": "0x5606a58ccc10-Name", "source": "add_numbers" }, { - "id": "0x55e180aac2b0-Statement", - "statement": "0x55e180aac2c0-EndProgramStmt", + "id": "0x5606a58cb2b0-Statement", + "statement": "0x5606a58cb2c0-EndProgramStmt", "source": "end program FUNCTION" }, { - "id": "0x55e180aac2c0-EndProgramStmt", - "Name": "0x55e180aac2c0-Name" + "id": "0x5606a58cb2c0-EndProgramStmt", + "Name": "0x5606a58cb2c0-Name" }, { - "id": "0x55e180aac2c0-Name", + "id": "0x5606a58cb2c0-Name", "source": "FUNCTION" } ], From b14a1feef3c93c8317a4ac5d3c744a336f0d7e58 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 3 Aug 2026 23:53:41 +0100 Subject: [PATCH 159/260] Add processors for functions --- .../specs/fortran/ast/FortranNodeFactory.java | 10 ++++++++ .../up/fe/specs/fortran/parser/FlangName.java | 3 +++ .../fe/specs/fortran/parser/FlangToClass.java | 6 ++++- .../fortran/parser/processors/Nodes.java | 3 +++ .../parser/processors/ProgramProcessors.java | 15 +++++++++++ .../parser/processors/StmtProcessors.java | 25 ++++++++++++++++--- 6 files changed, 57 insertions(+), 5 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java index 1b5f7ded..3db1a1d7 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java @@ -6,6 +6,7 @@ import pt.up.fe.specs.fortran.ast.nodes.decl.ExprInitialization; import pt.up.fe.specs.fortran.ast.nodes.decl.LabelDecl; import pt.up.fe.specs.fortran.ast.nodes.decl.ListInitialization; +import pt.up.fe.specs.fortran.ast.nodes.decl.NamedParameter; import pt.up.fe.specs.fortran.ast.nodes.expr.*; import pt.up.fe.specs.fortran.ast.nodes.expr.enums.BinaryOperatorKind; import pt.up.fe.specs.fortran.ast.nodes.io.StarFormat; @@ -356,4 +357,13 @@ public OmpOrderedClause ompOrderedClause(int value) { return newNode; } + + public NamedParameter namedParameter(String name) { + var data = newDataStore(NamedParameter.class); + + var node = new NamedParameter(data, Collections.emptyList()); + node.set(NamedParameter.NAME, name); + + return node; + } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 1bc6b6f8..bdd14688 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -12,6 +12,7 @@ public enum FlangName implements StringProvider { MAIN_PROGRAM, PROGRAM_UNIT, SUBROUTINE_SUBPROGRAM, + FUNCTION_SUBPROGRAM, SPECIFICATION_PART, INTERNAL_SUBPROGRAM_PART, DECLARATION_CONSTRUCT, @@ -40,6 +41,8 @@ public enum FlangName implements StringProvider { END_PROGRAM_STMT, SUBROUTINE_STMT, END_SUBROUTINE_STMT, + FUNCTION_STMT, + END_FUNCTION_STMT, ACTION_STMT, PRINT_STMT, FORMAT_STMT, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 360c1d64..2731b3de 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -65,7 +65,8 @@ public class FlangToClass { NAME_TO_MAPPER.put(FlangName.PROGRAM, ClassMapper.always(FortranFile.class)); NAME_TO_MAPPER.put(FlangName.PROGRAM_UNIT, ClassMapper.caseFor(ProgramUnit.class) .ignore(FlangName.MAIN_PROGRAM) - .map(FlangName.SUBROUTINE_SUBPROGRAM, SubprogramUnit.class)); + .map(FlangName.SUBROUTINE_SUBPROGRAM, SubprogramUnit.class) + .map(FlangName.FUNCTION_SUBPROGRAM, SubprogramUnit.class)); NAME_TO_MAPPER.put(FlangName.MAIN_PROGRAM, ClassMapper.always(MainProgram.class)); NAME_TO_MAPPER.put(FlangName.PROGRAM_STMT, ClassMapper.always(ProgramStmt.class)); NAME_TO_MAPPER.put(FlangName.END_PROGRAM_STMT, ClassMapper.always(EndProgramStmt.class)); @@ -73,6 +74,7 @@ public class FlangToClass { NAME_TO_MAPPER.put(FlangName.EXECUTION_PART, ClassMapper.always(Execution.class)); NAME_TO_MAPPER.put(FlangName.INTERNAL_SUBPROGRAM_PART, ClassMapper.always(InternalPart.class)); NAME_TO_MAPPER.put(FlangName.SUBROUTINE_SUBPROGRAM, ClassMapper.always(Subroutine.class)); + NAME_TO_MAPPER.put(FlangName.FUNCTION_SUBPROGRAM, ClassMapper.always(Function.class)); NAME_TO_MAPPER.put(FlangName.SUBROUTINE_STMT, ClassMapper.always(SubroutineStmt.class)); NAME_TO_MAPPER.put(FlangName.END_SUBROUTINE_STMT, ClassMapper.always(EndSubroutineStmt.class)); NAME_TO_MAPPER.put(FlangName.ALLOCATION, ClassMapper.always(Allocation.class)); @@ -140,6 +142,8 @@ public class FlangToClass { NAME_TO_MAPPER.put(FlangName.DECLARATION, ClassMapper.always(DimensionDecl.class)); NAME_TO_MAPPER.put(FlangName.NAMELIST_STMT, ClassMapper.always(NamelistStmt.class)); NAME_TO_MAPPER.put(FlangName.GROUP, ClassMapper.always(NamelistGroup.class)); + NAME_TO_MAPPER.put(FlangName.FUNCTION_STMT, ClassMapper.always(FunctionStmt.class)); + NAME_TO_MAPPER.put(FlangName.END_FUNCTION_STMT, ClassMapper.always(EndFunctionStmt.class)); /// Variables //NAME_TO_CLASS.put(FlangName.DATA_REF, DataRef.class); // TODO(Process-ing): Improve this diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 29e467e2..214258ce 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -69,6 +69,7 @@ public Nodes(FortranJsonResult data) { processors.put(Specification.class, p::specification); processors.put(Execution.class, p::execution); processors.put(Subroutine.class, p::subroutine); + processors.put(Function.class, p::function); processors.put(InternalPart.class, p::internalSubprogram); var alloc = new AllocProcessors(data); @@ -142,6 +143,8 @@ public Nodes(FortranJsonResult data) { processors.put(DimensionDecl.class, s::dimensionDecl); processors.put(NamelistStmt.class, s::namelistStmt); processors.put(NamelistGroup.class, s::namelistGroup); + processors.put(FunctionStmt.class, s::functionStmt); + processors.put(EndFunctionStmt.class, s::endFunctionStmt); var e = new ExprProcessors(data); processors.put(StringLiteral.class, e::stringLiteral); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java index 065d0f26..c79e430f 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java @@ -3,6 +3,7 @@ import pt.up.fe.specs.fortran.ast.FortranContext; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.program.*; +import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.Function; import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.Subroutine; import pt.up.fe.specs.fortran.ast.nodes.program.unit.SubprogramUnit; @@ -123,4 +124,18 @@ public void subroutine(Subroutine subroutine) { var endSubroutineStmt = getStmtChild(subroutine, FlangName.END_SUBROUTINE_STMT); subroutine.addChild(endSubroutineStmt); } + + public void function(Function function) { + var functionStmt = getStmtChild(function, FlangName.FUNCTION_STMT); + function.addChild(functionStmt); + + var functionNameId = attributes(functionStmt).getString("functionName"); + var functionName = attributes().get(functionNameId).getString("source"); + function.set(Function.NAME, functionName); + + addSubprogramBody(function); + + var endFunctionStmt = getStmtChild(function, FlangName.END_FUNCTION_STMT); + function.addChild(endFunctionStmt); + } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 5848e8a9..512b01ef 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -1,13 +1,11 @@ package pt.up.fe.specs.fortran.parser.processors; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.decl.NamedParameter; import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; import pt.up.fe.specs.fortran.ast.nodes.loops.WhileLoopControl; import pt.up.fe.specs.fortran.ast.nodes.program.*; -import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.EndProgramStmt; -import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.EndSubroutineStmt; -import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.ProgramStmt; -import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.SubroutineStmt; +import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.*; import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; import pt.up.fe.specs.fortran.ast.nodes.specification.NamedConstantDef; import pt.up.fe.specs.fortran.ast.nodes.stmt.*; @@ -668,4 +666,23 @@ public void namelistGroup(NamelistGroup namelistGroup) { .toList(); namelistGroup.set(NamelistGroup.OBJECT_NAMES, objectNames); } + + public void functionStmt(FunctionStmt functionStmt) { + stmt(functionStmt); + + var parameterNames = attributes(functionStmt).getStringList("argNames"); + var parameters = parameterNames.stream() + .map(this::toNamedParameter) + .toList(); + functionStmt.addChildren(parameters); + } + + private NamedParameter toNamedParameter(String nameId) { + var name = attributes().get(nameId).getString("source"); + return factory().namedParameter(name); + } + + public void endFunctionStmt(EndFunctionStmt endFunctionStmt) { + stmt(endFunctionStmt); + } } From 8dc10ce5f2fbe6674919ad5406b930b593fb72dc Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 4 Aug 2026 00:06:13 +0100 Subject: [PATCH 160/260] Remove star node --- .../specs/fortran/ast/FortranNodeFactory.java | 6 ------ .../specs/fortran/ast/nodes/utils/Star.java | 21 ------------------- 2 files changed, 27 deletions(-) delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/utils/Star.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java index 3db1a1d7..cd049ab3 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java @@ -34,7 +34,6 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.UseRenameStmt; import pt.up.fe.specs.fortran.ast.nodes.io.Format; import pt.up.fe.specs.fortran.ast.nodes.utils.LabelRef; -import pt.up.fe.specs.fortran.ast.nodes.utils.Star; import pt.up.fe.specs.util.SpecsCheck; import pt.up.fe.specs.util.SpecsCollections; @@ -207,11 +206,6 @@ public StarFormat starFormat() { return new StarFormat(data, List.of()); } - public Star star() { - DataStore data = newDataStore(Star.class); - return new Star(data, Collections.emptyList()); - } - public LabelRef labelRef(LabelDecl labelDecl) { DataStore data = newDataStore(LabelRef.class); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/utils/Star.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/utils/Star.java deleted file mode 100644 index 7e080120..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/utils/Star.java +++ /dev/null @@ -1,21 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.utils; - -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; - -import java.util.Collection; - -/** - * Represents * in R1215 format - */ -public class Star extends FortranNode { - - public Star(DataStore data, Collection children) { - super(data, children); - } - - @Override - public String getCode() { - return "*"; - } -} From d1c7d530928804cf29a97636117d7d632991d1be Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 4 Aug 2026 00:47:08 +0100 Subject: [PATCH 161/260] Modify function statement to have suffix --- .../fe/specs/fortran/ast/FortranKeyword.java | 5 +++ .../program/subprogram/FunctionStmt.java | 28 +++++++++++++- .../specification/LanguageBindingSpec.java | 38 +++++++++++++++++++ 3 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/LanguageBindingSpec.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java index 9c58da34..c172b168 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -64,6 +64,11 @@ public enum FortranKeyword { STAT, LEN, KIND, + BIND, + C, + NAME, + CDEFINED, + RESULT, OMP; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/FunctionStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/FunctionStmt.java index 7e3b000b..6c0bf39b 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/FunctionStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/FunctionStmt.java @@ -1,16 +1,24 @@ package pt.up.fe.specs.fortran.ast.nodes.program.subprogram; +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.decl.NamedParameter; +import pt.up.fe.specs.fortran.ast.nodes.specification.LanguageBindingSpec; import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; import java.util.Collection; import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; +import java.util.stream.Stream; -// TODO(Process-ing): Include support for `prefix` and `suffix` +// TODO(Process-ing): Include support for `prefix` public class FunctionStmt extends Stmt { + public static final DataKey> RESULT_NAME = KeyFactory.optional("result_name"); + public FunctionStmt(DataStore data, Collection children) { super(data, children); } @@ -19,6 +27,14 @@ public List getParameters() { return getChildrenOf(NamedParameter.class); } + public Optional getBinding() { + return getChildOf(LanguageBindingSpec.class); + } + + public Optional getResultName() { + return get(RESULT_NAME); + } + @Override public String getStmtCode() { var functionName = getAncestor(Function.class).getName(); @@ -27,6 +43,14 @@ public String getStmtCode() { .map(NamedParameter::getCode) .collect(java.util.stream.Collectors.joining(", ", "(", ")")); - return keyword(FortranKeyword.FUNCTION) + " " + functionName + argCode; + var bindingCode = getBinding() + .map(binding -> " " + binding) + .orElse(""); + var resultNameCode = getResultName() + .map(name -> " " + keyword(FortranKeyword.RESULT) + "(" + name + ")") + .orElse(""); + var suffix = resultNameCode + bindingCode; + + return keyword(FortranKeyword.FUNCTION) + " " + functionName + argCode + suffix; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/LanguageBindingSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/LanguageBindingSpec.java new file mode 100644 index 00000000..46397467 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/LanguageBindingSpec.java @@ -0,0 +1,38 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; +import java.util.Optional; + +public class LanguageBindingSpec extends FortranNode { + public static final DataKey> NAME = KeyFactory.optional("name"); + public static final DataKey C_DEFINED = KeyFactory.bool("c_defined"); + + public LanguageBindingSpec(DataStore data, Collection children) { + super(data, children); + } + + public Optional getName() { + return get(NAME); + } + + public boolean isCDefined() { + return get(C_DEFINED); + } + + @Override + public String getCode() { + var nameCode = getName() + .map(name -> ", " + keyword(FortranKeyword.NAME) + "=" + name) + .orElse(""); + var cDefinedCode = isCDefined() ? ", " + keyword(FortranKeyword.CDEFINED) : ""; + + return keyword(FortranKeyword.BIND) + "(" + + keyword(FortranKeyword.C) + nameCode + cDefinedCode + ")"; + } +} From c4bb7ad7c051a5f6c61e6c4373042bcbfe1a7c0a Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 4 Aug 2026 00:48:48 +0100 Subject: [PATCH 162/260] Regenerate dump --- .../fortran/parser/program/function.json | 739 +++++++++--------- 1 file changed, 370 insertions(+), 369 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/program/function.json b/FortranParser/resources-test/fortran/parser/program/function.json index e4151588..dbd82726 100644 --- a/FortranParser/resources-test/fortran/parser/program/function.json +++ b/FortranParser/resources-test/fortran/parser/program/function.json @@ -2,916 +2,917 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x5606a589df00-Program", + "id": "0x562506cdef00-Program", "ProgramUnit": [ - "0x5606a58db840-ProgramUnit" + "0x562506d1c840-ProgramUnit" ] }, { - "id": "0x5606a58db840-ProgramUnit", + "id": "0x562506d1c840-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x5606a58cb2b0-MainProgram" + "MainProgram": "0x562506d0c2b0-MainProgram" }, { - "id": "0x5606a58cb2b0-MainProgram", - "Statement": "0x5606a58cb3f8-Statement", - "SpecificationPart": "0x5606a58cb350-SpecificationPart", - "ExecutionPart": "0x5606a58cb338-ExecutionPart", - "InternalSubprogramPart": "0x5606a58cb2f0-InternalSubprogramPart", - "Statement": "0x5606a58cb2b0-Statement" + "id": "0x562506d0c2b0-MainProgram", + "Statement": "0x562506d0c3f8-Statement", + "SpecificationPart": "0x562506d0c350-SpecificationPart", + "ExecutionPart": "0x562506d0c338-ExecutionPart", + "InternalSubprogramPart": "0x562506d0c2f0-InternalSubprogramPart", + "Statement": "0x562506d0c2b0-Statement" }, { - "id": "0x5606a58cb3f8-Statement", - "statement": "0x5606a58cb408-ProgramStmt", + "id": "0x562506d0c3f8-Statement", + "statement": "0x562506d0c408-ProgramStmt", "source": "program FUNCTION" }, { - "id": "0x5606a58cb408-ProgramStmt", - "Name": "0x5606a58cb408-Name" + "id": "0x562506d0c408-ProgramStmt", + "Name": "0x562506d0c408-Name" }, { - "id": "0x5606a58cb408-Name", + "id": "0x562506d0c408-Name", "source": "FUNCTION" }, { - "id": "0x5606a58cb350-SpecificationPart", - "ImplicitPart": "0x5606a58cb368-ImplicitPart", + "id": "0x562506d0c350-SpecificationPart", + "ImplicitPart": "0x562506d0c368-ImplicitPart", "DeclarationConstruct": [ - "0x5606a58ab170-DeclarationConstruct" + "0x562506cec170-DeclarationConstruct" ] }, { - "id": "0x5606a58cb368-ImplicitPart" + "id": "0x562506d0c368-ImplicitPart" }, { - "id": "0x5606a58ab170-DeclarationConstruct", + "id": "0x562506cec170-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5606a58ab170-SpecificationConstruct" + "SpecificationConstruct": "0x562506cec170-SpecificationConstruct" }, { - "id": "0x5606a58ab170-SpecificationConstruct", + "id": "0x562506cec170-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5606a58ab170-Statement" + "Statement": "0x562506cec170-Statement" }, { - "id": "0x5606a58ab170-Statement", - "statement": "0x5606a58d8210-TypeDeclarationStmt", + "id": "0x562506cec170-Statement", + "statement": "0x562506d19210-TypeDeclarationStmt", "source": "integer :: x, y, total, useless" }, { - "id": "0x5606a58d8210-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5606a58d8240-DeclarationTypeSpec", + "id": "0x562506d19210-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x562506d19240-DeclarationTypeSpec", "EntityDecl": [ - "0x5606a58d85f0-EntityDecl", - "0x5606a58d8320-EntityDecl", - "0x5606a58d8410-EntityDecl", - "0x5606a58d8500-EntityDecl" + "0x562506d195f0-EntityDecl", + "0x562506d19320-EntityDecl", + "0x562506d19410-EntityDecl", + "0x562506d19500-EntityDecl" ] }, { - "id": "0x5606a58d8240-DeclarationTypeSpec", + "id": "0x562506d19240-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5606a58d8240-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x562506d19240-IntrinsicTypeSpec" }, { - "id": "0x5606a58d8240-IntrinsicTypeSpec", + "id": "0x562506d19240-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x5606a58d8240-IntegerTypeSpec" + "IntegerTypeSpec": "0x562506d19240-IntegerTypeSpec" }, { - "id": "0x5606a58d8240-IntegerTypeSpec" + "id": "0x562506d19240-IntegerTypeSpec" }, { - "id": "0x5606a58d85f0-EntityDecl", - "Name": "0x5606a58d86a8-Name" + "id": "0x562506d195f0-EntityDecl", + "Name": "0x562506d196a8-Name" }, { - "id": "0x5606a58d86a8-Name", + "id": "0x562506d196a8-Name", "source": "x" }, { - "id": "0x5606a58d8320-EntityDecl", - "Name": "0x5606a58d83d8-Name" + "id": "0x562506d19320-EntityDecl", + "Name": "0x562506d193d8-Name" }, { - "id": "0x5606a58d83d8-Name", + "id": "0x562506d193d8-Name", "source": "y" }, { - "id": "0x5606a58d8410-EntityDecl", - "Name": "0x5606a58d84c8-Name" + "id": "0x562506d19410-EntityDecl", + "Name": "0x562506d194c8-Name" }, { - "id": "0x5606a58d84c8-Name", + "id": "0x562506d194c8-Name", "source": "total" }, { - "id": "0x5606a58d8500-EntityDecl", - "Name": "0x5606a58d85b8-Name" + "id": "0x562506d19500-EntityDecl", + "Name": "0x562506d195b8-Name" }, { - "id": "0x5606a58d85b8-Name", + "id": "0x562506d195b8-Name", "source": "useless" }, { - "id": "0x5606a58cb338-ExecutionPart", + "id": "0x562506d0c338-ExecutionPart", "ExecutionPartConstruct": [ - "0x5606a58d9ac0-ExecutionPartConstruct", - "0x5606a58d9c90-ExecutionPartConstruct", - "0x5606a58d9e60-ExecutionPartConstruct", - "0x5606a58c9010-ExecutionPartConstruct", - "0x5606a58aada0-ExecutionPartConstruct" + "0x562506d1aac0-ExecutionPartConstruct", + "0x562506d1ac90-ExecutionPartConstruct", + "0x562506d1ae60-ExecutionPartConstruct", + "0x562506d0a010-ExecutionPartConstruct", + "0x562506cebda0-ExecutionPartConstruct" ] }, { - "id": "0x5606a58cb338-ExecutionPartConstruct" + "id": "0x562506d0c338-ExecutionPartConstruct" }, { - "id": "0x5606a58d9ac0-ExecutionPartConstruct", + "id": "0x562506d1aac0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5606a58d9ac0-ExecutableConstruct" + "ExecutableConstruct": "0x562506d1aac0-ExecutableConstruct" }, { - "id": "0x5606a58d9ac0-ExecutableConstruct", + "id": "0x562506d1aac0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5606a58d9ac0-Statement" + "Statement": "0x562506d1aac0-Statement" }, { - "id": "0x5606a58d9ac0-Statement", - "statement": "0x5606a58d9ad0-ActionStmt", + "id": "0x562506d1aac0-Statement", + "statement": "0x562506d1aad0-ActionStmt", "source": "x = 5" }, { - "id": "0x5606a58d9ad0-ActionStmt", + "id": "0x562506d1aad0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5606a58da890-AssignmentStmt" + "AssignmentStmt": "0x562506d1b890-AssignmentStmt" }, { - "id": "0x5606a58da890-AssignmentStmt", - "Variable": "0x5606a58da970-Variable", - "Expr": "0x5606a58da8a0-Expr" + "id": "0x562506d1b890-AssignmentStmt", + "Variable": "0x562506d1b970-Variable", + "Expr": "0x562506d1b8a0-Expr" }, { - "id": "0x5606a58da970-Variable", + "id": "0x562506d1b970-Variable", "variantKey": "Designator", - "Designator": "0x5606a58ab100-Designator" + "Designator": "0x562506cec100-Designator" }, { - "id": "0x5606a58ab100-Designator", + "id": "0x562506cec100-Designator", "variantKey": "DataRef", - "DataRef": "0x5606a58ab110-DataRef" + "DataRef": "0x562506cec110-DataRef" }, { - "id": "0x5606a58ab110-DataRef", + "id": "0x562506cec110-DataRef", "variantKey": "Name", - "Name": "0x5606a58ab110-Name" + "Name": "0x562506cec110-Name" }, { - "id": "0x5606a58ab110-Name", + "id": "0x562506cec110-Name", "source": "x" }, { - "id": "0x5606a58da8a0-Expr", + "id": "0x562506d1b8a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5606a58da8c0-LiteralConstant" + "LiteralConstant": "0x562506d1b8c0-LiteralConstant" }, { - "id": "0x5606a58da8c0-LiteralConstant", + "id": "0x562506d1b8c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5606a58da8c0-IntLiteralConstant" + "IntLiteralConstant": "0x562506d1b8c0-IntLiteralConstant" }, { - "id": "0x5606a58da8c0-IntLiteralConstant", + "id": "0x562506d1b8c0-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x5606a58d9c90-ExecutionPartConstruct", + "id": "0x562506d1ac90-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5606a58d9c90-ExecutableConstruct" + "ExecutableConstruct": "0x562506d1ac90-ExecutableConstruct" }, { - "id": "0x5606a58d9c90-ExecutableConstruct", + "id": "0x562506d1ac90-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5606a58d9c90-Statement" + "Statement": "0x562506d1ac90-Statement" }, { - "id": "0x5606a58d9c90-Statement", - "statement": "0x5606a58d9ca0-ActionStmt", + "id": "0x562506d1ac90-Statement", + "statement": "0x562506d1aca0-ActionStmt", "source": "y = 12" }, { - "id": "0x5606a58d9ca0-ActionStmt", + "id": "0x562506d1aca0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5606a58d9b70-AssignmentStmt" + "AssignmentStmt": "0x562506d1ab70-AssignmentStmt" }, { - "id": "0x5606a58d9b70-AssignmentStmt", - "Variable": "0x5606a58d9c50-Variable", - "Expr": "0x5606a58d9b80-Expr" + "id": "0x562506d1ab70-AssignmentStmt", + "Variable": "0x562506d1ac50-Variable", + "Expr": "0x562506d1ab80-Expr" }, { - "id": "0x5606a58d9c50-Variable", + "id": "0x562506d1ac50-Variable", "variantKey": "Designator", - "Designator": "0x5606a58d97b0-Designator" + "Designator": "0x562506d1a7b0-Designator" }, { - "id": "0x5606a58d97b0-Designator", + "id": "0x562506d1a7b0-Designator", "variantKey": "DataRef", - "DataRef": "0x5606a58d97c0-DataRef" + "DataRef": "0x562506d1a7c0-DataRef" }, { - "id": "0x5606a58d97c0-DataRef", + "id": "0x562506d1a7c0-DataRef", "variantKey": "Name", - "Name": "0x5606a58d97c0-Name" + "Name": "0x562506d1a7c0-Name" }, { - "id": "0x5606a58d97c0-Name", + "id": "0x562506d1a7c0-Name", "source": "y" }, { - "id": "0x5606a58d9b80-Expr", + "id": "0x562506d1ab80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5606a58d9ba0-LiteralConstant" + "LiteralConstant": "0x562506d1aba0-LiteralConstant" }, { - "id": "0x5606a58d9ba0-LiteralConstant", + "id": "0x562506d1aba0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5606a58d9ba0-IntLiteralConstant" + "IntLiteralConstant": "0x562506d1aba0-IntLiteralConstant" }, { - "id": "0x5606a58d9ba0-IntLiteralConstant", + "id": "0x562506d1aba0-IntLiteralConstant", "CharBlock": "12" }, { - "id": "0x5606a58d9e60-ExecutionPartConstruct", + "id": "0x562506d1ae60-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5606a58d9e60-ExecutableConstruct" + "ExecutableConstruct": "0x562506d1ae60-ExecutableConstruct" }, { - "id": "0x5606a58d9e60-ExecutableConstruct", + "id": "0x562506d1ae60-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5606a58d9e60-Statement" + "Statement": "0x562506d1ae60-Statement" }, { - "id": "0x5606a58d9e60-Statement", - "statement": "0x5606a58d9e70-ActionStmt", + "id": "0x562506d1ae60-Statement", + "statement": "0x562506d1ae70-ActionStmt", "source": "useless = 0" }, { - "id": "0x5606a58d9e70-ActionStmt", + "id": "0x562506d1ae70-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5606a58d9d40-AssignmentStmt" + "AssignmentStmt": "0x562506d1ad40-AssignmentStmt" }, { - "id": "0x5606a58d9d40-AssignmentStmt", - "Variable": "0x5606a58d9e20-Variable", - "Expr": "0x5606a58d9d50-Expr" + "id": "0x562506d1ad40-AssignmentStmt", + "Variable": "0x562506d1ae20-Variable", + "Expr": "0x562506d1ad50-Expr" }, { - "id": "0x5606a58d9e20-Variable", + "id": "0x562506d1ae20-Variable", "variantKey": "Designator", - "Designator": "0x5606a58d9b10-Designator" + "Designator": "0x562506d1ab10-Designator" }, { - "id": "0x5606a58d9b10-Designator", + "id": "0x562506d1ab10-Designator", "variantKey": "DataRef", - "DataRef": "0x5606a58d9b20-DataRef" + "DataRef": "0x562506d1ab20-DataRef" }, { - "id": "0x5606a58d9b20-DataRef", + "id": "0x562506d1ab20-DataRef", "variantKey": "Name", - "Name": "0x5606a58d9b20-Name" + "Name": "0x562506d1ab20-Name" }, { - "id": "0x5606a58d9b20-Name", + "id": "0x562506d1ab20-Name", "source": "useless" }, { - "id": "0x5606a58d9d50-Expr", + "id": "0x562506d1ad50-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5606a58d9d70-LiteralConstant" + "LiteralConstant": "0x562506d1ad70-LiteralConstant" }, { - "id": "0x5606a58d9d70-LiteralConstant", + "id": "0x562506d1ad70-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5606a58d9d70-IntLiteralConstant" + "IntLiteralConstant": "0x562506d1ad70-IntLiteralConstant" }, { - "id": "0x5606a58d9d70-IntLiteralConstant", + "id": "0x562506d1ad70-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x5606a58c9010-ExecutionPartConstruct", + "id": "0x562506d0a010-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5606a58c9010-ExecutableConstruct" + "ExecutableConstruct": "0x562506d0a010-ExecutableConstruct" }, { - "id": "0x5606a58c9010-ExecutableConstruct", + "id": "0x562506d0a010-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5606a58c9010-Statement" + "Statement": "0x562506d0a010-Statement" }, { - "id": "0x5606a58c9010-Statement", - "statement": "0x5606a58c9020-ActionStmt", + "id": "0x562506d0a010-Statement", + "statement": "0x562506d0a020-ActionStmt", "source": "total = add_numbers(x, y, useless)" }, { - "id": "0x5606a58c9020-ActionStmt", + "id": "0x562506d0a020-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5606a58c8e80-AssignmentStmt" + "AssignmentStmt": "0x562506d09e80-AssignmentStmt" }, { - "id": "0x5606a58c8e80-AssignmentStmt", - "Variable": "0x5606a58c8f60-Variable", - "Expr": "0x5606a58c8e90-Expr" + "id": "0x562506d09e80-AssignmentStmt", + "Variable": "0x562506d09f60-Variable", + "Expr": "0x562506d09e90-Expr" }, { - "id": "0x5606a58c8f60-Variable", + "id": "0x562506d09f60-Variable", "variantKey": "Designator", - "Designator": "0x5606a58d9ce0-Designator" + "Designator": "0x562506d1ace0-Designator" }, { - "id": "0x5606a58d9ce0-Designator", + "id": "0x562506d1ace0-Designator", "variantKey": "DataRef", - "DataRef": "0x5606a58d9cf0-DataRef" + "DataRef": "0x562506d1acf0-DataRef" }, { - "id": "0x5606a58d9cf0-DataRef", + "id": "0x562506d1acf0-DataRef", "variantKey": "Name", - "Name": "0x5606a58d9cf0-Name" + "Name": "0x562506d1acf0-Name" }, { - "id": "0x5606a58d9cf0-Name", + "id": "0x562506d1acf0-Name", "source": "total" }, { - "id": "0x5606a58c8e90-Expr", + "id": "0x562506d09e90-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x5606a58c8d30-FunctionReference" + "FunctionReference": "0x562506d09d30-FunctionReference" }, { - "id": "0x5606a58c8d30-FunctionReference", - "Call": "0x5606a58c8d30-Call" + "id": "0x562506d09d30-FunctionReference", + "Call": "0x562506d09d30-Call" }, { - "id": "0x5606a58c8d30-Call", - "ProcedureDesignator": "0x5606a58c8d48-ProcedureDesignator", + "id": "0x562506d09d30-Call", + "ProcedureDesignator": "0x562506d09d48-ProcedureDesignator", "ActualArgSpec": [ - "0x5606a58c8bc0-ActualArgSpec", - "0x5606a58c89a0-ActualArgSpec", - "0x5606a58c8ab0-ActualArgSpec" + "0x562506d09bc0-ActualArgSpec", + "0x562506d099a0-ActualArgSpec", + "0x562506d09ab0-ActualArgSpec" ] }, { - "id": "0x5606a58c8d48-ProcedureDesignator", + "id": "0x562506d09d48-ProcedureDesignator", "variantKey": "Name", - "Name": "0x5606a58c8d48-Name" + "Name": "0x562506d09d48-Name" }, { - "id": "0x5606a58c8d48-Name", + "id": "0x562506d09d48-Name", "source": "add_numbers" }, { - "id": "0x5606a58c8bc0-ActualArgSpec", - "ActualArg": "0x5606a58c8bc0-ActualArg" + "id": "0x562506d09bc0-ActualArgSpec", + "ActualArg": "0x562506d09bc0-ActualArg" }, { - "id": "0x5606a58c8bc0-ActualArg", + "id": "0x562506d09bc0-ActualArg", "variantKey": "Expr", - "Expr": "0x5606a58c8770-Expr" + "Expr": "0x562506d09770-Expr" }, { - "id": "0x5606a58c8770-Expr", + "id": "0x562506d09770-Expr", "variantKey": "Designator", - "Designator": "0x5606a58d9040-Designator" + "Designator": "0x562506d1a040-Designator" }, { - "id": "0x5606a58d9040-Designator", + "id": "0x562506d1a040-Designator", "variantKey": "DataRef", - "DataRef": "0x5606a58d9050-DataRef" + "DataRef": "0x562506d1a050-DataRef" }, { - "id": "0x5606a58d9050-DataRef", + "id": "0x562506d1a050-DataRef", "variantKey": "Name", - "Name": "0x5606a58d9050-Name" + "Name": "0x562506d1a050-Name" }, { - "id": "0x5606a58d9050-Name", + "id": "0x562506d1a050-Name", "source": "x" }, { - "id": "0x5606a58c89a0-ActualArgSpec", - "ActualArg": "0x5606a58c89a0-ActualArg" + "id": "0x562506d099a0-ActualArgSpec", + "ActualArg": "0x562506d099a0-ActualArg" }, { - "id": "0x5606a58c89a0-ActualArg", + "id": "0x562506d099a0-ActualArg", "variantKey": "Expr", - "Expr": "0x5606a58d8a80-Expr" + "Expr": "0x562506d19a80-Expr" }, { - "id": "0x5606a58d8a80-Expr", + "id": "0x562506d19a80-Expr", "variantKey": "Designator", - "Designator": "0x5606a58d89b0-Designator" + "Designator": "0x562506d199b0-Designator" }, { - "id": "0x5606a58d89b0-Designator", + "id": "0x562506d199b0-Designator", "variantKey": "DataRef", - "DataRef": "0x5606a58d89c0-DataRef" + "DataRef": "0x562506d199c0-DataRef" }, { - "id": "0x5606a58d89c0-DataRef", + "id": "0x562506d199c0-DataRef", "variantKey": "Name", - "Name": "0x5606a58d89c0-Name" + "Name": "0x562506d199c0-Name" }, { - "id": "0x5606a58d89c0-Name", + "id": "0x562506d199c0-Name", "source": "y" }, { - "id": "0x5606a58c8ab0-ActualArgSpec", - "ActualArg": "0x5606a58c8ab0-ActualArg" + "id": "0x562506d09ab0-ActualArgSpec", + "ActualArg": "0x562506d09ab0-ActualArg" }, { - "id": "0x5606a58c8ab0-ActualArg", + "id": "0x562506d09ab0-ActualArg", "variantKey": "Expr", - "Expr": "0x5606a583d790-Expr" + "Expr": "0x562506c7e790-Expr" }, { - "id": "0x5606a583d790-Expr", + "id": "0x562506c7e790-Expr", "variantKey": "Designator", - "Designator": "0x5606a58da3a0-Designator" + "Designator": "0x562506d1b3a0-Designator" }, { - "id": "0x5606a58da3a0-Designator", + "id": "0x562506d1b3a0-Designator", "variantKey": "DataRef", - "DataRef": "0x5606a58da3b0-DataRef" + "DataRef": "0x562506d1b3b0-DataRef" }, { - "id": "0x5606a58da3b0-DataRef", + "id": "0x562506d1b3b0-DataRef", "variantKey": "Name", - "Name": "0x5606a58da3b0-Name" + "Name": "0x562506d1b3b0-Name" }, { - "id": "0x5606a58da3b0-Name", + "id": "0x562506d1b3b0-Name", "source": "useless" }, { - "id": "0x5606a58aada0-ExecutionPartConstruct", + "id": "0x562506cebda0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5606a58aada0-ExecutableConstruct" + "ExecutableConstruct": "0x562506cebda0-ExecutableConstruct" }, { - "id": "0x5606a58aada0-ExecutableConstruct", + "id": "0x562506cebda0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5606a58aada0-Statement" + "Statement": "0x562506cebda0-Statement" }, { - "id": "0x5606a58aada0-Statement", - "statement": "0x5606a58aadb0-ActionStmt", + "id": "0x562506cebda0-Statement", + "statement": "0x562506cebdb0-ActionStmt", "source": "print *, \"The sum is:\", total" }, { - "id": "0x5606a58aadb0-ActionStmt", + "id": "0x562506cebdb0-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x5606a58c9550-PrintStmt" + "PrintStmt": "0x562506d0a550-PrintStmt" }, { - "id": "0x5606a58c9550-PrintStmt", - "Format": "0x5606a58c9568-Format", + "id": "0x562506d0a550-PrintStmt", + "Format": "0x562506d0a568-Format", "OutputItem": [ - "0x5606a58c9400-OutputItem", - "0x5606a58c9310-OutputItem" + "0x562506d0a400-OutputItem", + "0x562506d0a310-OutputItem" ] }, { - "id": "0x5606a58c9568-Format", + "id": "0x562506d0a568-Format", "variantKey": "Star", - "Star": "0x5606a58c9568-Star" + "Star": "0x562506d0a568-Star" }, { - "id": "0x5606a58c9568-Star" + "id": "0x562506d0a568-Star" }, { - "id": "0x5606a58c9400-OutputItem", + "id": "0x562506d0a400-OutputItem", "variantKey": "Expr", - "Expr": "0x5606a58c9400-Expr" + "Expr": "0x562506d0a400-Expr" }, { - "id": "0x5606a58c9400-Expr", + "id": "0x562506d0a400-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5606a58c9420-LiteralConstant" + "LiteralConstant": "0x562506d0a420-LiteralConstant" }, { - "id": "0x5606a58c9420-LiteralConstant", + "id": "0x562506d0a420-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x5606a58c9420-CharLiteralConstant" + "CharLiteralConstant": "0x562506d0a420-CharLiteralConstant" }, { - "id": "0x5606a58c9420-CharLiteralConstant", + "id": "0x562506d0a420-CharLiteralConstant", "string": "The sum is:" }, { - "id": "0x5606a58c9310-OutputItem", + "id": "0x562506d0a310-OutputItem", "variantKey": "Expr", - "Expr": "0x5606a58c9310-Expr" + "Expr": "0x562506d0a310-Expr" }, { - "id": "0x5606a58c9310-Expr", + "id": "0x562506d0a310-Expr", "variantKey": "Designator", - "Designator": "0x5606a58c8850-Designator" + "Designator": "0x562506d09850-Designator" }, { - "id": "0x5606a58c8850-Designator", + "id": "0x562506d09850-Designator", "variantKey": "DataRef", - "DataRef": "0x5606a58c8860-DataRef" + "DataRef": "0x562506d09860-DataRef" }, { - "id": "0x5606a58c8860-DataRef", + "id": "0x562506d09860-DataRef", "variantKey": "Name", - "Name": "0x5606a58c8860-Name" + "Name": "0x562506d09860-Name" }, { - "id": "0x5606a58c8860-Name", + "id": "0x562506d09860-Name", "source": "total" }, { - "id": "0x5606a58cb2f0-InternalSubprogramPart", - "Statement": "0x5606a58cb308-Statement", + "id": "0x562506d0c2f0-InternalSubprogramPart", + "Statement": "0x562506d0c308-Statement", "InternalSubprogram": [ - "0x5606a58db730-InternalSubprogram" + "0x562506d1c730-InternalSubprogram" ] }, { - "id": "0x5606a58cb308-Statement", - "statement": "0x5606a58cb318-ContainsStmt", + "id": "0x562506d0c308-Statement", + "statement": "0x562506d0c318-ContainsStmt", "source": "contains" }, { - "id": "0x5606a58cb318-ContainsStmt" + "id": "0x562506d0c318-ContainsStmt" }, { - "id": "0x5606a58db730-InternalSubprogram", + "id": "0x562506d1c730-InternalSubprogram", "variantKey": "FunctionSubprogram", - "FunctionSubprogram": "0x5606a58ccc00-FunctionSubprogram" + "FunctionSubprogram": "0x562506d0dc00-FunctionSubprogram" }, { - "id": "0x5606a58ccc00-FunctionSubprogram", - "Statement": "0x5606a58ccd48-Statement", - "SpecificationPart": "0x5606a58ccca0-SpecificationPart", - "ExecutionPart": "0x5606a58ccc88-ExecutionPart", - "Statement": "0x5606a58ccc00-Statement" + "id": "0x562506d0dc00-FunctionSubprogram", + "Statement": "0x562506d0dd48-Statement", + "SpecificationPart": "0x562506d0dca0-SpecificationPart", + "ExecutionPart": "0x562506d0dc88-ExecutionPart", + "Statement": "0x562506d0dc00-Statement" }, { - "id": "0x5606a58ccd48-Statement", - "statement": "0x5606a58ccd58-FunctionStmt", + "id": "0x562506d0dd48-Statement", + "statement": "0x562506d0dd58-FunctionStmt", "source": "function add_numbers(a, b, useless) result(res)" }, { - "id": "0x5606a58ccd58-FunctionStmt", + "id": "0x562506d0dd58-FunctionStmt", "prefix": [], - "functionName": "0x5606a58ccdb8-Name", - "argNames": [ - "0x5606a58db6e0-Name", - "0x5606a58db680-Name", - "0x5606a58db6b0-Name" + "functionName": "0x562506d0ddb8-Name", + "paramNames": [ + "0x562506d1c6e0-Name", + "0x562506d1c680-Name", + "0x562506d1c6b0-Name" ], - "suffix": "0x5606a58ccd58-Suffix" + "suffix": "0x562506d0dd58-Suffix" }, { - "id": "0x5606a58ccdb8-Name", + "id": "0x562506d0ddb8-Name", "source": "add_numbers" }, { - "id": "0x5606a58db6e0-Name", + "id": "0x562506d1c6e0-Name", "source": "a" }, { - "id": "0x5606a58db680-Name", + "id": "0x562506d1c680-Name", "source": "b" }, { - "id": "0x5606a58db6b0-Name", + "id": "0x562506d1c6b0-Name", "source": "useless" }, { - "id": "0x5606a58ccd58-Suffix" + "id": "0x562506d0dd58-Suffix", + "resultName": "0x562506d0dd78-Name" }, { - "id": "0x5606a58ccd78-Name", + "id": "0x562506d0dd78-Name", "source": "res" }, { - "id": "0x5606a58ccca0-SpecificationPart", - "ImplicitPart": "0x5606a58cccb8-ImplicitPart", + "id": "0x562506d0dca0-SpecificationPart", + "ImplicitPart": "0x562506d0dcb8-ImplicitPart", "DeclarationConstruct": [ - "0x5606a58da480-DeclarationConstruct", - "0x5606a58d9320-DeclarationConstruct", - "0x5606a58d8b70-DeclarationConstruct" + "0x562506d1b480-DeclarationConstruct", + "0x562506d1a320-DeclarationConstruct", + "0x562506d19b70-DeclarationConstruct" ] }, { - "id": "0x5606a58cccb8-ImplicitPart" + "id": "0x562506d0dcb8-ImplicitPart" }, { - "id": "0x5606a58da480-DeclarationConstruct", + "id": "0x562506d1b480-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5606a58da480-SpecificationConstruct" + "SpecificationConstruct": "0x562506d1b480-SpecificationConstruct" }, { - "id": "0x5606a58da480-SpecificationConstruct", + "id": "0x562506d1b480-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5606a58da480-Statement" + "Statement": "0x562506d1b480-Statement" }, { - "id": "0x5606a58da480-Statement", - "statement": "0x5606a58caff0-TypeDeclarationStmt", + "id": "0x562506d1b480-Statement", + "statement": "0x562506d0bff0-TypeDeclarationStmt", "source": "integer, intent(in) :: a, b" }, { - "id": "0x5606a58caff0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5606a58cb020-DeclarationTypeSpec", + "id": "0x562506d0bff0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x562506d0c020-DeclarationTypeSpec", "AttrSpec": [ - "0x5606a58da680-AttrSpec" + "0x562506d1b680-AttrSpec" ], "EntityDecl": [ - "0x5606a58d9460-EntityDecl", - "0x5606a58cb5f0-EntityDecl" + "0x562506d1a460-EntityDecl", + "0x562506d0c5f0-EntityDecl" ] }, { - "id": "0x5606a58cb020-DeclarationTypeSpec", + "id": "0x562506d0c020-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5606a58cb020-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x562506d0c020-IntrinsicTypeSpec" }, { - "id": "0x5606a58cb020-IntrinsicTypeSpec", + "id": "0x562506d0c020-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x5606a58cb020-IntegerTypeSpec" + "IntegerTypeSpec": "0x562506d0c020-IntegerTypeSpec" }, { - "id": "0x5606a58cb020-IntegerTypeSpec" + "id": "0x562506d0c020-IntegerTypeSpec" }, { - "id": "0x5606a58da680-AttrSpec", + "id": "0x562506d1b680-AttrSpec", "variantKey": "IntentSpec", - "IntentSpec": "0x5606a58da680-IntentSpec" + "IntentSpec": "0x562506d1b680-IntentSpec" }, { - "id": "0x5606a58da680-IntentSpec", - "Intent": "0x5606a58da680-Intent", + "id": "0x562506d1b680-IntentSpec", + "Intent": "0x562506d1b680-Intent", "intent": "In" }, { - "id": "0x5606a58da680-Intent", + "id": "0x562506d1b680-Intent", "disambiguation": "Fortran::parser::IntentSpec::Intent", "value": "In" }, { - "id": "0x5606a58d9460-EntityDecl", - "Name": "0x5606a58d9518-Name" + "id": "0x562506d1a460-EntityDecl", + "Name": "0x562506d1a518-Name" }, { - "id": "0x5606a58d9518-Name", + "id": "0x562506d1a518-Name", "source": "a" }, { - "id": "0x5606a58cb5f0-EntityDecl", - "Name": "0x5606a58cb6a8-Name" + "id": "0x562506d0c5f0-EntityDecl", + "Name": "0x562506d0c6a8-Name" }, { - "id": "0x5606a58cb6a8-Name", + "id": "0x562506d0c6a8-Name", "source": "b" }, { - "id": "0x5606a58d9320-DeclarationConstruct", + "id": "0x562506d1a320-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5606a58d9320-SpecificationConstruct" + "SpecificationConstruct": "0x562506d1a320-SpecificationConstruct" }, { - "id": "0x5606a58d9320-SpecificationConstruct", + "id": "0x562506d1a320-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5606a58d9320-Statement" + "Statement": "0x562506d1a320-Statement" }, { - "id": "0x5606a58d9320-Statement", - "statement": "0x5606a58c9900-TypeDeclarationStmt", + "id": "0x562506d1a320-Statement", + "statement": "0x562506d0a900-TypeDeclarationStmt", "source": "integer, intent(inout) :: useless" }, { - "id": "0x5606a58c9900-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5606a58c9930-DeclarationTypeSpec", + "id": "0x562506d0a900-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x562506d0a930-DeclarationTypeSpec", "AttrSpec": [ - "0x5606a58e17e0-AttrSpec" + "0x562506d227e0-AttrSpec" ], "EntityDecl": [ - "0x5606a58d9550-EntityDecl" + "0x562506d1a550-EntityDecl" ] }, { - "id": "0x5606a58c9930-DeclarationTypeSpec", + "id": "0x562506d0a930-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5606a58c9930-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x562506d0a930-IntrinsicTypeSpec" }, { - "id": "0x5606a58c9930-IntrinsicTypeSpec", + "id": "0x562506d0a930-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x5606a58c9930-IntegerTypeSpec" + "IntegerTypeSpec": "0x562506d0a930-IntegerTypeSpec" }, { - "id": "0x5606a58c9930-IntegerTypeSpec" + "id": "0x562506d0a930-IntegerTypeSpec" }, { - "id": "0x5606a58e17e0-AttrSpec", + "id": "0x562506d227e0-AttrSpec", "variantKey": "IntentSpec", - "IntentSpec": "0x5606a58e17e0-IntentSpec" + "IntentSpec": "0x562506d227e0-IntentSpec" }, { - "id": "0x5606a58e17e0-IntentSpec", - "Intent": "0x5606a58e17e0-Intent", + "id": "0x562506d227e0-IntentSpec", + "Intent": "0x562506d227e0-Intent", "intent": "InOut" }, { - "id": "0x5606a58e17e0-Intent", + "id": "0x562506d227e0-Intent", "disambiguation": "Fortran::parser::IntentSpec::Intent", "value": "InOut" }, { - "id": "0x5606a58d9550-EntityDecl", - "Name": "0x5606a58d9608-Name" + "id": "0x562506d1a550-EntityDecl", + "Name": "0x562506d1a608-Name" }, { - "id": "0x5606a58d9608-Name", + "id": "0x562506d1a608-Name", "source": "useless" }, { - "id": "0x5606a58d8b70-DeclarationConstruct", + "id": "0x562506d19b70-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5606a58d8b70-SpecificationConstruct" + "SpecificationConstruct": "0x562506d19b70-SpecificationConstruct" }, { - "id": "0x5606a58d8b70-SpecificationConstruct", + "id": "0x562506d19b70-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5606a58d8b70-Statement" + "Statement": "0x562506d19b70-Statement" }, { - "id": "0x5606a58d8b70-Statement", - "statement": "0x5606a58da700-TypeDeclarationStmt", + "id": "0x562506d19b70-Statement", + "statement": "0x562506d1b700-TypeDeclarationStmt", "source": "integer :: res" }, { - "id": "0x5606a58da700-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5606a58da730-DeclarationTypeSpec", + "id": "0x562506d1b700-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x562506d1b730-DeclarationTypeSpec", "EntityDecl": [ - "0x5606a58c96d0-EntityDecl" + "0x562506d0a6d0-EntityDecl" ] }, { - "id": "0x5606a58da730-DeclarationTypeSpec", + "id": "0x562506d1b730-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5606a58da730-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x562506d1b730-IntrinsicTypeSpec" }, { - "id": "0x5606a58da730-IntrinsicTypeSpec", + "id": "0x562506d1b730-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x5606a58da730-IntegerTypeSpec" + "IntegerTypeSpec": "0x562506d1b730-IntegerTypeSpec" }, { - "id": "0x5606a58da730-IntegerTypeSpec" + "id": "0x562506d1b730-IntegerTypeSpec" }, { - "id": "0x5606a58c96d0-EntityDecl", - "Name": "0x5606a58c9788-Name" + "id": "0x562506d0a6d0-EntityDecl", + "Name": "0x562506d0a788-Name" }, { - "id": "0x5606a58c9788-Name", + "id": "0x562506d0a788-Name", "source": "res" }, { - "id": "0x5606a58ccc88-ExecutionPart", + "id": "0x562506d0dc88-ExecutionPart", "ExecutionPartConstruct": [ - "0x5606a58cbf80-ExecutionPartConstruct" + "0x562506d0cf80-ExecutionPartConstruct" ] }, { - "id": "0x5606a58ccc88-ExecutionPartConstruct" + "id": "0x562506d0dc88-ExecutionPartConstruct" }, { - "id": "0x5606a58cbf80-ExecutionPartConstruct", + "id": "0x562506d0cf80-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5606a58cbf80-ExecutableConstruct" + "ExecutableConstruct": "0x562506d0cf80-ExecutableConstruct" }, { - "id": "0x5606a58cbf80-ExecutableConstruct", + "id": "0x562506d0cf80-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5606a58cbf80-Statement" + "Statement": "0x562506d0cf80-Statement" }, { - "id": "0x5606a58cbf80-Statement", - "statement": "0x5606a58cbf90-ActionStmt", + "id": "0x562506d0cf80-Statement", + "statement": "0x562506d0cf90-ActionStmt", "source": "res = a + b" }, { - "id": "0x5606a58cbf90-ActionStmt", + "id": "0x562506d0cf90-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5606a58cbe60-AssignmentStmt" + "AssignmentStmt": "0x562506d0ce60-AssignmentStmt" }, { - "id": "0x5606a58cbe60-AssignmentStmt", - "Variable": "0x5606a58cbf40-Variable", - "Expr": "0x5606a58cbe70-Expr" + "id": "0x562506d0ce60-AssignmentStmt", + "Variable": "0x562506d0cf40-Variable", + "Expr": "0x562506d0ce70-Expr" }, { - "id": "0x5606a58cbf40-Variable", + "id": "0x562506d0cf40-Variable", "variantKey": "Designator", - "Designator": "0x5606a58d9f10-Designator" + "Designator": "0x562506d1af10-Designator" }, { - "id": "0x5606a58d9f10-Designator", + "id": "0x562506d1af10-Designator", "variantKey": "DataRef", - "DataRef": "0x5606a58d9f20-DataRef" + "DataRef": "0x562506d1af20-DataRef" }, { - "id": "0x5606a58d9f20-DataRef", + "id": "0x562506d1af20-DataRef", "variantKey": "Name", - "Name": "0x5606a58d9f20-Name" + "Name": "0x562506d1af20-Name" }, { - "id": "0x5606a58d9f20-Name", + "id": "0x562506d1af20-Name", "source": "res" }, { - "id": "0x5606a58cbe70-Expr", + "id": "0x562506d0ce70-Expr", "variantKey": "Add", - "Add": "0x5606a58cbe90-Add" + "Add": "0x562506d0ce90-Add" }, { - "id": "0x5606a58cbe90-Add", - "left": "0x5606a58c9b70-Expr", - "right": "0x5606a58c9a90-Expr", + "id": "0x562506d0ce90-Add", + "left": "0x562506d0ab70-Expr", + "right": "0x562506d0aa90-Expr", "op": "ADD" }, { - "id": "0x5606a58c9b70-Expr", + "id": "0x562506d0ab70-Expr", "variantKey": "Designator", - "Designator": "0x5606a58c97b0-Designator" + "Designator": "0x562506d0a7b0-Designator" }, { - "id": "0x5606a58c97b0-Designator", + "id": "0x562506d0a7b0-Designator", "variantKey": "DataRef", - "DataRef": "0x5606a58c97c0-DataRef" + "DataRef": "0x562506d0a7c0-DataRef" }, { - "id": "0x5606a58c97c0-DataRef", + "id": "0x562506d0a7c0-DataRef", "variantKey": "Name", - "Name": "0x5606a58c97c0-Name" + "Name": "0x562506d0a7c0-Name" }, { - "id": "0x5606a58c97c0-Name", + "id": "0x562506d0a7c0-Name", "source": "a" }, { - "id": "0x5606a58c9a90-Expr", + "id": "0x562506d0aa90-Expr", "variantKey": "Designator", - "Designator": "0x5606a58d7f80-Designator" + "Designator": "0x562506d18f80-Designator" }, { - "id": "0x5606a58d7f80-Designator", + "id": "0x562506d18f80-Designator", "variantKey": "DataRef", - "DataRef": "0x5606a58d7f90-DataRef" + "DataRef": "0x562506d18f90-DataRef" }, { - "id": "0x5606a58d7f90-DataRef", + "id": "0x562506d18f90-DataRef", "variantKey": "Name", - "Name": "0x5606a58d7f90-Name" + "Name": "0x562506d18f90-Name" }, { - "id": "0x5606a58d7f90-Name", + "id": "0x562506d18f90-Name", "source": "b" }, { - "id": "0x5606a58ccc00-Statement", - "statement": "0x5606a58ccc10-EndFunctionStmt", + "id": "0x562506d0dc00-Statement", + "statement": "0x562506d0dc10-EndFunctionStmt", "source": "end function add_numbers" }, { - "id": "0x5606a58ccc10-EndFunctionStmt", - "Name": "0x5606a58ccc10-Name" + "id": "0x562506d0dc10-EndFunctionStmt", + "Name": "0x562506d0dc10-Name" }, { - "id": "0x5606a58ccc10-Name", + "id": "0x562506d0dc10-Name", "source": "add_numbers" }, { - "id": "0x5606a58cb2b0-Statement", - "statement": "0x5606a58cb2c0-EndProgramStmt", + "id": "0x562506d0c2b0-Statement", + "statement": "0x562506d0c2c0-EndProgramStmt", "source": "end program FUNCTION" }, { - "id": "0x5606a58cb2c0-EndProgramStmt", - "Name": "0x5606a58cb2c0-Name" + "id": "0x562506d0c2c0-EndProgramStmt", + "Name": "0x562506d0c2c0-Name" }, { - "id": "0x5606a58cb2c0-Name", + "id": "0x562506d0c2c0-Name", "source": "FUNCTION" } ], From 11b24e7f0dd9c72f8670d473ab5ae95e4ff0cefd Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 4 Aug 2026 01:05:16 +0100 Subject: [PATCH 163/260] Fix function statement suffix processing --- .../specification/LanguageBindingSpec.java | 8 +++--- .../up/fe/specs/fortran/parser/FlangName.java | 2 ++ .../fe/specs/fortran/parser/FlangToClass.java | 2 ++ .../fortran/parser/processors/Nodes.java | 2 ++ .../parser/processors/StmtProcessors.java | 25 ++++++++++++++++++- 5 files changed, 34 insertions(+), 5 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/LanguageBindingSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/LanguageBindingSpec.java index 46397467..17e6c09b 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/LanguageBindingSpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/LanguageBindingSpec.java @@ -5,20 +5,20 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; import java.util.Collection; import java.util.Optional; public class LanguageBindingSpec extends FortranNode { - public static final DataKey> NAME = KeyFactory.optional("name"); public static final DataKey C_DEFINED = KeyFactory.bool("c_defined"); public LanguageBindingSpec(DataStore data, Collection children) { super(data, children); } - public Optional getName() { - return get(NAME); + public Optional getName() { + return getChildTry(Expr.class, 0); } public boolean isCDefined() { @@ -28,7 +28,7 @@ public boolean isCDefined() { @Override public String getCode() { var nameCode = getName() - .map(name -> ", " + keyword(FortranKeyword.NAME) + "=" + name) + .map(name -> ", " + keyword(FortranKeyword.NAME) + "=" + name.getCode()) .orElse(""); var cDefinedCode = isCDefined() ? ", " + keyword(FortranKeyword.CDEFINED) : ""; diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index bdd14688..4855690d 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -42,6 +42,8 @@ public enum FlangName implements StringProvider { SUBROUTINE_STMT, END_SUBROUTINE_STMT, FUNCTION_STMT, + SUFFIX, + LANGUAGE_BINDING_SPEC, END_FUNCTION_STMT, ACTION_STMT, PRINT_STMT, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 2731b3de..0a9e421f 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -26,6 +26,7 @@ import pt.up.fe.specs.fortran.ast.nodes.program.unit.ProgramUnit; import pt.up.fe.specs.fortran.ast.nodes.program.unit.SubprogramUnit; import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; +import pt.up.fe.specs.fortran.ast.nodes.specification.LanguageBindingSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.NamedConstantDef; import pt.up.fe.specs.fortran.ast.nodes.stmt.*; import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmt; @@ -143,6 +144,7 @@ public class FlangToClass { NAME_TO_MAPPER.put(FlangName.NAMELIST_STMT, ClassMapper.always(NamelistStmt.class)); NAME_TO_MAPPER.put(FlangName.GROUP, ClassMapper.always(NamelistGroup.class)); NAME_TO_MAPPER.put(FlangName.FUNCTION_STMT, ClassMapper.always(FunctionStmt.class)); + NAME_TO_MAPPER.put(FlangName.LANGUAGE_BINDING_SPEC, ClassMapper.always(LanguageBindingSpec.class)); NAME_TO_MAPPER.put(FlangName.END_FUNCTION_STMT, ClassMapper.always(EndFunctionStmt.class)); /// Variables diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 214258ce..6f64dd8a 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -23,6 +23,7 @@ import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; import pt.up.fe.specs.fortran.ast.nodes.program.unit.SubprogramUnit; import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; +import pt.up.fe.specs.fortran.ast.nodes.specification.LanguageBindingSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.NamedConstantDef; import pt.up.fe.specs.fortran.ast.nodes.stmt.*; import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmt; @@ -144,6 +145,7 @@ public Nodes(FortranJsonResult data) { processors.put(NamelistStmt.class, s::namelistStmt); processors.put(NamelistGroup.class, s::namelistGroup); processors.put(FunctionStmt.class, s::functionStmt); + processors.put(LanguageBindingSpec.class, s::languageBindingSpec); processors.put(EndFunctionStmt.class, s::endFunctionStmt); var e = new ExprProcessors(data); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 512b01ef..f80170a5 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -7,6 +7,7 @@ import pt.up.fe.specs.fortran.ast.nodes.program.*; import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.*; import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; +import pt.up.fe.specs.fortran.ast.nodes.specification.LanguageBindingSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.NamedConstantDef; import pt.up.fe.specs.fortran.ast.nodes.stmt.*; import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmt; @@ -670,11 +671,25 @@ public void namelistGroup(NamelistGroup namelistGroup) { public void functionStmt(FunctionStmt functionStmt) { stmt(functionStmt); - var parameterNames = attributes(functionStmt).getStringList("argNames"); + var parameterNames = attributes(functionStmt).getStringList("paramNames"); var parameters = parameterNames.stream() .map(this::toNamedParameter) .toList(); functionStmt.addChildren(parameters); + + var suffixId = attributes(functionStmt).getOptionalString("suffix"); + suffixId.map(id -> attributes().get(id)) + .ifPresent(suffixAttrs -> { + var bindingId = suffixAttrs.getOptionalString("binding"); + bindingId.ifPresent(id -> { + var binding = getChild(id); + functionStmt.addChild(binding); + }); + + var resultName = suffixAttrs.getOptionalString("resultName") + .map(nameId -> attributes().get(nameId).getString("source")); + functionStmt.set(FunctionStmt.RESULT_NAME, resultName); + }); } private NamedParameter toNamedParameter(String nameId) { @@ -682,6 +697,14 @@ private NamedParameter toNamedParameter(String nameId) { return factory().namedParameter(name); } + public void languageBindingSpec(LanguageBindingSpec languageBindingSpec) { + var name = getChild(languageBindingSpec, FlangName.EXPR); + languageBindingSpec.addChild(name); + + var cDefined = attributes(languageBindingSpec).getString("bool"); + languageBindingSpec.set(LanguageBindingSpec.C_DEFINED, cDefined.equals("1")); + } + public void endFunctionStmt(EndFunctionStmt endFunctionStmt) { stmt(endFunctionStmt); } From d99d255926683813b6c17ca8174c822a47c78bc5 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 4 Aug 2026 01:28:29 +0100 Subject: [PATCH 164/260] Fix weaver --- .../fortran/weaverspecs/artifacts.xml | 11 +- .../fortran/weaverspecs/joinPointModel.xml | 14 +- .../fortran/weaver/FortranJoinpoints.java | 3 +- .../specs/fortran/weaver/FortranWeaver.json | 738 +++++++++++++++++- .../weaver/joinpoints/FIntLiteral.java | 2 +- .../joinpoints/FInternalSubprogram.java | 20 + .../weaver/joinpoints/FKindedLiteral.java | 19 + .../weaver/joinpoints/FMainProgram.java | 12 +- .../weaver/joinpoints/FProgramUnit.java | 9 +- .../weaver/joinpoints/FRealLiteral.java | 3 +- .../weaver/joinpoints/FStringLiteral.java | 2 +- .../weaver/joinpoints/FSubprogram.java | 30 + .../weaver/joinpoints/FSubroutine.java | 11 +- 13 files changed, 824 insertions(+), 50 deletions(-) create mode 100644 FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FInternalSubprogram.java create mode 100644 FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FKindedLiteral.java create mode 100644 FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSubprogram.java diff --git a/FortranWeaver/resources/fortran/weaverspecs/artifacts.xml b/FortranWeaver/resources/fortran/weaverspecs/artifacts.xml index 3eb583ba..19c1de0f 100644 --- a/FortranWeaver/resources/fortran/weaverspecs/artifacts.xml +++ b/FortranWeaver/resources/fortran/weaverspecs/artifacts.xml @@ -122,14 +122,15 @@ - - - + + + - - + + + diff --git a/FortranWeaver/resources/fortran/weaverspecs/joinPointModel.xml b/FortranWeaver/resources/fortran/weaverspecs/joinPointModel.xml index c9a1a4ef..979779ab 100644 --- a/FortranWeaver/resources/fortran/weaverspecs/joinPointModel.xml +++ b/FortranWeaver/resources/fortran/weaverspecs/joinPointModel.xml @@ -26,11 +26,13 @@ - + - + - + + + @@ -81,7 +83,11 @@ - + + + + + diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranJoinpoints.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranJoinpoints.java index ef8f7bb8..140fc204 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranJoinpoints.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranJoinpoints.java @@ -29,6 +29,8 @@ import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpOrderedClause; import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpReductionClause; import pt.up.fe.specs.fortran.ast.nodes.program.*; +import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.Subroutine; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.ProgramUnit; import pt.up.fe.specs.fortran.ast.nodes.stmt.*; import pt.up.fe.specs.fortran.ast.nodes.stmt.ifstmt.*; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; @@ -93,7 +95,6 @@ public class FortranJoinpoints { JOINPOINT_FACTORY.put(ElseIfBlock.class, FElseIfBlock::new); JOINPOINT_FACTORY.put(ElseIfStmt.class, FElseIfStatement::new); JOINPOINT_FACTORY.put(ElseBlock.class, FElseBlock::new); - JOINPOINT_FACTORY.put(Subroutine.class, FSubroutine::new); JOINPOINT_FACTORY.put(SpecificationStmt.class, FSpecificationStatement::new); JOINPOINT_FACTORY.put(TypeDeclarationStmt.class, FTypeDeclarationStatement::new); JOINPOINT_FACTORY.put(AttributeSpecifier.class, FAttributeSpecifier::new); diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json index bfb7267e..c6fcaa6d 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json @@ -6314,7 +6314,476 @@ { "type": "joinpoint", "name": "intLiteral", - "extends": "literal" , + "extends": "kindedLiteral" , + "children": [ + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "internalSubprogram", + "extends": "subprogram" , + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "String", + "name": "moduleName" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the subprogram's specification part", + "children": [ + { + "type": "specification", + "name": "specification" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "keywordAttributeSpecifier", + "extends": "attributeSpecifier" , "children": [ { "type": "attribute", @@ -6539,8 +7008,9 @@ }, { "type": "joinpoint", - "name": "keywordAttributeSpecifier", - "extends": "attributeSpecifier" , + "name": "kindedLiteral", + "extends": "literal" , + "tooltip": "Represents a literal with a kind specifier", "children": [ { "type": "attribute", @@ -7224,7 +7694,7 @@ "children": [ { "type": "attribute", - "tooltip": "Returns the unit's specification part", + "tooltip": "Returns the main program's specification part", "children": [ { "type": "specification", @@ -9863,15 +10333,6 @@ "name": "programUnit", "extends": "joinpoint" , "children": [ - { - "type": "attribute", - "tooltip": "Returns the unit's specification part", - "children": [ - { - "type": "specification", - "name": "specification" - }] - }, { "type": "attribute", "tooltip": "Returns an array with the children of the node", @@ -10380,7 +10841,7 @@ { "type": "joinpoint", "name": "realLiteral", - "extends": "literal" , + "extends": "kindedLiteral" , "children": [ { "type": "attribute", @@ -11581,8 +12042,251 @@ { "type": "joinpoint", "name": "stringLiteral", - "extends": "literal" , + "extends": "kindedLiteral" , + "children": [ + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "subprogram", + "extends": "joinpoint" , "children": [ + { + "type": "attribute", + "children": [ + { + "type": "String", + "name": "moduleName" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the subprogram's specification part", + "children": [ + { + "type": "specification", + "name": "specification" + }] + }, { "type": "attribute", "tooltip": "Returns an array with the children of the node", @@ -11807,7 +12511,7 @@ { "type": "joinpoint", "name": "subroutine", - "extends": "programUnit" , + "extends": "internalSubprogram" , "children": [ { "type": "attribute", @@ -11819,7 +12523,7 @@ }, { "type": "attribute", - "tooltip": "Returns the unit's specification part", + "tooltip": "Returns the subprogram's specification part", "children": [ { "type": "specification", diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FIntLiteral.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FIntLiteral.java index 2bc8e158..5790c850 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FIntLiteral.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FIntLiteral.java @@ -9,7 +9,7 @@ public class FIntLiteral extends AIntLiteral { private final IntLiteral intLiteral; public FIntLiteral(IntLiteral intLiteral) { - super(new FLiteral(intLiteral)); + super(new FKindedLiteral(intLiteral)); this.intLiteral = intLiteral; } diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FInternalSubprogram.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FInternalSubprogram.java new file mode 100644 index 00000000..92802c82 --- /dev/null +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FInternalSubprogram.java @@ -0,0 +1,20 @@ +package pt.up.fe.specs.fortran.weaver.joinpoints; + +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.InternalSubprogram; +import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AInternalSubprogram; + +public class FInternalSubprogram extends AInternalSubprogram { + private final InternalSubprogram internalSubprogram; + + public FInternalSubprogram(InternalSubprogram internalSubprogram) { + super(new FSubprogram(internalSubprogram)); + + this.internalSubprogram = internalSubprogram; + } + + @Override + public FortranNode getNode() { + return internalSubprogram; + } +} diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FKindedLiteral.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FKindedLiteral.java new file mode 100644 index 00000000..d8d0365e --- /dev/null +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FKindedLiteral.java @@ -0,0 +1,19 @@ +package pt.up.fe.specs.fortran.weaver.joinpoints; + +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.expr.KindedLiteral; +import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AKindedLiteral; + +public class FKindedLiteral extends AKindedLiteral { + private final KindedLiteral kindedLiteral; + + public FKindedLiteral(KindedLiteral kindedLiteral) { + super(new FLiteral(kindedLiteral)); + this.kindedLiteral = kindedLiteral; + } + + @Override + public FortranNode getNode() { + return kindedLiteral; + } +} diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FMainProgram.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FMainProgram.java index a331f2bf..50828f60 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FMainProgram.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FMainProgram.java @@ -1,11 +1,12 @@ package pt.up.fe.specs.fortran.weaver.joinpoints; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.program.MainProgram; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; +import pt.up.fe.specs.fortran.weaver.FortranJoinpoints; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AMainProgram; +import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.ASpecification; public class FMainProgram extends AMainProgram { - public final MainProgram mainProgram; public FMainProgram(MainProgram mainProgram) { @@ -15,6 +16,11 @@ public FMainProgram(MainProgram mainProgram) { @Override public FortranNode getNode() { - return null; + return mainProgram; + } + + @Override + public ASpecification getSpecificationImpl() { + return FortranJoinpoints.create(mainProgram.getSpecification(), ASpecification.class); } } diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FProgramUnit.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FProgramUnit.java index 8286d049..baa08cbc 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FProgramUnit.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FProgramUnit.java @@ -1,10 +1,8 @@ package pt.up.fe.specs.fortran.weaver.joinpoints; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.program.ProgramUnit; -import pt.up.fe.specs.fortran.weaver.FortranJoinpoints; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.ProgramUnit; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AProgramUnit; -import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.ASpecification; public class FProgramUnit extends AProgramUnit { @@ -14,11 +12,6 @@ public FProgramUnit(ProgramUnit programUnit) { this.programUnit = programUnit; } - @Override - public ASpecification getSpecificationImpl() { - return FortranJoinpoints.create(programUnit.getSpecification(), ASpecification.class); - } - @Override public FortranNode getNode() { return programUnit; diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FRealLiteral.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FRealLiteral.java index e56c7e12..b5dc7c88 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FRealLiteral.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FRealLiteral.java @@ -5,11 +5,10 @@ import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.ARealLiteral; public class FRealLiteral extends ARealLiteral { - private final RealLiteral realLiteral; public FRealLiteral(RealLiteral realLiteral) { - super(new FLiteral(realLiteral)); + super(new FKindedLiteral(realLiteral)); this.realLiteral = realLiteral; } diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FStringLiteral.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FStringLiteral.java index 13e62664..f19f000e 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FStringLiteral.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FStringLiteral.java @@ -9,7 +9,7 @@ public class FStringLiteral extends AStringLiteral { private final StringLiteral stringLiteral; public FStringLiteral(StringLiteral stringLiteral) { - super(new FLiteral(stringLiteral)); + super(new FKindedLiteral(stringLiteral)); this.stringLiteral = stringLiteral; } diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSubprogram.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSubprogram.java new file mode 100644 index 00000000..900a7f34 --- /dev/null +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSubprogram.java @@ -0,0 +1,30 @@ +package pt.up.fe.specs.fortran.weaver.joinpoints; + +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.Subprogram; +import pt.up.fe.specs.fortran.weaver.FortranJoinpoints; +import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.ASpecification; +import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.ASubprogram; + +public class FSubprogram extends ASubprogram { + private final Subprogram subprogram; + + public FSubprogram(Subprogram subprogram) { + this.subprogram = subprogram; + } + + @Override + public FortranNode getNode() { + return subprogram; + } + + @Override + public String getModuleNameImpl() { + return subprogram.getName(); + } + + @Override + public ASpecification getSpecificationImpl() { + return FortranJoinpoints.create(subprogram.getSpecification(), ASpecification.class); + } +} diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSubroutine.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSubroutine.java index 9d76803e..a8e310e7 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSubroutine.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSubroutine.java @@ -1,15 +1,15 @@ package pt.up.fe.specs.fortran.weaver.joinpoints; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.program.Subroutine; +import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.Subroutine; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.ASubroutine; public class FSubroutine extends ASubroutine { - public final Subroutine subroutine; public FSubroutine(Subroutine subroutine) { - super(new FProgramUnit(subroutine)); + super(new FInternalSubprogram(subroutine)); + this.subroutine = subroutine; } @@ -17,9 +17,4 @@ public FSubroutine(Subroutine subroutine) { public FortranNode getNode() { return subroutine; } - - @Override - public String getModuleNameImpl() { - return subroutine.getName(); - } } From d6445ee4d6a0e88079029d8233b0510774814997 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 4 Aug 2026 12:37:22 +0100 Subject: [PATCH 165/260] Rename internal subprogram part --- .../{InternalPart.java => InternalSubprogramPart.java} | 5 ++--- .../ast/nodes/program/subprogram/Subprogram.java | 6 +++--- .../fortran/ast/nodes/program/unit/MainProgram.java | 6 +++--- .../fortran/ast/nodes/program/unit/ProgramUnit.java | 4 ---- .../pt/up/fe/specs/fortran/parser/FlangToClass.java | 2 +- .../up/fe/specs/fortran/parser/processors/Nodes.java | 2 +- .../fortran/parser/processors/ProgramProcessors.java | 10 +++++----- 7 files changed, 15 insertions(+), 20 deletions(-) rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/{InternalPart.java => InternalSubprogramPart.java} (85%) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/InternalPart.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/InternalSubprogramPart.java similarity index 85% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/InternalPart.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/InternalSubprogramPart.java index 68169995..d0f23b77 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/InternalPart.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/InternalSubprogramPart.java @@ -7,11 +7,10 @@ import java.util.Collection; import java.util.List; -import java.util.Optional; import java.util.stream.Collectors; -public class InternalPart extends FortranNode { - public InternalPart(DataStore data, Collection children) { +public class InternalSubprogramPart extends FortranNode { + public InternalSubprogramPart(DataStore data, Collection children) { super(data, children); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subprogram.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subprogram.java index a8c6deb8..1047566a 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subprogram.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subprogram.java @@ -5,7 +5,7 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.program.Execution; -import pt.up.fe.specs.fortran.ast.nodes.program.InternalPart; +import pt.up.fe.specs.fortran.ast.nodes.program.InternalSubprogramPart; import pt.up.fe.specs.fortran.ast.nodes.program.Specification; import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; @@ -39,8 +39,8 @@ public Execution getExecution() { return getChild(Execution.class); } - public Optional getInternalPart() { - return getChildOf(InternalPart.class); + public Optional getInternalPart() { + return getChildOf(InternalSubprogramPart.class); } public String getCode() { diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/MainProgram.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/MainProgram.java index a255937c..8ad2e0f8 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/MainProgram.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/MainProgram.java @@ -5,7 +5,7 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.program.Execution; -import pt.up.fe.specs.fortran.ast.nodes.program.InternalPart; +import pt.up.fe.specs.fortran.ast.nodes.program.InternalSubprogramPart; import pt.up.fe.specs.fortran.ast.nodes.program.Specification; import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.EndProgramStmt; import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.ProgramStmt; @@ -36,8 +36,8 @@ public Execution getExecution() { return getChild(Execution.class); } - public Optional getInternalPart() { - return getChildOf(InternalPart.class); + public Optional getInternalPart() { + return getChildOf(InternalSubprogramPart.class); } public EndProgramStmt getEndProgramStmt() { diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/ProgramUnit.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/ProgramUnit.java index 845a190f..3f9e741a 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/ProgramUnit.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/ProgramUnit.java @@ -2,12 +2,8 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.program.InternalPart; -import pt.up.fe.specs.fortran.ast.nodes.program.Specification; -import pt.up.fe.specs.fortran.ast.nodes.program.StmtBlock; import java.util.Collection; -import java.util.stream.Collectors; /** * R502 program-unit diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 0a9e421f..54d563d0 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -73,7 +73,7 @@ public class FlangToClass { NAME_TO_MAPPER.put(FlangName.END_PROGRAM_STMT, ClassMapper.always(EndProgramStmt.class)); NAME_TO_MAPPER.put(FlangName.SPECIFICATION_PART, ClassMapper.always(Specification.class)); NAME_TO_MAPPER.put(FlangName.EXECUTION_PART, ClassMapper.always(Execution.class)); - NAME_TO_MAPPER.put(FlangName.INTERNAL_SUBPROGRAM_PART, ClassMapper.always(InternalPart.class)); + NAME_TO_MAPPER.put(FlangName.INTERNAL_SUBPROGRAM_PART, ClassMapper.always(InternalSubprogramPart.class)); NAME_TO_MAPPER.put(FlangName.SUBROUTINE_SUBPROGRAM, ClassMapper.always(Subroutine.class)); NAME_TO_MAPPER.put(FlangName.FUNCTION_SUBPROGRAM, ClassMapper.always(Function.class)); NAME_TO_MAPPER.put(FlangName.SUBROUTINE_STMT, ClassMapper.always(SubroutineStmt.class)); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 6f64dd8a..4baeaf64 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -71,7 +71,7 @@ public Nodes(FortranJsonResult data) { processors.put(Execution.class, p::execution); processors.put(Subroutine.class, p::subroutine); processors.put(Function.class, p::function); - processors.put(InternalPart.class, p::internalSubprogram); + processors.put(InternalSubprogramPart.class, p::internalSubprogramPart); var alloc = new AllocProcessors(data); processors.put(Allocation.class, alloc::allocation); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java index c79e430f..483fb2e3 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java @@ -102,13 +102,13 @@ public void execution(Execution execution) { } } - public void internalSubprogram(InternalPart internalSubprogram) { - if (attributes(internalSubprogram).has(FlangName.CONTAINS_STMT.getStmtAttr())) { - internalSubprogram.addChild(getChild(internalSubprogram, FlangName.CONTAINS_STMT.getStmtAttr())); + public void internalSubprogramPart(InternalSubprogramPart part) { + if (attributes(part).has(FlangName.CONTAINS_STMT.getStmtAttr())) { + part.addChild(getChild(part, FlangName.CONTAINS_STMT.getStmtAttr())); } - if (attributes(internalSubprogram).has(FlangName.INTERNAL_SUBPROGRAM)) { - internalSubprogram.addChildren(getChildren(internalSubprogram, FlangName.INTERNAL_SUBPROGRAM)); + if (attributes(part).has(FlangName.INTERNAL_SUBPROGRAM)) { + part.addChildren(getChildren(part, FlangName.INTERNAL_SUBPROGRAM)); } } From 575f2b615c426c3f68ce5ab0efd1c952a991acb8 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 4 Aug 2026 16:05:57 +0100 Subject: [PATCH 166/260] Remove console log --- Fortran-JS/src-api/Query.test.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/Fortran-JS/src-api/Query.test.ts b/Fortran-JS/src-api/Query.test.ts index 8e6d4528..c36179e2 100644 --- a/Fortran-JS/src-api/Query.test.ts +++ b/Fortran-JS/src-api/Query.test.ts @@ -591,8 +591,6 @@ describe("Query", () => { lst.push(stmt.code); } - console.log(lst); - expect(lst.length).toBe(4); expect(lst[0]).toEqual('PROGRAM HELLO'); expect(lst[1]).toEqual('PRINT *, "Hello, World!"'); From 30fa6498f42198409b4bbc1dced267c9f0fd8f1b Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 4 Aug 2026 17:12:38 +0100 Subject: [PATCH 167/260] Fix compilation errors from merge --- .../fe/specs/fortran/ast/FortranKeyword.java | 2 - .../specs/fortran/ast/FortranNodeFactory.java | 9 +- .../ast/nodes/omp/OmpBlockConstruct.java | 2 +- .../ast/nodes/omp/OmpLoopConstruct.java | 2 +- .../ast/nodes/program/EndProgramStmt.java | 22 - .../ast/nodes/program/EndSubroutineStmt.java | 20 - .../fortran/ast/nodes/program/Function.java | 50 - .../ast/nodes/program/MainProgram.java | 0 .../ast/nodes/program/ProgramStmt.java | 22 - .../fortran/ast/nodes/program/Subroutine.java | 0 .../ast/nodes/program/SubroutineStmt.java | 33 - .../fortran/ast/nodes/stmt/CloseStmt.java | 18 - .../fortran/ast/nodes/stmt/DataStmt.java | 35 - .../fortran/ast/nodes/stmt/OpenStmt.java | 18 - .../ast/nodes/stmt/ifstmt/IfConstruct.java | 2 +- .../nodes/stmt/selectcase/CaseConstruct.java | 2 +- .../up/fe/specs/fortran/parser/FlangName.java | 3 - .../fe/specs/fortran/parser/FlangToClass.java | 13 +- .../fortran/parser/FortranJsonParser.java | 8 +- .../fortran/parser/processors/Nodes.java | 6 +- .../parser/processors/OmpProcessors.java | 4 - .../parser/processors/ProgramProcessors.java | 8 +- .../parser/processors/StmtProcessors.java | 44 +- .../specs/fortran/weaver/FortranWeaver.json | 28796 +++++++--------- 24 files changed, 13050 insertions(+), 16069 deletions(-) delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/EndProgramStmt.java delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/EndSubroutineStmt.java delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Function.java delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/MainProgram.java delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/ProgramStmt.java delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Subroutine.java delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/SubroutineStmt.java delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CloseStmt.java delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DataStmt.java delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/OpenStmt.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java index 8a870890..6bc39dc6 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -6,14 +6,12 @@ public enum FortranKeyword { CONCURRENT, SUBROUTINE, FUNCTION, - WRITE, USE, INTRINSIC, NON_INTRINSIC, ONLY, GOTO, EXTERNAL, - RETURN, STOP, // Execution statements diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java index b0f39f0e..14c4a15f 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java @@ -9,6 +9,7 @@ import pt.up.fe.specs.fortran.ast.nodes.decl.NamedParameter; import pt.up.fe.specs.fortran.ast.nodes.expr.*; import pt.up.fe.specs.fortran.ast.nodes.expr.enums.BinaryOperatorKind; +import pt.up.fe.specs.fortran.ast.nodes.io.Format; import pt.up.fe.specs.fortran.ast.nodes.io.StarFormat; import pt.up.fe.specs.fortran.ast.nodes.loops.LoopControl; import pt.up.fe.specs.fortran.ast.nodes.loops.RangeLoopControl; @@ -20,19 +21,21 @@ import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpReductionClause; import pt.up.fe.specs.fortran.ast.nodes.omp.enums.OmpClauseKind; import pt.up.fe.specs.fortran.ast.nodes.omp.enums.OmpDirectiveKind; -import pt.up.fe.specs.fortran.ast.nodes.program.*; +import pt.up.fe.specs.fortran.ast.nodes.program.Application; +import pt.up.fe.specs.fortran.ast.nodes.program.Execution; +import pt.up.fe.specs.fortran.ast.nodes.program.FortranFile; import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.EndProgramStmt; -import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.ProgramStmt; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; import pt.up.fe.specs.fortran.ast.nodes.program.unit.ProgramUnit; import pt.up.fe.specs.fortran.ast.nodes.stmt.LiteralExecutionStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.PrintStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.EndDoStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.UseOnlyStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.UseRenameStmt; -import pt.up.fe.specs.fortran.ast.nodes.io.Format; import pt.up.fe.specs.fortran.ast.nodes.utils.LabelRef; import pt.up.fe.specs.util.SpecsCheck; import pt.up.fe.specs.util.SpecsCollections; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpBlockConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpBlockConstruct.java index 054fece5..9f5268d0 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpBlockConstruct.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpBlockConstruct.java @@ -25,7 +25,7 @@ public Execution setBody(Execution body) { } @Override - public String getStmtCode() { + public String getCode() { var code = new StringBuilder(); String directive = get(KINDS).stream() .map(OmpDirectiveKind::getString) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpLoopConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpLoopConstruct.java index 53f5e94c..5fa2ba15 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpLoopConstruct.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpLoopConstruct.java @@ -43,7 +43,7 @@ public boolean hasNowait() { } @Override - public String getStmtCode() { + public String getCode() { var code = new StringBuilder(); String directive = get(KINDS).stream() .map(OmpDirectiveKind::getString) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/EndProgramStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/EndProgramStmt.java deleted file mode 100644 index f6f6bd66..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/EndProgramStmt.java +++ /dev/null @@ -1,22 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.program; - -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.FortranKeyword; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; - -import java.util.Collection; - -public class EndProgramStmt extends Stmt { - public EndProgramStmt(DataStore data, Collection children) { - super(data, children); - } - - @Override - public String getStmtCode() { - var nameOpt = getAncestor(MainProgram.class).getName(); - var nameSuffix = nameOpt.map(name -> " " + name).orElse(""); - - return keyword(FortranKeyword.END) + " " + keyword(FortranKeyword.PROGRAM) + nameSuffix; - } -} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/EndSubroutineStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/EndSubroutineStmt.java deleted file mode 100644 index bfddc24f..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/EndSubroutineStmt.java +++ /dev/null @@ -1,20 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.program; - -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.FortranKeyword; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; - -import java.util.Collection; - -public class EndSubroutineStmt extends Stmt { - public EndSubroutineStmt(DataStore data, Collection children) { - super(data, children); - } - - @Override - public String getStmtCode() { - var subroutineName = getAncestor(Subroutine.class).getName(); - return keyword(FortranKeyword.END) + " " + keyword(FortranKeyword.SUBROUTINE) + " " + subroutineName; - } -} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Function.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Function.java deleted file mode 100644 index ce48b156..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Function.java +++ /dev/null @@ -1,50 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.program; - -import org.suikasoft.jOptions.Datakey.DataKey; -import org.suikasoft.jOptions.Datakey.KeyFactory; -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.expr.DataRef; - -import java.util.Collection; -import java.util.List; -import java.util.stream.Collectors; - -import static pt.up.fe.specs.fortran.ast.FortranKeyword.*; - -public class Function extends ProgramUnit { - - public final static DataKey FUNCTION_NAME = KeyFactory.string("programName"); - - public Function(DataStore data, Collection children) { - super(data, children); - } - - public List getArgs() { - return getChildrenOf(DataRef.class); - } - - @Override - public String getCode() { - - var code = new StringBuilder(); - - var argCode = "(" + - getArgs().stream() - .map(DataRef::getCode) - .collect(Collectors.joining(", ")) + - ")"; - - var functionName = get(FUNCTION_NAME); - - code.append(keyword(FUNCTION)).append(" ").append(functionName).append(argCode).append(ln()); - - code.append(getBodyCode()).append(ln()); - - code.append(keyword(END)); - code.append(" ").append(keyword(FUNCTION)).append(" ").append(functionName); - code.append(ln()); - - return code.toString(); - } -} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/MainProgram.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/MainProgram.java deleted file mode 100644 index e69de29b..00000000 diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/ProgramStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/ProgramStmt.java deleted file mode 100644 index 723def1c..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/ProgramStmt.java +++ /dev/null @@ -1,22 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.program; - -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.FortranKeyword; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; - -import java.util.Collection; - -public class ProgramStmt extends Stmt { - public ProgramStmt(DataStore data, Collection children) { - super(data, children); - } - - @Override - public String getStmtCode() { - var nameOpt = getAncestor(MainProgram.class).getName(); - var nameSuffix = nameOpt.map(name -> " " + name).orElse(""); - - return keyword(FortranKeyword.PROGRAM) + nameSuffix; - } -} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Subroutine.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Subroutine.java deleted file mode 100644 index e69de29b..00000000 diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/SubroutineStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/SubroutineStmt.java deleted file mode 100644 index 32d994a1..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/SubroutineStmt.java +++ /dev/null @@ -1,33 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.program; - -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.decl.DummyArgumentDecl; -import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; - -import java.util.Collection; -import java.util.List; -import java.util.stream.Collectors; - -import static pt.up.fe.specs.fortran.ast.FortranKeyword.SUBROUTINE; - -public class SubroutineStmt extends Stmt { - public SubroutineStmt(DataStore data, Collection children) { - super(data, children); - } - - public List getDummyArgs() { - return getChildrenOf(DummyArgumentDecl.class); - } - - @Override - public String getStmtCode() { - var subroutineName = getAncestor(Subroutine.class).getName(); - - var argCode = getDummyArgs().stream() - .map(DummyArgumentDecl::getCode) - .collect(Collectors.joining(", ", "(", ")")); - - return keyword(SUBROUTINE) + " " + subroutineName + argCode; - } -} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CloseStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CloseStmt.java deleted file mode 100644 index 60318eff..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CloseStmt.java +++ /dev/null @@ -1,18 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.stmt; - -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; - -import java.util.Collection; - -public class CloseStmt extends ActionStmt { - public CloseStmt(DataStore data, Collection children) { - super(data, children); - } - - //TODO properly support the statement - @Override - public String getStmtCode() { - return get(SOURCE).replaceFirst("^\\d+", ""); - } -} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DataStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DataStmt.java deleted file mode 100644 index ee5d70fb..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DataStmt.java +++ /dev/null @@ -1,35 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.stmt; - -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.FortranKeyword; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.decl.DataStmtSet; - -import java.util.Collection; -import java.util.List; -import java.util.stream.Collectors; - -public class DataStmt extends DeclarationStmt { - public DataStmt(DataStore data, Collection children) { - super(data, children); - } - - public List getSets() { - return getChildrenOf(DataStmtSet.class); - } - - @Override - public String getStmtCode() { - StringBuilder code = new StringBuilder(); - - code.append(FortranKeyword.DATA.getKeyword(false)).append(" "); - - code.append(getSets() - .stream() - .map(DataStmtSet::getCode) - .collect(Collectors.joining(", ")) - ); - - return code.toString(); - } -} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/OpenStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/OpenStmt.java deleted file mode 100644 index b0e21b79..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/OpenStmt.java +++ /dev/null @@ -1,18 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.stmt; - -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; - -import java.util.Collection; - -public class OpenStmt extends ActionStmt { - public OpenStmt(DataStore data, Collection children) { - super(data, children); - } - - //TODO properly support the statement - @Override - public String getStmtCode() { - return get(SOURCE).replaceFirst("^\\d+", ""); - } -} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfConstruct.java index 624be755..693c6fb5 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfConstruct.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfConstruct.java @@ -41,7 +41,7 @@ public EndIfStmt getEndIfStmt() { } @Override - public String getStmtCode() { + public String getCode() { var ifThenBlock = getIfThenBlock(); var elseIfBlocks = getElseIfBlocks(); var elseBlock = getElseBlock(); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/CaseConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/CaseConstruct.java index f9a2f7e3..af6fa581 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/CaseConstruct.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/CaseConstruct.java @@ -34,7 +34,7 @@ public EndSelectStmt getEndSelectStmt() { } @Override - public String getStmtCode() { + public String getCode() { var selectCaseStmt = getSelectCaseStmt(); var caseBlocks = getCaseBlocks(); var endSelectStmt = getEndSelectStmt(); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 4f1a10a0..57cca636 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -23,7 +23,6 @@ public enum FlangName implements StringProvider { EXECUTION_PART_CONSTRUCT, EXECUTABLE_CONSTRUCT, ALLOCATION, - FUNCTION_SUBPROGRAM, /// DECLs ENTITY_DECL, @@ -41,7 +40,6 @@ public enum FlangName implements StringProvider { PROGRAM_STMT, END_PROGRAM_STMT, SUBROUTINE_STMT, - FUNCTION_STMT, END_SUBROUTINE_STMT, FUNCTION_STMT, SUFFIX, @@ -78,7 +76,6 @@ public enum FlangName implements StringProvider { COMMON_STMT, COMMON_STMT_BLOCK, COMMON_BLOCK_OBJECT, - RETURN_STMT, DIMENSION_STMT, DECLARATION, NAMELIST_STMT, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 98bdd90f..af04ec7f 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -12,7 +12,6 @@ import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.TypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.expr.*; import pt.up.fe.specs.fortran.ast.nodes.io.*; -import pt.up.fe.specs.fortran.ast.nodes.io.WriteStmt; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentLoopControl; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentRange; import pt.up.fe.specs.fortran.ast.nodes.loops.RangeLoopControl; @@ -33,8 +32,6 @@ import pt.up.fe.specs.fortran.ast.nodes.specification.LanguageBindingSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.NamedConstantDef; import pt.up.fe.specs.fortran.ast.nodes.stmt.*; -import pt.up.fe.specs.fortran.ast.nodes.stmt.CloseStmt; -import pt.up.fe.specs.fortran.ast.nodes.stmt.OpenStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmtSet; import pt.up.fe.specs.fortran.ast.nodes.stmt.dimstmt.DimensionDecl; @@ -90,13 +87,13 @@ public class FlangToClass { /// DECLs NAME_TO_MAPPER.put(FlangName.ENTITY_DECL, ClassMapper.always(EntityDecl.class)); NAME_TO_MAPPER.put(FlangName.DUMMY_ARG, ClassMapper.caseFor(Parameter.class) - .map(FlangName.NAME, NamedParameter.class) - .map(FlangName.STAR, StarParameter.class)); + .map(FlangName.NAME, NamedParameter.class) + .map(FlangName.STAR, StarParameter.class)); NAME_TO_MAPPER.put(FlangName.DATA_STMT_VALUE, ClassMapper.always(DataStmtValue.class)); NAME_TO_MAPPER.put(FlangName.TYPE_PARAM_VALUE, ClassMapper.caseFor(TypeParamValue.class) - .map(FlangName.EXPR, ExprTypeParamValue.class) - .map(FlangName.STAR, StarTypeParamValue.class) - .map(FlangName.DEFERRED, DeferredTypeParamValue.class)); + .map(FlangName.EXPR, ExprTypeParamValue.class) + .map(FlangName.STAR, StarTypeParamValue.class) + .map(FlangName.DEFERRED, DeferredTypeParamValue.class)); /// STMTs NAME_TO_MAPPER.put(FlangName.PRINT_STMT, ClassMapper.always(PrintStmt.class)); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java index e96ae7e5..ea938a03 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java @@ -8,7 +8,10 @@ import pt.up.fe.specs.util.SpecsIo; import pt.up.fe.specs.util.SpecsLogs; -import java.io.*; +import java.io.File; +import java.io.IOException; +import java.io.Reader; +import java.io.StringReader; import java.util.*; public class FortranJsonParser implements JsonReaderParser { @@ -73,9 +76,6 @@ private FortranJsonResult parsePrivate(Reader input, FortranContext context) { case "comments": parseComments(reader); break; - case "comments": - parseComments(reader); - break; case "enums": parseEnums(reader); break; diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 9e957c31..dd7cb54e 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -19,9 +19,7 @@ import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpNowaitClause; import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpReductionClause; import pt.up.fe.specs.fortran.ast.nodes.program.*; -import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.EndFunctionStmt; -import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.FunctionStmt; -import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.ProgramStmt; +import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.*; import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; import pt.up.fe.specs.fortran.ast.nodes.program.unit.SubprogramUnit; import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; @@ -79,7 +77,6 @@ public Nodes(FortranJsonResult data) { processors.put(Subroutine.class, p::subroutine); processors.put(Function.class, p::function); processors.put(InternalSubprogramPart.class, p::internalSubprogramPart); - processors.put(Function.class, p::function); var alloc = new AllocProcessors(data); processors.put(Allocation.class, alloc::allocation); @@ -140,7 +137,6 @@ public Nodes(FortranJsonResult data) { processors.put(ContinueStmt.class, s::continueStmt); processors.put(ParameterStmt.class, s::parameterStmt); processors.put(ExternalStmt.class, s::externalStmt); - processors.put(ReturnStmt.class, s::returnStmt); processors.put(NamedConstantDef.class, s::namedConstantDef); processors.put(DataStmt.class, s::dataStmt); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/OmpProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/OmpProcessors.java index 7608c1ef..1f23df81 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/OmpProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/OmpProcessors.java @@ -25,8 +25,6 @@ public OmpProcessors(FortranJsonResult data, StmtProcessors stmtProcessors) { } public void ompBlockConstruct(OmpBlockConstruct ompBlockConstruct) { - stmtProcessors.stmt(ompBlockConstruct); - String directive = attributes().getString(ompBlockConstruct, "directive", FlangName.OMP_BEGIN_DIRECTIVE, FlangName.OMP_DIRECTIVE_NAME); String clauseList = attributes().getString(ompBlockConstruct, "id", FlangName.OMP_BEGIN_DIRECTIVE, FlangName.OMP_CLAUSE_LIST); @@ -42,8 +40,6 @@ public void ompBlockConstruct(OmpBlockConstruct ompBlockConstruct) { } public void ompLoopConstruct(OmpLoopConstruct ompLoopConstruct) { - stmtProcessors.stmt(ompLoopConstruct); - String directive = attributes().getString(ompLoopConstruct, "directive", FlangName.OMP_BEGIN_LOOP_DIRECTIVE, FlangName.OMP_DIRECTIVE_NAME); String clauseList = attributes().getString(ompLoopConstruct, "id", FlangName.OMP_BEGIN_LOOP_DIRECTIVE, FlangName.OMP_CLAUSE_LIST); String endClauseList = attributes().getString(ompLoopConstruct, "id", FlangName.OMP_END_LOOP_DIRECTIVE, FlangName.OMP_CLAUSE_LIST); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java index fd129b86..9a6f91fb 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java @@ -2,10 +2,13 @@ import pt.up.fe.specs.fortran.ast.FortranContext; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.program.*; +import pt.up.fe.specs.fortran.ast.nodes.program.Execution; +import pt.up.fe.specs.fortran.ast.nodes.program.FortranFile; +import pt.up.fe.specs.fortran.ast.nodes.program.InternalSubprogramPart; +import pt.up.fe.specs.fortran.ast.nodes.program.Specification; import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.Function; -import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.Subroutine; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; import pt.up.fe.specs.fortran.ast.nodes.program.unit.SubprogramUnit; import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; @@ -126,7 +129,6 @@ public void subroutine(Subroutine subroutine) { var name = attributes().getString(subroutineStmt, "source", FlangName.NAME); subroutine.set(Subroutine.NAME, name); - function.set(Function.FUNCTION_NAME, name); addSubprogramBody(subroutine); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 2e96b352..1ddc2a6b 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -4,7 +4,8 @@ import pt.up.fe.specs.fortran.ast.nodes.decl.NamedParameter; import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; import pt.up.fe.specs.fortran.ast.nodes.loops.WhileLoopControl; -import pt.up.fe.specs.fortran.ast.nodes.program.*; +import pt.up.fe.specs.fortran.ast.nodes.program.Execution; +import pt.up.fe.specs.fortran.ast.nodes.program.StmtBlock; import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.*; import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; import pt.up.fe.specs.fortran.ast.nodes.specification.LanguageBindingSpec; @@ -125,8 +126,6 @@ public void stmtBlock(StmtBlock stmtBlock) { } public void ifConstruct(IfConstruct ifConstruct) { - executableStmt(ifConstruct); - // Add if-then block var ifThenStmt = getStmtChild(ifConstruct, FlangName.IF_THEN_STMT); @@ -220,8 +219,6 @@ public void ifStmt(IfStmt ifStmt) { } public void caseConstruct(CaseConstruct caseConstruct) { - executableStmt(caseConstruct); - var selectCaseStmt = getStmtChild(caseConstruct, FlangName.SELECT_CASE_STMT); var caseBlocks = getChildren(caseConstruct, FlangName.CASE); var endSelectStmt = getStmtChild(caseConstruct, FlangName.END_SELECT_STMT); @@ -527,23 +524,8 @@ public void externalStmt(ExternalStmt externalStmt) { externalStmt.addChildren(getChildren(externalStmt, FlangName.NAME)); } - public void returnStmt(ReturnStmt returnStmt) { - actionStmt(returnStmt); - if (attributes(returnStmt).has(FlangName.EXPR)) { - returnStmt.addChild(getChild(returnStmt, FlangName.EXPR)); - } - } - - public void openStmt(OpenStmt openStmt) { - actionStmt(openStmt); - } - - public void closeStmt(CloseStmt closeStmt) { - actionStmt(closeStmt); - } - public void namedConstantDef(NamedConstantDef namedConstantDef) { -var ref = getChild(namedConstantDef, FlangName.NAMED_CONSTANT); + var ref = getChild(namedConstantDef, FlangName.NAMED_CONSTANT); namedConstantDef.addChild(ref); var expr = getChild(namedConstantDef, FlangName.EXPR); @@ -707,16 +689,16 @@ public void functionStmt(FunctionStmt functionStmt) { var suffixId = attributes(functionStmt).getOptionalString("suffix"); suffixId.map(id -> attributes().get(id)) .ifPresent(suffixAttrs -> { - var bindingId = suffixAttrs.getOptionalString("binding"); - bindingId.ifPresent(id -> { - var binding = getChild(id); - functionStmt.addChild(binding); - }); - - var resultName = suffixAttrs.getOptionalString("resultName") - .map(nameId -> attributes().get(nameId).getString("source")); - functionStmt.set(FunctionStmt.RESULT_NAME, resultName); - }); + var bindingId = suffixAttrs.getOptionalString("binding"); + bindingId.ifPresent(id -> { + var binding = getChild(id); + functionStmt.addChild(binding); + }); + + var resultName = suffixAttrs.getOptionalString("resultName") + .map(nameId -> attributes().get(nameId).getString("source")); + functionStmt.set(FunctionStmt.RESULT_NAME, resultName); + }); } private NamedParameter toNamedParameter(String nameId) { diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json index 8175ad62..c6fcaa6d 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json @@ -1,15778 +1,12794 @@ { - "root": "program", - "rootAlias": "program", - "children": [ - { - "type": "joinpoint", - "name": "joinpoint", - "extends": "", - "children": [ - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "actionStatement", - "extends": "executableStatement", - "tooltip": "Represents an action statement", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isFirst" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isLast" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "arraySubscriptExpr", - "extends": "dataRef", - "tooltip": "Represents an access to one (or several) elements of an array", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "expr[]", - "name": "subscripts" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "dataRef", - "name": "var" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "String", - "name": "name" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "assignmentStatement", - "extends": "actionStatement", - "tooltip": "Represents an assignment statement", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "expr", - "name": "expr" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "dataRef", - "name": "variable" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isFirst" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isLast" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "attributeSpecifier", - "extends": "joinpoint", - "children": [ - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "binaryOperator", - "extends": "expr", - "tooltip": "Represents a binary operation", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "[add| sub| mul| div| gt| ge| lt| le| eq| ne]", - "name": "kind" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "expr", - "name": "left" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "expr", - "name": "right" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Sets the left-hand side of the operation", - "children": [ - { - "type": "void", - "name": "setLeft" - }, - { - "type": "expr", - "name": "lhs", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Sets the right-hand side of the operation", - "children": [ - { - "type": "void", - "name": "setRight" - }, - { - "type": "expr", - "name": "rhs", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "compilerDirective", - "extends": "statement", - "children": [ - { - "type": "attribute", - "tooltip": "Returns the directive's contents as a string", - "children": [ - { - "type": "String", - "name": "directiveString" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "nameValue[]", - "name": "pairs" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isFirst" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isLast" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "dataRef", - "extends": "designator", - "tooltip": "Represents a data reference", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "String", - "name": "name" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "designator", - "extends": "expr", - "tooltip": "Represents a designator", - "children": [ - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "doConstruct", - "extends": "executableConstruct", - "tooltip": "Represents a do loop", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "execution", - "name": "body" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "loopControl", - "name": "control" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "[while| range| concurrent]", - "name": "kind" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the do statement, including its controls, but not the body", - "children": [ - { - "type": "doConstruct", - "name": "copyScope" - } - ] - }, - { - "type": "action", - "tooltip": "Returns true if the given do statement has the same loop control as this do statement", - "children": [ - { - "type": "boolean", - "name": "sameScope" - }, - { - "type": "doConstruct", - "name": "loop", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "elseBlock", - "extends": "joinpoint", - "tooltip": "Represents the optional 'else' block of an if construct", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "statementBlock", - "name": "body" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "elseIfBlock", - "extends": "joinpoint", - "tooltip": "Represents the optional 'else if' blocks of an if construct", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "statementBlock", - "name": "body" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "elseIfStatement", - "name": "header" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "elseIfStatement", - "extends": "joinpoint", - "tooltip": "Represents the header of an 'else if' block", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "expr", - "name": "condition" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "entityDecl", - "extends": "fortranDecl", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "String", - "name": "name" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "executableConstruct", - "extends": "joinpoint", - "children": [ - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "executableStatement", - "extends": "statement", - "tooltip": "Represents an executable statement", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isFirst" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isLast" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "execution", - "extends": "statementBlock", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "executableStatement[]", - "name": "executableStmts" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "statement[]", - "name": "stmts" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "children": [ - { - "type": "void", - "name": "insertBegin" - }, - { - "type": "executableStatement", - "name": "stmt", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "children": [ - { - "type": "void", - "name": "insertEnd" - }, - { - "type": "executableStatement", - "name": "stmt", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "expr", - "extends": "joinpoint", - "tooltip": "Represents an expression", - "children": [ - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "exprInitialization", - "extends": "initialization", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "expr", - "name": "expr" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "exprInitialization", - "extends": "initialization", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "expr", - "name": "expr" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "file", - "defaultAttr": "name", - "extends": "joinpoint", - "tooltip": "Represents a source file (e.g., .f90)", - "children": [ - { - "type": "attribute", - "tooltip": "the name of the folder", - "children": [ - { - "type": "String", - "name": "foldername" - } - ] - }, - { - "type": "attribute", - "tooltip": "the name of the file", - "children": [ - { - "type": "String", - "name": "name" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "fortranDecl", - "extends": "joinpoint", - "children": [ - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "fortranDecl", - "extends": "joinpoint", - "children": [ - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "ifConstruct", - "extends": "executableConstruct", - "tooltip": "Represents the root of an if construct", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "elseBlock", - "name": "elseBlock" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "elseIfBlock[]", - "name": "elseIfBlocks" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "ifThenBlock", - "name": "ifThenBlock" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "ifStatement", - "extends": "actionStatement", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "expr", - "name": "condition" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "actionStatement", - "name": "statement" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isFirst" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isLast" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "ifThenBlock", - "extends": "joinpoint", - "tooltip": "Represents the first block of an if construct", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "statementBlock", - "name": "body" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "ifThenStatement", - "name": "header" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "ifThenStatement", - "extends": "joinpoint", - "tooltip": "Represents the header of an 'if then' block", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "expr", - "name": "condition" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "initialization", - "extends": "joinpoint", - "children": [ - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "initialization", - "extends": "joinpoint", - "children": [ - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "intLiteral", - "extends": "kindedLiteral", - "children": [ - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "internalSubprogram", - "extends": "subprogram", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "String", - "name": "moduleName" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the subprogram's specification part", - "children": [ - { - "type": "specification", - "name": "specification" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "keywordAttributeSpecifier", - "extends": "attributeSpecifier", - "children": [ - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "kindedLiteral", - "extends": "literal", - "tooltip": "Represents a literal with a kind specifier", - "children": [ - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "keywordAttributeSpecifier", - "extends": "attributeSpecifier", - "children": [ - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "literal", - "extends": "expr", - "tooltip": "Represents a literal", - "children": [ - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "loopControl", - "extends": "joinpoint", - "tooltip": "Represents the loop control structure, with specialized subclasses for different loop kinds", - "children": [ - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "mainProgram", - "extends": "programUnit", - "children": [ - { - "type": "attribute", - "tooltip": "Returns the main program's specification part", - "children": [ - { - "type": "specification", - "name": "specification" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "nameValue", - "extends": "joinpoint", - "tooltip": "Represents a name/value pair in a compiler directive", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "String", - "name": "name" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "ompBlockConstruct", - "extends": "ompConstruct", - "tooltip": "Represents an OpenMP block construct (such as parallel or task)", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "ompClause[]", + "root": "program", + "rootAlias": "program", + "children": [ + { + "type": "joinpoint", + "name": "joinpoint", + "extends": "" , + "children": [ + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "actionStatement", + "extends": "executableStatement" , + "tooltip": "Represents an action statement", + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isFirst" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isLast" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "arraySubscriptExpr", + "extends": "dataRef" , + "tooltip": "Represents an access to one (or several) elements of an array", + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "expr[]", + "name": "subscripts" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "dataRef", + "name": "var" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "String", + "name": "name" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "assignmentStatement", + "extends": "actionStatement" , + "tooltip": "Represents an assignment statement", + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "expr", + "name": "expr" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "dataRef", + "name": "variable" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isFirst" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isLast" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "attributeSpecifier", + "extends": "joinpoint" , + "children": [ + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "binaryOperator", + "extends": "expr" , + "tooltip": "Represents a binary operation", + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "[add| sub| mul| div| gt| ge| lt| le| eq| ne]", + "name": "kind" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "expr", + "name": "left" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "expr", + "name": "right" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Sets the left-hand side of the operation", + "children": [ + { + "type": "void", + "name": "setLeft" + }, + { + "type": "expr", + "name": "lhs", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Sets the right-hand side of the operation", + "children": [ + { + "type": "void", + "name": "setRight" + }, + { + "type": "expr", + "name": "rhs", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "compilerDirective", + "extends": "statement" , + "children": [ + { + "type": "attribute", + "tooltip": "Returns the directive's contents as a string", + "children": [ + { + "type": "String", + "name": "directiveString" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "nameValue[]", + "name": "pairs" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isFirst" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isLast" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "dataRef", + "extends": "designator" , + "tooltip": "Represents a data reference", + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "String", + "name": "name" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "designator", + "extends": "expr" , + "tooltip": "Represents a designator", + "children": [ + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "doConstruct", + "extends": "executableConstruct" , + "tooltip": "Represents a do loop", + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "execution", + "name": "body" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "loopControl", + "name": "control" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "[while| range| concurrent]", + "name": "kind" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the do statement, including its controls, but not the body", + "children": [ + { + "type": "doConstruct", + "name": "copyScope" + }] + }, + { + "type": "action", + "tooltip": "Returns true if the given do statement has the same loop control as this do statement", + "children": [ + { + "type": "boolean", + "name": "sameScope" + }, + { + "type": "doConstruct", + "name": "loop", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "elseBlock", + "extends": "joinpoint" , + "tooltip": "Represents the optional 'else' block of an if construct", + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "statementBlock", + "name": "body" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "elseIfBlock", + "extends": "joinpoint" , + "tooltip": "Represents the optional 'else if' blocks of an if construct", + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "statementBlock", + "name": "body" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "elseIfStatement", + "name": "header" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "elseIfStatement", + "extends": "joinpoint" , + "tooltip": "Represents the header of an 'else if' block", + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "expr", + "name": "condition" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "entityDecl", + "extends": "fortranDecl" , + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "String", + "name": "name" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "executableConstruct", + "extends": "joinpoint" , + "children": [ + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "executableStatement", + "extends": "statement" , + "tooltip": "Represents an executable statement", + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isFirst" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isLast" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "execution", + "extends": "statementBlock" , + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "executableStatement[]", + "name": "executableStmts" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "statement[]", + "name": "stmts" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "children": [ + { + "type": "void", + "name": "insertBegin" + }, + { + "type": "executableStatement", + "name": "stmt", + "defaultValue": "" + }] + }, + { + "type": "action", + "children": [ + { + "type": "void", + "name": "insertEnd" + }, + { + "type": "executableStatement", + "name": "stmt", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "expr", + "extends": "joinpoint" , + "tooltip": "Represents an expression", + "children": [ + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "exprInitialization", + "extends": "initialization" , + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "expr", + "name": "expr" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "file", + "defaultAttr": "name", + "extends": "joinpoint" , + "tooltip": "Represents a source file (e.g., .f90)", + "children": [ + { + "type": "attribute", + "tooltip": "the name of the folder", + "children": [ + { + "type": "String", + "name": "foldername" + }] + }, + { + "type": "attribute", + "tooltip": "the name of the file", + "children": [ + { + "type": "String", + "name": "name" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "fortranDecl", + "extends": "joinpoint" , + "children": [ + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "ifConstruct", + "extends": "executableConstruct" , + "tooltip": "Represents the root of an if construct", + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "elseBlock", + "name": "elseBlock" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "elseIfBlock[]", + "name": "elseIfBlocks" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "ifThenBlock", + "name": "ifThenBlock" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "ifStatement", + "extends": "actionStatement" , + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "expr", + "name": "condition" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "actionStatement", + "name": "statement" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isFirst" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isLast" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "ifThenBlock", + "extends": "joinpoint" , + "tooltip": "Represents the first block of an if construct", + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "statementBlock", + "name": "body" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "ifThenStatement", + "name": "header" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "ifThenStatement", + "extends": "joinpoint" , + "tooltip": "Represents the header of an 'if then' block", + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "expr", + "name": "condition" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "initialization", + "extends": "joinpoint" , + "children": [ + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "intLiteral", + "extends": "kindedLiteral" , + "children": [ + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "internalSubprogram", + "extends": "subprogram" , + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "String", + "name": "moduleName" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the subprogram's specification part", + "children": [ + { + "type": "specification", + "name": "specification" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "keywordAttributeSpecifier", + "extends": "attributeSpecifier" , + "children": [ + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "kindedLiteral", + "extends": "literal" , + "tooltip": "Represents a literal with a kind specifier", + "children": [ + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "literal", + "extends": "expr" , + "tooltip": "Represents a literal", + "children": [ + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "loopControl", + "extends": "joinpoint" , + "tooltip": "Represents the loop control structure, with specialized subclasses for different loop kinds", + "children": [ + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "mainProgram", + "extends": "programUnit" , + "children": [ + { + "type": "attribute", + "tooltip": "Returns the main program's specification part", + "children": [ + { + "type": "specification", + "name": "specification" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "nameValue", + "extends": "joinpoint" , + "tooltip": "Represents a name/value pair in a compiler directive", + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "String", + "name": "name" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "ompBlockConstruct", + "extends": "ompConstruct" , + "tooltip": "Represents an OpenMP block construct (such as parallel or task)", + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "ompClause[]", + "name": "clauses" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "children": [ + { + "type": "void", + "name": "setBody" + }, + { + "type": "execution", + "name": "body", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Sets the construct's clauses", + "children": [ + { + "type": "void", + "name": "setClauses" + }, + { + "type": "ompClause[]", + "name": "clauses", + "defaultValue": "" + }] + }, + { + "type": "action", + "children": [ + { + "type": "void", + "name": "setDirective" + }, + { + "type": "String", + "name": "directive", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "ompClause", + "extends": "joinpoint" , + "tooltip": "Represents an OpenMP clause", + "children": [ + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "ompConstruct", + "extends": "executableConstruct" , + "tooltip": "Represents a generic OpenMP construct", + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "ompClause[]", + "name": "clauses" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Sets the construct's clauses", + "children": [ + { + "type": "void", + "name": "setClauses" + }, + { + "type": "ompClause[]", + "name": "clauses", + "defaultValue": "" + }] + }, + { + "type": "action", + "children": [ + { + "type": "void", + "name": "setDirective" + }, + { + "type": "String", + "name": "directive", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "ompDataSharingClause", + "extends": "ompClause" , + "tooltip": "Represents an OpenMP datasharing clause (public, private, ...)", + "children": [ + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "ompLoopConstruct", + "extends": "ompConstruct" , + "tooltip": "Represents an OpenMP loop construct (such as do or do parallel)", + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "ompClause[]", + "name": "clauses" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "children": [ + { + "type": "void", + "name": "setLoop" + }, + { + "type": "doConstruct", + "name": "loop", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Sets the construct's clauses", + "children": [ + { + "type": "void", + "name": "setClauses" + }, + { + "type": "ompClause[]", + "name": "clauses", + "defaultValue": "" + }] + }, + { + "type": "action", + "children": [ + { + "type": "void", + "name": "setDirective" + }, + { + "type": "String", + "name": "directive", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "ompOrderedClause", + "extends": "ompClause" , + "children": [ + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "ompReductionClause", + "extends": "ompClause" , + "children": [ + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "parameterKeyword", + "extends": "keywordAttributeSpecifier" , + "children": [ + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "program", + "extends": "joinpoint" , + "tooltip": "Represents the complete program and is the top-most join point in the hierarchy", + "children": [ + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "programUnit", + "extends": "joinpoint" , + "children": [ + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "rangeLoopControl", + "extends": "loopControl" , + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "expr", + "name": "lower" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "expr", + "name": "step" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "expr", + "name": "upper" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "dataRef", + "name": "var" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "children": [ + { + "type": "void", + "name": "setStep" + }, + { + "type": "expr", + "name": "step", + "defaultValue": "" + }] + }, + { + "type": "action", + "children": [ + { + "type": "void", + "name": "setUpper" + }, + { + "type": "expr", + "name": "upper", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "realLiteral", + "extends": "kindedLiteral" , + "children": [ + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "specification", + "extends": "statementBlock" , + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "specificationStatement[]", + "name": "specificationStmts" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "statement[]", + "name": "stmts" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Adds a UseStmt to a specification part. The statement is inserted at the beginning.", + "children": [ + { + "type": "void", + "name": "addUseStmt" + }, + { + "type": "useStatement", + "name": "stmt", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "specificationStatement", + "extends": "statement" , + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isFirst" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isLast" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "statement", + "extends": "joinpoint" , + "tooltip": "Represents a Fortran statement", + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isFirst" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isLast" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "statementBlock", + "extends": "joinpoint" , + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "statement[]", + "name": "stmts" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "stringLiteral", + "extends": "kindedLiteral" , + "children": [ + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "subprogram", + "extends": "joinpoint" , + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "String", + "name": "moduleName" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the subprogram's specification part", + "children": [ + { + "type": "specification", + "name": "specification" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "subroutine", + "extends": "internalSubprogram" , + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "String", + "name": "moduleName" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the subprogram's specification part", + "children": [ + { + "type": "specification", + "name": "specification" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "typeDeclarationStatement", + "extends": "specificationStatement" , + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "attributeSpecifier[]", + "name": "attrs" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "entityDecl[]", + "name": "decls" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isFirst" + }] }, { - "type": "action", - "tooltip": "Overload which accepts a list of join points", + "type": "attribute", "children": [ { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" + "type": "Boolean", + "name": "isLast" }] - "name": "clauses" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "children": [ - { - "type": "void", - "name": "setBody" - }, - { - "type": "execution", - "name": "body", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Sets the construct's clauses", - "children": [ - { - "type": "void", - "name": "setClauses" - }, - { - "type": "ompClause[]", - "name": "clauses", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "children": [ - { - "type": "void", - "name": "setDirective" - }, - { - "type": "String", - "name": "directive", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "ompClause", - "extends": "joinpoint", - "tooltip": "Represents an OpenMP clause", - "children": [ - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "ompConstruct", - "extends": "executableConstruct", - "tooltip": "Represents a generic OpenMP construct", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "ompClause[]", - "name": "clauses" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Sets the construct's clauses", - "children": [ - { - "type": "void", - "name": "setClauses" - }, - { - "type": "ompClause[]", - "name": "clauses", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "children": [ - { - "type": "void", - "name": "setDirective" - }, - { - "type": "String", - "name": "directive", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "ompDataSharingClause", - "extends": "ompClause", - "tooltip": "Represents an OpenMP datasharing clause (public, private, ...)", - "children": [ - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "ompLoopConstruct", - "extends": "ompConstruct", - "tooltip": "Represents an OpenMP loop construct (such as do or do parallel)", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "ompClause[]", - "name": "clauses" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "children": [ - { - "type": "void", - "name": "setLoop" - }, - { - "type": "doConstruct", - "name": "loop", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Sets the construct's clauses", - "children": [ - { - "type": "void", - "name": "setClauses" - }, - { - "type": "ompClause[]", - "name": "clauses", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "children": [ - { - "type": "void", - "name": "setDirective" - }, - { - "type": "String", - "name": "directive", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "ompOrderedClause", - "extends": "ompClause", - "children": [ - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "ompReductionClause", - "extends": "ompClause", - "children": [ - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "parameterKeyword", - "extends": "keywordAttributeSpecifier", - "children": [ - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "parameterKeyword", - "extends": "keywordAttributeSpecifier", - "children": [ - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "program", - "extends": "joinpoint", - "tooltip": "Represents the complete program and is the top-most join point in the hierarchy", - "children": [ - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "programUnit", - "extends": "joinpoint", - "children": [ - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "rangeLoopControl", - "extends": "loopControl", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "expr", - "name": "lower" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "expr", - "name": "step" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "expr", - "name": "upper" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "dataRef", - "name": "var" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "children": [ - { - "type": "void", - "name": "setStep" - }, - { - "type": "expr", - "name": "step", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "children": [ - { - "type": "void", - "name": "setUpper" - }, - { - "type": "expr", - "name": "upper", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "realLiteral", - "extends": "kindedLiteral", - "children": [ - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "specification", - "extends": "statementBlock", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "specificationStatement[]", - "name": "specificationStmts" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "statement[]", - "name": "stmts" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Adds a UseStmt to a specification part. The statement is inserted at the beginning.", - "children": [ - { - "type": "void", - "name": "addUseStmt" - }, - { - "type": "useStatement", - "name": "stmt", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "specificationStatement", - "extends": "statement", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isFirst" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isLast" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "specificationStatement", - "extends": "statement", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isFirst" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isLast" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "statement", - "extends": "joinpoint", - "tooltip": "Represents a Fortran statement", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isFirst" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isLast" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "statementBlock", - "extends": "joinpoint", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "statement[]", - "name": "stmts" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "stringLiteral", - "extends": "kindedLiteral", - "children": [ - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "subprogram", - "extends": "joinpoint", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "String", - "name": "moduleName" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the subprogram's specification part", - "children": [ - { - "type": "specification", - "name": "specification" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "subroutine", - "extends": "internalSubprogram", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "String", - "name": "moduleName" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the subprogram's specification part", - "children": [ - { - "type": "specification", - "name": "specification" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - }, - { - "type": "joinpoint", - "name": "useStatement", - "extends": "statement", - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "String", - "name": "moduleName" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isFirst" - } - ] - }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isLast" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - } - ] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - } - ] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - } - ] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - } - ] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - } - ] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - } - ] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - } - ] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - } - ] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - } - ] - } - ] - } - ] + }, + { "type": "attribute", "tooltip": "Returns an array with the children of the node", "children": [ @@ -15995,23 +13011,15 @@ }, { "type": "joinpoint", - "name": "typeDeclarationStatement", - "extends": "specificationStatement" , + "name": "useOnlyStatement", + "extends": "useStatement" , "children": [ { "type": "attribute", "children": [ { - "type": "attributeSpecifier[]", - "name": "attrs" - }] - }, - { - "type": "attribute", - "children": [ - { - "type": "entityDecl[]", - "name": "decls" + "type": "String", + "name": "moduleName" }] }, { @@ -16253,7 +13261,7 @@ }, { "type": "joinpoint", - "name": "useOnlyStatement", + "name": "useRenameStatement", "extends": "useStatement" , "children": [ { @@ -16503,8 +13511,8 @@ }, { "type": "joinpoint", - "name": "useRenameStatement", - "extends": "useStatement" , + "name": "useStatement", + "extends": "statement" , "children": [ { "type": "attribute", @@ -16531,4 +13539,224 @@ }] }, { + "type": "attribute", + "tooltip": "Returns an array with the children of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "children" + }] + }, + { + "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", + "children": [ + { + "type": "Boolean", + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" + }] + }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }] } \ No newline at end of file From ce791195256f53f86fd2ad9f4ca382a72f4df88e Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 4 Aug 2026 17:18:28 +0100 Subject: [PATCH 168/260] Fix main program factory --- .../src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java index 14c4a15f..78f303af 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java @@ -24,6 +24,7 @@ import pt.up.fe.specs.fortran.ast.nodes.program.Application; import pt.up.fe.specs.fortran.ast.nodes.program.Execution; import pt.up.fe.specs.fortran.ast.nodes.program.FortranFile; +import pt.up.fe.specs.fortran.ast.nodes.program.Specification; import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.EndProgramStmt; import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.ProgramStmt; import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; @@ -146,11 +147,12 @@ public MainProgram mainProgram(String programName, List execution) var programStmt = newNode(ProgramStmt.class, Collections.emptyList()); initComments(programStmt); + var specificationBlock = newNode(Specification.class, Collections.emptyList()); var executionBlock = execution(execution); var endProgramStmt = newNode(EndProgramStmt.class, Collections.emptyList()); initComments(endProgramStmt); - return new MainProgram(data, List.of(programStmt, executionBlock, endProgramStmt)); + return new MainProgram(data, List.of(programStmt, specificationBlock, executionBlock, endProgramStmt)); } public Execution execution(List statements) { From 4aa0d9f39971b2f1888f4ef15bf0e6f0e4c99b67 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 4 Aug 2026 17:40:00 +0100 Subject: [PATCH 169/260] Add module test --- .../parser/program/module.expected.f90 | 21 + .../fortran/parser/program/module.f90 | 21 + .../fortran/parser/program/module.json | 1142 +++++++++++++++++ .../fortran/parser/FortranParserTest.java | 12 + 4 files changed, 1196 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/program/module.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/program/module.f90 create mode 100644 FortranParser/resources-test/fortran/parser/program/module.json diff --git a/FortranParser/resources-test/fortran/parser/program/module.expected.f90 b/FortranParser/resources-test/fortran/parser/program/module.expected.f90 new file mode 100644 index 00000000..4a8b8a5e --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/program/module.expected.f90 @@ -0,0 +1,21 @@ +MODULE MATH_UTILS_MOD + IMPLICIT NONE + + PRIVATE + PUBLIC :: add, square + +CONTAINS + + PURE FUNCTION add(a, b) RESULT(res) + INTEGER, INTENT(IN) :: a, b + INTEGER :: res + res = a + b + END FUNCTION add + + PURE FUNCTION square(x) RESULT(res) + INTEGER, INTENT(IN) :: x + INTEGER :: res + res = x * x + END FUNCTION square + +END MODULE MATH_UTILS_MOD \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/program/module.f90 b/FortranParser/resources-test/fortran/parser/program/module.f90 new file mode 100644 index 00000000..77c37f13 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/program/module.f90 @@ -0,0 +1,21 @@ +module math_utils_mod + implicit none + + private + public :: add, square + +contains + + pure function add(a, b) result(res) + integer, intent(in) :: a, b + integer :: res + res = a + b + end function add + + pure function square(x) result(res) + integer, intent(in) :: x + integer :: res + res = x * x + end function square + +end module math_utils_mod \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/program/module.json b/FortranParser/resources-test/fortran/parser/program/module.json new file mode 100644 index 00000000..72a38bef --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/program/module.json @@ -0,0 +1,1142 @@ +{ + "fileExtension": "f90", + "nodes": [ + { + "id": "0x557589157f00-Program", + "ProgramUnit": [ + "0x55758919ad00-ProgramUnit" + ] + }, + { + "id": "0x55758919ad00-ProgramUnit", + "variantKey": "Module", + "Module": "0x55758919ba80-Module" + }, + { + "id": "0x55758919ba80-Module", + "Statement": "0x55758919bbb0-Statement", + "SpecificationPart": "0x55758919bb08-SpecificationPart", + "ModuleSubprogramPart": "0x55758919bac0-ModuleSubprogramPart", + "Statement": "0x55758919ba80-Statement" + }, + { + "id": "0x55758919bbb0-Statement", + "statement": "0x55758919bbc0-ModuleStmt", + "source": "module math_utils_mod" + }, + { + "id": "0x55758919bbc0-ModuleStmt", + "Name": "0x55758919bbc0-Name" + }, + { + "id": "0x55758919bbc0-Name", + "source": "math_utils_mod" + }, + { + "id": "0x55758919bb08-SpecificationPart", + "ImplicitPart": "0x55758919bb20-ImplicitPart", + "DeclarationConstruct": [ + "0x5575891564e0-DeclarationConstruct", + "0x557589165110-DeclarationConstruct" + ] + }, + { + "id": "0x55758919bb20-ImplicitPart", + "ImplicitPartStmt": [ + "0x55758919b9e0-ImplicitPartStmt" + ] + }, + { + "id": "0x55758919b9e0-ImplicitPartStmt", + "variantKey": "Statement", + "Statement": "0x55758919b9e0-Statement" + }, + { + "id": "0x55758919b9e0-Statement", + "statement": "0x55758918e0f0-ImplicitStmt", + "source": "implicit none" + }, + { + "id": "0x55758918e0f0-ImplicitStmt", + "variantKey": "list" + }, + { + "id": "0x5575891564e0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5575891564e0-SpecificationConstruct" + }, + { + "id": "0x5575891564e0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5575891564e0-Statement" + }, + { + "id": "0x5575891564e0-Statement", + "statement": "0x5575891564f0-OtherSpecificationStmt", + "source": "private" + }, + { + "id": "0x5575891564f0-OtherSpecificationStmt", + "variantKey": "AccessStmt", + "AccessStmt": "0x55758918e120-AccessStmt" + }, + { + "id": "0x55758918e120-AccessStmt", + "AccessSpec": "0x55758918e138-AccessSpec" + }, + { + "id": "0x55758918e138-AccessSpec", + "Kind": "0x55758918e138-Kind" + }, + { + "id": "0x55758918e138-Kind", + "disambiguation": "Fortran::parser::AccessSpec::Kind", + "value": "Private" + }, + { + "id": "0x557589165110-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x557589165110-SpecificationConstruct" + }, + { + "id": "0x557589165110-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x557589165110-Statement" + }, + { + "id": "0x557589165110-Statement", + "statement": "0x557589165120-OtherSpecificationStmt", + "source": "public :: add, square" + }, + { + "id": "0x557589165120-OtherSpecificationStmt", + "variantKey": "AccessStmt", + "AccessStmt": "0x5575891957d0-AccessStmt" + }, + { + "id": "0x5575891957d0-AccessStmt", + "AccessSpec": "0x5575891957e8-AccessSpec", + "AccessId": [ + "0x55758918e0e0-AccessId", + "0x55758918e090-AccessId" + ] + }, + { + "id": "0x5575891957e8-AccessSpec", + "Kind": "0x5575891957e8-Kind" + }, + { + "id": "0x5575891957e8-Kind", + "disambiguation": "Fortran::parser::AccessSpec::Kind", + "value": "Public" + }, + { + "id": "0x55758918e0e0-AccessId", + "GenericSpec": "0x55758918d510-GenericSpec" + }, + { + "id": "0x55758918d510-GenericSpec", + "variantKey": "Name", + "Name": "0x55758918d520-Name" + }, + { + "id": "0x55758918d520-Name", + "source": "add" + }, + { + "id": "0x55758918e090-AccessId", + "GenericSpec": "0x55758918d5d0-GenericSpec" + }, + { + "id": "0x55758918d5d0-GenericSpec", + "variantKey": "Name", + "Name": "0x55758918d5e0-Name" + }, + { + "id": "0x55758918d5e0-Name", + "source": "square" + }, + { + "id": "0x55758919bac0-ModuleSubprogramPart", + "Statement": "0x55758919bad8-Statement", + "ModuleSubprogram": [ + "0x557589195970-ModuleSubprogram", + "0x55758918cbd0-ModuleSubprogram" + ] + }, + { + "id": "0x55758919bad8-Statement", + "statement": "0x55758919bae8-ContainsStmt", + "source": "contains" + }, + { + "id": "0x55758919bae8-ContainsStmt" + }, + { + "id": "0x557589195970-ModuleSubprogram", + "variantKey": "FunctionSubprogram", + "FunctionSubprogram": "0x55758918f0e0-FunctionSubprogram" + }, + { + "id": "0x55758918f0e0-FunctionSubprogram", + "Statement": "0x55758918f228-Statement", + "SpecificationPart": "0x55758918f180-SpecificationPart", + "ExecutionPart": "0x55758918f168-ExecutionPart", + "Statement": "0x55758918f0e0-Statement" + }, + { + "id": "0x55758918f228-Statement", + "statement": "0x55758918f238-FunctionStmt", + "source": "pure function add(a, b) result(res)" + }, + { + "id": "0x55758918f238-FunctionStmt", + "prefix": [ + "0x557589164da0-PrefixSpec" + ], + "functionName": "0x55758918f298-Name", + "paramNames": [ + "0x557589195940-Name", + "0x557589195830-Name" + ], + "suffix": "0x55758918f238-Suffix" + }, + { + "id": "0x557589164da0-PrefixSpec", + "variantKey": "Pure", + "Pure": "0x557589164da0-Pure" + }, + { + "id": "0x557589164da0-Pure" + }, + { + "id": "0x55758918f298-Name", + "source": "add" + }, + { + "id": "0x557589195940-Name", + "source": "a" + }, + { + "id": "0x557589195830-Name", + "source": "b" + }, + { + "id": "0x55758918f238-Suffix", + "resultName": "0x55758918f258-Name" + }, + { + "id": "0x55758918f258-Name", + "source": "res" + }, + { + "id": "0x55758918f180-SpecificationPart", + "ImplicitPart": "0x55758918f198-ImplicitPart", + "DeclarationConstruct": [ + "0x5575891938e0-DeclarationConstruct", + "0x557589194190-DeclarationConstruct" + ] + }, + { + "id": "0x55758918f198-ImplicitPart" + }, + { + "id": "0x5575891938e0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5575891938e0-SpecificationConstruct" + }, + { + "id": "0x5575891938e0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5575891938e0-Statement" + }, + { + "id": "0x5575891938e0-Statement", + "statement": "0x557589192700-TypeDeclarationStmt", + "source": "integer, intent(in) :: a, b" + }, + { + "id": "0x557589192700-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x557589192730-DeclarationTypeSpec", + "AttrSpec": [ + "0x557589194880-AttrSpec" + ], + "EntityDecl": [ + "0x5575891942b0-EntityDecl", + "0x557589192090-EntityDecl" + ] + }, + { + "id": "0x557589192730-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x557589192730-IntrinsicTypeSpec" + }, + { + "id": "0x557589192730-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x557589192730-IntegerTypeSpec" + }, + { + "id": "0x557589192730-IntegerTypeSpec" + }, + { + "id": "0x557589194880-AttrSpec", + "variantKey": "IntentSpec", + "IntentSpec": "0x557589194880-IntentSpec" + }, + { + "id": "0x557589194880-IntentSpec", + "Intent": "0x557589194880-Intent", + "intent": "In" + }, + { + "id": "0x557589194880-Intent", + "disambiguation": "Fortran::parser::IntentSpec::Intent", + "value": "In" + }, + { + "id": "0x5575891942b0-EntityDecl", + "Name": "0x557589194368-Name" + }, + { + "id": "0x557589194368-Name", + "source": "a" + }, + { + "id": "0x557589192090-EntityDecl", + "Name": "0x557589192148-Name" + }, + { + "id": "0x557589192148-Name", + "source": "b" + }, + { + "id": "0x557589194190-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x557589194190-SpecificationConstruct" + }, + { + "id": "0x557589194190-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x557589194190-Statement" + }, + { + "id": "0x557589194190-Statement", + "statement": "0x557589192fe0-TypeDeclarationStmt", + "source": "integer :: res" + }, + { + "id": "0x557589192fe0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x557589193010-DeclarationTypeSpec", + "EntityDecl": [ + "0x55758910d1e0-EntityDecl" + ] + }, + { + "id": "0x557589193010-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x557589193010-IntrinsicTypeSpec" + }, + { + "id": "0x557589193010-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x557589193010-IntegerTypeSpec" + }, + { + "id": "0x557589193010-IntegerTypeSpec" + }, + { + "id": "0x55758910d1e0-EntityDecl", + "Name": "0x55758910d298-Name" + }, + { + "id": "0x55758910d298-Name", + "source": "res" + }, + { + "id": "0x55758918f168-ExecutionPart", + "ExecutionPartConstruct": [ + "0x557589183750-ExecutionPartConstruct" + ] + }, + { + "id": "0x55758918f168-ExecutionPartConstruct" + }, + { + "id": "0x557589183750-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x557589183750-ExecutableConstruct" + }, + { + "id": "0x557589183750-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x557589183750-Statement" + }, + { + "id": "0x557589183750-Statement", + "statement": "0x557589183760-ActionStmt", + "source": "res = a + b" + }, + { + "id": "0x557589183760-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x5575891835c0-AssignmentStmt" + }, + { + "id": "0x5575891835c0-AssignmentStmt", + "Variable": "0x5575891836a0-Variable", + "Expr": "0x5575891835d0-Expr" + }, + { + "id": "0x5575891836a0-Variable", + "variantKey": "Designator", + "Designator": "0x557589182c70-Designator" + }, + { + "id": "0x557589182c70-Designator", + "variantKey": "DataRef", + "DataRef": "0x557589182c80-DataRef" + }, + { + "id": "0x557589182c80-DataRef", + "variantKey": "Name", + "Name": "0x557589182c80-Name" + }, + { + "id": "0x557589182c80-Name", + "source": "res" + }, + { + "id": "0x5575891835d0-Expr", + "variantKey": "Add", + "Add": "0x5575891835f0-Add" + }, + { + "id": "0x5575891835f0-Add", + "left": "0x557589183470-Expr", + "right": "0x5575890f7790-Expr", + "op": "ADD" + }, + { + "id": "0x557589183470-Expr", + "variantKey": "Designator", + "Designator": "0x557589182e90-Designator" + }, + { + "id": "0x557589182e90-Designator", + "variantKey": "DataRef", + "DataRef": "0x557589182ea0-DataRef" + }, + { + "id": "0x557589182ea0-DataRef", + "variantKey": "Name", + "Name": "0x557589182ea0-Name" + }, + { + "id": "0x557589182ea0-Name", + "source": "a" + }, + { + "id": "0x5575890f7790-Expr", + "variantKey": "Designator", + "Designator": "0x557589165160-Designator" + }, + { + "id": "0x557589165160-Designator", + "variantKey": "DataRef", + "DataRef": "0x557589165170-DataRef" + }, + { + "id": "0x557589165170-DataRef", + "variantKey": "Name", + "Name": "0x557589165170-Name" + }, + { + "id": "0x557589165170-Name", + "source": "b" + }, + { + "id": "0x55758918f0e0-Statement", + "statement": "0x55758918f0f0-EndFunctionStmt", + "source": "end function add" + }, + { + "id": "0x55758918f0f0-EndFunctionStmt", + "Name": "0x55758918f0f0-Name" + }, + { + "id": "0x55758918f0f0-Name", + "source": "add" + }, + { + "id": "0x55758918cbd0-ModuleSubprogram", + "variantKey": "FunctionSubprogram", + "FunctionSubprogram": "0x557589193a40-FunctionSubprogram" + }, + { + "id": "0x557589193a40-FunctionSubprogram", + "Statement": "0x557589193b88-Statement", + "SpecificationPart": "0x557589193ae0-SpecificationPart", + "ExecutionPart": "0x557589193ac8-ExecutionPart", + "Statement": "0x557589193a40-Statement" + }, + { + "id": "0x557589193b88-Statement", + "statement": "0x557589193b98-FunctionStmt", + "source": "pure function square(x) result(res)" + }, + { + "id": "0x557589193b98-FunctionStmt", + "prefix": [ + "0x557589182a60-PrefixSpec" + ], + "functionName": "0x557589193bf8-Name", + "paramNames": [ + "0x5575891959c0-Name" + ], + "suffix": "0x557589193b98-Suffix" + }, + { + "id": "0x557589182a60-PrefixSpec", + "variantKey": "Pure", + "Pure": "0x557589182a60-Pure" + }, + { + "id": "0x557589182a60-Pure" + }, + { + "id": "0x557589193bf8-Name", + "source": "square" + }, + { + "id": "0x5575891959c0-Name", + "source": "x" + }, + { + "id": "0x557589193b98-Suffix", + "resultName": "0x557589193bb8-Name" + }, + { + "id": "0x557589193bb8-Name", + "source": "res" + }, + { + "id": "0x557589193ae0-SpecificationPart", + "ImplicitPart": "0x557589193af8-ImplicitPart", + "DeclarationConstruct": [ + "0x557589182f70-DeclarationConstruct", + "0x557589183190-DeclarationConstruct" + ] + }, + { + "id": "0x557589193af8-ImplicitPart" + }, + { + "id": "0x557589182f70-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x557589182f70-SpecificationConstruct" + }, + { + "id": "0x557589182f70-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x557589182f70-Statement" + }, + { + "id": "0x557589182f70-Statement", + "statement": "0x557589192f60-TypeDeclarationStmt", + "source": "integer, intent(in) :: x" + }, + { + "id": "0x557589192f60-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x557589192f90-DeclarationTypeSpec", + "AttrSpec": [ + "0x557589170c80-AttrSpec" + ], + "EntityDecl": [ + "0x557589184b50-EntityDecl" + ] + }, + { + "id": "0x557589192f90-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x557589192f90-IntrinsicTypeSpec" + }, + { + "id": "0x557589192f90-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x557589192f90-IntegerTypeSpec" + }, + { + "id": "0x557589192f90-IntegerTypeSpec" + }, + { + "id": "0x557589170c80-AttrSpec", + "variantKey": "IntentSpec", + "IntentSpec": "0x557589170c80-IntentSpec" + }, + { + "id": "0x557589170c80-IntentSpec", + "Intent": "0x557589170c80-Intent", + "intent": "In" + }, + { + "id": "0x557589170c80-Intent", + "disambiguation": "Fortran::parser::IntentSpec::Intent", + "value": "In" + }, + { + "id": "0x557589184b50-EntityDecl", + "Name": "0x557589184c08-Name" + }, + { + "id": "0x557589184c08-Name", + "source": "x" + }, + { + "id": "0x557589183190-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x557589183190-SpecificationConstruct" + }, + { + "id": "0x557589183190-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x557589183190-Statement" + }, + { + "id": "0x557589183190-Statement", + "statement": "0x557589192210-TypeDeclarationStmt", + "source": "integer :: res" + }, + { + "id": "0x557589192210-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x557589192240-DeclarationTypeSpec", + "EntityDecl": [ + "0x557589184000-EntityDecl" + ] + }, + { + "id": "0x557589192240-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x557589192240-IntrinsicTypeSpec" + }, + { + "id": "0x557589192240-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x557589192240-IntegerTypeSpec" + }, + { + "id": "0x557589192240-IntegerTypeSpec" + }, + { + "id": "0x557589184000-EntityDecl", + "Name": "0x5575891840b8-Name" + }, + { + "id": "0x5575891840b8-Name", + "source": "res" + }, + { + "id": "0x557589193ac8-ExecutionPart", + "ExecutionPartConstruct": [ + "0x557589192540-ExecutionPartConstruct" + ] + }, + { + "id": "0x557589193ac8-ExecutionPartConstruct" + }, + { + "id": "0x557589192540-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x557589192540-ExecutableConstruct" + }, + { + "id": "0x557589192540-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x557589192540-Statement" + }, + { + "id": "0x557589192540-Statement", + "statement": "0x557589192550-ActionStmt", + "source": "res = x * x" + }, + { + "id": "0x557589192550-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x557589192420-AssignmentStmt" + }, + { + "id": "0x557589192420-AssignmentStmt", + "Variable": "0x557589192500-Variable", + "Expr": "0x557589192430-Expr" + }, + { + "id": "0x557589192500-Variable", + "variantKey": "Designator", + "Designator": "0x557589184140-Designator" + }, + { + "id": "0x557589184140-Designator", + "variantKey": "DataRef", + "DataRef": "0x557589184150-DataRef" + }, + { + "id": "0x557589184150-DataRef", + "variantKey": "Name", + "Name": "0x557589184150-Name" + }, + { + "id": "0x557589184150-Name", + "source": "res" + }, + { + "id": "0x557589192430-Expr", + "variantKey": "Multiply", + "Multiply": "0x557589192450-Multiply" + }, + { + "id": "0x557589192450-Multiply", + "left": "0x557589184410-Expr", + "right": "0x557589184330-Expr", + "op": "MULTIPLY" + }, + { + "id": "0x557589184410-Expr", + "variantKey": "Designator", + "Designator": "0x557589185670-Designator" + }, + { + "id": "0x557589185670-Designator", + "variantKey": "DataRef", + "DataRef": "0x557589185680-DataRef" + }, + { + "id": "0x557589185680-DataRef", + "variantKey": "Name", + "Name": "0x557589185680-Name" + }, + { + "id": "0x557589185680-Name", + "source": "x" + }, + { + "id": "0x557589184330-Expr", + "variantKey": "Designator", + "Designator": "0x557589182990-Designator" + }, + { + "id": "0x557589182990-Designator", + "variantKey": "DataRef", + "DataRef": "0x5575891829a0-DataRef" + }, + { + "id": "0x5575891829a0-DataRef", + "variantKey": "Name", + "Name": "0x5575891829a0-Name" + }, + { + "id": "0x5575891829a0-Name", + "source": "x" + }, + { + "id": "0x557589193a40-Statement", + "statement": "0x557589193a50-EndFunctionStmt", + "source": "end function square" + }, + { + "id": "0x557589193a50-EndFunctionStmt", + "Name": "0x557589193a50-Name" + }, + { + "id": "0x557589193a50-Name", + "source": "square" + }, + { + "id": "0x55758919ba80-Statement", + "statement": "0x55758919ba90-EndModuleStmt", + "source": "end module math_utils_mod" + }, + { + "id": "0x55758919ba90-EndModuleStmt", + "Name": "0x55758919ba90-Name" + }, + { + "id": "0x55758919ba90-Name", + "source": "math_utils_mod" + } + ], + "comments": [], + "enums": { + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "Fortran::common::ImportKind": [ + "Default", + "Only", + "None", + "All" + ], + "Fortran::common::OmpDependenceKind": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::common::OmpMemoryOrderType": [ + "Acq_Rel", + "Acquire", + "Relaxed", + "Release", + "Seq_Cst" + ], + "Fortran::common::OpenACCDeviceType": [ + "Star", + "Default", + "Nvidia", + "Radeon", + "Host", + "Multicore", + "None" + ], + "Fortran::parser::AccDataModifier::Modifier": [ + "ReadOnly", + "Zero" + ], + "Fortran::parser::AccessSpec::Kind": [ + "Public", + "Private" + ], + "Fortran::parser::BindEntity::Kind": [ + "Object", + "Common" + ], + "Fortran::parser::CompilerDirective::VectorLength::Kind": [ + "Auto", + "Fixed", + "Scalable" + ], + "Fortran::parser::ConnectSpec::CharExpr::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Encoding", + "Form", + "Pad", + "Position", + "Round", + "Sign", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::DefinedOperator::IntrinsicOperator": [ + "Power", + "Multiply", + "Divide", + "Add", + "Subtract", + "Concat", + "LT", + "LE", + "EQ", + "NE", + "GE", + "GT", + "NOT", + "AND", + "OR", + "EQV", + "NEQV" + ], + "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec": [ + "External", + "Type" + ], + "Fortran::parser::InquireSpec::CharVar::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Direct", + "Encoding", + "Form", + "Formatted", + "Iomsg", + "Name", + "Pad", + "Position", + "Read", + "Readwrite", + "Round", + "Sequential", + "Sign", + "Stream", + "Status", + "Unformatted", + "Write", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::InquireSpec::IntVar::Kind": [ + "Iostat", + "Nextrec", + "Number", + "Pos", + "Recl", + "Size" + ], + "Fortran::parser::InquireSpec::LogVar::Kind": [ + "Exist", + "Named", + "Opened", + "Pending" + ], + "Fortran::parser::IntentSpec::Intent": [ + "In", + "Out", + "InOut" + ], + "Fortran::parser::IoControlSpec::CharExpr::Kind": [ + "Advance", + "Blank", + "Decimal", + "Delim", + "Pad", + "Round", + "Sign" + ], + "Fortran::parser::ReductionOperator::Operator": [ + "Plus", + "Multiply", + "Max", + "Min", + "Iand", + "Ior", + "Ieor", + "And", + "Or", + "Eqv", + "Neqv" + ], + "Fortran::parser::OmpAccessGroup::Value": [ + "Cgroup" + ], + "Fortran::parser::OmpAdjustArgsClause::OmpAdjustOp::Value": [ + "Nothing", + "Need_Device_Ptr" + ], + "Fortran::parser::OmpAlwaysModifier::Value": [ + "Always" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpAttachModifier::Value": [ + "Always", + "Never", + "Auto" + ], + "Fortran::parser::OmpAutomapModifier::Value": [ + "Automap" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpCloseModifier::Value": [ + "Close" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default", + "Present" + ], + "Fortran::parser::OmpDeleteModifier::Value": [ + "Delete" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpDirectiveSpecification::Flag": [ + "DeprecatedSyntax", + "CrossesLabelDo" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpInteropType::Value": [ + "Target", + "Targetsync" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "Storage", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpObject::Invalid::Kind": [ + "BlankCommonBlock" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpPresentModifier::Value": [ + "Present" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpRefModifier::Value": [ + "Ref_Ptee", + "Ref_Ptr", + "Ref_Ptr_Ptee" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpSelfModifier::Value": [ + "Self" + ], + "Fortran::parser::OmpSeverityClause::SevLevel": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpThreadsetClause::ThreadsetPolicy": [ + "Omp_Pool", + "Omp_Team" + ], + "Fortran::parser::OmpTraitSelectorName::Value": [ + "Arch", + "Atomic_Default_Mem_Order", + "Condition", + "Device_Num", + "Extension", + "Isa", + "Kind", + "Requires", + "Simd", + "Uid", + "Vendor" + ], + "Fortran::parser::OmpTraitSetSelectorName::Value": [ + "Construct", + "Device", + "Implementation", + "Target_Device", + "User" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpxHoldModifier::Value": [ + "Ompx_Hold" + ], + "Fortran::parser::ProcedureStmt::Kind": [ + "ModuleProcedure", + "Procedure" + ], + "Fortran::parser::SavedEntity::Kind": [ + "Entity", + "Common" + ], + "Fortran::parser::StopStmt::Kind": [ + "Stop", + "ErrorStop" + ], + "Fortran::parser::UseStmt::ModuleNature": [ + "Intrinsic", + "Non_Intrinsic" + ] + } +} diff --git a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java index 2b37d881..7cca00ec 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -663,6 +663,18 @@ void testFunctionNative() { } } + @Test + void testModule() { + testJson("program/module.json"); + } + + @Test + void testModuleNative() { + if (SpecsPlatforms.isLinux()) { + testNative("program/module.f90"); + } + } + @Test void testFujitsu0000_0000() { testJson("fujitsu/0000/0000_0000.json"); From 907f79fc92de1c6a03f5827e279769757fcaa2db Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 4 Aug 2026 17:50:32 +0100 Subject: [PATCH 170/260] Change main program name location to program statement --- .../fe/specs/fortran/ast/FortranNodeFactory.java | 8 +++++--- .../{subprogram => unit}/EndProgramStmt.java | 3 +-- .../ast/nodes/program/unit/MainProgram.java | 8 +------- .../{subprogram => unit}/ProgramStmt.java | 16 ++++++++++------ .../up/fe/specs/fortran/parser/FlangToClass.java | 4 +--- .../specs/fortran/parser/processors/Nodes.java | 2 ++ .../parser/processors/ProgramProcessors.java | 7 +------ .../parser/processors/StmtProcessors.java | 5 +++++ 8 files changed, 26 insertions(+), 27 deletions(-) rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/{subprogram => unit}/EndProgramStmt.java (86%) rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/{subprogram => unit}/ProgramStmt.java (56%) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java index 78f303af..cbe52a91 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java @@ -25,8 +25,8 @@ import pt.up.fe.specs.fortran.ast.nodes.program.Execution; import pt.up.fe.specs.fortran.ast.nodes.program.FortranFile; import pt.up.fe.specs.fortran.ast.nodes.program.Specification; -import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.EndProgramStmt; -import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.ProgramStmt; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.EndProgramStmt; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.ProgramStmt; import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; import pt.up.fe.specs.fortran.ast.nodes.program.unit.ProgramUnit; import pt.up.fe.specs.fortran.ast.nodes.stmt.LiteralExecutionStmt; @@ -143,12 +143,14 @@ private void initComments(Stmt stmt) { public MainProgram mainProgram(String programName, List execution) { DataStore data = newDataStore(MainProgram.class); - data.set(MainProgram.NAME, Optional.ofNullable(programName)); var programStmt = newNode(ProgramStmt.class, Collections.emptyList()); + programStmt.set(ProgramStmt.NAME, programName); initComments(programStmt); + var specificationBlock = newNode(Specification.class, Collections.emptyList()); var executionBlock = execution(execution); + var endProgramStmt = newNode(EndProgramStmt.class, Collections.emptyList()); initComments(endProgramStmt); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/EndProgramStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/EndProgramStmt.java similarity index 86% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/EndProgramStmt.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/EndProgramStmt.java index 075b99f1..924922c9 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/EndProgramStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/EndProgramStmt.java @@ -1,9 +1,8 @@ -package pt.up.fe.specs.fortran.ast.nodes.program.subprogram; +package pt.up.fe.specs.fortran.ast.nodes.program.unit; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; import java.util.Collection; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/MainProgram.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/MainProgram.java index 8ad2e0f8..7d85db21 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/MainProgram.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/MainProgram.java @@ -1,27 +1,21 @@ package pt.up.fe.specs.fortran.ast.nodes.program.unit; -import org.suikasoft.jOptions.Datakey.DataKey; -import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.program.Execution; import pt.up.fe.specs.fortran.ast.nodes.program.InternalSubprogramPart; import pt.up.fe.specs.fortran.ast.nodes.program.Specification; -import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.EndProgramStmt; -import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.ProgramStmt; import java.util.Collection; import java.util.Optional; public class MainProgram extends ProgramUnit { - public final static DataKey> NAME = KeyFactory.optional("name"); - public MainProgram(DataStore data, Collection children) { super(data, children); } public Optional getName() { - return get(NAME); + return getProgramStmt().map(ProgramStmt::getName); } public Optional getProgramStmt() { diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/ProgramStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/ProgramStmt.java similarity index 56% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/ProgramStmt.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/ProgramStmt.java index c7117051..ae1d0cc6 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/ProgramStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/ProgramStmt.java @@ -1,23 +1,27 @@ -package pt.up.fe.specs.fortran.ast.nodes.program.subprogram; +package pt.up.fe.specs.fortran.ast.nodes.program.unit; +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; import java.util.Collection; public class ProgramStmt extends Stmt { + public final static DataKey NAME = KeyFactory.string("name"); + public ProgramStmt(DataStore data, Collection children) { super(data, children); } + public String getName() { + return get(NAME); + } + @Override public String getStmtCode() { - var nameOpt = getAncestor(MainProgram.class).getName(); - var nameSuffix = nameOpt.map(name -> " " + name).orElse(""); - - return keyword(FortranKeyword.PROGRAM) + nameSuffix; + return keyword(FortranKeyword.PROGRAM) + " " + getName(); } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index af04ec7f..a3226bbb 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -25,9 +25,7 @@ import pt.up.fe.specs.fortran.ast.nodes.program.InternalSubprogramPart; import pt.up.fe.specs.fortran.ast.nodes.program.Specification; import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.*; -import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; -import pt.up.fe.specs.fortran.ast.nodes.program.unit.ProgramUnit; -import pt.up.fe.specs.fortran.ast.nodes.program.unit.SubprogramUnit; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.*; import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; import pt.up.fe.specs.fortran.ast.nodes.specification.LanguageBindingSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.NamedConstantDef; diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index dd7cb54e..25d95a10 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -20,7 +20,9 @@ import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpReductionClause; import pt.up.fe.specs.fortran.ast.nodes.program.*; import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.*; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.EndProgramStmt; import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.ProgramStmt; import pt.up.fe.specs.fortran.ast.nodes.program.unit.SubprogramUnit; import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; import pt.up.fe.specs.fortran.ast.nodes.specification.LanguageBindingSpec; diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java index 9a6f91fb..31e5e939 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java @@ -71,12 +71,7 @@ public void addSubprogramBody(FortranNode node) { public void mainProgram(MainProgram mainProgram) { var programStmt = getStmtChildOptional(mainProgram, FlangName.PROGRAM_STMT); - programStmt.ifPresent(stmt -> { - mainProgram.addChild(stmt); - - var name = attributes().getString(stmt, "source", FlangName.NAME); - mainProgram.setOptional(MainProgram.NAME, name); - }); + programStmt.ifPresent(mainProgram::addChild); addSubprogramBody(mainProgram); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 1ddc2a6b..3c904973 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -7,6 +7,8 @@ import pt.up.fe.specs.fortran.ast.nodes.program.Execution; import pt.up.fe.specs.fortran.ast.nodes.program.StmtBlock; import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.*; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.EndProgramStmt; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.ProgramStmt; import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; import pt.up.fe.specs.fortran.ast.nodes.specification.LanguageBindingSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.NamedConstantDef; @@ -614,6 +616,9 @@ public void commonBlockObject(CommonBlockObject object) { public void programStmt(ProgramStmt programStmt) { stmt(programStmt); + + var name = attributes().getString(programStmt, "source", FlangName.NAME); + programStmt.set(ProgramStmt.NAME, name); } public void endProgramStmt(EndProgramStmt endProgramStmt) { From cf5900323b33222a72743f4d9a97be4b26e32778 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 4 Aug 2026 19:22:54 +0100 Subject: [PATCH 171/260] Change subroutine and function names to start statement --- .../specs/fortran/ast/FortranNodeFactory.java | 2 +- .../ast/nodes/program/subprogram/Function.java | 5 +++++ .../nodes/program/subprogram/FunctionStmt.java | 7 ++++++- .../nodes/program/subprogram/Subprogram.java | 18 ++++++------------ .../nodes/program/subprogram/Subroutine.java | 6 ++++++ .../program/subprogram/SubroutineStmt.java | 10 +++++++++- .../ast/nodes/program/unit/MainProgram.java | 2 +- .../ast/nodes/program/unit/ProgramStmt.java | 8 ++++---- .../parser/processors/ProgramProcessors.java | 7 ------- .../parser/processors/StmtProcessors.java | 9 ++++++++- 10 files changed, 46 insertions(+), 28 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java index cbe52a91..dc8bf7e6 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java @@ -145,7 +145,7 @@ public MainProgram mainProgram(String programName, List execution) DataStore data = newDataStore(MainProgram.class); var programStmt = newNode(ProgramStmt.class, Collections.emptyList()); - programStmt.set(ProgramStmt.NAME, programName); + programStmt.set(ProgramStmt.PROGRAM_NAME, programName); initComments(programStmt); var specificationBlock = newNode(Specification.class, Collections.emptyList()); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Function.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Function.java index 770bf6fc..ebf4ad4c 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Function.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Function.java @@ -6,10 +6,15 @@ import java.util.Collection; public class Function extends InternalSubprogram { + public Function(DataStore data, Collection children) { super(data, children); } + public String getName() { + return getFunctionStmt().getFunctionName(); + } + public FunctionStmt getFunctionStmt() { return (FunctionStmt) getStartStmt(); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/FunctionStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/FunctionStmt.java index 6c0bf39b..242d133d 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/FunctionStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/FunctionStmt.java @@ -17,12 +17,17 @@ // TODO(Process-ing): Include support for `prefix` public class FunctionStmt extends Stmt { + public static final DataKey FUNCTION_NAME = KeyFactory.string("function_name"); public static final DataKey> RESULT_NAME = KeyFactory.optional("result_name"); public FunctionStmt(DataStore data, Collection children) { super(data, children); } + public String getFunctionName() { + return get(FUNCTION_NAME); + } + public List getParameters() { return getChildrenOf(NamedParameter.class); } @@ -37,7 +42,7 @@ public Optional getResultName() { @Override public String getStmtCode() { - var functionName = getAncestor(Function.class).getName(); + var functionName = getFunctionName(); var argCode = getParameters().stream() .map(NamedParameter::getCode) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subprogram.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subprogram.java index 1047566a..ecc7e138 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subprogram.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subprogram.java @@ -13,34 +13,28 @@ import java.util.Optional; public abstract class Subprogram extends FortranNode { - public final static DataKey NAME = KeyFactory.string("name"); - public Subprogram(DataStore data, Collection children) { super(data, children); } - public String getName() { - return get(NAME); - } - protected Stmt getStartStmt() { return getChild(Stmt.class, 0); } - protected Stmt getEndStmt() { - return getChild(Stmt.class, getNumChildren() - 1); - } - public Specification getSpecification() { return getChild(Specification.class, 1); } public Execution getExecution() { - return getChild(Execution.class); + return getChild(Execution.class, 2); } public Optional getInternalPart() { - return getChildOf(InternalSubprogramPart.class); + return getChildTry(InternalSubprogramPart.class, 3); + } + + protected Stmt getEndStmt() { + return getChild(Stmt.class, getNumChildren() - 1); } public String getCode() { diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subroutine.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subroutine.java index 4060ec58..5ca2f431 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subroutine.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subroutine.java @@ -1,5 +1,7 @@ package pt.up.fe.specs.fortran.ast.nodes.program.subprogram; +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; @@ -10,6 +12,10 @@ public Subroutine(DataStore data, Collection children) { super(data, children); } + public String getName() { + return getSubroutineStmt().getSubroutineName(); + } + public SubroutineStmt getSubroutineStmt() { return (SubroutineStmt) getStartStmt(); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/SubroutineStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/SubroutineStmt.java index 1f6c6022..0e0b25e2 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/SubroutineStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/SubroutineStmt.java @@ -1,5 +1,7 @@ package pt.up.fe.specs.fortran.ast.nodes.program.subprogram; +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.decl.Parameter; @@ -12,17 +14,23 @@ import static pt.up.fe.specs.fortran.ast.FortranKeyword.SUBROUTINE; public class SubroutineStmt extends Stmt { + public static final DataKey SUBROUTINE_NAME = KeyFactory.string("subroutine_name"); + public SubroutineStmt(DataStore data, Collection children) { super(data, children); } + public String getSubroutineName() { + return get(SUBROUTINE_NAME); + } + public List getParameters() { return getChildrenOf(Parameter.class); } @Override public String getStmtCode() { - var subroutineName = getAncestor(Subroutine.class).getName(); + var subroutineName = getSubroutineName(); var argCode = getParameters().stream() .map(Parameter::getCode) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/MainProgram.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/MainProgram.java index 7d85db21..6b92c4da 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/MainProgram.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/MainProgram.java @@ -15,7 +15,7 @@ public MainProgram(DataStore data, Collection children) { } public Optional getName() { - return getProgramStmt().map(ProgramStmt::getName); + return getProgramStmt().map(ProgramStmt::getProgramName); } public Optional getProgramStmt() { diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/ProgramStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/ProgramStmt.java index ae1d0cc6..bd5477c4 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/ProgramStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/ProgramStmt.java @@ -10,18 +10,18 @@ import java.util.Collection; public class ProgramStmt extends Stmt { - public final static DataKey NAME = KeyFactory.string("name"); + public final static DataKey PROGRAM_NAME = KeyFactory.string("program_name"); public ProgramStmt(DataStore data, Collection children) { super(data, children); } - public String getName() { - return get(NAME); + public String getProgramName() { + return get(PROGRAM_NAME); } @Override public String getStmtCode() { - return keyword(FortranKeyword.PROGRAM) + " " + getName(); + return keyword(FortranKeyword.PROGRAM) + " " + getProgramName(); } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java index 31e5e939..56d09458 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java @@ -122,9 +122,6 @@ public void subroutine(Subroutine subroutine) { var subroutineStmt = getStmtChild(subroutine, FlangName.SUBROUTINE_STMT); subroutine.addChild(subroutineStmt); - var name = attributes().getString(subroutineStmt, "source", FlangName.NAME); - subroutine.set(Subroutine.NAME, name); - addSubprogramBody(subroutine); var endSubroutineStmt = getStmtChild(subroutine, FlangName.END_SUBROUTINE_STMT); @@ -135,10 +132,6 @@ public void function(Function function) { var functionStmt = getStmtChild(function, FlangName.FUNCTION_STMT); function.addChild(functionStmt); - var functionNameId = attributes(functionStmt).getString("functionName"); - var functionName = attributes().get(functionNameId).getString("source"); - function.set(Function.NAME, functionName); - addSubprogramBody(function); var endFunctionStmt = getStmtChild(function, FlangName.END_FUNCTION_STMT); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 3c904973..d2640b1e 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -618,7 +618,7 @@ public void programStmt(ProgramStmt programStmt) { stmt(programStmt); var name = attributes().getString(programStmt, "source", FlangName.NAME); - programStmt.set(ProgramStmt.NAME, name); + programStmt.set(ProgramStmt.PROGRAM_NAME, name); } public void endProgramStmt(EndProgramStmt endProgramStmt) { @@ -628,6 +628,9 @@ public void endProgramStmt(EndProgramStmt endProgramStmt) { public void subroutineStmt(SubroutineStmt subroutineStmt) { stmt(subroutineStmt); + var name = attributes().getString(subroutineStmt, "source", FlangName.NAME); + subroutineStmt.set(SubroutineStmt.SUBROUTINE_NAME, name); + if (attributes(subroutineStmt).has(FlangName.DUMMY_ARG)) { var dummyArgs = getChildren(subroutineStmt, FlangName.DUMMY_ARG); subroutineStmt.addChildren(dummyArgs); @@ -685,6 +688,10 @@ public void namelistGroup(NamelistGroup namelistGroup) { public void functionStmt(FunctionStmt functionStmt) { stmt(functionStmt); + var functionNameId = attributes(functionStmt).getString("functionName"); + var functionName = attributes().get(functionNameId).getString("source"); + functionStmt.set(FunctionStmt.FUNCTION_NAME, functionName); + var parameterNames = attributes(functionStmt).getStringList("paramNames"); var parameters = parameterNames.stream() .map(this::toNamedParameter) From 14be3b52a57d2f42c0dc858a62e5c51f52519662 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 4 Aug 2026 19:39:15 +0100 Subject: [PATCH 172/260] Add module AST nodes --- .../fe/specs/fortran/ast/FortranKeyword.java | 1 + .../ast/nodes/program/FortranFile.java | 2 +- .../nodes/program/InternalSubprogramPart.java | 2 +- .../nodes/program/subprogram/Subprogram.java | 2 +- .../ast/nodes/program/unit/EndModuleStmt.java | 21 ++++++++ .../ast/nodes/program/unit/Module.java | 48 +++++++++++++++++++ .../ast/nodes/program/unit/ModuleStmt.java | 27 +++++++++++ .../program/unit/ModuleSubprogramPart.java | 34 +++++++++++++ 8 files changed, 134 insertions(+), 3 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/EndModuleStmt.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/Module.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/ModuleStmt.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/ModuleSubprogramPart.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java index 6bc39dc6..fea20086 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -13,6 +13,7 @@ public enum FortranKeyword { GOTO, EXTERNAL, STOP, + MODULE, // Execution statements PRINT, diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java index 9b5b0b2d..d075bd64 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/FortranFile.java @@ -69,7 +69,7 @@ public String getCode() { var programUnitsCode = getProgramUnits().stream() .map(programUnit -> programUnit.getCode() + ln()) - .collect(Collectors.joining()); + .collect(Collectors.joining(ln())); var code = programUnitsCode + commentSuffix; if (fixedForm) { diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/InternalSubprogramPart.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/InternalSubprogramPart.java index d0f23b77..b72804f2 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/InternalSubprogramPart.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/InternalSubprogramPart.java @@ -26,7 +26,7 @@ public List getSubprograms() { public String getCode() { var containsStmtCode = getContainsStmt().getCode(); var subprogramsCode = getSubprograms().stream() - .map(subprogram -> ln() + subprogram.getCode()) + .map(subprogram -> ln() + ln() + indent(subprogram.getCode())) .collect(Collectors.joining()); return containsStmtCode + subprogramsCode; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subprogram.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subprogram.java index ecc7e138..fdc5b62c 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subprogram.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/Subprogram.java @@ -47,7 +47,7 @@ public String getCode() { var endStmtCode = getEndStmt().getCode(); return startStmtCode + ln() - + indent(specificationCode + executionCode + internalPartCode) + ln() + + indent(specificationCode + executionCode) + internalPartCode + ln() + endStmtCode; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/EndModuleStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/EndModuleStmt.java new file mode 100644 index 00000000..db58884f --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/EndModuleStmt.java @@ -0,0 +1,21 @@ +package pt.up.fe.specs.fortran.ast.nodes.program.unit; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; + +import java.util.Collection; + +public class EndModuleStmt extends Stmt { + public EndModuleStmt(DataStore data, Collection children) { + super(data, children); + } + + @Override + public String getStmtCode() { + var moduleName = getAncestor(ModuleStmt.class).getModuleName(); + + return keyword(FortranKeyword.END) + " " + keyword(FortranKeyword.MODULE) + " " + moduleName; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/Module.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/Module.java new file mode 100644 index 00000000..452b10a2 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/Module.java @@ -0,0 +1,48 @@ +package pt.up.fe.specs.fortran.ast.nodes.program.unit; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.program.Specification; + +import java.util.Collection; +import java.util.Optional; + +public class Module extends ProgramUnit { + public Module(DataStore data, Collection children) { + super(data, children); + } + + public String getName() { + return getModuleStmt().getModuleName(); + } + + public ModuleStmt getModuleStmt() { + return getChild(ModuleStmt.class, 0); + } + + public Specification getSpecification() { + return getChild(Specification.class, 1); + } + + public Optional getSubprogramPart() { + return getChildTry(ModuleSubprogramPart.class, 2); + } + + public EndModuleStmt getEndModuleStmt() { + return getChild(EndModuleStmt.class, getNumChildren() - 1); + } + + @Override + public String getCode() { + var moduleStmtCode = getModuleStmt().getCode(); + var specificationCode = getSpecification().getCode(); + var subprogramPartCode = getSubprogramPart() + .map(part -> ln() + part.getCode()) + .orElse(""); + var endModuleStmtCode = getEndModuleStmt().getCode(); + + return moduleStmtCode + ln() + + indent(specificationCode) + subprogramPartCode + + ln() + endModuleStmtCode; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/ModuleStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/ModuleStmt.java new file mode 100644 index 00000000..2193f33a --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/ModuleStmt.java @@ -0,0 +1,27 @@ +package pt.up.fe.specs.fortran.ast.nodes.program.unit; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; + +import java.util.Collection; + +public class ModuleStmt extends Stmt { + public static final DataKey MODULE_NAME = KeyFactory.string("module_name"); + + public ModuleStmt(DataStore data, Collection children) { + super(data, children); + } + + public String getModuleName() { + return get(MODULE_NAME); + } + + @Override + public String getStmtCode() { + return keyword(FortranKeyword.MODULE) + " " + getModuleName(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/ModuleSubprogramPart.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/ModuleSubprogramPart.java new file mode 100644 index 00000000..536c64a0 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/ModuleSubprogramPart.java @@ -0,0 +1,34 @@ +package pt.up.fe.specs.fortran.ast.nodes.program.unit; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.Subprogram; +import pt.up.fe.specs.fortran.ast.nodes.stmt.ContainsStmt; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +public class ModuleSubprogramPart extends FortranNode { + public ModuleSubprogramPart(DataStore data, Collection children) { + super(data, children); + } + + public ContainsStmt getContainsStmt() { + return getChild(ContainsStmt.class, 0); + } + + public List getSubprograms() { + return getChildrenOf(Subprogram.class); + } + + @Override + public String getCode() { + var containsStmtCode = getContainsStmt().getCode(); + var subprogramsCode = getSubprograms().stream() + .map(subprogram -> ln() + ln() + indent(subprogram.getCode())) + .collect(Collectors.joining()); + + return containsStmtCode + subprogramsCode; + } +} From b69c84e756beadc89e07b03b460f266e7078c23b Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 4 Aug 2026 20:01:37 +0100 Subject: [PATCH 173/260] Add processors for module nodes --- .../up/fe/specs/fortran/parser/FlangName.java | 5 +++ .../fe/specs/fortran/parser/FlangToClass.java | 8 ++++- .../fortran/parser/processors/Nodes.java | 10 +++--- .../parser/processors/ProgramProcessors.java | 34 ++++++++++++++++--- .../parser/processors/StmtProcessors.java | 13 +++++++ 5 files changed, 61 insertions(+), 9 deletions(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 57cca636..c30beb10 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -15,6 +15,9 @@ public enum FlangName implements StringProvider { FUNCTION_SUBPROGRAM, SPECIFICATION_PART, INTERNAL_SUBPROGRAM_PART, + MODULE, + MODULE_SUBPROGRAM_PART, + MODULE_SUBPROGRAM, DECLARATION_CONSTRUCT, IMPLICIT_PART, EXECUTION_PART, @@ -45,6 +48,8 @@ public enum FlangName implements StringProvider { SUFFIX, LANGUAGE_BINDING_SPEC, END_FUNCTION_STMT, + MODULE_STMT, + END_MODULE_STMT, ACTION_STMT, PRINT_STMT, FORMAT_STMT, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index a3226bbb..df89cbab 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -26,6 +26,7 @@ import pt.up.fe.specs.fortran.ast.nodes.program.Specification; import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.*; import pt.up.fe.specs.fortran.ast.nodes.program.unit.*; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.Module; import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; import pt.up.fe.specs.fortran.ast.nodes.specification.LanguageBindingSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.NamedConstantDef; @@ -69,7 +70,8 @@ public class FlangToClass { NAME_TO_MAPPER.put(FlangName.PROGRAM_UNIT, ClassMapper.caseFor(ProgramUnit.class) .ignore(FlangName.MAIN_PROGRAM) .map(FlangName.SUBROUTINE_SUBPROGRAM, SubprogramUnit.class) - .map(FlangName.FUNCTION_SUBPROGRAM, SubprogramUnit.class)); + .map(FlangName.FUNCTION_SUBPROGRAM, SubprogramUnit.class) + .ignore(FlangName.MODULE)); NAME_TO_MAPPER.put(FlangName.MAIN_PROGRAM, ClassMapper.always(MainProgram.class)); NAME_TO_MAPPER.put(FlangName.PROGRAM_STMT, ClassMapper.always(ProgramStmt.class)); NAME_TO_MAPPER.put(FlangName.END_PROGRAM_STMT, ClassMapper.always(EndProgramStmt.class)); @@ -80,6 +82,10 @@ public class FlangToClass { NAME_TO_MAPPER.put(FlangName.FUNCTION_SUBPROGRAM, ClassMapper.always(Function.class)); NAME_TO_MAPPER.put(FlangName.SUBROUTINE_STMT, ClassMapper.always(SubroutineStmt.class)); NAME_TO_MAPPER.put(FlangName.END_SUBROUTINE_STMT, ClassMapper.always(EndSubroutineStmt.class)); + NAME_TO_MAPPER.put(FlangName.MODULE, ClassMapper.always(Module.class)); + NAME_TO_MAPPER.put(FlangName.MODULE_SUBPROGRAM_PART, ClassMapper.always(ModuleSubprogramPart.class)); + NAME_TO_MAPPER.put(FlangName.MODULE_STMT, ClassMapper.always(ModuleStmt.class)); + NAME_TO_MAPPER.put(FlangName.END_MODULE_STMT, ClassMapper.always(EndModuleStmt.class)); NAME_TO_MAPPER.put(FlangName.ALLOCATION, ClassMapper.always(Allocation.class)); /// DECLs diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 25d95a10..e9b8a585 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -20,10 +20,8 @@ import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpReductionClause; import pt.up.fe.specs.fortran.ast.nodes.program.*; import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.*; -import pt.up.fe.specs.fortran.ast.nodes.program.unit.EndProgramStmt; -import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; -import pt.up.fe.specs.fortran.ast.nodes.program.unit.ProgramStmt; -import pt.up.fe.specs.fortran.ast.nodes.program.unit.SubprogramUnit; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.*; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.Module; import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; import pt.up.fe.specs.fortran.ast.nodes.specification.LanguageBindingSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.NamedConstantDef; @@ -79,6 +77,8 @@ public Nodes(FortranJsonResult data) { processors.put(Subroutine.class, p::subroutine); processors.put(Function.class, p::function); processors.put(InternalSubprogramPart.class, p::internalSubprogramPart); + processors.put(Module.class, p::module); + processors.put(ModuleSubprogramPart.class, p::moduleSubprogramPart); var alloc = new AllocProcessors(data); processors.put(Allocation.class, alloc::allocation); @@ -155,6 +155,8 @@ public Nodes(FortranJsonResult data) { processors.put(FunctionStmt.class, s::functionStmt); processors.put(LanguageBindingSpec.class, s::languageBindingSpec); processors.put(EndFunctionStmt.class, s::endFunctionStmt); + processors.put(ModuleStmt.class, s::moduleStmt); + processors.put(EndModuleStmt.class, s::endModuleStmt); var e = new ExprProcessors(data); processors.put(StringLiteral.class, e::stringLiteral); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java index 56d09458..32974197 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java @@ -9,6 +9,8 @@ import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.Function; import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.Subroutine; import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.Module; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.ModuleSubprogramPart; import pt.up.fe.specs.fortran.ast.nodes.program.unit.SubprogramUnit; import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; @@ -109,12 +111,12 @@ public void execution(Execution execution) { } public void internalSubprogramPart(InternalSubprogramPart part) { - if (attributes(part).has(FlangName.CONTAINS_STMT.getStmtAttr())) { - part.addChild(getChild(part, FlangName.CONTAINS_STMT.getStmtAttr())); - } + var containsStmt = getStmtChild(part, FlangName.CONTAINS_STMT); + part.addChild(containsStmt); if (attributes(part).has(FlangName.INTERNAL_SUBPROGRAM)) { - part.addChildren(getChildren(part, FlangName.INTERNAL_SUBPROGRAM)); + var subprograms = getChildren(part, FlangName.INTERNAL_SUBPROGRAM); + part.addChildren(subprograms); } } @@ -137,4 +139,28 @@ public void function(Function function) { var endFunctionStmt = getStmtChild(function, FlangName.END_FUNCTION_STMT); function.addChild(endFunctionStmt); } + + public void module(Module module) { + var moduleStmt = getStmtChild(module, FlangName.MODULE_STMT); + module.addChild(moduleStmt); + + var specification = getChild(module, FlangName.SPECIFICATION_PART); + module.addChild(specification); + + var subprogramPart = getChildOptional(module, FlangName.MODULE_SUBPROGRAM_PART); + subprogramPart.ifPresent(module::addChild); + + var endModuleStmt = getStmtChild(module, FlangName.END_MODULE_STMT); + module.addChild(endModuleStmt); + } + + public void moduleSubprogramPart(ModuleSubprogramPart part) { + var containsStmt = getStmtChild(part, FlangName.CONTAINS_STMT); + part.addChild(containsStmt); + + if (attributes(part).has(FlangName.MODULE_SUBPROGRAM)) { + var subprograms = getChildren(part, FlangName.MODULE_SUBPROGRAM); + part.addChildren(subprograms); + } + } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index d2640b1e..55e0100a 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -7,7 +7,9 @@ import pt.up.fe.specs.fortran.ast.nodes.program.Execution; import pt.up.fe.specs.fortran.ast.nodes.program.StmtBlock; import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.*; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.EndModuleStmt; import pt.up.fe.specs.fortran.ast.nodes.program.unit.EndProgramStmt; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.ModuleStmt; import pt.up.fe.specs.fortran.ast.nodes.program.unit.ProgramStmt; import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; import pt.up.fe.specs.fortran.ast.nodes.specification.LanguageBindingSpec; @@ -729,4 +731,15 @@ public void languageBindingSpec(LanguageBindingSpec languageBindingSpec) { public void endFunctionStmt(EndFunctionStmt endFunctionStmt) { stmt(endFunctionStmt); } + + public void moduleStmt(ModuleStmt moduleStmt) { + stmt(moduleStmt); + + var moduleName = attributes().getString(moduleStmt, "source", FlangName.NAME); + moduleStmt.set(ModuleStmt.MODULE_NAME, moduleName); + } + + public void endModuleStmt(EndModuleStmt endModuleStmt) { + stmt(endModuleStmt); + } } From 6148a4803ced97b389183f1e3d67ce747460f2b6 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 4 Aug 2026 23:11:02 +0100 Subject: [PATCH 174/260] Create generic specifier AST nodes --- .../fe/specs/fortran/ast/FortranKeyword.java | 4 +++ .../nodes/specification/DefinedOperator.java | 14 ++++++++ .../specification/IntrinsicOperator.java | 21 ++++++++++++ .../nodes/specification/NamedOperator.java | 25 ++++++++++++++ .../specification/enums/GenericSpecKind.java | 11 +++++++ .../genericspec/GenericSpec.java | 12 +++++++ .../genericspec/NameGenericSpec.java | 25 ++++++++++++++ .../genericspec/OpGenericSpec.java | 23 +++++++++++++ .../genericspec/OtherGenericSpec.java | 33 +++++++++++++++++++ 9 files changed, 168 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/DefinedOperator.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/IntrinsicOperator.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/NamedOperator.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/enums/GenericSpecKind.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/genericspec/GenericSpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/genericspec/NameGenericSpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/genericspec/OpGenericSpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/genericspec/OtherGenericSpec.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java index fea20086..4efc24eb 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -72,6 +72,10 @@ public enum FortranKeyword { NAME, CDEFINED, RESULT, + OPERATOR, + ASSIGNMENT, + FORMATTED, + UNFORMATTED, OMP; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/DefinedOperator.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/DefinedOperator.java new file mode 100644 index 00000000..4711f5a0 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/DefinedOperator.java @@ -0,0 +1,14 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +// NOTE: It may make sense in the future to specialize this node for each usage, since custom operators and some +// intrinsic operators are invalid in some contexts +public abstract class DefinedOperator extends FortranNode { + public DefinedOperator(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/IntrinsicOperator.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/IntrinsicOperator.java new file mode 100644 index 00000000..e1a43ddb --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/IntrinsicOperator.java @@ -0,0 +1,21 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.expr.enums.BinaryOperatorKind; + +import java.util.Collection; + +public class IntrinsicOperator extends DefinedOperator { + public static final DataKey KIND = KeyFactory.enumeration("kind", BinaryOperatorKind.class); + + public IntrinsicOperator(DataStore data, Collection children) { + super(data, children); + } + + public BinaryOperatorKind getKind() { + return get(KIND); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/NamedOperator.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/NamedOperator.java new file mode 100644 index 00000000..66d83b41 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/NamedOperator.java @@ -0,0 +1,25 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class NamedOperator extends DefinedOperator { + public static final DataKey OPERATOR_NAME = KeyFactory.string("operator_name"); + + public NamedOperator(DataStore data, Collection children) { + super(data, children); + } + + public String getOperatorName() { + return get(OPERATOR_NAME); + } + + @Override + public String getCode() { + return getOperatorName(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/enums/GenericSpecKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/enums/GenericSpecKind.java new file mode 100644 index 00000000..8c871125 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/enums/GenericSpecKind.java @@ -0,0 +1,11 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.enums; + +import pt.up.fe.specs.util.SpecsStrings; + +public enum GenericSpecKind { + ASSIGNMENT, + READ_FORMATTED, + READ_UNFORMATTED, + WRITE_FORMATTED, + WRITE_UNFORMATTED; +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/genericspec/GenericSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/genericspec/GenericSpec.java new file mode 100644 index 00000000..5117017b --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/genericspec/GenericSpec.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.genericspec; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class GenericSpec extends FortranNode { + public GenericSpec(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/genericspec/NameGenericSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/genericspec/NameGenericSpec.java new file mode 100644 index 00000000..18520468 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/genericspec/NameGenericSpec.java @@ -0,0 +1,25 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.genericspec; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class NameGenericSpec extends GenericSpec { + public static final DataKey NAME = KeyFactory.string("name"); + + public NameGenericSpec(DataStore data, Collection children) { + super(data, children); + } + + public String getName() { + return get(NAME); + } + + @Override + public String getCode() { + return getName(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/genericspec/OpGenericSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/genericspec/OpGenericSpec.java new file mode 100644 index 00000000..b618c812 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/genericspec/OpGenericSpec.java @@ -0,0 +1,23 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.genericspec; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.specification.DefinedOperator; + +import java.util.Collection; + +public class OpGenericSpec extends GenericSpec { + public OpGenericSpec(DataStore data, Collection children) { + super(data, children); + } + + public DefinedOperator getOperator() { + return getChild(DefinedOperator.class, 0); + } + + @Override + public String getCode() { + return keyword(FortranKeyword.OPERATOR) + "(" + getOperator().getCode() + ")"; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/genericspec/OtherGenericSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/genericspec/OtherGenericSpec.java new file mode 100644 index 00000000..dfb44776 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/genericspec/OtherGenericSpec.java @@ -0,0 +1,33 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.genericspec; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.specification.enums.GenericSpecKind; + +import java.util.Collection; + +public class OtherGenericSpec extends GenericSpec { + public static final DataKey KIND = KeyFactory.enumeration("kind", GenericSpecKind.class); + + public OtherGenericSpec(DataStore data, Collection children) { + super(data, children); + } + + public GenericSpecKind getKind() { + return get(KIND); + } + + @Override + public String getCode() { + return switch (getKind()) { + case ASSIGNMENT -> keyword(FortranKeyword.ASSIGNMENT) + "(=)"; + case READ_FORMATTED -> keyword(FortranKeyword.READ) + "(" + keyword(FortranKeyword.FORMATTED) + ")"; + case READ_UNFORMATTED -> keyword(FortranKeyword.READ) + "(" + keyword(FortranKeyword.UNFORMATTED) + ")"; + case WRITE_FORMATTED -> keyword(FortranKeyword.WRITE) + "(" + keyword(FortranKeyword.FORMATTED) + ")"; + case WRITE_UNFORMATTED -> keyword(FortranKeyword.WRITE) + "(" + keyword(FortranKeyword.UNFORMATTED) + ")"; + }; + } +} From a2abfa77c26a620888ebf6ccf3c3e6ca3ab5945a Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 4 Aug 2026 23:20:44 +0100 Subject: [PATCH 175/260] Create access statement AST nodes --- .../nodes/specification/enums/AccessKind.java | 6 +++ .../fortran/ast/nodes/stmt/AccessStmt.java | 44 +++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/enums/AccessKind.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AccessStmt.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/enums/AccessKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/enums/AccessKind.java new file mode 100644 index 00000000..8c404169 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/enums/AccessKind.java @@ -0,0 +1,6 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.enums; + +public enum AccessKind { + PUBLIC, + PRIVATE; +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AccessStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AccessStmt.java new file mode 100644 index 00000000..b7424401 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AccessStmt.java @@ -0,0 +1,44 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.specification.enums.AccessKind; +import pt.up.fe.specs.fortran.ast.nodes.specification.genericspec.GenericSpec; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +public class AccessStmt extends SpecificationStmt { + public static final DataKey ACCESS_KIND = KeyFactory.enumeration("access_kind", AccessKind.class); + + public AccessStmt(DataStore data, Collection children) { + super(data, children); + } + + public AccessKind getAccessKind() { + return get(ACCESS_KIND); + } + + public List getIds() { + return getChildren(GenericSpec.class); + } + + @Override + public String getStmtCode() { + var accessKindCode = encase(getAccessKind().name()); + + var ids = getIds(); + if (ids.isEmpty()) { + return accessKindCode; + } + + var idsCode = ids.stream() + .map(GenericSpec::getCode) + .collect(Collectors.joining(", ")); + + return accessKindCode + " :: " + idsCode; + } +} From 32a42d0f760cb32d2581b837825fb1a27772e47e Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 5 Aug 2026 00:17:16 +0100 Subject: [PATCH 176/260] Add processors for generic specifiers and access statement --- .../specification/IntrinsicOperator.java | 11 +++-- .../up/fe/specs/fortran/parser/FlangName.java | 11 +++++ .../fe/specs/fortran/parser/FlangToClass.java | 19 +++++++-- .../parser/processors/DeclProcessors.java | 42 +++++++++++++++++++ .../fortran/parser/processors/Nodes.java | 13 ++++-- .../parser/processors/StmtProcessors.java | 14 +++++++ 6 files changed, 101 insertions(+), 9 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/IntrinsicOperator.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/IntrinsicOperator.java index e1a43ddb..358b14e4 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/IntrinsicOperator.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/IntrinsicOperator.java @@ -9,13 +9,18 @@ import java.util.Collection; public class IntrinsicOperator extends DefinedOperator { - public static final DataKey KIND = KeyFactory.enumeration("kind", BinaryOperatorKind.class); + public static final DataKey OPERATOR_KIND = KeyFactory.enumeration("kind", BinaryOperatorKind.class); public IntrinsicOperator(DataStore data, Collection children) { super(data, children); } - public BinaryOperatorKind getKind() { - return get(KIND); + public BinaryOperatorKind getOperatorKind() { + return get(OPERATOR_KIND); + } + + @Override + public String getCode() { + return getOperatorKind().getString(); } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index c30beb10..6d71b816 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -36,7 +36,15 @@ public enum FlangName implements StringProvider { DATA_STMT_CONSTANT, TYPE_PARAM_VALUE, DEFERRED, + DEFINED_OPERATOR, + DEFINED_OP_NAME, + INTRINSIC_OPERATOR, GENERIC_SPEC, + ASSIGNMENT, + READ_FORMATTED, + READ_UNFORMATTED, + WRITE_FORMATTED, + WRITE_UNFORMATTED, /// STMTs STATEMENT, @@ -105,6 +113,9 @@ public enum FlangName implements StringProvider { RANGE, DEFAULT, END_SELECT_STMT, + ACCESS_STMT, + ACCESS_SPEC, + ACCESS_ID, // Variables VARIABLE, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index df89cbab..3328a879 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -27,9 +27,11 @@ import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.*; import pt.up.fe.specs.fortran.ast.nodes.program.unit.*; import pt.up.fe.specs.fortran.ast.nodes.program.unit.Module; -import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; -import pt.up.fe.specs.fortran.ast.nodes.specification.LanguageBindingSpec; -import pt.up.fe.specs.fortran.ast.nodes.specification.NamedConstantDef; +import pt.up.fe.specs.fortran.ast.nodes.specification.*; +import pt.up.fe.specs.fortran.ast.nodes.specification.genericspec.GenericSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.genericspec.NameGenericSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.genericspec.OpGenericSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.genericspec.OtherGenericSpec; import pt.up.fe.specs.fortran.ast.nodes.stmt.*; import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmtSet; @@ -98,6 +100,16 @@ public class FlangToClass { .map(FlangName.EXPR, ExprTypeParamValue.class) .map(FlangName.STAR, StarTypeParamValue.class) .map(FlangName.DEFERRED, DeferredTypeParamValue.class)); + NAME_TO_MAPPER.put(FlangName.DEFINED_OP_NAME, ClassMapper.always(NamedOperator.class)); + NAME_TO_MAPPER.put(FlangName.INTRINSIC_OPERATOR, ClassMapper.always(IntrinsicOperator.class)); + NAME_TO_MAPPER.put(FlangName.GENERIC_SPEC, ClassMapper.caseFor(GenericSpec.class) + .map(FlangName.NAME, NameGenericSpec.class) + .map(FlangName.DEFINED_OPERATOR, OpGenericSpec.class) + .map(FlangName.ASSIGNMENT, OtherGenericSpec.class) + .map(FlangName.READ_FORMATTED, OtherGenericSpec.class) + .map(FlangName.READ_UNFORMATTED, OtherGenericSpec.class) + .map(FlangName.WRITE_FORMATTED, OtherGenericSpec.class) + .map(FlangName.WRITE_UNFORMATTED, OtherGenericSpec.class)); /// STMTs NAME_TO_MAPPER.put(FlangName.PRINT_STMT, ClassMapper.always(PrintStmt.class)); @@ -155,6 +167,7 @@ public class FlangToClass { NAME_TO_MAPPER.put(FlangName.LANGUAGE_BINDING_SPEC, ClassMapper.always(LanguageBindingSpec.class)); NAME_TO_MAPPER.put(FlangName.END_FUNCTION_STMT, ClassMapper.always(EndFunctionStmt.class)); NAME_TO_MAPPER.put(FlangName.EXTERNAL_STMT, ClassMapper.always(ExternalStmt.class)); + NAME_TO_MAPPER.put(FlangName.ACCESS_STMT, ClassMapper.always(AccessStmt.class)); /// Variables //NAME_TO_CLASS.put(FlangName.DATA_REF, DataRef.class); // TODO(Process-ing): Improve this diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java index b0ffb375..94acec32 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java @@ -4,6 +4,13 @@ import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.DeferredTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.ExprTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.StarTypeParamValue; +import pt.up.fe.specs.fortran.ast.nodes.expr.enums.BinaryOperatorKind; +import pt.up.fe.specs.fortran.ast.nodes.specification.IntrinsicOperator; +import pt.up.fe.specs.fortran.ast.nodes.specification.NamedOperator; +import pt.up.fe.specs.fortran.ast.nodes.specification.enums.GenericSpecKind; +import pt.up.fe.specs.fortran.ast.nodes.specification.genericspec.NameGenericSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.genericspec.OpGenericSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.genericspec.OtherGenericSpec; import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; @@ -83,4 +90,39 @@ public void exprTypeParamValue(ExprTypeParamValue value) { public void starTypeParamValue(StarTypeParamValue ignoredValue) {} public void deferredTypeParamValue(DeferredTypeParamValue ignoredValue) {} + + public void namedOperator(NamedOperator namedOperator) { + var operatorName = attributes().getString(namedOperator, "source", FlangName.NAME); + namedOperator.set(NamedOperator.OPERATOR_NAME, operatorName); + } + + public void intrinsicOperator(IntrinsicOperator intrinsicOperator) { + var operatorKindSource = attributes(intrinsicOperator).getString("value"); + var operatorKind = BinaryOperatorKind.valueOf(operatorKindSource.toUpperCase()); + intrinsicOperator.set(IntrinsicOperator.OPERATOR_KIND, operatorKind); + } + + public void nameGenericSpec(NameGenericSpec spec) { + var name = attributes().getString(spec, "source", FlangName.NAME); + spec.set(NameGenericSpec.NAME, name); + } + + public void opGenericSpec(OpGenericSpec spec) { + var definedOperator = getChild(spec, FlangName.DEFINED_OPERATOR); + spec.addChild(definedOperator); + } + + public void otherGenericSpec(OtherGenericSpec spec) { + var variant = attributes(spec).getVariantName(); + + var kind = switch (variant) { + case ASSIGNMENT -> GenericSpecKind.ASSIGNMENT; + case READ_FORMATTED -> GenericSpecKind.READ_FORMATTED; + case READ_UNFORMATTED -> GenericSpecKind.READ_UNFORMATTED; + case WRITE_FORMATTED -> GenericSpecKind.WRITE_FORMATTED; + case WRITE_UNFORMATTED -> GenericSpecKind.WRITE_UNFORMATTED; + default -> throw new RuntimeException("Unknown generic spec kind: " + variant); + }; + spec.set(OtherGenericSpec.KIND, kind); + } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index e9b8a585..8168a6b1 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -22,9 +22,10 @@ import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.*; import pt.up.fe.specs.fortran.ast.nodes.program.unit.*; import pt.up.fe.specs.fortran.ast.nodes.program.unit.Module; -import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; -import pt.up.fe.specs.fortran.ast.nodes.specification.LanguageBindingSpec; -import pt.up.fe.specs.fortran.ast.nodes.specification.NamedConstantDef; +import pt.up.fe.specs.fortran.ast.nodes.specification.*; +import pt.up.fe.specs.fortran.ast.nodes.specification.genericspec.NameGenericSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.genericspec.OpGenericSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.genericspec.OtherGenericSpec; import pt.up.fe.specs.fortran.ast.nodes.stmt.*; import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmtSet; @@ -93,6 +94,11 @@ public Nodes(FortranJsonResult data) { processors.put(ExprTypeParamValue.class, d::exprTypeParamValue); processors.put(StarTypeParamValue.class, d::starTypeParamValue); processors.put(DeferredTypeParamValue.class, d::deferredTypeParamValue); + processors.put(NamedOperator.class, d::namedOperator); + processors.put(IntrinsicOperator.class, d::intrinsicOperator); + processors.put(NameGenericSpec.class, d::nameGenericSpec); + processors.put(OpGenericSpec.class, d::opGenericSpec); + processors.put(OtherGenericSpec.class, d::otherGenericSpec); var v = new VariableProcessor(data); processors.put(DataRef.class, v::dataRef); @@ -157,6 +163,7 @@ public Nodes(FortranJsonResult data) { processors.put(EndFunctionStmt.class, s::endFunctionStmt); processors.put(ModuleStmt.class, s::moduleStmt); processors.put(EndModuleStmt.class, s::endModuleStmt); + processors.put(AccessStmt.class, s::accessStmt); var e = new ExprProcessors(data); processors.put(StringLiteral.class, e::stringLiteral); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 55e0100a..7ae21adb 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -14,6 +14,7 @@ import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; import pt.up.fe.specs.fortran.ast.nodes.specification.LanguageBindingSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.NamedConstantDef; +import pt.up.fe.specs.fortran.ast.nodes.specification.enums.AccessKind; import pt.up.fe.specs.fortran.ast.nodes.stmt.*; import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmtObject; @@ -742,4 +743,17 @@ public void moduleStmt(ModuleStmt moduleStmt) { public void endModuleStmt(EndModuleStmt endModuleStmt) { stmt(endModuleStmt); } + + public void accessStmt(AccessStmt accessStmt) { + stmt(accessStmt); + + var accessKindSrc = attributes().getString(accessStmt, "value", FlangName.ACCESS_SPEC, FlangName.KIND); + var accessKind = AccessKind.valueOf(accessKindSrc.toUpperCase()); + accessStmt.set(AccessStmt.ACCESS_KIND, accessKind); + + if (attributes(accessStmt).has(FlangName.ACCESS_ID)) { + var accessIds = getChildren(accessStmt, FlangName.ACCESS_ID); + accessStmt.addChildren(accessIds); + } + } } From 440ae80200fe4574a469a6adc8e64be50394eb1a Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 5 Aug 2026 00:18:40 +0100 Subject: [PATCH 177/260] Fix end module statement generator --- .../fe/specs/fortran/ast/nodes/program/unit/EndModuleStmt.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/EndModuleStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/EndModuleStmt.java index db58884f..09d80dce 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/EndModuleStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/EndModuleStmt.java @@ -14,7 +14,7 @@ public EndModuleStmt(DataStore data, Collection children) @Override public String getStmtCode() { - var moduleName = getAncestor(ModuleStmt.class).getModuleName(); + var moduleName = getAncestor(Module.class).getName(); return keyword(FortranKeyword.END) + " " + keyword(FortranKeyword.MODULE) + " " + moduleName; } From 9fa07f6a6ce83a8984c1483439589844e36b4c76 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 5 Aug 2026 00:19:12 +0100 Subject: [PATCH 178/260] Delete empty file --- .../src/pt/up/fe/specs/fortran/ast/nodes/stmt/WriteStmt.java | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/WriteStmt.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/WriteStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/WriteStmt.java deleted file mode 100644 index e69de29b..00000000 From 3796e796621f2869fa6490cdb95c3cd832979a87 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 5 Aug 2026 00:20:06 +0100 Subject: [PATCH 179/260] Fix module name in module test --- .../resources-test/fortran/parser/program/module.expected.f90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/program/module.expected.f90 b/FortranParser/resources-test/fortran/parser/program/module.expected.f90 index 4a8b8a5e..493ad041 100644 --- a/FortranParser/resources-test/fortran/parser/program/module.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/program/module.expected.f90 @@ -1,4 +1,4 @@ -MODULE MATH_UTILS_MOD +MODULE math_utils_mod IMPLICIT NONE PRIVATE @@ -18,4 +18,4 @@ PURE FUNCTION square(x) RESULT(res) res = x * x END FUNCTION square -END MODULE MATH_UTILS_MOD \ No newline at end of file +END MODULE math_utils_mod \ No newline at end of file From d8cf4fd19d1efc98623e8c6b8479fd773f4bdb5f Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 5 Aug 2026 12:00:50 +0100 Subject: [PATCH 180/260] Change subprogram part code generation --- .../fortran/ast/nodes/program/InternalSubprogramPart.java | 4 ++-- .../fortran/ast/nodes/program/unit/ModuleSubprogramPart.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/InternalSubprogramPart.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/InternalSubprogramPart.java index b72804f2..11250321 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/InternalSubprogramPart.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/InternalSubprogramPart.java @@ -26,8 +26,8 @@ public List getSubprograms() { public String getCode() { var containsStmtCode = getContainsStmt().getCode(); var subprogramsCode = getSubprograms().stream() - .map(subprogram -> ln() + ln() + indent(subprogram.getCode())) - .collect(Collectors.joining()); + .map(subprogram -> ln() + indent(subprogram.getCode())) + .collect(Collectors.joining(ln())); return containsStmtCode + subprogramsCode; } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/ModuleSubprogramPart.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/ModuleSubprogramPart.java index 536c64a0..0ac7371a 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/ModuleSubprogramPart.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/unit/ModuleSubprogramPart.java @@ -26,8 +26,8 @@ public List getSubprograms() { public String getCode() { var containsStmtCode = getContainsStmt().getCode(); var subprogramsCode = getSubprograms().stream() - .map(subprogram -> ln() + ln() + indent(subprogram.getCode())) - .collect(Collectors.joining()); + .map(subprogram -> ln() + indent(subprogram.getCode())) + .collect(Collectors.joining(ln())); return containsStmtCode + subprogramsCode; } From aac9a1054d87ba5691ea8a10cc8c21f14e4c221b Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 5 Aug 2026 22:26:27 +0100 Subject: [PATCH 181/260] Add another module test --- ...dule.expected.f90 => module1.expected.f90} | 0 .../program/{module.f90 => module1.f90} | 0 .../program/{module.json => module1.json} | 610 +++++++-------- .../parser/program/module2.expected.f90 | 15 + .../fortran/parser/program/module2.f90 | 15 + .../fortran/parser/program/module2.json | 740 ++++++++++++++++++ .../fortran/parser/FortranParserTest.java | 20 +- 7 files changed, 1091 insertions(+), 309 deletions(-) rename FortranParser/resources-test/fortran/parser/program/{module.expected.f90 => module1.expected.f90} (100%) rename FortranParser/resources-test/fortran/parser/program/{module.f90 => module1.f90} (100%) rename FortranParser/resources-test/fortran/parser/program/{module.json => module1.json} (50%) create mode 100644 FortranParser/resources-test/fortran/parser/program/module2.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/program/module2.f90 create mode 100644 FortranParser/resources-test/fortran/parser/program/module2.json diff --git a/FortranParser/resources-test/fortran/parser/program/module.expected.f90 b/FortranParser/resources-test/fortran/parser/program/module1.expected.f90 similarity index 100% rename from FortranParser/resources-test/fortran/parser/program/module.expected.f90 rename to FortranParser/resources-test/fortran/parser/program/module1.expected.f90 diff --git a/FortranParser/resources-test/fortran/parser/program/module.f90 b/FortranParser/resources-test/fortran/parser/program/module1.f90 similarity index 100% rename from FortranParser/resources-test/fortran/parser/program/module.f90 rename to FortranParser/resources-test/fortran/parser/program/module1.f90 diff --git a/FortranParser/resources-test/fortran/parser/program/module.json b/FortranParser/resources-test/fortran/parser/program/module1.json similarity index 50% rename from FortranParser/resources-test/fortran/parser/program/module.json rename to FortranParser/resources-test/fortran/parser/program/module1.json index 72a38bef..3f2b527a 100644 --- a/FortranParser/resources-test/fortran/parser/program/module.json +++ b/FortranParser/resources-test/fortran/parser/program/module1.json @@ -2,765 +2,765 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x557589157f00-Program", + "id": "0x5629fe3d9f00-Program", "ProgramUnit": [ - "0x55758919ad00-ProgramUnit" + "0x5629fe41cd00-ProgramUnit" ] }, { - "id": "0x55758919ad00-ProgramUnit", + "id": "0x5629fe41cd00-ProgramUnit", "variantKey": "Module", - "Module": "0x55758919ba80-Module" + "Module": "0x5629fe41da80-Module" }, { - "id": "0x55758919ba80-Module", - "Statement": "0x55758919bbb0-Statement", - "SpecificationPart": "0x55758919bb08-SpecificationPart", - "ModuleSubprogramPart": "0x55758919bac0-ModuleSubprogramPart", - "Statement": "0x55758919ba80-Statement" + "id": "0x5629fe41da80-Module", + "Statement": "0x5629fe41dbb0-Statement", + "SpecificationPart": "0x5629fe41db08-SpecificationPart", + "ModuleSubprogramPart": "0x5629fe41dac0-ModuleSubprogramPart", + "Statement": "0x5629fe41da80-Statement" }, { - "id": "0x55758919bbb0-Statement", - "statement": "0x55758919bbc0-ModuleStmt", + "id": "0x5629fe41dbb0-Statement", + "statement": "0x5629fe41dbc0-ModuleStmt", "source": "module math_utils_mod" }, { - "id": "0x55758919bbc0-ModuleStmt", - "Name": "0x55758919bbc0-Name" + "id": "0x5629fe41dbc0-ModuleStmt", + "Name": "0x5629fe41dbc0-Name" }, { - "id": "0x55758919bbc0-Name", + "id": "0x5629fe41dbc0-Name", "source": "math_utils_mod" }, { - "id": "0x55758919bb08-SpecificationPart", - "ImplicitPart": "0x55758919bb20-ImplicitPart", + "id": "0x5629fe41db08-SpecificationPart", + "ImplicitPart": "0x5629fe41db20-ImplicitPart", "DeclarationConstruct": [ - "0x5575891564e0-DeclarationConstruct", - "0x557589165110-DeclarationConstruct" + "0x5629fe3d84e0-DeclarationConstruct", + "0x5629fe3e7110-DeclarationConstruct" ] }, { - "id": "0x55758919bb20-ImplicitPart", + "id": "0x5629fe41db20-ImplicitPart", "ImplicitPartStmt": [ - "0x55758919b9e0-ImplicitPartStmt" + "0x5629fe41d9e0-ImplicitPartStmt" ] }, { - "id": "0x55758919b9e0-ImplicitPartStmt", + "id": "0x5629fe41d9e0-ImplicitPartStmt", "variantKey": "Statement", - "Statement": "0x55758919b9e0-Statement" + "Statement": "0x5629fe41d9e0-Statement" }, { - "id": "0x55758919b9e0-Statement", - "statement": "0x55758918e0f0-ImplicitStmt", + "id": "0x5629fe41d9e0-Statement", + "statement": "0x5629fe4100f0-ImplicitStmt", "source": "implicit none" }, { - "id": "0x55758918e0f0-ImplicitStmt", + "id": "0x5629fe4100f0-ImplicitStmt", "variantKey": "list" }, { - "id": "0x5575891564e0-DeclarationConstruct", + "id": "0x5629fe3d84e0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5575891564e0-SpecificationConstruct" + "SpecificationConstruct": "0x5629fe3d84e0-SpecificationConstruct" }, { - "id": "0x5575891564e0-SpecificationConstruct", + "id": "0x5629fe3d84e0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5575891564e0-Statement" + "Statement": "0x5629fe3d84e0-Statement" }, { - "id": "0x5575891564e0-Statement", - "statement": "0x5575891564f0-OtherSpecificationStmt", + "id": "0x5629fe3d84e0-Statement", + "statement": "0x5629fe3d84f0-OtherSpecificationStmt", "source": "private" }, { - "id": "0x5575891564f0-OtherSpecificationStmt", + "id": "0x5629fe3d84f0-OtherSpecificationStmt", "variantKey": "AccessStmt", - "AccessStmt": "0x55758918e120-AccessStmt" + "AccessStmt": "0x5629fe410120-AccessStmt" }, { - "id": "0x55758918e120-AccessStmt", - "AccessSpec": "0x55758918e138-AccessSpec" + "id": "0x5629fe410120-AccessStmt", + "AccessSpec": "0x5629fe410138-AccessSpec" }, { - "id": "0x55758918e138-AccessSpec", - "Kind": "0x55758918e138-Kind" + "id": "0x5629fe410138-AccessSpec", + "Kind": "0x5629fe410138-Kind" }, { - "id": "0x55758918e138-Kind", + "id": "0x5629fe410138-Kind", "disambiguation": "Fortran::parser::AccessSpec::Kind", "value": "Private" }, { - "id": "0x557589165110-DeclarationConstruct", + "id": "0x5629fe3e7110-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x557589165110-SpecificationConstruct" + "SpecificationConstruct": "0x5629fe3e7110-SpecificationConstruct" }, { - "id": "0x557589165110-SpecificationConstruct", + "id": "0x5629fe3e7110-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x557589165110-Statement" + "Statement": "0x5629fe3e7110-Statement" }, { - "id": "0x557589165110-Statement", - "statement": "0x557589165120-OtherSpecificationStmt", + "id": "0x5629fe3e7110-Statement", + "statement": "0x5629fe3e7120-OtherSpecificationStmt", "source": "public :: add, square" }, { - "id": "0x557589165120-OtherSpecificationStmt", + "id": "0x5629fe3e7120-OtherSpecificationStmt", "variantKey": "AccessStmt", - "AccessStmt": "0x5575891957d0-AccessStmt" + "AccessStmt": "0x5629fe4177d0-AccessStmt" }, { - "id": "0x5575891957d0-AccessStmt", - "AccessSpec": "0x5575891957e8-AccessSpec", + "id": "0x5629fe4177d0-AccessStmt", + "AccessSpec": "0x5629fe4177e8-AccessSpec", "AccessId": [ - "0x55758918e0e0-AccessId", - "0x55758918e090-AccessId" + "0x5629fe4100e0-AccessId", + "0x5629fe410090-AccessId" ] }, { - "id": "0x5575891957e8-AccessSpec", - "Kind": "0x5575891957e8-Kind" + "id": "0x5629fe4177e8-AccessSpec", + "Kind": "0x5629fe4177e8-Kind" }, { - "id": "0x5575891957e8-Kind", + "id": "0x5629fe4177e8-Kind", "disambiguation": "Fortran::parser::AccessSpec::Kind", "value": "Public" }, { - "id": "0x55758918e0e0-AccessId", - "GenericSpec": "0x55758918d510-GenericSpec" + "id": "0x5629fe4100e0-AccessId", + "GenericSpec": "0x5629fe40f510-GenericSpec" }, { - "id": "0x55758918d510-GenericSpec", + "id": "0x5629fe40f510-GenericSpec", "variantKey": "Name", - "Name": "0x55758918d520-Name" + "Name": "0x5629fe40f520-Name" }, { - "id": "0x55758918d520-Name", + "id": "0x5629fe40f520-Name", "source": "add" }, { - "id": "0x55758918e090-AccessId", - "GenericSpec": "0x55758918d5d0-GenericSpec" + "id": "0x5629fe410090-AccessId", + "GenericSpec": "0x5629fe40f5d0-GenericSpec" }, { - "id": "0x55758918d5d0-GenericSpec", + "id": "0x5629fe40f5d0-GenericSpec", "variantKey": "Name", - "Name": "0x55758918d5e0-Name" + "Name": "0x5629fe40f5e0-Name" }, { - "id": "0x55758918d5e0-Name", + "id": "0x5629fe40f5e0-Name", "source": "square" }, { - "id": "0x55758919bac0-ModuleSubprogramPart", - "Statement": "0x55758919bad8-Statement", + "id": "0x5629fe41dac0-ModuleSubprogramPart", + "Statement": "0x5629fe41dad8-Statement", "ModuleSubprogram": [ - "0x557589195970-ModuleSubprogram", - "0x55758918cbd0-ModuleSubprogram" + "0x5629fe417970-ModuleSubprogram", + "0x5629fe40ebd0-ModuleSubprogram" ] }, { - "id": "0x55758919bad8-Statement", - "statement": "0x55758919bae8-ContainsStmt", + "id": "0x5629fe41dad8-Statement", + "statement": "0x5629fe41dae8-ContainsStmt", "source": "contains" }, { - "id": "0x55758919bae8-ContainsStmt" + "id": "0x5629fe41dae8-ContainsStmt" }, { - "id": "0x557589195970-ModuleSubprogram", + "id": "0x5629fe417970-ModuleSubprogram", "variantKey": "FunctionSubprogram", - "FunctionSubprogram": "0x55758918f0e0-FunctionSubprogram" + "FunctionSubprogram": "0x5629fe4110e0-FunctionSubprogram" }, { - "id": "0x55758918f0e0-FunctionSubprogram", - "Statement": "0x55758918f228-Statement", - "SpecificationPart": "0x55758918f180-SpecificationPart", - "ExecutionPart": "0x55758918f168-ExecutionPart", - "Statement": "0x55758918f0e0-Statement" + "id": "0x5629fe4110e0-FunctionSubprogram", + "Statement": "0x5629fe411228-Statement", + "SpecificationPart": "0x5629fe411180-SpecificationPart", + "ExecutionPart": "0x5629fe411168-ExecutionPart", + "Statement": "0x5629fe4110e0-Statement" }, { - "id": "0x55758918f228-Statement", - "statement": "0x55758918f238-FunctionStmt", + "id": "0x5629fe411228-Statement", + "statement": "0x5629fe411238-FunctionStmt", "source": "pure function add(a, b) result(res)" }, { - "id": "0x55758918f238-FunctionStmt", + "id": "0x5629fe411238-FunctionStmt", "prefix": [ - "0x557589164da0-PrefixSpec" + "0x5629fe3e6da0-PrefixSpec" ], - "functionName": "0x55758918f298-Name", + "functionName": "0x5629fe411298-Name", "paramNames": [ - "0x557589195940-Name", - "0x557589195830-Name" + "0x5629fe417940-Name", + "0x5629fe417830-Name" ], - "suffix": "0x55758918f238-Suffix" + "suffix": "0x5629fe411238-Suffix" }, { - "id": "0x557589164da0-PrefixSpec", + "id": "0x5629fe3e6da0-PrefixSpec", "variantKey": "Pure", - "Pure": "0x557589164da0-Pure" + "Pure": "0x5629fe3e6da0-Pure" }, { - "id": "0x557589164da0-Pure" + "id": "0x5629fe3e6da0-Pure" }, { - "id": "0x55758918f298-Name", + "id": "0x5629fe411298-Name", "source": "add" }, { - "id": "0x557589195940-Name", + "id": "0x5629fe417940-Name", "source": "a" }, { - "id": "0x557589195830-Name", + "id": "0x5629fe417830-Name", "source": "b" }, { - "id": "0x55758918f238-Suffix", - "resultName": "0x55758918f258-Name" + "id": "0x5629fe411238-Suffix", + "resultName": "0x5629fe411258-Name" }, { - "id": "0x55758918f258-Name", + "id": "0x5629fe411258-Name", "source": "res" }, { - "id": "0x55758918f180-SpecificationPart", - "ImplicitPart": "0x55758918f198-ImplicitPart", + "id": "0x5629fe411180-SpecificationPart", + "ImplicitPart": "0x5629fe411198-ImplicitPart", "DeclarationConstruct": [ - "0x5575891938e0-DeclarationConstruct", - "0x557589194190-DeclarationConstruct" + "0x5629fe4158e0-DeclarationConstruct", + "0x5629fe416190-DeclarationConstruct" ] }, { - "id": "0x55758918f198-ImplicitPart" + "id": "0x5629fe411198-ImplicitPart" }, { - "id": "0x5575891938e0-DeclarationConstruct", + "id": "0x5629fe4158e0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5575891938e0-SpecificationConstruct" + "SpecificationConstruct": "0x5629fe4158e0-SpecificationConstruct" }, { - "id": "0x5575891938e0-SpecificationConstruct", + "id": "0x5629fe4158e0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5575891938e0-Statement" + "Statement": "0x5629fe4158e0-Statement" }, { - "id": "0x5575891938e0-Statement", - "statement": "0x557589192700-TypeDeclarationStmt", + "id": "0x5629fe4158e0-Statement", + "statement": "0x5629fe414700-TypeDeclarationStmt", "source": "integer, intent(in) :: a, b" }, { - "id": "0x557589192700-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x557589192730-DeclarationTypeSpec", + "id": "0x5629fe414700-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5629fe414730-DeclarationTypeSpec", "AttrSpec": [ - "0x557589194880-AttrSpec" + "0x5629fe416880-AttrSpec" ], "EntityDecl": [ - "0x5575891942b0-EntityDecl", - "0x557589192090-EntityDecl" + "0x5629fe4162b0-EntityDecl", + "0x5629fe414090-EntityDecl" ] }, { - "id": "0x557589192730-DeclarationTypeSpec", + "id": "0x5629fe414730-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x557589192730-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5629fe414730-IntrinsicTypeSpec" }, { - "id": "0x557589192730-IntrinsicTypeSpec", + "id": "0x5629fe414730-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x557589192730-IntegerTypeSpec" + "IntegerTypeSpec": "0x5629fe414730-IntegerTypeSpec" }, { - "id": "0x557589192730-IntegerTypeSpec" + "id": "0x5629fe414730-IntegerTypeSpec" }, { - "id": "0x557589194880-AttrSpec", + "id": "0x5629fe416880-AttrSpec", "variantKey": "IntentSpec", - "IntentSpec": "0x557589194880-IntentSpec" + "IntentSpec": "0x5629fe416880-IntentSpec" }, { - "id": "0x557589194880-IntentSpec", - "Intent": "0x557589194880-Intent", + "id": "0x5629fe416880-IntentSpec", + "Intent": "0x5629fe416880-Intent", "intent": "In" }, { - "id": "0x557589194880-Intent", + "id": "0x5629fe416880-Intent", "disambiguation": "Fortran::parser::IntentSpec::Intent", "value": "In" }, { - "id": "0x5575891942b0-EntityDecl", - "Name": "0x557589194368-Name" + "id": "0x5629fe4162b0-EntityDecl", + "Name": "0x5629fe416368-Name" }, { - "id": "0x557589194368-Name", + "id": "0x5629fe416368-Name", "source": "a" }, { - "id": "0x557589192090-EntityDecl", - "Name": "0x557589192148-Name" + "id": "0x5629fe414090-EntityDecl", + "Name": "0x5629fe414148-Name" }, { - "id": "0x557589192148-Name", + "id": "0x5629fe414148-Name", "source": "b" }, { - "id": "0x557589194190-DeclarationConstruct", + "id": "0x5629fe416190-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x557589194190-SpecificationConstruct" + "SpecificationConstruct": "0x5629fe416190-SpecificationConstruct" }, { - "id": "0x557589194190-SpecificationConstruct", + "id": "0x5629fe416190-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x557589194190-Statement" + "Statement": "0x5629fe416190-Statement" }, { - "id": "0x557589194190-Statement", - "statement": "0x557589192fe0-TypeDeclarationStmt", + "id": "0x5629fe416190-Statement", + "statement": "0x5629fe414fe0-TypeDeclarationStmt", "source": "integer :: res" }, { - "id": "0x557589192fe0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x557589193010-DeclarationTypeSpec", + "id": "0x5629fe414fe0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5629fe415010-DeclarationTypeSpec", "EntityDecl": [ - "0x55758910d1e0-EntityDecl" + "0x5629fe38f1e0-EntityDecl" ] }, { - "id": "0x557589193010-DeclarationTypeSpec", + "id": "0x5629fe415010-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x557589193010-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5629fe415010-IntrinsicTypeSpec" }, { - "id": "0x557589193010-IntrinsicTypeSpec", + "id": "0x5629fe415010-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x557589193010-IntegerTypeSpec" + "IntegerTypeSpec": "0x5629fe415010-IntegerTypeSpec" }, { - "id": "0x557589193010-IntegerTypeSpec" + "id": "0x5629fe415010-IntegerTypeSpec" }, { - "id": "0x55758910d1e0-EntityDecl", - "Name": "0x55758910d298-Name" + "id": "0x5629fe38f1e0-EntityDecl", + "Name": "0x5629fe38f298-Name" }, { - "id": "0x55758910d298-Name", + "id": "0x5629fe38f298-Name", "source": "res" }, { - "id": "0x55758918f168-ExecutionPart", + "id": "0x5629fe411168-ExecutionPart", "ExecutionPartConstruct": [ - "0x557589183750-ExecutionPartConstruct" + "0x5629fe405750-ExecutionPartConstruct" ] }, { - "id": "0x55758918f168-ExecutionPartConstruct" + "id": "0x5629fe411168-ExecutionPartConstruct" }, { - "id": "0x557589183750-ExecutionPartConstruct", + "id": "0x5629fe405750-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557589183750-ExecutableConstruct" + "ExecutableConstruct": "0x5629fe405750-ExecutableConstruct" }, { - "id": "0x557589183750-ExecutableConstruct", + "id": "0x5629fe405750-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x557589183750-Statement" + "Statement": "0x5629fe405750-Statement" }, { - "id": "0x557589183750-Statement", - "statement": "0x557589183760-ActionStmt", + "id": "0x5629fe405750-Statement", + "statement": "0x5629fe405760-ActionStmt", "source": "res = a + b" }, { - "id": "0x557589183760-ActionStmt", + "id": "0x5629fe405760-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5575891835c0-AssignmentStmt" + "AssignmentStmt": "0x5629fe4055c0-AssignmentStmt" }, { - "id": "0x5575891835c0-AssignmentStmt", - "Variable": "0x5575891836a0-Variable", - "Expr": "0x5575891835d0-Expr" + "id": "0x5629fe4055c0-AssignmentStmt", + "Variable": "0x5629fe4056a0-Variable", + "Expr": "0x5629fe4055d0-Expr" }, { - "id": "0x5575891836a0-Variable", + "id": "0x5629fe4056a0-Variable", "variantKey": "Designator", - "Designator": "0x557589182c70-Designator" + "Designator": "0x5629fe404c70-Designator" }, { - "id": "0x557589182c70-Designator", + "id": "0x5629fe404c70-Designator", "variantKey": "DataRef", - "DataRef": "0x557589182c80-DataRef" + "DataRef": "0x5629fe404c80-DataRef" }, { - "id": "0x557589182c80-DataRef", + "id": "0x5629fe404c80-DataRef", "variantKey": "Name", - "Name": "0x557589182c80-Name" + "Name": "0x5629fe404c80-Name" }, { - "id": "0x557589182c80-Name", + "id": "0x5629fe404c80-Name", "source": "res" }, { - "id": "0x5575891835d0-Expr", + "id": "0x5629fe4055d0-Expr", "variantKey": "Add", - "Add": "0x5575891835f0-Add" + "Add": "0x5629fe4055f0-Add" }, { - "id": "0x5575891835f0-Add", - "left": "0x557589183470-Expr", - "right": "0x5575890f7790-Expr", + "id": "0x5629fe4055f0-Add", + "left": "0x5629fe405470-Expr", + "right": "0x5629fe379790-Expr", "op": "ADD" }, { - "id": "0x557589183470-Expr", + "id": "0x5629fe405470-Expr", "variantKey": "Designator", - "Designator": "0x557589182e90-Designator" + "Designator": "0x5629fe404e90-Designator" }, { - "id": "0x557589182e90-Designator", + "id": "0x5629fe404e90-Designator", "variantKey": "DataRef", - "DataRef": "0x557589182ea0-DataRef" + "DataRef": "0x5629fe404ea0-DataRef" }, { - "id": "0x557589182ea0-DataRef", + "id": "0x5629fe404ea0-DataRef", "variantKey": "Name", - "Name": "0x557589182ea0-Name" + "Name": "0x5629fe404ea0-Name" }, { - "id": "0x557589182ea0-Name", + "id": "0x5629fe404ea0-Name", "source": "a" }, { - "id": "0x5575890f7790-Expr", + "id": "0x5629fe379790-Expr", "variantKey": "Designator", - "Designator": "0x557589165160-Designator" + "Designator": "0x5629fe3e7160-Designator" }, { - "id": "0x557589165160-Designator", + "id": "0x5629fe3e7160-Designator", "variantKey": "DataRef", - "DataRef": "0x557589165170-DataRef" + "DataRef": "0x5629fe3e7170-DataRef" }, { - "id": "0x557589165170-DataRef", + "id": "0x5629fe3e7170-DataRef", "variantKey": "Name", - "Name": "0x557589165170-Name" + "Name": "0x5629fe3e7170-Name" }, { - "id": "0x557589165170-Name", + "id": "0x5629fe3e7170-Name", "source": "b" }, { - "id": "0x55758918f0e0-Statement", - "statement": "0x55758918f0f0-EndFunctionStmt", + "id": "0x5629fe4110e0-Statement", + "statement": "0x5629fe4110f0-EndFunctionStmt", "source": "end function add" }, { - "id": "0x55758918f0f0-EndFunctionStmt", - "Name": "0x55758918f0f0-Name" + "id": "0x5629fe4110f0-EndFunctionStmt", + "Name": "0x5629fe4110f0-Name" }, { - "id": "0x55758918f0f0-Name", + "id": "0x5629fe4110f0-Name", "source": "add" }, { - "id": "0x55758918cbd0-ModuleSubprogram", + "id": "0x5629fe40ebd0-ModuleSubprogram", "variantKey": "FunctionSubprogram", - "FunctionSubprogram": "0x557589193a40-FunctionSubprogram" + "FunctionSubprogram": "0x5629fe415a40-FunctionSubprogram" }, { - "id": "0x557589193a40-FunctionSubprogram", - "Statement": "0x557589193b88-Statement", - "SpecificationPart": "0x557589193ae0-SpecificationPart", - "ExecutionPart": "0x557589193ac8-ExecutionPart", - "Statement": "0x557589193a40-Statement" + "id": "0x5629fe415a40-FunctionSubprogram", + "Statement": "0x5629fe415b88-Statement", + "SpecificationPart": "0x5629fe415ae0-SpecificationPart", + "ExecutionPart": "0x5629fe415ac8-ExecutionPart", + "Statement": "0x5629fe415a40-Statement" }, { - "id": "0x557589193b88-Statement", - "statement": "0x557589193b98-FunctionStmt", + "id": "0x5629fe415b88-Statement", + "statement": "0x5629fe415b98-FunctionStmt", "source": "pure function square(x) result(res)" }, { - "id": "0x557589193b98-FunctionStmt", + "id": "0x5629fe415b98-FunctionStmt", "prefix": [ - "0x557589182a60-PrefixSpec" + "0x5629fe404a60-PrefixSpec" ], - "functionName": "0x557589193bf8-Name", + "functionName": "0x5629fe415bf8-Name", "paramNames": [ - "0x5575891959c0-Name" + "0x5629fe4179c0-Name" ], - "suffix": "0x557589193b98-Suffix" + "suffix": "0x5629fe415b98-Suffix" }, { - "id": "0x557589182a60-PrefixSpec", + "id": "0x5629fe404a60-PrefixSpec", "variantKey": "Pure", - "Pure": "0x557589182a60-Pure" + "Pure": "0x5629fe404a60-Pure" }, { - "id": "0x557589182a60-Pure" + "id": "0x5629fe404a60-Pure" }, { - "id": "0x557589193bf8-Name", + "id": "0x5629fe415bf8-Name", "source": "square" }, { - "id": "0x5575891959c0-Name", + "id": "0x5629fe4179c0-Name", "source": "x" }, { - "id": "0x557589193b98-Suffix", - "resultName": "0x557589193bb8-Name" + "id": "0x5629fe415b98-Suffix", + "resultName": "0x5629fe415bb8-Name" }, { - "id": "0x557589193bb8-Name", + "id": "0x5629fe415bb8-Name", "source": "res" }, { - "id": "0x557589193ae0-SpecificationPart", - "ImplicitPart": "0x557589193af8-ImplicitPart", + "id": "0x5629fe415ae0-SpecificationPart", + "ImplicitPart": "0x5629fe415af8-ImplicitPart", "DeclarationConstruct": [ - "0x557589182f70-DeclarationConstruct", - "0x557589183190-DeclarationConstruct" + "0x5629fe404f70-DeclarationConstruct", + "0x5629fe405190-DeclarationConstruct" ] }, { - "id": "0x557589193af8-ImplicitPart" + "id": "0x5629fe415af8-ImplicitPart" }, { - "id": "0x557589182f70-DeclarationConstruct", + "id": "0x5629fe404f70-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x557589182f70-SpecificationConstruct" + "SpecificationConstruct": "0x5629fe404f70-SpecificationConstruct" }, { - "id": "0x557589182f70-SpecificationConstruct", + "id": "0x5629fe404f70-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x557589182f70-Statement" + "Statement": "0x5629fe404f70-Statement" }, { - "id": "0x557589182f70-Statement", - "statement": "0x557589192f60-TypeDeclarationStmt", + "id": "0x5629fe404f70-Statement", + "statement": "0x5629fe414f60-TypeDeclarationStmt", "source": "integer, intent(in) :: x" }, { - "id": "0x557589192f60-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x557589192f90-DeclarationTypeSpec", + "id": "0x5629fe414f60-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5629fe414f90-DeclarationTypeSpec", "AttrSpec": [ - "0x557589170c80-AttrSpec" + "0x5629fe3f2c80-AttrSpec" ], "EntityDecl": [ - "0x557589184b50-EntityDecl" + "0x5629fe406b50-EntityDecl" ] }, { - "id": "0x557589192f90-DeclarationTypeSpec", + "id": "0x5629fe414f90-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x557589192f90-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5629fe414f90-IntrinsicTypeSpec" }, { - "id": "0x557589192f90-IntrinsicTypeSpec", + "id": "0x5629fe414f90-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x557589192f90-IntegerTypeSpec" + "IntegerTypeSpec": "0x5629fe414f90-IntegerTypeSpec" }, { - "id": "0x557589192f90-IntegerTypeSpec" + "id": "0x5629fe414f90-IntegerTypeSpec" }, { - "id": "0x557589170c80-AttrSpec", + "id": "0x5629fe3f2c80-AttrSpec", "variantKey": "IntentSpec", - "IntentSpec": "0x557589170c80-IntentSpec" + "IntentSpec": "0x5629fe3f2c80-IntentSpec" }, { - "id": "0x557589170c80-IntentSpec", - "Intent": "0x557589170c80-Intent", + "id": "0x5629fe3f2c80-IntentSpec", + "Intent": "0x5629fe3f2c80-Intent", "intent": "In" }, { - "id": "0x557589170c80-Intent", + "id": "0x5629fe3f2c80-Intent", "disambiguation": "Fortran::parser::IntentSpec::Intent", "value": "In" }, { - "id": "0x557589184b50-EntityDecl", - "Name": "0x557589184c08-Name" + "id": "0x5629fe406b50-EntityDecl", + "Name": "0x5629fe406c08-Name" }, { - "id": "0x557589184c08-Name", + "id": "0x5629fe406c08-Name", "source": "x" }, { - "id": "0x557589183190-DeclarationConstruct", + "id": "0x5629fe405190-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x557589183190-SpecificationConstruct" + "SpecificationConstruct": "0x5629fe405190-SpecificationConstruct" }, { - "id": "0x557589183190-SpecificationConstruct", + "id": "0x5629fe405190-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x557589183190-Statement" + "Statement": "0x5629fe405190-Statement" }, { - "id": "0x557589183190-Statement", - "statement": "0x557589192210-TypeDeclarationStmt", + "id": "0x5629fe405190-Statement", + "statement": "0x5629fe414210-TypeDeclarationStmt", "source": "integer :: res" }, { - "id": "0x557589192210-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x557589192240-DeclarationTypeSpec", + "id": "0x5629fe414210-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5629fe414240-DeclarationTypeSpec", "EntityDecl": [ - "0x557589184000-EntityDecl" + "0x5629fe406000-EntityDecl" ] }, { - "id": "0x557589192240-DeclarationTypeSpec", + "id": "0x5629fe414240-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x557589192240-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5629fe414240-IntrinsicTypeSpec" }, { - "id": "0x557589192240-IntrinsicTypeSpec", + "id": "0x5629fe414240-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x557589192240-IntegerTypeSpec" + "IntegerTypeSpec": "0x5629fe414240-IntegerTypeSpec" }, { - "id": "0x557589192240-IntegerTypeSpec" + "id": "0x5629fe414240-IntegerTypeSpec" }, { - "id": "0x557589184000-EntityDecl", - "Name": "0x5575891840b8-Name" + "id": "0x5629fe406000-EntityDecl", + "Name": "0x5629fe4060b8-Name" }, { - "id": "0x5575891840b8-Name", + "id": "0x5629fe4060b8-Name", "source": "res" }, { - "id": "0x557589193ac8-ExecutionPart", + "id": "0x5629fe415ac8-ExecutionPart", "ExecutionPartConstruct": [ - "0x557589192540-ExecutionPartConstruct" + "0x5629fe414540-ExecutionPartConstruct" ] }, { - "id": "0x557589193ac8-ExecutionPartConstruct" + "id": "0x5629fe415ac8-ExecutionPartConstruct" }, { - "id": "0x557589192540-ExecutionPartConstruct", + "id": "0x5629fe414540-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x557589192540-ExecutableConstruct" + "ExecutableConstruct": "0x5629fe414540-ExecutableConstruct" }, { - "id": "0x557589192540-ExecutableConstruct", + "id": "0x5629fe414540-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x557589192540-Statement" + "Statement": "0x5629fe414540-Statement" }, { - "id": "0x557589192540-Statement", - "statement": "0x557589192550-ActionStmt", + "id": "0x5629fe414540-Statement", + "statement": "0x5629fe414550-ActionStmt", "source": "res = x * x" }, { - "id": "0x557589192550-ActionStmt", + "id": "0x5629fe414550-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x557589192420-AssignmentStmt" + "AssignmentStmt": "0x5629fe414420-AssignmentStmt" }, { - "id": "0x557589192420-AssignmentStmt", - "Variable": "0x557589192500-Variable", - "Expr": "0x557589192430-Expr" + "id": "0x5629fe414420-AssignmentStmt", + "Variable": "0x5629fe414500-Variable", + "Expr": "0x5629fe414430-Expr" }, { - "id": "0x557589192500-Variable", + "id": "0x5629fe414500-Variable", "variantKey": "Designator", - "Designator": "0x557589184140-Designator" + "Designator": "0x5629fe406140-Designator" }, { - "id": "0x557589184140-Designator", + "id": "0x5629fe406140-Designator", "variantKey": "DataRef", - "DataRef": "0x557589184150-DataRef" + "DataRef": "0x5629fe406150-DataRef" }, { - "id": "0x557589184150-DataRef", + "id": "0x5629fe406150-DataRef", "variantKey": "Name", - "Name": "0x557589184150-Name" + "Name": "0x5629fe406150-Name" }, { - "id": "0x557589184150-Name", + "id": "0x5629fe406150-Name", "source": "res" }, { - "id": "0x557589192430-Expr", + "id": "0x5629fe414430-Expr", "variantKey": "Multiply", - "Multiply": "0x557589192450-Multiply" + "Multiply": "0x5629fe414450-Multiply" }, { - "id": "0x557589192450-Multiply", - "left": "0x557589184410-Expr", - "right": "0x557589184330-Expr", + "id": "0x5629fe414450-Multiply", + "left": "0x5629fe406410-Expr", + "right": "0x5629fe406330-Expr", "op": "MULTIPLY" }, { - "id": "0x557589184410-Expr", + "id": "0x5629fe406410-Expr", "variantKey": "Designator", - "Designator": "0x557589185670-Designator" + "Designator": "0x5629fe407670-Designator" }, { - "id": "0x557589185670-Designator", + "id": "0x5629fe407670-Designator", "variantKey": "DataRef", - "DataRef": "0x557589185680-DataRef" + "DataRef": "0x5629fe407680-DataRef" }, { - "id": "0x557589185680-DataRef", + "id": "0x5629fe407680-DataRef", "variantKey": "Name", - "Name": "0x557589185680-Name" + "Name": "0x5629fe407680-Name" }, { - "id": "0x557589185680-Name", + "id": "0x5629fe407680-Name", "source": "x" }, { - "id": "0x557589184330-Expr", + "id": "0x5629fe406330-Expr", "variantKey": "Designator", - "Designator": "0x557589182990-Designator" + "Designator": "0x5629fe404990-Designator" }, { - "id": "0x557589182990-Designator", + "id": "0x5629fe404990-Designator", "variantKey": "DataRef", - "DataRef": "0x5575891829a0-DataRef" + "DataRef": "0x5629fe4049a0-DataRef" }, { - "id": "0x5575891829a0-DataRef", + "id": "0x5629fe4049a0-DataRef", "variantKey": "Name", - "Name": "0x5575891829a0-Name" + "Name": "0x5629fe4049a0-Name" }, { - "id": "0x5575891829a0-Name", + "id": "0x5629fe4049a0-Name", "source": "x" }, { - "id": "0x557589193a40-Statement", - "statement": "0x557589193a50-EndFunctionStmt", + "id": "0x5629fe415a40-Statement", + "statement": "0x5629fe415a50-EndFunctionStmt", "source": "end function square" }, { - "id": "0x557589193a50-EndFunctionStmt", - "Name": "0x557589193a50-Name" + "id": "0x5629fe415a50-EndFunctionStmt", + "Name": "0x5629fe415a50-Name" }, { - "id": "0x557589193a50-Name", + "id": "0x5629fe415a50-Name", "source": "square" }, { - "id": "0x55758919ba80-Statement", - "statement": "0x55758919ba90-EndModuleStmt", + "id": "0x5629fe41da80-Statement", + "statement": "0x5629fe41da90-EndModuleStmt", "source": "end module math_utils_mod" }, { - "id": "0x55758919ba90-EndModuleStmt", - "Name": "0x55758919ba90-Name" + "id": "0x5629fe41da90-EndModuleStmt", + "Name": "0x5629fe41da90-Name" }, { - "id": "0x55758919ba90-Name", + "id": "0x5629fe41da90-Name", "source": "math_utils_mod" } ], diff --git a/FortranParser/resources-test/fortran/parser/program/module2.expected.f90 b/FortranParser/resources-test/fortran/parser/program/module2.expected.f90 new file mode 100644 index 00000000..46ab8b7e --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/program/module2.expected.f90 @@ -0,0 +1,15 @@ +MODULE geometry_mod + IMPLICIT NONE + + TYPE :: point + REAL :: x, y + END TYPE point + + INTERFACE + SUBROUTINE draw_point(pt) + IMPORT :: point + TYPE(point), INTENT(IN) :: pt + END SUBROUTINE draw_point + END INTERFACE + +END MODULE geometry_mod \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/program/module2.f90 b/FortranParser/resources-test/fortran/parser/program/module2.f90 new file mode 100644 index 00000000..37d34a5c --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/program/module2.f90 @@ -0,0 +1,15 @@ +module geometry_mod + implicit none + + type :: Point + real :: x, y + end type Point + + interface + subroutine draw_point(pt) + import :: Point + type(Point), intent(in) :: pt + end subroutine draw_point + end interface + +end module geometry_mod \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/program/module2.json b/FortranParser/resources-test/fortran/parser/program/module2.json new file mode 100644 index 00000000..808bad14 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/program/module2.json @@ -0,0 +1,740 @@ +{ + "fileExtension": "f90", + "nodes": [ + { + "id": "0x563e892ddf00-Program", + "ProgramUnit": [ + "0x563e89314170-ProgramUnit" + ] + }, + { + "id": "0x563e89314170-ProgramUnit", + "variantKey": "Module", + "Module": "0x563e89318460-Module" + }, + { + "id": "0x563e89318460-Module", + "Statement": "0x563e89318590-Statement", + "SpecificationPart": "0x563e893184e8-SpecificationPart", + "Statement": "0x563e89318460-Statement" + }, + { + "id": "0x563e89318590-Statement", + "statement": "0x563e893185a0-ModuleStmt", + "source": "module geometry_mod" + }, + { + "id": "0x563e893185a0-ModuleStmt", + "Name": "0x563e893185a0-Name" + }, + { + "id": "0x563e893185a0-Name", + "source": "geometry_mod" + }, + { + "id": "0x563e893184e8-SpecificationPart", + "ImplicitPart": "0x563e89318500-ImplicitPart", + "DeclarationConstruct": [ + "0x563e892dc4e0-DeclarationConstruct", + "0x563e892eb110-DeclarationConstruct" + ] + }, + { + "id": "0x563e89318500-ImplicitPart", + "ImplicitPartStmt": [ + "0x563e89321770-ImplicitPartStmt" + ] + }, + { + "id": "0x563e89321770-ImplicitPartStmt", + "variantKey": "Statement", + "Statement": "0x563e89321770-Statement" + }, + { + "id": "0x563e89321770-Statement", + "statement": "0x563e893140b0-ImplicitStmt", + "source": "implicit none" + }, + { + "id": "0x563e893140b0-ImplicitStmt", + "variantKey": "list" + }, + { + "id": "0x563e892dc4e0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x563e892dc4e0-SpecificationConstruct" + }, + { + "id": "0x563e892dc4e0-SpecificationConstruct", + "variantKey": "DerivedTypeDef", + "DerivedTypeDef": "0x563e89321810-DerivedTypeDef" + }, + { + "id": "0x563e89321810-DerivedTypeDef", + "Statement": "0x563e89321910-Statement", + "Statement": [ + "0x563e89314e30-Statement" + ], + "Statement": "0x563e89321810-Statement" + }, + { + "id": "0x563e89321910-Statement", + "statement": "0x563e89321920-DerivedTypeStmt", + "source": "type :: point" + }, + { + "id": "0x563e89321920-DerivedTypeStmt", + "Name": "0x563e89321938-Name" + }, + { + "id": "0x563e89321938-Name", + "source": "point" + }, + { + "id": "0x563e89314e30-Statement", + "statement": "0x563e89314e40-ComponentDefStmt", + "source": "real :: x, y" + }, + { + "id": "0x563e89314e40-ComponentDefStmt", + "variantKey": "DataComponentDefStmt", + "DataComponentDefStmt": "0x563e89314e40-DataComponentDefStmt" + }, + { + "id": "0x563e89314e40-DataComponentDefStmt", + "DeclarationTypeSpec": "0x563e89314e70-DeclarationTypeSpec", + "ComponentOrFill": [ + "0x563e89318030-ComponentOrFill", + "0x563e8927d7a0-ComponentOrFill" + ] + }, + { + "id": "0x563e89314e70-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x563e89314e70-IntrinsicTypeSpec" + }, + { + "id": "0x563e89314e70-IntrinsicTypeSpec", + "variantKey": "Real", + "Real": "0x563e89314e70-Real" + }, + { + "id": "0x563e89314e70-Real" + }, + { + "id": "0x563e89318030-ComponentOrFill", + "variantKey": "ComponentDecl", + "ComponentDecl": "0x563e89318030-ComponentDecl" + }, + { + "id": "0x563e89318030-ComponentDecl", + "Name": "0x563e893180d8-Name" + }, + { + "id": "0x563e893180d8-Name", + "source": "x" + }, + { + "id": "0x563e8927d7a0-ComponentOrFill", + "variantKey": "ComponentDecl", + "ComponentDecl": "0x563e8927d7a0-ComponentDecl" + }, + { + "id": "0x563e8927d7a0-ComponentDecl", + "Name": "0x563e8927d848-Name" + }, + { + "id": "0x563e8927d848-Name", + "source": "y" + }, + { + "id": "0x563e89321810-Statement", + "statement": "0x563e89321820-EndTypeStmt", + "source": "end type point" + }, + { + "id": "0x563e89321820-EndTypeStmt", + "Name": "0x563e89321820-Name" + }, + { + "id": "0x563e89321820-Name", + "source": "point" + }, + { + "id": "0x563e892eb110-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x563e892eb110-SpecificationConstruct" + }, + { + "id": "0x563e892eb110-SpecificationConstruct", + "variantKey": "InterfaceBlock", + "InterfaceBlock": "0x563e89318370-InterfaceBlock" + }, + { + "id": "0x563e89318370-InterfaceBlock", + "Statement": "0x563e893183e8-Statement", + "InterfaceSpecification": [ + "0x563e892b3790-InterfaceSpecification" + ], + "Statement": "0x563e89318370-Statement" + }, + { + "id": "0x563e893183e8-Statement", + "statement": "0x563e893183f8-InterfaceStmt", + "source": "interface" + }, + { + "id": "0x563e893183f8-InterfaceStmt", + "variantKey": "null" + }, + { + "id": "0x563e892b3790-InterfaceSpecification", + "variantKey": "InterfaceBody", + "InterfaceBody": "0x563e892b3790-InterfaceBody" + }, + { + "id": "0x563e892b3790-InterfaceBody", + "variantKey": "Subroutine", + "Subroutine": "0x563e892b3790-Subroutine" + }, + { + "id": "0x563e892b3790-Subroutine", + "Statement": "0x563e892b37d8-Statement", + "SpecificationPart": "0x563e8927ab00-SpecificationPart", + "Statement": "0x563e892b3790-Statement" + }, + { + "id": "0x563e892b37d8-Statement", + "statement": "0x563e892b37e8-SubroutineStmt", + "source": "subroutine draw_point(pt)" + }, + { + "id": "0x563e892b37e8-SubroutineStmt", + "Name": "0x563e892b3820-Name", + "DummyArg": [ + "0x563e89312dd0-DummyArg" + ] + }, + { + "id": "0x563e892b3820-Name", + "source": "draw_point" + }, + { + "id": "0x563e89312dd0-DummyArg", + "variantKey": "Name", + "Name": "0x563e89312dd0-Name" + }, + { + "id": "0x563e89312dd0-Name", + "source": "pt" + }, + { + "id": "0x563e8927ab00-SpecificationPart", + "Statement": [ + "0x563e893134b0-Statement" + ], + "ImplicitPart": "0x563e8927ab18-ImplicitPart", + "DeclarationConstruct": [ + "0x563e892eada0-DeclarationConstruct" + ] + }, + { + "id": "0x563e893134b0-Statement", + "statement": "0x563e89314110-ImportStmt", + "source": "import :: point" + }, + { + "id": "0x563e89314110-ImportStmt", + "ImportKind": "0x563e89314128-ImportKind", + "Name": [ + "0x563e893140f0-Name" + ] + }, + { + "id": "0x563e89314128-ImportKind", + "disambiguation": "Fortran::common::ImportKind", + "value": "Default" + }, + { + "id": "0x563e893140f0-Name", + "source": "point" + }, + { + "id": "0x563e8927ab18-ImplicitPart" + }, + { + "id": "0x563e892eada0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x563e892eada0-SpecificationConstruct" + }, + { + "id": "0x563e892eada0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x563e892eada0-Statement" + }, + { + "id": "0x563e892eada0-Statement", + "statement": "0x563e89318100-TypeDeclarationStmt", + "source": "type(point), intent(in) :: pt" + }, + { + "id": "0x563e89318100-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x563e89318130-DeclarationTypeSpec", + "AttrSpec": [ + "0x563e8931a610-AttrSpec" + ], + "EntityDecl": [ + "0x563e89318210-EntityDecl" + ] + }, + { + "id": "0x563e89318130-DeclarationTypeSpec", + "variantKey": "Type", + "Type": "0x563e89318130-Type" + }, + { + "id": "0x563e89318130-Type", + "DerivedTypeSpec": "0x563e89318130-DerivedTypeSpec" + }, + { + "id": "0x563e89318130-DerivedTypeSpec", + "Name": "0x563e89318150-Name" + }, + { + "id": "0x563e89318150-Name", + "source": "point" + }, + { + "id": "0x563e8931a610-AttrSpec", + "variantKey": "IntentSpec", + "IntentSpec": "0x563e8931a610-IntentSpec" + }, + { + "id": "0x563e8931a610-IntentSpec", + "Intent": "0x563e8931a610-Intent", + "intent": "In" + }, + { + "id": "0x563e8931a610-Intent", + "disambiguation": "Fortran::parser::IntentSpec::Intent", + "value": "In" + }, + { + "id": "0x563e89318210-EntityDecl", + "Name": "0x563e893182c8-Name" + }, + { + "id": "0x563e893182c8-Name", + "source": "pt" + }, + { + "id": "0x563e892b3790-Statement", + "statement": "0x563e892b37a0-EndSubroutineStmt", + "source": "end subroutine draw_point" + }, + { + "id": "0x563e892b37a0-EndSubroutineStmt", + "Name": "0x563e892b37a0-Name" + }, + { + "id": "0x563e892b37a0-Name", + "source": "draw_point" + }, + { + "id": "0x563e89318370-Statement", + "statement": "0x563e89318380-EndInterfaceStmt", + "source": "end interface" + }, + { + "id": "0x563e89318380-EndInterfaceStmt" + }, + { + "id": "0x563e89318460-Statement", + "statement": "0x563e89318470-EndModuleStmt", + "source": "end module geometry_mod" + }, + { + "id": "0x563e89318470-EndModuleStmt", + "Name": "0x563e89318470-Name" + }, + { + "id": "0x563e89318470-Name", + "source": "geometry_mod" + } + ], + "comments": [], + "enums": { + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "Fortran::common::ImportKind": [ + "Default", + "Only", + "None", + "All" + ], + "Fortran::common::OmpDependenceKind": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::common::OmpMemoryOrderType": [ + "Acq_Rel", + "Acquire", + "Relaxed", + "Release", + "Seq_Cst" + ], + "Fortran::common::OpenACCDeviceType": [ + "Star", + "Default", + "Nvidia", + "Radeon", + "Host", + "Multicore", + "None" + ], + "Fortran::parser::AccDataModifier::Modifier": [ + "ReadOnly", + "Zero" + ], + "Fortran::parser::AccessSpec::Kind": [ + "Public", + "Private" + ], + "Fortran::parser::BindEntity::Kind": [ + "Object", + "Common" + ], + "Fortran::parser::CompilerDirective::VectorLength::Kind": [ + "Auto", + "Fixed", + "Scalable" + ], + "Fortran::parser::ConnectSpec::CharExpr::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Encoding", + "Form", + "Pad", + "Position", + "Round", + "Sign", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::DefinedOperator::IntrinsicOperator": [ + "Power", + "Multiply", + "Divide", + "Add", + "Subtract", + "Concat", + "LT", + "LE", + "EQ", + "NE", + "GE", + "GT", + "NOT", + "AND", + "OR", + "EQV", + "NEQV" + ], + "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec": [ + "External", + "Type" + ], + "Fortran::parser::InquireSpec::CharVar::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Direct", + "Encoding", + "Form", + "Formatted", + "Iomsg", + "Name", + "Pad", + "Position", + "Read", + "Readwrite", + "Round", + "Sequential", + "Sign", + "Stream", + "Status", + "Unformatted", + "Write", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::InquireSpec::IntVar::Kind": [ + "Iostat", + "Nextrec", + "Number", + "Pos", + "Recl", + "Size" + ], + "Fortran::parser::InquireSpec::LogVar::Kind": [ + "Exist", + "Named", + "Opened", + "Pending" + ], + "Fortran::parser::IntentSpec::Intent": [ + "In", + "Out", + "InOut" + ], + "Fortran::parser::IoControlSpec::CharExpr::Kind": [ + "Advance", + "Blank", + "Decimal", + "Delim", + "Pad", + "Round", + "Sign" + ], + "Fortran::parser::ReductionOperator::Operator": [ + "Plus", + "Multiply", + "Max", + "Min", + "Iand", + "Ior", + "Ieor", + "And", + "Or", + "Eqv", + "Neqv" + ], + "Fortran::parser::OmpAccessGroup::Value": [ + "Cgroup" + ], + "Fortran::parser::OmpAdjustArgsClause::OmpAdjustOp::Value": [ + "Nothing", + "Need_Device_Ptr" + ], + "Fortran::parser::OmpAlwaysModifier::Value": [ + "Always" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpAttachModifier::Value": [ + "Always", + "Never", + "Auto" + ], + "Fortran::parser::OmpAutomapModifier::Value": [ + "Automap" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpCloseModifier::Value": [ + "Close" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default", + "Present" + ], + "Fortran::parser::OmpDeleteModifier::Value": [ + "Delete" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpDirectiveSpecification::Flag": [ + "DeprecatedSyntax", + "CrossesLabelDo" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpInteropType::Value": [ + "Target", + "Targetsync" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "Storage", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpObject::Invalid::Kind": [ + "BlankCommonBlock" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpPresentModifier::Value": [ + "Present" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpRefModifier::Value": [ + "Ref_Ptee", + "Ref_Ptr", + "Ref_Ptr_Ptee" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpSelfModifier::Value": [ + "Self" + ], + "Fortran::parser::OmpSeverityClause::SevLevel": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpThreadsetClause::ThreadsetPolicy": [ + "Omp_Pool", + "Omp_Team" + ], + "Fortran::parser::OmpTraitSelectorName::Value": [ + "Arch", + "Atomic_Default_Mem_Order", + "Condition", + "Device_Num", + "Extension", + "Isa", + "Kind", + "Requires", + "Simd", + "Uid", + "Vendor" + ], + "Fortran::parser::OmpTraitSetSelectorName::Value": [ + "Construct", + "Device", + "Implementation", + "Target_Device", + "User" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpxHoldModifier::Value": [ + "Ompx_Hold" + ], + "Fortran::parser::ProcedureStmt::Kind": [ + "ModuleProcedure", + "Procedure" + ], + "Fortran::parser::SavedEntity::Kind": [ + "Entity", + "Common" + ], + "Fortran::parser::StopStmt::Kind": [ + "Stop", + "ErrorStop" + ], + "Fortran::parser::UseStmt::ModuleNature": [ + "Intrinsic", + "Non_Intrinsic" + ] + } +} diff --git a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java index 7cca00ec..0c06605a 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -664,14 +664,26 @@ void testFunctionNative() { } @Test - void testModule() { - testJson("program/module.json"); + void testModule1() { + testJson("program/module1.json"); } @Test - void testModuleNative() { + void testModule1Native() { if (SpecsPlatforms.isLinux()) { - testNative("program/module.f90"); + testNative("program/module1.f90"); + } + } + + @Test + void testModule2() { + testJson("program/module2.json"); + } + + @Test + void testModule2Native() { + if (SpecsPlatforms.isLinux()) { + testNative("program/module2.f90"); } } From 8cfa79756aafaa074cce398be6d9f74e9571fe9f Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 5 Aug 2026 23:25:50 +0100 Subject: [PATCH 182/260] Add import statement AST node --- .../fe/specs/fortran/ast/FortranKeyword.java | 3 ++ .../fortran/ast/nodes/stmt/ImportStmt.java | 42 +++++++++++++++++++ .../ast/nodes/stmt/enums/ImportKind.java | 8 ++++ 3 files changed, 53 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImportStmt.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/enums/ImportKind.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java index 4efc24eb..c076b0d7 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -76,6 +76,9 @@ public enum FortranKeyword { ASSIGNMENT, FORMATTED, UNFORMATTED, + IMPORT, + NONE, + ALL, OMP; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImportStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImportStmt.java new file mode 100644 index 00000000..46228fc8 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImportStmt.java @@ -0,0 +1,42 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.enums.ImportKind; + +import java.util.Collection; +import java.util.List; + +public class ImportStmt extends Stmt { + public static final DataKey KIND = KeyFactory.enumeration("kind", ImportKind.class); + public static final DataKey> NAMES = KeyFactory.list("names", String.class); + + public ImportStmt(DataStore data, Collection children) { + super(data, children); + } + + public ImportKind getKind() { + return get(KIND); + } + + public List getImportedNames() { + return get(NAMES); + } + + @Override + public String getStmtCode() { + var names = getImportedNames(); + + var suffix = switch (getKind()) { + case DEFAULT -> names.isEmpty() ? "" : " :: " + String.join(", ", names); + case ONLY -> ", " + keyword(FortranKeyword.ONLY) + " : " + String.join(", ", names); + case NONE -> ", " + keyword(FortranKeyword.NONE); + case ALL -> ", " + keyword(FortranKeyword.ALL); + }; + + return keyword(FortranKeyword.IMPORT) + suffix; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/enums/ImportKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/enums/ImportKind.java new file mode 100644 index 00000000..c9075699 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/enums/ImportKind.java @@ -0,0 +1,8 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.enums; + +public enum ImportKind { + DEFAULT, + ONLY, + NONE, + ALL; +} From 43d622d73447b9b40a0f3c88c586591a942d2be2 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 5 Aug 2026 23:35:26 +0100 Subject: [PATCH 183/260] Implement processors for import statements --- .../up/fe/specs/fortran/parser/FlangName.java | 2 ++ .../fe/specs/fortran/parser/FlangToClass.java | 1 + .../specs/fortran/parser/processors/Nodes.java | 1 + .../parser/processors/StmtProcessors.java | 17 +++++++++++++++++ 4 files changed, 21 insertions(+) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 6d71b816..0c187038 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -116,6 +116,8 @@ public enum FlangName implements StringProvider { ACCESS_STMT, ACCESS_SPEC, ACCESS_ID, + IMPORT_STMT, + IMPORT_KIND, // Variables VARIABLE, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 3328a879..28fbbaf0 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -168,6 +168,7 @@ public class FlangToClass { NAME_TO_MAPPER.put(FlangName.END_FUNCTION_STMT, ClassMapper.always(EndFunctionStmt.class)); NAME_TO_MAPPER.put(FlangName.EXTERNAL_STMT, ClassMapper.always(ExternalStmt.class)); NAME_TO_MAPPER.put(FlangName.ACCESS_STMT, ClassMapper.always(AccessStmt.class)); + NAME_TO_MAPPER.put(FlangName.IMPORT_STMT, ClassMapper.always(ImportStmt.class)); /// Variables //NAME_TO_CLASS.put(FlangName.DATA_REF, DataRef.class); // TODO(Process-ing): Improve this diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 8168a6b1..a20dde20 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -164,6 +164,7 @@ public Nodes(FortranJsonResult data) { processors.put(ModuleStmt.class, s::moduleStmt); processors.put(EndModuleStmt.class, s::endModuleStmt); processors.put(AccessStmt.class, s::accessStmt); + processors.put(ImportStmt.class, s::importStmt); var e = new ExprProcessors(data); processors.put(StringLiteral.class, e::stringLiteral); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 7ae21adb..8c88b53a 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -22,6 +22,7 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmtVariable; import pt.up.fe.specs.fortran.ast.nodes.stmt.dimstmt.DimensionDecl; import pt.up.fe.specs.fortran.ast.nodes.stmt.dimstmt.DimensionStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.enums.ImportKind; import pt.up.fe.specs.fortran.ast.nodes.stmt.ifstmt.*; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoStmt; @@ -756,4 +757,20 @@ public void accessStmt(AccessStmt accessStmt) { accessStmt.addChildren(accessIds); } } + + public void importStmt(ImportStmt importStmt) { + stmt(importStmt); + + var kindSrc = attributes().getString(importStmt, "value", FlangName.IMPORT_KIND); + var kind = ImportKind.valueOf(kindSrc.toUpperCase()); + importStmt.set(ImportStmt.KIND, kind); + + if (attributes(importStmt).has(FlangName.NAME)) { + var nameIds = attributes(importStmt).getStringList(FlangName.NAME); + var names = nameIds.stream() + .map(nameId -> attributes().get(nameId).getString("source")) + .toList(); + importStmt.set(ImportStmt.NAMES, names); + } + } } From 327422ff8e9db8c414b2367f41f1f574aef5d901 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 6 Aug 2026 15:38:06 +0100 Subject: [PATCH 184/260] Implement AST nodes for derived type --- .../fortran/ast/nodes/type/DerivedType.java | 40 +++++++++++++++++++ .../fortran/ast/nodes/type/FortranType.java | 1 - .../lenselector/KindParamLenSelector.java | 2 +- .../type/lenselector/ParamLenSelector.java | 2 +- .../typeparam/DeferredTypeParamValue.java | 2 +- .../typeparam/ExprTypeParamValue.java | 2 +- .../typeparam/StarTypeParamValue.java | 2 +- .../ast/nodes/type/typeparam/TypeParam.java | 32 +++++++++++++++ .../typeparam/TypeParamValue.java | 2 +- .../fe/specs/fortran/parser/FlangToClass.java | 8 ++-- .../parser/processors/DeclProcessors.java | 6 +-- .../fortran/parser/processors/Nodes.java | 6 +-- 12 files changed, 88 insertions(+), 17 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/DerivedType.java rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/{decl => type}/typeparam/DeferredTypeParamValue.java (87%) rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/{decl => type}/typeparam/ExprTypeParamValue.java (90%) rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/{decl => type}/typeparam/StarTypeParamValue.java (87%) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/typeparam/TypeParam.java rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/{decl => type}/typeparam/TypeParamValue.java (85%) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/DerivedType.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/DerivedType.java new file mode 100644 index 00000000..c1e47369 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/DerivedType.java @@ -0,0 +1,40 @@ +package pt.up.fe.specs.fortran.ast.nodes.type; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.TypeParam; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +public class DerivedType extends FortranType { + public static final DataKey NAME = KeyFactory.string("name"); + + public DerivedType(DataStore data, Collection children) { + super(data, children); + } + + public String getName() { + return get(NAME); + } + + public List getTypeParams() { + return getChildren(TypeParam.class); + } + + @Override + public String getCode() { + var typeParams = getTypeParams(); + + var typeParamsCode = typeParams.isEmpty() + ? "" + : typeParams.stream() + .map(TypeParam::getCode) + .collect(Collectors.joining(", ", " (", ")")); + + return getName() + typeParamsCode; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/FortranType.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/FortranType.java index d1650c2b..452fe176 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/FortranType.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/FortranType.java @@ -6,7 +6,6 @@ import java.util.Collection; public abstract class FortranType extends FortranNode { - public FortranType(DataStore data, Collection children) { super(data, children); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/KindParamLenSelector.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/KindParamLenSelector.java index 2b1825e0..8519178c 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/KindParamLenSelector.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/KindParamLenSelector.java @@ -3,7 +3,7 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.TypeParamValue; +import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.TypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; import java.util.Collection; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/ParamLenSelector.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/ParamLenSelector.java index b13af4ae..2f5aabba 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/ParamLenSelector.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/ParamLenSelector.java @@ -3,7 +3,7 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.TypeParamValue; +import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.TypeParamValue; import java.util.Collection; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/typeparam/DeferredTypeParamValue.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/typeparam/DeferredTypeParamValue.java similarity index 87% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/typeparam/DeferredTypeParamValue.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/typeparam/DeferredTypeParamValue.java index 06089db0..3c974cb2 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/typeparam/DeferredTypeParamValue.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/typeparam/DeferredTypeParamValue.java @@ -1,4 +1,4 @@ -package pt.up.fe.specs.fortran.ast.nodes.decl.typeparam; +package pt.up.fe.specs.fortran.ast.nodes.type.typeparam; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/typeparam/ExprTypeParamValue.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/typeparam/ExprTypeParamValue.java similarity index 90% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/typeparam/ExprTypeParamValue.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/typeparam/ExprTypeParamValue.java index 1e358723..3bc72ff9 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/typeparam/ExprTypeParamValue.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/typeparam/ExprTypeParamValue.java @@ -1,4 +1,4 @@ -package pt.up.fe.specs.fortran.ast.nodes.decl.typeparam; +package pt.up.fe.specs.fortran.ast.nodes.type.typeparam; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/typeparam/StarTypeParamValue.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/typeparam/StarTypeParamValue.java similarity index 87% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/typeparam/StarTypeParamValue.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/typeparam/StarTypeParamValue.java index 857b7b68..f2a226e7 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/typeparam/StarTypeParamValue.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/typeparam/StarTypeParamValue.java @@ -1,4 +1,4 @@ -package pt.up.fe.specs.fortran.ast.nodes.decl.typeparam; +package pt.up.fe.specs.fortran.ast.nodes.type.typeparam; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/typeparam/TypeParam.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/typeparam/TypeParam.java new file mode 100644 index 00000000..b07b5747 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/typeparam/TypeParam.java @@ -0,0 +1,32 @@ +package pt.up.fe.specs.fortran.ast.nodes.type.typeparam; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; +import java.util.List; +import java.util.Optional; + +public class TypeParam extends FortranNode { + public static final DataKey> KEYWORD = KeyFactory.optional("keyword"); + + public TypeParam(DataStore data, Collection children) { + super(data, children); + } + + public Optional getKeyword() { + return get(KEYWORD); + } + + public TypeParamValue getValue() { + return getChild(TypeParamValue.class, 0); + } + + @Override + public String getCode() { + var keyword = getKeyword().map(k -> k + "=").orElse(""); + return keyword + getValue().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/typeparam/TypeParamValue.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/typeparam/TypeParamValue.java similarity index 85% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/typeparam/TypeParamValue.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/typeparam/TypeParamValue.java index cbc83200..893ccf29 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/typeparam/TypeParamValue.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/typeparam/TypeParamValue.java @@ -1,4 +1,4 @@ -package pt.up.fe.specs.fortran.ast.nodes.decl.typeparam; +package pt.up.fe.specs.fortran.ast.nodes.type.typeparam; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 28fbbaf0..ec1cfcc9 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -6,10 +6,10 @@ import pt.up.fe.specs.fortran.ast.nodes.alloc.ExprAllocOption; import pt.up.fe.specs.fortran.ast.nodes.alloc.VarAllocOption; import pt.up.fe.specs.fortran.ast.nodes.decl.*; -import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.DeferredTypeParamValue; -import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.ExprTypeParamValue; -import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.StarTypeParamValue; -import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.TypeParamValue; +import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.DeferredTypeParamValue; +import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.ExprTypeParamValue; +import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.StarTypeParamValue; +import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.TypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.expr.*; import pt.up.fe.specs.fortran.ast.nodes.io.*; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentLoopControl; diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java index 94acec32..ac060a03 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java @@ -1,9 +1,9 @@ package pt.up.fe.specs.fortran.parser.processors; import pt.up.fe.specs.fortran.ast.nodes.decl.*; -import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.DeferredTypeParamValue; -import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.ExprTypeParamValue; -import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.StarTypeParamValue; +import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.DeferredTypeParamValue; +import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.ExprTypeParamValue; +import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.StarTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.expr.enums.BinaryOperatorKind; import pt.up.fe.specs.fortran.ast.nodes.specification.IntrinsicOperator; import pt.up.fe.specs.fortran.ast.nodes.specification.NamedOperator; diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index a20dde20..8328a8be 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -5,9 +5,9 @@ import pt.up.fe.specs.fortran.ast.nodes.alloc.ExprAllocOption; import pt.up.fe.specs.fortran.ast.nodes.alloc.VarAllocOption; import pt.up.fe.specs.fortran.ast.nodes.decl.*; -import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.DeferredTypeParamValue; -import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.ExprTypeParamValue; -import pt.up.fe.specs.fortran.ast.nodes.decl.typeparam.StarTypeParamValue; +import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.DeferredTypeParamValue; +import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.ExprTypeParamValue; +import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.StarTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.expr.*; import pt.up.fe.specs.fortran.ast.nodes.io.*; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentLoopControl; From bd6b29c1eb3dbff6ab5aa1da9091b24d71e29b2d Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 6 Aug 2026 15:59:04 +0100 Subject: [PATCH 185/260] Implement AST nodes for declaration type --- .../ast/nodes/type/decltype/DeclType.java | 12 +++++++ .../nodes/type/decltype/DerivedDeclType.java | 34 +++++++++++++++++++ .../type/decltype/IntrinsicDeclType.java | 22 ++++++++++++ .../ast/nodes/type/decltype/StarDeclType.java | 28 +++++++++++++++ .../ast/nodes/type/enums/DeclTypeKind.java | 6 ++++ 5 files changed, 102 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/decltype/DeclType.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/decltype/DerivedDeclType.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/decltype/IntrinsicDeclType.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/decltype/StarDeclType.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/enums/DeclTypeKind.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/decltype/DeclType.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/decltype/DeclType.java new file mode 100644 index 00000000..0971628e --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/decltype/DeclType.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.type.decltype; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class DeclType extends FortranNode { + public DeclType(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/decltype/DerivedDeclType.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/decltype/DerivedDeclType.java new file mode 100644 index 00000000..100e9631 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/decltype/DerivedDeclType.java @@ -0,0 +1,34 @@ +package pt.up.fe.specs.fortran.ast.nodes.type.decltype; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.type.DerivedType; +import pt.up.fe.specs.fortran.ast.nodes.type.enums.DeclTypeKind; + +import java.util.Collection; + +public class DerivedDeclType extends DeclType { + public static final DataKey KIND = KeyFactory.enumeration("kind", DeclTypeKind.class); + + public DerivedDeclType(DataStore data, Collection children) { + super(data, children); + } + + public DeclTypeKind getKind() { + return get(KIND); + } + + public DerivedType getDerivedType() { + return getChild(DerivedType.class, 0); + } + + @Override + public String getCode() { + var kindCode = encase(getKind().name()); + var derivedTypeCode = getDerivedType().getCode(); + + return kindCode + "(" + derivedTypeCode + ")"; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/decltype/IntrinsicDeclType.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/decltype/IntrinsicDeclType.java new file mode 100644 index 00000000..43f9d6f6 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/decltype/IntrinsicDeclType.java @@ -0,0 +1,22 @@ +package pt.up.fe.specs.fortran.ast.nodes.type.decltype; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.type.IntrinsicType; + +import java.util.Collection; + +public class IntrinsicDeclType extends DeclType { + public IntrinsicDeclType(DataStore data, Collection children) { + super(data, children); + } + + public IntrinsicType getIntrinsicType() { + return getChild(IntrinsicType.class, 0); + } + + @Override + public String getCode() { + return getIntrinsicType().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/decltype/StarDeclType.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/decltype/StarDeclType.java new file mode 100644 index 00000000..53ea629c --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/decltype/StarDeclType.java @@ -0,0 +1,28 @@ +package pt.up.fe.specs.fortran.ast.nodes.type.decltype; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.type.enums.DeclTypeKind; + +import java.util.Collection; + +public class StarDeclType extends DeclType { + public static final DataKey KIND = KeyFactory.enumeration("kind", DeclTypeKind.class); + + public StarDeclType(DataStore data, Collection children) { + super(data, children); + } + + public DeclTypeKind getKind() { + return get(KIND); + } + + @Override + public String getCode() { + var kindCode = encase(getKind().name()); + + return kindCode + "(*)"; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/enums/DeclTypeKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/enums/DeclTypeKind.java new file mode 100644 index 00000000..23e0bfe3 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/enums/DeclTypeKind.java @@ -0,0 +1,6 @@ +package pt.up.fe.specs.fortran.ast.nodes.type.enums; + +public enum DeclTypeKind { + TYPE, + CLASS; +} From 242a3cb4e786e880636080f1cf5feb1f8aa7c0c0 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 6 Aug 2026 16:44:13 +0100 Subject: [PATCH 186/260] Add implicit part test --- .../parser/program/implicit.expected.f90 | 21 + .../fortran/parser/program/implicit.f90 | 24 + .../fortran/parser/program/implicit.json | 1228 +++++++++++++++++ .../fortran/parser/FortranParserTest.java | 12 + 4 files changed, 1285 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/program/implicit.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/program/implicit.f90 create mode 100644 FortranParser/resources-test/fortran/parser/program/implicit.json diff --git a/FortranParser/resources-test/fortran/parser/program/implicit.expected.f90 b/FortranParser/resources-test/fortran/parser/program/implicit.expected.f90 new file mode 100644 index 00000000..30600a5e --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/program/implicit.expected.f90 @@ -0,0 +1,21 @@ +PROGRAM IMPLICIT + ! 1. Standard IMPLICIT NONE (requires all variables to be declared) + IMPLICIT NONE (TYPE, EXTERNAL) + INTEGER :: explicit_val + + explicit_val = 42 + PRINT *, "Explicit:", explicit_val + + CALL demo_custom_implicit() +CONTAINS + SUBROUTINE demo_custom_implicit() + ! 2. Custom IMPLICIT rules by letter range + IMPLICIT REAL(8) (a-c) ! Names starting with A, B, C -> 8-byte REAL + IMPLICIT INTEGER(8) (i-k) ! Names starting with I, J, K -> 8-byte INTEGER + + a_var = 3.141592653589793_8 ! Implicit REAL(8) + i_var = 1000000000000_8 ! Implicit INTEGER(8) + + PRINT *, "Custom implicit kinds:", kind(a_var), kind(i_var) + END SUBROUTINE demo_custom_implicit +END PROGRAM IMPLICIT \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/program/implicit.f90 b/FortranParser/resources-test/fortran/parser/program/implicit.f90 new file mode 100644 index 00000000..c6502cab --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/program/implicit.f90 @@ -0,0 +1,24 @@ +program implicit + ! 1. Standard IMPLICIT NONE (requires all variables to be declared) + implicit none (type, external) + integer :: explicit_val + + explicit_val = 42 + print *, "Explicit:", explicit_val + + call demo_custom_implicit() + +contains + + subroutine demo_custom_implicit() + ! 2. Custom IMPLICIT rules by letter range + implicit real(8) (a-c) ! Names starting with A, B, C -> 8-byte REAL + implicit integer(8) (i-k) ! Names starting with I, J, K -> 8-byte INTEGER + + a_var = 3.141592653589793_8 ! Implicit REAL(8) + i_var = 1000000000000_8 ! Implicit INTEGER(8) + + print *, "Custom implicit kinds:", kind(a_var), kind(i_var) + end subroutine demo_custom_implicit + +end program implicit \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/program/implicit.json b/FortranParser/resources-test/fortran/parser/program/implicit.json new file mode 100644 index 00000000..76d86cde --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/program/implicit.json @@ -0,0 +1,1228 @@ +{ + "fileExtension": "f90", + "nodes": [ + { + "id": "0x55e33c063f00-Program", + "ProgramUnit": [ + "0x55e33c098d40-ProgramUnit" + ] + }, + { + "id": "0x55e33c098d40-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x55e33c0a0d60-MainProgram" + }, + { + "id": "0x55e33c0a0d60-MainProgram", + "Statement": "0x55e33c0a0ea8-Statement", + "SpecificationPart": "0x55e33c0a0e00-SpecificationPart", + "ExecutionPart": "0x55e33c0a0de8-ExecutionPart", + "InternalSubprogramPart": "0x55e33c0a0da0-InternalSubprogramPart", + "Statement": "0x55e33c0a0d60-Statement" + }, + { + "id": "0x55e33c0a0ea8-Statement", + "statement": "0x55e33c0a0eb8-ProgramStmt", + "source": "program IMPLICIT" + }, + { + "id": "0x55e33c0a0eb8-ProgramStmt", + "Name": "0x55e33c0a0eb8-Name" + }, + { + "id": "0x55e33c0a0eb8-Name", + "source": "IMPLICIT" + }, + { + "id": "0x55e33c0a0e00-SpecificationPart", + "ImplicitPart": "0x55e33c0a0e18-ImplicitPart", + "DeclarationConstruct": [ + "0x55e33c0624e0-DeclarationConstruct" + ] + }, + { + "id": "0x55e33c0a0e18-ImplicitPart", + "ImplicitPartStmt": [ + "0x55e33c0a7cb0-ImplicitPartStmt" + ] + }, + { + "id": "0x55e33c0a7cb0-ImplicitPartStmt", + "variantKey": "Statement", + "Statement": "0x55e33c0a7cb0-Statement" + }, + { + "id": "0x55e33c0a7cb0-Statement", + "statement": "0x55e33c0a1b90-ImplicitStmt", + "source": "implicit none(type, external)" + }, + { + "id": "0x55e33c0a1b90-ImplicitStmt", + "variantKey": "ImplicitNoneNameSpec", + "ImplicitNoneNameSpec": [ + "0x55e33c0a1e10-ImplicitNoneNameSpec", + "0x55e33c0a1e30-ImplicitNoneNameSpec" + ] + }, + { + "id": "0x55e33c0a1e10-ImplicitNoneNameSpec", + "disambiguation": "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec", + "value": "Type" + }, + { + "id": "0x55e33c0a1e30-ImplicitNoneNameSpec", + "disambiguation": "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec", + "value": "External" + }, + { + "id": "0x55e33c0624e0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55e33c0624e0-SpecificationConstruct" + }, + { + "id": "0x55e33c0624e0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55e33c0624e0-Statement" + }, + { + "id": "0x55e33c0624e0-Statement", + "statement": "0x55e33c09e730-TypeDeclarationStmt", + "source": "integer :: explicit_val" + }, + { + "id": "0x55e33c09e730-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e33c09e760-DeclarationTypeSpec", + "EntityDecl": [ + "0x55e33c09ea70-EntityDecl" + ] + }, + { + "id": "0x55e33c09e760-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55e33c09e760-IntrinsicTypeSpec" + }, + { + "id": "0x55e33c09e760-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55e33c09e760-IntegerTypeSpec" + }, + { + "id": "0x55e33c09e760-IntegerTypeSpec" + }, + { + "id": "0x55e33c09ea70-EntityDecl", + "Name": "0x55e33c09eb28-Name" + }, + { + "id": "0x55e33c09eb28-Name", + "source": "explicit_val" + }, + { + "id": "0x55e33c0a0de8-ExecutionPart", + "ExecutionPartConstruct": [ + "0x55e33c09e600-ExecutionPartConstruct", + "0x55e33c08e7f0-ExecutionPartConstruct", + "0x55e33c09fe60-ExecutionPartConstruct" + ] + }, + { + "id": "0x55e33c0a0de8-ExecutionPartConstruct" + }, + { + "id": "0x55e33c09e600-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e33c09e600-ExecutableConstruct" + }, + { + "id": "0x55e33c09e600-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e33c09e600-Statement" + }, + { + "id": "0x55e33c09e600-Statement", + "statement": "0x55e33c09e610-ActionStmt", + "source": "explicit_val = 42" + }, + { + "id": "0x55e33c09e610-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55e33c0a0ef0-AssignmentStmt" + }, + { + "id": "0x55e33c0a0ef0-AssignmentStmt", + "Variable": "0x55e33c0a0fd0-Variable", + "Expr": "0x55e33c0a0f00-Expr" + }, + { + "id": "0x55e33c0a0fd0-Variable", + "variantKey": "Designator", + "Designator": "0x55e33c071100-Designator" + }, + { + "id": "0x55e33c071100-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e33c071110-DataRef" + }, + { + "id": "0x55e33c071110-DataRef", + "variantKey": "Name", + "Name": "0x55e33c071110-Name" + }, + { + "id": "0x55e33c071110-Name", + "source": "explicit_val" + }, + { + "id": "0x55e33c0a0f00-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e33c0a0f20-LiteralConstant" + }, + { + "id": "0x55e33c0a0f20-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e33c0a0f20-IntLiteralConstant" + }, + { + "id": "0x55e33c0a0f20-IntLiteralConstant", + "CharBlock": "42" + }, + { + "id": "0x55e33c08e7f0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e33c08e7f0-ExecutableConstruct" + }, + { + "id": "0x55e33c08e7f0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e33c08e7f0-Statement" + }, + { + "id": "0x55e33c08e7f0-Statement", + "statement": "0x55e33c08e800-ActionStmt", + "source": "print *, \"Explicit:\", explicit_val" + }, + { + "id": "0x55e33c08e800-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55e33c0a0390-PrintStmt" + }, + { + "id": "0x55e33c0a0390-PrintStmt", + "Format": "0x55e33c0a03a8-Format", + "OutputItem": [ + "0x55e33c0a0240-OutputItem", + "0x55e33c0a0150-OutputItem" + ] + }, + { + "id": "0x55e33c0a03a8-Format", + "variantKey": "Star", + "Star": "0x55e33c0a03a8-Star" + }, + { + "id": "0x55e33c0a03a8-Star" + }, + { + "id": "0x55e33c0a0240-OutputItem", + "variantKey": "Expr", + "Expr": "0x55e33c0a0240-Expr" + }, + { + "id": "0x55e33c0a0240-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e33c0a0260-LiteralConstant" + }, + { + "id": "0x55e33c0a0260-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55e33c0a0260-CharLiteralConstant" + }, + { + "id": "0x55e33c0a0260-CharLiteralConstant", + "string": "Explicit:" + }, + { + "id": "0x55e33c0a0150-OutputItem", + "variantKey": "Expr", + "Expr": "0x55e33c0a0150-Expr" + }, + { + "id": "0x55e33c0a0150-Expr", + "variantKey": "Designator", + "Designator": "0x55e33c0a0070-Designator" + }, + { + "id": "0x55e33c0a0070-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e33c0a0080-DataRef" + }, + { + "id": "0x55e33c0a0080-DataRef", + "variantKey": "Name", + "Name": "0x55e33c0a0080-Name" + }, + { + "id": "0x55e33c0a0080-Name", + "source": "explicit_val" + }, + { + "id": "0x55e33c09fe60-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e33c09fe60-ExecutableConstruct" + }, + { + "id": "0x55e33c09fe60-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e33c09fe60-Statement" + }, + { + "id": "0x55e33c09fe60-Statement", + "statement": "0x55e33c09fe70-ActionStmt", + "source": "call demo_custom_implicit()" + }, + { + "id": "0x55e33c09fe70-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x55e33c09ae20-CallStmt" + }, + { + "id": "0x55e33c09ae20-CallStmt", + "call": "0x55e33c09ae20-Call" + }, + { + "id": "0x55e33c09ae20-Call", + "ProcedureDesignator": "0x55e33c09ae38-ProcedureDesignator" + }, + { + "id": "0x55e33c09ae38-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55e33c09ae38-Name" + }, + { + "id": "0x55e33c09ae38-Name", + "source": "demo_custom_implicit" + }, + { + "id": "0x55e33c0a0da0-InternalSubprogramPart", + "Statement": "0x55e33c0a0db8-Statement", + "InternalSubprogram": [ + "0x55e33c0a1de0-InternalSubprogram" + ] + }, + { + "id": "0x55e33c0a0db8-Statement", + "statement": "0x55e33c0a0dc8-ContainsStmt", + "source": "contains" + }, + { + "id": "0x55e33c0a0dc8-ContainsStmt" + }, + { + "id": "0x55e33c0a1de0-InternalSubprogram", + "variantKey": "SubroutineSubprogram", + "SubroutineSubprogram": "0x55e33c093940-SubroutineSubprogram" + }, + { + "id": "0x55e33c093940-SubroutineSubprogram", + "Statement": "0x55e33c093a88-Statement", + "SpecificationPart": "0x55e33c0939e0-SpecificationPart", + "ExecutionPart": "0x55e33c0939c8-ExecutionPart", + "Statement": "0x55e33c093940-Statement" + }, + { + "id": "0x55e33c093a88-Statement", + "statement": "0x55e33c093a98-SubroutineStmt", + "source": "subroutine demo_custom_implicit()" + }, + { + "id": "0x55e33c093a98-SubroutineStmt", + "Name": "0x55e33c093ad0-Name" + }, + { + "id": "0x55e33c093ad0-Name", + "source": "demo_custom_implicit" + }, + { + "id": "0x55e33c0939e0-SpecificationPart", + "ImplicitPart": "0x55e33c0939f8-ImplicitPart" + }, + { + "id": "0x55e33c0939f8-ImplicitPart", + "ImplicitPartStmt": [ + "0x55e33c0a0b50-ImplicitPartStmt", + "0x55e33c07cc80-ImplicitPartStmt" + ] + }, + { + "id": "0x55e33c0a0b50-ImplicitPartStmt", + "variantKey": "Statement", + "Statement": "0x55e33c0a0b50-Statement" + }, + { + "id": "0x55e33c0a0b50-Statement", + "statement": "0x55e33c0a1bf0-ImplicitStmt", + "source": "implicit real(8)(a-c)" + }, + { + "id": "0x55e33c0a1bf0-ImplicitStmt", + "variantKey": "ImplicitSpec", + "ImplicitSpec": [ + "0x55e33c09e590-ImplicitSpec" + ] + }, + { + "id": "0x55e33c09e590-ImplicitSpec", + "DeclarationTypeSpec": "0x55e33c09e5a8-DeclarationTypeSpec", + "LetterSpec": [ + "0x55e33c0a1bd0-LetterSpec" + ] + }, + { + "id": "0x55e33c09e5a8-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55e33c09e5a8-IntrinsicTypeSpec" + }, + { + "id": "0x55e33c09e5a8-IntrinsicTypeSpec", + "variantKey": "Real", + "Real": "0x55e33c09e5a8-Real" + }, + { + "id": "0x55e33c09e5a8-Real", + "KindSelector": "0x55e33c09e5a8-KindSelector" + }, + { + "id": "0x55e33c09e5a8-KindSelector", + "variantKey": "Expr", + "Expr": "0x55e33c003790-Expr" + }, + { + "id": "0x55e33c003790-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e33c0037b0-LiteralConstant" + }, + { + "id": "0x55e33c0037b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e33c0037b0-IntLiteralConstant" + }, + { + "id": "0x55e33c0037b0-IntLiteralConstant", + "CharBlock": "8" + }, + { + "id": "0x55e33c0a1bd0-LetterSpec", + "firstLetter": "a", + "lastLetter": "c" + }, + { + "id": "0x55e33c07cc80-ImplicitPartStmt", + "variantKey": "Statement", + "Statement": "0x55e33c07cc80-Statement" + }, + { + "id": "0x55e33c07cc80-Statement", + "statement": "0x55e33c0a1d50-ImplicitStmt", + "source": "implicit integer(8)(i-k)" + }, + { + "id": "0x55e33c0a1d50-ImplicitStmt", + "variantKey": "ImplicitSpec", + "ImplicitSpec": [ + "0x55e33c09faf0-ImplicitSpec" + ] + }, + { + "id": "0x55e33c09faf0-ImplicitSpec", + "DeclarationTypeSpec": "0x55e33c09fb08-DeclarationTypeSpec", + "LetterSpec": [ + "0x55e33c0a1c50-LetterSpec" + ] + }, + { + "id": "0x55e33c09fb08-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55e33c09fb08-IntrinsicTypeSpec" + }, + { + "id": "0x55e33c09fb08-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55e33c09fb08-IntegerTypeSpec" + }, + { + "id": "0x55e33c09fb08-IntegerTypeSpec", + "KindSelector": "0x55e33c09fb08-KindSelector" + }, + { + "id": "0x55e33c09fb08-KindSelector", + "variantKey": "Expr", + "Expr": "0x55e33c090760-Expr" + }, + { + "id": "0x55e33c090760-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e33c090780-LiteralConstant" + }, + { + "id": "0x55e33c090780-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e33c090780-IntLiteralConstant" + }, + { + "id": "0x55e33c090780-IntLiteralConstant", + "CharBlock": "8" + }, + { + "id": "0x55e33c0a1c50-LetterSpec", + "firstLetter": "i", + "lastLetter": "k" + }, + { + "id": "0x55e33c0939c8-ExecutionPart", + "ExecutionPartConstruct": [ + "0x55e33c09e950-ExecutionPartConstruct", + "0x55e33c08e960-ExecutionPartConstruct", + "0x55e33c0920c0-ExecutionPartConstruct" + ] + }, + { + "id": "0x55e33c0939c8-ExecutionPartConstruct" + }, + { + "id": "0x55e33c09e950-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e33c09e950-ExecutableConstruct" + }, + { + "id": "0x55e33c09e950-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e33c09e950-Statement" + }, + { + "id": "0x55e33c09e950-Statement", + "statement": "0x55e33c09e960-ActionStmt", + "source": "a_var = 3.141592653589793_8" + }, + { + "id": "0x55e33c09e960-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55e33c08ec10-AssignmentStmt" + }, + { + "id": "0x55e33c08ec10-AssignmentStmt", + "Variable": "0x55e33c08ecf0-Variable", + "Expr": "0x55e33c08ec20-Expr" + }, + { + "id": "0x55e33c08ecf0-Variable", + "variantKey": "Designator", + "Designator": "0x55e33c071160-Designator" + }, + { + "id": "0x55e33c071160-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e33c071170-DataRef" + }, + { + "id": "0x55e33c071170-DataRef", + "variantKey": "Name", + "Name": "0x55e33c071170-Name" + }, + { + "id": "0x55e33c071170-Name", + "source": "a_var" + }, + { + "id": "0x55e33c08ec20-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e33c08ec40-LiteralConstant" + }, + { + "id": "0x55e33c08ec40-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x55e33c08ec40-RealLiteralConstant" + }, + { + "id": "0x55e33c08ec40-RealLiteralConstant", + "real": "0x55e33c08ec40-Real", + "kind": "0x55e33c08ec50-KindParam" + }, + { + "id": "0x55e33c08ec40-Real", + "source": "3.141592653589793" + }, + { + "id": "0x55e33c08ec50-KindParam", + "variantKey": "uint64_t", + "uint64_t": "8" + }, + { + "id": "0x55e33c08e960-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e33c08e960-ExecutableConstruct" + }, + { + "id": "0x55e33c08e960-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e33c08e960-Statement" + }, + { + "id": "0x55e33c08e960-Statement", + "statement": "0x55e33c08e970-ActionStmt", + "source": "i_var = 1000000000000_8" + }, + { + "id": "0x55e33c08e970-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55e33c08e840-AssignmentStmt" + }, + { + "id": "0x55e33c08e840-AssignmentStmt", + "Variable": "0x55e33c08e920-Variable", + "Expr": "0x55e33c08e850-Expr" + }, + { + "id": "0x55e33c08e920-Variable", + "variantKey": "Designator", + "Designator": "0x55e33c09f9a0-Designator" + }, + { + "id": "0x55e33c09f9a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e33c09f9b0-DataRef" + }, + { + "id": "0x55e33c09f9b0-DataRef", + "variantKey": "Name", + "Name": "0x55e33c09f9b0-Name" + }, + { + "id": "0x55e33c09f9b0-Name", + "source": "i_var" + }, + { + "id": "0x55e33c08e850-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e33c08e870-LiteralConstant" + }, + { + "id": "0x55e33c08e870-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e33c08e870-IntLiteralConstant" + }, + { + "id": "0x55e33c08e870-IntLiteralConstant", + "CharBlock": "1000000000000", + "KindParam": "0x55e33c08e870-KindParam" + }, + { + "id": "0x55e33c08e870-KindParam", + "variantKey": "uint64_t", + "uint64_t": "8" + }, + { + "id": "0x55e33c0920c0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e33c0920c0-ExecutableConstruct" + }, + { + "id": "0x55e33c0920c0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e33c0920c0-Statement" + }, + { + "id": "0x55e33c0920c0-Statement", + "statement": "0x55e33c0920d0-ActionStmt", + "source": "print *, \"Custom implicit kinds:\", kind(a_var), kind(i_var)" + }, + { + "id": "0x55e33c0920d0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55e33c091f40-PrintStmt" + }, + { + "id": "0x55e33c091f40-PrintStmt", + "Format": "0x55e33c091f58-Format", + "OutputItem": [ + "0x55e33c091df0-OutputItem", + "0x55e33c090460-OutputItem", + "0x55e33c091d00-OutputItem" + ] + }, + { + "id": "0x55e33c091f58-Format", + "variantKey": "Star", + "Star": "0x55e33c091f58-Star" + }, + { + "id": "0x55e33c091f58-Star" + }, + { + "id": "0x55e33c091df0-OutputItem", + "variantKey": "Expr", + "Expr": "0x55e33c091df0-Expr" + }, + { + "id": "0x55e33c091df0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e33c091e10-LiteralConstant" + }, + { + "id": "0x55e33c091e10-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55e33c091e10-CharLiteralConstant" + }, + { + "id": "0x55e33c091e10-CharLiteralConstant", + "string": "Custom implicit kinds:" + }, + { + "id": "0x55e33c090460-OutputItem", + "variantKey": "Expr", + "Expr": "0x55e33c090460-Expr" + }, + { + "id": "0x55e33c090460-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55e33c090370-FunctionReference" + }, + { + "id": "0x55e33c090370-FunctionReference", + "Call": "0x55e33c090370-Call" + }, + { + "id": "0x55e33c090370-Call", + "ProcedureDesignator": "0x55e33c090388-ProcedureDesignator", + "ActualArgSpec": [ + "0x55e33c090200-ActualArgSpec" + ] + }, + { + "id": "0x55e33c090388-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55e33c090388-Name" + }, + { + "id": "0x55e33c090388-Name", + "source": "kind" + }, + { + "id": "0x55e33c090200-ActualArgSpec", + "ActualArg": "0x55e33c090200-ActualArg" + }, + { + "id": "0x55e33c090200-ActualArg", + "variantKey": "Expr", + "Expr": "0x55e33c090fe0-Expr" + }, + { + "id": "0x55e33c090fe0-Expr", + "variantKey": "Designator", + "Designator": "0x55e33c0a06e0-Designator" + }, + { + "id": "0x55e33c0a06e0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e33c0a06f0-DataRef" + }, + { + "id": "0x55e33c0a06f0-DataRef", + "variantKey": "Name", + "Name": "0x55e33c0a06f0-Name" + }, + { + "id": "0x55e33c0a06f0-Name", + "source": "a_var" + }, + { + "id": "0x55e33c091d00-OutputItem", + "variantKey": "Expr", + "Expr": "0x55e33c091d00-Expr" + }, + { + "id": "0x55e33c091d00-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55e33c091c10-FunctionReference" + }, + { + "id": "0x55e33c091c10-FunctionReference", + "Call": "0x55e33c091c10-Call" + }, + { + "id": "0x55e33c091c10-Call", + "ProcedureDesignator": "0x55e33c091c28-ProcedureDesignator", + "ActualArgSpec": [ + "0x55e33c091aa0-ActualArgSpec" + ] + }, + { + "id": "0x55e33c091c28-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55e33c091c28-Name" + }, + { + "id": "0x55e33c091c28-Name", + "source": "kind" + }, + { + "id": "0x55e33c091aa0-ActualArgSpec", + "ActualArg": "0x55e33c091aa0-ActualArg" + }, + { + "id": "0x55e33c091aa0-ActualArg", + "variantKey": "Expr", + "Expr": "0x55e33c091870-Expr" + }, + { + "id": "0x55e33c091870-Expr", + "variantKey": "Designator", + "Designator": "0x55e33c08f0f0-Designator" + }, + { + "id": "0x55e33c08f0f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e33c08f100-DataRef" + }, + { + "id": "0x55e33c08f100-DataRef", + "variantKey": "Name", + "Name": "0x55e33c08f100-Name" + }, + { + "id": "0x55e33c08f100-Name", + "source": "i_var" + }, + { + "id": "0x55e33c093940-Statement", + "statement": "0x55e33c093950-EndSubroutineStmt", + "source": "end subroutine demo_custom_implicit" + }, + { + "id": "0x55e33c093950-EndSubroutineStmt", + "Name": "0x55e33c093950-Name" + }, + { + "id": "0x55e33c093950-Name", + "source": "demo_custom_implicit" + }, + { + "id": "0x55e33c0a0d60-Statement", + "statement": "0x55e33c0a0d70-EndProgramStmt", + "source": "end program IMPLICIT" + }, + { + "id": "0x55e33c0a0d70-EndProgramStmt", + "Name": "0x55e33c0a0d70-Name" + }, + { + "id": "0x55e33c0a0d70-Name", + "source": "IMPLICIT" + } + ], + "comments": [ + { + "text": " 1. Standard IMPLICIT NONE (requires all variables to be declared)", + "stmtId": "0x55e33c0a7cb0-Statement", + "trailing": false + }, + { + "text": " 2. Custom IMPLICIT rules by letter range", + "stmtId": "0x55e33c0a0b50-Statement", + "trailing": false + }, + { + "text": " Names starting with A, B, C -> 8-byte REAL", + "stmtId": "0x55e33c0a0b50-Statement", + "trailing": true + }, + { + "text": " Names starting with I, J, K -> 8-byte INTEGER", + "stmtId": "0x55e33c07cc80-Statement", + "trailing": true + }, + { + "text": " Implicit REAL(8)", + "stmtId": "0x55e33c09e950-Statement", + "trailing": true + }, + { + "text": " Implicit INTEGER(8)", + "stmtId": "0x55e33c08e960-Statement", + "trailing": true + } + ], + "enums": { + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "Fortran::common::ImportKind": [ + "Default", + "Only", + "None", + "All" + ], + "Fortran::common::OmpDependenceKind": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::common::OmpMemoryOrderType": [ + "Acq_Rel", + "Acquire", + "Relaxed", + "Release", + "Seq_Cst" + ], + "Fortran::common::OpenACCDeviceType": [ + "Star", + "Default", + "Nvidia", + "Radeon", + "Host", + "Multicore", + "None" + ], + "Fortran::parser::AccDataModifier::Modifier": [ + "ReadOnly", + "Zero" + ], + "Fortran::parser::AccessSpec::Kind": [ + "Public", + "Private" + ], + "Fortran::parser::BindEntity::Kind": [ + "Object", + "Common" + ], + "Fortran::parser::CompilerDirective::VectorLength::Kind": [ + "Auto", + "Fixed", + "Scalable" + ], + "Fortran::parser::ConnectSpec::CharExpr::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Encoding", + "Form", + "Pad", + "Position", + "Round", + "Sign", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::DefinedOperator::IntrinsicOperator": [ + "Power", + "Multiply", + "Divide", + "Add", + "Subtract", + "Concat", + "LT", + "LE", + "EQ", + "NE", + "GE", + "GT", + "NOT", + "AND", + "OR", + "EQV", + "NEQV" + ], + "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec": [ + "External", + "Type" + ], + "Fortran::parser::InquireSpec::CharVar::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Direct", + "Encoding", + "Form", + "Formatted", + "Iomsg", + "Name", + "Pad", + "Position", + "Read", + "Readwrite", + "Round", + "Sequential", + "Sign", + "Stream", + "Status", + "Unformatted", + "Write", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::InquireSpec::IntVar::Kind": [ + "Iostat", + "Nextrec", + "Number", + "Pos", + "Recl", + "Size" + ], + "Fortran::parser::InquireSpec::LogVar::Kind": [ + "Exist", + "Named", + "Opened", + "Pending" + ], + "Fortran::parser::IntentSpec::Intent": [ + "In", + "Out", + "InOut" + ], + "Fortran::parser::IoControlSpec::CharExpr::Kind": [ + "Advance", + "Blank", + "Decimal", + "Delim", + "Pad", + "Round", + "Sign" + ], + "Fortran::parser::ReductionOperator::Operator": [ + "Plus", + "Multiply", + "Max", + "Min", + "Iand", + "Ior", + "Ieor", + "And", + "Or", + "Eqv", + "Neqv" + ], + "Fortran::parser::OmpAccessGroup::Value": [ + "Cgroup" + ], + "Fortran::parser::OmpAdjustArgsClause::OmpAdjustOp::Value": [ + "Nothing", + "Need_Device_Ptr" + ], + "Fortran::parser::OmpAlwaysModifier::Value": [ + "Always" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpAttachModifier::Value": [ + "Always", + "Never", + "Auto" + ], + "Fortran::parser::OmpAutomapModifier::Value": [ + "Automap" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpCloseModifier::Value": [ + "Close" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default", + "Present" + ], + "Fortran::parser::OmpDeleteModifier::Value": [ + "Delete" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpDirectiveSpecification::Flag": [ + "DeprecatedSyntax", + "CrossesLabelDo" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpInteropType::Value": [ + "Target", + "Targetsync" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "Storage", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpObject::Invalid::Kind": [ + "BlankCommonBlock" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpPresentModifier::Value": [ + "Present" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpRefModifier::Value": [ + "Ref_Ptee", + "Ref_Ptr", + "Ref_Ptr_Ptee" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpSelfModifier::Value": [ + "Self" + ], + "Fortran::parser::OmpSeverityClause::SevLevel": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpThreadsetClause::ThreadsetPolicy": [ + "Omp_Pool", + "Omp_Team" + ], + "Fortran::parser::OmpTraitSelectorName::Value": [ + "Arch", + "Atomic_Default_Mem_Order", + "Condition", + "Device_Num", + "Extension", + "Isa", + "Kind", + "Requires", + "Simd", + "Uid", + "Vendor" + ], + "Fortran::parser::OmpTraitSetSelectorName::Value": [ + "Construct", + "Device", + "Implementation", + "Target_Device", + "User" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpxHoldModifier::Value": [ + "Ompx_Hold" + ], + "Fortran::parser::ProcedureStmt::Kind": [ + "ModuleProcedure", + "Procedure" + ], + "Fortran::parser::SavedEntity::Kind": [ + "Entity", + "Common" + ], + "Fortran::parser::StopStmt::Kind": [ + "Stop", + "ErrorStop" + ], + "Fortran::parser::UseStmt::ModuleNature": [ + "Intrinsic", + "Non_Intrinsic" + ] + } +} diff --git a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java index 0c06605a..2e6e13a2 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -687,6 +687,18 @@ void testModule2Native() { } } + @Test + void testImplicit() { + testJson("program/implicit.json"); + } + + @Test + void testImplicitNative() { + if (SpecsPlatforms.isLinux()) { + testNative("program/implicit.f90"); + } + } + @Test void testFujitsu0000_0000() { testJson("fujitsu/0000/0000_0000.json"); From 9a61306f0a7d09ba49acedbce6f954fdda90ee93 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 6 Aug 2026 16:48:10 +0100 Subject: [PATCH 187/260] Implement AST nodes for implicit statement and implicit part --- .../fe/specs/fortran/ast/FortranKeyword.java | 1 + .../ast/nodes/program/ImplicitPart.java | 26 ++++++++++++++ .../ast/nodes/specification/ImplicitSpec.java | 22 ++++++++++++ .../ast/nodes/specification/LetterSpec.java | 36 +++++++++++++++++++ .../ast/nodes/stmt/ImplicitPartStmt.java | 12 +++++++ .../fortran/ast/nodes/stmt/ImplicitStmt.java | 35 ++++++++++++++++++ 6 files changed, 132 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/ImplicitPart.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/ImplicitSpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/LetterSpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImplicitPartStmt.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImplicitStmt.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java index c076b0d7..37ead1da 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -79,6 +79,7 @@ public enum FortranKeyword { IMPORT, NONE, ALL, + IMPLICIT, OMP; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/ImplicitPart.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/ImplicitPart.java new file mode 100644 index 00000000..5c36a5e4 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/ImplicitPart.java @@ -0,0 +1,26 @@ +package pt.up.fe.specs.fortran.ast.nodes.program; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.ImplicitPartStmt; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +public class ImplicitPart extends FortranNode { + public ImplicitPart(DataStore data, Collection children) { + super(data, children); + } + + public List getStatements() { + return getChildren(ImplicitPartStmt.class); + } + + @Override + public String getCode() { + return getStatements().stream() + .map(ImplicitPartStmt::getCode) + .collect(Collectors.joining(ln())); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/ImplicitSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/ImplicitSpec.java new file mode 100644 index 00000000..b29a4844 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/ImplicitSpec.java @@ -0,0 +1,22 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; +import java.util.Optional; + +public class ImplicitSpec extends FortranNode { + public static final DataKey FIRST_LOCATION = KeyFactory.string("first_location"); + public static final DataKey> LAST_LOCATION = KeyFactory.optional("last_location"); + + public ImplicitSpec(DataStore data, Collection children) { + super(data, children); + } + + public String getFirstLocation() { + return get(FIRST_LOCATION); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/LetterSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/LetterSpec.java new file mode 100644 index 00000000..b9790972 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/LetterSpec.java @@ -0,0 +1,36 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; +import java.util.Optional; + +public class LetterSpec extends FortranNode { + public static final DataKey FIRST_LETTER = KeyFactory.integer("first_letter"); + public static final DataKey> LAST_LETTER = KeyFactory.optional("last_letter"); + + public LetterSpec(DataStore data, Collection children) { + super(data, children); + } + + public char getFirstLetter() { + return (char) get(FIRST_LETTER).intValue(); + } + + public Optional getLastLetter() { + return get(LAST_LETTER).map(i -> (char) i.intValue()); + } + + @Override + public String getCode() { + var firstLetterCode = Character.toString(getFirstLetter()); + var lastLetterCode = getLastLetter() + .map(letter -> "-" + letter) + .orElse(""); + + return firstLetterCode + lastLetterCode; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImplicitPartStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImplicitPartStmt.java new file mode 100644 index 00000000..a7eaea44 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImplicitPartStmt.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class ImplicitPartStmt extends Stmt { + public ImplicitPartStmt(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImplicitStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImplicitStmt.java new file mode 100644 index 00000000..3739d131 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImplicitStmt.java @@ -0,0 +1,35 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.specification.LetterSpec; +import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DeclType; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +public class ImplicitStmt extends ImplicitPartStmt { + public ImplicitStmt(DataStore data, Collection children) { + super(data, children); + } + + public DeclType getDeclType() { + return getChild(DeclType.class, 0); + } + + public List getLetterSpecs() { + return getChildrenOf(LetterSpec.class); + } + + @Override + public String getStmtCode() { + var declTypeCode = getDeclType().getCode(); + var letterSpecsCode = getLetterSpecs().stream() + .map(LetterSpec::getCode) + .collect(Collectors.joining(", ", " (", ")")); + + return keyword(FortranKeyword.IMPLICIT) + " " + declTypeCode + letterSpecsCode; + } +} From 5e9b62efa65089e58ba07e0df1c7bcf6dd6b7948 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 6 Aug 2026 17:09:19 +0100 Subject: [PATCH 188/260] Improve type consistency of specification --- .../ast/nodes/program/Specification.java | 44 +++++++++++++++++-- .../program/construct/DeclConstruct.java | 12 +++++ .../program/construct/DeclStmtAdapter.java | 22 ++++++++++ .../program/construct/SpecConstruct.java | 12 +++++ .../program/construct/SpecStmtAdapter.java | 22 ++++++++++ .../fortran/ast/nodes/stmt/AccessStmt.java | 2 +- .../fortran/ast/nodes/stmt/CommonStmt.java | 2 +- .../{DeclarationStmt.java => DeclStmt.java} | 4 +- .../fortran/ast/nodes/stmt/ExternalStmt.java | 2 +- .../{SpecificationStmt.java => SpecStmt.java} | 4 +- .../ast/nodes/stmt/TypeDeclarationStmt.java | 3 +- .../ast/nodes/stmt/datastmt/DataStmt.java | 4 +- 12 files changed, 118 insertions(+), 15 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/DeclConstruct.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/DeclStmtAdapter.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/SpecConstruct.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/SpecStmtAdapter.java rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/{DeclarationStmt.java => DeclStmt.java} (61%) rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/{SpecificationStmt.java => SpecStmt.java} (58%) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Specification.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Specification.java index b801602c..5a75bcca 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Specification.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Specification.java @@ -2,22 +2,58 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.stmt.SpecificationStmt; +import pt.up.fe.specs.fortran.ast.nodes.program.construct.DeclConstruct; +import pt.up.fe.specs.fortran.ast.nodes.stmt.ImportStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.UseStmt; import java.util.Collection; import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; -public class Specification extends StmtBlock { +public class Specification extends FortranNode { public Specification(DataStore data, Collection children) { super(data, children); } - public List getSpecificationStatements() { - return getChildrenOf(SpecificationStmt.class); + public List getUseStmts() { + return getChildrenOf(UseStmt.class); + } + + public List getImportStmts() { + return getChildrenOf(ImportStmt.class); + } + + public ImplicitPart getImplicitPart() { + return getChild(ImplicitPart.class, 0); + } + + public List getDeclarationConstructs() { + return getChildrenOf(DeclConstruct.class); } public void addUseStmt(UseStmt stmt) { addChild(0, stmt); } + + @Override + public String getCode() { + var useStmtsCode = getUseStmts().stream() + .map(UseStmt::getCode) + .collect(Collectors.joining(ln())); + + var importStmtsCode = getImportStmts().stream() + .map(ImportStmt::getCode) + .collect(Collectors.joining(ln())); + + var implicitPartCode = getImplicitPart().getCode(); + + var declConstructsCode = getDeclarationConstructs().stream() + .map(DeclConstruct::getCode) + .collect(Collectors.joining(ln())); + + return Stream.of(useStmtsCode, importStmtsCode, implicitPartCode, declConstructsCode) + .filter(code -> !code.isEmpty()) + .collect(Collectors.joining(ln())); + } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/DeclConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/DeclConstruct.java new file mode 100644 index 00000000..e93f7ce3 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/DeclConstruct.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.program.construct; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class DeclConstruct extends FortranNode { + public DeclConstruct(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/DeclStmtAdapter.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/DeclStmtAdapter.java new file mode 100644 index 00000000..5d5732ed --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/DeclStmtAdapter.java @@ -0,0 +1,22 @@ +package pt.up.fe.specs.fortran.ast.nodes.program.construct; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.DeclStmt; + +import java.util.Collection; + +public class DeclStmtAdapter extends DeclConstruct { + public DeclStmtAdapter(DataStore data, Collection children) { + super(data, children); + } + + public DeclStmt getDeclarationStmt() { + return getChild(DeclStmt.class, 0); + } + + @Override + public String getCode() { + return getDeclarationStmt().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/SpecConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/SpecConstruct.java new file mode 100644 index 00000000..38ece262 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/SpecConstruct.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.program.construct; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class SpecConstruct extends DeclConstruct { + public SpecConstruct(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/SpecStmtAdapter.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/SpecStmtAdapter.java new file mode 100644 index 00000000..ae607cde --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/SpecStmtAdapter.java @@ -0,0 +1,22 @@ +package pt.up.fe.specs.fortran.ast.nodes.program.construct; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.SpecStmt; + +import java.util.Collection; + +public class SpecStmtAdapter extends SpecConstruct { + public SpecStmtAdapter(DataStore data, Collection children) { + super(data, children); + } + + public SpecStmt getSpecificationStmt() { + return getChild(SpecStmt.class, 0); + } + + @Override + public String getCode() { + return getSpecificationStmt().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AccessStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AccessStmt.java index b7424401..d2b0b269 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AccessStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/AccessStmt.java @@ -11,7 +11,7 @@ import java.util.List; import java.util.stream.Collectors; -public class AccessStmt extends SpecificationStmt { +public class AccessStmt extends SpecStmt { public static final DataKey ACCESS_KIND = KeyFactory.enumeration("access_kind", AccessKind.class); public AccessStmt(DataStore data, Collection children) { diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonStmt.java index 34f355c9..98ce58e0 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonStmt.java @@ -8,7 +8,7 @@ import java.util.List; import java.util.stream.Collectors; -public class CommonStmt extends SpecificationStmt { +public class CommonStmt extends SpecStmt { public CommonStmt(DataStore data, Collection children) { super(data, children); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DeclarationStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DeclStmt.java similarity index 61% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DeclarationStmt.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DeclStmt.java index 49501851..ff995feb 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DeclarationStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DeclStmt.java @@ -5,9 +5,9 @@ import java.util.Collection; -public abstract class DeclarationStmt extends Stmt { +public abstract class DeclStmt extends Stmt { - public DeclarationStmt(DataStore data, Collection children) { + public DeclStmt(DataStore data, Collection children) { super(data, children); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExternalStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExternalStmt.java index 52862299..cb4f2dec 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExternalStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExternalStmt.java @@ -9,7 +9,7 @@ import java.util.List; import java.util.stream.Collectors; -public class ExternalStmt extends SpecificationStmt { +public class ExternalStmt extends SpecStmt { public ExternalStmt(DataStore data, Collection children) { super(data, children); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/SpecificationStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/SpecStmt.java similarity index 58% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/SpecificationStmt.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/SpecStmt.java index e3e4c8d2..f3aa2d73 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/SpecificationStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/SpecStmt.java @@ -5,9 +5,9 @@ import java.util.Collection; -public abstract class SpecificationStmt extends DeclarationStmt { +public abstract class SpecStmt extends DeclStmt { - public SpecificationStmt(DataStore data, Collection children) { + public SpecStmt(DataStore data, Collection children) { super(data, children); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java index fe808efd..a6be0d33 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java @@ -3,7 +3,6 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.decl.EntityDecl; -import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.AttributeSpecifier; import pt.up.fe.specs.util.SpecsCheck; @@ -14,7 +13,7 @@ /** * Has EntityDecl as children, each one representing an entity declaration. */ -public class TypeDeclarationStmt extends SpecificationStmt { +public class TypeDeclarationStmt extends SpecStmt { public TypeDeclarationStmt(DataStore data, Collection children) { super(data, children); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmt.java index ef2208de..ea9c0327 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmt.java @@ -3,13 +3,13 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.stmt.DeclarationStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.DeclStmt; import java.util.Collection; import java.util.List; import java.util.stream.Collectors; -public class DataStmt extends DeclarationStmt { +public class DataStmt extends DeclStmt { public DataStmt(DataStore data, Collection children) { super(data, children); } From 037392b87811ff823399371c3cea49ba65212ced Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 6 Aug 2026 17:33:19 +0100 Subject: [PATCH 189/260] Start fixing specification processing --- .../specs/fortran/ast/FortranNodeFactory.java | 23 ++++++---- .../fortran/ast/nodes/stmt/DeclStmt.java | 1 - .../fortran/ast/nodes/stmt/ParameterStmt.java | 2 +- .../fortran/ast/nodes/stmt/SpecStmt.java | 3 +- .../parser/processors/ProgramProcessors.java | 42 +++++++++++++++++-- 5 files changed, 56 insertions(+), 15 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java index dc8bf7e6..3deee7e8 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java @@ -21,17 +21,14 @@ import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpReductionClause; import pt.up.fe.specs.fortran.ast.nodes.omp.enums.OmpClauseKind; import pt.up.fe.specs.fortran.ast.nodes.omp.enums.OmpDirectiveKind; -import pt.up.fe.specs.fortran.ast.nodes.program.Application; -import pt.up.fe.specs.fortran.ast.nodes.program.Execution; -import pt.up.fe.specs.fortran.ast.nodes.program.FortranFile; -import pt.up.fe.specs.fortran.ast.nodes.program.Specification; +import pt.up.fe.specs.fortran.ast.nodes.program.*; +import pt.up.fe.specs.fortran.ast.nodes.program.construct.DeclStmtAdapter; +import pt.up.fe.specs.fortran.ast.nodes.program.construct.SpecStmtAdapter; import pt.up.fe.specs.fortran.ast.nodes.program.unit.EndProgramStmt; import pt.up.fe.specs.fortran.ast.nodes.program.unit.ProgramStmt; import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; import pt.up.fe.specs.fortran.ast.nodes.program.unit.ProgramUnit; -import pt.up.fe.specs.fortran.ast.nodes.stmt.LiteralExecutionStmt; -import pt.up.fe.specs.fortran.ast.nodes.stmt.PrintStmt; -import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.*; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.EndDoStmt; @@ -380,4 +377,16 @@ public NamedParameter namedParameter(String name) { return node; } + + public ImplicitPart implicitPart(List stmts) { + return newNode(ImplicitPart.class, stmts); + } + + public DeclStmtAdapter declStmtAdapter(DeclStmt declStmt) { + return newNode(DeclStmtAdapter.class, List.of(declStmt)); + } + + public SpecStmtAdapter specStmtAdapter(SpecStmt specStmt) { + return newNode(SpecStmtAdapter.class, List.of(specStmt)); + } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DeclStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DeclStmt.java index ff995feb..f9febbe0 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DeclStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DeclStmt.java @@ -6,7 +6,6 @@ import java.util.Collection; public abstract class DeclStmt extends Stmt { - public DeclStmt(DataStore data, Collection children) { super(data, children); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ParameterStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ParameterStmt.java index fd7188aa..54c899ab 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ParameterStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ParameterStmt.java @@ -9,7 +9,7 @@ import java.util.List; import java.util.stream.Collectors; -public class ParameterStmt extends Stmt { +public class ParameterStmt extends SpecStmt { public ParameterStmt(DataStore data, Collection children) { super(data, children); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/SpecStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/SpecStmt.java index f3aa2d73..65a5a089 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/SpecStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/SpecStmt.java @@ -5,8 +5,7 @@ import java.util.Collection; -public abstract class SpecStmt extends DeclStmt { - +public abstract class SpecStmt extends Stmt { public SpecStmt(DataStore data, Collection children) { super(data, children); } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java index 32974197..6d827fa2 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java @@ -6,12 +6,15 @@ import pt.up.fe.specs.fortran.ast.nodes.program.FortranFile; import pt.up.fe.specs.fortran.ast.nodes.program.InternalSubprogramPart; import pt.up.fe.specs.fortran.ast.nodes.program.Specification; +import pt.up.fe.specs.fortran.ast.nodes.program.construct.DeclConstruct; import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.Function; import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.Subroutine; import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; import pt.up.fe.specs.fortran.ast.nodes.program.unit.Module; import pt.up.fe.specs.fortran.ast.nodes.program.unit.ModuleSubprogramPart; import pt.up.fe.specs.fortran.ast.nodes.program.unit.SubprogramUnit; +import pt.up.fe.specs.fortran.ast.nodes.stmt.DeclStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.SpecStmt; import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; import pt.up.fe.specs.util.SpecsIo; @@ -92,16 +95,47 @@ public void subprogramUnit(SubprogramUnit subprogramUnit) { } public void specification(Specification specification) { + var attrs = attributes(specification); - if (attributes(specification).has(FlangName.STATEMENT)) { - specification.addChildren(getChildren(specification, FlangName.STATEMENT)); + if (attrs.has(FlangName.USE_STMT)) { + var useStmts = getChildren(specification, FlangName.USE_STMT); + specification.addChildren(useStmts); } - if (attributes(specification).has(FlangName.DECLARATION_CONSTRUCT)) { - specification.addChildren(getChildren(specification, FlangName.DECLARATION_CONSTRUCT)); + if (attrs.has(FlangName.IMPORT_STMT)) { + var importStmts = getChildren(specification, FlangName.IMPORT_STMT); + specification.addChildren(importStmts); } +// var implicitPart = getChild(specification, FlangName.IMPLICIT_PART); +// specification.addChild(implicitPart); + specification.addChild(factory().implicitPart(List.of())); + if (attrs.has(FlangName.DECLARATION_CONSTRUCT)) { + var rawDeclConstructs = getChildren(specification, FlangName.DECLARATION_CONSTRUCT); + + var declConstructs = rawDeclConstructs.stream() + .map(this::toDeclConstruct) + .toList(); + + specification.addChildren(declConstructs); + } + } + + public DeclConstruct toDeclConstruct(FortranNode node) { + if (node instanceof DeclConstruct declConstruct) { + return declConstruct; + } + + if (node instanceof DeclStmt declStmt) { + return factory().declStmtAdapter(declStmt); + } + + if (node instanceof SpecStmt specStmt) { + return factory().specStmtAdapter(specStmt); + } + + throw new RuntimeException("Cannot convert node to DeclConstruct: " + node); } public void execution(Execution execution) { From 255cf34393ce2fd4a17cbdc4e6de69e81ec0dc23 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 6 Aug 2026 18:04:48 +0100 Subject: [PATCH 190/260] Fix compiler directives on specification --- .../specs/fortran/ast/FortranNodeFactory.java | 5 +++++ .../construct/SpecDirectiveAdapter.java | 22 +++++++++++++++++++ .../parser/processors/ProgramProcessors.java | 20 ++++++++++++++++- 3 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/SpecDirectiveAdapter.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java index 3deee7e8..db8d4b5b 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java @@ -23,6 +23,7 @@ import pt.up.fe.specs.fortran.ast.nodes.omp.enums.OmpDirectiveKind; import pt.up.fe.specs.fortran.ast.nodes.program.*; import pt.up.fe.specs.fortran.ast.nodes.program.construct.DeclStmtAdapter; +import pt.up.fe.specs.fortran.ast.nodes.program.construct.SpecDirectiveAdapter; import pt.up.fe.specs.fortran.ast.nodes.program.construct.SpecStmtAdapter; import pt.up.fe.specs.fortran.ast.nodes.program.unit.EndProgramStmt; import pt.up.fe.specs.fortran.ast.nodes.program.unit.ProgramStmt; @@ -389,4 +390,8 @@ public DeclStmtAdapter declStmtAdapter(DeclStmt declStmt) { public SpecStmtAdapter specStmtAdapter(SpecStmt specStmt) { return newNode(SpecStmtAdapter.class, List.of(specStmt)); } + + public SpecDirectiveAdapter specDirectiveAdapter(CompilerDirective compilerDirective) { + return newNode(SpecDirectiveAdapter.class, List.of(compilerDirective)); + } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/SpecDirectiveAdapter.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/SpecDirectiveAdapter.java new file mode 100644 index 00000000..91f470fc --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/SpecDirectiveAdapter.java @@ -0,0 +1,22 @@ +package pt.up.fe.specs.fortran.ast.nodes.program.construct; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.CompilerDirective; + +import java.util.Collection; + +public class SpecDirectiveAdapter extends SpecConstruct { + public SpecDirectiveAdapter(DataStore data, Collection children) { + super(data, children); + } + + public CompilerDirective getCompilerDirective() { + return getChild(CompilerDirective.class, 0); + } + + @Override + public String getCode() { + return getCompilerDirective().getCode(); + } +} diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java index 6d827fa2..ecc41ef3 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java @@ -7,12 +7,14 @@ import pt.up.fe.specs.fortran.ast.nodes.program.InternalSubprogramPart; import pt.up.fe.specs.fortran.ast.nodes.program.Specification; import pt.up.fe.specs.fortran.ast.nodes.program.construct.DeclConstruct; +import pt.up.fe.specs.fortran.ast.nodes.program.construct.SpecConstruct; import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.Function; import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.Subroutine; import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; import pt.up.fe.specs.fortran.ast.nodes.program.unit.Module; import pt.up.fe.specs.fortran.ast.nodes.program.unit.ModuleSubprogramPart; import pt.up.fe.specs.fortran.ast.nodes.program.unit.SubprogramUnit; +import pt.up.fe.specs.fortran.ast.nodes.stmt.CompilerDirective; import pt.up.fe.specs.fortran.ast.nodes.stmt.DeclStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.SpecStmt; import pt.up.fe.specs.fortran.parser.FlangName; @@ -131,11 +133,27 @@ public DeclConstruct toDeclConstruct(FortranNode node) { return factory().declStmtAdapter(declStmt); } + if (node instanceof SpecStmt || node instanceof CompilerDirective) { + return toSpecConstruct(node); + } + + throw new RuntimeException("Cannot convert node to DeclConstruct: " + node); + } + + public SpecConstruct toSpecConstruct(FortranNode node) { + if (node instanceof SpecConstruct specConstruct) { + return specConstruct; + } + if (node instanceof SpecStmt specStmt) { return factory().specStmtAdapter(specStmt); } - throw new RuntimeException("Cannot convert node to DeclConstruct: " + node); + if (node instanceof CompilerDirective compilerDirective) { + return factory().specDirectiveAdapter(compilerDirective); + } + + throw new RuntimeException("Cannot convert node to SpecConstruct: " + node); } public void execution(Execution execution) { From 5c3eabb9564d942ab6e0f0c79f3d1b1cf9579b11 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 6 Aug 2026 18:10:01 +0100 Subject: [PATCH 191/260] Fix mismatch line and column reporting --- .../pt/up/fe/specs/fortran/parser/FortranParserTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java index 2e6e13a2..56148643 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -95,15 +95,15 @@ private static void compareCode(String expected, String normalized, String origi } if (col != expectedLine.length() || col != normalizedLine.length()) { - reportMismatch(line, col, expectedLine, normalizedLine, original); + reportMismatch(line + 1, col + 1, expectedLine, normalizedLine, original); return; } } if (expectedLines.size() > numLines) { - reportMismatch(numLines, 0, expectedLines.get(numLines), "", original); + reportMismatch(numLines + 1, 0, expectedLines.get(numLines), "", original); } else if (normalizedLines.size() > numLines) { - reportMismatch(numLines, 0, "", normalizedLines.get(numLines), original); + reportMismatch(numLines + 1, 0, "", normalizedLines.get(numLines), original); } } From b71a8ae4e1e2eb78888811823aa818aea4945399 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 6 Aug 2026 18:11:21 +0100 Subject: [PATCH 192/260] Restrict statement typing --- .../src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java | 1 + .../pt/up/fe/specs/fortran/ast/nodes/stmt/NamelistStmt.java | 2 +- .../fe/specs/fortran/ast/nodes/stmt/dimstmt/DimensionStmt.java | 3 ++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java index e4db64e1..3cb862a2 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/FortranNode.java @@ -137,6 +137,7 @@ protected String encase(String code) { return lowercase ? code.toLowerCase() : code.toUpperCase(); } + // TODO(Process-ing): Remove the need to use this protected boolean fixedForm() { return getContext().get(FortranContext.FIXED_FORM); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/NamelistStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/NamelistStmt.java index a5140fce..3ef3fc6d 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/NamelistStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/NamelistStmt.java @@ -8,7 +8,7 @@ import java.util.List; import java.util.stream.Collectors; -public class NamelistStmt extends Stmt { +public class NamelistStmt extends SpecStmt { public NamelistStmt(DataStore data, Collection children) { super(data, children); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/dimstmt/DimensionStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/dimstmt/DimensionStmt.java index 41299323..1d49124b 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/dimstmt/DimensionStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/dimstmt/DimensionStmt.java @@ -3,13 +3,14 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.SpecStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; import java.util.Collection; import java.util.List; import java.util.stream.Collectors; -public class DimensionStmt extends Stmt { +public class DimensionStmt extends SpecStmt { public DimensionStmt(DataStore data, Collection children) { super(data, children); } From 9bac9c2a52e8910e4f913bcb4bf79298a3165aa5 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 6 Aug 2026 18:35:08 +0100 Subject: [PATCH 193/260] Regenerate dumps --- .../fortran/parser/expr/complex_literal.json | 710 +++++++++--------- .../fortran/parser/omp/omp_basic.json | 220 +++--- .../fortran/parser/omp/omp_clause.json | 454 +++++------ .../fortran/parser/omp/omp_do.json | 552 +++++++------- .../fortran/parser/omp/omp_reduction.json | 410 +++++----- 5 files changed, 1173 insertions(+), 1173 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/expr/complex_literal.json b/FortranParser/resources-test/fortran/parser/expr/complex_literal.json index 9b86dbbd..eada2894 100644 --- a/FortranParser/resources-test/fortran/parser/expr/complex_literal.json +++ b/FortranParser/resources-test/fortran/parser/expr/complex_literal.json @@ -2,864 +2,864 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x55b4b269ef00-Program", + "id": "0x55fafcb6af00-Program", "ProgramUnit": [ - "0x55b4b26daef0-ProgramUnit" + "0x55fafcba6ef0-ProgramUnit" ] }, { - "id": "0x55b4b26daef0-ProgramUnit", + "id": "0x55fafcba6ef0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x55b4b26cf010-MainProgram" + "MainProgram": "0x55fafcb9b010-MainProgram" }, { - "id": "0x55b4b26cf010-MainProgram", - "Statement": "0x55b4b26cf158-Statement", - "SpecificationPart": "0x55b4b26cf0b0-SpecificationPart", - "ExecutionPart": "0x55b4b26cf098-ExecutionPart", - "Statement": "0x55b4b26cf010-Statement" + "id": "0x55fafcb9b010-MainProgram", + "Statement": "0x55fafcb9b158-Statement", + "SpecificationPart": "0x55fafcb9b0b0-SpecificationPart", + "ExecutionPart": "0x55fafcb9b098-ExecutionPart", + "Statement": "0x55fafcb9b010-Statement" }, { - "id": "0x55b4b26cf158-Statement", - "statement": "0x55b4b26cf168-ProgramStmt", + "id": "0x55fafcb9b158-Statement", + "statement": "0x55fafcb9b168-ProgramStmt", "source": "program COMPLEX_LITERAL" }, { - "id": "0x55b4b26cf168-ProgramStmt", - "Name": "0x55b4b26cf168-Name" + "id": "0x55fafcb9b168-ProgramStmt", + "Name": "0x55fafcb9b168-Name" }, { - "id": "0x55b4b26cf168-Name", + "id": "0x55fafcb9b168-Name", "source": "COMPLEX_LITERAL" }, { - "id": "0x55b4b26cf0b0-SpecificationPart", - "Statement": [ - "0x55b4b26d9c00-Statement" + "id": "0x55fafcb9b0b0-SpecificationPart", + "Statement": [ + "0x55fafcba5c00-Statement" ], - "ImplicitPart": "0x55b4b26cf0c8-ImplicitPart", + "ImplicitPart": "0x55fafcb9b0c8-ImplicitPart", "DeclarationConstruct": [ - "0x55b4b26c9ab0-DeclarationConstruct", - "0x55b4b26c9d60-DeclarationConstruct", - "0x55b4b26ca010-DeclarationConstruct", - "0x55b4b26caa30-DeclarationConstruct", - "0x55b4b26cae20-DeclarationConstruct", - "0x55b4b26cb210-DeclarationConstruct" + "0x55fafcb95ab0-DeclarationConstruct", + "0x55fafcb95d60-DeclarationConstruct", + "0x55fafcb96010-DeclarationConstruct", + "0x55fafcb96a30-DeclarationConstruct", + "0x55fafcb96e20-DeclarationConstruct", + "0x55fafcb97210-DeclarationConstruct" ] }, { - "id": "0x55b4b26d9c00-Statement", - "statement": "0x55b4b26e2cb0-UseStmt", + "id": "0x55fafcba5c00-Statement", + "statement": "0x55fafcbaecb0-UseStmt", "source": "use, intrinsic :: iso_fortran_env, only: sp => real32, dp => real64" }, { - "id": "0x55b4b26e2cb0-UseStmt", - "nature": "0x55b4b26e2cb0-ModuleNature", - "moduleName": "0x55b4b26e2cb8-Name", + "id": "0x55fafcbaecb0-UseStmt", + "nature": "0x55fafcbaecb0-ModuleNature", + "moduleName": "0x55fafcbaecb8-Name", "variantKey": "Only", "Only": [ - "0x55b4b26ac170-Only", - "0x55b4b269d4e0-Only" + "0x55fafcb78170-Only", + "0x55fafcb694e0-Only" ] }, { - "id": "0x55b4b26e2cb0-ModuleNature", + "id": "0x55fafcbaecb0-ModuleNature", "disambiguation": "Fortran::parser::UseStmt::ModuleNature", "value": "Intrinsic" }, { - "id": "0x55b4b26e2cb8-Name", + "id": "0x55fafcbaecb8-Name", "source": "iso_fortran_env" }, { - "id": "0x55b4b26ac170-Only", + "id": "0x55fafcb78170-Only", "variantKey": "Rename", - "Rename": "0x55b4b26ac170-Rename" + "Rename": "0x55fafcb78170-Rename" }, { - "id": "0x55b4b26ac170-Rename", + "id": "0x55fafcb78170-Rename", "variantKey": "Names", - "Names": "0x55b4b26ac170-Names" + "Names": "0x55fafcb78170-Names" }, { - "id": "0x55b4b26ac170-Names", - "local": "0x55b4b26ac188-Name", - "global": "0x55b4b26ac170-Name" + "id": "0x55fafcb78170-Names", + "local": "0x55fafcb78188-Name", + "global": "0x55fafcb78170-Name" }, { - "id": "0x55b4b26ac188-Name", + "id": "0x55fafcb78188-Name", "source": "sp" }, { - "id": "0x55b4b26ac170-Name", + "id": "0x55fafcb78170-Name", "source": "real32" }, { - "id": "0x55b4b269d4e0-Only", + "id": "0x55fafcb694e0-Only", "variantKey": "Rename", - "Rename": "0x55b4b269d4e0-Rename" + "Rename": "0x55fafcb694e0-Rename" }, { - "id": "0x55b4b269d4e0-Rename", + "id": "0x55fafcb694e0-Rename", "variantKey": "Names", - "Names": "0x55b4b269d4e0-Names" + "Names": "0x55fafcb694e0-Names" }, { - "id": "0x55b4b269d4e0-Names", - "local": "0x55b4b269d4f8-Name", - "global": "0x55b4b269d4e0-Name" + "id": "0x55fafcb694e0-Names", + "local": "0x55fafcb694f8-Name", + "global": "0x55fafcb694e0-Name" }, { - "id": "0x55b4b269d4f8-Name", + "id": "0x55fafcb694f8-Name", "source": "dp" }, { - "id": "0x55b4b269d4e0-Name", + "id": "0x55fafcb694e0-Name", "source": "real64" }, { - "id": "0x55b4b26cf0c8-ImplicitPart" + "id": "0x55fafcb9b0c8-ImplicitPart" }, { - "id": "0x55b4b26c9ab0-DeclarationConstruct", + "id": "0x55fafcb95ab0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55b4b26c9ab0-SpecificationConstruct" + "SpecificationConstruct": "0x55fafcb95ab0-SpecificationConstruct" }, { - "id": "0x55b4b26c9ab0-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x55b4b26c9ab0-Statement" + "id": "0x55fafcb95ab0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55fafcb95ab0-Statement" }, { - "id": "0x55b4b26c9ab0-Statement", - "statement": "0x55b4b26db710-TypeDeclarationStmt", + "id": "0x55fafcb95ab0-Statement", + "statement": "0x55fafcba7710-TypeDeclarationStmt", "source": "complex :: c_default =(3.0, 4.0)" }, { - "id": "0x55b4b26db710-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55b4b26db740-DeclarationTypeSpec", + "id": "0x55fafcba7710-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55fafcba7740-DeclarationTypeSpec", "EntityDecl": [ - "0x55b4b26c98e0-EntityDecl" + "0x55fafcb958e0-EntityDecl" ] }, { - "id": "0x55b4b26db740-DeclarationTypeSpec", + "id": "0x55fafcba7740-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55b4b26db740-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55fafcba7740-IntrinsicTypeSpec" }, { - "id": "0x55b4b26db740-IntrinsicTypeSpec", + "id": "0x55fafcba7740-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x55b4b26db740-Complex" + "Complex": "0x55fafcba7740-Complex" }, { - "id": "0x55b4b26db740-Complex" + "id": "0x55fafcba7740-Complex" }, { - "id": "0x55b4b26c98e0-EntityDecl", - "Name": "0x55b4b26c9998-Name", - "Initialization": "0x55b4b26c98e0-Initialization" + "id": "0x55fafcb958e0-EntityDecl", + "Name": "0x55fafcb95998-Name", + "Initialization": "0x55fafcb958e0-Initialization" }, { - "id": "0x55b4b26c9998-Name", + "id": "0x55fafcb95998-Name", "source": "c_default" }, { - "id": "0x55b4b26c98e0-Initialization", + "id": "0x55fafcb958e0-Initialization", "variantKey": "Expr", - "Expr": "0x55b4b263e790-Expr" + "Expr": "0x55fafcb0a790-Expr" }, { - "id": "0x55b4b263e790-Expr", + "id": "0x55fafcb0a790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55b4b263e7b0-LiteralConstant" + "LiteralConstant": "0x55fafcb0a7b0-LiteralConstant" }, { - "id": "0x55b4b263e7b0-LiteralConstant", + "id": "0x55fafcb0a7b0-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x55b4b263e7b0-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x55fafcb0a7b0-ComplexLiteralConstant" }, { - "id": "0x55b4b263e7b0-ComplexLiteralConstant", - "real": "0x55b4b263e800-ComplexPart", - "imaginary": "0x55b4b263e7b0-ComplexPart" + "id": "0x55fafcb0a7b0-ComplexLiteralConstant", + "real": "0x55fafcb0a800-ComplexPart", + "imaginary": "0x55fafcb0a7b0-ComplexPart" }, { - "id": "0x55b4b263e800-ComplexPart", + "id": "0x55fafcb0a800-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x55b4b263e800-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55fafcb0a800-SignedRealLiteralConstant" }, { - "id": "0x55b4b263e800-SignedRealLiteralConstant", - "RealLiteralConstant": "0x55b4b263e800-RealLiteralConstant" + "id": "0x55fafcb0a800-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55fafcb0a800-RealLiteralConstant" }, { - "id": "0x55b4b263e800-RealLiteralConstant", - "real": "0x55b4b263e800-Real" + "id": "0x55fafcb0a800-RealLiteralConstant", + "real": "0x55fafcb0a800-Real" }, { - "id": "0x55b4b263e800-Real", + "id": "0x55fafcb0a800-Real", "source": "3.0" }, { - "id": "0x55b4b263e7b0-ComplexPart", + "id": "0x55fafcb0a7b0-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x55b4b263e7b0-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55fafcb0a7b0-SignedRealLiteralConstant" }, { - "id": "0x55b4b263e7b0-SignedRealLiteralConstant", - "RealLiteralConstant": "0x55b4b263e7b0-RealLiteralConstant" + "id": "0x55fafcb0a7b0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55fafcb0a7b0-RealLiteralConstant" }, { - "id": "0x55b4b263e7b0-RealLiteralConstant", - "real": "0x55b4b263e7b0-Real" + "id": "0x55fafcb0a7b0-RealLiteralConstant", + "real": "0x55fafcb0a7b0-Real" }, { - "id": "0x55b4b263e7b0-Real", + "id": "0x55fafcb0a7b0-Real", "source": "4.0" }, { - "id": "0x55b4b26c9d60-DeclarationConstruct", + "id": "0x55fafcb95d60-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55b4b26c9d60-SpecificationConstruct" + "SpecificationConstruct": "0x55fafcb95d60-SpecificationConstruct" }, { - "id": "0x55b4b26c9d60-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x55b4b26c9d60-Statement" + "id": "0x55fafcb95d60-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55fafcb95d60-Statement" }, { - "id": "0x55b4b26c9d60-Statement", - "statement": "0x55b4b26db790-TypeDeclarationStmt", + "id": "0x55fafcb95d60-Statement", + "statement": "0x55fafcba7790-TypeDeclarationStmt", "source": "complex :: c_int =(1, -2)" }, { - "id": "0x55b4b26db790-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55b4b26db7c0-DeclarationTypeSpec", + "id": "0x55fafcba7790-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55fafcba77c0-DeclarationTypeSpec", "EntityDecl": [ - "0x55b4b26c9c70-EntityDecl" + "0x55fafcb95c70-EntityDecl" ] }, { - "id": "0x55b4b26db7c0-DeclarationTypeSpec", + "id": "0x55fafcba77c0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55b4b26db7c0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55fafcba77c0-IntrinsicTypeSpec" }, { - "id": "0x55b4b26db7c0-IntrinsicTypeSpec", + "id": "0x55fafcba77c0-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x55b4b26db7c0-Complex" + "Complex": "0x55fafcba77c0-Complex" }, { - "id": "0x55b4b26db7c0-Complex" + "id": "0x55fafcba77c0-Complex" }, { - "id": "0x55b4b26c9c70-EntityDecl", - "Name": "0x55b4b26c9d28-Name", - "Initialization": "0x55b4b26c9c70-Initialization" + "id": "0x55fafcb95c70-EntityDecl", + "Name": "0x55fafcb95d28-Name", + "Initialization": "0x55fafcb95c70-Initialization" }, { - "id": "0x55b4b26c9d28-Name", + "id": "0x55fafcb95d28-Name", "source": "c_int" }, { - "id": "0x55b4b26c9c70-Initialization", + "id": "0x55fafcb95c70-Initialization", "variantKey": "Expr", - "Expr": "0x55b4b26c9b80-Expr" + "Expr": "0x55fafcb95b80-Expr" }, { - "id": "0x55b4b26c9b80-Expr", + "id": "0x55fafcb95b80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55b4b26c9ba0-LiteralConstant" + "LiteralConstant": "0x55fafcb95ba0-LiteralConstant" }, { - "id": "0x55b4b26c9ba0-LiteralConstant", + "id": "0x55fafcb95ba0-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x55b4b26c9ba0-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x55fafcb95ba0-ComplexLiteralConstant" }, { - "id": "0x55b4b26c9ba0-ComplexLiteralConstant", - "real": "0x55b4b26c9bf0-ComplexPart", - "imaginary": "0x55b4b26c9ba0-ComplexPart" + "id": "0x55fafcb95ba0-ComplexLiteralConstant", + "real": "0x55fafcb95bf0-ComplexPart", + "imaginary": "0x55fafcb95ba0-ComplexPart" }, { - "id": "0x55b4b26c9bf0-ComplexPart", + "id": "0x55fafcb95bf0-ComplexPart", "variantKey": "SignedIntLiteralConstant", - "SignedIntLiteralConstant": "0x55b4b26c9bf0-SignedIntLiteralConstant" + "SignedIntLiteralConstant": "0x55fafcb95bf0-SignedIntLiteralConstant" }, { - "id": "0x55b4b26c9bf0-SignedIntLiteralConstant", + "id": "0x55fafcb95bf0-SignedIntLiteralConstant", "CharBlock": "1", "source": "1" }, { - "id": "0x55b4b26c9ba0-ComplexPart", + "id": "0x55fafcb95ba0-ComplexPart", "variantKey": "SignedIntLiteralConstant", - "SignedIntLiteralConstant": "0x55b4b26c9ba0-SignedIntLiteralConstant" + "SignedIntLiteralConstant": "0x55fafcb95ba0-SignedIntLiteralConstant" }, { - "id": "0x55b4b26c9ba0-SignedIntLiteralConstant", + "id": "0x55fafcb95ba0-SignedIntLiteralConstant", "CharBlock": "-2", "source": "-2" }, { - "id": "0x55b4b26ca010-DeclarationConstruct", + "id": "0x55fafcb96010-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55b4b26ca010-SpecificationConstruct" + "SpecificationConstruct": "0x55fafcb96010-SpecificationConstruct" }, { - "id": "0x55b4b26ca010-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x55b4b26ca010-Statement" + "id": "0x55fafcb96010-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55fafcb96010-Statement" }, { - "id": "0x55b4b26ca010-Statement", - "statement": "0x55b4b26c9b00-TypeDeclarationStmt", + "id": "0x55fafcb96010-Statement", + "statement": "0x55fafcb95b00-TypeDeclarationStmt", "source": "complex :: c_exp =(1.5e2, -2.0e-1)" }, { - "id": "0x55b4b26c9b00-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55b4b26c9b30-DeclarationTypeSpec", + "id": "0x55fafcb95b00-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55fafcb95b30-DeclarationTypeSpec", "EntityDecl": [ - "0x55b4b26c9f20-EntityDecl" + "0x55fafcb95f20-EntityDecl" ] }, { - "id": "0x55b4b26c9b30-DeclarationTypeSpec", + "id": "0x55fafcb95b30-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55b4b26c9b30-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55fafcb95b30-IntrinsicTypeSpec" }, { - "id": "0x55b4b26c9b30-IntrinsicTypeSpec", + "id": "0x55fafcb95b30-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x55b4b26c9b30-Complex" + "Complex": "0x55fafcb95b30-Complex" }, { - "id": "0x55b4b26c9b30-Complex" + "id": "0x55fafcb95b30-Complex" }, { - "id": "0x55b4b26c9f20-EntityDecl", - "Name": "0x55b4b26c9fd8-Name", - "Initialization": "0x55b4b26c9f20-Initialization" + "id": "0x55fafcb95f20-EntityDecl", + "Name": "0x55fafcb95fd8-Name", + "Initialization": "0x55fafcb95f20-Initialization" }, { - "id": "0x55b4b26c9fd8-Name", + "id": "0x55fafcb95fd8-Name", "source": "c_exp" }, { - "id": "0x55b4b26c9f20-Initialization", + "id": "0x55fafcb95f20-Initialization", "variantKey": "Expr", - "Expr": "0x55b4b26c9e30-Expr" + "Expr": "0x55fafcb95e30-Expr" }, { - "id": "0x55b4b26c9e30-Expr", + "id": "0x55fafcb95e30-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55b4b26c9e50-LiteralConstant" + "LiteralConstant": "0x55fafcb95e50-LiteralConstant" }, { - "id": "0x55b4b26c9e50-LiteralConstant", + "id": "0x55fafcb95e50-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x55b4b26c9e50-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x55fafcb95e50-ComplexLiteralConstant" }, { - "id": "0x55b4b26c9e50-ComplexLiteralConstant", - "real": "0x55b4b26c9ea0-ComplexPart", - "imaginary": "0x55b4b26c9e50-ComplexPart" + "id": "0x55fafcb95e50-ComplexLiteralConstant", + "real": "0x55fafcb95ea0-ComplexPart", + "imaginary": "0x55fafcb95e50-ComplexPart" }, { - "id": "0x55b4b26c9ea0-ComplexPart", + "id": "0x55fafcb95ea0-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x55b4b26c9ea0-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55fafcb95ea0-SignedRealLiteralConstant" }, { - "id": "0x55b4b26c9ea0-SignedRealLiteralConstant", - "RealLiteralConstant": "0x55b4b26c9ea0-RealLiteralConstant" + "id": "0x55fafcb95ea0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55fafcb95ea0-RealLiteralConstant" }, { - "id": "0x55b4b26c9ea0-RealLiteralConstant", - "real": "0x55b4b26c9ea0-Real" + "id": "0x55fafcb95ea0-RealLiteralConstant", + "real": "0x55fafcb95ea0-Real" }, { - "id": "0x55b4b26c9ea0-Real", + "id": "0x55fafcb95ea0-Real", "source": "1.5e2" }, { - "id": "0x55b4b26c9e50-ComplexPart", + "id": "0x55fafcb95e50-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x55b4b26c9e50-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55fafcb95e50-SignedRealLiteralConstant" }, { - "id": "0x55b4b26c9e50-SignedRealLiteralConstant", + "id": "0x55fafcb95e50-SignedRealLiteralConstant", "Sign": "-", - "RealLiteralConstant": "0x55b4b26c9e50-RealLiteralConstant" + "RealLiteralConstant": "0x55fafcb95e50-RealLiteralConstant" }, { - "id": "0x55b4b26c9e50-RealLiteralConstant", - "real": "0x55b4b26c9e50-Real" + "id": "0x55fafcb95e50-RealLiteralConstant", + "real": "0x55fafcb95e50-Real" }, { - "id": "0x55b4b26c9e50-Real", + "id": "0x55fafcb95e50-Real", "source": "2.0e-1" }, { - "id": "0x55b4b26caa30-DeclarationConstruct", + "id": "0x55fafcb96a30-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55b4b26caa30-SpecificationConstruct" + "SpecificationConstruct": "0x55fafcb96a30-SpecificationConstruct" }, { - "id": "0x55b4b26caa30-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x55b4b26caa30-Statement" + "id": "0x55fafcb96a30-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55fafcb96a30-Statement" }, { - "id": "0x55b4b26caa30-Statement", - "statement": "0x55b4b26c9db0-TypeDeclarationStmt", + "id": "0x55fafcb96a30-Statement", + "statement": "0x55fafcb95db0-TypeDeclarationStmt", "source": "complex(dp) :: c_double_d =(1.0d0, 3.141592653589793d0)" }, { - "id": "0x55b4b26c9db0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55b4b26c9de0-DeclarationTypeSpec", + "id": "0x55fafcb95db0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55fafcb95de0-DeclarationTypeSpec", "EntityDecl": [ - "0x55b4b26ca860-EntityDecl" + "0x55fafcb96860-EntityDecl" ] }, { - "id": "0x55b4b26c9de0-DeclarationTypeSpec", + "id": "0x55fafcb95de0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55b4b26c9de0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55fafcb95de0-IntrinsicTypeSpec" }, { - "id": "0x55b4b26c9de0-IntrinsicTypeSpec", + "id": "0x55fafcb95de0-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x55b4b26c9de0-Complex" + "Complex": "0x55fafcb95de0-Complex" }, { - "id": "0x55b4b26c9de0-Complex", - "KindSelector": "0x55b4b26c9de0-KindSelector" + "id": "0x55fafcb95de0-Complex", + "KindSelector": "0x55fafcb95de0-KindSelector" }, { - "id": "0x55b4b26c9de0-KindSelector", + "id": "0x55fafcb95de0-KindSelector", "variantKey": "Expr", - "Expr": "0x55b4b26ca260-Expr" + "Expr": "0x55fafcb96260-Expr" }, { - "id": "0x55b4b26ca260-Expr", + "id": "0x55fafcb96260-Expr", "variantKey": "Designator", - "Designator": "0x55b4b26e2b90-Designator" + "Designator": "0x55fafcbaeb90-Designator" }, { - "id": "0x55b4b26e2b90-Designator", + "id": "0x55fafcbaeb90-Designator", "variantKey": "DataRef", - "DataRef": "0x55b4b26e2ba0-DataRef" + "DataRef": "0x55fafcbaeba0-DataRef" }, { - "id": "0x55b4b26e2ba0-DataRef", + "id": "0x55fafcbaeba0-DataRef", "variantKey": "Name", - "Name": "0x55b4b26e2ba0-Name" + "Name": "0x55fafcbaeba0-Name" }, { - "id": "0x55b4b26e2ba0-Name", + "id": "0x55fafcbaeba0-Name", "source": "dp" }, { - "id": "0x55b4b26ca860-EntityDecl", - "Name": "0x55b4b26ca918-Name", - "Initialization": "0x55b4b26ca860-Initialization" + "id": "0x55fafcb96860-EntityDecl", + "Name": "0x55fafcb96918-Name", + "Initialization": "0x55fafcb96860-Initialization" }, { - "id": "0x55b4b26ca918-Name", + "id": "0x55fafcb96918-Name", "source": "c_double_d" }, { - "id": "0x55b4b26ca860-Initialization", + "id": "0x55fafcb96860-Initialization", "variantKey": "Expr", - "Expr": "0x55b4b26ca770-Expr" + "Expr": "0x55fafcb96770-Expr" }, { - "id": "0x55b4b26ca770-Expr", + "id": "0x55fafcb96770-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55b4b26ca790-LiteralConstant" + "LiteralConstant": "0x55fafcb96790-LiteralConstant" }, { - "id": "0x55b4b26ca790-LiteralConstant", + "id": "0x55fafcb96790-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x55b4b26ca790-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x55fafcb96790-ComplexLiteralConstant" }, { - "id": "0x55b4b26ca790-ComplexLiteralConstant", - "real": "0x55b4b26ca7e0-ComplexPart", - "imaginary": "0x55b4b26ca790-ComplexPart" + "id": "0x55fafcb96790-ComplexLiteralConstant", + "real": "0x55fafcb967e0-ComplexPart", + "imaginary": "0x55fafcb96790-ComplexPart" }, { - "id": "0x55b4b26ca7e0-ComplexPart", + "id": "0x55fafcb967e0-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x55b4b26ca7e0-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55fafcb967e0-SignedRealLiteralConstant" }, { - "id": "0x55b4b26ca7e0-SignedRealLiteralConstant", - "RealLiteralConstant": "0x55b4b26ca7e0-RealLiteralConstant" + "id": "0x55fafcb967e0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55fafcb967e0-RealLiteralConstant" }, { - "id": "0x55b4b26ca7e0-RealLiteralConstant", - "real": "0x55b4b26ca7e0-Real" + "id": "0x55fafcb967e0-RealLiteralConstant", + "real": "0x55fafcb967e0-Real" }, { - "id": "0x55b4b26ca7e0-Real", + "id": "0x55fafcb967e0-Real", "source": "1.0d0" }, { - "id": "0x55b4b26ca790-ComplexPart", + "id": "0x55fafcb96790-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x55b4b26ca790-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55fafcb96790-SignedRealLiteralConstant" }, { - "id": "0x55b4b26ca790-SignedRealLiteralConstant", - "RealLiteralConstant": "0x55b4b26ca790-RealLiteralConstant" + "id": "0x55fafcb96790-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55fafcb96790-RealLiteralConstant" }, { - "id": "0x55b4b26ca790-RealLiteralConstant", - "real": "0x55b4b26ca790-Real" + "id": "0x55fafcb96790-RealLiteralConstant", + "real": "0x55fafcb96790-Real" }, { - "id": "0x55b4b26ca790-Real", + "id": "0x55fafcb96790-Real", "source": "3.141592653589793d0" }, { - "id": "0x55b4b26cae20-DeclarationConstruct", + "id": "0x55fafcb96e20-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55b4b26cae20-SpecificationConstruct" + "SpecificationConstruct": "0x55fafcb96e20-SpecificationConstruct" }, { - "id": "0x55b4b26cae20-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x55b4b26cae20-Statement" + "id": "0x55fafcb96e20-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55fafcb96e20-Statement" }, { - "id": "0x55b4b26cae20-Statement", - "statement": "0x55b4b26ca060-TypeDeclarationStmt", + "id": "0x55fafcb96e20-Statement", + "statement": "0x55fafcb96060-TypeDeclarationStmt", "source": "complex(dp) :: c_double_kind =(2.5_dp, -5.5_dp)" }, { - "id": "0x55b4b26ca060-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55b4b26ca090-DeclarationTypeSpec", + "id": "0x55fafcb96060-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55fafcb96090-DeclarationTypeSpec", "EntityDecl": [ - "0x55b4b26cad30-EntityDecl" + "0x55fafcb96d30-EntityDecl" ] }, { - "id": "0x55b4b26ca090-DeclarationTypeSpec", + "id": "0x55fafcb96090-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55b4b26ca090-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55fafcb96090-IntrinsicTypeSpec" }, { - "id": "0x55b4b26ca090-IntrinsicTypeSpec", + "id": "0x55fafcb96090-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x55b4b26ca090-Complex" + "Complex": "0x55fafcb96090-Complex" }, { - "id": "0x55b4b26ca090-Complex", - "KindSelector": "0x55b4b26ca090-KindSelector" + "id": "0x55fafcb96090-Complex", + "KindSelector": "0x55fafcb96090-KindSelector" }, { - "id": "0x55b4b26ca090-KindSelector", + "id": "0x55fafcb96090-KindSelector", "variantKey": "Expr", - "Expr": "0x55b4b26cab00-Expr" + "Expr": "0x55fafcb96b00-Expr" }, { - "id": "0x55b4b26cab00-Expr", + "id": "0x55fafcb96b00-Expr", "variantKey": "Designator", - "Designator": "0x55b4b26abd90-Designator" + "Designator": "0x55fafcb77d90-Designator" }, { - "id": "0x55b4b26abd90-Designator", + "id": "0x55fafcb77d90-Designator", "variantKey": "DataRef", - "DataRef": "0x55b4b26abda0-DataRef" + "DataRef": "0x55fafcb77da0-DataRef" }, { - "id": "0x55b4b26abda0-DataRef", + "id": "0x55fafcb77da0-DataRef", "variantKey": "Name", - "Name": "0x55b4b26abda0-Name" + "Name": "0x55fafcb77da0-Name" }, { - "id": "0x55b4b26abda0-Name", + "id": "0x55fafcb77da0-Name", "source": "dp" }, { - "id": "0x55b4b26cad30-EntityDecl", - "Name": "0x55b4b26cade8-Name", - "Initialization": "0x55b4b26cad30-Initialization" + "id": "0x55fafcb96d30-EntityDecl", + "Name": "0x55fafcb96de8-Name", + "Initialization": "0x55fafcb96d30-Initialization" }, { - "id": "0x55b4b26cade8-Name", + "id": "0x55fafcb96de8-Name", "source": "c_double_kind" }, { - "id": "0x55b4b26cad30-Initialization", + "id": "0x55fafcb96d30-Initialization", "variantKey": "Expr", - "Expr": "0x55b4b26cac40-Expr" + "Expr": "0x55fafcb96c40-Expr" }, { - "id": "0x55b4b26cac40-Expr", + "id": "0x55fafcb96c40-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55b4b26cac60-LiteralConstant" + "LiteralConstant": "0x55fafcb96c60-LiteralConstant" }, { - "id": "0x55b4b26cac60-LiteralConstant", + "id": "0x55fafcb96c60-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x55b4b26cac60-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x55fafcb96c60-ComplexLiteralConstant" }, { - "id": "0x55b4b26cac60-ComplexLiteralConstant", - "real": "0x55b4b26cacb0-ComplexPart", - "imaginary": "0x55b4b26cac60-ComplexPart" + "id": "0x55fafcb96c60-ComplexLiteralConstant", + "real": "0x55fafcb96cb0-ComplexPart", + "imaginary": "0x55fafcb96c60-ComplexPart" }, { - "id": "0x55b4b26cacb0-ComplexPart", + "id": "0x55fafcb96cb0-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x55b4b26cacb0-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55fafcb96cb0-SignedRealLiteralConstant" }, { - "id": "0x55b4b26cacb0-SignedRealLiteralConstant", - "RealLiteralConstant": "0x55b4b26cacb0-RealLiteralConstant" + "id": "0x55fafcb96cb0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55fafcb96cb0-RealLiteralConstant" }, { - "id": "0x55b4b26cacb0-RealLiteralConstant", - "real": "0x55b4b26cacb0-Real", - "kind": "0x55b4b26cacc0-KindParam" + "id": "0x55fafcb96cb0-RealLiteralConstant", + "real": "0x55fafcb96cb0-Real", + "kind": "0x55fafcb96cc0-KindParam" }, { - "id": "0x55b4b26cacb0-Real", + "id": "0x55fafcb96cb0-Real", "source": "2.5" }, { - "id": "0x55b4b26cacc0-KindParam", + "id": "0x55fafcb96cc0-KindParam", "variantKey": "Name", - "Name": "0x55b4b26cacc0-Name" + "Name": "0x55fafcb96cc0-Name" }, { - "id": "0x55b4b26cacc0-Name", + "id": "0x55fafcb96cc0-Name", "source": "dp" }, { - "id": "0x55b4b26cac60-ComplexPart", + "id": "0x55fafcb96c60-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x55b4b26cac60-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55fafcb96c60-SignedRealLiteralConstant" }, { - "id": "0x55b4b26cac60-SignedRealLiteralConstant", + "id": "0x55fafcb96c60-SignedRealLiteralConstant", "Sign": "-", - "RealLiteralConstant": "0x55b4b26cac60-RealLiteralConstant" + "RealLiteralConstant": "0x55fafcb96c60-RealLiteralConstant" }, { - "id": "0x55b4b26cac60-RealLiteralConstant", - "real": "0x55b4b26cac60-Real", - "kind": "0x55b4b26cac70-KindParam" + "id": "0x55fafcb96c60-RealLiteralConstant", + "real": "0x55fafcb96c60-Real", + "kind": "0x55fafcb96c70-KindParam" }, { - "id": "0x55b4b26cac60-Real", + "id": "0x55fafcb96c60-Real", "source": "5.5" }, { - "id": "0x55b4b26cac70-KindParam", + "id": "0x55fafcb96c70-KindParam", "variantKey": "Name", - "Name": "0x55b4b26cac70-Name" + "Name": "0x55fafcb96c70-Name" }, { - "id": "0x55b4b26cac70-Name", + "id": "0x55fafcb96c70-Name", "source": "dp" }, { - "id": "0x55b4b26cb210-DeclarationConstruct", + "id": "0x55fafcb97210-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55b4b26cb210-SpecificationConstruct" + "SpecificationConstruct": "0x55fafcb97210-SpecificationConstruct" }, { - "id": "0x55b4b26cb210-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x55b4b26cb210-Statement" + "id": "0x55fafcb97210-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55fafcb97210-Statement" }, { - "id": "0x55b4b26cb210-Statement", - "statement": "0x55b4b26ca0e0-TypeDeclarationStmt", + "id": "0x55fafcb97210-Statement", + "statement": "0x55fafcb960e0-TypeDeclarationStmt", "source": "complex(sp) :: c_single_kind =(1.0_sp, 0.5_sp)" }, { - "id": "0x55b4b26ca0e0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55b4b26ca110-DeclarationTypeSpec", + "id": "0x55fafcb960e0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55fafcb96110-DeclarationTypeSpec", "EntityDecl": [ - "0x55b4b26cb120-EntityDecl" + "0x55fafcb97120-EntityDecl" ] }, { - "id": "0x55b4b26ca110-DeclarationTypeSpec", + "id": "0x55fafcb96110-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55b4b26ca110-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55fafcb96110-IntrinsicTypeSpec" }, { - "id": "0x55b4b26ca110-IntrinsicTypeSpec", + "id": "0x55fafcb96110-IntrinsicTypeSpec", "variantKey": "Complex", - "Complex": "0x55b4b26ca110-Complex" + "Complex": "0x55fafcb96110-Complex" }, { - "id": "0x55b4b26ca110-Complex", - "KindSelector": "0x55b4b26ca110-KindSelector" + "id": "0x55fafcb96110-Complex", + "KindSelector": "0x55fafcb96110-KindSelector" }, { - "id": "0x55b4b26ca110-KindSelector", + "id": "0x55fafcb96110-KindSelector", "variantKey": "Expr", - "Expr": "0x55b4b26caef0-Expr" + "Expr": "0x55fafcb96ef0-Expr" }, { - "id": "0x55b4b26caef0-Expr", + "id": "0x55fafcb96ef0-Expr", "variantKey": "Designator", - "Designator": "0x55b4b26ac100-Designator" + "Designator": "0x55fafcb78100-Designator" }, { - "id": "0x55b4b26ac100-Designator", + "id": "0x55fafcb78100-Designator", "variantKey": "DataRef", - "DataRef": "0x55b4b26ac110-DataRef" + "DataRef": "0x55fafcb78110-DataRef" }, { - "id": "0x55b4b26ac110-DataRef", + "id": "0x55fafcb78110-DataRef", "variantKey": "Name", - "Name": "0x55b4b26ac110-Name" + "Name": "0x55fafcb78110-Name" }, { - "id": "0x55b4b26ac110-Name", + "id": "0x55fafcb78110-Name", "source": "sp" }, { - "id": "0x55b4b26cb120-EntityDecl", - "Name": "0x55b4b26cb1d8-Name", - "Initialization": "0x55b4b26cb120-Initialization" + "id": "0x55fafcb97120-EntityDecl", + "Name": "0x55fafcb971d8-Name", + "Initialization": "0x55fafcb97120-Initialization" }, { - "id": "0x55b4b26cb1d8-Name", + "id": "0x55fafcb971d8-Name", "source": "c_single_kind" }, { - "id": "0x55b4b26cb120-Initialization", + "id": "0x55fafcb97120-Initialization", "variantKey": "Expr", - "Expr": "0x55b4b26cb030-Expr" + "Expr": "0x55fafcb97030-Expr" }, { - "id": "0x55b4b26cb030-Expr", + "id": "0x55fafcb97030-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55b4b26cb050-LiteralConstant" + "LiteralConstant": "0x55fafcb97050-LiteralConstant" }, { - "id": "0x55b4b26cb050-LiteralConstant", + "id": "0x55fafcb97050-LiteralConstant", "variantKey": "ComplexLiteralConstant", - "ComplexLiteralConstant": "0x55b4b26cb050-ComplexLiteralConstant" + "ComplexLiteralConstant": "0x55fafcb97050-ComplexLiteralConstant" }, { - "id": "0x55b4b26cb050-ComplexLiteralConstant", - "real": "0x55b4b26cb0a0-ComplexPart", - "imaginary": "0x55b4b26cb050-ComplexPart" + "id": "0x55fafcb97050-ComplexLiteralConstant", + "real": "0x55fafcb970a0-ComplexPart", + "imaginary": "0x55fafcb97050-ComplexPart" }, { - "id": "0x55b4b26cb0a0-ComplexPart", + "id": "0x55fafcb970a0-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x55b4b26cb0a0-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55fafcb970a0-SignedRealLiteralConstant" }, { - "id": "0x55b4b26cb0a0-SignedRealLiteralConstant", - "RealLiteralConstant": "0x55b4b26cb0a0-RealLiteralConstant" + "id": "0x55fafcb970a0-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55fafcb970a0-RealLiteralConstant" }, { - "id": "0x55b4b26cb0a0-RealLiteralConstant", - "real": "0x55b4b26cb0a0-Real", - "kind": "0x55b4b26cb0b0-KindParam" + "id": "0x55fafcb970a0-RealLiteralConstant", + "real": "0x55fafcb970a0-Real", + "kind": "0x55fafcb970b0-KindParam" }, { - "id": "0x55b4b26cb0a0-Real", + "id": "0x55fafcb970a0-Real", "source": "1.0" }, { - "id": "0x55b4b26cb0b0-KindParam", + "id": "0x55fafcb970b0-KindParam", "variantKey": "Name", - "Name": "0x55b4b26cb0b0-Name" + "Name": "0x55fafcb970b0-Name" }, { - "id": "0x55b4b26cb0b0-Name", + "id": "0x55fafcb970b0-Name", "source": "sp" }, { - "id": "0x55b4b26cb050-ComplexPart", + "id": "0x55fafcb97050-ComplexPart", "variantKey": "SignedRealLiteralConstant", - "SignedRealLiteralConstant": "0x55b4b26cb050-SignedRealLiteralConstant" + "SignedRealLiteralConstant": "0x55fafcb97050-SignedRealLiteralConstant" }, { - "id": "0x55b4b26cb050-SignedRealLiteralConstant", - "RealLiteralConstant": "0x55b4b26cb050-RealLiteralConstant" + "id": "0x55fafcb97050-SignedRealLiteralConstant", + "RealLiteralConstant": "0x55fafcb97050-RealLiteralConstant" }, { - "id": "0x55b4b26cb050-RealLiteralConstant", - "real": "0x55b4b26cb050-Real", - "kind": "0x55b4b26cb060-KindParam" + "id": "0x55fafcb97050-RealLiteralConstant", + "real": "0x55fafcb97050-Real", + "kind": "0x55fafcb97060-KindParam" }, { - "id": "0x55b4b26cb050-Real", + "id": "0x55fafcb97050-Real", "source": "0.5" }, { - "id": "0x55b4b26cb060-KindParam", + "id": "0x55fafcb97060-KindParam", "variantKey": "Name", - "Name": "0x55b4b26cb060-Name" + "Name": "0x55fafcb97060-Name" }, { - "id": "0x55b4b26cb060-Name", + "id": "0x55fafcb97060-Name", "source": "sp" }, { - "id": "0x55b4b26cf098-ExecutionPart" + "id": "0x55fafcb9b098-ExecutionPart" }, { - "id": "0x55b4b26cf098-list" + "id": "0x55fafcb9b098-list" }, { - "id": "0x55b4b26cf010-Statement", - "statement": "0x55b4b26cf020-EndProgramStmt", + "id": "0x55fafcb9b010-Statement", + "statement": "0x55fafcb9b020-EndProgramStmt", "source": "end program COMPLEX_LITERAL" }, { - "id": "0x55b4b26cf020-EndProgramStmt", - "Name": "0x55b4b26cf020-Name" + "id": "0x55fafcb9b020-EndProgramStmt", + "Name": "0x55fafcb9b020-Name" }, { - "id": "0x55b4b26cf020-Name", + "id": "0x55fafcb9b020-Name", "source": "COMPLEX_LITERAL" } ], "comments": [ { "text": " 1. Basic Default Real Literals", - "stmtId": "0x55b4b26c9ab0-Statement", + "stmtId": "0x55fafcb95ab0-Statement", "trailing": false }, { "text": " 2. Integer Components (automatically converted to real)", - "stmtId": "0x55b4b26c9d60-Statement", + "stmtId": "0x55fafcb95d60-Statement", "trailing": false }, { "text": " 3. Scientific / Exponential Notation", - "stmtId": "0x55b4b26ca010-Statement", + "stmtId": "0x55fafcb96010-Statement", "trailing": false }, { "text": " Represents (150.0, -0.2)", - "stmtId": "0x55b4b26ca010-Statement", + "stmtId": "0x55fafcb96010-Statement", "trailing": true }, { "text": " 4. Double Precision (using 'd' exponent notation)", - "stmtId": "0x55b4b26caa30-Statement", + "stmtId": "0x55fafcb96a30-Statement", "trailing": false }, { "text": " 5. Kind Parameter Suffixes (Modern Standard)", - "stmtId": "0x55b4b26cae20-Statement", + "stmtId": "0x55fafcb96e20-Statement", "trailing": false } ], diff --git a/FortranParser/resources-test/fortran/parser/omp/omp_basic.json b/FortranParser/resources-test/fortran/parser/omp/omp_basic.json index 7e815e70..d464a367 100644 --- a/FortranParser/resources-test/fortran/parser/omp/omp_basic.json +++ b/FortranParser/resources-test/fortran/parser/omp/omp_basic.json @@ -2,267 +2,267 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x562f9e471f00-Program", + "id": "0x55ba3cae6f00-Program", "ProgramUnit": [ - "0x562f9e4abae0-ProgramUnit" + "0x55ba3cb20ae0-ProgramUnit" ] }, { - "id": "0x562f9e4abae0-ProgramUnit", + "id": "0x55ba3cb20ae0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x562f9e49cae0-MainProgram" + "MainProgram": "0x55ba3cb11ae0-MainProgram" }, { - "id": "0x562f9e49cae0-MainProgram", - "Statement": "0x562f9e49cc28-Statement", - "SpecificationPart": "0x562f9e49cb80-SpecificationPart", - "ExecutionPart": "0x562f9e49cb68-ExecutionPart", - "Statement": "0x562f9e49cae0-Statement" + "id": "0x55ba3cb11ae0-MainProgram", + "Statement": "0x55ba3cb11c28-Statement", + "SpecificationPart": "0x55ba3cb11b80-SpecificationPart", + "ExecutionPart": "0x55ba3cb11b68-ExecutionPart", + "Statement": "0x55ba3cb11ae0-Statement" }, { - "id": "0x562f9e49cc28-Statement", - "statement": "0x562f9e49cc38-ProgramStmt", + "id": "0x55ba3cb11c28-Statement", + "statement": "0x55ba3cb11c38-ProgramStmt", "source": "program OPENMP_DEMO" }, { - "id": "0x562f9e49cc38-ProgramStmt", - "Name": "0x562f9e49cc38-Name" + "id": "0x55ba3cb11c38-ProgramStmt", + "Name": "0x55ba3cb11c38-Name" }, { - "id": "0x562f9e49cc38-Name", + "id": "0x55ba3cb11c38-Name", "source": "OPENMP_DEMO" }, { - "id": "0x562f9e49cb80-SpecificationPart", - "Statement": [ - "0x562f9e4a6c00-Statement" + "id": "0x55ba3cb11b80-SpecificationPart", + "Statement": [ + "0x55ba3cb1bc00-Statement" ], - "ImplicitPart": "0x562f9e49cb98-ImplicitPart", + "ImplicitPart": "0x55ba3cb11b98-ImplicitPart", "DeclarationConstruct": [ - "0x562f9e47f170-DeclarationConstruct" + "0x55ba3caf4170-DeclarationConstruct" ] }, { - "id": "0x562f9e4a6c00-Statement", - "statement": "0x562f9e4b5600-UseStmt", + "id": "0x55ba3cb1bc00-Statement", + "statement": "0x55ba3cb2a600-UseStmt", "source": "use omp_lib" }, { - "id": "0x562f9e4b5600-UseStmt", - "moduleName": "0x562f9e4b5608-Name", + "id": "0x55ba3cb2a600-UseStmt", + "moduleName": "0x55ba3cb2a608-Name", "variantKey": "Rename", "Rename": [] }, { - "id": "0x562f9e4b5608-Name", + "id": "0x55ba3cb2a608-Name", "source": "omp_lib" }, { - "id": "0x562f9e49cb98-ImplicitPart" + "id": "0x55ba3cb11b98-ImplicitPart" }, { - "id": "0x562f9e47f170-DeclarationConstruct", + "id": "0x55ba3caf4170-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x562f9e47f170-SpecificationConstruct" + "SpecificationConstruct": "0x55ba3caf4170-SpecificationConstruct" }, { - "id": "0x562f9e47f170-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x562f9e47f170-Statement" + "id": "0x55ba3caf4170-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55ba3caf4170-Statement" }, { - "id": "0x562f9e47f170-Statement", - "statement": "0x562f9e4abde0-TypeDeclarationStmt", + "id": "0x55ba3caf4170-Statement", + "statement": "0x55ba3cb20de0-TypeDeclarationStmt", "source": "integer :: total_sum" }, { - "id": "0x562f9e4abde0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x562f9e4abe10-DeclarationTypeSpec", + "id": "0x55ba3cb20de0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55ba3cb20e10-DeclarationTypeSpec", "EntityDecl": [ - "0x562f9e4abef0-EntityDecl" + "0x55ba3cb20ef0-EntityDecl" ] }, { - "id": "0x562f9e4abe10-DeclarationTypeSpec", + "id": "0x55ba3cb20e10-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x562f9e4abe10-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55ba3cb20e10-IntrinsicTypeSpec" }, { - "id": "0x562f9e4abe10-IntrinsicTypeSpec", + "id": "0x55ba3cb20e10-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x562f9e4abe10-IntegerTypeSpec" + "IntegerTypeSpec": "0x55ba3cb20e10-IntegerTypeSpec" }, { - "id": "0x562f9e4abe10-IntegerTypeSpec" + "id": "0x55ba3cb20e10-IntegerTypeSpec" }, { - "id": "0x562f9e4abef0-EntityDecl", - "Name": "0x562f9e4abfa8-Name" + "id": "0x55ba3cb20ef0-EntityDecl", + "Name": "0x55ba3cb20fa8-Name" }, { - "id": "0x562f9e4abfa8-Name", + "id": "0x55ba3cb20fa8-Name", "source": "total_sum" }, { - "id": "0x562f9e49cb68-ExecutionPart", + "id": "0x55ba3cb11b68-ExecutionPart", "ExecutionPartConstruct": [ - "0x562f9e4a6700-ExecutionPartConstruct" + "0x55ba3cb1b700-ExecutionPartConstruct" ] }, { - "id": "0x562f9e49cb68-ExecutionPartConstruct" + "id": "0x55ba3cb11b68-ExecutionPartConstruct" }, { - "id": "0x562f9e4a6700-ExecutionPartConstruct", + "id": "0x55ba3cb1b700-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x562f9e4a6700-ExecutableConstruct" + "ExecutableConstruct": "0x55ba3cb1b700-ExecutableConstruct" }, { - "id": "0x562f9e4a6700-ExecutableConstruct", + "id": "0x55ba3cb1b700-ExecutableConstruct", "variantKey": "OpenMPConstruct", - "OpenMPConstruct": "0x562f9e4acb20-OpenMPConstruct" + "OpenMPConstruct": "0x55ba3cb21b20-OpenMPConstruct" }, { - "id": "0x562f9e4acb20-OpenMPConstruct", + "id": "0x55ba3cb21b20-OpenMPConstruct", "variantKey": "OmpBlockConstruct", - "OmpBlockConstruct": "0x562f9e4acb20-OmpBlockConstruct" + "OmpBlockConstruct": "0x55ba3cb21b20-OmpBlockConstruct" }, { - "id": "0x562f9e4acb20-OmpBlockConstruct", - "OmpBeginDirective": "0x562f9e4acbe0-OmpBeginDirective", + "id": "0x55ba3cb21b20-OmpBlockConstruct", + "OmpBeginDirective": "0x55ba3cb21be0-OmpBeginDirective", "ExecutionPartConstruct": [ - "0x562f9e4acad0-ExecutionPartConstruct" + "0x55ba3cb21ad0-ExecutionPartConstruct" ], - "OmpEndDirective": "0x562f9e4acb30-OmpEndDirective" + "OmpEndDirective": "0x55ba3cb21b30-OmpEndDirective" }, { - "id": "0x562f9e4acbe0-OmpBeginDirective", - "OmpDirectiveName": "0x562f9e4acc58-OmpDirectiveName", - "OmpClauseList": "0x562f9e4acbf8-OmpClauseList", - "Flags = {}": "0x562f9e4acbf0-Flags = {}" + "id": "0x55ba3cb21be0-OmpBeginDirective", + "OmpDirectiveName": "0x55ba3cb21c58-OmpDirectiveName", + "OmpClauseList": "0x55ba3cb21bf8-OmpClauseList", + "Flags": "0x55ba3cb21bf0-Flags" }, { - "id": "0x562f9e4acc58-OmpDirectiveName", + "id": "0x55ba3cb21c58-OmpDirectiveName", "directive": "parallel" }, { - "id": "0x562f9e4acbf8-OmpClauseList" + "id": "0x55ba3cb21bf8-OmpClauseList" }, { - "id": "0x562f9e4acbc8-ExecutionPartConstruct" + "id": "0x55ba3cb21bc8-ExecutionPartConstruct" }, { - "id": "0x562f9e4acad0-ExecutionPartConstruct", + "id": "0x55ba3cb21ad0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x562f9e4acad0-ExecutableConstruct" + "ExecutableConstruct": "0x55ba3cb21ad0-ExecutableConstruct" }, { - "id": "0x562f9e4acad0-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x562f9e4acad0-Statement" + "id": "0x55ba3cb21ad0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ba3cb21ad0-Statement" }, { - "id": "0x562f9e4acad0-Statement", - "statement": "0x562f9e4acae0-ActionStmt", + "id": "0x55ba3cb21ad0-Statement", + "statement": "0x55ba3cb21ae0-ActionStmt", "source": "total_sum = total_sum + 1" }, { - "id": "0x562f9e4acae0-ActionStmt", + "id": "0x55ba3cb21ae0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x562f9e47fce0-AssignmentStmt" + "AssignmentStmt": "0x55ba3caf4ce0-AssignmentStmt" }, { - "id": "0x562f9e47fce0-AssignmentStmt", - "Variable": "0x562f9e47fdc0-Variable", - "Expr": "0x562f9e47fcf0-Expr" + "id": "0x55ba3caf4ce0-AssignmentStmt", + "Variable": "0x55ba3caf4dc0-Variable", + "Expr": "0x55ba3caf4cf0-Expr" }, { - "id": "0x562f9e47fdc0-Variable", + "id": "0x55ba3caf4dc0-Variable", "variantKey": "Designator", - "Designator": "0x562f9e4ae340-Designator" + "Designator": "0x55ba3cb23340-Designator" }, { - "id": "0x562f9e4ae340-Designator", + "id": "0x55ba3cb23340-Designator", "variantKey": "DataRef", - "DataRef": "0x562f9e4ae350-DataRef" + "DataRef": "0x55ba3cb23350-DataRef" }, { - "id": "0x562f9e4ae350-DataRef", + "id": "0x55ba3cb23350-DataRef", "variantKey": "Name", - "Name": "0x562f9e4ae350-Name" + "Name": "0x55ba3cb23350-Name" }, { - "id": "0x562f9e4ae350-Name", + "id": "0x55ba3cb23350-Name", "source": "total_sum" }, { - "id": "0x562f9e47fcf0-Expr", + "id": "0x55ba3caf4cf0-Expr", "variantKey": "Add", - "Add": "0x562f9e47fd10-Add" + "Add": "0x55ba3caf4d10-Add" }, { - "id": "0x562f9e47fd10-Add", - "left": "0x562f9e4ac980-Expr", - "right": "0x562f9e4ac050-Expr", + "id": "0x55ba3caf4d10-Add", + "left": "0x55ba3cb21980-Expr", + "right": "0x55ba3cb21050-Expr", "op": "ADD" }, { - "id": "0x562f9e4ac980-Expr", + "id": "0x55ba3cb21980-Expr", "variantKey": "Designator", - "Designator": "0x562f9e4ac8c0-Designator" + "Designator": "0x55ba3cb218c0-Designator" }, { - "id": "0x562f9e4ac8c0-Designator", + "id": "0x55ba3cb218c0-Designator", "variantKey": "DataRef", - "DataRef": "0x562f9e4ac8d0-DataRef" + "DataRef": "0x55ba3cb218d0-DataRef" }, { - "id": "0x562f9e4ac8d0-DataRef", + "id": "0x55ba3cb218d0-DataRef", "variantKey": "Name", - "Name": "0x562f9e4ac8d0-Name" + "Name": "0x55ba3cb218d0-Name" }, { - "id": "0x562f9e4ac8d0-Name", + "id": "0x55ba3cb218d0-Name", "source": "total_sum" }, { - "id": "0x562f9e4ac050-Expr", + "id": "0x55ba3cb21050-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x562f9e4ac070-LiteralConstant" + "LiteralConstant": "0x55ba3cb21070-LiteralConstant" }, { - "id": "0x562f9e4ac070-LiteralConstant", + "id": "0x55ba3cb21070-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x562f9e4ac070-IntLiteralConstant" + "IntLiteralConstant": "0x55ba3cb21070-IntLiteralConstant" }, { - "id": "0x562f9e4ac070-IntLiteralConstant", + "id": "0x55ba3cb21070-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x562f9e4acb30-OmpEndDirective", - "OmpDirectiveName": "0x562f9e4acba8-OmpDirectiveName", - "OmpClauseList": "0x562f9e4acb48-OmpClauseList", - "Flags = {}": "0x562f9e4acb40-Flags = {}" + "id": "0x55ba3cb21b30-OmpEndDirective", + "OmpDirectiveName": "0x55ba3cb21ba8-OmpDirectiveName", + "OmpClauseList": "0x55ba3cb21b48-OmpClauseList", + "Flags": "0x55ba3cb21b40-Flags" }, { - "id": "0x562f9e4acba8-OmpDirectiveName", + "id": "0x55ba3cb21ba8-OmpDirectiveName", "directive": "parallel" }, { - "id": "0x562f9e4acb48-OmpClauseList" + "id": "0x55ba3cb21b48-OmpClauseList" }, { - "id": "0x562f9e49cae0-Statement", - "statement": "0x562f9e49caf0-EndProgramStmt", + "id": "0x55ba3cb11ae0-Statement", + "statement": "0x55ba3cb11af0-EndProgramStmt", "source": "end program OPENMP_DEMO" }, { - "id": "0x562f9e49caf0-EndProgramStmt", - "Name": "0x562f9e49caf0-Name" + "id": "0x55ba3cb11af0-EndProgramStmt", + "Name": "0x55ba3cb11af0-Name" }, { - "id": "0x562f9e49caf0-Name", + "id": "0x55ba3cb11af0-Name", "source": "OPENMP_DEMO" } ], diff --git a/FortranParser/resources-test/fortran/parser/omp/omp_clause.json b/FortranParser/resources-test/fortran/parser/omp/omp_clause.json index 1995dcb7..386d8382 100644 --- a/FortranParser/resources-test/fortran/parser/omp/omp_clause.json +++ b/FortranParser/resources-test/fortran/parser/omp/omp_clause.json @@ -2,552 +2,552 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x556c88f9ef00-Program", + "id": "0x55f3007a1f00-Program", "ProgramUnit": [ - "0x556c88fdb400-ProgramUnit" + "0x55f3007de400-ProgramUnit" ] }, { - "id": "0x556c88fdb400-ProgramUnit", + "id": "0x55f3007de400-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x556c88fca5d0-MainProgram" + "MainProgram": "0x55f3007cd5d0-MainProgram" }, { - "id": "0x556c88fca5d0-MainProgram", - "Statement": "0x556c88fca718-Statement", - "SpecificationPart": "0x556c88fca670-SpecificationPart", - "ExecutionPart": "0x556c88fca658-ExecutionPart", - "Statement": "0x556c88fca5d0-Statement" + "id": "0x55f3007cd5d0-MainProgram", + "Statement": "0x55f3007cd718-Statement", + "SpecificationPart": "0x55f3007cd670-SpecificationPart", + "ExecutionPart": "0x55f3007cd658-ExecutionPart", + "Statement": "0x55f3007cd5d0-Statement" }, { - "id": "0x556c88fca718-Statement", - "statement": "0x556c88fca728-ProgramStmt", + "id": "0x55f3007cd718-Statement", + "statement": "0x55f3007cd728-ProgramStmt", "source": "program OPENMP_DEMO" }, { - "id": "0x556c88fca728-ProgramStmt", - "Name": "0x556c88fca728-Name" + "id": "0x55f3007cd728-ProgramStmt", + "Name": "0x55f3007cd728-Name" }, { - "id": "0x556c88fca728-Name", + "id": "0x55f3007cd728-Name", "source": "OPENMP_DEMO" }, { - "id": "0x556c88fca670-SpecificationPart", - "Statement": [ - "0x556c88fd3cf0-Statement" + "id": "0x55f3007cd670-SpecificationPart", + "Statement": [ + "0x55f3007d6cf0-Statement" ], - "ImplicitPart": "0x556c88fca688-ImplicitPart", + "ImplicitPart": "0x55f3007cd688-ImplicitPart", "DeclarationConstruct": [ - "0x556c88fac170-DeclarationConstruct", - "0x556c88fabda0-DeclarationConstruct" + "0x55f3007af170-DeclarationConstruct", + "0x55f3007aeda0-DeclarationConstruct" ] }, { - "id": "0x556c88fd3cf0-Statement", - "statement": "0x556c88fe2950-UseStmt", + "id": "0x55f3007d6cf0-Statement", + "statement": "0x55f3007e5950-UseStmt", "source": "use omp_lib" }, { - "id": "0x556c88fe2950-UseStmt", - "moduleName": "0x556c88fe2958-Name", + "id": "0x55f3007e5950-UseStmt", + "moduleName": "0x55f3007e5958-Name", "variantKey": "Rename", "Rename": [] }, { - "id": "0x556c88fe2958-Name", + "id": "0x55f3007e5958-Name", "source": "omp_lib" }, { - "id": "0x556c88fca688-ImplicitPart" + "id": "0x55f3007cd688-ImplicitPart" }, { - "id": "0x556c88fac170-DeclarationConstruct", + "id": "0x55f3007af170-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x556c88fac170-SpecificationConstruct" + "SpecificationConstruct": "0x55f3007af170-SpecificationConstruct" }, { - "id": "0x556c88fac170-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x556c88fac170-Statement" + "id": "0x55f3007af170-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55f3007af170-Statement" }, { - "id": "0x556c88fac170-Statement", - "statement": "0x556c88fd9220-TypeDeclarationStmt", + "id": "0x55f3007af170-Statement", + "statement": "0x55f3007dc220-TypeDeclarationStmt", "source": "integer :: i, thread_id, num_threads, total_sum" }, { - "id": "0x556c88fd9220-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x556c88fd9250-DeclarationTypeSpec", + "id": "0x55f3007dc220-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55f3007dc250-DeclarationTypeSpec", "EntityDecl": [ - "0x556c88fd9600-EntityDecl", - "0x556c88fd9330-EntityDecl", - "0x556c88fd9420-EntityDecl", - "0x556c88fd9510-EntityDecl" + "0x55f3007dc600-EntityDecl", + "0x55f3007dc330-EntityDecl", + "0x55f3007dc420-EntityDecl", + "0x55f3007dc510-EntityDecl" ] }, { - "id": "0x556c88fd9250-DeclarationTypeSpec", + "id": "0x55f3007dc250-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x556c88fd9250-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55f3007dc250-IntrinsicTypeSpec" }, { - "id": "0x556c88fd9250-IntrinsicTypeSpec", + "id": "0x55f3007dc250-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x556c88fd9250-IntegerTypeSpec" + "IntegerTypeSpec": "0x55f3007dc250-IntegerTypeSpec" }, { - "id": "0x556c88fd9250-IntegerTypeSpec" + "id": "0x55f3007dc250-IntegerTypeSpec" }, { - "id": "0x556c88fd9600-EntityDecl", - "Name": "0x556c88fd96b8-Name" + "id": "0x55f3007dc600-EntityDecl", + "Name": "0x55f3007dc6b8-Name" }, { - "id": "0x556c88fd96b8-Name", + "id": "0x55f3007dc6b8-Name", "source": "i" }, { - "id": "0x556c88fd9330-EntityDecl", - "Name": "0x556c88fd93e8-Name" + "id": "0x55f3007dc330-EntityDecl", + "Name": "0x55f3007dc3e8-Name" }, { - "id": "0x556c88fd93e8-Name", + "id": "0x55f3007dc3e8-Name", "source": "thread_id" }, { - "id": "0x556c88fd9420-EntityDecl", - "Name": "0x556c88fd94d8-Name" + "id": "0x55f3007dc420-EntityDecl", + "Name": "0x55f3007dc4d8-Name" }, { - "id": "0x556c88fd94d8-Name", + "id": "0x55f3007dc4d8-Name", "source": "num_threads" }, { - "id": "0x556c88fd9510-EntityDecl", - "Name": "0x556c88fd95c8-Name" + "id": "0x55f3007dc510-EntityDecl", + "Name": "0x55f3007dc5c8-Name" }, { - "id": "0x556c88fd95c8-Name", + "id": "0x55f3007dc5c8-Name", "source": "total_sum" }, { - "id": "0x556c88fabda0-DeclarationConstruct", + "id": "0x55f3007aeda0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x556c88fabda0-SpecificationConstruct" + "SpecificationConstruct": "0x55f3007aeda0-SpecificationConstruct" }, { - "id": "0x556c88fabda0-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x556c88fabda0-Statement" + "id": "0x55f3007aeda0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55f3007aeda0-Statement" }, { - "id": "0x556c88fabda0-Statement", - "statement": "0x556c88fd92a0-TypeDeclarationStmt", + "id": "0x55f3007aeda0-Statement", + "statement": "0x55f3007dc2a0-TypeDeclarationStmt", "source": "integer :: shared_counter = 0" }, { - "id": "0x556c88fd92a0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x556c88fd92d0-DeclarationTypeSpec", + "id": "0x55f3007dc2a0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55f3007dc2d0-DeclarationTypeSpec", "EntityDecl": [ - "0x556c88fd97e0-EntityDecl" + "0x55f3007dc7e0-EntityDecl" ] }, { - "id": "0x556c88fd92d0-DeclarationTypeSpec", + "id": "0x55f3007dc2d0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x556c88fd92d0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55f3007dc2d0-IntrinsicTypeSpec" }, { - "id": "0x556c88fd92d0-IntrinsicTypeSpec", + "id": "0x55f3007dc2d0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x556c88fd92d0-IntegerTypeSpec" + "IntegerTypeSpec": "0x55f3007dc2d0-IntegerTypeSpec" }, { - "id": "0x556c88fd92d0-IntegerTypeSpec" + "id": "0x55f3007dc2d0-IntegerTypeSpec" }, { - "id": "0x556c88fd97e0-EntityDecl", - "Name": "0x556c88fd9898-Name", - "Initialization": "0x556c88fd97e0-Initialization" + "id": "0x55f3007dc7e0-EntityDecl", + "Name": "0x55f3007dc898-Name", + "Initialization": "0x55f3007dc7e0-Initialization" }, { - "id": "0x556c88fd9898-Name", + "id": "0x55f3007dc898-Name", "source": "shared_counter" }, { - "id": "0x556c88fd97e0-Initialization", + "id": "0x55f3007dc7e0-Initialization", "variantKey": "Expr", - "Expr": "0x556c88f3e790-Expr" + "Expr": "0x55f300741790-Expr" }, { - "id": "0x556c88f3e790-Expr", + "id": "0x55f300741790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x556c88f3e7b0-LiteralConstant" + "LiteralConstant": "0x55f3007417b0-LiteralConstant" }, { - "id": "0x556c88f3e7b0-LiteralConstant", + "id": "0x55f3007417b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x556c88f3e7b0-IntLiteralConstant" + "IntLiteralConstant": "0x55f3007417b0-IntLiteralConstant" }, { - "id": "0x556c88f3e7b0-IntLiteralConstant", + "id": "0x55f3007417b0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x556c88fca658-ExecutionPart", + "id": "0x55f3007cd658-ExecutionPart", "ExecutionPartConstruct": [ - "0x556c88fda780-ExecutionPartConstruct" + "0x55f3007dd780-ExecutionPartConstruct" ] }, { - "id": "0x556c88fca658-ExecutionPartConstruct" + "id": "0x55f3007cd658-ExecutionPartConstruct" }, { - "id": "0x556c88fda780-ExecutionPartConstruct", + "id": "0x55f3007dd780-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x556c88fda780-ExecutableConstruct" + "ExecutableConstruct": "0x55f3007dd780-ExecutableConstruct" }, { - "id": "0x556c88fda780-ExecutableConstruct", + "id": "0x55f3007dd780-ExecutableConstruct", "variantKey": "OpenMPConstruct", - "OpenMPConstruct": "0x556c88fdab90-OpenMPConstruct" + "OpenMPConstruct": "0x55f3007ddb90-OpenMPConstruct" }, { - "id": "0x556c88fdab90-OpenMPConstruct", + "id": "0x55f3007ddb90-OpenMPConstruct", "variantKey": "OmpBlockConstruct", - "OmpBlockConstruct": "0x556c88fdab90-OmpBlockConstruct" + "OmpBlockConstruct": "0x55f3007ddb90-OmpBlockConstruct" }, { - "id": "0x556c88fdab90-OmpBlockConstruct", - "OmpBeginDirective": "0x556c88fdac50-OmpBeginDirective", + "id": "0x55f3007ddb90-OmpBlockConstruct", + "OmpBeginDirective": "0x55f3007ddc50-OmpBeginDirective", "ExecutionPartConstruct": [ - "0x556c88fda720-ExecutionPartConstruct" + "0x55f3007dd720-ExecutionPartConstruct" ], - "OmpEndDirective": "0x556c88fdaba0-OmpEndDirective" + "OmpEndDirective": "0x55f3007ddba0-OmpEndDirective" }, { - "id": "0x556c88fdac50-OmpBeginDirective", - "OmpDirectiveName": "0x556c88fdacc8-OmpDirectiveName", - "OmpClauseList": "0x556c88fdac68-OmpClauseList", - "Flags = {}": "0x556c88fdac60-Flags = {}" + "id": "0x55f3007ddc50-OmpBeginDirective", + "OmpDirectiveName": "0x55f3007ddcc8-OmpDirectiveName", + "OmpClauseList": "0x55f3007ddc68-OmpClauseList", + "Flags": "0x55f3007ddc60-Flags" }, { - "id": "0x556c88fdacc8-OmpDirectiveName", + "id": "0x55f3007ddcc8-OmpDirectiveName", "directive": "parallel" }, { - "id": "0x556c88fdac68-OmpClauseList", + "id": "0x55f3007ddc68-OmpClauseList", "OmpClause": [ - "0x556c88fda240-OmpClause", - "0x556c88fda3c0-OmpClause" + "0x55f3007dd240-OmpClause", + "0x55f3007dd3c0-OmpClause" ] }, { - "id": "0x556c88fda240-OmpClause", + "id": "0x55f3007dd240-OmpClause", "variantKey": "Private", - "Private": "0x556c88fda250-Private" + "Private": "0x55f3007dd250-Private" }, { - "id": "0x556c88fda250-Private", - "OmpObjectList": "0x556c88fda250-OmpObjectList", + "id": "0x55f3007dd250-Private", + "OmpObjectList": "0x55f3007dd250-OmpObjectList", "kind": "PRIVATE" }, { - "id": "0x556c88fda250-OmpObjectList", + "id": "0x55f3007dd250-OmpObjectList", "OmpObject": [ - "0x556c88fd4350-OmpObject" + "0x55f3007d7350-OmpObject" ] }, { - "id": "0x556c88fd4350-OmpObject", + "id": "0x55f3007d7350-OmpObject", "variantKey": "Designator", - "Designator": "0x556c88fd4350-Designator" + "Designator": "0x55f3007d7350-Designator" }, { - "id": "0x556c88fd4350-Designator", + "id": "0x55f3007d7350-Designator", "variantKey": "DataRef", - "DataRef": "0x556c88fd4360-DataRef" + "DataRef": "0x55f3007d7360-DataRef" }, { - "id": "0x556c88fd4360-DataRef", + "id": "0x55f3007d7360-DataRef", "variantKey": "Name", - "Name": "0x556c88fd4360-Name" + "Name": "0x55f3007d7360-Name" }, { - "id": "0x556c88fd4360-Name", + "id": "0x55f3007d7360-Name", "source": "i" }, { - "id": "0x556c88fda3c0-OmpClause", + "id": "0x55f3007dd3c0-OmpClause", "variantKey": "Shared", - "Shared": "0x556c88fda3d0-Shared" + "Shared": "0x55f3007dd3d0-Shared" }, { - "id": "0x556c88fda3d0-Shared", - "OmpObjectList": "0x556c88fda3d0-OmpObjectList", + "id": "0x55f3007dd3d0-Shared", + "OmpObjectList": "0x55f3007dd3d0-OmpObjectList", "kind": "SHARED" }, { - "id": "0x556c88fda3d0-OmpObjectList", + "id": "0x55f3007dd3d0-OmpObjectList", "OmpObject": [ - "0x556c88fdc5f0-OmpObject" + "0x55f3007df5f0-OmpObject" ] }, { - "id": "0x556c88fdc5f0-OmpObject", + "id": "0x55f3007df5f0-OmpObject", "variantKey": "Designator", - "Designator": "0x556c88fdc5f0-Designator" + "Designator": "0x55f3007df5f0-Designator" }, { - "id": "0x556c88fdc5f0-Designator", + "id": "0x55f3007df5f0-Designator", "variantKey": "DataRef", - "DataRef": "0x556c88fdc600-DataRef" + "DataRef": "0x55f3007df600-DataRef" }, { - "id": "0x556c88fdc600-DataRef", + "id": "0x55f3007df600-DataRef", "variantKey": "Name", - "Name": "0x556c88fdc600-Name" + "Name": "0x55f3007df600-Name" }, { - "id": "0x556c88fdc600-Name", + "id": "0x55f3007df600-Name", "source": "num_threads" }, { - "id": "0x556c88fdac38-ExecutionPartConstruct" + "id": "0x55f3007ddc38-ExecutionPartConstruct" }, { - "id": "0x556c88fda720-ExecutionPartConstruct", + "id": "0x55f3007dd720-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x556c88fda720-ExecutableConstruct" + "ExecutableConstruct": "0x55f3007dd720-ExecutableConstruct" }, { - "id": "0x556c88fda720-ExecutableConstruct", + "id": "0x55f3007dd720-ExecutableConstruct", "variantKey": "OpenMPConstruct", - "OpenMPConstruct": "0x556c88fda940-OpenMPConstruct" + "OpenMPConstruct": "0x55f3007dd940-OpenMPConstruct" }, { - "id": "0x556c88fda940-OpenMPConstruct", + "id": "0x55f3007dd940-OpenMPConstruct", "variantKey": "OpenMPLoopConstruct", - "OpenMPLoopConstruct": "0x556c88fda940-OpenMPLoopConstruct" + "OpenMPLoopConstruct": "0x55f3007dd940-OpenMPLoopConstruct" }, { - "id": "0x556c88fda940-OpenMPLoopConstruct", - "OmpBeginLoopDirective": "0x556c88fdaa00-OmpBeginLoopDirective", + "id": "0x55f3007dd940-OpenMPLoopConstruct", + "OmpBeginLoopDirective": "0x55f3007dda00-OmpBeginLoopDirective", "ExecutionPartConstruct": [ - "0x556c88fdb6a0-ExecutionPartConstruct" + "0x55f3007de6a0-ExecutionPartConstruct" ], - "OmpEndLoopDirective": "0x556c88fda950-OmpEndLoopDirective" + "OmpEndLoopDirective": "0x55f3007dd950-OmpEndLoopDirective" }, { - "id": "0x556c88fdaa00-OmpBeginLoopDirective", - "OmpDirectiveName": "0x556c88fdaa78-OmpDirectiveName", - "OmpClauseList": "0x556c88fdaa18-OmpClauseList", - "Flags = {}": "0x556c88fdaa10-Flags = {}" + "id": "0x55f3007dda00-OmpBeginLoopDirective", + "OmpDirectiveName": "0x55f3007dda78-OmpDirectiveName", + "OmpClauseList": "0x55f3007dda18-OmpClauseList", + "Flags": "0x55f3007dda10-Flags" }, { - "id": "0x556c88fdaa78-OmpDirectiveName", + "id": "0x55f3007dda78-OmpDirectiveName", "directive": "do" }, { - "id": "0x556c88fdaa18-OmpClauseList" + "id": "0x55f3007dda18-OmpClauseList" }, { - "id": "0x556c88fda9e8-ExecutionPartConstruct" + "id": "0x55f3007dd9e8-ExecutionPartConstruct" }, { - "id": "0x556c88fdb6a0-ExecutionPartConstruct", + "id": "0x55f3007de6a0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x556c88fdb6a0-ExecutableConstruct" + "ExecutableConstruct": "0x55f3007de6a0-ExecutableConstruct" }, { - "id": "0x556c88fdb6a0-ExecutableConstruct", + "id": "0x55f3007de6a0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x556c88f54260-DoConstruct" + "DoConstruct": "0x55f300757260-DoConstruct" }, { - "id": "0x556c88f54260-DoConstruct", - "Statement": "0x556c88f542b8-Statement", + "id": "0x55f300757260-DoConstruct", + "Statement": "0x55f3007572b8-Statement", "ExecutionPartConstruct": [ - "0x556c88fdbc90-ExecutionPartConstruct" + "0x55f3007dec90-ExecutionPartConstruct" ], - "Statement": "0x556c88f54260-Statement" + "Statement": "0x55f300757260-Statement" }, { - "id": "0x556c88f542b8-Statement", - "statement": "0x556c88f542c8-NonLabelDoStmt", + "id": "0x55f3007572b8-Statement", + "statement": "0x55f3007572c8-NonLabelDoStmt", "source": "do i = 1, 100" }, { - "id": "0x556c88f542c8-NonLabelDoStmt", - "LoopControl": "0x556c88f542c8-LoopControl" + "id": "0x55f3007572c8-NonLabelDoStmt", + "LoopControl": "0x55f3007572c8-LoopControl" }, { - "id": "0x556c88f542c8-LoopControl", + "id": "0x55f3007572c8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x556c88f542c8-LoopBounds" + "LoopBounds": "0x55f3007572c8-LoopBounds" }, { - "id": "0x556c88f542c8-LoopBounds", - "var": "0x556c88f542c8-Name", - "lower": "0x556c88fd9a20-Expr", - "upper": "0x556c88fda4b0-Expr" + "id": "0x55f3007572c8-LoopBounds", + "var": "0x55f3007572c8-Name", + "lower": "0x55f3007dca20-Expr", + "upper": "0x55f3007dd4b0-Expr" }, { - "id": "0x556c88f542c8-Name", + "id": "0x55f3007572c8-Name", "source": "i" }, { - "id": "0x556c88fd9a20-Expr", + "id": "0x55f3007dca20-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x556c88fd9a40-LiteralConstant" + "LiteralConstant": "0x55f3007dca40-LiteralConstant" }, { - "id": "0x556c88fd9a40-LiteralConstant", + "id": "0x55f3007dca40-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x556c88fd9a40-IntLiteralConstant" + "IntLiteralConstant": "0x55f3007dca40-IntLiteralConstant" }, { - "id": "0x556c88fd9a40-IntLiteralConstant", + "id": "0x55f3007dca40-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x556c88fda4b0-Expr", + "id": "0x55f3007dd4b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x556c88fda4d0-LiteralConstant" + "LiteralConstant": "0x55f3007dd4d0-LiteralConstant" }, { - "id": "0x556c88fda4d0-LiteralConstant", + "id": "0x55f3007dd4d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x556c88fda4d0-IntLiteralConstant" + "IntLiteralConstant": "0x55f3007dd4d0-IntLiteralConstant" }, { - "id": "0x556c88fda4d0-IntLiteralConstant", + "id": "0x55f3007dd4d0-IntLiteralConstant", "CharBlock": "100" }, { - "id": "0x556c88f542a0-ExecutionPartConstruct" + "id": "0x55f3007572a0-ExecutionPartConstruct" }, { - "id": "0x556c88fdbc90-ExecutionPartConstruct", + "id": "0x55f3007dec90-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x556c88fdbc90-ExecutableConstruct" + "ExecutableConstruct": "0x55f3007dec90-ExecutableConstruct" }, { - "id": "0x556c88fdbc90-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x556c88fdbc90-Statement" + "id": "0x55f3007dec90-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55f3007dec90-Statement" }, { - "id": "0x556c88fdbc90-Statement", - "statement": "0x556c88fdbca0-ActionStmt", + "id": "0x55f3007dec90-Statement", + "statement": "0x55f3007deca0-ActionStmt", "source": "total_sum = total_sum" }, { - "id": "0x556c88fdbca0-ActionStmt", + "id": "0x55f3007deca0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x556c88facce0-AssignmentStmt" + "AssignmentStmt": "0x55f3007afce0-AssignmentStmt" }, { - "id": "0x556c88facce0-AssignmentStmt", - "Variable": "0x556c88facdc0-Variable", - "Expr": "0x556c88faccf0-Expr" + "id": "0x55f3007afce0-AssignmentStmt", + "Variable": "0x55f3007afdc0-Variable", + "Expr": "0x55f3007afcf0-Expr" }, { - "id": "0x556c88facdc0-Variable", + "id": "0x55f3007afdc0-Variable", "variantKey": "Designator", - "Designator": "0x556c88fd37e0-Designator" + "Designator": "0x55f3007d67e0-Designator" }, { - "id": "0x556c88fd37e0-Designator", + "id": "0x55f3007d67e0-Designator", "variantKey": "DataRef", - "DataRef": "0x556c88fd37f0-DataRef" + "DataRef": "0x55f3007d67f0-DataRef" }, { - "id": "0x556c88fd37f0-DataRef", + "id": "0x55f3007d67f0-DataRef", "variantKey": "Name", - "Name": "0x556c88fd37f0-Name" + "Name": "0x55f3007d67f0-Name" }, { - "id": "0x556c88fd37f0-Name", + "id": "0x55f3007d67f0-Name", "source": "total_sum" }, { - "id": "0x556c88faccf0-Expr", + "id": "0x55f3007afcf0-Expr", "variantKey": "Designator", - "Designator": "0x556c88fd4820-Designator" + "Designator": "0x55f3007d7820-Designator" }, { - "id": "0x556c88fd4820-Designator", + "id": "0x55f3007d7820-Designator", "variantKey": "DataRef", - "DataRef": "0x556c88fd4830-DataRef" + "DataRef": "0x55f3007d7830-DataRef" }, { - "id": "0x556c88fd4830-DataRef", + "id": "0x55f3007d7830-DataRef", "variantKey": "Name", - "Name": "0x556c88fd4830-Name" + "Name": "0x55f3007d7830-Name" }, { - "id": "0x556c88fd4830-Name", + "id": "0x55f3007d7830-Name", "source": "total_sum" }, { - "id": "0x556c88f54260-Statement", - "statement": "0x556c88f54270-EndDoStmt", + "id": "0x55f300757260-Statement", + "statement": "0x55f300757270-EndDoStmt", "source": "end do" }, { - "id": "0x556c88f54270-EndDoStmt" + "id": "0x55f300757270-EndDoStmt" }, { - "id": "0x556c88fda950-OmpEndLoopDirective", - "OmpDirectiveName": "0x556c88fda9c8-OmpDirectiveName", - "OmpClauseList": "0x556c88fda968-OmpClauseList", - "Flags = {}": "0x556c88fda960-Flags = {}" + "id": "0x55f3007dd950-OmpEndLoopDirective", + "OmpDirectiveName": "0x55f3007dd9c8-OmpDirectiveName", + "OmpClauseList": "0x55f3007dd968-OmpClauseList", + "Flags": "0x55f3007dd960-Flags" }, { - "id": "0x556c88fda9c8-OmpDirectiveName", + "id": "0x55f3007dd9c8-OmpDirectiveName", "directive": "do" }, { - "id": "0x556c88fda968-OmpClauseList", + "id": "0x55f3007dd968-OmpClauseList", "OmpClause": [ - "0x556c88fda850-OmpClause" + "0x55f3007dd850-OmpClause" ] }, { - "id": "0x556c88fda850-OmpClause", + "id": "0x55f3007dd850-OmpClause", "variantKey": "Nowait", - "Nowait": "0x556c88fda860-Nowait" + "Nowait": "0x55f3007dd860-Nowait" }, { - "id": "0x556c88fda860-Nowait", + "id": "0x55f3007dd860-Nowait", "kind": "NOWAIT" }, { - "id": "0x556c88fdaba0-OmpEndDirective", - "OmpDirectiveName": "0x556c88fdac18-OmpDirectiveName", - "OmpClauseList": "0x556c88fdabb8-OmpClauseList", - "Flags = {}": "0x556c88fdabb0-Flags = {}" + "id": "0x55f3007ddba0-OmpEndDirective", + "OmpDirectiveName": "0x55f3007ddc18-OmpDirectiveName", + "OmpClauseList": "0x55f3007ddbb8-OmpClauseList", + "Flags": "0x55f3007ddbb0-Flags" }, { - "id": "0x556c88fdac18-OmpDirectiveName", + "id": "0x55f3007ddc18-OmpDirectiveName", "directive": "parallel" }, { - "id": "0x556c88fdabb8-OmpClauseList" + "id": "0x55f3007ddbb8-OmpClauseList" }, { - "id": "0x556c88fca5d0-Statement", - "statement": "0x556c88fca5e0-EndProgramStmt", + "id": "0x55f3007cd5d0-Statement", + "statement": "0x55f3007cd5e0-EndProgramStmt", "source": "end program OPENMP_DEMO" }, { - "id": "0x556c88fca5e0-EndProgramStmt", - "Name": "0x556c88fca5e0-Name" + "id": "0x55f3007cd5e0-EndProgramStmt", + "Name": "0x55f3007cd5e0-Name" }, { - "id": "0x556c88fca5e0-Name", + "id": "0x55f3007cd5e0-Name", "source": "OPENMP_DEMO" } ], diff --git a/FortranParser/resources-test/fortran/parser/omp/omp_do.json b/FortranParser/resources-test/fortran/parser/omp/omp_do.json index 1dd266ff..074db9a9 100644 --- a/FortranParser/resources-test/fortran/parser/omp/omp_do.json +++ b/FortranParser/resources-test/fortran/parser/omp/omp_do.json @@ -2,658 +2,658 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x55fd88743f00-Program", + "id": "0x55ff4cb71f00-Program", "ProgramUnit": [ - "0x55fd887808c0-ProgramUnit" + "0x55ff4cbae8c0-ProgramUnit" ] }, { - "id": "0x55fd887808c0-ProgramUnit", + "id": "0x55ff4cbae8c0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x55fd88780b00-MainProgram" + "MainProgram": "0x55ff4cbaeb00-MainProgram" }, { - "id": "0x55fd88780b00-MainProgram", - "Statement": "0x55fd88780c48-Statement", - "SpecificationPart": "0x55fd88780ba0-SpecificationPart", - "ExecutionPart": "0x55fd88780b88-ExecutionPart", - "Statement": "0x55fd88780b00-Statement" + "id": "0x55ff4cbaeb00-MainProgram", + "Statement": "0x55ff4cbaec48-Statement", + "SpecificationPart": "0x55ff4cbaeba0-SpecificationPart", + "ExecutionPart": "0x55ff4cbaeb88-ExecutionPart", + "Statement": "0x55ff4cbaeb00-Statement" }, { - "id": "0x55fd88780c48-Statement", - "statement": "0x55fd88780c58-ProgramStmt", + "id": "0x55ff4cbaec48-Statement", + "statement": "0x55ff4cbaec58-ProgramStmt", "source": "program OPENMP_DEMO" }, { - "id": "0x55fd88780c58-ProgramStmt", - "Name": "0x55fd88780c58-Name" + "id": "0x55ff4cbaec58-ProgramStmt", + "Name": "0x55ff4cbaec58-Name" }, { - "id": "0x55fd88780c58-Name", + "id": "0x55ff4cbaec58-Name", "source": "OPENMP_DEMO" }, { - "id": "0x55fd88780ba0-SpecificationPart", - "Statement": [ - "0x55fd88779520-Statement" + "id": "0x55ff4cbaeba0-SpecificationPart", + "Statement": [ + "0x55ff4cba7520-Statement" ], - "ImplicitPart": "0x55fd88780bb8-ImplicitPart", + "ImplicitPart": "0x55ff4cbaebb8-ImplicitPart", "DeclarationConstruct": [ - "0x55fd88751170-DeclarationConstruct", - "0x55fd88750da0-DeclarationConstruct" + "0x55ff4cb7f170-DeclarationConstruct", + "0x55ff4cb7eda0-DeclarationConstruct" ] }, { - "id": "0x55fd88779520-Statement", - "statement": "0x55fd88787a40-UseStmt", + "id": "0x55ff4cba7520-Statement", + "statement": "0x55ff4cbb5a40-UseStmt", "source": "use omp_lib" }, { - "id": "0x55fd88787a40-UseStmt", - "moduleName": "0x55fd88787a48-Name", + "id": "0x55ff4cbb5a40-UseStmt", + "moduleName": "0x55ff4cbb5a48-Name", "variantKey": "Rename", "Rename": [] }, { - "id": "0x55fd88787a48-Name", + "id": "0x55ff4cbb5a48-Name", "source": "omp_lib" }, { - "id": "0x55fd88780bb8-ImplicitPart" + "id": "0x55ff4cbaebb8-ImplicitPart" }, { - "id": "0x55fd88751170-DeclarationConstruct", + "id": "0x55ff4cb7f170-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55fd88751170-SpecificationConstruct" + "SpecificationConstruct": "0x55ff4cb7f170-SpecificationConstruct" }, { - "id": "0x55fd88751170-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x55fd88751170-Statement" + "id": "0x55ff4cb7f170-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55ff4cb7f170-Statement" }, { - "id": "0x55fd88751170-Statement", - "statement": "0x55fd8877e310-TypeDeclarationStmt", + "id": "0x55ff4cb7f170-Statement", + "statement": "0x55ff4cbac310-TypeDeclarationStmt", "source": "integer :: i, thread_id, num_threads, total_sum" }, { - "id": "0x55fd8877e310-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55fd8877e340-DeclarationTypeSpec", + "id": "0x55ff4cbac310-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55ff4cbac340-DeclarationTypeSpec", "EntityDecl": [ - "0x55fd8877e6f0-EntityDecl", - "0x55fd8877e420-EntityDecl", - "0x55fd8877e510-EntityDecl", - "0x55fd8877e600-EntityDecl" + "0x55ff4cbac6f0-EntityDecl", + "0x55ff4cbac420-EntityDecl", + "0x55ff4cbac510-EntityDecl", + "0x55ff4cbac600-EntityDecl" ] }, { - "id": "0x55fd8877e340-DeclarationTypeSpec", + "id": "0x55ff4cbac340-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55fd8877e340-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55ff4cbac340-IntrinsicTypeSpec" }, { - "id": "0x55fd8877e340-IntrinsicTypeSpec", + "id": "0x55ff4cbac340-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55fd8877e340-IntegerTypeSpec" + "IntegerTypeSpec": "0x55ff4cbac340-IntegerTypeSpec" }, { - "id": "0x55fd8877e340-IntegerTypeSpec" + "id": "0x55ff4cbac340-IntegerTypeSpec" }, { - "id": "0x55fd8877e6f0-EntityDecl", - "Name": "0x55fd8877e7a8-Name" + "id": "0x55ff4cbac6f0-EntityDecl", + "Name": "0x55ff4cbac7a8-Name" }, { - "id": "0x55fd8877e7a8-Name", + "id": "0x55ff4cbac7a8-Name", "source": "i" }, { - "id": "0x55fd8877e420-EntityDecl", - "Name": "0x55fd8877e4d8-Name" + "id": "0x55ff4cbac420-EntityDecl", + "Name": "0x55ff4cbac4d8-Name" }, { - "id": "0x55fd8877e4d8-Name", + "id": "0x55ff4cbac4d8-Name", "source": "thread_id" }, { - "id": "0x55fd8877e510-EntityDecl", - "Name": "0x55fd8877e5c8-Name" + "id": "0x55ff4cbac510-EntityDecl", + "Name": "0x55ff4cbac5c8-Name" }, { - "id": "0x55fd8877e5c8-Name", + "id": "0x55ff4cbac5c8-Name", "source": "num_threads" }, { - "id": "0x55fd8877e600-EntityDecl", - "Name": "0x55fd8877e6b8-Name" + "id": "0x55ff4cbac600-EntityDecl", + "Name": "0x55ff4cbac6b8-Name" }, { - "id": "0x55fd8877e6b8-Name", + "id": "0x55ff4cbac6b8-Name", "source": "total_sum" }, { - "id": "0x55fd88750da0-DeclarationConstruct", + "id": "0x55ff4cb7eda0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55fd88750da0-SpecificationConstruct" + "SpecificationConstruct": "0x55ff4cb7eda0-SpecificationConstruct" }, { - "id": "0x55fd88750da0-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x55fd88750da0-Statement" + "id": "0x55ff4cb7eda0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55ff4cb7eda0-Statement" }, { - "id": "0x55fd88750da0-Statement", - "statement": "0x55fd8877e390-TypeDeclarationStmt", + "id": "0x55ff4cb7eda0-Statement", + "statement": "0x55ff4cbac390-TypeDeclarationStmt", "source": "integer :: shared_counter = 0" }, { - "id": "0x55fd8877e390-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55fd8877e3c0-DeclarationTypeSpec", + "id": "0x55ff4cbac390-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55ff4cbac3c0-DeclarationTypeSpec", "EntityDecl": [ - "0x55fd8877e8d0-EntityDecl" + "0x55ff4cbac8d0-EntityDecl" ] }, { - "id": "0x55fd8877e3c0-DeclarationTypeSpec", + "id": "0x55ff4cbac3c0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55fd8877e3c0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55ff4cbac3c0-IntrinsicTypeSpec" }, { - "id": "0x55fd8877e3c0-IntrinsicTypeSpec", + "id": "0x55ff4cbac3c0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55fd8877e3c0-IntegerTypeSpec" + "IntegerTypeSpec": "0x55ff4cbac3c0-IntegerTypeSpec" }, { - "id": "0x55fd8877e3c0-IntegerTypeSpec" + "id": "0x55ff4cbac3c0-IntegerTypeSpec" }, { - "id": "0x55fd8877e8d0-EntityDecl", - "Name": "0x55fd8877e988-Name", - "Initialization": "0x55fd8877e8d0-Initialization" + "id": "0x55ff4cbac8d0-EntityDecl", + "Name": "0x55ff4cbac988-Name", + "Initialization": "0x55ff4cbac8d0-Initialization" }, { - "id": "0x55fd8877e988-Name", + "id": "0x55ff4cbac988-Name", "source": "shared_counter" }, { - "id": "0x55fd8877e8d0-Initialization", + "id": "0x55ff4cbac8d0-Initialization", "variantKey": "Expr", - "Expr": "0x55fd886e3790-Expr" + "Expr": "0x55ff4cb11790-Expr" }, { - "id": "0x55fd886e3790-Expr", + "id": "0x55ff4cb11790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55fd886e37b0-LiteralConstant" + "LiteralConstant": "0x55ff4cb117b0-LiteralConstant" }, { - "id": "0x55fd886e37b0-LiteralConstant", + "id": "0x55ff4cb117b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55fd886e37b0-IntLiteralConstant" + "IntLiteralConstant": "0x55ff4cb117b0-IntLiteralConstant" }, { - "id": "0x55fd886e37b0-IntLiteralConstant", + "id": "0x55ff4cb117b0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55fd88780b88-ExecutionPart", + "id": "0x55ff4cbaeb88-ExecutionPart", "ExecutionPartConstruct": [ - "0x55fd8877f7f0-ExecutionPartConstruct", - "0x55fd8877fcc0-ExecutionPartConstruct" + "0x55ff4cbad7f0-ExecutionPartConstruct", + "0x55ff4cbadcc0-ExecutionPartConstruct" ] }, { - "id": "0x55fd88780b88-ExecutionPartConstruct" + "id": "0x55ff4cbaeb88-ExecutionPartConstruct" }, { - "id": "0x55fd8877f7f0-ExecutionPartConstruct", + "id": "0x55ff4cbad7f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55fd8877f7f0-ExecutableConstruct" + "ExecutableConstruct": "0x55ff4cbad7f0-ExecutableConstruct" }, { - "id": "0x55fd8877f7f0-ExecutableConstruct", + "id": "0x55ff4cbad7f0-ExecutableConstruct", "variantKey": "OpenMPConstruct", - "OpenMPConstruct": "0x55fd8877fb00-OpenMPConstruct" + "OpenMPConstruct": "0x55ff4cbadb00-OpenMPConstruct" }, { - "id": "0x55fd8877fb00-OpenMPConstruct", + "id": "0x55ff4cbadb00-OpenMPConstruct", "variantKey": "OmpBlockConstruct", - "OmpBlockConstruct": "0x55fd8877fb00-OmpBlockConstruct" + "OmpBlockConstruct": "0x55ff4cbadb00-OmpBlockConstruct" }, { - "id": "0x55fd8877fb00-OmpBlockConstruct", - "OmpBeginDirective": "0x55fd8877fbc0-OmpBeginDirective", + "id": "0x55ff4cbadb00-OmpBlockConstruct", + "OmpBeginDirective": "0x55ff4cbadbc0-OmpBeginDirective", "ExecutionPartConstruct": [ - "0x55fd8877f680-ExecutionPartConstruct" + "0x55ff4cbad680-ExecutionPartConstruct" ], - "OmpEndDirective": "0x55fd8877fb10-OmpEndDirective" + "OmpEndDirective": "0x55ff4cbadb10-OmpEndDirective" }, { - "id": "0x55fd8877fbc0-OmpBeginDirective", - "OmpDirectiveName": "0x55fd8877fc38-OmpDirectiveName", - "OmpClauseList": "0x55fd8877fbd8-OmpClauseList", - "Flags = {}": "0x55fd8877fbd0-Flags = {}" + "id": "0x55ff4cbadbc0-OmpBeginDirective", + "OmpDirectiveName": "0x55ff4cbadc38-OmpDirectiveName", + "OmpClauseList": "0x55ff4cbadbd8-OmpClauseList", + "Flags": "0x55ff4cbadbd0-Flags" }, { - "id": "0x55fd8877fc38-OmpDirectiveName", + "id": "0x55ff4cbadc38-OmpDirectiveName", "directive": "parallel" }, { - "id": "0x55fd8877fbd8-OmpClauseList" + "id": "0x55ff4cbadbd8-OmpClauseList" }, { - "id": "0x55fd8877fba8-ExecutionPartConstruct" + "id": "0x55ff4cbadba8-ExecutionPartConstruct" }, { - "id": "0x55fd8877f680-ExecutionPartConstruct", + "id": "0x55ff4cbad680-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55fd8877f680-ExecutableConstruct" + "ExecutableConstruct": "0x55ff4cbad680-ExecutableConstruct" }, { - "id": "0x55fd8877f680-ExecutableConstruct", + "id": "0x55ff4cbad680-ExecutableConstruct", "variantKey": "OpenMPConstruct", - "OpenMPConstruct": "0x55fd8877f8b0-OpenMPConstruct" + "OpenMPConstruct": "0x55ff4cbad8b0-OpenMPConstruct" }, { - "id": "0x55fd8877f8b0-OpenMPConstruct", + "id": "0x55ff4cbad8b0-OpenMPConstruct", "variantKey": "OpenMPLoopConstruct", - "OpenMPLoopConstruct": "0x55fd8877f8b0-OpenMPLoopConstruct" + "OpenMPLoopConstruct": "0x55ff4cbad8b0-OpenMPLoopConstruct" }, { - "id": "0x55fd8877f8b0-OpenMPLoopConstruct", - "OmpBeginLoopDirective": "0x55fd8877f970-OmpBeginLoopDirective", + "id": "0x55ff4cbad8b0-OpenMPLoopConstruct", + "OmpBeginLoopDirective": "0x55ff4cbad970-OmpBeginLoopDirective", "ExecutionPartConstruct": [ - "0x55fd8877f520-ExecutionPartConstruct" + "0x55ff4cbad520-ExecutionPartConstruct" ], - "OmpEndLoopDirective": "0x55fd8877f8c0-OmpEndLoopDirective" + "OmpEndLoopDirective": "0x55ff4cbad8c0-OmpEndLoopDirective" }, { - "id": "0x55fd8877f970-OmpBeginLoopDirective", - "OmpDirectiveName": "0x55fd8877f9e8-OmpDirectiveName", - "OmpClauseList": "0x55fd8877f988-OmpClauseList", - "Flags = {}": "0x55fd8877f980-Flags = {}" + "id": "0x55ff4cbad970-OmpBeginLoopDirective", + "OmpDirectiveName": "0x55ff4cbad9e8-OmpDirectiveName", + "OmpClauseList": "0x55ff4cbad988-OmpClauseList", + "Flags": "0x55ff4cbad980-Flags" }, { - "id": "0x55fd8877f9e8-OmpDirectiveName", + "id": "0x55ff4cbad9e8-OmpDirectiveName", "directive": "do" }, { - "id": "0x55fd8877f988-OmpClauseList" + "id": "0x55ff4cbad988-OmpClauseList" }, { - "id": "0x55fd8877f958-ExecutionPartConstruct" + "id": "0x55ff4cbad958-ExecutionPartConstruct" }, { - "id": "0x55fd8877f520-ExecutionPartConstruct", + "id": "0x55ff4cbad520-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55fd8877f520-ExecutableConstruct" + "ExecutableConstruct": "0x55ff4cbad520-ExecutableConstruct" }, { - "id": "0x55fd8877f520-ExecutableConstruct", + "id": "0x55ff4cbad520-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55fd88719780-DoConstruct" + "DoConstruct": "0x55ff4cb47780-DoConstruct" }, { - "id": "0x55fd88719780-DoConstruct", - "Statement": "0x55fd887197d8-Statement", + "id": "0x55ff4cb47780-DoConstruct", + "Statement": "0x55ff4cb477d8-Statement", "ExecutionPartConstruct": [ - "0x55fd8877f620-ExecutionPartConstruct" + "0x55ff4cbad620-ExecutionPartConstruct" ], - "Statement": "0x55fd88719780-Statement" + "Statement": "0x55ff4cb47780-Statement" }, { - "id": "0x55fd887197d8-Statement", - "statement": "0x55fd887197e8-NonLabelDoStmt", + "id": "0x55ff4cb477d8-Statement", + "statement": "0x55ff4cb477e8-NonLabelDoStmt", "source": "do i = 1, 100" }, { - "id": "0x55fd887197e8-NonLabelDoStmt", - "LoopControl": "0x55fd887197e8-LoopControl" + "id": "0x55ff4cb477e8-NonLabelDoStmt", + "LoopControl": "0x55ff4cb477e8-LoopControl" }, { - "id": "0x55fd887197e8-LoopControl", + "id": "0x55ff4cb477e8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55fd887197e8-LoopBounds" + "LoopBounds": "0x55ff4cb477e8-LoopBounds" }, { - "id": "0x55fd887197e8-LoopBounds", - "var": "0x55fd887197e8-Name", - "lower": "0x55fd8877eb10-Expr", - "upper": "0x55fd8877f430-Expr" + "id": "0x55ff4cb477e8-LoopBounds", + "var": "0x55ff4cb477e8-Name", + "lower": "0x55ff4cbacb10-Expr", + "upper": "0x55ff4cbad430-Expr" }, { - "id": "0x55fd887197e8-Name", + "id": "0x55ff4cb477e8-Name", "source": "i" }, { - "id": "0x55fd8877eb10-Expr", + "id": "0x55ff4cbacb10-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55fd8877eb30-LiteralConstant" + "LiteralConstant": "0x55ff4cbacb30-LiteralConstant" }, { - "id": "0x55fd8877eb30-LiteralConstant", + "id": "0x55ff4cbacb30-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55fd8877eb30-IntLiteralConstant" + "IntLiteralConstant": "0x55ff4cbacb30-IntLiteralConstant" }, { - "id": "0x55fd8877eb30-IntLiteralConstant", + "id": "0x55ff4cbacb30-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55fd8877f430-Expr", + "id": "0x55ff4cbad430-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55fd8877f450-LiteralConstant" + "LiteralConstant": "0x55ff4cbad450-LiteralConstant" }, { - "id": "0x55fd8877f450-LiteralConstant", + "id": "0x55ff4cbad450-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55fd8877f450-IntLiteralConstant" + "IntLiteralConstant": "0x55ff4cbad450-IntLiteralConstant" }, { - "id": "0x55fd8877f450-IntLiteralConstant", + "id": "0x55ff4cbad450-IntLiteralConstant", "CharBlock": "100" }, { - "id": "0x55fd887197c0-ExecutionPartConstruct" + "id": "0x55ff4cb477c0-ExecutionPartConstruct" }, { - "id": "0x55fd8877f620-ExecutionPartConstruct", + "id": "0x55ff4cbad620-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55fd8877f620-ExecutableConstruct" + "ExecutableConstruct": "0x55ff4cbad620-ExecutableConstruct" }, { - "id": "0x55fd8877f620-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x55fd8877f620-Statement" + "id": "0x55ff4cbad620-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ff4cbad620-Statement" }, { - "id": "0x55fd8877f620-Statement", - "statement": "0x55fd8877f630-ActionStmt", + "id": "0x55ff4cbad620-Statement", + "statement": "0x55ff4cbad630-ActionStmt", "source": "total_sum = total_sum" }, { - "id": "0x55fd8877f630-ActionStmt", + "id": "0x55ff4cbad630-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55fd8877f6d0-AssignmentStmt" + "AssignmentStmt": "0x55ff4cbad6d0-AssignmentStmt" }, { - "id": "0x55fd8877f6d0-AssignmentStmt", - "Variable": "0x55fd8877f7b0-Variable", - "Expr": "0x55fd8877f6e0-Expr" + "id": "0x55ff4cbad6d0-AssignmentStmt", + "Variable": "0x55ff4cbad7b0-Variable", + "Expr": "0x55ff4cbad6e0-Expr" }, { - "id": "0x55fd8877f7b0-Variable", + "id": "0x55ff4cbad7b0-Variable", "variantKey": "Designator", - "Designator": "0x55fd88778930-Designator" + "Designator": "0x55ff4cba6930-Designator" }, { - "id": "0x55fd88778930-Designator", + "id": "0x55ff4cba6930-Designator", "variantKey": "DataRef", - "DataRef": "0x55fd88778940-DataRef" + "DataRef": "0x55ff4cba6940-DataRef" }, { - "id": "0x55fd88778940-DataRef", + "id": "0x55ff4cba6940-DataRef", "variantKey": "Name", - "Name": "0x55fd88778940-Name" + "Name": "0x55ff4cba6940-Name" }, { - "id": "0x55fd88778940-Name", + "id": "0x55ff4cba6940-Name", "source": "total_sum" }, { - "id": "0x55fd8877f6e0-Expr", + "id": "0x55ff4cbad6e0-Expr", "variantKey": "Designator", - "Designator": "0x55fd8877ac50-Designator" + "Designator": "0x55ff4cba8c50-Designator" }, { - "id": "0x55fd8877ac50-Designator", + "id": "0x55ff4cba8c50-Designator", "variantKey": "DataRef", - "DataRef": "0x55fd8877ac60-DataRef" + "DataRef": "0x55ff4cba8c60-DataRef" }, { - "id": "0x55fd8877ac60-DataRef", + "id": "0x55ff4cba8c60-DataRef", "variantKey": "Name", - "Name": "0x55fd8877ac60-Name" + "Name": "0x55ff4cba8c60-Name" }, { - "id": "0x55fd8877ac60-Name", + "id": "0x55ff4cba8c60-Name", "source": "total_sum" }, { - "id": "0x55fd88719780-Statement", - "statement": "0x55fd88719790-EndDoStmt", + "id": "0x55ff4cb47780-Statement", + "statement": "0x55ff4cb47790-EndDoStmt", "source": "end do" }, { - "id": "0x55fd88719790-EndDoStmt" + "id": "0x55ff4cb47790-EndDoStmt" }, { - "id": "0x55fd8877f8c0-OmpEndLoopDirective", - "OmpDirectiveName": "0x55fd8877f938-OmpDirectiveName", - "OmpClauseList": "0x55fd8877f8d8-OmpClauseList", - "Flags = {}": "0x55fd8877f8d0-Flags = {}" + "id": "0x55ff4cbad8c0-OmpEndLoopDirective", + "OmpDirectiveName": "0x55ff4cbad938-OmpDirectiveName", + "OmpClauseList": "0x55ff4cbad8d8-OmpClauseList", + "Flags": "0x55ff4cbad8d0-Flags" }, { - "id": "0x55fd8877f938-OmpDirectiveName", + "id": "0x55ff4cbad938-OmpDirectiveName", "directive": "do" }, { - "id": "0x55fd8877f8d8-OmpClauseList" + "id": "0x55ff4cbad8d8-OmpClauseList" }, { - "id": "0x55fd8877fb10-OmpEndDirective", - "OmpDirectiveName": "0x55fd8877fb88-OmpDirectiveName", - "OmpClauseList": "0x55fd8877fb28-OmpClauseList", - "Flags = {}": "0x55fd8877fb20-Flags = {}" + "id": "0x55ff4cbadb10-OmpEndDirective", + "OmpDirectiveName": "0x55ff4cbadb88-OmpDirectiveName", + "OmpClauseList": "0x55ff4cbadb28-OmpClauseList", + "Flags": "0x55ff4cbadb20-Flags" }, { - "id": "0x55fd8877fb88-OmpDirectiveName", + "id": "0x55ff4cbadb88-OmpDirectiveName", "directive": "parallel" }, { - "id": "0x55fd8877fb28-OmpClauseList" + "id": "0x55ff4cbadb28-OmpClauseList" }, { - "id": "0x55fd8877fcc0-ExecutionPartConstruct", + "id": "0x55ff4cbadcc0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55fd8877fcc0-ExecutableConstruct" + "ExecutableConstruct": "0x55ff4cbadcc0-ExecutableConstruct" }, { - "id": "0x55fd8877fcc0-ExecutableConstruct", + "id": "0x55ff4cbadcc0-ExecutableConstruct", "variantKey": "OpenMPConstruct", - "OpenMPConstruct": "0x55fd887852e0-OpenMPConstruct" + "OpenMPConstruct": "0x55ff4cbb32e0-OpenMPConstruct" }, { - "id": "0x55fd887852e0-OpenMPConstruct", + "id": "0x55ff4cbb32e0-OpenMPConstruct", "variantKey": "OpenMPLoopConstruct", - "OpenMPLoopConstruct": "0x55fd887852e0-OpenMPLoopConstruct" + "OpenMPLoopConstruct": "0x55ff4cbb32e0-OpenMPLoopConstruct" }, { - "id": "0x55fd887852e0-OpenMPLoopConstruct", - "OmpBeginLoopDirective": "0x55fd887853a0-OmpBeginLoopDirective", + "id": "0x55ff4cbb32e0-OpenMPLoopConstruct", + "OmpBeginLoopDirective": "0x55ff4cbb33a0-OmpBeginLoopDirective", "ExecutionPartConstruct": [ - "0x55fd8877ff40-ExecutionPartConstruct" + "0x55ff4cbadf40-ExecutionPartConstruct" ], - "OmpEndLoopDirective": "0x55fd887852f0-OmpEndLoopDirective" + "OmpEndLoopDirective": "0x55ff4cbb32f0-OmpEndLoopDirective" }, { - "id": "0x55fd887853a0-OmpBeginLoopDirective", - "OmpDirectiveName": "0x55fd88785418-OmpDirectiveName", - "OmpClauseList": "0x55fd887853b8-OmpClauseList", - "Flags = {}": "0x55fd887853b0-Flags = {}" + "id": "0x55ff4cbb33a0-OmpBeginLoopDirective", + "OmpDirectiveName": "0x55ff4cbb3418-OmpDirectiveName", + "OmpClauseList": "0x55ff4cbb33b8-OmpClauseList", + "Flags": "0x55ff4cbb33b0-Flags" }, { - "id": "0x55fd88785418-OmpDirectiveName", + "id": "0x55ff4cbb3418-OmpDirectiveName", "directive": "parallel do" }, { - "id": "0x55fd887853b8-OmpClauseList" + "id": "0x55ff4cbb33b8-OmpClauseList" }, { - "id": "0x55fd88785388-ExecutionPartConstruct" + "id": "0x55ff4cbb3388-ExecutionPartConstruct" }, { - "id": "0x55fd8877ff40-ExecutionPartConstruct", + "id": "0x55ff4cbadf40-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55fd8877ff40-ExecutableConstruct" + "ExecutableConstruct": "0x55ff4cbadf40-ExecutableConstruct" }, { - "id": "0x55fd8877ff40-ExecutableConstruct", + "id": "0x55ff4cbadf40-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55fd88780100-DoConstruct" + "DoConstruct": "0x55ff4cbae100-DoConstruct" }, { - "id": "0x55fd88780100-DoConstruct", - "Statement": "0x55fd88780158-Statement", + "id": "0x55ff4cbae100-DoConstruct", + "Statement": "0x55ff4cbae158-Statement", "ExecutionPartConstruct": [ - "0x55fd88778ad0-ExecutionPartConstruct" + "0x55ff4cba6ad0-ExecutionPartConstruct" ], - "Statement": "0x55fd88780100-Statement" + "Statement": "0x55ff4cbae100-Statement" }, { - "id": "0x55fd88780158-Statement", - "statement": "0x55fd88780168-NonLabelDoStmt", + "id": "0x55ff4cbae158-Statement", + "statement": "0x55ff4cbae168-NonLabelDoStmt", "source": "do i = 1, 2" }, { - "id": "0x55fd88780168-NonLabelDoStmt", - "LoopControl": "0x55fd88780168-LoopControl" + "id": "0x55ff4cbae168-NonLabelDoStmt", + "LoopControl": "0x55ff4cbae168-LoopControl" }, { - "id": "0x55fd88780168-LoopControl", + "id": "0x55ff4cbae168-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55fd88780168-LoopBounds" + "LoopBounds": "0x55ff4cbae168-LoopBounds" }, { - "id": "0x55fd88780168-LoopBounds", - "var": "0x55fd88780168-Name", - "lower": "0x55fd8877fd10-Expr", - "upper": "0x55fd8877fdf0-Expr" + "id": "0x55ff4cbae168-LoopBounds", + "var": "0x55ff4cbae168-Name", + "lower": "0x55ff4cbadd10-Expr", + "upper": "0x55ff4cbaddf0-Expr" }, { - "id": "0x55fd88780168-Name", + "id": "0x55ff4cbae168-Name", "source": "i" }, { - "id": "0x55fd8877fd10-Expr", + "id": "0x55ff4cbadd10-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55fd8877fd30-LiteralConstant" + "LiteralConstant": "0x55ff4cbadd30-LiteralConstant" }, { - "id": "0x55fd8877fd30-LiteralConstant", + "id": "0x55ff4cbadd30-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55fd8877fd30-IntLiteralConstant" + "IntLiteralConstant": "0x55ff4cbadd30-IntLiteralConstant" }, { - "id": "0x55fd8877fd30-IntLiteralConstant", + "id": "0x55ff4cbadd30-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55fd8877fdf0-Expr", + "id": "0x55ff4cbaddf0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55fd8877fe10-LiteralConstant" + "LiteralConstant": "0x55ff4cbade10-LiteralConstant" }, { - "id": "0x55fd8877fe10-LiteralConstant", + "id": "0x55ff4cbade10-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55fd8877fe10-IntLiteralConstant" + "IntLiteralConstant": "0x55ff4cbade10-IntLiteralConstant" }, { - "id": "0x55fd8877fe10-IntLiteralConstant", + "id": "0x55ff4cbade10-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x55fd88780140-ExecutionPartConstruct" + "id": "0x55ff4cbae140-ExecutionPartConstruct" }, { - "id": "0x55fd88778ad0-ExecutionPartConstruct", + "id": "0x55ff4cba6ad0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55fd88778ad0-ExecutableConstruct" + "ExecutableConstruct": "0x55ff4cba6ad0-ExecutableConstruct" }, { - "id": "0x55fd88778ad0-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x55fd88778ad0-Statement" + "id": "0x55ff4cba6ad0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ff4cba6ad0-Statement" }, { - "id": "0x55fd88778ad0-Statement", - "statement": "0x55fd88778ae0-ActionStmt", + "id": "0x55ff4cba6ad0-Statement", + "statement": "0x55ff4cba6ae0-ActionStmt", "source": "total_sum = 1" }, { - "id": "0x55fd88778ae0-ActionStmt", + "id": "0x55ff4cba6ae0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55fd8877ff90-AssignmentStmt" + "AssignmentStmt": "0x55ff4cbadf90-AssignmentStmt" }, { - "id": "0x55fd8877ff90-AssignmentStmt", - "Variable": "0x55fd88780070-Variable", - "Expr": "0x55fd8877ffa0-Expr" + "id": "0x55ff4cbadf90-AssignmentStmt", + "Variable": "0x55ff4cbae070-Variable", + "Expr": "0x55ff4cbadfa0-Expr" }, { - "id": "0x55fd88780070-Variable", + "id": "0x55ff4cbae070-Variable", "variantKey": "Designator", - "Designator": "0x55fd8877fed0-Designator" + "Designator": "0x55ff4cbaded0-Designator" }, { - "id": "0x55fd8877fed0-Designator", + "id": "0x55ff4cbaded0-Designator", "variantKey": "DataRef", - "DataRef": "0x55fd8877fee0-DataRef" + "DataRef": "0x55ff4cbadee0-DataRef" }, { - "id": "0x55fd8877fee0-DataRef", + "id": "0x55ff4cbadee0-DataRef", "variantKey": "Name", - "Name": "0x55fd8877fee0-Name" + "Name": "0x55ff4cbadee0-Name" }, { - "id": "0x55fd8877fee0-Name", + "id": "0x55ff4cbadee0-Name", "source": "total_sum" }, { - "id": "0x55fd8877ffa0-Expr", + "id": "0x55ff4cbadfa0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55fd8877ffc0-LiteralConstant" + "LiteralConstant": "0x55ff4cbadfc0-LiteralConstant" }, { - "id": "0x55fd8877ffc0-LiteralConstant", + "id": "0x55ff4cbadfc0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55fd8877ffc0-IntLiteralConstant" + "IntLiteralConstant": "0x55ff4cbadfc0-IntLiteralConstant" }, { - "id": "0x55fd8877ffc0-IntLiteralConstant", + "id": "0x55ff4cbadfc0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55fd88780100-Statement", - "statement": "0x55fd88780110-EndDoStmt", + "id": "0x55ff4cbae100-Statement", + "statement": "0x55ff4cbae110-EndDoStmt", "source": "end do" }, { - "id": "0x55fd88780110-EndDoStmt" + "id": "0x55ff4cbae110-EndDoStmt" }, { - "id": "0x55fd887852f0-OmpEndLoopDirective", - "OmpDirectiveName": "0x55fd88785368-OmpDirectiveName", - "OmpClauseList": "0x55fd88785308-OmpClauseList", - "Flags = {}": "0x55fd88785300-Flags = {}" + "id": "0x55ff4cbb32f0-OmpEndLoopDirective", + "OmpDirectiveName": "0x55ff4cbb3368-OmpDirectiveName", + "OmpClauseList": "0x55ff4cbb3308-OmpClauseList", + "Flags": "0x55ff4cbb3300-Flags" }, { - "id": "0x55fd88785368-OmpDirectiveName", + "id": "0x55ff4cbb3368-OmpDirectiveName", "directive": "parallel do" }, { - "id": "0x55fd88785308-OmpClauseList" + "id": "0x55ff4cbb3308-OmpClauseList" }, { - "id": "0x55fd88780b00-Statement", - "statement": "0x55fd88780b10-EndProgramStmt", + "id": "0x55ff4cbaeb00-Statement", + "statement": "0x55ff4cbaeb10-EndProgramStmt", "source": "end program OPENMP_DEMO" }, { - "id": "0x55fd88780b10-EndProgramStmt", - "Name": "0x55fd88780b10-Name" + "id": "0x55ff4cbaeb10-EndProgramStmt", + "Name": "0x55ff4cbaeb10-Name" }, { - "id": "0x55fd88780b10-Name", + "id": "0x55ff4cbaeb10-Name", "source": "OPENMP_DEMO" } ], diff --git a/FortranParser/resources-test/fortran/parser/omp/omp_reduction.json b/FortranParser/resources-test/fortran/parser/omp/omp_reduction.json index 60f55a4b..a75499f6 100644 --- a/FortranParser/resources-test/fortran/parser/omp/omp_reduction.json +++ b/FortranParser/resources-test/fortran/parser/omp/omp_reduction.json @@ -2,503 +2,503 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x564d6ede9f00-Program", + "id": "0x564fd27f4f00-Program", "ProgramUnit": [ - "0x564d6ee1eb30-ProgramUnit" + "0x564fd2829b30-ProgramUnit" ] }, { - "id": "0x564d6ee1eb30-ProgramUnit", + "id": "0x564fd2829b30-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x564d6ee15240-MainProgram" + "MainProgram": "0x564fd2820240-MainProgram" }, { - "id": "0x564d6ee15240-MainProgram", - "Statement": "0x564d6ee15388-Statement", - "SpecificationPart": "0x564d6ee152e0-SpecificationPart", - "ExecutionPart": "0x564d6ee152c8-ExecutionPart", - "Statement": "0x564d6ee15240-Statement" + "id": "0x564fd2820240-MainProgram", + "Statement": "0x564fd2820388-Statement", + "SpecificationPart": "0x564fd28202e0-SpecificationPart", + "ExecutionPart": "0x564fd28202c8-ExecutionPart", + "Statement": "0x564fd2820240-Statement" }, { - "id": "0x564d6ee15388-Statement", - "statement": "0x564d6ee15398-ProgramStmt", + "id": "0x564fd2820388-Statement", + "statement": "0x564fd2820398-ProgramStmt", "source": "program OPENMP_DEMO" }, { - "id": "0x564d6ee15398-ProgramStmt", - "Name": "0x564d6ee15398-Name" + "id": "0x564fd2820398-ProgramStmt", + "Name": "0x564fd2820398-Name" }, { - "id": "0x564d6ee15398-Name", + "id": "0x564fd2820398-Name", "source": "OPENMP_DEMO" }, { - "id": "0x564d6ee152e0-SpecificationPart", - "Statement": [ - "0x564d6ee1ec60-Statement" + "id": "0x564fd28202e0-SpecificationPart", + "Statement": [ + "0x564fd2829c60-Statement" ], - "ImplicitPart": "0x564d6ee152f8-ImplicitPart", + "ImplicitPart": "0x564fd28202f8-ImplicitPart", "DeclarationConstruct": [ - "0x564d6edf7170-DeclarationConstruct", - "0x564d6edf6da0-DeclarationConstruct" + "0x564fd2802170-DeclarationConstruct", + "0x564fd2801da0-DeclarationConstruct" ] }, { - "id": "0x564d6ee1ec60-Statement", - "statement": "0x564d6ee2d8f0-UseStmt", + "id": "0x564fd2829c60-Statement", + "statement": "0x564fd28388f0-UseStmt", "source": "use omp_lib" }, { - "id": "0x564d6ee2d8f0-UseStmt", - "moduleName": "0x564d6ee2d8f8-Name", + "id": "0x564fd28388f0-UseStmt", + "moduleName": "0x564fd28388f8-Name", "variantKey": "Rename", "Rename": [] }, { - "id": "0x564d6ee2d8f8-Name", + "id": "0x564fd28388f8-Name", "source": "omp_lib" }, { - "id": "0x564d6ee152f8-ImplicitPart" + "id": "0x564fd28202f8-ImplicitPart" }, { - "id": "0x564d6edf7170-DeclarationConstruct", + "id": "0x564fd2802170-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x564d6edf7170-SpecificationConstruct" + "SpecificationConstruct": "0x564fd2802170-SpecificationConstruct" }, { - "id": "0x564d6edf7170-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x564d6edf7170-Statement" + "id": "0x564fd2802170-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x564fd2802170-Statement" }, { - "id": "0x564d6edf7170-Statement", - "statement": "0x564d6ee24140-TypeDeclarationStmt", + "id": "0x564fd2802170-Statement", + "statement": "0x564fd282f140-TypeDeclarationStmt", "source": "integer :: i, thread_id, num_threads, total_sum" }, { - "id": "0x564d6ee24140-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x564d6ee24170-DeclarationTypeSpec", + "id": "0x564fd282f140-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x564fd282f170-DeclarationTypeSpec", "EntityDecl": [ - "0x564d6ee24520-EntityDecl", - "0x564d6ee24250-EntityDecl", - "0x564d6ee24340-EntityDecl", - "0x564d6ee24430-EntityDecl" + "0x564fd282f520-EntityDecl", + "0x564fd282f250-EntityDecl", + "0x564fd282f340-EntityDecl", + "0x564fd282f430-EntityDecl" ] }, { - "id": "0x564d6ee24170-DeclarationTypeSpec", + "id": "0x564fd282f170-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x564d6ee24170-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x564fd282f170-IntrinsicTypeSpec" }, { - "id": "0x564d6ee24170-IntrinsicTypeSpec", + "id": "0x564fd282f170-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x564d6ee24170-IntegerTypeSpec" + "IntegerTypeSpec": "0x564fd282f170-IntegerTypeSpec" }, { - "id": "0x564d6ee24170-IntegerTypeSpec" + "id": "0x564fd282f170-IntegerTypeSpec" }, { - "id": "0x564d6ee24520-EntityDecl", - "Name": "0x564d6ee245d8-Name" + "id": "0x564fd282f520-EntityDecl", + "Name": "0x564fd282f5d8-Name" }, { - "id": "0x564d6ee245d8-Name", + "id": "0x564fd282f5d8-Name", "source": "i" }, { - "id": "0x564d6ee24250-EntityDecl", - "Name": "0x564d6ee24308-Name" + "id": "0x564fd282f250-EntityDecl", + "Name": "0x564fd282f308-Name" }, { - "id": "0x564d6ee24308-Name", + "id": "0x564fd282f308-Name", "source": "thread_id" }, { - "id": "0x564d6ee24340-EntityDecl", - "Name": "0x564d6ee243f8-Name" + "id": "0x564fd282f340-EntityDecl", + "Name": "0x564fd282f3f8-Name" }, { - "id": "0x564d6ee243f8-Name", + "id": "0x564fd282f3f8-Name", "source": "num_threads" }, { - "id": "0x564d6ee24430-EntityDecl", - "Name": "0x564d6ee244e8-Name" + "id": "0x564fd282f430-EntityDecl", + "Name": "0x564fd282f4e8-Name" }, { - "id": "0x564d6ee244e8-Name", + "id": "0x564fd282f4e8-Name", "source": "total_sum" }, { - "id": "0x564d6edf6da0-DeclarationConstruct", + "id": "0x564fd2801da0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x564d6edf6da0-SpecificationConstruct" + "SpecificationConstruct": "0x564fd2801da0-SpecificationConstruct" }, { - "id": "0x564d6edf6da0-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x564d6edf6da0-Statement" + "id": "0x564fd2801da0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x564fd2801da0-Statement" }, { - "id": "0x564d6edf6da0-Statement", - "statement": "0x564d6ee241c0-TypeDeclarationStmt", + "id": "0x564fd2801da0-Statement", + "statement": "0x564fd282f1c0-TypeDeclarationStmt", "source": "integer :: shared_counter = 0" }, { - "id": "0x564d6ee241c0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x564d6ee241f0-DeclarationTypeSpec", + "id": "0x564fd282f1c0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x564fd282f1f0-DeclarationTypeSpec", "EntityDecl": [ - "0x564d6ee24700-EntityDecl" + "0x564fd282f700-EntityDecl" ] }, { - "id": "0x564d6ee241f0-DeclarationTypeSpec", + "id": "0x564fd282f1f0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x564d6ee241f0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x564fd282f1f0-IntrinsicTypeSpec" }, { - "id": "0x564d6ee241f0-IntrinsicTypeSpec", + "id": "0x564fd282f1f0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x564d6ee241f0-IntegerTypeSpec" + "IntegerTypeSpec": "0x564fd282f1f0-IntegerTypeSpec" }, { - "id": "0x564d6ee241f0-IntegerTypeSpec" + "id": "0x564fd282f1f0-IntegerTypeSpec" }, { - "id": "0x564d6ee24700-EntityDecl", - "Name": "0x564d6ee247b8-Name", - "Initialization": "0x564d6ee24700-Initialization" + "id": "0x564fd282f700-EntityDecl", + "Name": "0x564fd282f7b8-Name", + "Initialization": "0x564fd282f700-Initialization" }, { - "id": "0x564d6ee247b8-Name", + "id": "0x564fd282f7b8-Name", "source": "shared_counter" }, { - "id": "0x564d6ee24700-Initialization", + "id": "0x564fd282f700-Initialization", "variantKey": "Expr", - "Expr": "0x564d6ed89790-Expr" + "Expr": "0x564fd2794790-Expr" }, { - "id": "0x564d6ed89790-Expr", + "id": "0x564fd2794790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564d6ed897b0-LiteralConstant" + "LiteralConstant": "0x564fd27947b0-LiteralConstant" }, { - "id": "0x564d6ed897b0-LiteralConstant", + "id": "0x564fd27947b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564d6ed897b0-IntLiteralConstant" + "IntLiteralConstant": "0x564fd27947b0-IntLiteralConstant" }, { - "id": "0x564d6ed897b0-IntLiteralConstant", + "id": "0x564fd27947b0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x564d6ee152c8-ExecutionPart", + "id": "0x564fd28202c8-ExecutionPart", "ExecutionPartConstruct": [ - "0x564d6ee1fe00-ExecutionPartConstruct" + "0x564fd282ae00-ExecutionPartConstruct" ] }, { - "id": "0x564d6ee152c8-ExecutionPartConstruct" + "id": "0x564fd28202c8-ExecutionPartConstruct" }, { - "id": "0x564d6ee1fe00-ExecutionPartConstruct", + "id": "0x564fd282ae00-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564d6ee1fe00-ExecutableConstruct" + "ExecutableConstruct": "0x564fd282ae00-ExecutableConstruct" }, { - "id": "0x564d6ee1fe00-ExecutableConstruct", + "id": "0x564fd282ae00-ExecutableConstruct", "variantKey": "OpenMPConstruct", - "OpenMPConstruct": "0x564d6ee25760-OpenMPConstruct" + "OpenMPConstruct": "0x564fd2830760-OpenMPConstruct" }, { - "id": "0x564d6ee25760-OpenMPConstruct", + "id": "0x564fd2830760-OpenMPConstruct", "variantKey": "OpenMPLoopConstruct", - "OpenMPLoopConstruct": "0x564d6ee25760-OpenMPLoopConstruct" + "OpenMPLoopConstruct": "0x564fd2830760-OpenMPLoopConstruct" }, { - "id": "0x564d6ee25760-OpenMPLoopConstruct", - "OmpBeginLoopDirective": "0x564d6ee25820-OmpBeginLoopDirective", + "id": "0x564fd2830760-OpenMPLoopConstruct", + "OmpBeginLoopDirective": "0x564fd2830820-OmpBeginLoopDirective", "ExecutionPartConstruct": [ - "0x564d6ee256a0-ExecutionPartConstruct" + "0x564fd28306a0-ExecutionPartConstruct" ], - "OmpEndLoopDirective": "0x564d6ee25770-OmpEndLoopDirective" + "OmpEndLoopDirective": "0x564fd2830770-OmpEndLoopDirective" }, { - "id": "0x564d6ee25820-OmpBeginLoopDirective", - "OmpDirectiveName": "0x564d6ee25898-OmpDirectiveName", - "OmpClauseList": "0x564d6ee25838-OmpClauseList", - "Flags = {}": "0x564d6ee25830-Flags = {}" + "id": "0x564fd2830820-OmpBeginLoopDirective", + "OmpDirectiveName": "0x564fd2830898-OmpDirectiveName", + "OmpClauseList": "0x564fd2830838-OmpClauseList", + "Flags": "0x564fd2830830-Flags" }, { - "id": "0x564d6ee25898-OmpDirectiveName", + "id": "0x564fd2830898-OmpDirectiveName", "directive": "parallel do" }, { - "id": "0x564d6ee25838-OmpClauseList", + "id": "0x564fd2830838-OmpClauseList", "OmpClause": [ - "0x564d6ee25160-OmpClause" + "0x564fd2830160-OmpClause" ] }, { - "id": "0x564d6ee25160-OmpClause", + "id": "0x564fd2830160-OmpClause", "variantKey": "Reduction", - "Reduction": "0x564d6ee25170-Reduction" + "Reduction": "0x564fd2830170-Reduction" }, { - "id": "0x564d6ee25170-Reduction", - "OmpReductionClause": "0x564d6ee25170-OmpReductionClause", + "id": "0x564fd2830170-Reduction", + "OmpReductionClause": "0x564fd2830170-OmpReductionClause", "kind": "REDUCTION" }, { - "id": "0x564d6ee25170-OmpReductionClause", + "id": "0x564fd2830170-OmpReductionClause", "Modifier": [ - "0x564d6ee266a0-Modifier" + "0x564fd28316a0-Modifier" ], - "OmpObjectList": "0x564d6ee25170-OmpObjectList" + "OmpObjectList": "0x564fd2830170-OmpObjectList" }, { - "id": "0x564d6ee266a0-Modifier", + "id": "0x564fd28316a0-Modifier", "variantKey": "OmpReductionIdentifier", - "OmpReductionIdentifier": "0x564d6ee266b0-OmpReductionIdentifier" + "OmpReductionIdentifier": "0x564fd28316b0-OmpReductionIdentifier" }, { - "id": "0x564d6ee266b0-OmpReductionIdentifier", + "id": "0x564fd28316b0-OmpReductionIdentifier", "variantKey": "DefinedOperator", - "DefinedOperator": "0x564d6ee266b0-DefinedOperator" + "DefinedOperator": "0x564fd28316b0-DefinedOperator" }, { - "id": "0x564d6ee266b0-DefinedOperator", + "id": "0x564fd28316b0-DefinedOperator", "op": "Add" }, { - "id": "0x564d6ee266b0-IntrinsicOperator = Add", + "id": "0x564fd28316b0-IntrinsicOperator", "disambiguation": "Fortran::parser::DefinedOperator::IntrinsicOperator", "value": "Add" }, { - "id": "0x564d6ee25170-OmpObjectList", + "id": "0x564fd2830170-OmpObjectList", "OmpObject": [ - "0x564d6ee1f730-OmpObject" + "0x564fd282a730-OmpObject" ] }, { - "id": "0x564d6ee1f730-OmpObject", + "id": "0x564fd282a730-OmpObject", "variantKey": "Designator", - "Designator": "0x564d6ee1f730-Designator" + "Designator": "0x564fd282a730-Designator" }, { - "id": "0x564d6ee1f730-Designator", + "id": "0x564fd282a730-Designator", "variantKey": "DataRef", - "DataRef": "0x564d6ee1f740-DataRef" + "DataRef": "0x564fd282a740-DataRef" }, { - "id": "0x564d6ee1f740-DataRef", + "id": "0x564fd282a740-DataRef", "variantKey": "Name", - "Name": "0x564d6ee1f740-Name" + "Name": "0x564fd282a740-Name" }, { - "id": "0x564d6ee1f740-Name", + "id": "0x564fd282a740-Name", "source": "total_sum" }, { - "id": "0x564d6ee25808-ExecutionPartConstruct" + "id": "0x564fd2830808-ExecutionPartConstruct" }, { - "id": "0x564d6ee256a0-ExecutionPartConstruct", + "id": "0x564fd28306a0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564d6ee256a0-ExecutableConstruct" + "ExecutableConstruct": "0x564fd28306a0-ExecutableConstruct" }, { - "id": "0x564d6ee256a0-ExecutableConstruct", + "id": "0x564fd28306a0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x564d6edbf780-DoConstruct" + "DoConstruct": "0x564fd27ca780-DoConstruct" }, { - "id": "0x564d6edbf780-DoConstruct", - "Statement": "0x564d6edbf7d8-Statement", + "id": "0x564fd27ca780-DoConstruct", + "Statement": "0x564fd27ca7d8-Statement", "ExecutionPartConstruct": [ - "0x564d6ee26640-ExecutionPartConstruct" + "0x564fd2831640-ExecutionPartConstruct" ], - "Statement": "0x564d6edbf780-Statement" + "Statement": "0x564fd27ca780-Statement" }, { - "id": "0x564d6edbf7d8-Statement", - "statement": "0x564d6edbf7e8-NonLabelDoStmt", + "id": "0x564fd27ca7d8-Statement", + "statement": "0x564fd27ca7e8-NonLabelDoStmt", "source": "do i = 1, 2" }, { - "id": "0x564d6edbf7e8-NonLabelDoStmt", - "LoopControl": "0x564d6edbf7e8-LoopControl" + "id": "0x564fd27ca7e8-NonLabelDoStmt", + "LoopControl": "0x564fd27ca7e8-LoopControl" }, { - "id": "0x564d6edbf7e8-LoopControl", + "id": "0x564fd27ca7e8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x564d6edbf7e8-LoopBounds" + "LoopBounds": "0x564fd27ca7e8-LoopBounds" }, { - "id": "0x564d6edbf7e8-LoopBounds", - "var": "0x564d6edbf7e8-Name", - "lower": "0x564d6ee254d0-Expr", - "upper": "0x564d6ee255b0-Expr" + "id": "0x564fd27ca7e8-LoopBounds", + "var": "0x564fd27ca7e8-Name", + "lower": "0x564fd28304d0-Expr", + "upper": "0x564fd28305b0-Expr" }, { - "id": "0x564d6edbf7e8-Name", + "id": "0x564fd27ca7e8-Name", "source": "i" }, { - "id": "0x564d6ee254d0-Expr", + "id": "0x564fd28304d0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564d6ee254f0-LiteralConstant" + "LiteralConstant": "0x564fd28304f0-LiteralConstant" }, { - "id": "0x564d6ee254f0-LiteralConstant", + "id": "0x564fd28304f0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564d6ee254f0-IntLiteralConstant" + "IntLiteralConstant": "0x564fd28304f0-IntLiteralConstant" }, { - "id": "0x564d6ee254f0-IntLiteralConstant", + "id": "0x564fd28304f0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x564d6ee255b0-Expr", + "id": "0x564fd28305b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564d6ee255d0-LiteralConstant" + "LiteralConstant": "0x564fd28305d0-LiteralConstant" }, { - "id": "0x564d6ee255d0-LiteralConstant", + "id": "0x564fd28305d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564d6ee255d0-IntLiteralConstant" + "IntLiteralConstant": "0x564fd28305d0-IntLiteralConstant" }, { - "id": "0x564d6ee255d0-IntLiteralConstant", + "id": "0x564fd28305d0-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x564d6edbf7c0-ExecutionPartConstruct" + "id": "0x564fd27ca7c0-ExecutionPartConstruct" }, { - "id": "0x564d6ee26640-ExecutionPartConstruct", + "id": "0x564fd2831640-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x564d6ee26640-ExecutableConstruct" + "ExecutableConstruct": "0x564fd2831640-ExecutableConstruct" }, { - "id": "0x564d6ee26640-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x564d6ee26640-Statement" + "id": "0x564fd2831640-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x564fd2831640-Statement" }, { - "id": "0x564d6ee26640-Statement", - "statement": "0x564d6ee26650-ActionStmt", + "id": "0x564fd2831640-Statement", + "statement": "0x564fd2831650-ActionStmt", "source": "total_sum = total_sum + 1" }, { - "id": "0x564d6ee26650-ActionStmt", + "id": "0x564fd2831650-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x564d6edf7ce0-AssignmentStmt" + "AssignmentStmt": "0x564fd2802ce0-AssignmentStmt" }, { - "id": "0x564d6edf7ce0-AssignmentStmt", - "Variable": "0x564d6edf7dc0-Variable", - "Expr": "0x564d6edf7cf0-Expr" + "id": "0x564fd2802ce0-AssignmentStmt", + "Variable": "0x564fd2802dc0-Variable", + "Expr": "0x564fd2802cf0-Expr" }, { - "id": "0x564d6edf7dc0-Variable", + "id": "0x564fd2802dc0-Variable", "variantKey": "Designator", - "Designator": "0x564d6ee1e750-Designator" + "Designator": "0x564fd2829750-Designator" }, { - "id": "0x564d6ee1e750-Designator", + "id": "0x564fd2829750-Designator", "variantKey": "DataRef", - "DataRef": "0x564d6ee1e760-DataRef" + "DataRef": "0x564fd2829760-DataRef" }, { - "id": "0x564d6ee1e760-DataRef", + "id": "0x564fd2829760-DataRef", "variantKey": "Name", - "Name": "0x564d6ee1e760-Name" + "Name": "0x564fd2829760-Name" }, { - "id": "0x564d6ee1e760-Name", + "id": "0x564fd2829760-Name", "source": "total_sum" }, { - "id": "0x564d6edf7cf0-Expr", + "id": "0x564fd2802cf0-Expr", "variantKey": "Add", - "Add": "0x564d6edf7d10-Add" + "Add": "0x564fd2802d10-Add" }, { - "id": "0x564d6edf7d10-Add", - "left": "0x564d6ee25250-Expr", - "right": "0x564d6ee24940-Expr", + "id": "0x564fd2802d10-Add", + "left": "0x564fd2830250-Expr", + "right": "0x564fd282f940-Expr", "op": "ADD" }, { - "id": "0x564d6ee25250-Expr", + "id": "0x564fd2830250-Expr", "variantKey": "Designator", - "Designator": "0x564d6ee253b0-Designator" + "Designator": "0x564fd28303b0-Designator" }, { - "id": "0x564d6ee253b0-Designator", + "id": "0x564fd28303b0-Designator", "variantKey": "DataRef", - "DataRef": "0x564d6ee253c0-DataRef" + "DataRef": "0x564fd28303c0-DataRef" }, { - "id": "0x564d6ee253c0-DataRef", + "id": "0x564fd28303c0-DataRef", "variantKey": "Name", - "Name": "0x564d6ee253c0-Name" + "Name": "0x564fd28303c0-Name" }, { - "id": "0x564d6ee253c0-Name", + "id": "0x564fd28303c0-Name", "source": "total_sum" }, { - "id": "0x564d6ee24940-Expr", + "id": "0x564fd282f940-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x564d6ee24960-LiteralConstant" + "LiteralConstant": "0x564fd282f960-LiteralConstant" }, { - "id": "0x564d6ee24960-LiteralConstant", + "id": "0x564fd282f960-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x564d6ee24960-IntLiteralConstant" + "IntLiteralConstant": "0x564fd282f960-IntLiteralConstant" }, { - "id": "0x564d6ee24960-IntLiteralConstant", + "id": "0x564fd282f960-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x564d6edbf780-Statement", - "statement": "0x564d6edbf790-EndDoStmt", + "id": "0x564fd27ca780-Statement", + "statement": "0x564fd27ca790-EndDoStmt", "source": "end do" }, { - "id": "0x564d6edbf790-EndDoStmt" + "id": "0x564fd27ca790-EndDoStmt" }, { - "id": "0x564d6ee25770-OmpEndLoopDirective", - "OmpDirectiveName": "0x564d6ee257e8-OmpDirectiveName", - "OmpClauseList": "0x564d6ee25788-OmpClauseList", - "Flags = {}": "0x564d6ee25780-Flags = {}" + "id": "0x564fd2830770-OmpEndLoopDirective", + "OmpDirectiveName": "0x564fd28307e8-OmpDirectiveName", + "OmpClauseList": "0x564fd2830788-OmpClauseList", + "Flags": "0x564fd2830780-Flags" }, { - "id": "0x564d6ee257e8-OmpDirectiveName", + "id": "0x564fd28307e8-OmpDirectiveName", "directive": "parallel do" }, { - "id": "0x564d6ee25788-OmpClauseList" + "id": "0x564fd2830788-OmpClauseList" }, { - "id": "0x564d6ee15240-Statement", - "statement": "0x564d6ee15250-EndProgramStmt", + "id": "0x564fd2820240-Statement", + "statement": "0x564fd2820250-EndProgramStmt", "source": "end program OPENMP_DEMO" }, { - "id": "0x564d6ee15250-EndProgramStmt", - "Name": "0x564d6ee15250-Name" + "id": "0x564fd2820250-EndProgramStmt", + "Name": "0x564fd2820250-Name" }, { - "id": "0x564d6ee15250-Name", + "id": "0x564fd2820250-Name", "source": "OPENMP_DEMO" } ], From 0fa4debbac4b605e2198ff346a153db24ef84dad Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 6 Aug 2026 18:35:59 +0100 Subject: [PATCH 194/260] Fix specification association with use and import statements --- .../fe/specs/fortran/ast/nodes/program/Specification.java | 2 +- .../fortran/parser/processors/ProgramProcessors.java | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Specification.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Specification.java index 5a75bcca..584417b1 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Specification.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Specification.java @@ -25,7 +25,7 @@ public List getImportStmts() { } public ImplicitPart getImplicitPart() { - return getChild(ImplicitPart.class, 0); + return getChild(ImplicitPart.class); } public List getDeclarationConstructs() { diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java index ecc41ef3..832625c5 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java @@ -99,13 +99,13 @@ public void subprogramUnit(SubprogramUnit subprogramUnit) { public void specification(Specification specification) { var attrs = attributes(specification); - if (attrs.has(FlangName.USE_STMT)) { - var useStmts = getChildren(specification, FlangName.USE_STMT); + if (attrs.has(FlangName.USE_STMT.getStmtAttr())) { + var useStmts = getChildren(specification, FlangName.USE_STMT.getStmtAttr()); specification.addChildren(useStmts); } - if (attrs.has(FlangName.IMPORT_STMT)) { - var importStmts = getChildren(specification, FlangName.IMPORT_STMT); + if (attrs.has(FlangName.IMPORT_STMT.getStmtAttr())) { + var importStmts = getChildren(specification, FlangName.IMPORT_STMT.getStmtAttr()); specification.addChildren(importStmts); } From 4419a5f04875c766bc9d79427a8e3a1de2cea3c8 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 6 Aug 2026 19:46:10 +0100 Subject: [PATCH 195/260] Fix implicit statement implementation --- .../fe/specs/fortran/ast/FortranKeyword.java | 1 + .../ast/nodes/specification/ImplicitSpec.java | 28 ++++++++---- .../ast/nodes/stmt/DefaultImplicitStmt.java | 31 +++++++++++++ .../ast/nodes/stmt/ImplicitNoneStmt.java | 44 +++++++++++++++++++ .../ast/nodes/stmt/ImplicitPartStmt.java | 2 +- .../fortran/ast/nodes/stmt/ImplicitStmt.java | 25 +---------- 6 files changed, 98 insertions(+), 33 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DefaultImplicitStmt.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImplicitNoneStmt.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java index 37ead1da..050edce7 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -80,6 +80,7 @@ public enum FortranKeyword { NONE, ALL, IMPLICIT, + TYPE, OMP; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/ImplicitSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/ImplicitSpec.java index b29a4844..a08e3c90 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/ImplicitSpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/ImplicitSpec.java @@ -1,22 +1,34 @@ package pt.up.fe.specs.fortran.ast.nodes.specification; -import org.suikasoft.jOptions.Datakey.DataKey; -import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DeclType; import java.util.Collection; -import java.util.Optional; +import java.util.List; +import java.util.stream.Collectors; public class ImplicitSpec extends FortranNode { - public static final DataKey FIRST_LOCATION = KeyFactory.string("first_location"); - public static final DataKey> LAST_LOCATION = KeyFactory.optional("last_location"); - public ImplicitSpec(DataStore data, Collection children) { super(data, children); } - public String getFirstLocation() { - return get(FIRST_LOCATION); + public DeclType getDeclType() { + return getChild(DeclType.class, 0); + } + + public List getLetterSpecs() { + return getChildrenOf(LetterSpec.class); + } + + @Override + public String getCode() { + var declTypeCode = getDeclType().getCode(); + var letterSpecsCode = getLetterSpecs().stream() + .map(LetterSpec::getCode) + .collect(Collectors.joining(", ", " (", ")")); + + return declTypeCode + letterSpecsCode; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DefaultImplicitStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DefaultImplicitStmt.java new file mode 100644 index 00000000..95d76918 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DefaultImplicitStmt.java @@ -0,0 +1,31 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.specification.ImplicitSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.LetterSpec; +import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DeclType; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +public class DefaultImplicitStmt extends ImplicitStmt { + public DefaultImplicitStmt(DataStore data, Collection children) { + super(data, children); + } + + public List getSpecs() { + return getChildren(ImplicitSpec.class); + } + + @Override + public String getStmtCode() { + var specsCode = getSpecs().stream() + .map(ImplicitSpec::getCode) + .collect(Collectors.joining(", ")); + + return keyword(FortranKeyword.IMPLICIT) + " " + specsCode; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImplicitNoneStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImplicitNoneStmt.java new file mode 100644 index 00000000..f148e98c --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImplicitNoneStmt.java @@ -0,0 +1,44 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public class ImplicitNoneStmt extends ImplicitStmt { + public static final DataKey EXPLICIT_TYPES = KeyFactory.bool("explicit_types"); + public static final DataKey EXPLICIT_EXTERNAL = KeyFactory.bool("explicit_external"); + + public ImplicitNoneStmt(DataStore data, Collection children) { + super(data, children); + } + + public boolean explicitTypes() { + return get(EXPLICIT_TYPES); + } + + public boolean explicitExternal() { + return get(EXPLICIT_EXTERNAL); + } + + @Override + public String getStmtCode() { + var prefix = keyword(FortranKeyword.IMPLICIT) + " " + keyword(FortranKeyword.NONE); + + var typeCode = explicitTypes() ? keyword(FortranKeyword.TYPE) : ""; + var externalCode = explicitExternal() ? keyword(FortranKeyword.EXTERNAL) : ""; + + var specsCode = Stream.of(typeCode, externalCode) + .filter(code -> !code.isEmpty()) + .collect(Collectors.joining(", ")); + + return specsCode.isEmpty() + ? prefix + : prefix + " (" + specsCode + ")"; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImplicitPartStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImplicitPartStmt.java index a7eaea44..cd3ed8a2 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImplicitPartStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImplicitPartStmt.java @@ -5,7 +5,7 @@ import java.util.Collection; -public class ImplicitPartStmt extends Stmt { +public abstract class ImplicitPartStmt extends Stmt { public ImplicitPartStmt(DataStore data, Collection children) { super(data, children); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImplicitStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImplicitStmt.java index 3739d131..a1c1410b 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImplicitStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImplicitStmt.java @@ -1,35 +1,12 @@ package pt.up.fe.specs.fortran.ast.nodes.stmt; import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.specification.LetterSpec; -import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DeclType; import java.util.Collection; -import java.util.List; -import java.util.stream.Collectors; -public class ImplicitStmt extends ImplicitPartStmt { +public abstract class ImplicitStmt extends ImplicitPartStmt { public ImplicitStmt(DataStore data, Collection children) { super(data, children); } - - public DeclType getDeclType() { - return getChild(DeclType.class, 0); - } - - public List getLetterSpecs() { - return getChildrenOf(LetterSpec.class); - } - - @Override - public String getStmtCode() { - var declTypeCode = getDeclType().getCode(); - var letterSpecsCode = getLetterSpecs().stream() - .map(LetterSpec::getCode) - .collect(Collectors.joining(", ", " (", ")")); - - return keyword(FortranKeyword.IMPLICIT) + " " + declTypeCode + letterSpecsCode; - } } From 6e1abf10e58f050dd93d2378a969b240229547b8 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 6 Aug 2026 19:52:53 +0100 Subject: [PATCH 196/260] Add mapping of new AST nodes to Flang names --- .../up/fe/specs/fortran/parser/FlangName.java | 15 +++++++++- .../fe/specs/fortran/parser/FlangToClass.java | 30 ++++++++++++++----- 2 files changed, 36 insertions(+), 9 deletions(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 0c187038..c51c5dac 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -93,6 +93,12 @@ public enum FlangName implements StringProvider { DECLARATION, NAMELIST_STMT, GROUP, + IMPLICIT_STMT, + IMPLICIT_SPEC, + LETTER_SPEC, + LOCATION, + IMPLICIT_NONE_NAME_SPEC, + EXTERNAL, /// Conditional Statements IF_CONSTRUCT, @@ -180,7 +186,6 @@ public enum FlangName implements StringProvider { AC_IMPLIED_DO_CONTROL, /// TYPEs - DECLARATION_TYPE_SPEC, INTEGER_TYPE_SPEC, KIND_SELECTOR, STAR_SIZE, @@ -193,6 +198,14 @@ public enum FlangName implements StringProvider { LENGTH_SELECTOR, LENGTH_AND_KIND, COMPLEX, + TYPE_PARAM, + DERIVED_TYPE_SPEC, + DECLARATION_TYPE_SPEC, + TYPE, + CLASS, + CLASS_STAR, + TYPE_STAR, + INTRINSIC_TYPE_SPEC, /// LOOP LOOP_BOUNDS, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index ec1cfcc9..720541f3 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -6,10 +6,11 @@ import pt.up.fe.specs.fortran.ast.nodes.alloc.ExprAllocOption; import pt.up.fe.specs.fortran.ast.nodes.alloc.VarAllocOption; import pt.up.fe.specs.fortran.ast.nodes.decl.*; -import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.DeferredTypeParamValue; -import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.ExprTypeParamValue; -import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.StarTypeParamValue; -import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.TypeParamValue; +import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DeclType; +import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DerivedDeclType; +import pt.up.fe.specs.fortran.ast.nodes.type.decltype.IntrinsicDeclType; +import pt.up.fe.specs.fortran.ast.nodes.type.decltype.StarDeclType; +import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.*; import pt.up.fe.specs.fortran.ast.nodes.expr.*; import pt.up.fe.specs.fortran.ast.nodes.io.*; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentLoopControl; @@ -96,10 +97,6 @@ public class FlangToClass { .map(FlangName.NAME, NamedParameter.class) .map(FlangName.STAR, StarParameter.class)); NAME_TO_MAPPER.put(FlangName.DATA_STMT_VALUE, ClassMapper.always(DataStmtValue.class)); - NAME_TO_MAPPER.put(FlangName.TYPE_PARAM_VALUE, ClassMapper.caseFor(TypeParamValue.class) - .map(FlangName.EXPR, ExprTypeParamValue.class) - .map(FlangName.STAR, StarTypeParamValue.class) - .map(FlangName.DEFERRED, DeferredTypeParamValue.class)); NAME_TO_MAPPER.put(FlangName.DEFINED_OP_NAME, ClassMapper.always(NamedOperator.class)); NAME_TO_MAPPER.put(FlangName.INTRINSIC_OPERATOR, ClassMapper.always(IntrinsicOperator.class)); NAME_TO_MAPPER.put(FlangName.GENERIC_SPEC, ClassMapper.caseFor(GenericSpec.class) @@ -169,6 +166,11 @@ public class FlangToClass { NAME_TO_MAPPER.put(FlangName.EXTERNAL_STMT, ClassMapper.always(ExternalStmt.class)); NAME_TO_MAPPER.put(FlangName.ACCESS_STMT, ClassMapper.always(AccessStmt.class)); NAME_TO_MAPPER.put(FlangName.IMPORT_STMT, ClassMapper.always(ImportStmt.class)); + NAME_TO_MAPPER.put(FlangName.IMPLICIT_STMT, ClassMapper.caseFor(ImplicitStmt.class) + .map(FlangName.IMPLICIT_SPEC, DefaultImplicitStmt.class) + .map(FlangName.IMPLICIT_NONE_NAME_SPEC, ImplicitNoneStmt.class)); + NAME_TO_MAPPER.put(FlangName.IMPLICIT_SPEC, ClassMapper.always(ImplicitSpec.class)); + NAME_TO_MAPPER.put(FlangName.LETTER_SPEC, ClassMapper.always(LetterSpec.class)); /// Variables //NAME_TO_CLASS.put(FlangName.DATA_REF, DataRef.class); // TODO(Process-ing): Improve this @@ -236,6 +238,18 @@ public class FlangToClass { .map(FlangName.TYPE_PARAM_VALUE, ParamLenSelector.class) .ignore(FlangName.CHAR_LENGTH)); NAME_TO_MAPPER.put(FlangName.LENGTH_AND_KIND, ClassMapper.always(KindParamLenSelector.class)); + NAME_TO_MAPPER.put(FlangName.TYPE_PARAM_VALUE, ClassMapper.caseFor(TypeParamValue.class) + .map(FlangName.EXPR, ExprTypeParamValue.class) + .map(FlangName.STAR, StarTypeParamValue.class) + .map(FlangName.DEFERRED, DeferredTypeParamValue.class)); + NAME_TO_MAPPER.put(FlangName.TYPE_PARAM, ClassMapper.always(TypeParam.class)); + NAME_TO_MAPPER.put(FlangName.DERIVED_TYPE_SPEC, ClassMapper.always(DerivedType.class)); + NAME_TO_MAPPER.put(FlangName.DECLARATION_TYPE_SPEC, ClassMapper.caseFor(DeclType.class) + .map(FlangName.INTRINSIC_TYPE_SPEC, IntrinsicDeclType.class) + .map(FlangName.TYPE, DerivedDeclType.class) + .map(FlangName.CLASS, DerivedDeclType.class) + .map(FlangName.CLASS_STAR, StarDeclType.class) + .map(FlangName.TYPE_STAR, StarDeclType.class)); /// LOOP NAME_TO_MAPPER.put(FlangName.LOOP_BOUNDS, ClassMapper.always(RangeLoopControl.class)); From 14139d438d08e958a8173932ce8fed63594ec368 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 6 Aug 2026 20:06:56 +0100 Subject: [PATCH 197/260] Fix problems with type declarations statement --- .../specs/fortran/ast/nodes/decl/EntityDecl.java | 6 +++--- .../ast/nodes/stmt/TypeDeclarationStmt.java | 13 +++++++++---- .../specs/fortran/parser/processors/Nodes.java | 6 ++++++ .../parser/processors/StmtProcessors.java | 2 ++ .../parser/processors/TypeProcessors.java | 16 ++++++++++++++++ 5 files changed, 36 insertions(+), 7 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/EntityDecl.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/EntityDecl.java index 1494cb8c..a5839224 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/EntityDecl.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/EntityDecl.java @@ -5,7 +5,7 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; -import pt.up.fe.specs.fortran.ast.nodes.type.FortranType; +import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DeclType; import java.util.Collection; import java.util.Optional; @@ -27,8 +27,8 @@ public EntityDecl(DataStore data, Collection children) { } - public FortranType getType() { - return getChild(FortranType.class, 0); + public DeclType getType() { + return getChild(DeclType.class, 0); } public Optional getInitialization() { diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java index a6be0d33..92143378 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java @@ -4,6 +4,7 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.decl.EntityDecl; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.AttributeSpecifier; +import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DeclType; import pt.up.fe.specs.util.SpecsCheck; import java.util.Collection; @@ -13,12 +14,15 @@ /** * Has EntityDecl as children, each one representing an entity declaration. */ +// TODO(Process-ing): Correct this node public class TypeDeclarationStmt extends SpecStmt { - public TypeDeclarationStmt(DataStore data, Collection children) { super(data, children); } + public DeclType getDeclType() { + return getChild(DeclType.class, 0); + } public List getDecls() { return getChildrenOf(EntityDecl.class); @@ -38,9 +42,9 @@ public String getStmtCode() { SpecsCheck.checkArgument(!decls.isEmpty(), () -> "TypeDeclarationStmt should have at least one EntityDecl"); - var type = decls.get(0).getType(); - + var type = getDeclType(); code.append(type.getCode()); + if (!attributes.isEmpty()) { var attributesCode = getAttributesCode(attributes); code.append(", ").append(attributesCode).append(" :: "); @@ -48,7 +52,8 @@ public String getStmtCode() { code.append(!fixedForm() ? " :: " : " "); } - var declsCode = decls.stream().map(EntityDecl::getCode) + var declsCode = decls.stream() + .map(EntityDecl::getCode) .collect(Collectors.joining(", ")); code.append(declsCode); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 8328a8be..cf7d16df 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -5,6 +5,9 @@ import pt.up.fe.specs.fortran.ast.nodes.alloc.ExprAllocOption; import pt.up.fe.specs.fortran.ast.nodes.alloc.VarAllocOption; import pt.up.fe.specs.fortran.ast.nodes.decl.*; +import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DerivedDeclType; +import pt.up.fe.specs.fortran.ast.nodes.type.decltype.IntrinsicDeclType; +import pt.up.fe.specs.fortran.ast.nodes.type.decltype.StarDeclType; import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.DeferredTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.ExprTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.StarTypeParamValue; @@ -200,6 +203,9 @@ public Nodes(FortranJsonResult data) { processors.put(KindParamLenSelector.class, t::kindParamLenSelector); processors.put(RealType.class, t::realType); processors.put(ComplexType.class, t::complexType); + processors.put(IntrinsicDeclType.class, t::intrinsicDeclType); + processors.put(DerivedDeclType.class, t::derivedDeclType); + processors.put(StarDeclType.class, t::starDeclType); var a = new AttributesProcessor(data); processors.put(ArraySpecification.class, a::arraySpecification); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 8c88b53a..3b0d6747 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -101,7 +101,9 @@ public void typeDeclarationStmt(TypeDeclarationStmt typeDeclarationStmt) { var entityDecls = getChildren(typeDeclarationStmt, FlangName.ENTITY_DECL); var type = getChild(typeDeclarationStmt, FlangName.DECLARATION_TYPE_SPEC); + typeDeclarationStmt.addChild(type); + // TODO(Process-ing): See why this is needed entityDecls.stream().forEach(entityDecl -> entityDecl.addChild(0, type)); typeDeclarationStmt.addChildren(entityDecls); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java index db835c1f..fd8d7187 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java @@ -2,6 +2,9 @@ import pt.up.fe.specs.fortran.ast.nodes.decl.KindSelector; import pt.up.fe.specs.fortran.ast.nodes.type.*; +import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DerivedDeclType; +import pt.up.fe.specs.fortran.ast.nodes.type.decltype.IntrinsicDeclType; +import pt.up.fe.specs.fortran.ast.nodes.type.decltype.StarDeclType; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ConstLenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.KindParamLenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ParamLenSelector; @@ -95,4 +98,17 @@ public void complexType(ComplexType complexType) { complexType.addChild(kindSelector); } } + + public void intrinsicDeclType(IntrinsicDeclType declType) { + var intrinsicType = getChild(declType, FlangName.INTRINSIC_TYPE_SPEC); + declType.addChild(intrinsicType); + } + + public void derivedDeclType(DerivedDeclType declType) { + + } + + public void starDeclType(StarDeclType declType) { + + } } From cd02b775e9707d6621233e60dd6e553363892ffe Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 6 Aug 2026 20:09:22 +0100 Subject: [PATCH 198/260] Implement processors for declaration types --- .../fortran/parser/processors/TypeProcessors.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java index fd8d7187..54d38e65 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java @@ -5,6 +5,7 @@ import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DerivedDeclType; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.IntrinsicDeclType; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.StarDeclType; +import pt.up.fe.specs.fortran.ast.nodes.type.enums.DeclTypeKind; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ConstLenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.KindParamLenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ParamLenSelector; @@ -105,10 +106,17 @@ public void intrinsicDeclType(IntrinsicDeclType declType) { } public void derivedDeclType(DerivedDeclType declType) { + var variantKey = attributes(declType).getVariantKey(); + var kind = DeclTypeKind.valueOf(variantKey.toUpperCase()); + declType.set(DerivedDeclType.KIND, kind); + var derivedType = getChild(declType, FlangName.DERIVED_TYPE_SPEC); + declType.addChild(derivedType); } public void starDeclType(StarDeclType declType) { - + var variantKey = attributes(declType).getVariantKey(); + var kind = DeclTypeKind.valueOf(variantKey.toUpperCase()); + declType.set(DerivedDeclType.KIND, kind); } } From 882c0a8e19733aeed87fab5fd1eba9e76ec3b905 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 6 Aug 2026 20:18:38 +0100 Subject: [PATCH 199/260] Add processors for derived type --- .../up/fe/specs/fortran/parser/FlangName.java | 3 ++- .../fe/specs/fortran/parser/FlangToClass.java | 2 +- .../specs/fortran/parser/processors/Nodes.java | 3 +++ .../parser/processors/TypeProcessors.java | 17 +++++++++++++++++ 4 files changed, 23 insertions(+), 2 deletions(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index c51c5dac..878c98b6 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -198,7 +198,8 @@ public enum FlangName implements StringProvider { LENGTH_SELECTOR, LENGTH_AND_KIND, COMPLEX, - TYPE_PARAM, + TYPE_PARAM_SPEC, + KEYWORD, DERIVED_TYPE_SPEC, DECLARATION_TYPE_SPEC, TYPE, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 720541f3..d7e17625 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -242,7 +242,7 @@ public class FlangToClass { .map(FlangName.EXPR, ExprTypeParamValue.class) .map(FlangName.STAR, StarTypeParamValue.class) .map(FlangName.DEFERRED, DeferredTypeParamValue.class)); - NAME_TO_MAPPER.put(FlangName.TYPE_PARAM, ClassMapper.always(TypeParam.class)); + NAME_TO_MAPPER.put(FlangName.TYPE_PARAM_SPEC, ClassMapper.always(TypeParam.class)); NAME_TO_MAPPER.put(FlangName.DERIVED_TYPE_SPEC, ClassMapper.always(DerivedType.class)); NAME_TO_MAPPER.put(FlangName.DECLARATION_TYPE_SPEC, ClassMapper.caseFor(DeclType.class) .map(FlangName.INTRINSIC_TYPE_SPEC, IntrinsicDeclType.class) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index cf7d16df..9597371e 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -56,6 +56,7 @@ import pt.up.fe.specs.fortran.ast.nodes.type.shapes.AssumedImpliedShapeSpec; import pt.up.fe.specs.fortran.ast.nodes.type.shapes.DeferredShapeSpecList; import pt.up.fe.specs.fortran.ast.nodes.type.shapes.ExplicitShapeSpecification; +import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.TypeParam; import pt.up.fe.specs.fortran.ast.nodes.utils.IoUnit; import pt.up.fe.specs.fortran.ast.nodes.utils.NameValue; import pt.up.fe.specs.fortran.parser.FortranJsonResult; @@ -203,6 +204,8 @@ public Nodes(FortranJsonResult data) { processors.put(KindParamLenSelector.class, t::kindParamLenSelector); processors.put(RealType.class, t::realType); processors.put(ComplexType.class, t::complexType); + processors.put(DerivedType.class, t::derivedType); + processors.put(TypeParam.class, t::typeParam); processors.put(IntrinsicDeclType.class, t::intrinsicDeclType); processors.put(DerivedDeclType.class, t::derivedDeclType); processors.put(StarDeclType.class, t::starDeclType); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java index 54d38e65..f3ae2a6f 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java @@ -9,6 +9,7 @@ import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ConstLenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.KindParamLenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ParamLenSelector; +import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.TypeParam; import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; @@ -100,6 +101,22 @@ public void complexType(ComplexType complexType) { } } + public void typeParam(TypeParam typeParam) { + var keyword = attributes().getOptionalString(typeParam, "source", FlangName.KEYWORD, FlangName.NAME); + typeParam.set(TypeParam.KEYWORD, keyword); + + var values = getChildren(typeParam, FlangName.TYPE_PARAM_VALUE); + typeParam.addChildren(values); + } + + public void derivedType(DerivedType derivedType) { + var name = attributes().getString(derivedType, "source", FlangName.NAME); + derivedType.set(DerivedType.NAME, name); + + var typeParams = getChildren(derivedType, FlangName.TYPE_PARAM_SPEC); + derivedType.addChildren(typeParams); + } + public void intrinsicDeclType(IntrinsicDeclType declType) { var intrinsicType = getChild(declType, FlangName.INTRINSIC_TYPE_SPEC); declType.addChild(intrinsicType); From 4e6ab352befcef052ba7eff7f764276f2aa072e9 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 6 Aug 2026 23:27:44 +0100 Subject: [PATCH 200/260] Add processors for implicit statement --- .../parser/processors/DeclProcessors.java | 20 +++++++++++++++++++ .../fortran/parser/processors/Nodes.java | 4 ++++ .../parser/processors/StmtProcessors.java | 18 +++++++++++++++++ 3 files changed, 42 insertions(+) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java index ac060a03..7ef1bbc0 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java @@ -1,6 +1,8 @@ package pt.up.fe.specs.fortran.parser.processors; import pt.up.fe.specs.fortran.ast.nodes.decl.*; +import pt.up.fe.specs.fortran.ast.nodes.specification.ImplicitSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.LetterSpec; import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.DeferredTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.ExprTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.StarTypeParamValue; @@ -125,4 +127,22 @@ public void otherGenericSpec(OtherGenericSpec spec) { }; spec.set(OtherGenericSpec.KIND, kind); } + + public void letterSpec(LetterSpec letterSpec) { + var firstLetter = (int) attributes(letterSpec).getString("firstLetter").charAt(0); + letterSpec.set(LetterSpec.FIRST_LETTER, firstLetter); + + var lastLetter = attributes(letterSpec) + .getOptionalString("lastLetter") + .map(s -> (int) s.charAt(0)); + letterSpec.set(LetterSpec.LAST_LETTER, lastLetter); + } + + public void implicitSpec(ImplicitSpec implicitSpec) { + var declType = getChild(implicitSpec, FlangName.DECLARATION_TYPE_SPEC); + implicitSpec.addChild(declType); + + var letterSpecs = getChildren(implicitSpec, FlangName.LETTER_SPEC); + implicitSpec.addChildren(letterSpecs); + } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 9597371e..d2ed604f 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -103,6 +103,8 @@ public Nodes(FortranJsonResult data) { processors.put(NameGenericSpec.class, d::nameGenericSpec); processors.put(OpGenericSpec.class, d::opGenericSpec); processors.put(OtherGenericSpec.class, d::otherGenericSpec); + processors.put(LetterSpec.class, d::letterSpec); + processors.put(ImplicitSpec.class, d::implicitSpec); var v = new VariableProcessor(data); processors.put(DataRef.class, v::dataRef); @@ -169,6 +171,8 @@ public Nodes(FortranJsonResult data) { processors.put(EndModuleStmt.class, s::endModuleStmt); processors.put(AccessStmt.class, s::accessStmt); processors.put(ImportStmt.class, s::importStmt); + processors.put(DefaultImplicitStmt.class, s::defaultImplicitStmt); + processors.put(ImplicitNoneStmt.class, s::implicitNoneStmt); var e = new ExprProcessors(data); processors.put(StringLiteral.class, e::stringLiteral); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 3b0d6747..4713927e 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -775,4 +775,22 @@ public void importStmt(ImportStmt importStmt) { importStmt.set(ImportStmt.NAMES, names); } } + + public void defaultImplicitStmt(DefaultImplicitStmt implicitStmt) { + stmt(implicitStmt); + + var specs = getChildren(implicitStmt, FlangName.IMPLICIT_SPEC); + implicitStmt.addChildren(specs); + } + + public void implicitNoneStmt(ImplicitNoneStmt implicitNoneStmt) { + var attrs = attributes(implicitNoneStmt); + var specs = attrs.getStringList(FlangName.IMPLICIT_NONE_NAME_SPEC); + var specValues = specs.stream() + .map(id -> attributes().get(id).getString("value")) + .toList(); + + implicitNoneStmt.set(ImplicitNoneStmt.EXPLICIT_TYPES, specValues.contains("Type")); + implicitNoneStmt.set(ImplicitNoneStmt.EXPLICIT_EXTERNAL, specValues.contains("External")); + } } From 40e7cc62ff4e99105005634bb4297345723fda11 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 6 Aug 2026 23:27:52 +0100 Subject: [PATCH 201/260] Regenerate dumps --- .../fortran/parser/program/implicit.json | 682 +++++++++--------- .../fortran/parser/program/module1.json | 631 ++++++++-------- .../fortran/parser/program/module2.json | 297 ++++---- 3 files changed, 806 insertions(+), 804 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/program/implicit.json b/FortranParser/resources-test/fortran/parser/program/implicit.json index 76d86cde..003ad97a 100644 --- a/FortranParser/resources-test/fortran/parser/program/implicit.json +++ b/FortranParser/resources-test/fortran/parser/program/implicit.json @@ -2,852 +2,852 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x55e33c063f00-Program", + "id": "0x55d88ee59f00-Program", "ProgramUnit": [ - "0x55e33c098d40-ProgramUnit" + "0x55d88ee8ed40-ProgramUnit" ] }, { - "id": "0x55e33c098d40-ProgramUnit", + "id": "0x55d88ee8ed40-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x55e33c0a0d60-MainProgram" + "MainProgram": "0x55d88ee96d60-MainProgram" }, { - "id": "0x55e33c0a0d60-MainProgram", - "Statement": "0x55e33c0a0ea8-Statement", - "SpecificationPart": "0x55e33c0a0e00-SpecificationPart", - "ExecutionPart": "0x55e33c0a0de8-ExecutionPart", - "InternalSubprogramPart": "0x55e33c0a0da0-InternalSubprogramPart", - "Statement": "0x55e33c0a0d60-Statement" + "id": "0x55d88ee96d60-MainProgram", + "Statement": "0x55d88ee96ea8-Statement", + "SpecificationPart": "0x55d88ee96e00-SpecificationPart", + "ExecutionPart": "0x55d88ee96de8-ExecutionPart", + "InternalSubprogramPart": "0x55d88ee96da0-InternalSubprogramPart", + "Statement": "0x55d88ee96d60-Statement" }, { - "id": "0x55e33c0a0ea8-Statement", - "statement": "0x55e33c0a0eb8-ProgramStmt", + "id": "0x55d88ee96ea8-Statement", + "statement": "0x55d88ee96eb8-ProgramStmt", "source": "program IMPLICIT" }, { - "id": "0x55e33c0a0eb8-ProgramStmt", - "Name": "0x55e33c0a0eb8-Name" + "id": "0x55d88ee96eb8-ProgramStmt", + "Name": "0x55d88ee96eb8-Name" }, { - "id": "0x55e33c0a0eb8-Name", + "id": "0x55d88ee96eb8-Name", "source": "IMPLICIT" }, { - "id": "0x55e33c0a0e00-SpecificationPart", - "ImplicitPart": "0x55e33c0a0e18-ImplicitPart", + "id": "0x55d88ee96e00-SpecificationPart", + "ImplicitPart": "0x55d88ee96e18-ImplicitPart", "DeclarationConstruct": [ - "0x55e33c0624e0-DeclarationConstruct" + "0x55d88ee584e0-DeclarationConstruct" ] }, { - "id": "0x55e33c0a0e18-ImplicitPart", + "id": "0x55d88ee96e18-ImplicitPart", "ImplicitPartStmt": [ - "0x55e33c0a7cb0-ImplicitPartStmt" + "0x55d88ee9dcb0-ImplicitPartStmt" ] }, { - "id": "0x55e33c0a7cb0-ImplicitPartStmt", - "variantKey": "Statement", - "Statement": "0x55e33c0a7cb0-Statement" + "id": "0x55d88ee9dcb0-ImplicitPartStmt", + "variantKey": "Statement", + "Statement": "0x55d88ee9dcb0-Statement" }, { - "id": "0x55e33c0a7cb0-Statement", - "statement": "0x55e33c0a1b90-ImplicitStmt", + "id": "0x55d88ee9dcb0-Statement", + "statement": "0x55d88ee97b90-ImplicitStmt", "source": "implicit none(type, external)" }, { - "id": "0x55e33c0a1b90-ImplicitStmt", + "id": "0x55d88ee97b90-ImplicitStmt", "variantKey": "ImplicitNoneNameSpec", "ImplicitNoneNameSpec": [ - "0x55e33c0a1e10-ImplicitNoneNameSpec", - "0x55e33c0a1e30-ImplicitNoneNameSpec" + "0x55d88ee97e10-ImplicitNoneNameSpec", + "0x55d88ee97e30-ImplicitNoneNameSpec" ] }, { - "id": "0x55e33c0a1e10-ImplicitNoneNameSpec", + "id": "0x55d88ee97e10-ImplicitNoneNameSpec", "disambiguation": "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec", "value": "Type" }, { - "id": "0x55e33c0a1e30-ImplicitNoneNameSpec", + "id": "0x55d88ee97e30-ImplicitNoneNameSpec", "disambiguation": "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec", "value": "External" }, { - "id": "0x55e33c0624e0-DeclarationConstruct", + "id": "0x55d88ee584e0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55e33c0624e0-SpecificationConstruct" + "SpecificationConstruct": "0x55d88ee584e0-SpecificationConstruct" }, { - "id": "0x55e33c0624e0-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x55e33c0624e0-Statement" + "id": "0x55d88ee584e0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55d88ee584e0-Statement" }, { - "id": "0x55e33c0624e0-Statement", - "statement": "0x55e33c09e730-TypeDeclarationStmt", + "id": "0x55d88ee584e0-Statement", + "statement": "0x55d88ee94730-TypeDeclarationStmt", "source": "integer :: explicit_val" }, { - "id": "0x55e33c09e730-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55e33c09e760-DeclarationTypeSpec", + "id": "0x55d88ee94730-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55d88ee94760-DeclarationTypeSpec", "EntityDecl": [ - "0x55e33c09ea70-EntityDecl" + "0x55d88ee94a70-EntityDecl" ] }, { - "id": "0x55e33c09e760-DeclarationTypeSpec", + "id": "0x55d88ee94760-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55e33c09e760-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55d88ee94760-IntrinsicTypeSpec" }, { - "id": "0x55e33c09e760-IntrinsicTypeSpec", + "id": "0x55d88ee94760-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55e33c09e760-IntegerTypeSpec" + "IntegerTypeSpec": "0x55d88ee94760-IntegerTypeSpec" }, { - "id": "0x55e33c09e760-IntegerTypeSpec" + "id": "0x55d88ee94760-IntegerTypeSpec" }, { - "id": "0x55e33c09ea70-EntityDecl", - "Name": "0x55e33c09eb28-Name" + "id": "0x55d88ee94a70-EntityDecl", + "Name": "0x55d88ee94b28-Name" }, { - "id": "0x55e33c09eb28-Name", + "id": "0x55d88ee94b28-Name", "source": "explicit_val" }, { - "id": "0x55e33c0a0de8-ExecutionPart", + "id": "0x55d88ee96de8-ExecutionPart", "ExecutionPartConstruct": [ - "0x55e33c09e600-ExecutionPartConstruct", - "0x55e33c08e7f0-ExecutionPartConstruct", - "0x55e33c09fe60-ExecutionPartConstruct" + "0x55d88ee94600-ExecutionPartConstruct", + "0x55d88ee847f0-ExecutionPartConstruct", + "0x55d88ee95e60-ExecutionPartConstruct" ] }, { - "id": "0x55e33c0a0de8-ExecutionPartConstruct" + "id": "0x55d88ee96de8-ExecutionPartConstruct" }, { - "id": "0x55e33c09e600-ExecutionPartConstruct", + "id": "0x55d88ee94600-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55e33c09e600-ExecutableConstruct" + "ExecutableConstruct": "0x55d88ee94600-ExecutableConstruct" }, { - "id": "0x55e33c09e600-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x55e33c09e600-Statement" + "id": "0x55d88ee94600-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d88ee94600-Statement" }, { - "id": "0x55e33c09e600-Statement", - "statement": "0x55e33c09e610-ActionStmt", + "id": "0x55d88ee94600-Statement", + "statement": "0x55d88ee94610-ActionStmt", "source": "explicit_val = 42" }, { - "id": "0x55e33c09e610-ActionStmt", + "id": "0x55d88ee94610-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55e33c0a0ef0-AssignmentStmt" + "AssignmentStmt": "0x55d88ee96ef0-AssignmentStmt" }, { - "id": "0x55e33c0a0ef0-AssignmentStmt", - "Variable": "0x55e33c0a0fd0-Variable", - "Expr": "0x55e33c0a0f00-Expr" + "id": "0x55d88ee96ef0-AssignmentStmt", + "Variable": "0x55d88ee96fd0-Variable", + "Expr": "0x55d88ee96f00-Expr" }, { - "id": "0x55e33c0a0fd0-Variable", + "id": "0x55d88ee96fd0-Variable", "variantKey": "Designator", - "Designator": "0x55e33c071100-Designator" + "Designator": "0x55d88ee67100-Designator" }, { - "id": "0x55e33c071100-Designator", + "id": "0x55d88ee67100-Designator", "variantKey": "DataRef", - "DataRef": "0x55e33c071110-DataRef" + "DataRef": "0x55d88ee67110-DataRef" }, { - "id": "0x55e33c071110-DataRef", + "id": "0x55d88ee67110-DataRef", "variantKey": "Name", - "Name": "0x55e33c071110-Name" + "Name": "0x55d88ee67110-Name" }, { - "id": "0x55e33c071110-Name", + "id": "0x55d88ee67110-Name", "source": "explicit_val" }, { - "id": "0x55e33c0a0f00-Expr", + "id": "0x55d88ee96f00-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e33c0a0f20-LiteralConstant" + "LiteralConstant": "0x55d88ee96f20-LiteralConstant" }, { - "id": "0x55e33c0a0f20-LiteralConstant", + "id": "0x55d88ee96f20-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e33c0a0f20-IntLiteralConstant" + "IntLiteralConstant": "0x55d88ee96f20-IntLiteralConstant" }, { - "id": "0x55e33c0a0f20-IntLiteralConstant", + "id": "0x55d88ee96f20-IntLiteralConstant", "CharBlock": "42" }, { - "id": "0x55e33c08e7f0-ExecutionPartConstruct", + "id": "0x55d88ee847f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55e33c08e7f0-ExecutableConstruct" + "ExecutableConstruct": "0x55d88ee847f0-ExecutableConstruct" }, { - "id": "0x55e33c08e7f0-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x55e33c08e7f0-Statement" + "id": "0x55d88ee847f0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d88ee847f0-Statement" }, { - "id": "0x55e33c08e7f0-Statement", - "statement": "0x55e33c08e800-ActionStmt", + "id": "0x55d88ee847f0-Statement", + "statement": "0x55d88ee84800-ActionStmt", "source": "print *, \"Explicit:\", explicit_val" }, { - "id": "0x55e33c08e800-ActionStmt", + "id": "0x55d88ee84800-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x55e33c0a0390-PrintStmt" + "PrintStmt": "0x55d88ee96390-PrintStmt" }, { - "id": "0x55e33c0a0390-PrintStmt", - "Format": "0x55e33c0a03a8-Format", + "id": "0x55d88ee96390-PrintStmt", + "Format": "0x55d88ee963a8-Format", "OutputItem": [ - "0x55e33c0a0240-OutputItem", - "0x55e33c0a0150-OutputItem" + "0x55d88ee96240-OutputItem", + "0x55d88ee96150-OutputItem" ] }, { - "id": "0x55e33c0a03a8-Format", + "id": "0x55d88ee963a8-Format", "variantKey": "Star", - "Star": "0x55e33c0a03a8-Star" + "Star": "0x55d88ee963a8-Star" }, { - "id": "0x55e33c0a03a8-Star" + "id": "0x55d88ee963a8-Star" }, { - "id": "0x55e33c0a0240-OutputItem", + "id": "0x55d88ee96240-OutputItem", "variantKey": "Expr", - "Expr": "0x55e33c0a0240-Expr" + "Expr": "0x55d88ee96240-Expr" }, { - "id": "0x55e33c0a0240-Expr", + "id": "0x55d88ee96240-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e33c0a0260-LiteralConstant" + "LiteralConstant": "0x55d88ee96260-LiteralConstant" }, { - "id": "0x55e33c0a0260-LiteralConstant", + "id": "0x55d88ee96260-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55e33c0a0260-CharLiteralConstant" + "CharLiteralConstant": "0x55d88ee96260-CharLiteralConstant" }, { - "id": "0x55e33c0a0260-CharLiteralConstant", + "id": "0x55d88ee96260-CharLiteralConstant", "string": "Explicit:" }, { - "id": "0x55e33c0a0150-OutputItem", + "id": "0x55d88ee96150-OutputItem", "variantKey": "Expr", - "Expr": "0x55e33c0a0150-Expr" + "Expr": "0x55d88ee96150-Expr" }, { - "id": "0x55e33c0a0150-Expr", + "id": "0x55d88ee96150-Expr", "variantKey": "Designator", - "Designator": "0x55e33c0a0070-Designator" + "Designator": "0x55d88ee96070-Designator" }, { - "id": "0x55e33c0a0070-Designator", + "id": "0x55d88ee96070-Designator", "variantKey": "DataRef", - "DataRef": "0x55e33c0a0080-DataRef" + "DataRef": "0x55d88ee96080-DataRef" }, { - "id": "0x55e33c0a0080-DataRef", + "id": "0x55d88ee96080-DataRef", "variantKey": "Name", - "Name": "0x55e33c0a0080-Name" + "Name": "0x55d88ee96080-Name" }, { - "id": "0x55e33c0a0080-Name", + "id": "0x55d88ee96080-Name", "source": "explicit_val" }, { - "id": "0x55e33c09fe60-ExecutionPartConstruct", + "id": "0x55d88ee95e60-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55e33c09fe60-ExecutableConstruct" + "ExecutableConstruct": "0x55d88ee95e60-ExecutableConstruct" }, { - "id": "0x55e33c09fe60-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x55e33c09fe60-Statement" + "id": "0x55d88ee95e60-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d88ee95e60-Statement" }, { - "id": "0x55e33c09fe60-Statement", - "statement": "0x55e33c09fe70-ActionStmt", + "id": "0x55d88ee95e60-Statement", + "statement": "0x55d88ee95e70-ActionStmt", "source": "call demo_custom_implicit()" }, { - "id": "0x55e33c09fe70-ActionStmt", + "id": "0x55d88ee95e70-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x55e33c09ae20-CallStmt" + "CallStmt": "0x55d88ee90e20-CallStmt" }, { - "id": "0x55e33c09ae20-CallStmt", - "call": "0x55e33c09ae20-Call" + "id": "0x55d88ee90e20-CallStmt", + "call": "0x55d88ee90e20-Call" }, { - "id": "0x55e33c09ae20-Call", - "ProcedureDesignator": "0x55e33c09ae38-ProcedureDesignator" + "id": "0x55d88ee90e20-Call", + "ProcedureDesignator": "0x55d88ee90e38-ProcedureDesignator" }, { - "id": "0x55e33c09ae38-ProcedureDesignator", + "id": "0x55d88ee90e38-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55e33c09ae38-Name" + "Name": "0x55d88ee90e38-Name" }, { - "id": "0x55e33c09ae38-Name", + "id": "0x55d88ee90e38-Name", "source": "demo_custom_implicit" }, { - "id": "0x55e33c0a0da0-InternalSubprogramPart", - "Statement": "0x55e33c0a0db8-Statement", + "id": "0x55d88ee96da0-InternalSubprogramPart", + "Statement": "0x55d88ee96db8-Statement", "InternalSubprogram": [ - "0x55e33c0a1de0-InternalSubprogram" + "0x55d88ee97de0-InternalSubprogram" ] }, { - "id": "0x55e33c0a0db8-Statement", - "statement": "0x55e33c0a0dc8-ContainsStmt", + "id": "0x55d88ee96db8-Statement", + "statement": "0x55d88ee96dc8-ContainsStmt", "source": "contains" }, { - "id": "0x55e33c0a0dc8-ContainsStmt" + "id": "0x55d88ee96dc8-ContainsStmt" }, { - "id": "0x55e33c0a1de0-InternalSubprogram", + "id": "0x55d88ee97de0-InternalSubprogram", "variantKey": "SubroutineSubprogram", - "SubroutineSubprogram": "0x55e33c093940-SubroutineSubprogram" + "SubroutineSubprogram": "0x55d88ee89940-SubroutineSubprogram" }, { - "id": "0x55e33c093940-SubroutineSubprogram", - "Statement": "0x55e33c093a88-Statement", - "SpecificationPart": "0x55e33c0939e0-SpecificationPart", - "ExecutionPart": "0x55e33c0939c8-ExecutionPart", - "Statement": "0x55e33c093940-Statement" + "id": "0x55d88ee89940-SubroutineSubprogram", + "Statement": "0x55d88ee89a88-Statement", + "SpecificationPart": "0x55d88ee899e0-SpecificationPart", + "ExecutionPart": "0x55d88ee899c8-ExecutionPart", + "Statement": "0x55d88ee89940-Statement" }, { - "id": "0x55e33c093a88-Statement", - "statement": "0x55e33c093a98-SubroutineStmt", + "id": "0x55d88ee89a88-Statement", + "statement": "0x55d88ee89a98-SubroutineStmt", "source": "subroutine demo_custom_implicit()" }, { - "id": "0x55e33c093a98-SubroutineStmt", - "Name": "0x55e33c093ad0-Name" + "id": "0x55d88ee89a98-SubroutineStmt", + "Name": "0x55d88ee89ad0-Name" }, { - "id": "0x55e33c093ad0-Name", + "id": "0x55d88ee89ad0-Name", "source": "demo_custom_implicit" }, { - "id": "0x55e33c0939e0-SpecificationPart", - "ImplicitPart": "0x55e33c0939f8-ImplicitPart" + "id": "0x55d88ee899e0-SpecificationPart", + "ImplicitPart": "0x55d88ee899f8-ImplicitPart" }, { - "id": "0x55e33c0939f8-ImplicitPart", + "id": "0x55d88ee899f8-ImplicitPart", "ImplicitPartStmt": [ - "0x55e33c0a0b50-ImplicitPartStmt", - "0x55e33c07cc80-ImplicitPartStmt" + "0x55d88ee96b50-ImplicitPartStmt", + "0x55d88ee72c80-ImplicitPartStmt" ] }, { - "id": "0x55e33c0a0b50-ImplicitPartStmt", - "variantKey": "Statement", - "Statement": "0x55e33c0a0b50-Statement" + "id": "0x55d88ee96b50-ImplicitPartStmt", + "variantKey": "Statement", + "Statement": "0x55d88ee96b50-Statement" }, { - "id": "0x55e33c0a0b50-Statement", - "statement": "0x55e33c0a1bf0-ImplicitStmt", + "id": "0x55d88ee96b50-Statement", + "statement": "0x55d88ee97bf0-ImplicitStmt", "source": "implicit real(8)(a-c)" }, { - "id": "0x55e33c0a1bf0-ImplicitStmt", + "id": "0x55d88ee97bf0-ImplicitStmt", "variantKey": "ImplicitSpec", "ImplicitSpec": [ - "0x55e33c09e590-ImplicitSpec" + "0x55d88ee94590-ImplicitSpec" ] }, { - "id": "0x55e33c09e590-ImplicitSpec", - "DeclarationTypeSpec": "0x55e33c09e5a8-DeclarationTypeSpec", + "id": "0x55d88ee94590-ImplicitSpec", + "DeclarationTypeSpec": "0x55d88ee945a8-DeclarationTypeSpec", "LetterSpec": [ - "0x55e33c0a1bd0-LetterSpec" + "0x55d88ee97bd0-LetterSpec" ] }, { - "id": "0x55e33c09e5a8-DeclarationTypeSpec", + "id": "0x55d88ee945a8-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55e33c09e5a8-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55d88ee945a8-IntrinsicTypeSpec" }, { - "id": "0x55e33c09e5a8-IntrinsicTypeSpec", + "id": "0x55d88ee945a8-IntrinsicTypeSpec", "variantKey": "Real", - "Real": "0x55e33c09e5a8-Real" + "Real": "0x55d88ee945a8-Real" }, { - "id": "0x55e33c09e5a8-Real", - "KindSelector": "0x55e33c09e5a8-KindSelector" + "id": "0x55d88ee945a8-Real", + "KindSelector": "0x55d88ee945a8-KindSelector" }, { - "id": "0x55e33c09e5a8-KindSelector", + "id": "0x55d88ee945a8-KindSelector", "variantKey": "Expr", - "Expr": "0x55e33c003790-Expr" + "Expr": "0x55d88edf9790-Expr" }, { - "id": "0x55e33c003790-Expr", + "id": "0x55d88edf9790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e33c0037b0-LiteralConstant" + "LiteralConstant": "0x55d88edf97b0-LiteralConstant" }, { - "id": "0x55e33c0037b0-LiteralConstant", + "id": "0x55d88edf97b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e33c0037b0-IntLiteralConstant" + "IntLiteralConstant": "0x55d88edf97b0-IntLiteralConstant" }, { - "id": "0x55e33c0037b0-IntLiteralConstant", + "id": "0x55d88edf97b0-IntLiteralConstant", "CharBlock": "8" }, { - "id": "0x55e33c0a1bd0-LetterSpec", + "id": "0x55d88ee97bd0-LetterSpec", "firstLetter": "a", "lastLetter": "c" }, { - "id": "0x55e33c07cc80-ImplicitPartStmt", - "variantKey": "Statement", - "Statement": "0x55e33c07cc80-Statement" + "id": "0x55d88ee72c80-ImplicitPartStmt", + "variantKey": "Statement", + "Statement": "0x55d88ee72c80-Statement" }, { - "id": "0x55e33c07cc80-Statement", - "statement": "0x55e33c0a1d50-ImplicitStmt", + "id": "0x55d88ee72c80-Statement", + "statement": "0x55d88ee97d50-ImplicitStmt", "source": "implicit integer(8)(i-k)" }, { - "id": "0x55e33c0a1d50-ImplicitStmt", + "id": "0x55d88ee97d50-ImplicitStmt", "variantKey": "ImplicitSpec", "ImplicitSpec": [ - "0x55e33c09faf0-ImplicitSpec" + "0x55d88ee95af0-ImplicitSpec" ] }, { - "id": "0x55e33c09faf0-ImplicitSpec", - "DeclarationTypeSpec": "0x55e33c09fb08-DeclarationTypeSpec", + "id": "0x55d88ee95af0-ImplicitSpec", + "DeclarationTypeSpec": "0x55d88ee95b08-DeclarationTypeSpec", "LetterSpec": [ - "0x55e33c0a1c50-LetterSpec" + "0x55d88ee97c50-LetterSpec" ] }, { - "id": "0x55e33c09fb08-DeclarationTypeSpec", + "id": "0x55d88ee95b08-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55e33c09fb08-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55d88ee95b08-IntrinsicTypeSpec" }, { - "id": "0x55e33c09fb08-IntrinsicTypeSpec", + "id": "0x55d88ee95b08-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55e33c09fb08-IntegerTypeSpec" + "IntegerTypeSpec": "0x55d88ee95b08-IntegerTypeSpec" }, { - "id": "0x55e33c09fb08-IntegerTypeSpec", - "KindSelector": "0x55e33c09fb08-KindSelector" + "id": "0x55d88ee95b08-IntegerTypeSpec", + "KindSelector": "0x55d88ee95b08-KindSelector" }, { - "id": "0x55e33c09fb08-KindSelector", + "id": "0x55d88ee95b08-KindSelector", "variantKey": "Expr", - "Expr": "0x55e33c090760-Expr" + "Expr": "0x55d88ee86760-Expr" }, { - "id": "0x55e33c090760-Expr", + "id": "0x55d88ee86760-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e33c090780-LiteralConstant" + "LiteralConstant": "0x55d88ee86780-LiteralConstant" }, { - "id": "0x55e33c090780-LiteralConstant", + "id": "0x55d88ee86780-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e33c090780-IntLiteralConstant" + "IntLiteralConstant": "0x55d88ee86780-IntLiteralConstant" }, { - "id": "0x55e33c090780-IntLiteralConstant", + "id": "0x55d88ee86780-IntLiteralConstant", "CharBlock": "8" }, { - "id": "0x55e33c0a1c50-LetterSpec", + "id": "0x55d88ee97c50-LetterSpec", "firstLetter": "i", "lastLetter": "k" }, { - "id": "0x55e33c0939c8-ExecutionPart", + "id": "0x55d88ee899c8-ExecutionPart", "ExecutionPartConstruct": [ - "0x55e33c09e950-ExecutionPartConstruct", - "0x55e33c08e960-ExecutionPartConstruct", - "0x55e33c0920c0-ExecutionPartConstruct" + "0x55d88ee94950-ExecutionPartConstruct", + "0x55d88ee84960-ExecutionPartConstruct", + "0x55d88ee880c0-ExecutionPartConstruct" ] }, { - "id": "0x55e33c0939c8-ExecutionPartConstruct" + "id": "0x55d88ee899c8-ExecutionPartConstruct" }, { - "id": "0x55e33c09e950-ExecutionPartConstruct", + "id": "0x55d88ee94950-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55e33c09e950-ExecutableConstruct" + "ExecutableConstruct": "0x55d88ee94950-ExecutableConstruct" }, { - "id": "0x55e33c09e950-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x55e33c09e950-Statement" + "id": "0x55d88ee94950-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d88ee94950-Statement" }, { - "id": "0x55e33c09e950-Statement", - "statement": "0x55e33c09e960-ActionStmt", + "id": "0x55d88ee94950-Statement", + "statement": "0x55d88ee94960-ActionStmt", "source": "a_var = 3.141592653589793_8" }, { - "id": "0x55e33c09e960-ActionStmt", + "id": "0x55d88ee94960-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55e33c08ec10-AssignmentStmt" + "AssignmentStmt": "0x55d88ee84c10-AssignmentStmt" }, { - "id": "0x55e33c08ec10-AssignmentStmt", - "Variable": "0x55e33c08ecf0-Variable", - "Expr": "0x55e33c08ec20-Expr" + "id": "0x55d88ee84c10-AssignmentStmt", + "Variable": "0x55d88ee84cf0-Variable", + "Expr": "0x55d88ee84c20-Expr" }, { - "id": "0x55e33c08ecf0-Variable", + "id": "0x55d88ee84cf0-Variable", "variantKey": "Designator", - "Designator": "0x55e33c071160-Designator" + "Designator": "0x55d88ee67160-Designator" }, { - "id": "0x55e33c071160-Designator", + "id": "0x55d88ee67160-Designator", "variantKey": "DataRef", - "DataRef": "0x55e33c071170-DataRef" + "DataRef": "0x55d88ee67170-DataRef" }, { - "id": "0x55e33c071170-DataRef", + "id": "0x55d88ee67170-DataRef", "variantKey": "Name", - "Name": "0x55e33c071170-Name" + "Name": "0x55d88ee67170-Name" }, { - "id": "0x55e33c071170-Name", + "id": "0x55d88ee67170-Name", "source": "a_var" }, { - "id": "0x55e33c08ec20-Expr", + "id": "0x55d88ee84c20-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e33c08ec40-LiteralConstant" + "LiteralConstant": "0x55d88ee84c40-LiteralConstant" }, { - "id": "0x55e33c08ec40-LiteralConstant", + "id": "0x55d88ee84c40-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x55e33c08ec40-RealLiteralConstant" + "RealLiteralConstant": "0x55d88ee84c40-RealLiteralConstant" }, { - "id": "0x55e33c08ec40-RealLiteralConstant", - "real": "0x55e33c08ec40-Real", - "kind": "0x55e33c08ec50-KindParam" + "id": "0x55d88ee84c40-RealLiteralConstant", + "real": "0x55d88ee84c40-Real", + "kind": "0x55d88ee84c50-KindParam" }, { - "id": "0x55e33c08ec40-Real", + "id": "0x55d88ee84c40-Real", "source": "3.141592653589793" }, { - "id": "0x55e33c08ec50-KindParam", + "id": "0x55d88ee84c50-KindParam", "variantKey": "uint64_t", "uint64_t": "8" }, { - "id": "0x55e33c08e960-ExecutionPartConstruct", + "id": "0x55d88ee84960-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55e33c08e960-ExecutableConstruct" + "ExecutableConstruct": "0x55d88ee84960-ExecutableConstruct" }, { - "id": "0x55e33c08e960-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x55e33c08e960-Statement" + "id": "0x55d88ee84960-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d88ee84960-Statement" }, { - "id": "0x55e33c08e960-Statement", - "statement": "0x55e33c08e970-ActionStmt", + "id": "0x55d88ee84960-Statement", + "statement": "0x55d88ee84970-ActionStmt", "source": "i_var = 1000000000000_8" }, { - "id": "0x55e33c08e970-ActionStmt", + "id": "0x55d88ee84970-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55e33c08e840-AssignmentStmt" + "AssignmentStmt": "0x55d88ee84840-AssignmentStmt" }, { - "id": "0x55e33c08e840-AssignmentStmt", - "Variable": "0x55e33c08e920-Variable", - "Expr": "0x55e33c08e850-Expr" + "id": "0x55d88ee84840-AssignmentStmt", + "Variable": "0x55d88ee84920-Variable", + "Expr": "0x55d88ee84850-Expr" }, { - "id": "0x55e33c08e920-Variable", + "id": "0x55d88ee84920-Variable", "variantKey": "Designator", - "Designator": "0x55e33c09f9a0-Designator" + "Designator": "0x55d88ee959a0-Designator" }, { - "id": "0x55e33c09f9a0-Designator", + "id": "0x55d88ee959a0-Designator", "variantKey": "DataRef", - "DataRef": "0x55e33c09f9b0-DataRef" + "DataRef": "0x55d88ee959b0-DataRef" }, { - "id": "0x55e33c09f9b0-DataRef", + "id": "0x55d88ee959b0-DataRef", "variantKey": "Name", - "Name": "0x55e33c09f9b0-Name" + "Name": "0x55d88ee959b0-Name" }, { - "id": "0x55e33c09f9b0-Name", + "id": "0x55d88ee959b0-Name", "source": "i_var" }, { - "id": "0x55e33c08e850-Expr", + "id": "0x55d88ee84850-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e33c08e870-LiteralConstant" + "LiteralConstant": "0x55d88ee84870-LiteralConstant" }, { - "id": "0x55e33c08e870-LiteralConstant", + "id": "0x55d88ee84870-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e33c08e870-IntLiteralConstant" + "IntLiteralConstant": "0x55d88ee84870-IntLiteralConstant" }, { - "id": "0x55e33c08e870-IntLiteralConstant", + "id": "0x55d88ee84870-IntLiteralConstant", "CharBlock": "1000000000000", - "KindParam": "0x55e33c08e870-KindParam" + "KindParam": "0x55d88ee84870-KindParam" }, { - "id": "0x55e33c08e870-KindParam", + "id": "0x55d88ee84870-KindParam", "variantKey": "uint64_t", "uint64_t": "8" }, { - "id": "0x55e33c0920c0-ExecutionPartConstruct", + "id": "0x55d88ee880c0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55e33c0920c0-ExecutableConstruct" + "ExecutableConstruct": "0x55d88ee880c0-ExecutableConstruct" }, { - "id": "0x55e33c0920c0-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x55e33c0920c0-Statement" + "id": "0x55d88ee880c0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d88ee880c0-Statement" }, { - "id": "0x55e33c0920c0-Statement", - "statement": "0x55e33c0920d0-ActionStmt", + "id": "0x55d88ee880c0-Statement", + "statement": "0x55d88ee880d0-ActionStmt", "source": "print *, \"Custom implicit kinds:\", kind(a_var), kind(i_var)" }, { - "id": "0x55e33c0920d0-ActionStmt", + "id": "0x55d88ee880d0-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x55e33c091f40-PrintStmt" + "PrintStmt": "0x55d88ee87f40-PrintStmt" }, { - "id": "0x55e33c091f40-PrintStmt", - "Format": "0x55e33c091f58-Format", + "id": "0x55d88ee87f40-PrintStmt", + "Format": "0x55d88ee87f58-Format", "OutputItem": [ - "0x55e33c091df0-OutputItem", - "0x55e33c090460-OutputItem", - "0x55e33c091d00-OutputItem" + "0x55d88ee87df0-OutputItem", + "0x55d88ee86460-OutputItem", + "0x55d88ee87d00-OutputItem" ] }, { - "id": "0x55e33c091f58-Format", + "id": "0x55d88ee87f58-Format", "variantKey": "Star", - "Star": "0x55e33c091f58-Star" + "Star": "0x55d88ee87f58-Star" }, { - "id": "0x55e33c091f58-Star" + "id": "0x55d88ee87f58-Star" }, { - "id": "0x55e33c091df0-OutputItem", + "id": "0x55d88ee87df0-OutputItem", "variantKey": "Expr", - "Expr": "0x55e33c091df0-Expr" + "Expr": "0x55d88ee87df0-Expr" }, { - "id": "0x55e33c091df0-Expr", + "id": "0x55d88ee87df0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e33c091e10-LiteralConstant" + "LiteralConstant": "0x55d88ee87e10-LiteralConstant" }, { - "id": "0x55e33c091e10-LiteralConstant", + "id": "0x55d88ee87e10-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55e33c091e10-CharLiteralConstant" + "CharLiteralConstant": "0x55d88ee87e10-CharLiteralConstant" }, { - "id": "0x55e33c091e10-CharLiteralConstant", + "id": "0x55d88ee87e10-CharLiteralConstant", "string": "Custom implicit kinds:" }, { - "id": "0x55e33c090460-OutputItem", + "id": "0x55d88ee86460-OutputItem", "variantKey": "Expr", - "Expr": "0x55e33c090460-Expr" + "Expr": "0x55d88ee86460-Expr" }, { - "id": "0x55e33c090460-Expr", + "id": "0x55d88ee86460-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55e33c090370-FunctionReference" + "FunctionReference": "0x55d88ee86370-FunctionReference" }, { - "id": "0x55e33c090370-FunctionReference", - "Call": "0x55e33c090370-Call" + "id": "0x55d88ee86370-FunctionReference", + "Call": "0x55d88ee86370-Call" }, { - "id": "0x55e33c090370-Call", - "ProcedureDesignator": "0x55e33c090388-ProcedureDesignator", + "id": "0x55d88ee86370-Call", + "ProcedureDesignator": "0x55d88ee86388-ProcedureDesignator", "ActualArgSpec": [ - "0x55e33c090200-ActualArgSpec" + "0x55d88ee86200-ActualArgSpec" ] }, { - "id": "0x55e33c090388-ProcedureDesignator", + "id": "0x55d88ee86388-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55e33c090388-Name" + "Name": "0x55d88ee86388-Name" }, { - "id": "0x55e33c090388-Name", + "id": "0x55d88ee86388-Name", "source": "kind" }, { - "id": "0x55e33c090200-ActualArgSpec", - "ActualArg": "0x55e33c090200-ActualArg" + "id": "0x55d88ee86200-ActualArgSpec", + "ActualArg": "0x55d88ee86200-ActualArg" }, { - "id": "0x55e33c090200-ActualArg", + "id": "0x55d88ee86200-ActualArg", "variantKey": "Expr", - "Expr": "0x55e33c090fe0-Expr" + "Expr": "0x55d88ee86fe0-Expr" }, { - "id": "0x55e33c090fe0-Expr", + "id": "0x55d88ee86fe0-Expr", "variantKey": "Designator", - "Designator": "0x55e33c0a06e0-Designator" + "Designator": "0x55d88ee966e0-Designator" }, { - "id": "0x55e33c0a06e0-Designator", + "id": "0x55d88ee966e0-Designator", "variantKey": "DataRef", - "DataRef": "0x55e33c0a06f0-DataRef" + "DataRef": "0x55d88ee966f0-DataRef" }, { - "id": "0x55e33c0a06f0-DataRef", + "id": "0x55d88ee966f0-DataRef", "variantKey": "Name", - "Name": "0x55e33c0a06f0-Name" + "Name": "0x55d88ee966f0-Name" }, { - "id": "0x55e33c0a06f0-Name", + "id": "0x55d88ee966f0-Name", "source": "a_var" }, { - "id": "0x55e33c091d00-OutputItem", + "id": "0x55d88ee87d00-OutputItem", "variantKey": "Expr", - "Expr": "0x55e33c091d00-Expr" + "Expr": "0x55d88ee87d00-Expr" }, { - "id": "0x55e33c091d00-Expr", + "id": "0x55d88ee87d00-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55e33c091c10-FunctionReference" + "FunctionReference": "0x55d88ee87c10-FunctionReference" }, { - "id": "0x55e33c091c10-FunctionReference", - "Call": "0x55e33c091c10-Call" + "id": "0x55d88ee87c10-FunctionReference", + "Call": "0x55d88ee87c10-Call" }, { - "id": "0x55e33c091c10-Call", - "ProcedureDesignator": "0x55e33c091c28-ProcedureDesignator", + "id": "0x55d88ee87c10-Call", + "ProcedureDesignator": "0x55d88ee87c28-ProcedureDesignator", "ActualArgSpec": [ - "0x55e33c091aa0-ActualArgSpec" + "0x55d88ee87aa0-ActualArgSpec" ] }, { - "id": "0x55e33c091c28-ProcedureDesignator", + "id": "0x55d88ee87c28-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55e33c091c28-Name" + "Name": "0x55d88ee87c28-Name" }, { - "id": "0x55e33c091c28-Name", + "id": "0x55d88ee87c28-Name", "source": "kind" }, { - "id": "0x55e33c091aa0-ActualArgSpec", - "ActualArg": "0x55e33c091aa0-ActualArg" + "id": "0x55d88ee87aa0-ActualArgSpec", + "ActualArg": "0x55d88ee87aa0-ActualArg" }, { - "id": "0x55e33c091aa0-ActualArg", + "id": "0x55d88ee87aa0-ActualArg", "variantKey": "Expr", - "Expr": "0x55e33c091870-Expr" + "Expr": "0x55d88ee87870-Expr" }, { - "id": "0x55e33c091870-Expr", + "id": "0x55d88ee87870-Expr", "variantKey": "Designator", - "Designator": "0x55e33c08f0f0-Designator" + "Designator": "0x55d88ee850f0-Designator" }, { - "id": "0x55e33c08f0f0-Designator", + "id": "0x55d88ee850f0-Designator", "variantKey": "DataRef", - "DataRef": "0x55e33c08f100-DataRef" + "DataRef": "0x55d88ee85100-DataRef" }, { - "id": "0x55e33c08f100-DataRef", + "id": "0x55d88ee85100-DataRef", "variantKey": "Name", - "Name": "0x55e33c08f100-Name" + "Name": "0x55d88ee85100-Name" }, { - "id": "0x55e33c08f100-Name", + "id": "0x55d88ee85100-Name", "source": "i_var" }, { - "id": "0x55e33c093940-Statement", - "statement": "0x55e33c093950-EndSubroutineStmt", + "id": "0x55d88ee89940-Statement", + "statement": "0x55d88ee89950-EndSubroutineStmt", "source": "end subroutine demo_custom_implicit" }, { - "id": "0x55e33c093950-EndSubroutineStmt", - "Name": "0x55e33c093950-Name" + "id": "0x55d88ee89950-EndSubroutineStmt", + "Name": "0x55d88ee89950-Name" }, { - "id": "0x55e33c093950-Name", + "id": "0x55d88ee89950-Name", "source": "demo_custom_implicit" }, { - "id": "0x55e33c0a0d60-Statement", - "statement": "0x55e33c0a0d70-EndProgramStmt", + "id": "0x55d88ee96d60-Statement", + "statement": "0x55d88ee96d70-EndProgramStmt", "source": "end program IMPLICIT" }, { - "id": "0x55e33c0a0d70-EndProgramStmt", - "Name": "0x55e33c0a0d70-Name" + "id": "0x55d88ee96d70-EndProgramStmt", + "Name": "0x55d88ee96d70-Name" }, { - "id": "0x55e33c0a0d70-Name", + "id": "0x55d88ee96d70-Name", "source": "IMPLICIT" } ], "comments": [ { "text": " 1. Standard IMPLICIT NONE (requires all variables to be declared)", - "stmtId": "0x55e33c0a7cb0-Statement", + "stmtId": "0x55d88ee9dcb0-Statement", "trailing": false }, { "text": " 2. Custom IMPLICIT rules by letter range", - "stmtId": "0x55e33c0a0b50-Statement", + "stmtId": "0x55d88ee96b50-Statement", "trailing": false }, { "text": " Names starting with A, B, C -> 8-byte REAL", - "stmtId": "0x55e33c0a0b50-Statement", + "stmtId": "0x55d88ee96b50-Statement", "trailing": true }, { "text": " Names starting with I, J, K -> 8-byte INTEGER", - "stmtId": "0x55e33c07cc80-Statement", + "stmtId": "0x55d88ee72c80-Statement", "trailing": true }, { "text": " Implicit REAL(8)", - "stmtId": "0x55e33c09e950-Statement", + "stmtId": "0x55d88ee94950-Statement", "trailing": true }, { "text": " Implicit INTEGER(8)", - "stmtId": "0x55e33c08e960-Statement", + "stmtId": "0x55d88ee84960-Statement", "trailing": true } ], diff --git a/FortranParser/resources-test/fortran/parser/program/module1.json b/FortranParser/resources-test/fortran/parser/program/module1.json index 3f2b527a..442b4fd8 100644 --- a/FortranParser/resources-test/fortran/parser/program/module1.json +++ b/FortranParser/resources-test/fortran/parser/program/module1.json @@ -2,765 +2,766 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x5629fe3d9f00-Program", + "id": "0x563ee6ea7f00-Program", "ProgramUnit": [ - "0x5629fe41cd00-ProgramUnit" + "0x563ee6eead00-ProgramUnit" ] }, { - "id": "0x5629fe41cd00-ProgramUnit", + "id": "0x563ee6eead00-ProgramUnit", "variantKey": "Module", - "Module": "0x5629fe41da80-Module" + "Module": "0x563ee6eeba80-Module" }, { - "id": "0x5629fe41da80-Module", - "Statement": "0x5629fe41dbb0-Statement", - "SpecificationPart": "0x5629fe41db08-SpecificationPart", - "ModuleSubprogramPart": "0x5629fe41dac0-ModuleSubprogramPart", - "Statement": "0x5629fe41da80-Statement" + "id": "0x563ee6eeba80-Module", + "Statement": "0x563ee6eebbb0-Statement", + "SpecificationPart": "0x563ee6eebb08-SpecificationPart", + "ModuleSubprogramPart": "0x563ee6eebac0-ModuleSubprogramPart", + "Statement": "0x563ee6eeba80-Statement" }, { - "id": "0x5629fe41dbb0-Statement", - "statement": "0x5629fe41dbc0-ModuleStmt", + "id": "0x563ee6eebbb0-Statement", + "statement": "0x563ee6eebbc0-ModuleStmt", "source": "module math_utils_mod" }, { - "id": "0x5629fe41dbc0-ModuleStmt", - "Name": "0x5629fe41dbc0-Name" + "id": "0x563ee6eebbc0-ModuleStmt", + "Name": "0x563ee6eebbc0-Name" }, { - "id": "0x5629fe41dbc0-Name", + "id": "0x563ee6eebbc0-Name", "source": "math_utils_mod" }, { - "id": "0x5629fe41db08-SpecificationPart", - "ImplicitPart": "0x5629fe41db20-ImplicitPart", + "id": "0x563ee6eebb08-SpecificationPart", + "ImplicitPart": "0x563ee6eebb20-ImplicitPart", "DeclarationConstruct": [ - "0x5629fe3d84e0-DeclarationConstruct", - "0x5629fe3e7110-DeclarationConstruct" + "0x563ee6ea64e0-DeclarationConstruct", + "0x563ee6eb5110-DeclarationConstruct" ] }, { - "id": "0x5629fe41db20-ImplicitPart", + "id": "0x563ee6eebb20-ImplicitPart", "ImplicitPartStmt": [ - "0x5629fe41d9e0-ImplicitPartStmt" + "0x563ee6eeb9e0-ImplicitPartStmt" ] }, { - "id": "0x5629fe41d9e0-ImplicitPartStmt", - "variantKey": "Statement", - "Statement": "0x5629fe41d9e0-Statement" + "id": "0x563ee6eeb9e0-ImplicitPartStmt", + "variantKey": "Statement", + "Statement": "0x563ee6eeb9e0-Statement" }, { - "id": "0x5629fe41d9e0-Statement", - "statement": "0x5629fe4100f0-ImplicitStmt", + "id": "0x563ee6eeb9e0-Statement", + "statement": "0x563ee6ede0f0-ImplicitStmt", "source": "implicit none" }, { - "id": "0x5629fe4100f0-ImplicitStmt", - "variantKey": "list" + "id": "0x563ee6ede0f0-ImplicitStmt", + "variantKey": "ImplicitNoneNameSpec", + "ImplicitNoneNameSpec": [] }, { - "id": "0x5629fe3d84e0-DeclarationConstruct", + "id": "0x563ee6ea64e0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5629fe3d84e0-SpecificationConstruct" + "SpecificationConstruct": "0x563ee6ea64e0-SpecificationConstruct" }, { - "id": "0x5629fe3d84e0-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5629fe3d84e0-Statement" + "id": "0x563ee6ea64e0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x563ee6ea64e0-Statement" }, { - "id": "0x5629fe3d84e0-Statement", - "statement": "0x5629fe3d84f0-OtherSpecificationStmt", + "id": "0x563ee6ea64e0-Statement", + "statement": "0x563ee6ea64f0-OtherSpecificationStmt", "source": "private" }, { - "id": "0x5629fe3d84f0-OtherSpecificationStmt", + "id": "0x563ee6ea64f0-OtherSpecificationStmt", "variantKey": "AccessStmt", - "AccessStmt": "0x5629fe410120-AccessStmt" + "AccessStmt": "0x563ee6ede120-AccessStmt" }, { - "id": "0x5629fe410120-AccessStmt", - "AccessSpec": "0x5629fe410138-AccessSpec" + "id": "0x563ee6ede120-AccessStmt", + "AccessSpec": "0x563ee6ede138-AccessSpec" }, { - "id": "0x5629fe410138-AccessSpec", - "Kind": "0x5629fe410138-Kind" + "id": "0x563ee6ede138-AccessSpec", + "Kind": "0x563ee6ede138-Kind" }, { - "id": "0x5629fe410138-Kind", + "id": "0x563ee6ede138-Kind", "disambiguation": "Fortran::parser::AccessSpec::Kind", "value": "Private" }, { - "id": "0x5629fe3e7110-DeclarationConstruct", + "id": "0x563ee6eb5110-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5629fe3e7110-SpecificationConstruct" + "SpecificationConstruct": "0x563ee6eb5110-SpecificationConstruct" }, { - "id": "0x5629fe3e7110-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5629fe3e7110-Statement" + "id": "0x563ee6eb5110-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x563ee6eb5110-Statement" }, { - "id": "0x5629fe3e7110-Statement", - "statement": "0x5629fe3e7120-OtherSpecificationStmt", + "id": "0x563ee6eb5110-Statement", + "statement": "0x563ee6eb5120-OtherSpecificationStmt", "source": "public :: add, square" }, { - "id": "0x5629fe3e7120-OtherSpecificationStmt", + "id": "0x563ee6eb5120-OtherSpecificationStmt", "variantKey": "AccessStmt", - "AccessStmt": "0x5629fe4177d0-AccessStmt" + "AccessStmt": "0x563ee6ee57d0-AccessStmt" }, { - "id": "0x5629fe4177d0-AccessStmt", - "AccessSpec": "0x5629fe4177e8-AccessSpec", + "id": "0x563ee6ee57d0-AccessStmt", + "AccessSpec": "0x563ee6ee57e8-AccessSpec", "AccessId": [ - "0x5629fe4100e0-AccessId", - "0x5629fe410090-AccessId" + "0x563ee6ede0e0-AccessId", + "0x563ee6ede090-AccessId" ] }, { - "id": "0x5629fe4177e8-AccessSpec", - "Kind": "0x5629fe4177e8-Kind" + "id": "0x563ee6ee57e8-AccessSpec", + "Kind": "0x563ee6ee57e8-Kind" }, { - "id": "0x5629fe4177e8-Kind", + "id": "0x563ee6ee57e8-Kind", "disambiguation": "Fortran::parser::AccessSpec::Kind", "value": "Public" }, { - "id": "0x5629fe4100e0-AccessId", - "GenericSpec": "0x5629fe40f510-GenericSpec" + "id": "0x563ee6ede0e0-AccessId", + "GenericSpec": "0x563ee6edd510-GenericSpec" }, { - "id": "0x5629fe40f510-GenericSpec", + "id": "0x563ee6edd510-GenericSpec", "variantKey": "Name", - "Name": "0x5629fe40f520-Name" + "Name": "0x563ee6edd520-Name" }, { - "id": "0x5629fe40f520-Name", + "id": "0x563ee6edd520-Name", "source": "add" }, { - "id": "0x5629fe410090-AccessId", - "GenericSpec": "0x5629fe40f5d0-GenericSpec" + "id": "0x563ee6ede090-AccessId", + "GenericSpec": "0x563ee6edd5d0-GenericSpec" }, { - "id": "0x5629fe40f5d0-GenericSpec", + "id": "0x563ee6edd5d0-GenericSpec", "variantKey": "Name", - "Name": "0x5629fe40f5e0-Name" + "Name": "0x563ee6edd5e0-Name" }, { - "id": "0x5629fe40f5e0-Name", + "id": "0x563ee6edd5e0-Name", "source": "square" }, { - "id": "0x5629fe41dac0-ModuleSubprogramPart", - "Statement": "0x5629fe41dad8-Statement", + "id": "0x563ee6eebac0-ModuleSubprogramPart", + "Statement": "0x563ee6eebad8-Statement", "ModuleSubprogram": [ - "0x5629fe417970-ModuleSubprogram", - "0x5629fe40ebd0-ModuleSubprogram" + "0x563ee6ee5970-ModuleSubprogram", + "0x563ee6edcbd0-ModuleSubprogram" ] }, { - "id": "0x5629fe41dad8-Statement", - "statement": "0x5629fe41dae8-ContainsStmt", + "id": "0x563ee6eebad8-Statement", + "statement": "0x563ee6eebae8-ContainsStmt", "source": "contains" }, { - "id": "0x5629fe41dae8-ContainsStmt" + "id": "0x563ee6eebae8-ContainsStmt" }, { - "id": "0x5629fe417970-ModuleSubprogram", + "id": "0x563ee6ee5970-ModuleSubprogram", "variantKey": "FunctionSubprogram", - "FunctionSubprogram": "0x5629fe4110e0-FunctionSubprogram" + "FunctionSubprogram": "0x563ee6edf0e0-FunctionSubprogram" }, { - "id": "0x5629fe4110e0-FunctionSubprogram", - "Statement": "0x5629fe411228-Statement", - "SpecificationPart": "0x5629fe411180-SpecificationPart", - "ExecutionPart": "0x5629fe411168-ExecutionPart", - "Statement": "0x5629fe4110e0-Statement" + "id": "0x563ee6edf0e0-FunctionSubprogram", + "Statement": "0x563ee6edf228-Statement", + "SpecificationPart": "0x563ee6edf180-SpecificationPart", + "ExecutionPart": "0x563ee6edf168-ExecutionPart", + "Statement": "0x563ee6edf0e0-Statement" }, { - "id": "0x5629fe411228-Statement", - "statement": "0x5629fe411238-FunctionStmt", + "id": "0x563ee6edf228-Statement", + "statement": "0x563ee6edf238-FunctionStmt", "source": "pure function add(a, b) result(res)" }, { - "id": "0x5629fe411238-FunctionStmt", + "id": "0x563ee6edf238-FunctionStmt", "prefix": [ - "0x5629fe3e6da0-PrefixSpec" + "0x563ee6eb4da0-PrefixSpec" ], - "functionName": "0x5629fe411298-Name", + "functionName": "0x563ee6edf298-Name", "paramNames": [ - "0x5629fe417940-Name", - "0x5629fe417830-Name" + "0x563ee6ee5940-Name", + "0x563ee6ee5830-Name" ], - "suffix": "0x5629fe411238-Suffix" + "suffix": "0x563ee6edf238-Suffix" }, { - "id": "0x5629fe3e6da0-PrefixSpec", + "id": "0x563ee6eb4da0-PrefixSpec", "variantKey": "Pure", - "Pure": "0x5629fe3e6da0-Pure" + "Pure": "0x563ee6eb4da0-Pure" }, { - "id": "0x5629fe3e6da0-Pure" + "id": "0x563ee6eb4da0-Pure" }, { - "id": "0x5629fe411298-Name", + "id": "0x563ee6edf298-Name", "source": "add" }, { - "id": "0x5629fe417940-Name", + "id": "0x563ee6ee5940-Name", "source": "a" }, { - "id": "0x5629fe417830-Name", + "id": "0x563ee6ee5830-Name", "source": "b" }, { - "id": "0x5629fe411238-Suffix", - "resultName": "0x5629fe411258-Name" + "id": "0x563ee6edf238-Suffix", + "resultName": "0x563ee6edf258-Name" }, { - "id": "0x5629fe411258-Name", + "id": "0x563ee6edf258-Name", "source": "res" }, { - "id": "0x5629fe411180-SpecificationPart", - "ImplicitPart": "0x5629fe411198-ImplicitPart", + "id": "0x563ee6edf180-SpecificationPart", + "ImplicitPart": "0x563ee6edf198-ImplicitPart", "DeclarationConstruct": [ - "0x5629fe4158e0-DeclarationConstruct", - "0x5629fe416190-DeclarationConstruct" + "0x563ee6ee38e0-DeclarationConstruct", + "0x563ee6ee4190-DeclarationConstruct" ] }, { - "id": "0x5629fe411198-ImplicitPart" + "id": "0x563ee6edf198-ImplicitPart" }, { - "id": "0x5629fe4158e0-DeclarationConstruct", + "id": "0x563ee6ee38e0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5629fe4158e0-SpecificationConstruct" + "SpecificationConstruct": "0x563ee6ee38e0-SpecificationConstruct" }, { - "id": "0x5629fe4158e0-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5629fe4158e0-Statement" + "id": "0x563ee6ee38e0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x563ee6ee38e0-Statement" }, { - "id": "0x5629fe4158e0-Statement", - "statement": "0x5629fe414700-TypeDeclarationStmt", + "id": "0x563ee6ee38e0-Statement", + "statement": "0x563ee6ee2700-TypeDeclarationStmt", "source": "integer, intent(in) :: a, b" }, { - "id": "0x5629fe414700-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5629fe414730-DeclarationTypeSpec", + "id": "0x563ee6ee2700-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x563ee6ee2730-DeclarationTypeSpec", "AttrSpec": [ - "0x5629fe416880-AttrSpec" + "0x563ee6ee4880-AttrSpec" ], "EntityDecl": [ - "0x5629fe4162b0-EntityDecl", - "0x5629fe414090-EntityDecl" + "0x563ee6ee42b0-EntityDecl", + "0x563ee6ee2090-EntityDecl" ] }, { - "id": "0x5629fe414730-DeclarationTypeSpec", + "id": "0x563ee6ee2730-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5629fe414730-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x563ee6ee2730-IntrinsicTypeSpec" }, { - "id": "0x5629fe414730-IntrinsicTypeSpec", + "id": "0x563ee6ee2730-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x5629fe414730-IntegerTypeSpec" + "IntegerTypeSpec": "0x563ee6ee2730-IntegerTypeSpec" }, { - "id": "0x5629fe414730-IntegerTypeSpec" + "id": "0x563ee6ee2730-IntegerTypeSpec" }, { - "id": "0x5629fe416880-AttrSpec", + "id": "0x563ee6ee4880-AttrSpec", "variantKey": "IntentSpec", - "IntentSpec": "0x5629fe416880-IntentSpec" + "IntentSpec": "0x563ee6ee4880-IntentSpec" }, { - "id": "0x5629fe416880-IntentSpec", - "Intent": "0x5629fe416880-Intent", + "id": "0x563ee6ee4880-IntentSpec", + "Intent": "0x563ee6ee4880-Intent", "intent": "In" }, { - "id": "0x5629fe416880-Intent", + "id": "0x563ee6ee4880-Intent", "disambiguation": "Fortran::parser::IntentSpec::Intent", "value": "In" }, { - "id": "0x5629fe4162b0-EntityDecl", - "Name": "0x5629fe416368-Name" + "id": "0x563ee6ee42b0-EntityDecl", + "Name": "0x563ee6ee4368-Name" }, { - "id": "0x5629fe416368-Name", + "id": "0x563ee6ee4368-Name", "source": "a" }, { - "id": "0x5629fe414090-EntityDecl", - "Name": "0x5629fe414148-Name" + "id": "0x563ee6ee2090-EntityDecl", + "Name": "0x563ee6ee2148-Name" }, { - "id": "0x5629fe414148-Name", + "id": "0x563ee6ee2148-Name", "source": "b" }, { - "id": "0x5629fe416190-DeclarationConstruct", + "id": "0x563ee6ee4190-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5629fe416190-SpecificationConstruct" + "SpecificationConstruct": "0x563ee6ee4190-SpecificationConstruct" }, { - "id": "0x5629fe416190-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5629fe416190-Statement" + "id": "0x563ee6ee4190-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x563ee6ee4190-Statement" }, { - "id": "0x5629fe416190-Statement", - "statement": "0x5629fe414fe0-TypeDeclarationStmt", + "id": "0x563ee6ee4190-Statement", + "statement": "0x563ee6ee2fe0-TypeDeclarationStmt", "source": "integer :: res" }, { - "id": "0x5629fe414fe0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5629fe415010-DeclarationTypeSpec", + "id": "0x563ee6ee2fe0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x563ee6ee3010-DeclarationTypeSpec", "EntityDecl": [ - "0x5629fe38f1e0-EntityDecl" + "0x563ee6e5d1e0-EntityDecl" ] }, { - "id": "0x5629fe415010-DeclarationTypeSpec", + "id": "0x563ee6ee3010-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5629fe415010-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x563ee6ee3010-IntrinsicTypeSpec" }, { - "id": "0x5629fe415010-IntrinsicTypeSpec", + "id": "0x563ee6ee3010-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x5629fe415010-IntegerTypeSpec" + "IntegerTypeSpec": "0x563ee6ee3010-IntegerTypeSpec" }, { - "id": "0x5629fe415010-IntegerTypeSpec" + "id": "0x563ee6ee3010-IntegerTypeSpec" }, { - "id": "0x5629fe38f1e0-EntityDecl", - "Name": "0x5629fe38f298-Name" + "id": "0x563ee6e5d1e0-EntityDecl", + "Name": "0x563ee6e5d298-Name" }, { - "id": "0x5629fe38f298-Name", + "id": "0x563ee6e5d298-Name", "source": "res" }, { - "id": "0x5629fe411168-ExecutionPart", + "id": "0x563ee6edf168-ExecutionPart", "ExecutionPartConstruct": [ - "0x5629fe405750-ExecutionPartConstruct" + "0x563ee6ed3750-ExecutionPartConstruct" ] }, { - "id": "0x5629fe411168-ExecutionPartConstruct" + "id": "0x563ee6edf168-ExecutionPartConstruct" }, { - "id": "0x5629fe405750-ExecutionPartConstruct", + "id": "0x563ee6ed3750-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5629fe405750-ExecutableConstruct" + "ExecutableConstruct": "0x563ee6ed3750-ExecutableConstruct" }, { - "id": "0x5629fe405750-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5629fe405750-Statement" + "id": "0x563ee6ed3750-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x563ee6ed3750-Statement" }, { - "id": "0x5629fe405750-Statement", - "statement": "0x5629fe405760-ActionStmt", + "id": "0x563ee6ed3750-Statement", + "statement": "0x563ee6ed3760-ActionStmt", "source": "res = a + b" }, { - "id": "0x5629fe405760-ActionStmt", + "id": "0x563ee6ed3760-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5629fe4055c0-AssignmentStmt" + "AssignmentStmt": "0x563ee6ed35c0-AssignmentStmt" }, { - "id": "0x5629fe4055c0-AssignmentStmt", - "Variable": "0x5629fe4056a0-Variable", - "Expr": "0x5629fe4055d0-Expr" + "id": "0x563ee6ed35c0-AssignmentStmt", + "Variable": "0x563ee6ed36a0-Variable", + "Expr": "0x563ee6ed35d0-Expr" }, { - "id": "0x5629fe4056a0-Variable", + "id": "0x563ee6ed36a0-Variable", "variantKey": "Designator", - "Designator": "0x5629fe404c70-Designator" + "Designator": "0x563ee6ed2c70-Designator" }, { - "id": "0x5629fe404c70-Designator", + "id": "0x563ee6ed2c70-Designator", "variantKey": "DataRef", - "DataRef": "0x5629fe404c80-DataRef" + "DataRef": "0x563ee6ed2c80-DataRef" }, { - "id": "0x5629fe404c80-DataRef", + "id": "0x563ee6ed2c80-DataRef", "variantKey": "Name", - "Name": "0x5629fe404c80-Name" + "Name": "0x563ee6ed2c80-Name" }, { - "id": "0x5629fe404c80-Name", + "id": "0x563ee6ed2c80-Name", "source": "res" }, { - "id": "0x5629fe4055d0-Expr", + "id": "0x563ee6ed35d0-Expr", "variantKey": "Add", - "Add": "0x5629fe4055f0-Add" + "Add": "0x563ee6ed35f0-Add" }, { - "id": "0x5629fe4055f0-Add", - "left": "0x5629fe405470-Expr", - "right": "0x5629fe379790-Expr", + "id": "0x563ee6ed35f0-Add", + "left": "0x563ee6ed3470-Expr", + "right": "0x563ee6e47790-Expr", "op": "ADD" }, { - "id": "0x5629fe405470-Expr", + "id": "0x563ee6ed3470-Expr", "variantKey": "Designator", - "Designator": "0x5629fe404e90-Designator" + "Designator": "0x563ee6ed2e90-Designator" }, { - "id": "0x5629fe404e90-Designator", + "id": "0x563ee6ed2e90-Designator", "variantKey": "DataRef", - "DataRef": "0x5629fe404ea0-DataRef" + "DataRef": "0x563ee6ed2ea0-DataRef" }, { - "id": "0x5629fe404ea0-DataRef", + "id": "0x563ee6ed2ea0-DataRef", "variantKey": "Name", - "Name": "0x5629fe404ea0-Name" + "Name": "0x563ee6ed2ea0-Name" }, { - "id": "0x5629fe404ea0-Name", + "id": "0x563ee6ed2ea0-Name", "source": "a" }, { - "id": "0x5629fe379790-Expr", + "id": "0x563ee6e47790-Expr", "variantKey": "Designator", - "Designator": "0x5629fe3e7160-Designator" + "Designator": "0x563ee6eb5160-Designator" }, { - "id": "0x5629fe3e7160-Designator", + "id": "0x563ee6eb5160-Designator", "variantKey": "DataRef", - "DataRef": "0x5629fe3e7170-DataRef" + "DataRef": "0x563ee6eb5170-DataRef" }, { - "id": "0x5629fe3e7170-DataRef", + "id": "0x563ee6eb5170-DataRef", "variantKey": "Name", - "Name": "0x5629fe3e7170-Name" + "Name": "0x563ee6eb5170-Name" }, { - "id": "0x5629fe3e7170-Name", + "id": "0x563ee6eb5170-Name", "source": "b" }, { - "id": "0x5629fe4110e0-Statement", - "statement": "0x5629fe4110f0-EndFunctionStmt", + "id": "0x563ee6edf0e0-Statement", + "statement": "0x563ee6edf0f0-EndFunctionStmt", "source": "end function add" }, { - "id": "0x5629fe4110f0-EndFunctionStmt", - "Name": "0x5629fe4110f0-Name" + "id": "0x563ee6edf0f0-EndFunctionStmt", + "Name": "0x563ee6edf0f0-Name" }, { - "id": "0x5629fe4110f0-Name", + "id": "0x563ee6edf0f0-Name", "source": "add" }, { - "id": "0x5629fe40ebd0-ModuleSubprogram", + "id": "0x563ee6edcbd0-ModuleSubprogram", "variantKey": "FunctionSubprogram", - "FunctionSubprogram": "0x5629fe415a40-FunctionSubprogram" + "FunctionSubprogram": "0x563ee6ee3a40-FunctionSubprogram" }, { - "id": "0x5629fe415a40-FunctionSubprogram", - "Statement": "0x5629fe415b88-Statement", - "SpecificationPart": "0x5629fe415ae0-SpecificationPart", - "ExecutionPart": "0x5629fe415ac8-ExecutionPart", - "Statement": "0x5629fe415a40-Statement" + "id": "0x563ee6ee3a40-FunctionSubprogram", + "Statement": "0x563ee6ee3b88-Statement", + "SpecificationPart": "0x563ee6ee3ae0-SpecificationPart", + "ExecutionPart": "0x563ee6ee3ac8-ExecutionPart", + "Statement": "0x563ee6ee3a40-Statement" }, { - "id": "0x5629fe415b88-Statement", - "statement": "0x5629fe415b98-FunctionStmt", + "id": "0x563ee6ee3b88-Statement", + "statement": "0x563ee6ee3b98-FunctionStmt", "source": "pure function square(x) result(res)" }, { - "id": "0x5629fe415b98-FunctionStmt", + "id": "0x563ee6ee3b98-FunctionStmt", "prefix": [ - "0x5629fe404a60-PrefixSpec" + "0x563ee6ed2a60-PrefixSpec" ], - "functionName": "0x5629fe415bf8-Name", + "functionName": "0x563ee6ee3bf8-Name", "paramNames": [ - "0x5629fe4179c0-Name" + "0x563ee6ee59c0-Name" ], - "suffix": "0x5629fe415b98-Suffix" + "suffix": "0x563ee6ee3b98-Suffix" }, { - "id": "0x5629fe404a60-PrefixSpec", + "id": "0x563ee6ed2a60-PrefixSpec", "variantKey": "Pure", - "Pure": "0x5629fe404a60-Pure" + "Pure": "0x563ee6ed2a60-Pure" }, { - "id": "0x5629fe404a60-Pure" + "id": "0x563ee6ed2a60-Pure" }, { - "id": "0x5629fe415bf8-Name", + "id": "0x563ee6ee3bf8-Name", "source": "square" }, { - "id": "0x5629fe4179c0-Name", + "id": "0x563ee6ee59c0-Name", "source": "x" }, { - "id": "0x5629fe415b98-Suffix", - "resultName": "0x5629fe415bb8-Name" + "id": "0x563ee6ee3b98-Suffix", + "resultName": "0x563ee6ee3bb8-Name" }, { - "id": "0x5629fe415bb8-Name", + "id": "0x563ee6ee3bb8-Name", "source": "res" }, { - "id": "0x5629fe415ae0-SpecificationPart", - "ImplicitPart": "0x5629fe415af8-ImplicitPart", + "id": "0x563ee6ee3ae0-SpecificationPart", + "ImplicitPart": "0x563ee6ee3af8-ImplicitPart", "DeclarationConstruct": [ - "0x5629fe404f70-DeclarationConstruct", - "0x5629fe405190-DeclarationConstruct" + "0x563ee6ed2f70-DeclarationConstruct", + "0x563ee6ed3190-DeclarationConstruct" ] }, { - "id": "0x5629fe415af8-ImplicitPart" + "id": "0x563ee6ee3af8-ImplicitPart" }, { - "id": "0x5629fe404f70-DeclarationConstruct", + "id": "0x563ee6ed2f70-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5629fe404f70-SpecificationConstruct" + "SpecificationConstruct": "0x563ee6ed2f70-SpecificationConstruct" }, { - "id": "0x5629fe404f70-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5629fe404f70-Statement" + "id": "0x563ee6ed2f70-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x563ee6ed2f70-Statement" }, { - "id": "0x5629fe404f70-Statement", - "statement": "0x5629fe414f60-TypeDeclarationStmt", + "id": "0x563ee6ed2f70-Statement", + "statement": "0x563ee6ee2f60-TypeDeclarationStmt", "source": "integer, intent(in) :: x" }, { - "id": "0x5629fe414f60-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5629fe414f90-DeclarationTypeSpec", + "id": "0x563ee6ee2f60-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x563ee6ee2f90-DeclarationTypeSpec", "AttrSpec": [ - "0x5629fe3f2c80-AttrSpec" + "0x563ee6ec0c80-AttrSpec" ], "EntityDecl": [ - "0x5629fe406b50-EntityDecl" + "0x563ee6ed4b50-EntityDecl" ] }, { - "id": "0x5629fe414f90-DeclarationTypeSpec", + "id": "0x563ee6ee2f90-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5629fe414f90-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x563ee6ee2f90-IntrinsicTypeSpec" }, { - "id": "0x5629fe414f90-IntrinsicTypeSpec", + "id": "0x563ee6ee2f90-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x5629fe414f90-IntegerTypeSpec" + "IntegerTypeSpec": "0x563ee6ee2f90-IntegerTypeSpec" }, { - "id": "0x5629fe414f90-IntegerTypeSpec" + "id": "0x563ee6ee2f90-IntegerTypeSpec" }, { - "id": "0x5629fe3f2c80-AttrSpec", + "id": "0x563ee6ec0c80-AttrSpec", "variantKey": "IntentSpec", - "IntentSpec": "0x5629fe3f2c80-IntentSpec" + "IntentSpec": "0x563ee6ec0c80-IntentSpec" }, { - "id": "0x5629fe3f2c80-IntentSpec", - "Intent": "0x5629fe3f2c80-Intent", + "id": "0x563ee6ec0c80-IntentSpec", + "Intent": "0x563ee6ec0c80-Intent", "intent": "In" }, { - "id": "0x5629fe3f2c80-Intent", + "id": "0x563ee6ec0c80-Intent", "disambiguation": "Fortran::parser::IntentSpec::Intent", "value": "In" }, { - "id": "0x5629fe406b50-EntityDecl", - "Name": "0x5629fe406c08-Name" + "id": "0x563ee6ed4b50-EntityDecl", + "Name": "0x563ee6ed4c08-Name" }, { - "id": "0x5629fe406c08-Name", + "id": "0x563ee6ed4c08-Name", "source": "x" }, { - "id": "0x5629fe405190-DeclarationConstruct", + "id": "0x563ee6ed3190-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5629fe405190-SpecificationConstruct" + "SpecificationConstruct": "0x563ee6ed3190-SpecificationConstruct" }, { - "id": "0x5629fe405190-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x5629fe405190-Statement" + "id": "0x563ee6ed3190-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x563ee6ed3190-Statement" }, { - "id": "0x5629fe405190-Statement", - "statement": "0x5629fe414210-TypeDeclarationStmt", + "id": "0x563ee6ed3190-Statement", + "statement": "0x563ee6ee2210-TypeDeclarationStmt", "source": "integer :: res" }, { - "id": "0x5629fe414210-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5629fe414240-DeclarationTypeSpec", + "id": "0x563ee6ee2210-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x563ee6ee2240-DeclarationTypeSpec", "EntityDecl": [ - "0x5629fe406000-EntityDecl" + "0x563ee6ed4000-EntityDecl" ] }, { - "id": "0x5629fe414240-DeclarationTypeSpec", + "id": "0x563ee6ee2240-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5629fe414240-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x563ee6ee2240-IntrinsicTypeSpec" }, { - "id": "0x5629fe414240-IntrinsicTypeSpec", + "id": "0x563ee6ee2240-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x5629fe414240-IntegerTypeSpec" + "IntegerTypeSpec": "0x563ee6ee2240-IntegerTypeSpec" }, { - "id": "0x5629fe414240-IntegerTypeSpec" + "id": "0x563ee6ee2240-IntegerTypeSpec" }, { - "id": "0x5629fe406000-EntityDecl", - "Name": "0x5629fe4060b8-Name" + "id": "0x563ee6ed4000-EntityDecl", + "Name": "0x563ee6ed40b8-Name" }, { - "id": "0x5629fe4060b8-Name", + "id": "0x563ee6ed40b8-Name", "source": "res" }, { - "id": "0x5629fe415ac8-ExecutionPart", + "id": "0x563ee6ee3ac8-ExecutionPart", "ExecutionPartConstruct": [ - "0x5629fe414540-ExecutionPartConstruct" + "0x563ee6ee2540-ExecutionPartConstruct" ] }, { - "id": "0x5629fe415ac8-ExecutionPartConstruct" + "id": "0x563ee6ee3ac8-ExecutionPartConstruct" }, { - "id": "0x5629fe414540-ExecutionPartConstruct", + "id": "0x563ee6ee2540-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5629fe414540-ExecutableConstruct" + "ExecutableConstruct": "0x563ee6ee2540-ExecutableConstruct" }, { - "id": "0x5629fe414540-ExecutableConstruct", - "variantKey": "Statement", - "Statement": "0x5629fe414540-Statement" + "id": "0x563ee6ee2540-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x563ee6ee2540-Statement" }, { - "id": "0x5629fe414540-Statement", - "statement": "0x5629fe414550-ActionStmt", + "id": "0x563ee6ee2540-Statement", + "statement": "0x563ee6ee2550-ActionStmt", "source": "res = x * x" }, { - "id": "0x5629fe414550-ActionStmt", + "id": "0x563ee6ee2550-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x5629fe414420-AssignmentStmt" + "AssignmentStmt": "0x563ee6ee2420-AssignmentStmt" }, { - "id": "0x5629fe414420-AssignmentStmt", - "Variable": "0x5629fe414500-Variable", - "Expr": "0x5629fe414430-Expr" + "id": "0x563ee6ee2420-AssignmentStmt", + "Variable": "0x563ee6ee2500-Variable", + "Expr": "0x563ee6ee2430-Expr" }, { - "id": "0x5629fe414500-Variable", + "id": "0x563ee6ee2500-Variable", "variantKey": "Designator", - "Designator": "0x5629fe406140-Designator" + "Designator": "0x563ee6ed4140-Designator" }, { - "id": "0x5629fe406140-Designator", + "id": "0x563ee6ed4140-Designator", "variantKey": "DataRef", - "DataRef": "0x5629fe406150-DataRef" + "DataRef": "0x563ee6ed4150-DataRef" }, { - "id": "0x5629fe406150-DataRef", + "id": "0x563ee6ed4150-DataRef", "variantKey": "Name", - "Name": "0x5629fe406150-Name" + "Name": "0x563ee6ed4150-Name" }, { - "id": "0x5629fe406150-Name", + "id": "0x563ee6ed4150-Name", "source": "res" }, { - "id": "0x5629fe414430-Expr", + "id": "0x563ee6ee2430-Expr", "variantKey": "Multiply", - "Multiply": "0x5629fe414450-Multiply" + "Multiply": "0x563ee6ee2450-Multiply" }, { - "id": "0x5629fe414450-Multiply", - "left": "0x5629fe406410-Expr", - "right": "0x5629fe406330-Expr", + "id": "0x563ee6ee2450-Multiply", + "left": "0x563ee6ed4410-Expr", + "right": "0x563ee6ed4330-Expr", "op": "MULTIPLY" }, { - "id": "0x5629fe406410-Expr", + "id": "0x563ee6ed4410-Expr", "variantKey": "Designator", - "Designator": "0x5629fe407670-Designator" + "Designator": "0x563ee6ed5670-Designator" }, { - "id": "0x5629fe407670-Designator", + "id": "0x563ee6ed5670-Designator", "variantKey": "DataRef", - "DataRef": "0x5629fe407680-DataRef" + "DataRef": "0x563ee6ed5680-DataRef" }, { - "id": "0x5629fe407680-DataRef", + "id": "0x563ee6ed5680-DataRef", "variantKey": "Name", - "Name": "0x5629fe407680-Name" + "Name": "0x563ee6ed5680-Name" }, { - "id": "0x5629fe407680-Name", + "id": "0x563ee6ed5680-Name", "source": "x" }, { - "id": "0x5629fe406330-Expr", + "id": "0x563ee6ed4330-Expr", "variantKey": "Designator", - "Designator": "0x5629fe404990-Designator" + "Designator": "0x563ee6ed2990-Designator" }, { - "id": "0x5629fe404990-Designator", + "id": "0x563ee6ed2990-Designator", "variantKey": "DataRef", - "DataRef": "0x5629fe4049a0-DataRef" + "DataRef": "0x563ee6ed29a0-DataRef" }, { - "id": "0x5629fe4049a0-DataRef", + "id": "0x563ee6ed29a0-DataRef", "variantKey": "Name", - "Name": "0x5629fe4049a0-Name" + "Name": "0x563ee6ed29a0-Name" }, { - "id": "0x5629fe4049a0-Name", + "id": "0x563ee6ed29a0-Name", "source": "x" }, { - "id": "0x5629fe415a40-Statement", - "statement": "0x5629fe415a50-EndFunctionStmt", + "id": "0x563ee6ee3a40-Statement", + "statement": "0x563ee6ee3a50-EndFunctionStmt", "source": "end function square" }, { - "id": "0x5629fe415a50-EndFunctionStmt", - "Name": "0x5629fe415a50-Name" + "id": "0x563ee6ee3a50-EndFunctionStmt", + "Name": "0x563ee6ee3a50-Name" }, { - "id": "0x5629fe415a50-Name", + "id": "0x563ee6ee3a50-Name", "source": "square" }, { - "id": "0x5629fe41da80-Statement", - "statement": "0x5629fe41da90-EndModuleStmt", + "id": "0x563ee6eeba80-Statement", + "statement": "0x563ee6eeba90-EndModuleStmt", "source": "end module math_utils_mod" }, { - "id": "0x5629fe41da90-EndModuleStmt", - "Name": "0x5629fe41da90-Name" + "id": "0x563ee6eeba90-EndModuleStmt", + "Name": "0x563ee6eeba90-Name" }, { - "id": "0x5629fe41da90-Name", + "id": "0x563ee6eeba90-Name", "source": "math_utils_mod" } ], diff --git a/FortranParser/resources-test/fortran/parser/program/module2.json b/FortranParser/resources-test/fortran/parser/program/module2.json index 808bad14..c73c1a40 100644 --- a/FortranParser/resources-test/fortran/parser/program/module2.json +++ b/FortranParser/resources-test/fortran/parser/program/module2.json @@ -2,363 +2,364 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x563e892ddf00-Program", + "id": "0x55fa7828ef00-Program", "ProgramUnit": [ - "0x563e89314170-ProgramUnit" + "0x55fa782c5170-ProgramUnit" ] }, { - "id": "0x563e89314170-ProgramUnit", + "id": "0x55fa782c5170-ProgramUnit", "variantKey": "Module", - "Module": "0x563e89318460-Module" + "Module": "0x55fa782c9460-Module" }, { - "id": "0x563e89318460-Module", - "Statement": "0x563e89318590-Statement", - "SpecificationPart": "0x563e893184e8-SpecificationPart", - "Statement": "0x563e89318460-Statement" + "id": "0x55fa782c9460-Module", + "Statement": "0x55fa782c9590-Statement", + "SpecificationPart": "0x55fa782c94e8-SpecificationPart", + "Statement": "0x55fa782c9460-Statement" }, { - "id": "0x563e89318590-Statement", - "statement": "0x563e893185a0-ModuleStmt", + "id": "0x55fa782c9590-Statement", + "statement": "0x55fa782c95a0-ModuleStmt", "source": "module geometry_mod" }, { - "id": "0x563e893185a0-ModuleStmt", - "Name": "0x563e893185a0-Name" + "id": "0x55fa782c95a0-ModuleStmt", + "Name": "0x55fa782c95a0-Name" }, { - "id": "0x563e893185a0-Name", + "id": "0x55fa782c95a0-Name", "source": "geometry_mod" }, { - "id": "0x563e893184e8-SpecificationPart", - "ImplicitPart": "0x563e89318500-ImplicitPart", + "id": "0x55fa782c94e8-SpecificationPart", + "ImplicitPart": "0x55fa782c9500-ImplicitPart", "DeclarationConstruct": [ - "0x563e892dc4e0-DeclarationConstruct", - "0x563e892eb110-DeclarationConstruct" + "0x55fa7828d4e0-DeclarationConstruct", + "0x55fa7829c110-DeclarationConstruct" ] }, { - "id": "0x563e89318500-ImplicitPart", + "id": "0x55fa782c9500-ImplicitPart", "ImplicitPartStmt": [ - "0x563e89321770-ImplicitPartStmt" + "0x55fa782d2770-ImplicitPartStmt" ] }, { - "id": "0x563e89321770-ImplicitPartStmt", - "variantKey": "Statement", - "Statement": "0x563e89321770-Statement" + "id": "0x55fa782d2770-ImplicitPartStmt", + "variantKey": "Statement", + "Statement": "0x55fa782d2770-Statement" }, { - "id": "0x563e89321770-Statement", - "statement": "0x563e893140b0-ImplicitStmt", + "id": "0x55fa782d2770-Statement", + "statement": "0x55fa782c50b0-ImplicitStmt", "source": "implicit none" }, { - "id": "0x563e893140b0-ImplicitStmt", - "variantKey": "list" + "id": "0x55fa782c50b0-ImplicitStmt", + "variantKey": "ImplicitNoneNameSpec", + "ImplicitNoneNameSpec": [] }, { - "id": "0x563e892dc4e0-DeclarationConstruct", + "id": "0x55fa7828d4e0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x563e892dc4e0-SpecificationConstruct" + "SpecificationConstruct": "0x55fa7828d4e0-SpecificationConstruct" }, { - "id": "0x563e892dc4e0-SpecificationConstruct", + "id": "0x55fa7828d4e0-SpecificationConstruct", "variantKey": "DerivedTypeDef", - "DerivedTypeDef": "0x563e89321810-DerivedTypeDef" + "DerivedTypeDef": "0x55fa782d2810-DerivedTypeDef" }, { - "id": "0x563e89321810-DerivedTypeDef", - "Statement": "0x563e89321910-Statement", - "Statement": [ - "0x563e89314e30-Statement" + "id": "0x55fa782d2810-DerivedTypeDef", + "Statement": "0x55fa782d2910-Statement", + "Statement": [ + "0x55fa782c5e30-Statement" ], - "Statement": "0x563e89321810-Statement" + "Statement": "0x55fa782d2810-Statement" }, { - "id": "0x563e89321910-Statement", - "statement": "0x563e89321920-DerivedTypeStmt", + "id": "0x55fa782d2910-Statement", + "statement": "0x55fa782d2920-DerivedTypeStmt", "source": "type :: point" }, { - "id": "0x563e89321920-DerivedTypeStmt", - "Name": "0x563e89321938-Name" + "id": "0x55fa782d2920-DerivedTypeStmt", + "Name": "0x55fa782d2938-Name" }, { - "id": "0x563e89321938-Name", + "id": "0x55fa782d2938-Name", "source": "point" }, { - "id": "0x563e89314e30-Statement", - "statement": "0x563e89314e40-ComponentDefStmt", + "id": "0x55fa782c5e30-Statement", + "statement": "0x55fa782c5e40-ComponentDefStmt", "source": "real :: x, y" }, { - "id": "0x563e89314e40-ComponentDefStmt", + "id": "0x55fa782c5e40-ComponentDefStmt", "variantKey": "DataComponentDefStmt", - "DataComponentDefStmt": "0x563e89314e40-DataComponentDefStmt" + "DataComponentDefStmt": "0x55fa782c5e40-DataComponentDefStmt" }, { - "id": "0x563e89314e40-DataComponentDefStmt", - "DeclarationTypeSpec": "0x563e89314e70-DeclarationTypeSpec", + "id": "0x55fa782c5e40-DataComponentDefStmt", + "DeclarationTypeSpec": "0x55fa782c5e70-DeclarationTypeSpec", "ComponentOrFill": [ - "0x563e89318030-ComponentOrFill", - "0x563e8927d7a0-ComponentOrFill" + "0x55fa782c9030-ComponentOrFill", + "0x55fa7822e7a0-ComponentOrFill" ] }, { - "id": "0x563e89314e70-DeclarationTypeSpec", + "id": "0x55fa782c5e70-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x563e89314e70-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55fa782c5e70-IntrinsicTypeSpec" }, { - "id": "0x563e89314e70-IntrinsicTypeSpec", + "id": "0x55fa782c5e70-IntrinsicTypeSpec", "variantKey": "Real", - "Real": "0x563e89314e70-Real" + "Real": "0x55fa782c5e70-Real" }, { - "id": "0x563e89314e70-Real" + "id": "0x55fa782c5e70-Real" }, { - "id": "0x563e89318030-ComponentOrFill", + "id": "0x55fa782c9030-ComponentOrFill", "variantKey": "ComponentDecl", - "ComponentDecl": "0x563e89318030-ComponentDecl" + "ComponentDecl": "0x55fa782c9030-ComponentDecl" }, { - "id": "0x563e89318030-ComponentDecl", - "Name": "0x563e893180d8-Name" + "id": "0x55fa782c9030-ComponentDecl", + "Name": "0x55fa782c90d8-Name" }, { - "id": "0x563e893180d8-Name", + "id": "0x55fa782c90d8-Name", "source": "x" }, { - "id": "0x563e8927d7a0-ComponentOrFill", + "id": "0x55fa7822e7a0-ComponentOrFill", "variantKey": "ComponentDecl", - "ComponentDecl": "0x563e8927d7a0-ComponentDecl" + "ComponentDecl": "0x55fa7822e7a0-ComponentDecl" }, { - "id": "0x563e8927d7a0-ComponentDecl", - "Name": "0x563e8927d848-Name" + "id": "0x55fa7822e7a0-ComponentDecl", + "Name": "0x55fa7822e848-Name" }, { - "id": "0x563e8927d848-Name", + "id": "0x55fa7822e848-Name", "source": "y" }, { - "id": "0x563e89321810-Statement", - "statement": "0x563e89321820-EndTypeStmt", + "id": "0x55fa782d2810-Statement", + "statement": "0x55fa782d2820-EndTypeStmt", "source": "end type point" }, { - "id": "0x563e89321820-EndTypeStmt", - "Name": "0x563e89321820-Name" + "id": "0x55fa782d2820-EndTypeStmt", + "Name": "0x55fa782d2820-Name" }, { - "id": "0x563e89321820-Name", + "id": "0x55fa782d2820-Name", "source": "point" }, { - "id": "0x563e892eb110-DeclarationConstruct", + "id": "0x55fa7829c110-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x563e892eb110-SpecificationConstruct" + "SpecificationConstruct": "0x55fa7829c110-SpecificationConstruct" }, { - "id": "0x563e892eb110-SpecificationConstruct", + "id": "0x55fa7829c110-SpecificationConstruct", "variantKey": "InterfaceBlock", - "InterfaceBlock": "0x563e89318370-InterfaceBlock" + "InterfaceBlock": "0x55fa782c9370-InterfaceBlock" }, { - "id": "0x563e89318370-InterfaceBlock", - "Statement": "0x563e893183e8-Statement", + "id": "0x55fa782c9370-InterfaceBlock", + "Statement": "0x55fa782c93e8-Statement", "InterfaceSpecification": [ - "0x563e892b3790-InterfaceSpecification" + "0x55fa78264790-InterfaceSpecification" ], - "Statement": "0x563e89318370-Statement" + "Statement": "0x55fa782c9370-Statement" }, { - "id": "0x563e893183e8-Statement", - "statement": "0x563e893183f8-InterfaceStmt", + "id": "0x55fa782c93e8-Statement", + "statement": "0x55fa782c93f8-InterfaceStmt", "source": "interface" }, { - "id": "0x563e893183f8-InterfaceStmt", + "id": "0x55fa782c93f8-InterfaceStmt", "variantKey": "null" }, { - "id": "0x563e892b3790-InterfaceSpecification", + "id": "0x55fa78264790-InterfaceSpecification", "variantKey": "InterfaceBody", - "InterfaceBody": "0x563e892b3790-InterfaceBody" + "InterfaceBody": "0x55fa78264790-InterfaceBody" }, { - "id": "0x563e892b3790-InterfaceBody", + "id": "0x55fa78264790-InterfaceBody", "variantKey": "Subroutine", - "Subroutine": "0x563e892b3790-Subroutine" + "Subroutine": "0x55fa78264790-Subroutine" }, { - "id": "0x563e892b3790-Subroutine", - "Statement": "0x563e892b37d8-Statement", - "SpecificationPart": "0x563e8927ab00-SpecificationPart", - "Statement": "0x563e892b3790-Statement" + "id": "0x55fa78264790-Subroutine", + "Statement": "0x55fa782647d8-Statement", + "SpecificationPart": "0x55fa7822bb00-SpecificationPart", + "Statement": "0x55fa78264790-Statement" }, { - "id": "0x563e892b37d8-Statement", - "statement": "0x563e892b37e8-SubroutineStmt", + "id": "0x55fa782647d8-Statement", + "statement": "0x55fa782647e8-SubroutineStmt", "source": "subroutine draw_point(pt)" }, { - "id": "0x563e892b37e8-SubroutineStmt", - "Name": "0x563e892b3820-Name", + "id": "0x55fa782647e8-SubroutineStmt", + "Name": "0x55fa78264820-Name", "DummyArg": [ - "0x563e89312dd0-DummyArg" + "0x55fa782c3dd0-DummyArg" ] }, { - "id": "0x563e892b3820-Name", + "id": "0x55fa78264820-Name", "source": "draw_point" }, { - "id": "0x563e89312dd0-DummyArg", + "id": "0x55fa782c3dd0-DummyArg", "variantKey": "Name", - "Name": "0x563e89312dd0-Name" + "Name": "0x55fa782c3dd0-Name" }, { - "id": "0x563e89312dd0-Name", + "id": "0x55fa782c3dd0-Name", "source": "pt" }, { - "id": "0x563e8927ab00-SpecificationPart", - "Statement": [ - "0x563e893134b0-Statement" + "id": "0x55fa7822bb00-SpecificationPart", + "Statement": [ + "0x55fa782c44b0-Statement" ], - "ImplicitPart": "0x563e8927ab18-ImplicitPart", + "ImplicitPart": "0x55fa7822bb18-ImplicitPart", "DeclarationConstruct": [ - "0x563e892eada0-DeclarationConstruct" + "0x55fa7829bda0-DeclarationConstruct" ] }, { - "id": "0x563e893134b0-Statement", - "statement": "0x563e89314110-ImportStmt", + "id": "0x55fa782c44b0-Statement", + "statement": "0x55fa782c5110-ImportStmt", "source": "import :: point" }, { - "id": "0x563e89314110-ImportStmt", - "ImportKind": "0x563e89314128-ImportKind", + "id": "0x55fa782c5110-ImportStmt", + "ImportKind": "0x55fa782c5128-ImportKind", "Name": [ - "0x563e893140f0-Name" + "0x55fa782c50f0-Name" ] }, { - "id": "0x563e89314128-ImportKind", + "id": "0x55fa782c5128-ImportKind", "disambiguation": "Fortran::common::ImportKind", "value": "Default" }, { - "id": "0x563e893140f0-Name", + "id": "0x55fa782c50f0-Name", "source": "point" }, { - "id": "0x563e8927ab18-ImplicitPart" + "id": "0x55fa7822bb18-ImplicitPart" }, { - "id": "0x563e892eada0-DeclarationConstruct", + "id": "0x55fa7829bda0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x563e892eada0-SpecificationConstruct" + "SpecificationConstruct": "0x55fa7829bda0-SpecificationConstruct" }, { - "id": "0x563e892eada0-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x563e892eada0-Statement" + "id": "0x55fa7829bda0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55fa7829bda0-Statement" }, { - "id": "0x563e892eada0-Statement", - "statement": "0x563e89318100-TypeDeclarationStmt", + "id": "0x55fa7829bda0-Statement", + "statement": "0x55fa782c9100-TypeDeclarationStmt", "source": "type(point), intent(in) :: pt" }, { - "id": "0x563e89318100-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x563e89318130-DeclarationTypeSpec", + "id": "0x55fa782c9100-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55fa782c9130-DeclarationTypeSpec", "AttrSpec": [ - "0x563e8931a610-AttrSpec" + "0x55fa782cb610-AttrSpec" ], "EntityDecl": [ - "0x563e89318210-EntityDecl" + "0x55fa782c9210-EntityDecl" ] }, { - "id": "0x563e89318130-DeclarationTypeSpec", + "id": "0x55fa782c9130-DeclarationTypeSpec", "variantKey": "Type", - "Type": "0x563e89318130-Type" + "Type": "0x55fa782c9130-Type" }, { - "id": "0x563e89318130-Type", - "DerivedTypeSpec": "0x563e89318130-DerivedTypeSpec" + "id": "0x55fa782c9130-Type", + "DerivedTypeSpec": "0x55fa782c9130-DerivedTypeSpec" }, { - "id": "0x563e89318130-DerivedTypeSpec", - "Name": "0x563e89318150-Name" + "id": "0x55fa782c9130-DerivedTypeSpec", + "Name": "0x55fa782c9150-Name" }, { - "id": "0x563e89318150-Name", + "id": "0x55fa782c9150-Name", "source": "point" }, { - "id": "0x563e8931a610-AttrSpec", + "id": "0x55fa782cb610-AttrSpec", "variantKey": "IntentSpec", - "IntentSpec": "0x563e8931a610-IntentSpec" + "IntentSpec": "0x55fa782cb610-IntentSpec" }, { - "id": "0x563e8931a610-IntentSpec", - "Intent": "0x563e8931a610-Intent", + "id": "0x55fa782cb610-IntentSpec", + "Intent": "0x55fa782cb610-Intent", "intent": "In" }, { - "id": "0x563e8931a610-Intent", + "id": "0x55fa782cb610-Intent", "disambiguation": "Fortran::parser::IntentSpec::Intent", "value": "In" }, { - "id": "0x563e89318210-EntityDecl", - "Name": "0x563e893182c8-Name" + "id": "0x55fa782c9210-EntityDecl", + "Name": "0x55fa782c92c8-Name" }, { - "id": "0x563e893182c8-Name", + "id": "0x55fa782c92c8-Name", "source": "pt" }, { - "id": "0x563e892b3790-Statement", - "statement": "0x563e892b37a0-EndSubroutineStmt", + "id": "0x55fa78264790-Statement", + "statement": "0x55fa782647a0-EndSubroutineStmt", "source": "end subroutine draw_point" }, { - "id": "0x563e892b37a0-EndSubroutineStmt", - "Name": "0x563e892b37a0-Name" + "id": "0x55fa782647a0-EndSubroutineStmt", + "Name": "0x55fa782647a0-Name" }, { - "id": "0x563e892b37a0-Name", + "id": "0x55fa782647a0-Name", "source": "draw_point" }, { - "id": "0x563e89318370-Statement", - "statement": "0x563e89318380-EndInterfaceStmt", + "id": "0x55fa782c9370-Statement", + "statement": "0x55fa782c9380-EndInterfaceStmt", "source": "end interface" }, { - "id": "0x563e89318380-EndInterfaceStmt" + "id": "0x55fa782c9380-EndInterfaceStmt" }, { - "id": "0x563e89318460-Statement", - "statement": "0x563e89318470-EndModuleStmt", + "id": "0x55fa782c9460-Statement", + "statement": "0x55fa782c9470-EndModuleStmt", "source": "end module geometry_mod" }, { - "id": "0x563e89318470-EndModuleStmt", - "Name": "0x563e89318470-Name" + "id": "0x55fa782c9470-EndModuleStmt", + "Name": "0x55fa782c9470-Name" }, { - "id": "0x563e89318470-Name", + "id": "0x55fa782c9470-Name", "source": "geometry_mod" } ], From 4e386f03c964359d9bb2d7ebe4870fb99f35a55e Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 6 Aug 2026 23:39:44 +0100 Subject: [PATCH 202/260] Fise internal part with specification and add processors for it --- .../specs/fortran/ast/FortranNodeFactory.java | 4 --- .../ast/nodes/program/ImplicitPart.java | 26 ------------------- .../ast/nodes/program/Specification.java | 9 ++++--- .../up/fe/specs/fortran/parser/FlangName.java | 1 + .../parser/processors/ProgramProcessors.java | 16 +++++++----- 5 files changed, 16 insertions(+), 40 deletions(-) delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/ImplicitPart.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java index db8d4b5b..e73a57c1 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java @@ -379,10 +379,6 @@ public NamedParameter namedParameter(String name) { return node; } - public ImplicitPart implicitPart(List stmts) { - return newNode(ImplicitPart.class, stmts); - } - public DeclStmtAdapter declStmtAdapter(DeclStmt declStmt) { return newNode(DeclStmtAdapter.class, List.of(declStmt)); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/ImplicitPart.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/ImplicitPart.java deleted file mode 100644 index 5c36a5e4..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/ImplicitPart.java +++ /dev/null @@ -1,26 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.program; - -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.stmt.ImplicitPartStmt; - -import java.util.Collection; -import java.util.List; -import java.util.stream.Collectors; - -public class ImplicitPart extends FortranNode { - public ImplicitPart(DataStore data, Collection children) { - super(data, children); - } - - public List getStatements() { - return getChildren(ImplicitPartStmt.class); - } - - @Override - public String getCode() { - return getStatements().stream() - .map(ImplicitPartStmt::getCode) - .collect(Collectors.joining(ln())); - } -} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Specification.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Specification.java index 584417b1..0179e79e 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Specification.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Specification.java @@ -3,6 +3,7 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.program.construct.DeclConstruct; +import pt.up.fe.specs.fortran.ast.nodes.stmt.ImplicitPartStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.ImportStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.UseStmt; @@ -24,8 +25,8 @@ public List getImportStmts() { return getChildrenOf(ImportStmt.class); } - public ImplicitPart getImplicitPart() { - return getChild(ImplicitPart.class); + public List getImplicitPartStmts() { + return getChildrenOf(ImplicitPartStmt.class); } public List getDeclarationConstructs() { @@ -46,7 +47,9 @@ public String getCode() { .map(ImportStmt::getCode) .collect(Collectors.joining(ln())); - var implicitPartCode = getImplicitPart().getCode(); + var implicitPartCode = getImplicitPartStmts().stream() + .map(ImplicitPartStmt::getCode) + .collect(Collectors.joining(ln())); var declConstructsCode = getDeclarationConstructs().stream() .map(DeclConstruct::getCode) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 878c98b6..def528ca 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -20,6 +20,7 @@ public enum FlangName implements StringProvider { MODULE_SUBPROGRAM, DECLARATION_CONSTRUCT, IMPLICIT_PART, + IMPLICIT_PART_STMT, EXECUTION_PART, INTERNAL_SUBPROGRAM, BLOCK, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java index 832625c5..cefae789 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java @@ -2,10 +2,7 @@ import pt.up.fe.specs.fortran.ast.FortranContext; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.program.Execution; -import pt.up.fe.specs.fortran.ast.nodes.program.FortranFile; -import pt.up.fe.specs.fortran.ast.nodes.program.InternalSubprogramPart; -import pt.up.fe.specs.fortran.ast.nodes.program.Specification; +import pt.up.fe.specs.fortran.ast.nodes.program.*; import pt.up.fe.specs.fortran.ast.nodes.program.construct.DeclConstruct; import pt.up.fe.specs.fortran.ast.nodes.program.construct.SpecConstruct; import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.Function; @@ -109,9 +106,14 @@ public void specification(Specification specification) { specification.addChildren(importStmts); } -// var implicitPart = getChild(specification, FlangName.IMPLICIT_PART); -// specification.addChild(implicitPart); - specification.addChild(factory().implicitPart(List.of())); + var implicitPartAttrs = attributes().get(attrs.getString(FlangName.IMPLICIT_PART)); + if (implicitPartAttrs.has(FlangName.IMPLICIT_PART_STMT)) { + var implicitPartIds = implicitPartAttrs.getStringList(FlangName.IMPLICIT_PART_STMT); + var implicitPartStmts = implicitPartIds.stream() + .map(this::getChild) + .toList(); + specification.addChildren(implicitPartStmts); + } if (attrs.has(FlangName.DECLARATION_CONSTRUCT)) { var rawDeclConstructs = getChildren(specification, FlangName.DECLARATION_CONSTRUCT); From b56047625c29999a73edceaeb13b0d22e4798c6a Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 6 Aug 2026 23:41:27 +0100 Subject: [PATCH 203/260] Fix implicit none statement processing --- .../fortran/parser/processors/StmtProcessors.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 4713927e..f7e41c8e 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -783,14 +783,16 @@ public void defaultImplicitStmt(DefaultImplicitStmt implicitStmt) { implicitStmt.addChildren(specs); } - public void implicitNoneStmt(ImplicitNoneStmt implicitNoneStmt) { - var attrs = attributes(implicitNoneStmt); + public void implicitNoneStmt(ImplicitNoneStmt implicitStmt) { + stmt(implicitStmt); + + var attrs = attributes(implicitStmt); var specs = attrs.getStringList(FlangName.IMPLICIT_NONE_NAME_SPEC); var specValues = specs.stream() .map(id -> attributes().get(id).getString("value")) .toList(); - implicitNoneStmt.set(ImplicitNoneStmt.EXPLICIT_TYPES, specValues.contains("Type")); - implicitNoneStmt.set(ImplicitNoneStmt.EXPLICIT_EXTERNAL, specValues.contains("External")); + implicitStmt.set(ImplicitNoneStmt.EXPLICIT_TYPES, specValues.contains("Type")); + implicitStmt.set(ImplicitNoneStmt.EXPLICIT_EXTERNAL, specValues.contains("External")); } } From e27c13c0f8d04e554be87d43d240b96c6b94d44b Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 6 Aug 2026 23:52:02 +0100 Subject: [PATCH 204/260] Fix processing of derived types --- .../fortran/parser/processors/TypeProcessors.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java index f3ae2a6f..fd44203c 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java @@ -105,16 +105,18 @@ public void typeParam(TypeParam typeParam) { var keyword = attributes().getOptionalString(typeParam, "source", FlangName.KEYWORD, FlangName.NAME); typeParam.set(TypeParam.KEYWORD, keyword); - var values = getChildren(typeParam, FlangName.TYPE_PARAM_VALUE); - typeParam.addChildren(values); + var values = getChild(typeParam, FlangName.TYPE_PARAM_VALUE); + typeParam.addChild(values); } public void derivedType(DerivedType derivedType) { var name = attributes().getString(derivedType, "source", FlangName.NAME); derivedType.set(DerivedType.NAME, name); - var typeParams = getChildren(derivedType, FlangName.TYPE_PARAM_SPEC); - derivedType.addChildren(typeParams); + if (attributes(derivedType).has(FlangName.TYPE_PARAM_SPEC)) { + var typeParams = getChildren(derivedType, FlangName.TYPE_PARAM_SPEC); + derivedType.addChildren(typeParams); + } } public void intrinsicDeclType(IntrinsicDeclType declType) { @@ -127,7 +129,7 @@ public void derivedDeclType(DerivedDeclType declType) { var kind = DeclTypeKind.valueOf(variantKey.toUpperCase()); declType.set(DerivedDeclType.KIND, kind); - var derivedType = getChild(declType, FlangName.DERIVED_TYPE_SPEC); + var derivedType = getVariantChild(declType); declType.addChild(derivedType); } From 270ceacc2b61b35201883c34f472f24bd09e2f2a Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 7 Aug 2026 12:56:16 +0100 Subject: [PATCH 205/260] Improve LetterSpec to use characters instead of ints --- .../specs/fortran/ast/nodes/specification/LetterSpec.java | 8 ++++---- .../specs/fortran/parser/processors/DeclProcessors.java | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/LetterSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/LetterSpec.java index b9790972..00058452 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/LetterSpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/LetterSpec.java @@ -9,19 +9,19 @@ import java.util.Optional; public class LetterSpec extends FortranNode { - public static final DataKey FIRST_LETTER = KeyFactory.integer("first_letter"); - public static final DataKey> LAST_LETTER = KeyFactory.optional("last_letter"); + public static final DataKey FIRST_LETTER = KeyFactory.object("first_letter", Character.class); + public static final DataKey> LAST_LETTER = KeyFactory.optional("last_letter"); public LetterSpec(DataStore data, Collection children) { super(data, children); } public char getFirstLetter() { - return (char) get(FIRST_LETTER).intValue(); + return get(FIRST_LETTER); } public Optional getLastLetter() { - return get(LAST_LETTER).map(i -> (char) i.intValue()); + return get(LAST_LETTER); } @Override diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java index 7ef1bbc0..e86b4aeb 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java @@ -129,12 +129,12 @@ public void otherGenericSpec(OtherGenericSpec spec) { } public void letterSpec(LetterSpec letterSpec) { - var firstLetter = (int) attributes(letterSpec).getString("firstLetter").charAt(0); + var firstLetter = attributes(letterSpec).getString("firstLetter").charAt(0); letterSpec.set(LetterSpec.FIRST_LETTER, firstLetter); var lastLetter = attributes(letterSpec) .getOptionalString("lastLetter") - .map(s -> (int) s.charAt(0)); + .map(s -> s.charAt(0)); letterSpec.set(LetterSpec.LAST_LETTER, lastLetter); } From 4e99116cd57daa6fb52dac069bfaae413a4048a5 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 7 Aug 2026 14:50:02 +0100 Subject: [PATCH 206/260] Create function specifier AST nodes --- .../enums/EmptyFunctionSpecKind.java | 10 +++++++ .../funcspec/DeclTypeFunctionSpec.java | 22 ++++++++++++++++ .../funcspec/EmptyFunctionSpec.java | 26 +++++++++++++++++++ .../specification/funcspec/FunctionSpec.java | 13 ++++++++++ 4 files changed, 71 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/enums/EmptyFunctionSpecKind.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/funcspec/DeclTypeFunctionSpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/funcspec/EmptyFunctionSpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/funcspec/FunctionSpec.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/enums/EmptyFunctionSpecKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/enums/EmptyFunctionSpecKind.java new file mode 100644 index 00000000..86c37ec9 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/enums/EmptyFunctionSpecKind.java @@ -0,0 +1,10 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.enums; + +public enum EmptyFunctionSpecKind { + ELEMENTAL, + IMPURE, + MODULE, + NON_RECURSIVE, + PURE, + RECURSIVE; +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/funcspec/DeclTypeFunctionSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/funcspec/DeclTypeFunctionSpec.java new file mode 100644 index 00000000..7c1bbe0f --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/funcspec/DeclTypeFunctionSpec.java @@ -0,0 +1,22 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.funcspec; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DeclType; + +import java.util.Collection; + +public class DeclTypeFunctionSpec extends FunctionSpec { + public DeclTypeFunctionSpec(DataStore data, Collection children) { + super(data, children); + } + + public DeclType getDeclType() { + return getChild(DeclType.class, 0); + } + + @Override + public String getCode() { + return getDeclType().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/funcspec/EmptyFunctionSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/funcspec/EmptyFunctionSpec.java new file mode 100644 index 00000000..6d1d4e81 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/funcspec/EmptyFunctionSpec.java @@ -0,0 +1,26 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.funcspec; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.specification.enums.EmptyFunctionSpecKind; + +import java.util.Collection; + +public class EmptyFunctionSpec extends FunctionSpec { + public static final DataKey KIND = KeyFactory.enumeration("kind", EmptyFunctionSpecKind.class); + + public EmptyFunctionSpec(DataStore data, Collection children) { + super(data, children); + } + + public EmptyFunctionSpecKind getKind() { + return get(KIND); + } + + @Override + public String getCode() { + return encase(getKind().name()); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/funcspec/FunctionSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/funcspec/FunctionSpec.java new file mode 100644 index 00000000..c8b65fd7 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/funcspec/FunctionSpec.java @@ -0,0 +1,13 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.funcspec; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +/// Maps to a PrefixSpec in the Flang AST +public abstract class FunctionSpec extends FortranNode { + public FunctionSpec(DataStore data, Collection children) { + super(data, children); + } +} From 64623b1ea8c8a6050d5cc9ed61b0d2dc1043f6de Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 7 Aug 2026 15:06:31 +0100 Subject: [PATCH 207/260] Add processors and mapping for function specifiers --- .../pt/up/fe/specs/fortran/parser/FlangName.java | 6 ++++++ .../up/fe/specs/fortran/parser/FlangToClass.java | 11 +++++++++++ .../fortran/parser/processors/DeclProcessors.java | 14 ++++++++++++++ .../fe/specs/fortran/parser/processors/Nodes.java | 4 ++++ 4 files changed, 35 insertions(+) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index def528ca..4573802d 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -46,6 +46,12 @@ public enum FlangName implements StringProvider { READ_UNFORMATTED, WRITE_FORMATTED, WRITE_UNFORMATTED, + PREFIX_SPEC, + ELEMENTAL, + IMPURE, + NON_RECURSIVE("Non_Recursive"), + PURE, + RECURSIVE, /// STMTs STATEMENT, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index d7e17625..5f2e5b6a 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -6,6 +6,9 @@ import pt.up.fe.specs.fortran.ast.nodes.alloc.ExprAllocOption; import pt.up.fe.specs.fortran.ast.nodes.alloc.VarAllocOption; import pt.up.fe.specs.fortran.ast.nodes.decl.*; +import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.DeclTypeFunctionSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.EmptyFunctionSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.FunctionSpec; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DeclType; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DerivedDeclType; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.IntrinsicDeclType; @@ -107,6 +110,14 @@ public class FlangToClass { .map(FlangName.READ_UNFORMATTED, OtherGenericSpec.class) .map(FlangName.WRITE_FORMATTED, OtherGenericSpec.class) .map(FlangName.WRITE_UNFORMATTED, OtherGenericSpec.class)); + NAME_TO_MAPPER.put(FlangName.PREFIX_SPEC, ClassMapper.caseFor(FunctionSpec.class) + .map(FlangName.DECLARATION_TYPE_SPEC, DeclTypeFunctionSpec.class) + .map(FlangName.ELEMENTAL, EmptyFunctionSpec.class) + .map(FlangName.IMPURE, EmptyFunctionSpec.class) + .map(FlangName.MODULE, EmptyFunctionSpec.class) + .map(FlangName.NON_RECURSIVE, EmptyFunctionSpec.class) + .map(FlangName.PURE, EmptyFunctionSpec.class) + .map(FlangName.RECURSIVE, EmptyFunctionSpec.class)); /// STMTs NAME_TO_MAPPER.put(FlangName.PRINT_STMT, ClassMapper.always(PrintStmt.class)); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java index e86b4aeb..55703ae3 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java @@ -3,6 +3,9 @@ import pt.up.fe.specs.fortran.ast.nodes.decl.*; import pt.up.fe.specs.fortran.ast.nodes.specification.ImplicitSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.LetterSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.enums.EmptyFunctionSpecKind; +import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.DeclTypeFunctionSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.EmptyFunctionSpec; import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.DeferredTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.ExprTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.StarTypeParamValue; @@ -145,4 +148,15 @@ public void implicitSpec(ImplicitSpec implicitSpec) { var letterSpecs = getChildren(implicitSpec, FlangName.LETTER_SPEC); implicitSpec.addChildren(letterSpecs); } + + public void declTypeFunctionSpec(DeclTypeFunctionSpec functionSpec) { + var declType = getChild(functionSpec, FlangName.DECLARATION_TYPE_SPEC); + functionSpec.addChild(declType); + } + + public void emptyFunctionSpec(EmptyFunctionSpec functionSpec) { + var variantKey = attributes(functionSpec).getVariantKey(); + var kind = EmptyFunctionSpecKind.valueOf(variantKey.toUpperCase()); + functionSpec.set(EmptyFunctionSpec.KIND, kind); + } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index d2ed604f..0987cf43 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -5,6 +5,8 @@ import pt.up.fe.specs.fortran.ast.nodes.alloc.ExprAllocOption; import pt.up.fe.specs.fortran.ast.nodes.alloc.VarAllocOption; import pt.up.fe.specs.fortran.ast.nodes.decl.*; +import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.DeclTypeFunctionSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.EmptyFunctionSpec; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DerivedDeclType; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.IntrinsicDeclType; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.StarDeclType; @@ -105,6 +107,8 @@ public Nodes(FortranJsonResult data) { processors.put(OtherGenericSpec.class, d::otherGenericSpec); processors.put(LetterSpec.class, d::letterSpec); processors.put(ImplicitSpec.class, d::implicitSpec); + processors.put(DeclTypeFunctionSpec.class, d::declTypeFunctionSpec); + processors.put(EmptyFunctionSpec.class, d::emptyFunctionSpec); var v = new VariableProcessor(data); processors.put(DataRef.class, v::dataRef); From 19a36c347b10f08f09940af4ceea40d0e37dfa2c Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 7 Aug 2026 15:18:29 +0100 Subject: [PATCH 208/260] Add prefix to function statement --- .../ast/nodes/program/subprogram/FunctionStmt.java | 11 ++++++++++- .../fortran/parser/processors/StmtProcessors.java | 5 +++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/FunctionStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/FunctionStmt.java index 242d133d..5794aa3a 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/FunctionStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/FunctionStmt.java @@ -7,6 +7,7 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.decl.NamedParameter; import pt.up.fe.specs.fortran.ast.nodes.specification.LanguageBindingSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.FunctionSpec; import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; import java.util.Collection; @@ -24,6 +25,10 @@ public FunctionStmt(DataStore data, Collection children) super(data, children); } + public List getFunctionSpecs() { + return getChildrenOf(FunctionSpec.class); + } + public String getFunctionName() { return get(FUNCTION_NAME); } @@ -42,6 +47,10 @@ public Optional getResultName() { @Override public String getStmtCode() { + var prefix = getFunctionSpecs().stream() + .map(spec -> spec.getCode() + " ") + .collect(Collectors.joining()); + var functionName = getFunctionName(); var argCode = getParameters().stream() @@ -56,6 +65,6 @@ public String getStmtCode() { .orElse(""); var suffix = resultNameCode + bindingCode; - return keyword(FortranKeyword.FUNCTION) + " " + functionName + argCode + suffix; + return prefix + keyword(FortranKeyword.FUNCTION) + " " + functionName + argCode + suffix; } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index f7e41c8e..77f8c699 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -694,6 +694,11 @@ public void namelistGroup(NamelistGroup namelistGroup) { public void functionStmt(FunctionStmt functionStmt) { stmt(functionStmt); + if (attributes(functionStmt).has("prefix")) { + var prefixSpecs = getChildren(functionStmt, "prefix"); + functionStmt.addChildren(prefixSpecs); + } + var functionNameId = attributes(functionStmt).getString("functionName"); var functionName = attributes().get(functionNameId).getString("source"); functionStmt.set(FunctionStmt.FUNCTION_NAME, functionName); From e0cb477549d7219f1fefa5746317136242d2da15 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 7 Aug 2026 19:32:52 +0100 Subject: [PATCH 209/260] Create nodes for component attributes --- .../decl/component/AccessComponentAttr.java | 26 +++++++++++++++++++ .../nodes/decl/component/ComponentAttr.java | 12 +++++++++ .../decl/component/OtherComponentAttr.java | 26 +++++++++++++++++++ .../nodes/decl/enums/ComponentAttrKind.java | 16 ++++++++++++ .../stmt/componentdef/ComponentDefStmt.java | 13 ++++++++++ .../componentdef/DataComponentDefStmt.java | 14 ++++++++++ .../nodes/type/shapes/ShapeSpecification.java | 1 + 7 files changed, 108 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/AccessComponentAttr.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/ComponentAttr.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/OtherComponentAttr.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/enums/ComponentAttrKind.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/componentdef/ComponentDefStmt.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/componentdef/DataComponentDefStmt.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/AccessComponentAttr.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/AccessComponentAttr.java new file mode 100644 index 00000000..f35d4a19 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/AccessComponentAttr.java @@ -0,0 +1,26 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl.component; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.specification.enums.AccessKind; + +import java.util.Collection; + +public class AccessComponentAttr extends ComponentAttr { + public static final DataKey ACCESS_KIND = KeyFactory.enumeration("access_kind", AccessKind.class); + + public AccessComponentAttr(DataStore data, Collection children) { + super(data, children); + } + + public AccessKind getAccessKind() { + return get(ACCESS_KIND); + } + + @Override + public String getCode() { + return encase(getAccessKind().name()); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/ComponentAttr.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/ComponentAttr.java new file mode 100644 index 00000000..bf53996b --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/ComponentAttr.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl.component; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class ComponentAttr extends FortranNode { + public ComponentAttr(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/OtherComponentAttr.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/OtherComponentAttr.java new file mode 100644 index 00000000..3bfb7a3d --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/OtherComponentAttr.java @@ -0,0 +1,26 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl.component; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.decl.enums.ComponentAttrKind; + +import java.util.Collection; + +public class OtherComponentAttr extends ComponentAttr { + public static final DataKey KIND = KeyFactory.enumeration("kind", ComponentAttrKind.class); + + public OtherComponentAttr(DataStore data, Collection children) { + super(data, children); + } + + public ComponentAttrKind getKind() { + return get(KIND); + } + + @Override + public String getCode() { + return encase(getKind().name()); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/enums/ComponentAttrKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/enums/ComponentAttrKind.java new file mode 100644 index 00000000..ee71811e --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/enums/ComponentAttrKind.java @@ -0,0 +1,16 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl.enums; + +public enum ComponentAttrKind { + ALLOCATABLE, + CONTIGUOUS, + POINTER, + + // CUDA + CONSTANT, + DEVICE, + MANAGED, + PINNED, + SHARED, + TEXTURE, + UNIFIED; +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/componentdef/ComponentDefStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/componentdef/ComponentDefStmt.java new file mode 100644 index 00000000..d27083c0 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/componentdef/ComponentDefStmt.java @@ -0,0 +1,13 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.componentdef; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; + +import java.util.Collection; + +public abstract class ComponentDefStmt extends Stmt { + public ComponentDefStmt(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/componentdef/DataComponentDefStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/componentdef/DataComponentDefStmt.java new file mode 100644 index 00000000..f7b1b51e --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/componentdef/DataComponentDefStmt.java @@ -0,0 +1,14 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.componentdef; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class DataComponentDefStmt extends ComponentDefStmt { + public DataComponentDefStmt(DataStore data, Collection children) { + super(data, children); + } + + +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/shapes/ShapeSpecification.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/shapes/ShapeSpecification.java index 9c84eb82..bd3fb5bb 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/shapes/ShapeSpecification.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/shapes/ShapeSpecification.java @@ -5,6 +5,7 @@ import java.util.Collection; +// TODO(Process-ing): Refactor shapes public abstract class ShapeSpecification extends FortranNode { public ShapeSpecification(DataStore data, Collection children) { super(data, children); From f2e8d9c1565537946c62ad787cbd2daf42c1fee8 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 7 Aug 2026 23:13:04 +0100 Subject: [PATCH 210/260] Improve nodes for shapes --- .../fortran/ast/nodes/alloc/Allocation.java | 21 +++++------- .../fortran/ast/nodes/decl/EntityDecl.java | 6 ++-- .../specification/ArraySpecification.java | 31 ----------------- .../nodes/specification/shape/ArraySpec.java | 12 +++++++ .../shape/AssumedImpliedShape.java | 26 ++++++++++++++ .../shape/AssumedRankArraySpec.java | 17 ++++++++++ .../shape/AssumedSizeArraySpec.java | 33 ++++++++++++++++++ .../shape/DeferredShapeArraySpec.java} | 21 +++++------- .../specification/shape/ExplicitShape.java | 34 +++++++++++++++++++ .../shape/ExplicitShapeArraySpec.java | 25 ++++++++++++++ .../shape/ImpliedShapeArraySpec.java | 25 ++++++++++++++ .../ast/nodes/stmt/CommonBlockObject.java | 8 ++--- .../ast/nodes/stmt/dimstmt/DimensionDecl.java | 6 ++-- .../nodes/type/attributes/DimensionSpec.java | 6 ++-- .../shapes/AllocateShapeSpecification.java | 12 ------- .../type/shapes/AssumedImpliedShapeSpec.java | 17 ---------- .../shapes/BoundedShapeSpecification.java | 25 -------------- .../shapes/ExplicitShapeSpecification.java | 16 --------- .../nodes/type/shapes/ShapeSpecification.java | 13 ------- .../fe/specs/fortran/parser/FlangToClass.java | 19 +++++------ .../processors/AttributesProcessor.java | 5 ++- .../fortran/parser/processors/Nodes.java | 17 +++++----- .../parser/processors/ShapesProcessor.java | 32 +++++++---------- .../parser/processors/StmtProcessors.java | 4 +-- 24 files changed, 235 insertions(+), 196 deletions(-) delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/ArraySpecification.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ArraySpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedImpliedShape.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedRankArraySpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedSizeArraySpec.java rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/{type/shapes/DeferredShapeSpecList.java => specification/shape/DeferredShapeArraySpec.java} (52%) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ExplicitShape.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ExplicitShapeArraySpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ImpliedShapeArraySpec.java delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/shapes/AllocateShapeSpecification.java delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/shapes/AssumedImpliedShapeSpec.java delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/shapes/BoundedShapeSpecification.java delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/shapes/ExplicitShapeSpecification.java delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/shapes/ShapeSpecification.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/Allocation.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/Allocation.java index 16c9996c..95a83043 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/Allocation.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/alloc/Allocation.java @@ -3,7 +3,7 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.expr.DataRef; -import pt.up.fe.specs.fortran.ast.nodes.type.shapes.AllocateShapeSpecification; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ExplicitShape; import java.util.Collection; import java.util.List; @@ -18,8 +18,8 @@ public DataRef getRef() { return getChild(DataRef.class); } - public List getShapes() { - return getChildrenOf(AllocateShapeSpecification.class); + public List getShapes() { + return getChildrenOf(ExplicitShape.class); } public List getOptions() { @@ -28,18 +28,13 @@ public List getOptions() { @Override public String getCode() { - StringBuilder code = new StringBuilder(); + var refCode = getRef().getCode(); - code.append(getRef().getCode()).append("("); - - code.append(getShapes() + var shapesCode = getShapes() .stream() - .map(AllocateShapeSpecification::getCode) - .collect(Collectors.joining(", ")) - ); - - code.append(")"); + .map(ExplicitShape::getCode) + .collect(Collectors.joining(", ")); - return code.toString(); + return refCode + "(" + shapesCode + ")"; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/EntityDecl.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/EntityDecl.java index a5839224..1bab4d7d 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/EntityDecl.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/EntityDecl.java @@ -4,7 +4,7 @@ import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ArraySpec; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DeclType; import java.util.Collection; @@ -35,8 +35,8 @@ public Optional getInitialization() { return getChildOf(Initialization.class); } - public Optional getArraySpec() { - return getChildOf(ArraySpecification.class); + public Optional getArraySpec() { + return getChildOf(ArraySpec.class); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/ArraySpecification.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/ArraySpecification.java deleted file mode 100644 index 8f59a7bb..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/ArraySpecification.java +++ /dev/null @@ -1,31 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.specification; - -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.type.shapes.ShapeSpecification; - -import java.util.Collection; -import java.util.List; -import java.util.stream.Collectors; - -public class ArraySpecification extends FortranNode { - public ArraySpecification(DataStore data, Collection children) { - super(data, children); - } - - private List getShapes() { - return getChildren(ShapeSpecification.class); - } - - @Override - public String getCode() { - var shapes = getShapes(); - var code = new StringBuilder(); - - code.append("("); - var shapesCode = shapes.stream().map(ShapeSpecification::getCode).collect(Collectors.joining(", ")); - code.append(shapesCode); - code.append(")"); - return code.toString(); - } -} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ArraySpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ArraySpec.java new file mode 100644 index 00000000..70647f3b --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ArraySpec.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.shape; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class ArraySpec extends FortranNode { + public ArraySpec(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedImpliedShape.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedImpliedShape.java new file mode 100644 index 00000000..ea925f70 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedImpliedShape.java @@ -0,0 +1,26 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.shape; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; + +import java.util.Collection; +import java.util.Optional; + +public class AssumedImpliedShape extends FortranNode { + public AssumedImpliedShape(DataStore data, Collection children) { + super(data, children); + } + + public Optional getLowerBound() { + return getChildTry(Expr.class, 0); + } + + @Override + public String getCode() { + var lowerBoundCode = getLowerBound() + .map(bound -> bound.getCode() + ":") + .orElse(""); + return lowerBoundCode + "*"; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedRankArraySpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedRankArraySpec.java new file mode 100644 index 00000000..70d725b7 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedRankArraySpec.java @@ -0,0 +1,17 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.shape; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class AssumedRankArraySpec extends ArraySpec { + public AssumedRankArraySpec(DataStore data, Collection children) { + super(data, children); + } + + @Override + public String getCode() { + return ".."; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedSizeArraySpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedSizeArraySpec.java new file mode 100644 index 00000000..7d18b248 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedSizeArraySpec.java @@ -0,0 +1,33 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.shape; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +public class AssumedSizeArraySpec extends ArraySpec { + public AssumedSizeArraySpec(DataStore data, Collection children) { + super(data, children); + } + + public List getExplicitShapes() { + return getChildrenOf(ExplicitShape.class); + } + + public AssumedImpliedShape getAssumedImpliedShape() { + return getChild(AssumedImpliedShape.class, getNumChildren() - 1); + } + + @Override + public String getCode() { + var explicitShapesCode = getExplicitShapes().stream() + .map(ExplicitShape::getCode) + .collect(Collectors.joining(", ")); + + var assumedImpliedShapeCode = getAssumedImpliedShape().getCode(); + + return explicitShapesCode + ", " + assumedImpliedShapeCode; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/shapes/DeferredShapeSpecList.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/DeferredShapeArraySpec.java similarity index 52% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/shapes/DeferredShapeSpecList.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/DeferredShapeArraySpec.java index dd259949..4a6e5fd4 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/shapes/DeferredShapeSpecList.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/DeferredShapeArraySpec.java @@ -1,33 +1,28 @@ -package pt.up.fe.specs.fortran.ast.nodes.type.shapes; +package pt.up.fe.specs.fortran.ast.nodes.specification.shape; import org.suikasoft.jOptions.Datakey.DataKey; import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.expr.IntLiteral; import java.util.Collection; -import java.util.Collections; - -public class DeferredShapeSpecList extends ShapeSpecification { - // DATAKEYS BEGIN +public class DeferredShapeArraySpec extends ArraySpec { /** * DeferredShapeSpecList is just a count of the colons (i.e., the rank). */ public final static DataKey RANK = KeyFactory.integer("rank"); - - // DATAKEYS END - - public DeferredShapeSpecList(DataStore data, Collection children) { + public DeferredShapeArraySpec(DataStore data, Collection children) { super(data, children); } + public int getRank() { + return get(RANK); + } + @Override public String getCode() { - var rank = get(RANK); - - return String.join(", ", Collections.nCopies(rank, ":")); + return ":" + ", :".repeat(getRank() - 1); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ExplicitShape.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ExplicitShape.java new file mode 100644 index 00000000..3d1c6517 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ExplicitShape.java @@ -0,0 +1,34 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.shape; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; + +import java.util.Collection; +import java.util.Optional; + +/* + * Translates to Flang's ExplicitShapeSpec, AllocateShapeSpec and AllocateCoshapeSpec. + */ +public class ExplicitShape extends FortranNode { + public ExplicitShape(DataStore data, Collection children) { + super(data, children); + } + + public Optional getLowerBound() { + return getChildTry(Expr.class, getNumChildren() - 2); + } + + public Expr getUpperBound() { + return getChild(Expr.class, getNumChildren() - 1); + } + + @Override + public String getCode() { + var lowerBoundCode = getLowerBound() + .map(bound -> bound.getCode() + ":") + .orElse(""); + var upperBoundCode = getUpperBound().getCode(); + return lowerBoundCode + upperBoundCode; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ExplicitShapeArraySpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ExplicitShapeArraySpec.java new file mode 100644 index 00000000..e702c3ac --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ExplicitShapeArraySpec.java @@ -0,0 +1,25 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.shape; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +public class ExplicitShapeArraySpec extends ArraySpec { + public ExplicitShapeArraySpec(DataStore data, Collection children) { + super(data, children); + } + + public List getExplicitShapes() { + return getChildren(ExplicitShape.class); + } + + @Override + public String getCode() { + return getExplicitShapes().stream() + .map(ExplicitShape::getCode) + .collect(Collectors.joining(", ")); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ImpliedShapeArraySpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ImpliedShapeArraySpec.java new file mode 100644 index 00000000..49a2362c --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ImpliedShapeArraySpec.java @@ -0,0 +1,25 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.shape; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +public class ImpliedShapeArraySpec extends ArraySpec { + public ImpliedShapeArraySpec(DataStore data, Collection children) { + super(data, children); + } + + public List getShapes() { + return getChildren(AssumedImpliedShape.class); + } + + @Override + public String getCode() { + return getShapes().stream() + .map(AssumedImpliedShape::getCode) + .collect(Collectors.joining(", ")); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonBlockObject.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonBlockObject.java index b56ceecd..d73017b4 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonBlockObject.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonBlockObject.java @@ -5,7 +5,7 @@ import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ArraySpec; import java.util.Collection; import java.util.Optional; @@ -21,14 +21,14 @@ public String getName() { return get(NAME); } - public Optional getArraySpec() { - return getChildOf(ArraySpecification.class); + public Optional getArraySpec() { + return getChildOf(ArraySpec.class); } @Override public String getCode() { var name = getName(); - var arraySpecCode = getArraySpec().map(ArraySpecification::getCode); + var arraySpecCode = getArraySpec().map(ArraySpec::getCode); return name + arraySpecCode.orElse(""); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/dimstmt/DimensionDecl.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/dimstmt/DimensionDecl.java index e2ef0d2a..2df42a12 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/dimstmt/DimensionDecl.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/dimstmt/DimensionDecl.java @@ -4,7 +4,7 @@ import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ArraySpec; import java.util.Collection; @@ -19,8 +19,8 @@ public String getName() { return get(NAME); } - public ArraySpecification getArraySpecification() { - return getChild(ArraySpecification.class); + public ArraySpec getArraySpecification() { + return getChild(ArraySpec.class); } @Override diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/DimensionSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/DimensionSpec.java index c92f4645..4421b617 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/DimensionSpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/DimensionSpec.java @@ -3,7 +3,7 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ArraySpec; import java.util.Collection; @@ -18,7 +18,7 @@ public String getCode() { return keyword(FortranKeyword.DIMENSION) + arraySpec.getCode(); } - private ArraySpecification getArraySpecification() { - return getChild(ArraySpecification.class, 0); + private ArraySpec getArraySpecification() { + return getChild(ArraySpec.class, 0); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/shapes/AllocateShapeSpecification.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/shapes/AllocateShapeSpecification.java deleted file mode 100644 index 87178398..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/shapes/AllocateShapeSpecification.java +++ /dev/null @@ -1,12 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.type.shapes; - -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; - -import java.util.Collection; - -public class AllocateShapeSpecification extends BoundedShapeSpecification { - public AllocateShapeSpecification(DataStore data, Collection children) { - super(data, children); - } -} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/shapes/AssumedImpliedShapeSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/shapes/AssumedImpliedShapeSpec.java deleted file mode 100644 index 67a7a430..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/shapes/AssumedImpliedShapeSpec.java +++ /dev/null @@ -1,17 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.type.shapes; - -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; - -import java.util.Collection; - -public class AssumedImpliedShapeSpec extends ShapeSpecification { - public AssumedImpliedShapeSpec(DataStore data, Collection children) { - super(data, children); - } - - @Override - public String getCode() { - return "*"; - } -} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/shapes/BoundedShapeSpecification.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/shapes/BoundedShapeSpecification.java deleted file mode 100644 index f49d6f6e..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/shapes/BoundedShapeSpecification.java +++ /dev/null @@ -1,25 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.type.shapes; - -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; - -import java.util.Collection; -import java.util.List; -import java.util.stream.Collectors; - -public abstract class BoundedShapeSpecification extends ShapeSpecification { - public BoundedShapeSpecification(DataStore data, Collection children) { - super(data, children); - } - - @Override - public String getCode() { - var bounds = getBounds(); - return bounds.stream().map(Expr::getCode).collect(Collectors.joining(":")); - } - - private List getBounds() { - return getChildren(Expr.class); - } -} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/shapes/ExplicitShapeSpecification.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/shapes/ExplicitShapeSpecification.java deleted file mode 100644 index 5b6fc3d8..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/shapes/ExplicitShapeSpecification.java +++ /dev/null @@ -1,16 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.type.shapes; - -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; -import pt.up.fe.specs.fortran.ast.nodes.expr.IntLiteral; - -import java.util.Collection; -import java.util.List; -import java.util.stream.Collectors; - -public class ExplicitShapeSpecification extends BoundedShapeSpecification { - public ExplicitShapeSpecification(DataStore data, Collection children) { - super(data, children); - } -} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/shapes/ShapeSpecification.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/shapes/ShapeSpecification.java deleted file mode 100644 index bd3fb5bb..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/shapes/ShapeSpecification.java +++ /dev/null @@ -1,13 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.type.shapes; - -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; - -import java.util.Collection; - -// TODO(Process-ing): Refactor shapes -public abstract class ShapeSpecification extends FortranNode { - public ShapeSpecification(DataStore data, Collection children) { - super(data, children); - } -} diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 5f2e5b6a..a8e6598a 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -6,6 +6,7 @@ import pt.up.fe.specs.fortran.ast.nodes.alloc.ExprAllocOption; import pt.up.fe.specs.fortran.ast.nodes.alloc.VarAllocOption; import pt.up.fe.specs.fortran.ast.nodes.decl.*; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ArraySpec; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.DeclTypeFunctionSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.EmptyFunctionSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.FunctionSpec; @@ -58,10 +59,9 @@ import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.KindParamLenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.LenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ParamLenSelector; -import pt.up.fe.specs.fortran.ast.nodes.type.shapes.AllocateShapeSpecification; -import pt.up.fe.specs.fortran.ast.nodes.type.shapes.AssumedImpliedShapeSpec; -import pt.up.fe.specs.fortran.ast.nodes.type.shapes.DeferredShapeSpecList; -import pt.up.fe.specs.fortran.ast.nodes.type.shapes.ExplicitShapeSpecification; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.AssumedImpliedShape; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.DeferredShapeArraySpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ExplicitShape; import pt.up.fe.specs.fortran.ast.nodes.utils.NameValue; import java.util.HashMap; @@ -268,16 +268,15 @@ public class FlangToClass { NAME_TO_MAPPER.put(FlangName.CONCURRENT_CONTROL, ClassMapper.always(ConcurrentRange.class)); /// ATTRIBUTES - NAME_TO_MAPPER.put(FlangName.ARRAY_SPEC, ClassMapper.always(ArraySpecification.class)); + NAME_TO_MAPPER.put(FlangName.ARRAY_SPEC, ClassMapper.always(ArraySpec.class)); NAME_TO_MAPPER.put(FlangName.ALLOCATABLE, ClassMapper.always(AllocatableKeyword.class)); NAME_TO_MAPPER.put(FlangName.INTENT_SPEC, ClassMapper.always(IntentSpec.class)); NAME_TO_MAPPER.put(FlangName.PARAMETER, ClassMapper.always(ParameterKeyword.class)); /// SHAPES - NAME_TO_MAPPER.put(FlangName.EXPLICIT_SHAPE_SPEC, ClassMapper.always(ExplicitShapeSpecification.class)); - NAME_TO_MAPPER.put(FlangName.DEFERRED_SHAPE_SPEC_LIST, ClassMapper.always(DeferredShapeSpecList.class)); - NAME_TO_MAPPER.put(FlangName.ALLOCATE_SHAPE_SPEC, ClassMapper.always(AllocateShapeSpecification.class)); - + NAME_TO_MAPPER.put(FlangName.EXPLICIT_SHAPE_SPEC, ClassMapper.always(ExplicitShape.class)); + NAME_TO_MAPPER.put(FlangName.ALLOCATE_SHAPE_SPEC, ClassMapper.always(ExplicitShape.class)); + NAME_TO_MAPPER.put(FlangName.DEFERRED_SHAPE_SPEC_LIST, ClassMapper.always(DeferredShapeArraySpec.class)); /// IO NAME_TO_MAPPER.put(FlangName.OPEN_STMT, ClassMapper.always(OpenStmt.class)); NAME_TO_MAPPER.put(FlangName.CONNECT_SPEC, ClassMapper.caseFor(ConnectSpec.class) @@ -343,7 +342,7 @@ public class FlangToClass { .map(FlangName.EXPR, ExprFormat.class) .map("uint64_t", LabelFormat.class) .map(FlangName.STAR, StarFormat.class)); - NAME_TO_MAPPER.put(FlangName.ASSUMED_IMPLIED_SPEC, ClassMapper.always(AssumedImpliedShapeSpec.class)); + NAME_TO_MAPPER.put(FlangName.ASSUMED_IMPLIED_SPEC, ClassMapper.always(AssumedImpliedShape.class)); /// UTILs NAME_TO_MAPPER.put(FlangName.NAME_VALUE, ClassMapper.always(NameValue.class)); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AttributesProcessor.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AttributesProcessor.java index 2a8650aa..94d14eec 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AttributesProcessor.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AttributesProcessor.java @@ -1,12 +1,11 @@ package pt.up.fe.specs.fortran.parser.processors; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ArraySpec; import pt.up.fe.specs.fortran.ast.nodes.specification.NamedConstantDef; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.IntentSpec; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.KeywordAttributeSpecifier; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.enums.IntentKind; -import pt.up.fe.specs.fortran.parser.FlangData; import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; @@ -25,7 +24,7 @@ public AttributesProcessor(FortranJsonResult data) { super(data); } - public void arraySpecification(ArraySpecification arraySpecification) { + public void arraySpecification(ArraySpec arraySpecification) { var variantKey = attributes(arraySpecification).getVariantKey(); List shapes; Optional additionalShape = Optional.empty(); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 0987cf43..328c933f 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -5,6 +5,7 @@ import pt.up.fe.specs.fortran.ast.nodes.alloc.ExprAllocOption; import pt.up.fe.specs.fortran.ast.nodes.alloc.VarAllocOption; import pt.up.fe.specs.fortran.ast.nodes.decl.*; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ArraySpec; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.DeclTypeFunctionSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.EmptyFunctionSpec; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DerivedDeclType; @@ -54,10 +55,9 @@ import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ConstLenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.KindParamLenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ParamLenSelector; -import pt.up.fe.specs.fortran.ast.nodes.type.shapes.AllocateShapeSpecification; -import pt.up.fe.specs.fortran.ast.nodes.type.shapes.AssumedImpliedShapeSpec; -import pt.up.fe.specs.fortran.ast.nodes.type.shapes.DeferredShapeSpecList; -import pt.up.fe.specs.fortran.ast.nodes.type.shapes.ExplicitShapeSpecification; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.AssumedImpliedShape; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.DeferredShapeArraySpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ExplicitShape; import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.TypeParam; import pt.up.fe.specs.fortran.ast.nodes.utils.IoUnit; import pt.up.fe.specs.fortran.ast.nodes.utils.NameValue; @@ -219,16 +219,15 @@ public Nodes(FortranJsonResult data) { processors.put(StarDeclType.class, t::starDeclType); var a = new AttributesProcessor(data); - processors.put(ArraySpecification.class, a::arraySpecification); + processors.put(ArraySpec.class, a::arraySpecification); processors.put(KeywordAttributeSpecifier.class, a::keywordSpecifier); processors.put(IntentSpec.class, a::intentSpec); processors.put(NamedConstantDef.class, a::namedConstantDef); var shapes = new ShapesProcessor(data); - processors.put(ExplicitShapeSpecification.class, shapes::explicitShapeSpec); - processors.put(DeferredShapeSpecList.class, shapes::deferredShapeSpecLis); - processors.put(AllocateShapeSpecification.class, shapes::allocateShapeSpec); - processors.put(AssumedImpliedShapeSpec.class, shapes::assumedImpliedShapeSpec); + processors.put(ExplicitShape.class, shapes::explicitShapeSpec); + processors.put(DeferredShapeArraySpec.class, shapes::deferredShapeSpecLis); + processors.put(AssumedImpliedShape.class, shapes::assumedImpliedShapeSpec); var u = new UtilsProcessors(data); processors.put(NameValue.class, u::nameValue); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ShapesProcessor.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ShapesProcessor.java index d4b042b9..59be48f1 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ShapesProcessor.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ShapesProcessor.java @@ -1,7 +1,8 @@ package pt.up.fe.specs.fortran.parser.processors; -import pt.up.fe.specs.fortran.ast.nodes.type.shapes.*; -import pt.up.fe.specs.fortran.parser.FlangName; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.AssumedImpliedShape; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.DeferredShapeArraySpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ExplicitShape; import pt.up.fe.specs.fortran.parser.FortranJsonResult; public class ShapesProcessor extends ANodeProcessor { @@ -9,29 +10,22 @@ public ShapesProcessor(FortranJsonResult data) { super(data); } - public void explicitShapeSpec(ExplicitShapeSpecification explicitShapeSpec) { - boundedShapeSpec(explicitShapeSpec); - } - - public void allocateShapeSpec(AllocateShapeSpecification allocateShapeSpec) { - boundedShapeSpec(allocateShapeSpec); - } - - public void boundedShapeSpec(BoundedShapeSpecification boundedShapeSpec) { - if (attributes(boundedShapeSpec).has("lower_bound")) { - var lower_bound = getChild(boundedShapeSpec, "lower_bound"); - boundedShapeSpec.addChild(lower_bound); + public void explicitShapeSpec(ExplicitShape explicitShapeSpec) { + if (attributes(explicitShapeSpec).has("lower_bound")) { + var lower_bound = getChild(explicitShapeSpec, "lower_bound"); + explicitShapeSpec.addChild(lower_bound); } - var upper_bound = getChild(boundedShapeSpec, "upper_bound"); - boundedShapeSpec.addChild(upper_bound); + + var upper_bound = getChild(explicitShapeSpec, "upper_bound"); + explicitShapeSpec.addChild(upper_bound); } - public void deferredShapeSpecLis(DeferredShapeSpecList deferredShapeSpecList) { + public void deferredShapeSpecLis(DeferredShapeArraySpec deferredShapeSpecList) { var numberOfColons = attributes(deferredShapeSpecList).getString("int"); - deferredShapeSpecList.set(DeferredShapeSpecList.RANK, Integer.parseInt(numberOfColons)); + deferredShapeSpecList.set(DeferredShapeArraySpec.RANK, Integer.parseInt(numberOfColons)); } - public void assumedImpliedShapeSpec(AssumedImpliedShapeSpec assumedImpliedShapeSpec) { + public void assumedImpliedShapeSpec(AssumedImpliedShape assumedImpliedShapeSpec) { } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 77f8c699..4989d995 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -11,7 +11,7 @@ import pt.up.fe.specs.fortran.ast.nodes.program.unit.EndProgramStmt; import pt.up.fe.specs.fortran.ast.nodes.program.unit.ModuleStmt; import pt.up.fe.specs.fortran.ast.nodes.program.unit.ProgramStmt; -import pt.up.fe.specs.fortran.ast.nodes.specification.ArraySpecification; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ArraySpec; import pt.up.fe.specs.fortran.ast.nodes.specification.LanguageBindingSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.NamedConstantDef; import pt.up.fe.specs.fortran.ast.nodes.specification.enums.AccessKind; @@ -111,7 +111,7 @@ public void typeDeclarationStmt(TypeDeclarationStmt typeDeclarationStmt) { if (attributes(typeDeclarationStmt).has(FlangName.ATTR_SPEC)) { var attributes = getChildren(typeDeclarationStmt, FlangName.ATTR_SPEC); var processedAttributes = attributes.stream() - .map(attr -> attr instanceof ArraySpecification + .map(attr -> attr instanceof ArraySpec ? factory().newNode(DimensionSpec.class, List.of(attr)) : attr) .toList(); From 8d06dd1de2d219a766d97708ee0444f2f1581145 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 8 Aug 2026 13:30:57 +0100 Subject: [PATCH 211/260] Add missing array spec --- .../specification/shape/AssumedShape.java | 26 +++++++++++++++++++ .../shape/AssumedShapeArraySpec.java | 25 ++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedShape.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedShapeArraySpec.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedShape.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedShape.java new file mode 100644 index 00000000..297b6d3c --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedShape.java @@ -0,0 +1,26 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.shape; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; + +import java.util.Collection; +import java.util.Optional; + +public class AssumedShape extends FortranNode { + public AssumedShape(DataStore data, Collection children) { + super(data, children); + } + + public Optional getLowerBound() { + return getChildTry(Expr.class, 0); + } + + @Override + public String getCode() { + var lowerBoundCode = getLowerBound() + .map(Expr::getCode) + .orElse(""); + return lowerBoundCode + ":"; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedShapeArraySpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedShapeArraySpec.java new file mode 100644 index 00000000..68c329c8 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedShapeArraySpec.java @@ -0,0 +1,25 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.shape; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +public class AssumedShapeArraySpec extends ArraySpec { + public AssumedShapeArraySpec(DataStore data, Collection children) { + super(data, children); + } + + public List getAssumedShapes() { + return getChildren(AssumedShape.class); + } + + @Override + public String getCode() { + return getAssumedShapes().stream() + .map(AssumedShape::getCode) + .collect(Collectors.joining(", ")); + } +} From 912543e05a075164d0c097073552265a3951036c Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 8 Aug 2026 13:34:52 +0100 Subject: [PATCH 212/260] Add mapping for new shape nodes --- .../up/fe/specs/fortran/parser/FlangName.java | 5 ++++- .../fe/specs/fortran/parser/FlangToClass.java | 21 +++++++++++++------ 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 4573802d..8e157be9 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -287,13 +287,16 @@ public enum FlangName implements StringProvider { ARRAY_SPEC, EXPLICIT_SHAPE_SPEC, ALLOCATE_SHAPE_SPEC, + ALLOCATE_COSHAPE_SPEC, + ASSUMED_SHAPE_SPEC, + ASSUMED_SIZE_SPEC, IMPLIED_SHAPE_SPEC, ALLOCATABLE, ASYNCHRONOUS, INTENT_SPEC, PARAMETER, - ASSUMED_SIZE_SPEC, ASSUMED_IMPLIED_SPEC, + ASSUMED_RANK_SPEC, // OTHER INITIALIZATION, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index a8e6598a..7e83fb64 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -6,7 +6,7 @@ import pt.up.fe.specs.fortran.ast.nodes.alloc.ExprAllocOption; import pt.up.fe.specs.fortran.ast.nodes.alloc.VarAllocOption; import pt.up.fe.specs.fortran.ast.nodes.decl.*; -import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ArraySpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.*; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.DeclTypeFunctionSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.EmptyFunctionSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.FunctionSpec; @@ -59,9 +59,6 @@ import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.KindParamLenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.LenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ParamLenSelector; -import pt.up.fe.specs.fortran.ast.nodes.specification.shape.AssumedImpliedShape; -import pt.up.fe.specs.fortran.ast.nodes.specification.shape.DeferredShapeArraySpec; -import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ExplicitShape; import pt.up.fe.specs.fortran.ast.nodes.utils.NameValue; import java.util.HashMap; @@ -268,7 +265,6 @@ public class FlangToClass { NAME_TO_MAPPER.put(FlangName.CONCURRENT_CONTROL, ClassMapper.always(ConcurrentRange.class)); /// ATTRIBUTES - NAME_TO_MAPPER.put(FlangName.ARRAY_SPEC, ClassMapper.always(ArraySpec.class)); NAME_TO_MAPPER.put(FlangName.ALLOCATABLE, ClassMapper.always(AllocatableKeyword.class)); NAME_TO_MAPPER.put(FlangName.INTENT_SPEC, ClassMapper.always(IntentSpec.class)); NAME_TO_MAPPER.put(FlangName.PARAMETER, ClassMapper.always(ParameterKeyword.class)); @@ -276,7 +272,21 @@ public class FlangToClass { /// SHAPES NAME_TO_MAPPER.put(FlangName.EXPLICIT_SHAPE_SPEC, ClassMapper.always(ExplicitShape.class)); NAME_TO_MAPPER.put(FlangName.ALLOCATE_SHAPE_SPEC, ClassMapper.always(ExplicitShape.class)); + NAME_TO_MAPPER.put(FlangName.ALLOCATE_COSHAPE_SPEC, ClassMapper.always(ExplicitShape.class)); + NAME_TO_MAPPER.put(FlangName.ASSUMED_SHAPE_SPEC, ClassMapper.always(AssumedShape.class)); + NAME_TO_MAPPER.put(FlangName.ASSUMED_IMPLIED_SPEC, ClassMapper.always(AssumedImpliedShape.class)); + NAME_TO_MAPPER.put(FlangName.ARRAY_SPEC, ClassMapper.caseFor(ArraySpec.class) + .map(FlangName.EXPLICIT_SHAPE_SPEC, ExplicitShapeArraySpec.class) + .map(FlangName.ASSUMED_SHAPE_SPEC, AssumedShapeArraySpec.class) + .ignore(FlangName.DEFERRED_SHAPE_SPEC_LIST) + .ignore(FlangName.ASSUMED_SIZE_SPEC) + .ignore(FlangName.IMPLIED_SHAPE_SPEC) + .ignore(FlangName.ASSUMED_RANK_SPEC)); NAME_TO_MAPPER.put(FlangName.DEFERRED_SHAPE_SPEC_LIST, ClassMapper.always(DeferredShapeArraySpec.class)); + NAME_TO_MAPPER.put(FlangName.ASSUMED_SIZE_SPEC, ClassMapper.always(AssumedSizeArraySpec.class)); + NAME_TO_MAPPER.put(FlangName.IMPLIED_SHAPE_SPEC, ClassMapper.always(ImpliedShapeArraySpec.class)); + NAME_TO_MAPPER.put(FlangName.ASSUMED_RANK_SPEC, ClassMapper.always(AssumedSizeArraySpec.class)); + /// IO NAME_TO_MAPPER.put(FlangName.OPEN_STMT, ClassMapper.always(OpenStmt.class)); NAME_TO_MAPPER.put(FlangName.CONNECT_SPEC, ClassMapper.caseFor(ConnectSpec.class) @@ -342,7 +352,6 @@ public class FlangToClass { .map(FlangName.EXPR, ExprFormat.class) .map("uint64_t", LabelFormat.class) .map(FlangName.STAR, StarFormat.class)); - NAME_TO_MAPPER.put(FlangName.ASSUMED_IMPLIED_SPEC, ClassMapper.always(AssumedImpliedShape.class)); /// UTILs NAME_TO_MAPPER.put(FlangName.NAME_VALUE, ClassMapper.always(NameValue.class)); From e9f4be69f379814d20bf6aff42c5e8aee54219d6 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 8 Aug 2026 13:44:50 +0100 Subject: [PATCH 213/260] Rename some shape nodes --- ...ankArraySpec.java => AssumedRankSpec.java} | 4 +-- ...izeArraySpec.java => AssumedSizeSpec.java} | 4 +-- ...eArraySpec.java => DeferredShapeSpec.java} | 4 +-- ...peArraySpec.java => ImpliedShapeSpec.java} | 4 +-- .../fe/specs/fortran/parser/FlangToClass.java | 8 ++--- .../fortran/parser/processors/Nodes.java | 6 ++-- .../parser/processors/ShapesProcessor.java | 33 +++++++++++++------ 7 files changed, 38 insertions(+), 25 deletions(-) rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/{AssumedRankArraySpec.java => AssumedRankSpec.java} (67%) rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/{AssumedSizeArraySpec.java => AssumedSizeSpec.java} (85%) rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/{DeferredShapeArraySpec.java => DeferredShapeSpec.java} (81%) rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/{ImpliedShapeArraySpec.java => ImpliedShapeSpec.java} (80%) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedRankArraySpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedRankSpec.java similarity index 67% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedRankArraySpec.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedRankSpec.java index 70d725b7..0f416d16 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedRankArraySpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedRankSpec.java @@ -5,8 +5,8 @@ import java.util.Collection; -public class AssumedRankArraySpec extends ArraySpec { - public AssumedRankArraySpec(DataStore data, Collection children) { +public class AssumedRankSpec extends ArraySpec { + public AssumedRankSpec(DataStore data, Collection children) { super(data, children); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedSizeArraySpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedSizeSpec.java similarity index 85% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedSizeArraySpec.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedSizeSpec.java index 7d18b248..f9ce1a83 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedSizeArraySpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedSizeSpec.java @@ -7,8 +7,8 @@ import java.util.List; import java.util.stream.Collectors; -public class AssumedSizeArraySpec extends ArraySpec { - public AssumedSizeArraySpec(DataStore data, Collection children) { +public class AssumedSizeSpec extends ArraySpec { + public AssumedSizeSpec(DataStore data, Collection children) { super(data, children); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/DeferredShapeArraySpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/DeferredShapeSpec.java similarity index 81% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/DeferredShapeArraySpec.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/DeferredShapeSpec.java index 4a6e5fd4..b6779b31 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/DeferredShapeArraySpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/DeferredShapeSpec.java @@ -7,13 +7,13 @@ import java.util.Collection; -public class DeferredShapeArraySpec extends ArraySpec { +public class DeferredShapeSpec extends ArraySpec { /** * DeferredShapeSpecList is just a count of the colons (i.e., the rank). */ public final static DataKey RANK = KeyFactory.integer("rank"); - public DeferredShapeArraySpec(DataStore data, Collection children) { + public DeferredShapeSpec(DataStore data, Collection children) { super(data, children); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ImpliedShapeArraySpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ImpliedShapeSpec.java similarity index 80% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ImpliedShapeArraySpec.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ImpliedShapeSpec.java index 49a2362c..a1567346 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ImpliedShapeArraySpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ImpliedShapeSpec.java @@ -7,8 +7,8 @@ import java.util.List; import java.util.stream.Collectors; -public class ImpliedShapeArraySpec extends ArraySpec { - public ImpliedShapeArraySpec(DataStore data, Collection children) { +public class ImpliedShapeSpec extends ArraySpec { + public ImpliedShapeSpec(DataStore data, Collection children) { super(data, children); } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 7e83fb64..2ddda7bf 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -282,10 +282,10 @@ public class FlangToClass { .ignore(FlangName.ASSUMED_SIZE_SPEC) .ignore(FlangName.IMPLIED_SHAPE_SPEC) .ignore(FlangName.ASSUMED_RANK_SPEC)); - NAME_TO_MAPPER.put(FlangName.DEFERRED_SHAPE_SPEC_LIST, ClassMapper.always(DeferredShapeArraySpec.class)); - NAME_TO_MAPPER.put(FlangName.ASSUMED_SIZE_SPEC, ClassMapper.always(AssumedSizeArraySpec.class)); - NAME_TO_MAPPER.put(FlangName.IMPLIED_SHAPE_SPEC, ClassMapper.always(ImpliedShapeArraySpec.class)); - NAME_TO_MAPPER.put(FlangName.ASSUMED_RANK_SPEC, ClassMapper.always(AssumedSizeArraySpec.class)); + NAME_TO_MAPPER.put(FlangName.DEFERRED_SHAPE_SPEC_LIST, ClassMapper.always(DeferredShapeSpec.class)); + NAME_TO_MAPPER.put(FlangName.ASSUMED_SIZE_SPEC, ClassMapper.always(AssumedSizeSpec.class)); + NAME_TO_MAPPER.put(FlangName.IMPLIED_SHAPE_SPEC, ClassMapper.always(ImpliedShapeSpec.class)); + NAME_TO_MAPPER.put(FlangName.ASSUMED_RANK_SPEC, ClassMapper.always(AssumedSizeSpec.class)); /// IO NAME_TO_MAPPER.put(FlangName.OPEN_STMT, ClassMapper.always(OpenStmt.class)); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 328c933f..362164a1 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -56,7 +56,7 @@ import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.KindParamLenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ParamLenSelector; import pt.up.fe.specs.fortran.ast.nodes.specification.shape.AssumedImpliedShape; -import pt.up.fe.specs.fortran.ast.nodes.specification.shape.DeferredShapeArraySpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.DeferredShapeSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ExplicitShape; import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.TypeParam; import pt.up.fe.specs.fortran.ast.nodes.utils.IoUnit; @@ -225,8 +225,8 @@ public Nodes(FortranJsonResult data) { processors.put(NamedConstantDef.class, a::namedConstantDef); var shapes = new ShapesProcessor(data); - processors.put(ExplicitShape.class, shapes::explicitShapeSpec); - processors.put(DeferredShapeArraySpec.class, shapes::deferredShapeSpecLis); + processors.put(ExplicitShape.class, shapes::explicitShape); + processors.put(DeferredShapeSpec.class, shapes::deferredShapeSpecList); processors.put(AssumedImpliedShape.class, shapes::assumedImpliedShapeSpec); var u = new UtilsProcessors(data); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ShapesProcessor.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ShapesProcessor.java index 59be48f1..c49d790c 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ShapesProcessor.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ShapesProcessor.java @@ -1,8 +1,10 @@ package pt.up.fe.specs.fortran.parser.processors; import pt.up.fe.specs.fortran.ast.nodes.specification.shape.AssumedImpliedShape; -import pt.up.fe.specs.fortran.ast.nodes.specification.shape.DeferredShapeArraySpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.AssumedShape; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.DeferredShapeSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ExplicitShape; +import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; public class ShapesProcessor extends ANodeProcessor { @@ -10,22 +12,33 @@ public ShapesProcessor(FortranJsonResult data) { super(data); } - public void explicitShapeSpec(ExplicitShape explicitShapeSpec) { - if (attributes(explicitShapeSpec).has("lower_bound")) { - var lower_bound = getChild(explicitShapeSpec, "lower_bound"); - explicitShapeSpec.addChild(lower_bound); + public void explicitShape(ExplicitShape explicitShape) { + // TODO(Process-ing): Convert the JSON properties to the camel case standard + if (attributes(explicitShape).has("lower_bound")) { + var lowerBound = getChild(explicitShape, "lower_bound"); + explicitShape.addChild(lowerBound); } - var upper_bound = getChild(explicitShapeSpec, "upper_bound"); - explicitShapeSpec.addChild(upper_bound); + var upperBound = getChild(explicitShape, "upper_bound"); + explicitShape.addChild(upperBound); } - public void deferredShapeSpecLis(DeferredShapeArraySpec deferredShapeSpecList) { - var numberOfColons = attributes(deferredShapeSpecList).getString("int"); - deferredShapeSpecList.set(DeferredShapeArraySpec.RANK, Integer.parseInt(numberOfColons)); + public void assumedShape(AssumedShape assumedShape) { + var lowerBound = getChildOptional(assumedShape, FlangName.EXPR); + lowerBound.ifPresent(assumedShape::addChild); + } + + public void assumedImpliedShape(AssumedImpliedShape assumedImpliedShape) { + var lowerBound = getChildOptional(assumedImpliedShape, FlangName.EXPR); + lowerBound.ifPresent(assumedImpliedShape::addChild); } public void assumedImpliedShapeSpec(AssumedImpliedShape assumedImpliedShapeSpec) { } + + public void deferredShapeSpecList(DeferredShapeSpec deferredShapeSpecList) { + var numberOfColons = attributes(deferredShapeSpecList).getString("int"); + deferredShapeSpecList.set(DeferredShapeSpec.RANK, Integer.parseInt(numberOfColons)); + } } From 8a94ccc7b058530f549eb2404e73214959f9c43e Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 8 Aug 2026 14:05:29 +0100 Subject: [PATCH 214/260] Add processors to new shape structure --- .../up/fe/specs/fortran/parser/FlangData.java | 11 ++++++ .../fortran/parser/processors/Nodes.java | 15 ++++---- .../parser/processors/ShapesProcessor.java | 34 ++++++++++++++----- 3 files changed, 46 insertions(+), 14 deletions(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangData.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangData.java index a14eca0f..32f78d37 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangData.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangData.java @@ -206,18 +206,29 @@ public String getVariantChildId(FortranNode node) { } public List getChildrenIds(FortranNode node, FlangName attribute) { + // TODO(Process-ing): Do this also on getStringList + // TODO(Process-ing): Make processors better use this + if (!getAttrs(node).has(attribute)) + return List.of(); + return getAttrs(node).getStringList(attribute).stream() .map(this::getChildId) .toList(); } public List getChildrenIds(String key, FlangName attribute) { + if (!getAttrs(key).has(attribute)) + return List.of(); + return getAttrs(key).getStringList(attribute).stream() .map(this::getChildId) .toList(); } public List getChildrenIds(FortranNode node, String attribute) { + if (!getAttrs(node).has(attribute)) + return List.of(); + return getAttrs(node).getStringList(attribute).stream() .map(this::getChildId) .toList(); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 362164a1..39d9b89c 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -5,7 +5,7 @@ import pt.up.fe.specs.fortran.ast.nodes.alloc.ExprAllocOption; import pt.up.fe.specs.fortran.ast.nodes.alloc.VarAllocOption; import pt.up.fe.specs.fortran.ast.nodes.decl.*; -import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ArraySpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.*; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.DeclTypeFunctionSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.EmptyFunctionSpec; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DerivedDeclType; @@ -55,9 +55,6 @@ import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ConstLenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.KindParamLenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ParamLenSelector; -import pt.up.fe.specs.fortran.ast.nodes.specification.shape.AssumedImpliedShape; -import pt.up.fe.specs.fortran.ast.nodes.specification.shape.DeferredShapeSpec; -import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ExplicitShape; import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.TypeParam; import pt.up.fe.specs.fortran.ast.nodes.utils.IoUnit; import pt.up.fe.specs.fortran.ast.nodes.utils.NameValue; @@ -226,8 +223,14 @@ public Nodes(FortranJsonResult data) { var shapes = new ShapesProcessor(data); processors.put(ExplicitShape.class, shapes::explicitShape); - processors.put(DeferredShapeSpec.class, shapes::deferredShapeSpecList); - processors.put(AssumedImpliedShape.class, shapes::assumedImpliedShapeSpec); + processors.put(AssumedShape.class, shapes::assumedShape); + processors.put(AssumedImpliedShape.class, shapes::assumedImpliedShape); + processors.put(ExplicitShapeArraySpec.class, shapes::explicitShapeArraySpec); + processors.put(AssumedShapeArraySpec.class, shapes::assumedShapeArraySpec); + processors.put(DeferredShapeSpec.class, shapes::deferredShapeSpec); + processors.put(AssumedSizeSpec.class, shapes::assumedSizeSpec); + processors.put(ImpliedShapeSpec.class, shapes::impliedShapeSpec); + processors.put(AssumedRankSpec.class, shapes::assumedRankSpec); var u = new UtilsProcessors(data); processors.put(NameValue.class, u::nameValue); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ShapesProcessor.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ShapesProcessor.java index c49d790c..9cbfe949 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ShapesProcessor.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ShapesProcessor.java @@ -1,9 +1,6 @@ package pt.up.fe.specs.fortran.parser.processors; -import pt.up.fe.specs.fortran.ast.nodes.specification.shape.AssumedImpliedShape; -import pt.up.fe.specs.fortran.ast.nodes.specification.shape.AssumedShape; -import pt.up.fe.specs.fortran.ast.nodes.specification.shape.DeferredShapeSpec; -import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ExplicitShape; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.*; import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; @@ -33,12 +30,33 @@ public void assumedImpliedShape(AssumedImpliedShape assumedImpliedShape) { lowerBound.ifPresent(assumedImpliedShape::addChild); } - public void assumedImpliedShapeSpec(AssumedImpliedShape assumedImpliedShapeSpec) { + public void explicitShapeArraySpec(ExplicitShapeArraySpec arraySpec) { + var explicitShapes = getChildren(arraySpec, FlangName.EXPLICIT_SHAPE_SPEC); + arraySpec.addChildren(explicitShapes); + } + + public void assumedShapeArraySpec(AssumedShapeArraySpec arraySpec) { + var assumedShapes = getChildren(arraySpec, FlangName.ASSUMED_SHAPE_SPEC); + arraySpec.addChildren(assumedShapes); + } + public void deferredShapeSpec(DeferredShapeSpec deferredShapeSpec) { + var numberOfColons = attributes(deferredShapeSpec).getString("int"); + deferredShapeSpec.set(DeferredShapeSpec.RANK, Integer.parseInt(numberOfColons)); } - public void deferredShapeSpecList(DeferredShapeSpec deferredShapeSpecList) { - var numberOfColons = attributes(deferredShapeSpecList).getString("int"); - deferredShapeSpecList.set(DeferredShapeSpec.RANK, Integer.parseInt(numberOfColons)); + public void assumedSizeSpec(AssumedSizeSpec assumedSizeSpec) { + var explicitShapes = getChildren(assumedSizeSpec, FlangName.EXPLICIT_SHAPE_SPEC); + assumedSizeSpec.addChildren(explicitShapes); + + var assumedImpliedShape = getChild(assumedSizeSpec, FlangName.ASSUMED_IMPLIED_SPEC); + assumedSizeSpec.addChild(assumedImpliedShape); } + + public void impliedShapeSpec(ImpliedShapeSpec impliedShapeSpec) { + var assumedImpliedShapes = getChildren(impliedShapeSpec, FlangName.ASSUMED_IMPLIED_SPEC); + impliedShapeSpec.addChildren(assumedImpliedShapes); + } + + public void assumedRankSpec(AssumedRankSpec ignoredSpec) {} } From fa982d0a28fddf4e57d060b3ea40cbdf10516cc7 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 8 Aug 2026 14:31:03 +0100 Subject: [PATCH 215/260] Fix array spec code generation --- .../fortran/ast/nodes/specification/shape/AssumedRankSpec.java | 2 +- .../ast/nodes/specification/shape/AssumedShapeArraySpec.java | 2 +- .../fortran/ast/nodes/specification/shape/AssumedSizeSpec.java | 2 +- .../ast/nodes/specification/shape/DeferredShapeSpec.java | 2 +- .../ast/nodes/specification/shape/ExplicitShapeArraySpec.java | 2 +- .../fortran/ast/nodes/specification/shape/ImpliedShapeSpec.java | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedRankSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedRankSpec.java index 0f416d16..55e6d610 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedRankSpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedRankSpec.java @@ -12,6 +12,6 @@ public AssumedRankSpec(DataStore data, Collection childre @Override public String getCode() { - return ".."; + return "(..)"; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedShapeArraySpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedShapeArraySpec.java index 68c329c8..b6fa77e9 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedShapeArraySpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedShapeArraySpec.java @@ -20,6 +20,6 @@ public List getAssumedShapes() { public String getCode() { return getAssumedShapes().stream() .map(AssumedShape::getCode) - .collect(Collectors.joining(", ")); + .collect(Collectors.joining(", ", "(", ")")); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedSizeSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedSizeSpec.java index f9ce1a83..2562f912 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedSizeSpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/AssumedSizeSpec.java @@ -28,6 +28,6 @@ public String getCode() { var assumedImpliedShapeCode = getAssumedImpliedShape().getCode(); - return explicitShapesCode + ", " + assumedImpliedShapeCode; + return "(" + explicitShapesCode + ", " + assumedImpliedShapeCode + ")"; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/DeferredShapeSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/DeferredShapeSpec.java index b6779b31..e8e3a210 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/DeferredShapeSpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/DeferredShapeSpec.java @@ -23,6 +23,6 @@ public int getRank() { @Override public String getCode() { - return ":" + ", :".repeat(getRank() - 1); + return "(:" + ", :".repeat(getRank() - 1) + ")"; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ExplicitShapeArraySpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ExplicitShapeArraySpec.java index e702c3ac..6deacbdc 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ExplicitShapeArraySpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ExplicitShapeArraySpec.java @@ -20,6 +20,6 @@ public List getExplicitShapes() { public String getCode() { return getExplicitShapes().stream() .map(ExplicitShape::getCode) - .collect(Collectors.joining(", ")); + .collect(Collectors.joining(", ", "(", ")")); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ImpliedShapeSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ImpliedShapeSpec.java index a1567346..99788317 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ImpliedShapeSpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ImpliedShapeSpec.java @@ -20,6 +20,6 @@ public List getShapes() { public String getCode() { return getShapes().stream() .map(AssumedImpliedShape::getCode) - .collect(Collectors.joining(", ")); + .collect(Collectors.joining(", ", "(", ")")); } } From bc08f18ebd98d6541825313ecfeb8cd2d3d140c9 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 8 Aug 2026 14:48:33 +0100 Subject: [PATCH 216/260] Add coarray specifier AST nodes --- .../specification/coshape/CoarraySpec.java | 12 ++++++ .../coshape/DeferredCoshapeSpec.java | 28 ++++++++++++++ .../coshape/ExplicitCoshapeSpec.java | 38 +++++++++++++++++++ 3 files changed, 78 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/coshape/CoarraySpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/coshape/DeferredCoshapeSpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/coshape/ExplicitCoshapeSpec.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/coshape/CoarraySpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/coshape/CoarraySpec.java new file mode 100644 index 00000000..40a41b62 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/coshape/CoarraySpec.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.coshape; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class CoarraySpec extends FortranNode { + public CoarraySpec(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/coshape/DeferredCoshapeSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/coshape/DeferredCoshapeSpec.java new file mode 100644 index 00000000..e5df44db --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/coshape/DeferredCoshapeSpec.java @@ -0,0 +1,28 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.coshape; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class DeferredCoshapeSpec extends CoarraySpec { + /** + * Defines the number of colons in the specification + */ + public static final DataKey RANK = KeyFactory.integer("rank"); + + public DeferredCoshapeSpec(DataStore data, Collection children) { + super(data, children); + } + + public int getRank() { + return get(RANK); + } + + @Override + public String getCode() { + return "[:" + ", :".repeat(getRank() - 1) + "]"; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/coshape/ExplicitCoshapeSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/coshape/ExplicitCoshapeSpec.java new file mode 100644 index 00000000..0a2e0bfa --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/coshape/ExplicitCoshapeSpec.java @@ -0,0 +1,38 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.coshape; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ExplicitShape; + +import java.util.Collection; +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +public class ExplicitCoshapeSpec extends CoarraySpec { + public ExplicitCoshapeSpec(DataStore data, Collection children) { + super(data, children); + } + + public List getExplicitShapes() { + return getChildrenOf(ExplicitShape.class); + } + + public Optional getLastLowerBound() { + return getChildTry(Expr.class, getNumChildren() - 1); + } + + @Override + public String getCode() { + var explicitShapesCode = getExplicitShapes().stream() + .map(shape -> shape.getCode() + ", ") + .collect(Collectors.joining()); + + var lastLowerBoundCode = getLastLowerBound() + .map(lowerBound -> lowerBound.getCode() + ":") + .orElse(""); + + return "[" + explicitShapesCode + lastLowerBoundCode + "*]"; + } +} From 296a8778f27a9cbae5efc79c73b56b6349250005 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 8 Aug 2026 14:54:26 +0100 Subject: [PATCH 217/260] Add missing component attribute nodes --- .../fe/specs/fortran/ast/FortranKeyword.java | 1 + .../decl/component/CodimComponentAttr.java | 23 +++++++++++++++++++ .../component/DeferredDimComponentAttr.java | 23 +++++++++++++++++++ .../decl/component/DimComponentAttr.java | 23 +++++++++++++++++++ .../component/ExplicitDimComponentAttr.java | 23 +++++++++++++++++++ 5 files changed, 93 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/CodimComponentAttr.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/DeferredDimComponentAttr.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/DimComponentAttr.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/ExplicitDimComponentAttr.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java index 050edce7..3db41ce5 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -81,6 +81,7 @@ public enum FortranKeyword { ALL, IMPLICIT, TYPE, + CODIMENSION, OMP; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/CodimComponentAttr.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/CodimComponentAttr.java new file mode 100644 index 00000000..51804a9e --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/CodimComponentAttr.java @@ -0,0 +1,23 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl.component; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.specification.coshape.CoarraySpec; + +import java.util.Collection; + +public class CodimComponentAttr extends ComponentAttr { + public CodimComponentAttr(DataStore data, Collection children) { + super(data, children); + } + + public CoarraySpec getCoarraySpec() { + return getChild(CoarraySpec.class, 0); + } + + @Override + public String getCode() { + return keyword(FortranKeyword.CODIMENSION) + getCoarraySpec().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/DeferredDimComponentAttr.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/DeferredDimComponentAttr.java new file mode 100644 index 00000000..7be5f797 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/DeferredDimComponentAttr.java @@ -0,0 +1,23 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl.component; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ArraySpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.DeferredShapeSpec; + +import java.util.Collection; + +public class DeferredDimComponentAttr extends DimComponentAttr { + public DeferredDimComponentAttr(DataStore data, Collection children) { + super(data, children); + } + + public DeferredShapeSpec getDeferredShapeSpec() { + return getChild(DeferredShapeSpec.class, 0); + } + + @Override + protected ArraySpec getArraySpec() { + return getDeferredShapeSpec(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/DimComponentAttr.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/DimComponentAttr.java new file mode 100644 index 00000000..5873a40d --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/DimComponentAttr.java @@ -0,0 +1,23 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl.component; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ArraySpec; + +import java.util.Collection; + +public abstract class DimComponentAttr extends ComponentAttr { + public DimComponentAttr(DataStore data, Collection children) { + super(data, children); + } + + protected ArraySpec getArraySpec() { + return getChild(ArraySpec.class, 0); + } + + @Override + public String getCode() { + return keyword(FortranKeyword.DIMENSION) + getArraySpec().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/ExplicitDimComponentAttr.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/ExplicitDimComponentAttr.java new file mode 100644 index 00000000..9ed29c2c --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/ExplicitDimComponentAttr.java @@ -0,0 +1,23 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl.component; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ArraySpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ExplicitShapeArraySpec; + +import java.util.Collection; + +public class ExplicitDimComponentAttr extends DimComponentAttr { + public ExplicitDimComponentAttr(DataStore data, Collection children) { + super(data, children); + } + + public ExplicitShapeArraySpec getExplicitShapeArraySpec() { + return getChild(ExplicitShapeArraySpec.class, 0); + } + + @Override + protected ArraySpec getArraySpec() { + return getExplicitShapeArraySpec(); + } +} From 1a2675aa7225e2c5e35bf038c0694de22dbef676 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 8 Aug 2026 15:25:07 +0100 Subject: [PATCH 218/260] Improve component attribute hierarchy --- .../component/DeferredDimComponentAttr.java | 23 ------------------- .../component/ExplicitDimComponentAttr.java | 23 ------------------- .../{ => attr}/AccessComponentAttr.java | 2 +- .../{ => attr}/CodimComponentAttr.java | 2 +- .../component/{ => attr}/ComponentAttr.java | 2 +- .../{ => attr}/DimComponentAttr.java | 10 ++++---- .../{ => attr}/OtherComponentAttr.java | 2 +- .../shape/ComponentArraySpec.java | 12 ++++++++++ .../shape/DeferredShapeSpec.java | 2 +- .../shape/ExplicitShapeArraySpec.java | 2 +- 10 files changed, 23 insertions(+), 57 deletions(-) delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/DeferredDimComponentAttr.java delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/ExplicitDimComponentAttr.java rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/{ => attr}/AccessComponentAttr.java (92%) rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/{ => attr}/CodimComponentAttr.java (91%) rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/{ => attr}/ComponentAttr.java (83%) rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/{ => attr}/DimComponentAttr.java (60%) rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/{ => attr}/OtherComponentAttr.java (92%) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ComponentArraySpec.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/DeferredDimComponentAttr.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/DeferredDimComponentAttr.java deleted file mode 100644 index 7be5f797..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/DeferredDimComponentAttr.java +++ /dev/null @@ -1,23 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.decl.component; - -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ArraySpec; -import pt.up.fe.specs.fortran.ast.nodes.specification.shape.DeferredShapeSpec; - -import java.util.Collection; - -public class DeferredDimComponentAttr extends DimComponentAttr { - public DeferredDimComponentAttr(DataStore data, Collection children) { - super(data, children); - } - - public DeferredShapeSpec getDeferredShapeSpec() { - return getChild(DeferredShapeSpec.class, 0); - } - - @Override - protected ArraySpec getArraySpec() { - return getDeferredShapeSpec(); - } -} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/ExplicitDimComponentAttr.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/ExplicitDimComponentAttr.java deleted file mode 100644 index 9ed29c2c..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/ExplicitDimComponentAttr.java +++ /dev/null @@ -1,23 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.decl.component; - -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ArraySpec; -import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ExplicitShapeArraySpec; - -import java.util.Collection; - -public class ExplicitDimComponentAttr extends DimComponentAttr { - public ExplicitDimComponentAttr(DataStore data, Collection children) { - super(data, children); - } - - public ExplicitShapeArraySpec getExplicitShapeArraySpec() { - return getChild(ExplicitShapeArraySpec.class, 0); - } - - @Override - protected ArraySpec getArraySpec() { - return getExplicitShapeArraySpec(); - } -} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/AccessComponentAttr.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/attr/AccessComponentAttr.java similarity index 92% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/AccessComponentAttr.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/attr/AccessComponentAttr.java index f35d4a19..45ebc5eb 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/AccessComponentAttr.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/attr/AccessComponentAttr.java @@ -1,4 +1,4 @@ -package pt.up.fe.specs.fortran.ast.nodes.decl.component; +package pt.up.fe.specs.fortran.ast.nodes.decl.component.attr; import org.suikasoft.jOptions.Datakey.DataKey; import org.suikasoft.jOptions.Datakey.KeyFactory; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/CodimComponentAttr.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/attr/CodimComponentAttr.java similarity index 91% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/CodimComponentAttr.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/attr/CodimComponentAttr.java index 51804a9e..025a69f6 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/CodimComponentAttr.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/attr/CodimComponentAttr.java @@ -1,4 +1,4 @@ -package pt.up.fe.specs.fortran.ast.nodes.decl.component; +package pt.up.fe.specs.fortran.ast.nodes.decl.component.attr; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.FortranKeyword; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/ComponentAttr.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/attr/ComponentAttr.java similarity index 83% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/ComponentAttr.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/attr/ComponentAttr.java index bf53996b..ea76620c 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/ComponentAttr.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/attr/ComponentAttr.java @@ -1,4 +1,4 @@ -package pt.up.fe.specs.fortran.ast.nodes.decl.component; +package pt.up.fe.specs.fortran.ast.nodes.decl.component.attr; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/DimComponentAttr.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/attr/DimComponentAttr.java similarity index 60% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/DimComponentAttr.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/attr/DimComponentAttr.java index 5873a40d..719677b4 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/DimComponentAttr.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/attr/DimComponentAttr.java @@ -1,19 +1,19 @@ -package pt.up.fe.specs.fortran.ast.nodes.decl.component; +package pt.up.fe.specs.fortran.ast.nodes.decl.component.attr; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ArraySpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ComponentArraySpec; import java.util.Collection; -public abstract class DimComponentAttr extends ComponentAttr { +public class DimComponentAttr extends ComponentAttr { public DimComponentAttr(DataStore data, Collection children) { super(data, children); } - protected ArraySpec getArraySpec() { - return getChild(ArraySpec.class, 0); + protected ComponentArraySpec getArraySpec() { + return getChild(ComponentArraySpec.class, 0); } @Override diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/OtherComponentAttr.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/attr/OtherComponentAttr.java similarity index 92% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/OtherComponentAttr.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/attr/OtherComponentAttr.java index 3bfb7a3d..168aa63e 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/OtherComponentAttr.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/attr/OtherComponentAttr.java @@ -1,4 +1,4 @@ -package pt.up.fe.specs.fortran.ast.nodes.decl.component; +package pt.up.fe.specs.fortran.ast.nodes.decl.component.attr; import org.suikasoft.jOptions.Datakey.DataKey; import org.suikasoft.jOptions.Datakey.KeyFactory; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ComponentArraySpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ComponentArraySpec.java new file mode 100644 index 00000000..675dffd0 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ComponentArraySpec.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.shape; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class ComponentArraySpec extends ArraySpec { + public ComponentArraySpec(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/DeferredShapeSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/DeferredShapeSpec.java index e8e3a210..4df6e0dc 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/DeferredShapeSpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/DeferredShapeSpec.java @@ -7,7 +7,7 @@ import java.util.Collection; -public class DeferredShapeSpec extends ArraySpec { +public class DeferredShapeSpec extends ComponentArraySpec { /** * DeferredShapeSpecList is just a count of the colons (i.e., the rank). */ diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ExplicitShapeArraySpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ExplicitShapeArraySpec.java index 6deacbdc..cb8f1cfc 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ExplicitShapeArraySpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/shape/ExplicitShapeArraySpec.java @@ -7,7 +7,7 @@ import java.util.List; import java.util.stream.Collectors; -public class ExplicitShapeArraySpec extends ArraySpec { +public class ExplicitShapeArraySpec extends ComponentArraySpec { public ExplicitShapeArraySpec(DataStore data, Collection children) { super(data, children); } From 4a78da7f55fca53d88a925549c2b612886af472d Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 8 Aug 2026 16:12:19 +0100 Subject: [PATCH 219/260] Restructure len selector hierarchy to distinguish char length --- .../type/lenselector/CharLenSelector.java | 12 ++++++++++ .../type/lenselector/ConstLenSelector.java | 2 +- .../lenselector/ParamCharLenSelector.java | 24 +++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/CharLenSelector.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/ParamCharLenSelector.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/CharLenSelector.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/CharLenSelector.java new file mode 100644 index 00000000..77ab3a0b --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/CharLenSelector.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.type.lenselector; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class CharLenSelector extends LenSelector { + public CharLenSelector(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/ConstLenSelector.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/ConstLenSelector.java index 8abb643c..a4ff39c9 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/ConstLenSelector.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/ConstLenSelector.java @@ -7,7 +7,7 @@ import java.util.Collection; -public class ConstLenSelector extends LenSelector { +public class ConstLenSelector extends CharLenSelector { public static final DataKey LENGTH = KeyFactory.longInt("length"); public ConstLenSelector(DataStore data, Collection children) { diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/ParamCharLenSelector.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/ParamCharLenSelector.java new file mode 100644 index 00000000..9662c2b6 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/ParamCharLenSelector.java @@ -0,0 +1,24 @@ +package pt.up.fe.specs.fortran.ast.nodes.type.lenselector; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.TypeParamValue; + +import java.util.Collection; + +public class ParamCharLenSelector extends LenSelector { + public ParamCharLenSelector(DataStore data, Collection children) { + super(data, children); + } + + public TypeParamValue getLength() { + return getChild(TypeParamValue.class, 0); + } + + @Override + public String getCode() { + var lengthCode = getLength().getCode(); + + return "*(" + lengthCode + ")"; + } +} From e39e2b87d0fca1f50b0ac5cb9324cec7bc339627 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 8 Aug 2026 16:16:14 +0100 Subject: [PATCH 220/260] Add processors to new length selector --- .../ast/nodes/type/lenselector/ParamCharLenSelector.java | 2 +- .../src/pt/up/fe/specs/fortran/parser/FlangToClass.java | 9 +++------ .../pt/up/fe/specs/fortran/parser/processors/Nodes.java | 2 ++ .../specs/fortran/parser/processors/TypeProcessors.java | 7 ++++++- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/ParamCharLenSelector.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/ParamCharLenSelector.java index 9662c2b6..3572ce51 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/ParamCharLenSelector.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/lenselector/ParamCharLenSelector.java @@ -6,7 +6,7 @@ import java.util.Collection; -public class ParamCharLenSelector extends LenSelector { +public class ParamCharLenSelector extends CharLenSelector { public ParamCharLenSelector(DataStore data, Collection children) { super(data, children); } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 2ddda7bf..64d47bfc 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -14,6 +14,7 @@ import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DerivedDeclType; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.IntrinsicDeclType; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.StarDeclType; +import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.*; import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.*; import pt.up.fe.specs.fortran.ast.nodes.expr.*; import pt.up.fe.specs.fortran.ast.nodes.io.*; @@ -55,10 +56,6 @@ import pt.up.fe.specs.fortran.ast.nodes.type.attributes.AllocatableKeyword; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.IntentSpec; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.ParameterKeyword; -import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ConstLenSelector; -import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.KindParamLenSelector; -import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.LenSelector; -import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ParamLenSelector; import pt.up.fe.specs.fortran.ast.nodes.utils.NameValue; import java.util.HashMap; @@ -239,8 +236,8 @@ public class FlangToClass { NAME_TO_MAPPER.put(FlangName.CHARACTER, ClassMapper.always(CharacterType.class)); NAME_TO_MAPPER.put(FlangName.REAL, ClassMapper.always(RealType.class)); NAME_TO_MAPPER.put(FlangName.COMPLEX, ClassMapper.always(ComplexType.class)); - NAME_TO_MAPPER.put(FlangName.CHAR_LENGTH, ClassMapper.caseFor(LenSelector.class) - .map(FlangName.TYPE_PARAM_VALUE, ParamLenSelector.class) + NAME_TO_MAPPER.put(FlangName.CHAR_LENGTH, ClassMapper.caseFor(CharLenSelector.class) + .map(FlangName.TYPE_PARAM_VALUE, ParamCharLenSelector.class) .map("uint64_t", ConstLenSelector.class)); NAME_TO_MAPPER.put(FlangName.LENGTH_SELECTOR, ClassMapper.caseFor(LenSelector.class) .map(FlangName.TYPE_PARAM_VALUE, ParamLenSelector.class) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 39d9b89c..0c1e36fe 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -11,6 +11,7 @@ import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DerivedDeclType; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.IntrinsicDeclType; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.StarDeclType; +import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ParamCharLenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.DeferredTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.ExprTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.StarTypeParamValue; @@ -205,6 +206,7 @@ public Nodes(FortranJsonResult data) { processors.put(DoublePrecisionType.class, t::doublePrecisionType); processors.put(CharacterType.class, t::characterType); processors.put(ConstLenSelector.class, t::constLenSelector); + processors.put(ParamCharLenSelector.class, t::paramCharLenSelector); processors.put(ParamLenSelector.class, t::paramLenSelector); processors.put(KindParamLenSelector.class, t::kindParamLenSelector); processors.put(RealType.class, t::realType); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java index fd44203c..dee0b0d3 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/TypeProcessors.java @@ -8,6 +8,7 @@ import pt.up.fe.specs.fortran.ast.nodes.type.enums.DeclTypeKind; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ConstLenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.KindParamLenSelector; +import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ParamCharLenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ParamLenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.TypeParam; import pt.up.fe.specs.fortran.parser.FlangName; @@ -74,11 +75,15 @@ public void realType(RealType realType) { } public void constLenSelector(ConstLenSelector selector) { - System.out.println(attributes(selector)); var length = attributes().getString(selector, "uint64_t"); selector.set(ConstLenSelector.LENGTH, Long.parseLong(length)); } + public void paramCharLenSelector(ParamCharLenSelector selector) { + var param = getChild(selector, FlangName.TYPE_PARAM_VALUE); + selector.addChild(param); + } + public void paramLenSelector(ParamLenSelector selector) { var param = getChild(selector, FlangName.TYPE_PARAM_VALUE); selector.addChild(param); From af13e2d45a449b00bb3a5f8bd2b91de183cb6609 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 8 Aug 2026 16:26:45 +0100 Subject: [PATCH 221/260] Add data component definition statement node --- .../nodes/decl/component/ComponentDecl.java | 54 +++++++++++++++++++ .../componentdef/DataComponentDefStmt.java | 32 ++++++++++- 2 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/ComponentDecl.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/ComponentDecl.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/ComponentDecl.java new file mode 100644 index 00000000..da57f531 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/ComponentDecl.java @@ -0,0 +1,54 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl.component; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.decl.Initialization; +import pt.up.fe.specs.fortran.ast.nodes.specification.coshape.CoarraySpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ComponentArraySpec; +import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.CharLenSelector; +import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.LenSelector; + +import java.util.Collection; +import java.util.Optional; + +public class ComponentDecl extends FortranNode { + public static final DataKey COMPONENT_NAME = KeyFactory.string("component_name"); + + public ComponentDecl(DataStore data, Collection children) { + super(data, children); + } + + public String getComponentName() { + return get(COMPONENT_NAME); + } + + public Optional getArraySpec() { + return getChildOf(ComponentArraySpec.class); + } + + public Optional getCoarraySpec() { + return getChildOf(CoarraySpec.class); + } + + public Optional getLenSelector() { + return getChildOf(CharLenSelector.class); + } + + public Optional getInitialization() { + return getChildOf(Initialization.class); + } + + @Override + public String getCode() { + var name = getComponentName(); + + var arraySpecCode = getArraySpec().map(ComponentArraySpec::getCode).orElse(""); + var coarraySpecCode = getCoarraySpec().map(CoarraySpec::getCode).orElse(""); + var lenSelectorCode = getLenSelector().map(LenSelector::getCode).orElse(""); + var initializationCode = getInitialization().map(Initialization::getCode).orElse(""); + + return name + arraySpecCode + coarraySpecCode + lenSelectorCode + initializationCode; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/componentdef/DataComponentDefStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/componentdef/DataComponentDefStmt.java index f7b1b51e..be63a889 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/componentdef/DataComponentDefStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/componentdef/DataComponentDefStmt.java @@ -2,13 +2,43 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.decl.component.ComponentDecl; +import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.ComponentAttr; +import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DeclType; import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; public class DataComponentDefStmt extends ComponentDefStmt { public DataComponentDefStmt(DataStore data, Collection children) { super(data, children); } - + public DeclType getDeclType() { + return getChild(DeclType.class, 0); + } + + public List getAttrs() { + return getChildrenOf(ComponentAttr.class); + } + + public List getDecls() { + return getChildrenOf(ComponentDecl.class); + } + + @Override + public String getStmtCode() { + var declTypeCode = getDeclType().getCode(); + + var attrsCode = getAttrs().stream() + .map(attr -> ", " + attr.getCode()) + .collect(Collectors.joining()); + + var declsCode = getDecls().stream() + .map(ComponentDecl::getCode) + .collect(Collectors.joining(", ")); + + return declTypeCode + attrsCode + " :: " + declsCode; + } } From 2eb138b3d1676100c8c7fc029ca5e471420303bc Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 8 Aug 2026 17:14:40 +0100 Subject: [PATCH 222/260] Create AST nodes for derived type definition --- .../nodes/specification/DerivedTypeDef.java | 69 +++++++++++++++++++ .../ComponentDefStmt.java | 2 +- .../DataComponentDefStmt.java | 2 +- .../nodes/stmt/typedef/DerivedTypeStmt.java | 13 ++++ .../ast/nodes/stmt/typedef/EndTypeStmt.java | 13 ++++ .../stmt/typedef/PrivateOrSequenceStmt.java | 14 ++++ .../stmt/typedef/TypeBoundProcedurePart.java | 13 ++++ .../nodes/stmt/typedef/TypeParamDefStmt.java | 14 ++++ 8 files changed, 138 insertions(+), 2 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/DerivedTypeDef.java rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/{componentdef => typedef}/ComponentDefStmt.java (86%) rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/{componentdef => typedef}/DataComponentDefStmt.java (95%) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/DerivedTypeStmt.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/EndTypeStmt.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/PrivateOrSequenceStmt.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/TypeBoundProcedurePart.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/TypeParamDefStmt.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/DerivedTypeDef.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/DerivedTypeDef.java new file mode 100644 index 00000000..e38e1e5c --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/DerivedTypeDef.java @@ -0,0 +1,69 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.program.construct.SpecConstruct; +import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.*; + +import java.util.Collection; +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +public class DerivedTypeDef extends SpecConstruct { + public DerivedTypeDef(DataStore data, Collection children) { + super(data, children); + } + + public DerivedTypeStmt getDerivedTypeStmt() { + return getChild(DerivedTypeStmt.class, 0); + } + + public List getTypeParamDefStmts() { + return getChildrenOf(TypeParamDefStmt.class); + } + + public List getPrivateOrSequenceStmts() { + return getChildrenOf(PrivateOrSequenceStmt.class); + } + + public List getComponentDefStmts() { + return getChildrenOf(ComponentDefStmt.class); + } + + public Optional getTypeBoundProcedurePart() { + return getChildTry(TypeBoundProcedurePart.class, getNumChildren() - 2); + } + + public EndTypeStmt getEndTypeStmt() { + return getChild(EndTypeStmt.class, getNumChildren() - 1); + } + + @Override + public String getCode() { + var derivedTypeStmtCode = getDerivedTypeStmt().getCode(); + + var typeParamDefStmtsCode = getTypeParamDefStmts().stream() + .map(stmt -> indent(stmt.getCode()) + ln()) + .collect(Collectors.joining()); + + var privateOrSequenceStmtsCode = getPrivateOrSequenceStmts().stream() + .map(stmt -> indent(stmt.getCode()) + ln()) + .collect(Collectors.joining()); + + var componentDefStmtsCode = getComponentDefStmts().stream() + .map(stmt -> indent(stmt.getCode()) + ln()) + .collect(Collectors.joining()); + + var typeBoundProcedurePart = getTypeBoundProcedurePart() + .map(part -> part.getCode() + ln()) + .orElse(""); + + var endDerivedTypeStmtCode = getEndTypeStmt().getCode(); + + return derivedTypeStmtCode + ln() + + typeParamDefStmtsCode + privateOrSequenceStmtsCode + componentDefStmtsCode + + typeBoundProcedurePart + + endDerivedTypeStmtCode; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/componentdef/ComponentDefStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/ComponentDefStmt.java similarity index 86% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/componentdef/ComponentDefStmt.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/ComponentDefStmt.java index d27083c0..26469c7d 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/componentdef/ComponentDefStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/ComponentDefStmt.java @@ -1,4 +1,4 @@ -package pt.up.fe.specs.fortran.ast.nodes.stmt.componentdef; +package pt.up.fe.specs.fortran.ast.nodes.stmt.typedef; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/componentdef/DataComponentDefStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/DataComponentDefStmt.java similarity index 95% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/componentdef/DataComponentDefStmt.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/DataComponentDefStmt.java index be63a889..dff3d5b0 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/componentdef/DataComponentDefStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/DataComponentDefStmt.java @@ -1,4 +1,4 @@ -package pt.up.fe.specs.fortran.ast.nodes.stmt.componentdef; +package pt.up.fe.specs.fortran.ast.nodes.stmt.typedef; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/DerivedTypeStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/DerivedTypeStmt.java new file mode 100644 index 00000000..c5216d8c --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/DerivedTypeStmt.java @@ -0,0 +1,13 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.typedef; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; + +import java.util.Collection; + +public class DerivedTypeStmt extends Stmt { + public DerivedTypeStmt(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/EndTypeStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/EndTypeStmt.java new file mode 100644 index 00000000..2b133050 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/EndTypeStmt.java @@ -0,0 +1,13 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.typedef; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; + +import java.util.Collection; + +public class EndTypeStmt extends Stmt { + public EndTypeStmt(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/PrivateOrSequenceStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/PrivateOrSequenceStmt.java new file mode 100644 index 00000000..aec15aa4 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/PrivateOrSequenceStmt.java @@ -0,0 +1,14 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.typedef; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; + +import java.util.Collection; + +// TODO(Process-ing): Implement variants +public abstract class PrivateOrSequenceStmt extends Stmt { + public PrivateOrSequenceStmt(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/TypeBoundProcedurePart.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/TypeBoundProcedurePart.java new file mode 100644 index 00000000..24a6b0c3 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/TypeBoundProcedurePart.java @@ -0,0 +1,13 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.typedef; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +// TODO(Process-ing): Implement this node +public class TypeBoundProcedurePart extends FortranNode { + public TypeBoundProcedurePart(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/TypeParamDefStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/TypeParamDefStmt.java new file mode 100644 index 00000000..cd599dd9 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/TypeParamDefStmt.java @@ -0,0 +1,14 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.typedef; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; + +import java.util.Collection; + +// TODO(Process-ing): Implement this node +public class TypeParamDefStmt extends Stmt { + public TypeParamDefStmt(DataStore data, Collection children) { + super(data, children); + } +} From 0c95cccdf2bfb3e303a88488aae103dae5f56fd0 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 8 Aug 2026 17:44:24 +0100 Subject: [PATCH 223/260] Add type attribute nodes --- .../fe/specs/fortran/ast/FortranKeyword.java | 2 ++ .../specification/type/AbstractTypeAttr.java | 18 +++++++++++++ .../specification/type/AccessTypeAttr.java | 26 +++++++++++++++++++ .../specification/type/BindTypeAttr.java | 18 +++++++++++++ .../specification/type/ExtendsTypeAttr.java | 26 +++++++++++++++++++ .../nodes/specification/type/TypeAttr.java | 12 +++++++++ 6 files changed, 102 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/type/AbstractTypeAttr.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/type/AccessTypeAttr.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/type/BindTypeAttr.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/type/ExtendsTypeAttr.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/type/TypeAttr.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java index 3db41ce5..66753e2b 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -82,6 +82,8 @@ public enum FortranKeyword { IMPLICIT, TYPE, CODIMENSION, + EXTENDS, + ABSTRACT, OMP; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/type/AbstractTypeAttr.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/type/AbstractTypeAttr.java new file mode 100644 index 00000000..44524b6e --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/type/AbstractTypeAttr.java @@ -0,0 +1,18 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.type; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class AbstractTypeAttr extends TypeAttr { + public AbstractTypeAttr(DataStore data, Collection children) { + super(data, children); + } + + @Override + public String getCode() { + return keyword(FortranKeyword.ABSTRACT); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/type/AccessTypeAttr.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/type/AccessTypeAttr.java new file mode 100644 index 00000000..ca8a25a0 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/type/AccessTypeAttr.java @@ -0,0 +1,26 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.type; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.specification.enums.AccessKind; + +import java.util.Collection; + +public class AccessTypeAttr extends TypeAttr { + public static final DataKey ACCESS_KIND = KeyFactory.enumeration("access_kind", AccessKind.class); + + public AccessTypeAttr(DataStore data, Collection children) { + super(data, children); + } + + public AccessKind getAccessKind() { + return get(ACCESS_KIND); + } + + @Override + public String getCode() { + return encase(getAccessKind().name()); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/type/BindTypeAttr.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/type/BindTypeAttr.java new file mode 100644 index 00000000..dd95c080 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/type/BindTypeAttr.java @@ -0,0 +1,18 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.type; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class BindTypeAttr extends TypeAttr { + public BindTypeAttr(DataStore data, Collection children) { + super(data, children); + } + + @Override + public String getCode() { + return keyword(FortranKeyword.BIND) + "(" + keyword(FortranKeyword.C) + ")"; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/type/ExtendsTypeAttr.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/type/ExtendsTypeAttr.java new file mode 100644 index 00000000..3c6b2ade --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/type/ExtendsTypeAttr.java @@ -0,0 +1,26 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.type; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class ExtendsTypeAttr extends TypeAttr { + public static final DataKey PARENT_TYPE = KeyFactory.string("parent_type"); + + public ExtendsTypeAttr(DataStore data, Collection children) { + super(data, children); + } + + public String getParentType() { + return get(PARENT_TYPE); + } + + @Override + public String getCode() { + return keyword(FortranKeyword.EXTENDS) + "(" + getParentType() + ")"; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/type/TypeAttr.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/type/TypeAttr.java new file mode 100644 index 00000000..dc87c694 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/type/TypeAttr.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.type; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class TypeAttr extends FortranNode { + public TypeAttr(DataStore data, Collection children) { + super(data, children); + } +} From 5ae335cc9d8aa78350fde725064f87416576a816 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 8 Aug 2026 17:44:40 +0100 Subject: [PATCH 224/260] Finish implementing derived type and end type statements --- .../nodes/specification/DerivedTypeDef.java | 4 +++ .../nodes/stmt/typedef/DerivedTypeStmt.java | 36 +++++++++++++++++++ .../ast/nodes/stmt/typedef/EndTypeStmt.java | 8 +++++ 3 files changed, 48 insertions(+) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/DerivedTypeDef.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/DerivedTypeDef.java index e38e1e5c..a63122b9 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/DerivedTypeDef.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/DerivedTypeDef.java @@ -15,6 +15,10 @@ public DerivedTypeDef(DataStore data, Collection children super(data, children); } + public String getTypeName() { + return getDerivedTypeStmt().getTypeName(); + } + public DerivedTypeStmt getDerivedTypeStmt() { return getChild(DerivedTypeStmt.class, 0); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/DerivedTypeStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/DerivedTypeStmt.java index c5216d8c..490f71a9 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/DerivedTypeStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/DerivedTypeStmt.java @@ -1,13 +1,49 @@ package pt.up.fe.specs.fortran.ast.nodes.stmt.typedef; +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.decl.NamedParameter; +import pt.up.fe.specs.fortran.ast.nodes.specification.type.TypeAttr; import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; +import java.security.Key; import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; public class DerivedTypeStmt extends Stmt { + public static final DataKey TYPE_NAME = KeyFactory.string("type_name"); + public DerivedTypeStmt(DataStore data, Collection children) { super(data, children); } + + public List getTypeAttrs() { + return getChildrenOf(TypeAttr.class); + } + + public String getTypeName() { + return get(TYPE_NAME); + } + + public List getParameters() { + return getChildrenOf(NamedParameter.class); + } + + @Override + public String getStmtCode() { + var typeAttrsCode = getTypeAttrs().stream() + .map(attr -> ", " + attr.getCode()) + .collect(Collectors.joining()); + + var params = getParameters(); + var paramsCode = params.isEmpty() ? "" : params.stream() + .map(NamedParameter::getCode) + .collect(Collectors.joining(", ", "(", ")")); + + return keyword(FortranKeyword.TYPE) + typeAttrsCode + " :: " + getTypeName() + paramsCode; + } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/EndTypeStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/EndTypeStmt.java index 2b133050..99d289e2 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/EndTypeStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/EndTypeStmt.java @@ -1,6 +1,7 @@ package pt.up.fe.specs.fortran.ast.nodes.stmt.typedef; import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; @@ -10,4 +11,11 @@ public class EndTypeStmt extends Stmt { public EndTypeStmt(DataStore data, Collection children) { super(data, children); } + + @Override + public String getStmtCode() { + var typeName = getAncestor(DerivedTypeStmt.class).getTypeName(); + + return keyword(FortranKeyword.END) + " " + keyword(FortranKeyword.TYPE) + " " + typeName; + } } From fff4ae0d559c86c2bdedd61648b82cb1f64a774a Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 8 Aug 2026 18:18:15 +0100 Subject: [PATCH 225/260] Add mapping of new node classes to Flang names --- .../src/pt/up/fe/specs/fortran/parser/FlangName.java | 7 +++++++ .../pt/up/fe/specs/fortran/parser/FlangToClass.java | 11 +++++++++++ 2 files changed, 18 insertions(+) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 8e157be9..dba9e7d8 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -52,6 +52,13 @@ public enum FlangName implements StringProvider { NON_RECURSIVE("Non_Recursive"), PURE, RECURSIVE, + DERIVED_TYPE_DEF, + DERIVED_TYPE_STMT, + TYPE_ATTR_SPEC, + ABSTRACT, + BIND_C, + EXTENDS, + END_TYPE_STMT, /// STMTs STATEMENT, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 64d47bfc..6e2932fb 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -10,6 +10,9 @@ import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.DeclTypeFunctionSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.EmptyFunctionSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.FunctionSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.type.*; +import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.DerivedTypeStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.EndTypeStmt; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DeclType; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DerivedDeclType; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.IntrinsicDeclType; @@ -112,6 +115,12 @@ public class FlangToClass { .map(FlangName.NON_RECURSIVE, EmptyFunctionSpec.class) .map(FlangName.PURE, EmptyFunctionSpec.class) .map(FlangName.RECURSIVE, EmptyFunctionSpec.class)); + NAME_TO_MAPPER.put(FlangName.DERIVED_TYPE_DEF, ClassMapper.always(DerivedTypeDef.class)); + NAME_TO_MAPPER.put(FlangName.TYPE_ATTR_SPEC, ClassMapper.caseFor(TypeAttr.class) + .map(FlangName.ABSTRACT, AbstractTypeAttr.class) + .map(FlangName.ACCESS_SPEC, AccessTypeAttr.class) + .map(FlangName.BIND_C, BindTypeAttr.class) + .map(FlangName.EXTENDS, ExtendsTypeAttr.class)); /// STMTs NAME_TO_MAPPER.put(FlangName.PRINT_STMT, ClassMapper.always(PrintStmt.class)); @@ -176,6 +185,8 @@ public class FlangToClass { .map(FlangName.IMPLICIT_NONE_NAME_SPEC, ImplicitNoneStmt.class)); NAME_TO_MAPPER.put(FlangName.IMPLICIT_SPEC, ClassMapper.always(ImplicitSpec.class)); NAME_TO_MAPPER.put(FlangName.LETTER_SPEC, ClassMapper.always(LetterSpec.class)); + NAME_TO_MAPPER.put(FlangName.DERIVED_TYPE_STMT, ClassMapper.always(DerivedTypeStmt.class)); + NAME_TO_MAPPER.put(FlangName.END_TYPE_STMT, ClassMapper.always(EndTypeStmt.class)); /// Variables //NAME_TO_CLASS.put(FlangName.DATA_REF, DataRef.class); // TODO(Process-ing): Improve this From 422138c8667a46dcdba3655b8036b6188097b399 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 8 Aug 2026 18:23:39 +0100 Subject: [PATCH 226/260] Add processors for type attributes --- .../parser/processors/DeclProcessors.java | 21 +++++++++++++++++++ .../fortran/parser/processors/Nodes.java | 8 +++++++ 2 files changed, 29 insertions(+) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java index 55703ae3..00ed4fed 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java @@ -3,9 +3,15 @@ import pt.up.fe.specs.fortran.ast.nodes.decl.*; import pt.up.fe.specs.fortran.ast.nodes.specification.ImplicitSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.LetterSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.enums.AccessKind; import pt.up.fe.specs.fortran.ast.nodes.specification.enums.EmptyFunctionSpecKind; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.DeclTypeFunctionSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.EmptyFunctionSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.type.AbstractTypeAttr; +import pt.up.fe.specs.fortran.ast.nodes.specification.type.AccessTypeAttr; +import pt.up.fe.specs.fortran.ast.nodes.specification.type.BindTypeAttr; +import pt.up.fe.specs.fortran.ast.nodes.specification.type.ExtendsTypeAttr; +import pt.up.fe.specs.fortran.ast.nodes.stmt.AccessStmt; import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.DeferredTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.ExprTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.StarTypeParamValue; @@ -159,4 +165,19 @@ public void emptyFunctionSpec(EmptyFunctionSpec functionSpec) { var kind = EmptyFunctionSpecKind.valueOf(variantKey.toUpperCase()); functionSpec.set(EmptyFunctionSpec.KIND, kind); } + + public void abstractTypeAttr(AbstractTypeAttr ignoredAttr) {} + + public void accessTypeAttr(AccessTypeAttr accessTypeAttr) { + var accessSpec = attributes().getString(accessTypeAttr, "value", FlangName.ACCESS_SPEC, FlangName.KIND); + var accessKind = AccessKind.valueOf(accessSpec.toUpperCase()); + accessTypeAttr.set(AccessStmt.ACCESS_KIND, accessKind); + } + + public void bindTypeAttr(BindTypeAttr ignoredAttr) {} + + public void extendsTypeAttr(ExtendsTypeAttr extendsTypeAttr) { + var parentType = attributes().getString(extendsTypeAttr, "source", FlangName.EXTENDS, FlangName.NAME); + extendsTypeAttr.set(ExtendsTypeAttr.PARENT_TYPE, parentType); + } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 0c1e36fe..12f58ec3 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -8,6 +8,10 @@ import pt.up.fe.specs.fortran.ast.nodes.specification.shape.*; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.DeclTypeFunctionSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.EmptyFunctionSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.type.AbstractTypeAttr; +import pt.up.fe.specs.fortran.ast.nodes.specification.type.AccessTypeAttr; +import pt.up.fe.specs.fortran.ast.nodes.specification.type.BindTypeAttr; +import pt.up.fe.specs.fortran.ast.nodes.specification.type.ExtendsTypeAttr; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DerivedDeclType; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.IntrinsicDeclType; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.StarDeclType; @@ -107,6 +111,10 @@ public Nodes(FortranJsonResult data) { processors.put(ImplicitSpec.class, d::implicitSpec); processors.put(DeclTypeFunctionSpec.class, d::declTypeFunctionSpec); processors.put(EmptyFunctionSpec.class, d::emptyFunctionSpec); + processors.put(AbstractTypeAttr.class, d::abstractTypeAttr); + processors.put(AccessTypeAttr.class, d::accessTypeAttr); + processors.put(BindTypeAttr.class, d::bindTypeAttr); + processors.put(ExtendsTypeAttr.class, d::extendsTypeAttr); var v = new VariableProcessor(data); processors.put(DataRef.class, v::dataRef); From 72d27ed82d5ff9064de0043127fa465812702888 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 8 Aug 2026 18:26:27 +0100 Subject: [PATCH 227/260] Add missing statement to class mapping --- FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java | 2 ++ .../src/pt/up/fe/specs/fortran/parser/FlangToClass.java | 2 ++ 2 files changed, 4 insertions(+) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index dba9e7d8..965f06b9 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -58,6 +58,8 @@ public enum FlangName implements StringProvider { ABSTRACT, BIND_C, EXTENDS, + COMPONENT_DEF_STMT, + DATA_COMPONENT_DEF_STMT, END_TYPE_STMT, /// STMTs diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 6e2932fb..ee51b149 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -11,6 +11,7 @@ import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.EmptyFunctionSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.FunctionSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.type.*; +import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.DataComponentDefStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.DerivedTypeStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.EndTypeStmt; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DeclType; @@ -186,6 +187,7 @@ public class FlangToClass { NAME_TO_MAPPER.put(FlangName.IMPLICIT_SPEC, ClassMapper.always(ImplicitSpec.class)); NAME_TO_MAPPER.put(FlangName.LETTER_SPEC, ClassMapper.always(LetterSpec.class)); NAME_TO_MAPPER.put(FlangName.DERIVED_TYPE_STMT, ClassMapper.always(DerivedTypeStmt.class)); + NAME_TO_MAPPER.put(FlangName.DATA_COMPONENT_DEF_STMT, ClassMapper.always(DataComponentDefStmt.class)); NAME_TO_MAPPER.put(FlangName.END_TYPE_STMT, ClassMapper.always(EndTypeStmt.class)); /// Variables From ca815bd2e050951c7a8e5a0ee07089a3544bc713 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 8 Aug 2026 18:39:23 +0100 Subject: [PATCH 228/260] Regenerate dump --- .../fortran/parser/program/module2.json | 288 +++++++++--------- 1 file changed, 145 insertions(+), 143 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/program/module2.json b/FortranParser/resources-test/fortran/parser/program/module2.json index c73c1a40..a8d35deb 100644 --- a/FortranParser/resources-test/fortran/parser/program/module2.json +++ b/FortranParser/resources-test/fortran/parser/program/module2.json @@ -2,364 +2,366 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x55fa7828ef00-Program", + "id": "0x564b62c0ef00-Program", "ProgramUnit": [ - "0x55fa782c5170-ProgramUnit" + "0x564b62c45170-ProgramUnit" ] }, { - "id": "0x55fa782c5170-ProgramUnit", + "id": "0x564b62c45170-ProgramUnit", "variantKey": "Module", - "Module": "0x55fa782c9460-Module" + "Module": "0x564b62c49460-Module" }, { - "id": "0x55fa782c9460-Module", - "Statement": "0x55fa782c9590-Statement", - "SpecificationPart": "0x55fa782c94e8-SpecificationPart", - "Statement": "0x55fa782c9460-Statement" + "id": "0x564b62c49460-Module", + "Statement": "0x564b62c49590-Statement", + "SpecificationPart": "0x564b62c494e8-SpecificationPart", + "Statement": "0x564b62c49460-Statement" }, { - "id": "0x55fa782c9590-Statement", - "statement": "0x55fa782c95a0-ModuleStmt", + "id": "0x564b62c49590-Statement", + "statement": "0x564b62c495a0-ModuleStmt", "source": "module geometry_mod" }, { - "id": "0x55fa782c95a0-ModuleStmt", - "Name": "0x55fa782c95a0-Name" + "id": "0x564b62c495a0-ModuleStmt", + "Name": "0x564b62c495a0-Name" }, { - "id": "0x55fa782c95a0-Name", + "id": "0x564b62c495a0-Name", "source": "geometry_mod" }, { - "id": "0x55fa782c94e8-SpecificationPart", - "ImplicitPart": "0x55fa782c9500-ImplicitPart", + "id": "0x564b62c494e8-SpecificationPart", + "ImplicitPart": "0x564b62c49500-ImplicitPart", "DeclarationConstruct": [ - "0x55fa7828d4e0-DeclarationConstruct", - "0x55fa7829c110-DeclarationConstruct" + "0x564b62c0d4e0-DeclarationConstruct", + "0x564b62c1c110-DeclarationConstruct" ] }, { - "id": "0x55fa782c9500-ImplicitPart", + "id": "0x564b62c49500-ImplicitPart", "ImplicitPartStmt": [ - "0x55fa782d2770-ImplicitPartStmt" + "0x564b62c52770-ImplicitPartStmt" ] }, { - "id": "0x55fa782d2770-ImplicitPartStmt", + "id": "0x564b62c52770-ImplicitPartStmt", "variantKey": "Statement", - "Statement": "0x55fa782d2770-Statement" + "Statement": "0x564b62c52770-Statement" }, { - "id": "0x55fa782d2770-Statement", - "statement": "0x55fa782c50b0-ImplicitStmt", + "id": "0x564b62c52770-Statement", + "statement": "0x564b62c450b0-ImplicitStmt", "source": "implicit none" }, { - "id": "0x55fa782c50b0-ImplicitStmt", + "id": "0x564b62c450b0-ImplicitStmt", "variantKey": "ImplicitNoneNameSpec", "ImplicitNoneNameSpec": [] }, { - "id": "0x55fa7828d4e0-DeclarationConstruct", + "id": "0x564b62c0d4e0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55fa7828d4e0-SpecificationConstruct" + "SpecificationConstruct": "0x564b62c0d4e0-SpecificationConstruct" }, { - "id": "0x55fa7828d4e0-SpecificationConstruct", + "id": "0x564b62c0d4e0-SpecificationConstruct", "variantKey": "DerivedTypeDef", - "DerivedTypeDef": "0x55fa782d2810-DerivedTypeDef" + "DerivedTypeDef": "0x564b62c52810-DerivedTypeDef" }, { - "id": "0x55fa782d2810-DerivedTypeDef", - "Statement": "0x55fa782d2910-Statement", + "id": "0x564b62c52810-DerivedTypeDef", + "Statement": "0x564b62c52910-Statement", "Statement": [ - "0x55fa782c5e30-Statement" + "0x564b62c45e30-Statement" ], - "Statement": "0x55fa782d2810-Statement" + "Statement": "0x564b62c52810-Statement" }, { - "id": "0x55fa782d2910-Statement", - "statement": "0x55fa782d2920-DerivedTypeStmt", + "id": "0x564b62c52910-Statement", + "statement": "0x564b62c52920-DerivedTypeStmt", "source": "type :: point" }, { - "id": "0x55fa782d2920-DerivedTypeStmt", - "Name": "0x55fa782d2938-Name" + "id": "0x564b62c52920-DerivedTypeStmt", + "TypeAttrSpec": [], + "TypeName": "0x564b62c52938-Name", + "ParamNames": [] }, { - "id": "0x55fa782d2938-Name", + "id": "0x564b62c52938-Name", "source": "point" }, { - "id": "0x55fa782c5e30-Statement", - "statement": "0x55fa782c5e40-ComponentDefStmt", + "id": "0x564b62c45e30-Statement", + "statement": "0x564b62c45e40-ComponentDefStmt", "source": "real :: x, y" }, { - "id": "0x55fa782c5e40-ComponentDefStmt", + "id": "0x564b62c45e40-ComponentDefStmt", "variantKey": "DataComponentDefStmt", - "DataComponentDefStmt": "0x55fa782c5e40-DataComponentDefStmt" + "DataComponentDefStmt": "0x564b62c45e40-DataComponentDefStmt" }, { - "id": "0x55fa782c5e40-DataComponentDefStmt", - "DeclarationTypeSpec": "0x55fa782c5e70-DeclarationTypeSpec", + "id": "0x564b62c45e40-DataComponentDefStmt", + "DeclarationTypeSpec": "0x564b62c45e70-DeclarationTypeSpec", "ComponentOrFill": [ - "0x55fa782c9030-ComponentOrFill", - "0x55fa7822e7a0-ComponentOrFill" + "0x564b62c49030-ComponentOrFill", + "0x564b62bae7a0-ComponentOrFill" ] }, { - "id": "0x55fa782c5e70-DeclarationTypeSpec", + "id": "0x564b62c45e70-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55fa782c5e70-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x564b62c45e70-IntrinsicTypeSpec" }, { - "id": "0x55fa782c5e70-IntrinsicTypeSpec", + "id": "0x564b62c45e70-IntrinsicTypeSpec", "variantKey": "Real", - "Real": "0x55fa782c5e70-Real" + "Real": "0x564b62c45e70-Real" }, { - "id": "0x55fa782c5e70-Real" + "id": "0x564b62c45e70-Real" }, { - "id": "0x55fa782c9030-ComponentOrFill", + "id": "0x564b62c49030-ComponentOrFill", "variantKey": "ComponentDecl", - "ComponentDecl": "0x55fa782c9030-ComponentDecl" + "ComponentDecl": "0x564b62c49030-ComponentDecl" }, { - "id": "0x55fa782c9030-ComponentDecl", - "Name": "0x55fa782c90d8-Name" + "id": "0x564b62c49030-ComponentDecl", + "Name": "0x564b62c490d8-Name" }, { - "id": "0x55fa782c90d8-Name", + "id": "0x564b62c490d8-Name", "source": "x" }, { - "id": "0x55fa7822e7a0-ComponentOrFill", + "id": "0x564b62bae7a0-ComponentOrFill", "variantKey": "ComponentDecl", - "ComponentDecl": "0x55fa7822e7a0-ComponentDecl" + "ComponentDecl": "0x564b62bae7a0-ComponentDecl" }, { - "id": "0x55fa7822e7a0-ComponentDecl", - "Name": "0x55fa7822e848-Name" + "id": "0x564b62bae7a0-ComponentDecl", + "Name": "0x564b62bae848-Name" }, { - "id": "0x55fa7822e848-Name", + "id": "0x564b62bae848-Name", "source": "y" }, { - "id": "0x55fa782d2810-Statement", - "statement": "0x55fa782d2820-EndTypeStmt", + "id": "0x564b62c52810-Statement", + "statement": "0x564b62c52820-EndTypeStmt", "source": "end type point" }, { - "id": "0x55fa782d2820-EndTypeStmt", - "Name": "0x55fa782d2820-Name" + "id": "0x564b62c52820-EndTypeStmt", + "Name": "0x564b62c52820-Name" }, { - "id": "0x55fa782d2820-Name", + "id": "0x564b62c52820-Name", "source": "point" }, { - "id": "0x55fa7829c110-DeclarationConstruct", + "id": "0x564b62c1c110-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55fa7829c110-SpecificationConstruct" + "SpecificationConstruct": "0x564b62c1c110-SpecificationConstruct" }, { - "id": "0x55fa7829c110-SpecificationConstruct", + "id": "0x564b62c1c110-SpecificationConstruct", "variantKey": "InterfaceBlock", - "InterfaceBlock": "0x55fa782c9370-InterfaceBlock" + "InterfaceBlock": "0x564b62c49370-InterfaceBlock" }, { - "id": "0x55fa782c9370-InterfaceBlock", - "Statement": "0x55fa782c93e8-Statement", + "id": "0x564b62c49370-InterfaceBlock", + "Statement": "0x564b62c493e8-Statement", "InterfaceSpecification": [ - "0x55fa78264790-InterfaceSpecification" + "0x564b62be4790-InterfaceSpecification" ], - "Statement": "0x55fa782c9370-Statement" + "Statement": "0x564b62c49370-Statement" }, { - "id": "0x55fa782c93e8-Statement", - "statement": "0x55fa782c93f8-InterfaceStmt", + "id": "0x564b62c493e8-Statement", + "statement": "0x564b62c493f8-InterfaceStmt", "source": "interface" }, { - "id": "0x55fa782c93f8-InterfaceStmt", + "id": "0x564b62c493f8-InterfaceStmt", "variantKey": "null" }, { - "id": "0x55fa78264790-InterfaceSpecification", + "id": "0x564b62be4790-InterfaceSpecification", "variantKey": "InterfaceBody", - "InterfaceBody": "0x55fa78264790-InterfaceBody" + "InterfaceBody": "0x564b62be4790-InterfaceBody" }, { - "id": "0x55fa78264790-InterfaceBody", + "id": "0x564b62be4790-InterfaceBody", "variantKey": "Subroutine", - "Subroutine": "0x55fa78264790-Subroutine" + "Subroutine": "0x564b62be4790-Subroutine" }, { - "id": "0x55fa78264790-Subroutine", - "Statement": "0x55fa782647d8-Statement", - "SpecificationPart": "0x55fa7822bb00-SpecificationPart", - "Statement": "0x55fa78264790-Statement" + "id": "0x564b62be4790-Subroutine", + "Statement": "0x564b62be47d8-Statement", + "SpecificationPart": "0x564b62babb00-SpecificationPart", + "Statement": "0x564b62be4790-Statement" }, { - "id": "0x55fa782647d8-Statement", - "statement": "0x55fa782647e8-SubroutineStmt", + "id": "0x564b62be47d8-Statement", + "statement": "0x564b62be47e8-SubroutineStmt", "source": "subroutine draw_point(pt)" }, { - "id": "0x55fa782647e8-SubroutineStmt", - "Name": "0x55fa78264820-Name", + "id": "0x564b62be47e8-SubroutineStmt", + "Name": "0x564b62be4820-Name", "DummyArg": [ - "0x55fa782c3dd0-DummyArg" + "0x564b62c43dd0-DummyArg" ] }, { - "id": "0x55fa78264820-Name", + "id": "0x564b62be4820-Name", "source": "draw_point" }, { - "id": "0x55fa782c3dd0-DummyArg", + "id": "0x564b62c43dd0-DummyArg", "variantKey": "Name", - "Name": "0x55fa782c3dd0-Name" + "Name": "0x564b62c43dd0-Name" }, { - "id": "0x55fa782c3dd0-Name", + "id": "0x564b62c43dd0-Name", "source": "pt" }, { - "id": "0x55fa7822bb00-SpecificationPart", + "id": "0x564b62babb00-SpecificationPart", "Statement": [ - "0x55fa782c44b0-Statement" + "0x564b62c444b0-Statement" ], - "ImplicitPart": "0x55fa7822bb18-ImplicitPart", + "ImplicitPart": "0x564b62babb18-ImplicitPart", "DeclarationConstruct": [ - "0x55fa7829bda0-DeclarationConstruct" + "0x564b62c1bda0-DeclarationConstruct" ] }, { - "id": "0x55fa782c44b0-Statement", - "statement": "0x55fa782c5110-ImportStmt", + "id": "0x564b62c444b0-Statement", + "statement": "0x564b62c45110-ImportStmt", "source": "import :: point" }, { - "id": "0x55fa782c5110-ImportStmt", - "ImportKind": "0x55fa782c5128-ImportKind", + "id": "0x564b62c45110-ImportStmt", + "ImportKind": "0x564b62c45128-ImportKind", "Name": [ - "0x55fa782c50f0-Name" + "0x564b62c450f0-Name" ] }, { - "id": "0x55fa782c5128-ImportKind", + "id": "0x564b62c45128-ImportKind", "disambiguation": "Fortran::common::ImportKind", "value": "Default" }, { - "id": "0x55fa782c50f0-Name", + "id": "0x564b62c450f0-Name", "source": "point" }, { - "id": "0x55fa7822bb18-ImplicitPart" + "id": "0x564b62babb18-ImplicitPart" }, { - "id": "0x55fa7829bda0-DeclarationConstruct", + "id": "0x564b62c1bda0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55fa7829bda0-SpecificationConstruct" + "SpecificationConstruct": "0x564b62c1bda0-SpecificationConstruct" }, { - "id": "0x55fa7829bda0-SpecificationConstruct", + "id": "0x564b62c1bda0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55fa7829bda0-Statement" + "Statement": "0x564b62c1bda0-Statement" }, { - "id": "0x55fa7829bda0-Statement", - "statement": "0x55fa782c9100-TypeDeclarationStmt", + "id": "0x564b62c1bda0-Statement", + "statement": "0x564b62c49100-TypeDeclarationStmt", "source": "type(point), intent(in) :: pt" }, { - "id": "0x55fa782c9100-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55fa782c9130-DeclarationTypeSpec", + "id": "0x564b62c49100-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x564b62c49130-DeclarationTypeSpec", "AttrSpec": [ - "0x55fa782cb610-AttrSpec" + "0x564b62c4b610-AttrSpec" ], "EntityDecl": [ - "0x55fa782c9210-EntityDecl" + "0x564b62c49210-EntityDecl" ] }, { - "id": "0x55fa782c9130-DeclarationTypeSpec", + "id": "0x564b62c49130-DeclarationTypeSpec", "variantKey": "Type", - "Type": "0x55fa782c9130-Type" + "Type": "0x564b62c49130-Type" }, { - "id": "0x55fa782c9130-Type", - "DerivedTypeSpec": "0x55fa782c9130-DerivedTypeSpec" + "id": "0x564b62c49130-Type", + "DerivedTypeSpec": "0x564b62c49130-DerivedTypeSpec" }, { - "id": "0x55fa782c9130-DerivedTypeSpec", - "Name": "0x55fa782c9150-Name" + "id": "0x564b62c49130-DerivedTypeSpec", + "Name": "0x564b62c49150-Name" }, { - "id": "0x55fa782c9150-Name", + "id": "0x564b62c49150-Name", "source": "point" }, { - "id": "0x55fa782cb610-AttrSpec", + "id": "0x564b62c4b610-AttrSpec", "variantKey": "IntentSpec", - "IntentSpec": "0x55fa782cb610-IntentSpec" + "IntentSpec": "0x564b62c4b610-IntentSpec" }, { - "id": "0x55fa782cb610-IntentSpec", - "Intent": "0x55fa782cb610-Intent", + "id": "0x564b62c4b610-IntentSpec", + "Intent": "0x564b62c4b610-Intent", "intent": "In" }, { - "id": "0x55fa782cb610-Intent", + "id": "0x564b62c4b610-Intent", "disambiguation": "Fortran::parser::IntentSpec::Intent", "value": "In" }, { - "id": "0x55fa782c9210-EntityDecl", - "Name": "0x55fa782c92c8-Name" + "id": "0x564b62c49210-EntityDecl", + "Name": "0x564b62c492c8-Name" }, { - "id": "0x55fa782c92c8-Name", + "id": "0x564b62c492c8-Name", "source": "pt" }, { - "id": "0x55fa78264790-Statement", - "statement": "0x55fa782647a0-EndSubroutineStmt", + "id": "0x564b62be4790-Statement", + "statement": "0x564b62be47a0-EndSubroutineStmt", "source": "end subroutine draw_point" }, { - "id": "0x55fa782647a0-EndSubroutineStmt", - "Name": "0x55fa782647a0-Name" + "id": "0x564b62be47a0-EndSubroutineStmt", + "Name": "0x564b62be47a0-Name" }, { - "id": "0x55fa782647a0-Name", + "id": "0x564b62be47a0-Name", "source": "draw_point" }, { - "id": "0x55fa782c9370-Statement", - "statement": "0x55fa782c9380-EndInterfaceStmt", + "id": "0x564b62c49370-Statement", + "statement": "0x564b62c49380-EndInterfaceStmt", "source": "end interface" }, { - "id": "0x55fa782c9380-EndInterfaceStmt" + "id": "0x564b62c49380-EndInterfaceStmt" }, { - "id": "0x55fa782c9460-Statement", - "statement": "0x55fa782c9470-EndModuleStmt", + "id": "0x564b62c49460-Statement", + "statement": "0x564b62c49470-EndModuleStmt", "source": "end module geometry_mod" }, { - "id": "0x55fa782c9470-EndModuleStmt", - "Name": "0x55fa782c9470-Name" + "id": "0x564b62c49470-EndModuleStmt", + "Name": "0x564b62c49470-Name" }, { - "id": "0x55fa782c9470-Name", + "id": "0x564b62c49470-Name", "source": "geometry_mod" } ], From bb0052810d361920bdcaaa0d72c681072c068d2b Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 8 Aug 2026 18:58:08 +0100 Subject: [PATCH 229/260] Add more missing nodes to class mapping --- .../pt/up/fe/specs/fortran/parser/FlangName.java | 9 +++++++++ .../up/fe/specs/fortran/parser/FlangToClass.java | 14 ++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 965f06b9..eece74c4 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -60,6 +60,12 @@ public enum FlangName implements StringProvider { EXTENDS, COMPONENT_DEF_STMT, DATA_COMPONENT_DEF_STMT, + COMPONENT_ATTR_SPEC, + CONTIGUOUS, + COMPONENT_ARRAY_SPEC, + POINTER, + CUDA_DATA_ATTR("CUDADataAttr"), + COMPONENT_DECL, END_TYPE_STMT, /// STMTs @@ -300,6 +306,9 @@ public enum FlangName implements StringProvider { ASSUMED_SHAPE_SPEC, ASSUMED_SIZE_SPEC, IMPLIED_SHAPE_SPEC, + COARRAY_SPEC, + DEFERRED_COSHAPE_SPEC_LIST, + EXPLICIT_COSHAPE_SPEC, ALLOCATABLE, ASYNCHRONOUS, INTENT_SPEC, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index ee51b149..eb2848ad 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -6,6 +6,10 @@ import pt.up.fe.specs.fortran.ast.nodes.alloc.ExprAllocOption; import pt.up.fe.specs.fortran.ast.nodes.alloc.VarAllocOption; import pt.up.fe.specs.fortran.ast.nodes.decl.*; +import pt.up.fe.specs.fortran.ast.nodes.decl.component.ComponentDecl; +import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.*; +import pt.up.fe.specs.fortran.ast.nodes.specification.coshape.DeferredCoshapeSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.coshape.ExplicitCoshapeSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.shape.*; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.DeclTypeFunctionSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.EmptyFunctionSpec; @@ -188,6 +192,14 @@ public class FlangToClass { NAME_TO_MAPPER.put(FlangName.LETTER_SPEC, ClassMapper.always(LetterSpec.class)); NAME_TO_MAPPER.put(FlangName.DERIVED_TYPE_STMT, ClassMapper.always(DerivedTypeStmt.class)); NAME_TO_MAPPER.put(FlangName.DATA_COMPONENT_DEF_STMT, ClassMapper.always(DataComponentDefStmt.class)); + NAME_TO_MAPPER.put(FlangName.COMPONENT_ATTR_SPEC, ClassMapper.caseFor(ComponentAttr.class) + .map(FlangName.ACCESS_SPEC, AccessComponentAttr.class) + .map(FlangName.ALLOCATABLE, OtherComponentAttr.class) + .map(FlangName.COARRAY_SPEC, CodimComponentAttr.class) + .map(FlangName.CONTIGUOUS, OtherComponentAttr.class) + .map(FlangName.COMPONENT_ARRAY_SPEC, DimComponentAttr.class) + .map(FlangName.POINTER, OtherComponentAttr.class)); + NAME_TO_MAPPER.put(FlangName.COMPONENT_DECL, ClassMapper.always(ComponentDecl.class)); NAME_TO_MAPPER.put(FlangName.END_TYPE_STMT, ClassMapper.always(EndTypeStmt.class)); /// Variables @@ -296,6 +308,8 @@ public class FlangToClass { NAME_TO_MAPPER.put(FlangName.ASSUMED_SIZE_SPEC, ClassMapper.always(AssumedSizeSpec.class)); NAME_TO_MAPPER.put(FlangName.IMPLIED_SHAPE_SPEC, ClassMapper.always(ImpliedShapeSpec.class)); NAME_TO_MAPPER.put(FlangName.ASSUMED_RANK_SPEC, ClassMapper.always(AssumedSizeSpec.class)); + NAME_TO_MAPPER.put(FlangName.DEFERRED_COSHAPE_SPEC_LIST, ClassMapper.always(DeferredCoshapeSpec.class)); + NAME_TO_MAPPER.put(FlangName.EXPLICIT_COSHAPE_SPEC, ClassMapper.always(ExplicitCoshapeSpec.class)); /// IO NAME_TO_MAPPER.put(FlangName.OPEN_STMT, ClassMapper.always(OpenStmt.class)); From 53534e525db9be25a93317c65a55d70182608713 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 8 Aug 2026 19:04:36 +0100 Subject: [PATCH 230/260] Add processors for component attributes --- .../parser/processors/DeclProcessors.java | 27 +++++++++++++++++++ .../fortran/parser/processors/Nodes.java | 8 ++++++ 2 files changed, 35 insertions(+) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java index 00ed4fed..3327fb8f 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java @@ -1,6 +1,11 @@ package pt.up.fe.specs.fortran.parser.processors; import pt.up.fe.specs.fortran.ast.nodes.decl.*; +import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.AccessComponentAttr; +import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.CodimComponentAttr; +import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.DimComponentAttr; +import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.OtherComponentAttr; +import pt.up.fe.specs.fortran.ast.nodes.decl.enums.ComponentAttrKind; import pt.up.fe.specs.fortran.ast.nodes.specification.ImplicitSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.LetterSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.enums.AccessKind; @@ -180,4 +185,26 @@ public void extendsTypeAttr(ExtendsTypeAttr extendsTypeAttr) { var parentType = attributes().getString(extendsTypeAttr, "source", FlangName.EXTENDS, FlangName.NAME); extendsTypeAttr.set(ExtendsTypeAttr.PARENT_TYPE, parentType); } + + public void accessComponentAttr(AccessComponentAttr accessComponentAttr) { + var accessSpec = attributes().getString(accessComponentAttr, "value", FlangName.ACCESS_SPEC, FlangName.KIND); + var accessKind = AccessKind.valueOf(accessSpec.toUpperCase()); + accessComponentAttr.set(AccessStmt.ACCESS_KIND, accessKind); + } + + public void codimComponentAttr(CodimComponentAttr codimComponentAttr) { + var coarraySpec = getChild(codimComponentAttr, FlangName.COARRAY_SPEC); + codimComponentAttr.addChild(coarraySpec); + } + + public void dimComponentAttr(DimComponentAttr dimComponentAttr) { + var arraySpec = getChild(dimComponentAttr, FlangName.COMPONENT_ARRAY_SPEC); + dimComponentAttr.addChild(arraySpec); + } + + public void otherComponentAttr(OtherComponentAttr otherComponentAttr) { + var variantKey = attributes(otherComponentAttr).getVariantKey(); + var kind = ComponentAttrKind.valueOf(variantKey.toUpperCase()); + otherComponentAttr.set(OtherComponentAttr.KIND, kind); + } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 12f58ec3..21f3a752 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -5,6 +5,10 @@ import pt.up.fe.specs.fortran.ast.nodes.alloc.ExprAllocOption; import pt.up.fe.specs.fortran.ast.nodes.alloc.VarAllocOption; import pt.up.fe.specs.fortran.ast.nodes.decl.*; +import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.AccessComponentAttr; +import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.CodimComponentAttr; +import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.DimComponentAttr; +import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.OtherComponentAttr; import pt.up.fe.specs.fortran.ast.nodes.specification.shape.*; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.DeclTypeFunctionSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.EmptyFunctionSpec; @@ -115,6 +119,10 @@ public Nodes(FortranJsonResult data) { processors.put(AccessTypeAttr.class, d::accessTypeAttr); processors.put(BindTypeAttr.class, d::bindTypeAttr); processors.put(ExtendsTypeAttr.class, d::extendsTypeAttr); + processors.put(AccessComponentAttr.class, d::accessComponentAttr); + processors.put(CodimComponentAttr.class, d::codimComponentAttr); + processors.put(DimComponentAttr.class, d::dimComponentAttr); + processors.put(OtherComponentAttr.class, d::otherComponentAttr); var v = new VariableProcessor(data); processors.put(DataRef.class, v::dataRef); From 614b98f21f9dd65648cdf2e1641895deb6b99e99 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 8 Aug 2026 19:18:00 +0100 Subject: [PATCH 231/260] Finish processors for derived type definition nodes --- .../specs/fortran/parser/FlangAttributes.java | 6 ++- .../up/fe/specs/fortran/parser/FlangName.java | 4 ++ .../parser/processors/DeclProcessors.java | 43 +++++++++++++++++-- .../fortran/parser/processors/Nodes.java | 9 ++++ .../parser/processors/StmtProcessors.java | 37 ++++++++++++++++ 5 files changed, 94 insertions(+), 5 deletions(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangAttributes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangAttributes.java index 02138443..b5270f77 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangAttributes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangAttributes.java @@ -95,7 +95,11 @@ public List getList(StringProvider key, Function converter) { public List getList(String key, Function converter) { var value = attributes.get(key); - Objects.requireNonNull(value, () -> "Attrs do not have a value for key '" + key + "': " + attributes); +// Objects.requireNonNull(value, () -> "Attrs do not have a value for key '" + key + "': " + attributes); + if (value == null) { + return List.of(); + } + if (value instanceof List list) { return list.stream().map(o -> converter.apply(o)).toList(); } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index eece74c4..50ad1421 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -58,6 +58,8 @@ public enum FlangName implements StringProvider { ABSTRACT, BIND_C, EXTENDS, + TYPE_PARAM_DEF_STMT, + PRIVATE_OR_SEQUENCE, COMPONENT_DEF_STMT, DATA_COMPONENT_DEF_STMT, COMPONENT_ATTR_SPEC, @@ -65,7 +67,9 @@ public enum FlangName implements StringProvider { COMPONENT_ARRAY_SPEC, POINTER, CUDA_DATA_ATTR("CUDADataAttr"), + COMPONENT_OR_FILL, COMPONENT_DECL, + TYPE_BOUND_PROCEDURE_PART, END_TYPE_STMT, /// STMTs diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java index 3327fb8f..35b5b74a 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java @@ -1,13 +1,13 @@ package pt.up.fe.specs.fortran.parser.processors; import pt.up.fe.specs.fortran.ast.nodes.decl.*; +import pt.up.fe.specs.fortran.ast.nodes.decl.component.ComponentDecl; import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.AccessComponentAttr; import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.CodimComponentAttr; import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.DimComponentAttr; import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.OtherComponentAttr; import pt.up.fe.specs.fortran.ast.nodes.decl.enums.ComponentAttrKind; -import pt.up.fe.specs.fortran.ast.nodes.specification.ImplicitSpec; -import pt.up.fe.specs.fortran.ast.nodes.specification.LetterSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.*; import pt.up.fe.specs.fortran.ast.nodes.specification.enums.AccessKind; import pt.up.fe.specs.fortran.ast.nodes.specification.enums.EmptyFunctionSpecKind; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.DeclTypeFunctionSpec; @@ -21,8 +21,6 @@ import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.ExprTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.StarTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.expr.enums.BinaryOperatorKind; -import pt.up.fe.specs.fortran.ast.nodes.specification.IntrinsicOperator; -import pt.up.fe.specs.fortran.ast.nodes.specification.NamedOperator; import pt.up.fe.specs.fortran.ast.nodes.specification.enums.GenericSpecKind; import pt.up.fe.specs.fortran.ast.nodes.specification.genericspec.NameGenericSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.genericspec.OpGenericSpec; @@ -207,4 +205,41 @@ public void otherComponentAttr(OtherComponentAttr otherComponentAttr) { var kind = ComponentAttrKind.valueOf(variantKey.toUpperCase()); otherComponentAttr.set(OtherComponentAttr.KIND, kind); } + + public void componentDecl(ComponentDecl componentDecl) { + var componentName = attributes().getString(componentDecl, "source", FlangName.NAME); + componentDecl.set(ComponentDecl.COMPONENT_NAME, componentName); + + var arraySpec = getChildOptional(componentDecl, FlangName.COMPONENT_ARRAY_SPEC); + arraySpec.ifPresent(componentDecl::addChild); + + var coarraySpec = getChildOptional(componentDecl, FlangName.COARRAY_SPEC); + coarraySpec.ifPresent(componentDecl::addChild); + + var charLenSelector = getChildOptional(componentDecl, FlangName.CHAR_LENGTH); + charLenSelector.ifPresent(componentDecl::addChild); + + var initialization = getChildOptional(componentDecl, FlangName.INITIALIZATION); + initialization.ifPresent(componentDecl::addChild); + } + + public void derivedTypeDef(DerivedTypeDef derivedTypeDef) { + var derivedTypeStmt = getChild(derivedTypeDef, FlangName.DERIVED_TYPE_STMT); + derivedTypeDef.addChild(derivedTypeStmt); + +// var typeParamDefStmts = getChildren(derivedTypeDef, FlangName.TYPE_PARAM_DEF_STMT); +// derivedTypeDef.addChildren(typeParamDefStmts); +// +// var privateOrSequenceStmts = getChildren(derivedTypeDef, FlangName.PRIVATE_OR_SEQUENCE); +// derivedTypeDef.addChildren(privateOrSequenceStmts); + + var componentDefStmts = getChildren(derivedTypeDef, FlangName.COMPONENT_DEF_STMT); + derivedTypeDef.addChildren(componentDefStmts); + +// var typeBoundProcedurePart = getChildOptional(derivedTypeDef, FlangName.TYPE_BOUND_PROCEDURE_PART); +// typeBoundProcedurePart.ifPresent(derivedTypeDef::addChild); + + var endTypeStmt = getChild(derivedTypeDef, FlangName.END_TYPE_STMT); + derivedTypeDef.addChild(endTypeStmt); + } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 21f3a752..882e541c 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -5,6 +5,7 @@ import pt.up.fe.specs.fortran.ast.nodes.alloc.ExprAllocOption; import pt.up.fe.specs.fortran.ast.nodes.alloc.VarAllocOption; import pt.up.fe.specs.fortran.ast.nodes.decl.*; +import pt.up.fe.specs.fortran.ast.nodes.decl.component.ComponentDecl; import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.AccessComponentAttr; import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.CodimComponentAttr; import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.DimComponentAttr; @@ -16,6 +17,9 @@ import pt.up.fe.specs.fortran.ast.nodes.specification.type.AccessTypeAttr; import pt.up.fe.specs.fortran.ast.nodes.specification.type.BindTypeAttr; import pt.up.fe.specs.fortran.ast.nodes.specification.type.ExtendsTypeAttr; +import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.DataComponentDefStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.DerivedTypeStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.EndTypeStmt; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DerivedDeclType; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.IntrinsicDeclType; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.StarDeclType; @@ -123,6 +127,8 @@ public Nodes(FortranJsonResult data) { processors.put(CodimComponentAttr.class, d::codimComponentAttr); processors.put(DimComponentAttr.class, d::dimComponentAttr); processors.put(OtherComponentAttr.class, d::otherComponentAttr); + processors.put(ComponentDecl.class, d::componentDecl); + processors.put(DerivedTypeDef.class, d::derivedTypeDef); var v = new VariableProcessor(data); processors.put(DataRef.class, v::dataRef); @@ -191,6 +197,9 @@ public Nodes(FortranJsonResult data) { processors.put(ImportStmt.class, s::importStmt); processors.put(DefaultImplicitStmt.class, s::defaultImplicitStmt); processors.put(ImplicitNoneStmt.class, s::implicitNoneStmt); + processors.put(DerivedTypeStmt.class, s::derivedTypeStmt); + processors.put(DataComponentDefStmt.class, s::dataComponentDefStmt); + processors.put(EndTypeStmt.class, s::endTypeStmt); var e = new ExprProcessors(data); processors.put(StringLiteral.class, e::stringLiteral); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 4989d995..469f97d8 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -28,6 +28,9 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.EndDoStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.*; +import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.DataComponentDefStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.DerivedTypeStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.EndTypeStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.*; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.DimensionSpec; import pt.up.fe.specs.fortran.parser.FlangAttributes; @@ -800,4 +803,38 @@ public void implicitNoneStmt(ImplicitNoneStmt implicitStmt) { implicitStmt.set(ImplicitNoneStmt.EXPLICIT_TYPES, specValues.contains("Type")); implicitStmt.set(ImplicitNoneStmt.EXPLICIT_EXTERNAL, specValues.contains("External")); } + + public void derivedTypeStmt(DerivedTypeStmt derivedTypeStmt) { + stmt(derivedTypeStmt); + + var typeAttrs = getChildren(derivedTypeStmt, FlangName.TYPE_ATTR_SPEC); + derivedTypeStmt.addChildren(typeAttrs); + + var typeNameId = attributes().getString(derivedTypeStmt, "TypeName"); + var typeName = attributes().get(typeNameId).getString("source"); + derivedTypeStmt.set(DerivedTypeStmt.TYPE_NAME, typeName); + + var paramNameIds = attributes(derivedTypeStmt).getStringList("ParamNames"); + var paramNames = paramNameIds.stream() + .map(this::toNamedParameter) + .toList(); + derivedTypeStmt.addChildren(paramNames); + } + + public void dataComponentDefStmt(DataComponentDefStmt dataComponentDefStmt) { + stmt(dataComponentDefStmt); + + var declType = getChild(dataComponentDefStmt, FlangName.DECLARATION_TYPE_SPEC); + dataComponentDefStmt.addChild(declType); + + var componentAttrs = getChildren(dataComponentDefStmt, FlangName.COMPONENT_ATTR_SPEC); + dataComponentDefStmt.addChildren(componentAttrs); + + var componentDecls = getChildren(dataComponentDefStmt, FlangName.COMPONENT_OR_FILL); + dataComponentDefStmt.addChildren(componentDecls); + } + + public void endTypeStmt(EndTypeStmt endTypeStmt) { + stmt(endTypeStmt); + } } From e169b84ac3886c4adf9fe9bccdcb41678246d4a9 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 8 Aug 2026 19:59:48 +0100 Subject: [PATCH 232/260] Implement interface AST nodes --- .../fe/specs/fortran/ast/FortranKeyword.java | 1 + .../interfaces/InterfaceBlock.java | 50 +++++++++++++++++++ .../interfaces/InterfaceBody.java | 35 +++++++++++++ .../interfaces/InterfaceFunction.java | 26 ++++++++++ .../interfaces/InterfaceProcedureStmt.java | 13 +++++ .../interfaces/InterfaceSpecification.java | 12 +++++ .../interfaces/InterfaceSubroutine.java | 25 ++++++++++ .../interfaces/AbstractInterfaceStmt.java | 25 ++++++++++ .../stmt/interfaces/DefaultInterfaceStmt.java | 29 +++++++++++ .../stmt/interfaces/EndInterfaceStmt.java | 23 +++++++++ .../nodes/stmt/interfaces/InterfaceStmt.java | 17 +++++++ 11 files changed, 256 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/interfaces/InterfaceBlock.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/interfaces/InterfaceBody.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/interfaces/InterfaceFunction.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/interfaces/InterfaceProcedureStmt.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/interfaces/InterfaceSpecification.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/interfaces/InterfaceSubroutine.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/interfaces/AbstractInterfaceStmt.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/interfaces/DefaultInterfaceStmt.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/interfaces/EndInterfaceStmt.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/interfaces/InterfaceStmt.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java index 66753e2b..9c64ad09 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -84,6 +84,7 @@ public enum FortranKeyword { CODIMENSION, EXTENDS, ABSTRACT, + INTERFACE, OMP; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/interfaces/InterfaceBlock.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/interfaces/InterfaceBlock.java new file mode 100644 index 00000000..36cc3493 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/interfaces/InterfaceBlock.java @@ -0,0 +1,50 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.interfaces; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.program.construct.SpecConstruct; +import pt.up.fe.specs.fortran.ast.nodes.specification.genericspec.GenericSpec; +import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.EndInterfaceStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.InterfaceStmt; + +import java.util.Collection; +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +public class InterfaceBlock extends SpecConstruct { + public InterfaceBlock(DataStore data, Collection children) { + super(data, children); + } + + public Optional getGenericSpec() { + return getInterfaceStmt().getGenericSpec(); + } + + public InterfaceStmt getInterfaceStmt() { + return getChild(InterfaceStmt.class, 0); + } + + public List getInterfaceSpecifications() { + return getChildrenOf(InterfaceSpecification.class); + } + + public EndInterfaceStmt getEndInterfaceStmt() { + return getChild(EndInterfaceStmt.class, getNumChildren() - 1); + } + + @Override + public String getCode() { + var interfaceStmtCode = getInterfaceStmt().getCode(); + + var interfaceSpecificationsCode = getInterfaceSpecifications().stream() + .map(specification -> indent(specification.getCode()) + ln()) + .collect(Collectors.joining(ln())); + + var endInterfaceStmtCode = getEndInterfaceStmt().getCode(); + + return interfaceStmtCode + ln() + + interfaceSpecificationsCode + + endInterfaceStmtCode; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/interfaces/InterfaceBody.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/interfaces/InterfaceBody.java new file mode 100644 index 00000000..1be975bf --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/interfaces/InterfaceBody.java @@ -0,0 +1,35 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.interfaces; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.program.Specification; +import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; + +import java.util.Collection; + +public abstract class InterfaceBody extends InterfaceSpecification { + public InterfaceBody(DataStore data, Collection children) { + super(data, children); + } + + protected Stmt getStartStmt() { + return getChild(Stmt.class, 0); + } + + public Specification getSpecification() { + return getChild(Specification.class, 1); + } + + protected Stmt getEndStmt() { + return getChild(Stmt.class, 2); + } + + @Override + public String getCode() { + var startStmtCode = getStartStmt().getCode(); + var specificationCode = getSpecification().getCode(); + var endStmtCode = getEndStmt().getCode(); + + return startStmtCode + ln() + indent(specificationCode) + ln() + endStmtCode; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/interfaces/InterfaceFunction.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/interfaces/InterfaceFunction.java new file mode 100644 index 00000000..3f490d1e --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/interfaces/InterfaceFunction.java @@ -0,0 +1,26 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.interfaces; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.EndFunctionStmt; +import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.FunctionStmt; + +import java.util.Collection; + +public class InterfaceFunction extends InterfaceBody { + public InterfaceFunction(DataStore data, Collection children) { + super(data, children); + } + + public String getName() { + return getFunctionStmt().getFunctionName(); + } + + public FunctionStmt getFunctionStmt() { + return (FunctionStmt) getStartStmt(); + } + + public EndFunctionStmt getEndFunctionStmt() { + return (EndFunctionStmt) getEndStmt(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/interfaces/InterfaceProcedureStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/interfaces/InterfaceProcedureStmt.java new file mode 100644 index 00000000..8b82d89b --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/interfaces/InterfaceProcedureStmt.java @@ -0,0 +1,13 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.interfaces; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +// TODO(Process-ing): Implement this node +public class InterfaceProcedureStmt extends InterfaceSpecification { + public InterfaceProcedureStmt(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/interfaces/InterfaceSpecification.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/interfaces/InterfaceSpecification.java new file mode 100644 index 00000000..8f5705c1 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/interfaces/InterfaceSpecification.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.interfaces; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class InterfaceSpecification extends FortranNode { + public InterfaceSpecification(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/interfaces/InterfaceSubroutine.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/interfaces/InterfaceSubroutine.java new file mode 100644 index 00000000..13305b44 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/specification/interfaces/InterfaceSubroutine.java @@ -0,0 +1,25 @@ +package pt.up.fe.specs.fortran.ast.nodes.specification.interfaces; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.SubroutineStmt; + +import java.util.Collection; + +public class InterfaceSubroutine extends InterfaceBody { + public InterfaceSubroutine(DataStore data, Collection children) { + super(data, children); + } + + public String getName() { + return getSubroutineStmt().getSubroutineName(); + } + + public SubroutineStmt getSubroutineStmt() { + return (SubroutineStmt) getStartStmt(); + } + + public SubroutineStmt getEndSubroutineStmt() { + return (SubroutineStmt) getEndStmt(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/interfaces/AbstractInterfaceStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/interfaces/AbstractInterfaceStmt.java new file mode 100644 index 00000000..bd16ea7f --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/interfaces/AbstractInterfaceStmt.java @@ -0,0 +1,25 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.specification.genericspec.GenericSpec; + +import java.util.Collection; +import java.util.Optional; + +public class AbstractInterfaceStmt extends InterfaceStmt { + public AbstractInterfaceStmt(DataStore data, Collection children) { + super(data, children); + } + + @Override + public Optional getGenericSpec() { + return Optional.empty(); + } + + @Override + public String getStmtCode() { + return keyword(FortranKeyword.ABSTRACT) + " " + keyword(FortranKeyword.INTERFACE); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/interfaces/DefaultInterfaceStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/interfaces/DefaultInterfaceStmt.java new file mode 100644 index 00000000..167ff07c --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/interfaces/DefaultInterfaceStmt.java @@ -0,0 +1,29 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.specification.genericspec.GenericSpec; + +import java.util.Collection; +import java.util.Optional; + +public class DefaultInterfaceStmt extends InterfaceStmt { + public DefaultInterfaceStmt(DataStore data, Collection children) { + super(data, children); + } + + @Override + public Optional getGenericSpec() { + return getChildTry(GenericSpec.class, 0); + } + + @Override + public String getStmtCode() { + var genericSpecCode = getGenericSpec() + .map(spec -> spec.getCode() + " ") + .orElse(""); + + return keyword(FortranKeyword.INTERFACE) + genericSpecCode; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/interfaces/EndInterfaceStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/interfaces/EndInterfaceStmt.java new file mode 100644 index 00000000..26aa7411 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/interfaces/EndInterfaceStmt.java @@ -0,0 +1,23 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; + +import java.util.Collection; + +public class EndInterfaceStmt extends Stmt { + public EndInterfaceStmt(DataStore data, Collection children) { + super(data, children); + } + + @Override + public String getStmtCode() { + var genericSpecCode = getAncestor(InterfaceStmt.class).getGenericSpec() + .map(spec -> " " + spec.getCode()) + .orElse(""); + + return keyword(FortranKeyword.END) + " " + keyword(FortranKeyword.INTERFACE) + genericSpecCode; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/interfaces/InterfaceStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/interfaces/InterfaceStmt.java new file mode 100644 index 00000000..c365c06b --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/interfaces/InterfaceStmt.java @@ -0,0 +1,17 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.specification.genericspec.GenericSpec; +import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; + +import java.util.Collection; +import java.util.Optional; + +public abstract class InterfaceStmt extends Stmt { + public InterfaceStmt(DataStore data, Collection children) { + super(data, children); + } + + public abstract Optional getGenericSpec(); +} From 754dfc5cae097c329e03a2bdf70f1c215f684868 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 8 Aug 2026 20:07:42 +0100 Subject: [PATCH 233/260] Add interface nodes to class mapping --- .../pt/up/fe/specs/fortran/parser/FlangName.java | 8 ++++++++ .../up/fe/specs/fortran/parser/FlangToClass.java | 14 ++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 50ad1421..a06a60d3 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -71,6 +71,14 @@ public enum FlangName implements StringProvider { COMPONENT_DECL, TYPE_BOUND_PROCEDURE_PART, END_TYPE_STMT, + INTERFACE_BLOCK, + INTERFACE_STMT, + INTERFACE_SPECIFICATION, + INTERFACE_BODY, + FUNCTION, + SUBROUTINE, + PROCEDURE_STMT, + END_INTERFACE_STMT, /// STMTs STATEMENT, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index eb2848ad..567e8a2a 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -10,11 +10,18 @@ import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.*; import pt.up.fe.specs.fortran.ast.nodes.specification.coshape.DeferredCoshapeSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.coshape.ExplicitCoshapeSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.interfaces.InterfaceBlock; +import pt.up.fe.specs.fortran.ast.nodes.specification.interfaces.InterfaceFunction; +import pt.up.fe.specs.fortran.ast.nodes.specification.interfaces.InterfaceSubroutine; import pt.up.fe.specs.fortran.ast.nodes.specification.shape.*; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.DeclTypeFunctionSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.EmptyFunctionSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.FunctionSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.type.*; +import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.AbstractInterfaceStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.DefaultInterfaceStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.EndInterfaceStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.InterfaceStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.DataComponentDefStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.DerivedTypeStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.EndTypeStmt; @@ -126,6 +133,9 @@ public class FlangToClass { .map(FlangName.ACCESS_SPEC, AccessTypeAttr.class) .map(FlangName.BIND_C, BindTypeAttr.class) .map(FlangName.EXTENDS, ExtendsTypeAttr.class)); + NAME_TO_MAPPER.put(FlangName.INTERFACE_BLOCK, ClassMapper.always(InterfaceBlock.class)); + NAME_TO_MAPPER.put(FlangName.FUNCTION, ClassMapper.always(InterfaceFunction.class)); + NAME_TO_MAPPER.put(FlangName.SUBROUTINE, ClassMapper.always(InterfaceSubroutine.class)); /// STMTs NAME_TO_MAPPER.put(FlangName.PRINT_STMT, ClassMapper.always(PrintStmt.class)); @@ -201,6 +211,10 @@ public class FlangToClass { .map(FlangName.POINTER, OtherComponentAttr.class)); NAME_TO_MAPPER.put(FlangName.COMPONENT_DECL, ClassMapper.always(ComponentDecl.class)); NAME_TO_MAPPER.put(FlangName.END_TYPE_STMT, ClassMapper.always(EndTypeStmt.class)); + NAME_TO_MAPPER.put(FlangName.INTERFACE_STMT, ClassMapper.caseFor(InterfaceStmt.class) + .map(FlangName.GENERIC_SPEC, DefaultInterfaceStmt.class) + .map(FlangName.ABSTRACT, AbstractInterfaceStmt.class)); + NAME_TO_MAPPER.put(FlangName.END_INTERFACE_STMT, ClassMapper.always(EndInterfaceStmt.class)); /// Variables //NAME_TO_CLASS.put(FlangName.DATA_REF, DataRef.class); // TODO(Process-ing): Improve this From e7a4d9e66e94a98c2d684acb1ee6382b545e8347 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 8 Aug 2026 20:15:27 +0100 Subject: [PATCH 234/260] Add processors for interface nodes --- .../parser/processors/DeclProcessors.java | 36 +++++++++++++++++++ .../fortran/parser/processors/Nodes.java | 12 +++++++ .../parser/processors/StmtProcessors.java | 18 ++++++++++ 3 files changed, 66 insertions(+) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java index 35b5b74a..3b847adb 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java @@ -12,6 +12,9 @@ import pt.up.fe.specs.fortran.ast.nodes.specification.enums.EmptyFunctionSpecKind; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.DeclTypeFunctionSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.EmptyFunctionSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.interfaces.InterfaceBlock; +import pt.up.fe.specs.fortran.ast.nodes.specification.interfaces.InterfaceFunction; +import pt.up.fe.specs.fortran.ast.nodes.specification.interfaces.InterfaceSubroutine; import pt.up.fe.specs.fortran.ast.nodes.specification.type.AbstractTypeAttr; import pt.up.fe.specs.fortran.ast.nodes.specification.type.AccessTypeAttr; import pt.up.fe.specs.fortran.ast.nodes.specification.type.BindTypeAttr; @@ -242,4 +245,37 @@ public void derivedTypeDef(DerivedTypeDef derivedTypeDef) { var endTypeStmt = getChild(derivedTypeDef, FlangName.END_TYPE_STMT); derivedTypeDef.addChild(endTypeStmt); } + + public void interfaceBlock(InterfaceBlock interfaceBlock) { + var interfaceStmt = getChild(interfaceBlock, FlangName.INTERFACE_STMT); + interfaceBlock.addChild(interfaceStmt); + + var interfaceSpecifications = getChildren(interfaceBlock, FlangName.INTERFACE_SPECIFICATION); + interfaceBlock.addChildren(interfaceSpecifications); + + var endInterfaceStmt = getChild(interfaceBlock, FlangName.END_INTERFACE_STMT); + interfaceBlock.addChild(endInterfaceStmt); + } + + public void interfaceFunction(InterfaceFunction interfaceFunction) { + var functionStmt = getChild(interfaceFunction, FlangName.FUNCTION_STMT); + interfaceFunction.addChild(functionStmt); + + var specification = getChild(interfaceFunction, FlangName.SPECIFICATION_PART); + interfaceFunction.addChild(specification); + + var endFunctionStmt = getChild(interfaceFunction, FlangName.END_FUNCTION_STMT); + interfaceFunction.addChild(endFunctionStmt); + } + + public void interfaceSubroutine(InterfaceSubroutine interfaceSubroutine) { + var subroutineStmt = getChild(interfaceSubroutine, FlangName.SUBROUTINE_STMT); + interfaceSubroutine.addChild(subroutineStmt); + + var specification = getChild(interfaceSubroutine, FlangName.SPECIFICATION_PART); + interfaceSubroutine.addChild(specification); + + var endSubroutineStmt = getChild(interfaceSubroutine, FlangName.END_SUBROUTINE_STMT); + interfaceSubroutine.addChild(endSubroutineStmt); + } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 882e541c..d1a1884f 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -10,6 +10,9 @@ import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.CodimComponentAttr; import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.DimComponentAttr; import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.OtherComponentAttr; +import pt.up.fe.specs.fortran.ast.nodes.specification.interfaces.InterfaceBlock; +import pt.up.fe.specs.fortran.ast.nodes.specification.interfaces.InterfaceFunction; +import pt.up.fe.specs.fortran.ast.nodes.specification.interfaces.InterfaceSubroutine; import pt.up.fe.specs.fortran.ast.nodes.specification.shape.*; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.DeclTypeFunctionSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.EmptyFunctionSpec; @@ -17,6 +20,9 @@ import pt.up.fe.specs.fortran.ast.nodes.specification.type.AccessTypeAttr; import pt.up.fe.specs.fortran.ast.nodes.specification.type.BindTypeAttr; import pt.up.fe.specs.fortran.ast.nodes.specification.type.ExtendsTypeAttr; +import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.AbstractInterfaceStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.DefaultInterfaceStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.EndInterfaceStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.DataComponentDefStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.DerivedTypeStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.EndTypeStmt; @@ -129,6 +135,9 @@ public Nodes(FortranJsonResult data) { processors.put(OtherComponentAttr.class, d::otherComponentAttr); processors.put(ComponentDecl.class, d::componentDecl); processors.put(DerivedTypeDef.class, d::derivedTypeDef); + processors.put(InterfaceBlock.class, d::interfaceBlock); + processors.put(InterfaceFunction.class, d::interfaceFunction); + processors.put(InterfaceSubroutine.class, d::interfaceSubroutine); var v = new VariableProcessor(data); processors.put(DataRef.class, v::dataRef); @@ -200,6 +209,9 @@ public Nodes(FortranJsonResult data) { processors.put(DerivedTypeStmt.class, s::derivedTypeStmt); processors.put(DataComponentDefStmt.class, s::dataComponentDefStmt); processors.put(EndTypeStmt.class, s::endTypeStmt); + processors.put(DefaultInterfaceStmt.class, s::defaultInterfaceStmt); + processors.put(AbstractInterfaceStmt.class, s::abstractInterfaceStmt); + processors.put(EndInterfaceStmt.class, s::endInterfaceStmt); var e = new ExprProcessors(data); processors.put(StringLiteral.class, e::stringLiteral); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 469f97d8..3b10d433 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -24,6 +24,9 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.dimstmt.DimensionStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.enums.ImportKind; import pt.up.fe.specs.fortran.ast.nodes.stmt.ifstmt.*; +import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.AbstractInterfaceStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.DefaultInterfaceStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.EndInterfaceStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.EndDoStmt; @@ -837,4 +840,19 @@ public void dataComponentDefStmt(DataComponentDefStmt dataComponentDefStmt) { public void endTypeStmt(EndTypeStmt endTypeStmt) { stmt(endTypeStmt); } + + public void defaultInterfaceStmt(DefaultInterfaceStmt defaultInterfaceStmt) { + stmt(defaultInterfaceStmt); + + var genericSpec = getChildOptional(defaultInterfaceStmt, FlangName.GENERIC_SPEC); + genericSpec.ifPresent(defaultInterfaceStmt::addChild); + } + + public void abstractInterfaceStmt(AbstractInterfaceStmt abstractInterfaceStmt) { + stmt(abstractInterfaceStmt); + } + + public void endInterfaceStmt(EndInterfaceStmt endInterfaceStmt) { + stmt(endInterfaceStmt); + } } From d51b242840d843b2a8a08c25b2e65c829d95bb41 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 8 Aug 2026 20:19:35 +0100 Subject: [PATCH 235/260] Regenerate dump --- .../fortran/parser/program/module2.json | 288 +++++++++--------- 1 file changed, 144 insertions(+), 144 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/program/module2.json b/FortranParser/resources-test/fortran/parser/program/module2.json index a8d35deb..06d6cc72 100644 --- a/FortranParser/resources-test/fortran/parser/program/module2.json +++ b/FortranParser/resources-test/fortran/parser/program/module2.json @@ -2,366 +2,366 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x564b62c0ef00-Program", + "id": "0x5608f4930f00-Program", "ProgramUnit": [ - "0x564b62c45170-ProgramUnit" + "0x5608f4967170-ProgramUnit" ] }, { - "id": "0x564b62c45170-ProgramUnit", + "id": "0x5608f4967170-ProgramUnit", "variantKey": "Module", - "Module": "0x564b62c49460-Module" + "Module": "0x5608f496b460-Module" }, { - "id": "0x564b62c49460-Module", - "Statement": "0x564b62c49590-Statement", - "SpecificationPart": "0x564b62c494e8-SpecificationPart", - "Statement": "0x564b62c49460-Statement" + "id": "0x5608f496b460-Module", + "Statement": "0x5608f496b590-Statement", + "SpecificationPart": "0x5608f496b4e8-SpecificationPart", + "Statement": "0x5608f496b460-Statement" }, { - "id": "0x564b62c49590-Statement", - "statement": "0x564b62c495a0-ModuleStmt", + "id": "0x5608f496b590-Statement", + "statement": "0x5608f496b5a0-ModuleStmt", "source": "module geometry_mod" }, { - "id": "0x564b62c495a0-ModuleStmt", - "Name": "0x564b62c495a0-Name" + "id": "0x5608f496b5a0-ModuleStmt", + "Name": "0x5608f496b5a0-Name" }, { - "id": "0x564b62c495a0-Name", + "id": "0x5608f496b5a0-Name", "source": "geometry_mod" }, { - "id": "0x564b62c494e8-SpecificationPart", - "ImplicitPart": "0x564b62c49500-ImplicitPart", + "id": "0x5608f496b4e8-SpecificationPart", + "ImplicitPart": "0x5608f496b500-ImplicitPart", "DeclarationConstruct": [ - "0x564b62c0d4e0-DeclarationConstruct", - "0x564b62c1c110-DeclarationConstruct" + "0x5608f492f4e0-DeclarationConstruct", + "0x5608f493e110-DeclarationConstruct" ] }, { - "id": "0x564b62c49500-ImplicitPart", + "id": "0x5608f496b500-ImplicitPart", "ImplicitPartStmt": [ - "0x564b62c52770-ImplicitPartStmt" + "0x5608f4974770-ImplicitPartStmt" ] }, { - "id": "0x564b62c52770-ImplicitPartStmt", + "id": "0x5608f4974770-ImplicitPartStmt", "variantKey": "Statement", - "Statement": "0x564b62c52770-Statement" + "Statement": "0x5608f4974770-Statement" }, { - "id": "0x564b62c52770-Statement", - "statement": "0x564b62c450b0-ImplicitStmt", + "id": "0x5608f4974770-Statement", + "statement": "0x5608f49670b0-ImplicitStmt", "source": "implicit none" }, { - "id": "0x564b62c450b0-ImplicitStmt", + "id": "0x5608f49670b0-ImplicitStmt", "variantKey": "ImplicitNoneNameSpec", "ImplicitNoneNameSpec": [] }, { - "id": "0x564b62c0d4e0-DeclarationConstruct", + "id": "0x5608f492f4e0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x564b62c0d4e0-SpecificationConstruct" + "SpecificationConstruct": "0x5608f492f4e0-SpecificationConstruct" }, { - "id": "0x564b62c0d4e0-SpecificationConstruct", + "id": "0x5608f492f4e0-SpecificationConstruct", "variantKey": "DerivedTypeDef", - "DerivedTypeDef": "0x564b62c52810-DerivedTypeDef" + "DerivedTypeDef": "0x5608f4974810-DerivedTypeDef" }, { - "id": "0x564b62c52810-DerivedTypeDef", - "Statement": "0x564b62c52910-Statement", + "id": "0x5608f4974810-DerivedTypeDef", + "Statement": "0x5608f4974910-Statement", "Statement": [ - "0x564b62c45e30-Statement" + "0x5608f4967e30-Statement" ], - "Statement": "0x564b62c52810-Statement" + "Statement": "0x5608f4974810-Statement" }, { - "id": "0x564b62c52910-Statement", - "statement": "0x564b62c52920-DerivedTypeStmt", + "id": "0x5608f4974910-Statement", + "statement": "0x5608f4974920-DerivedTypeStmt", "source": "type :: point" }, { - "id": "0x564b62c52920-DerivedTypeStmt", + "id": "0x5608f4974920-DerivedTypeStmt", "TypeAttrSpec": [], - "TypeName": "0x564b62c52938-Name", + "TypeName": "0x5608f4974938-Name", "ParamNames": [] }, { - "id": "0x564b62c52938-Name", + "id": "0x5608f4974938-Name", "source": "point" }, { - "id": "0x564b62c45e30-Statement", - "statement": "0x564b62c45e40-ComponentDefStmt", + "id": "0x5608f4967e30-Statement", + "statement": "0x5608f4967e40-ComponentDefStmt", "source": "real :: x, y" }, { - "id": "0x564b62c45e40-ComponentDefStmt", + "id": "0x5608f4967e40-ComponentDefStmt", "variantKey": "DataComponentDefStmt", - "DataComponentDefStmt": "0x564b62c45e40-DataComponentDefStmt" + "DataComponentDefStmt": "0x5608f4967e40-DataComponentDefStmt" }, { - "id": "0x564b62c45e40-DataComponentDefStmt", - "DeclarationTypeSpec": "0x564b62c45e70-DeclarationTypeSpec", + "id": "0x5608f4967e40-DataComponentDefStmt", + "DeclarationTypeSpec": "0x5608f4967e70-DeclarationTypeSpec", "ComponentOrFill": [ - "0x564b62c49030-ComponentOrFill", - "0x564b62bae7a0-ComponentOrFill" + "0x5608f496b030-ComponentOrFill", + "0x5608f48d07a0-ComponentOrFill" ] }, { - "id": "0x564b62c45e70-DeclarationTypeSpec", + "id": "0x5608f4967e70-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x564b62c45e70-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5608f4967e70-IntrinsicTypeSpec" }, { - "id": "0x564b62c45e70-IntrinsicTypeSpec", + "id": "0x5608f4967e70-IntrinsicTypeSpec", "variantKey": "Real", - "Real": "0x564b62c45e70-Real" + "Real": "0x5608f4967e70-Real" }, { - "id": "0x564b62c45e70-Real" + "id": "0x5608f4967e70-Real" }, { - "id": "0x564b62c49030-ComponentOrFill", + "id": "0x5608f496b030-ComponentOrFill", "variantKey": "ComponentDecl", - "ComponentDecl": "0x564b62c49030-ComponentDecl" + "ComponentDecl": "0x5608f496b030-ComponentDecl" }, { - "id": "0x564b62c49030-ComponentDecl", - "Name": "0x564b62c490d8-Name" + "id": "0x5608f496b030-ComponentDecl", + "Name": "0x5608f496b0d8-Name" }, { - "id": "0x564b62c490d8-Name", + "id": "0x5608f496b0d8-Name", "source": "x" }, { - "id": "0x564b62bae7a0-ComponentOrFill", + "id": "0x5608f48d07a0-ComponentOrFill", "variantKey": "ComponentDecl", - "ComponentDecl": "0x564b62bae7a0-ComponentDecl" + "ComponentDecl": "0x5608f48d07a0-ComponentDecl" }, { - "id": "0x564b62bae7a0-ComponentDecl", - "Name": "0x564b62bae848-Name" + "id": "0x5608f48d07a0-ComponentDecl", + "Name": "0x5608f48d0848-Name" }, { - "id": "0x564b62bae848-Name", + "id": "0x5608f48d0848-Name", "source": "y" }, { - "id": "0x564b62c52810-Statement", - "statement": "0x564b62c52820-EndTypeStmt", + "id": "0x5608f4974810-Statement", + "statement": "0x5608f4974820-EndTypeStmt", "source": "end type point" }, { - "id": "0x564b62c52820-EndTypeStmt", - "Name": "0x564b62c52820-Name" + "id": "0x5608f4974820-EndTypeStmt", + "Name": "0x5608f4974820-Name" }, { - "id": "0x564b62c52820-Name", + "id": "0x5608f4974820-Name", "source": "point" }, { - "id": "0x564b62c1c110-DeclarationConstruct", + "id": "0x5608f493e110-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x564b62c1c110-SpecificationConstruct" + "SpecificationConstruct": "0x5608f493e110-SpecificationConstruct" }, { - "id": "0x564b62c1c110-SpecificationConstruct", + "id": "0x5608f493e110-SpecificationConstruct", "variantKey": "InterfaceBlock", - "InterfaceBlock": "0x564b62c49370-InterfaceBlock" + "InterfaceBlock": "0x5608f496b370-InterfaceBlock" }, { - "id": "0x564b62c49370-InterfaceBlock", - "Statement": "0x564b62c493e8-Statement", + "id": "0x5608f496b370-InterfaceBlock", + "Statement": "0x5608f496b3e8-Statement", "InterfaceSpecification": [ - "0x564b62be4790-InterfaceSpecification" + "0x5608f4906790-InterfaceSpecification" ], - "Statement": "0x564b62c49370-Statement" + "Statement": "0x5608f496b370-Statement" }, { - "id": "0x564b62c493e8-Statement", - "statement": "0x564b62c493f8-InterfaceStmt", + "id": "0x5608f496b3e8-Statement", + "statement": "0x5608f496b3f8-InterfaceStmt", "source": "interface" }, { - "id": "0x564b62c493f8-InterfaceStmt", - "variantKey": "null" + "id": "0x5608f496b3f8-InterfaceStmt", + "variantKey": "GenericSpec" }, { - "id": "0x564b62be4790-InterfaceSpecification", + "id": "0x5608f4906790-InterfaceSpecification", "variantKey": "InterfaceBody", - "InterfaceBody": "0x564b62be4790-InterfaceBody" + "InterfaceBody": "0x5608f4906790-InterfaceBody" }, { - "id": "0x564b62be4790-InterfaceBody", + "id": "0x5608f4906790-InterfaceBody", "variantKey": "Subroutine", - "Subroutine": "0x564b62be4790-Subroutine" + "Subroutine": "0x5608f4906790-Subroutine" }, { - "id": "0x564b62be4790-Subroutine", - "Statement": "0x564b62be47d8-Statement", - "SpecificationPart": "0x564b62babb00-SpecificationPart", - "Statement": "0x564b62be4790-Statement" + "id": "0x5608f4906790-Subroutine", + "Statement": "0x5608f49067d8-Statement", + "SpecificationPart": "0x5608f48cdb00-SpecificationPart", + "Statement": "0x5608f4906790-Statement" }, { - "id": "0x564b62be47d8-Statement", - "statement": "0x564b62be47e8-SubroutineStmt", + "id": "0x5608f49067d8-Statement", + "statement": "0x5608f49067e8-SubroutineStmt", "source": "subroutine draw_point(pt)" }, { - "id": "0x564b62be47e8-SubroutineStmt", - "Name": "0x564b62be4820-Name", + "id": "0x5608f49067e8-SubroutineStmt", + "Name": "0x5608f4906820-Name", "DummyArg": [ - "0x564b62c43dd0-DummyArg" + "0x5608f4965dd0-DummyArg" ] }, { - "id": "0x564b62be4820-Name", + "id": "0x5608f4906820-Name", "source": "draw_point" }, { - "id": "0x564b62c43dd0-DummyArg", + "id": "0x5608f4965dd0-DummyArg", "variantKey": "Name", - "Name": "0x564b62c43dd0-Name" + "Name": "0x5608f4965dd0-Name" }, { - "id": "0x564b62c43dd0-Name", + "id": "0x5608f4965dd0-Name", "source": "pt" }, { - "id": "0x564b62babb00-SpecificationPart", + "id": "0x5608f48cdb00-SpecificationPart", "Statement": [ - "0x564b62c444b0-Statement" + "0x5608f49664b0-Statement" ], - "ImplicitPart": "0x564b62babb18-ImplicitPart", + "ImplicitPart": "0x5608f48cdb18-ImplicitPart", "DeclarationConstruct": [ - "0x564b62c1bda0-DeclarationConstruct" + "0x5608f493dda0-DeclarationConstruct" ] }, { - "id": "0x564b62c444b0-Statement", - "statement": "0x564b62c45110-ImportStmt", + "id": "0x5608f49664b0-Statement", + "statement": "0x5608f4967110-ImportStmt", "source": "import :: point" }, { - "id": "0x564b62c45110-ImportStmt", - "ImportKind": "0x564b62c45128-ImportKind", + "id": "0x5608f4967110-ImportStmt", + "ImportKind": "0x5608f4967128-ImportKind", "Name": [ - "0x564b62c450f0-Name" + "0x5608f49670f0-Name" ] }, { - "id": "0x564b62c45128-ImportKind", + "id": "0x5608f4967128-ImportKind", "disambiguation": "Fortran::common::ImportKind", "value": "Default" }, { - "id": "0x564b62c450f0-Name", + "id": "0x5608f49670f0-Name", "source": "point" }, { - "id": "0x564b62babb18-ImplicitPart" + "id": "0x5608f48cdb18-ImplicitPart" }, { - "id": "0x564b62c1bda0-DeclarationConstruct", + "id": "0x5608f493dda0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x564b62c1bda0-SpecificationConstruct" + "SpecificationConstruct": "0x5608f493dda0-SpecificationConstruct" }, { - "id": "0x564b62c1bda0-SpecificationConstruct", + "id": "0x5608f493dda0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x564b62c1bda0-Statement" + "Statement": "0x5608f493dda0-Statement" }, { - "id": "0x564b62c1bda0-Statement", - "statement": "0x564b62c49100-TypeDeclarationStmt", + "id": "0x5608f493dda0-Statement", + "statement": "0x5608f496b100-TypeDeclarationStmt", "source": "type(point), intent(in) :: pt" }, { - "id": "0x564b62c49100-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x564b62c49130-DeclarationTypeSpec", + "id": "0x5608f496b100-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5608f496b130-DeclarationTypeSpec", "AttrSpec": [ - "0x564b62c4b610-AttrSpec" + "0x5608f496d610-AttrSpec" ], "EntityDecl": [ - "0x564b62c49210-EntityDecl" + "0x5608f496b210-EntityDecl" ] }, { - "id": "0x564b62c49130-DeclarationTypeSpec", + "id": "0x5608f496b130-DeclarationTypeSpec", "variantKey": "Type", - "Type": "0x564b62c49130-Type" + "Type": "0x5608f496b130-Type" }, { - "id": "0x564b62c49130-Type", - "DerivedTypeSpec": "0x564b62c49130-DerivedTypeSpec" + "id": "0x5608f496b130-Type", + "DerivedTypeSpec": "0x5608f496b130-DerivedTypeSpec" }, { - "id": "0x564b62c49130-DerivedTypeSpec", - "Name": "0x564b62c49150-Name" + "id": "0x5608f496b130-DerivedTypeSpec", + "Name": "0x5608f496b150-Name" }, { - "id": "0x564b62c49150-Name", + "id": "0x5608f496b150-Name", "source": "point" }, { - "id": "0x564b62c4b610-AttrSpec", + "id": "0x5608f496d610-AttrSpec", "variantKey": "IntentSpec", - "IntentSpec": "0x564b62c4b610-IntentSpec" + "IntentSpec": "0x5608f496d610-IntentSpec" }, { - "id": "0x564b62c4b610-IntentSpec", - "Intent": "0x564b62c4b610-Intent", + "id": "0x5608f496d610-IntentSpec", + "Intent": "0x5608f496d610-Intent", "intent": "In" }, { - "id": "0x564b62c4b610-Intent", + "id": "0x5608f496d610-Intent", "disambiguation": "Fortran::parser::IntentSpec::Intent", "value": "In" }, { - "id": "0x564b62c49210-EntityDecl", - "Name": "0x564b62c492c8-Name" + "id": "0x5608f496b210-EntityDecl", + "Name": "0x5608f496b2c8-Name" }, { - "id": "0x564b62c492c8-Name", + "id": "0x5608f496b2c8-Name", "source": "pt" }, { - "id": "0x564b62be4790-Statement", - "statement": "0x564b62be47a0-EndSubroutineStmt", + "id": "0x5608f4906790-Statement", + "statement": "0x5608f49067a0-EndSubroutineStmt", "source": "end subroutine draw_point" }, { - "id": "0x564b62be47a0-EndSubroutineStmt", - "Name": "0x564b62be47a0-Name" + "id": "0x5608f49067a0-EndSubroutineStmt", + "Name": "0x5608f49067a0-Name" }, { - "id": "0x564b62be47a0-Name", + "id": "0x5608f49067a0-Name", "source": "draw_point" }, { - "id": "0x564b62c49370-Statement", - "statement": "0x564b62c49380-EndInterfaceStmt", + "id": "0x5608f496b370-Statement", + "statement": "0x5608f496b380-EndInterfaceStmt", "source": "end interface" }, { - "id": "0x564b62c49380-EndInterfaceStmt" + "id": "0x5608f496b380-EndInterfaceStmt" }, { - "id": "0x564b62c49460-Statement", - "statement": "0x564b62c49470-EndModuleStmt", + "id": "0x5608f496b460-Statement", + "statement": "0x5608f496b470-EndModuleStmt", "source": "end module geometry_mod" }, { - "id": "0x564b62c49470-EndModuleStmt", - "Name": "0x564b62c49470-Name" + "id": "0x5608f496b470-EndModuleStmt", + "Name": "0x5608f496b470-Name" }, { - "id": "0x564b62c49470-Name", + "id": "0x5608f496b470-Name", "source": "geometry_mod" } ], From 491f222b75cac0462d9013c701fcd0fb0be9951a Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 8 Aug 2026 20:21:03 +0100 Subject: [PATCH 236/260] Fix statement child fetching on new processors --- .../parser/processors/DeclProcessors.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java index 3b847adb..77fd9fab 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java @@ -227,7 +227,7 @@ public void componentDecl(ComponentDecl componentDecl) { } public void derivedTypeDef(DerivedTypeDef derivedTypeDef) { - var derivedTypeStmt = getChild(derivedTypeDef, FlangName.DERIVED_TYPE_STMT); + var derivedTypeStmt = getStmtChild(derivedTypeDef, FlangName.DERIVED_TYPE_STMT); derivedTypeDef.addChild(derivedTypeStmt); // var typeParamDefStmts = getChildren(derivedTypeDef, FlangName.TYPE_PARAM_DEF_STMT); @@ -236,46 +236,46 @@ public void derivedTypeDef(DerivedTypeDef derivedTypeDef) { // var privateOrSequenceStmts = getChildren(derivedTypeDef, FlangName.PRIVATE_OR_SEQUENCE); // derivedTypeDef.addChildren(privateOrSequenceStmts); - var componentDefStmts = getChildren(derivedTypeDef, FlangName.COMPONENT_DEF_STMT); + var componentDefStmts = getChildren(derivedTypeDef, FlangName.COMPONENT_DEF_STMT.getStmtAttr()); derivedTypeDef.addChildren(componentDefStmts); // var typeBoundProcedurePart = getChildOptional(derivedTypeDef, FlangName.TYPE_BOUND_PROCEDURE_PART); // typeBoundProcedurePart.ifPresent(derivedTypeDef::addChild); - var endTypeStmt = getChild(derivedTypeDef, FlangName.END_TYPE_STMT); + var endTypeStmt = getStmtChild(derivedTypeDef, FlangName.END_TYPE_STMT); derivedTypeDef.addChild(endTypeStmt); } public void interfaceBlock(InterfaceBlock interfaceBlock) { - var interfaceStmt = getChild(interfaceBlock, FlangName.INTERFACE_STMT); + var interfaceStmt = getStmtChild(interfaceBlock, FlangName.INTERFACE_STMT); interfaceBlock.addChild(interfaceStmt); var interfaceSpecifications = getChildren(interfaceBlock, FlangName.INTERFACE_SPECIFICATION); interfaceBlock.addChildren(interfaceSpecifications); - var endInterfaceStmt = getChild(interfaceBlock, FlangName.END_INTERFACE_STMT); + var endInterfaceStmt = getStmtChild(interfaceBlock, FlangName.END_INTERFACE_STMT); interfaceBlock.addChild(endInterfaceStmt); } public void interfaceFunction(InterfaceFunction interfaceFunction) { - var functionStmt = getChild(interfaceFunction, FlangName.FUNCTION_STMT); + var functionStmt = getStmtChild(interfaceFunction, FlangName.FUNCTION_STMT); interfaceFunction.addChild(functionStmt); var specification = getChild(interfaceFunction, FlangName.SPECIFICATION_PART); interfaceFunction.addChild(specification); - var endFunctionStmt = getChild(interfaceFunction, FlangName.END_FUNCTION_STMT); + var endFunctionStmt = getStmtChild(interfaceFunction, FlangName.END_FUNCTION_STMT); interfaceFunction.addChild(endFunctionStmt); } public void interfaceSubroutine(InterfaceSubroutine interfaceSubroutine) { - var subroutineStmt = getChild(interfaceSubroutine, FlangName.SUBROUTINE_STMT); + var subroutineStmt = getStmtChild(interfaceSubroutine, FlangName.SUBROUTINE_STMT); interfaceSubroutine.addChild(subroutineStmt); var specification = getChild(interfaceSubroutine, FlangName.SPECIFICATION_PART); interfaceSubroutine.addChild(specification); - var endSubroutineStmt = getChild(interfaceSubroutine, FlangName.END_SUBROUTINE_STMT); + var endSubroutineStmt = getStmtChild(interfaceSubroutine, FlangName.END_SUBROUTINE_STMT); interfaceSubroutine.addChild(endSubroutineStmt); } } From 00e313bd11b875e73fde4d58ea2e0d2c8b14a15f Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 8 Aug 2026 20:22:08 +0100 Subject: [PATCH 237/260] Fix type name extraction on end type statement --- .../fe/specs/fortran/ast/nodes/stmt/typedef/EndTypeStmt.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/EndTypeStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/EndTypeStmt.java index 99d289e2..372eac6e 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/EndTypeStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/typedef/EndTypeStmt.java @@ -3,6 +3,7 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.specification.DerivedTypeDef; import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; import java.util.Collection; @@ -14,7 +15,7 @@ public EndTypeStmt(DataStore data, Collection children) { @Override public String getStmtCode() { - var typeName = getAncestor(DerivedTypeStmt.class).getTypeName(); + var typeName = getAncestor(DerivedTypeDef.class).getTypeName(); return keyword(FortranKeyword.END) + " " + keyword(FortranKeyword.TYPE) + " " + typeName; } From 30863b408c91f64c4ce67a9dc310a39ce3945709 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 8 Aug 2026 20:26:58 +0100 Subject: [PATCH 238/260] Fix name fetching for end function and end subroutine statements --- .../program/subprogram/EndFunctionStmt.java | 17 ++++++++++++++++- .../program/subprogram/EndSubroutineStmt.java | 17 ++++++++++++++++- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/EndFunctionStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/EndFunctionStmt.java index 40231a4b..44e30da1 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/EndFunctionStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/EndFunctionStmt.java @@ -3,6 +3,7 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.specification.interfaces.InterfaceFunction; import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; import java.util.Collection; @@ -12,9 +13,23 @@ public EndFunctionStmt(DataStore data, Collection childre super(data, children); } + public String getFunctionName() { + var parent = getParent(); + + if (parent instanceof Function function) { + return function.getName(); + } + + if (parent instanceof InterfaceFunction interfaceFunction) { + return interfaceFunction.getName(); + } + + throw new RuntimeException("EndFunctionStmt must be inside a Function or InterfaceFunction, but found: " + parent.getClass().getSimpleName()); + } + @Override public String getStmtCode() { - var functionName = getAncestor(Function.class).getName(); + var functionName = getFunctionName(); return keyword(FortranKeyword.END) + " " + keyword(FortranKeyword.FUNCTION) + " " + functionName; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/EndSubroutineStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/EndSubroutineStmt.java index 1de7286b..7094c971 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/EndSubroutineStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/EndSubroutineStmt.java @@ -3,6 +3,7 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.specification.interfaces.InterfaceSubroutine; import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; import java.util.Collection; @@ -12,6 +13,20 @@ public EndSubroutineStmt(DataStore data, Collection child super(data, children); } + public String getSubroutineName() { + var parent = getParent(); + + if (parent instanceof Subroutine subroutine) { + return subroutine.getName(); + } + + if (parent instanceof InterfaceSubroutine interfaceSubroutine) { + return interfaceSubroutine.getName(); + } + + throw new RuntimeException("EndSubroutineStmt must be inside a Subroutine or InterfaceSubroutine, but found: " + parent.getClass().getSimpleName()); + } + @Override public String getStmtCode() { // TODO(Process-ing): Remove this special case @@ -19,7 +34,7 @@ public String getStmtCode() { return keyword(FortranKeyword.END); } - var subroutineName = getAncestor(Subroutine.class).getName(); + var subroutineName = getSubroutineName(); return keyword(FortranKeyword.END) + " " + keyword(FortranKeyword.SUBROUTINE) + " " + subroutineName; } } From 6cdddfa12d634a31bce22ee6c636252913f560bc Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 8 Aug 2026 20:28:27 +0100 Subject: [PATCH 239/260] Fix name fetching for end interface statement --- .../fortran/ast/nodes/stmt/interfaces/EndInterfaceStmt.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/interfaces/EndInterfaceStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/interfaces/EndInterfaceStmt.java index 26aa7411..b9f5b805 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/interfaces/EndInterfaceStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/interfaces/EndInterfaceStmt.java @@ -3,6 +3,7 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.specification.interfaces.InterfaceBlock; import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; import java.util.Collection; @@ -14,7 +15,7 @@ public EndInterfaceStmt(DataStore data, Collection childr @Override public String getStmtCode() { - var genericSpecCode = getAncestor(InterfaceStmt.class).getGenericSpec() + var genericSpecCode = getAncestor(InterfaceBlock.class).getGenericSpec() .map(spec -> " " + spec.getCode()) .orElse(""); From 8d382ba8d33932daef257ced2c8fec5c85b069ae Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 11 Aug 2026 15:51:17 +0100 Subject: [PATCH 240/260] Improve program parts type consistency --- .../fortran/ast/nodes/omp/OmpConstruct.java | 4 +-- .../ast/nodes/program/Specification.java | 2 +- .../fortran/ast/nodes/program/StmtBlock.java | 2 -- .../construct/ActionStmtExecAdapter.java | 22 +++++++++++++ .../program/construct/DeclStmtAdapter.java | 4 +-- .../program/construct/ExecConstruct.java | 12 +++++++ .../program/construct/ExecPartConstruct.java | 12 +++++++ .../program/construct/IDEStmtDeclAdapter.java | 22 +++++++++++++ .../program/construct/IDEStmtExecAdapter.java | 22 +++++++++++++ .../construct/SpecDirectiveAdapter.java | 4 +-- .../program/construct/SpecStmtAdapter.java | 4 +-- .../fortran/ast/nodes/stmt/ActionStmt.java | 3 +- .../fortran/ast/nodes/stmt/ContainsStmt.java | 2 +- .../ast/nodes/stmt/ExecutableConstruct.java | 12 ------- .../ast/nodes/stmt/ExecutableStmt.java | 31 ------------------- .../fortran/ast/nodes/stmt/FormatStmt.java | 6 +++- .../specs/fortran/ast/nodes/stmt/IDEStmt.java | 16 ++++++++++ .../specs/fortran/ast/nodes/stmt/ISStmt.java | 16 ++++++++++ .../ast/nodes/stmt/LiteralExecutionStmt.java | 3 +- .../fortran/ast/nodes/stmt/ParameterStmt.java | 2 +- .../fortran/ast/nodes/stmt/ReturnStmt.java | 4 +-- .../ast/nodes/stmt/ifstmt/IfConstruct.java | 4 +-- .../{ => implicit}/DefaultImplicitStmt.java | 4 +-- .../stmt/implicit/IDEStmtImplicitAdapter.java | 22 +++++++++++++ .../stmt/implicit/ISStmtImplicitAdapter.java | 22 +++++++++++++ .../stmt/{ => implicit}/ImplicitNoneStmt.java | 2 +- .../stmt/{ => implicit}/ImplicitPartStmt.java | 3 +- .../stmt/{ => implicit}/ImplicitStmt.java | 2 +- .../ast/nodes/stmt/loop/DoConstruct.java | 4 +-- .../nodes/stmt/selectcase/CaseConstruct.java | 4 +-- .../fe/specs/fortran/parser/FlangToClass.java | 3 ++ .../fortran/parser/processors/Nodes.java | 2 ++ .../parser/processors/StmtProcessors.java | 19 ++++-------- .../joinpoints/FSpecificationStatement.java | 6 ++-- 34 files changed, 211 insertions(+), 91 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/ActionStmtExecAdapter.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/ExecConstruct.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/ExecPartConstruct.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/IDEStmtDeclAdapter.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/IDEStmtExecAdapter.java delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExecutableConstruct.java delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExecutableStmt.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/IDEStmt.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ISStmt.java rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/{ => implicit}/DefaultImplicitStmt.java (82%) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/implicit/IDEStmtImplicitAdapter.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/implicit/ISStmtImplicitAdapter.java rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/{ => implicit}/ImplicitNoneStmt.java (96%) rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/{ => implicit}/ImplicitPartStmt.java (74%) rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/{ => implicit}/ImplicitStmt.java (85%) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpConstruct.java index 1c59f5e6..6cfe4a26 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpConstruct.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpConstruct.java @@ -6,13 +6,13 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpClause; import pt.up.fe.specs.fortran.ast.nodes.omp.enums.OmpDirectiveKind; -import pt.up.fe.specs.fortran.ast.nodes.stmt.ExecutableConstruct; +import pt.up.fe.specs.fortran.ast.nodes.program.construct.ExecConstruct; import java.util.Collection; import java.util.List; import java.util.stream.Collectors; -abstract public class OmpConstruct extends ExecutableConstruct { +abstract public class OmpConstruct extends ExecConstruct { public final static DataKey> KINDS = KeyFactory.enumerationMulti("kinds", OmpDirectiveKind.class); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Specification.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Specification.java index 0179e79e..5df80d9b 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Specification.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Specification.java @@ -3,7 +3,7 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.program.construct.DeclConstruct; -import pt.up.fe.specs.fortran.ast.nodes.stmt.ImplicitPartStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.implicit.ImplicitPartStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.ImportStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.UseStmt; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/StmtBlock.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/StmtBlock.java index 84af94cb..d67aa4df 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/StmtBlock.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/StmtBlock.java @@ -2,8 +2,6 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.stmt.ExecutableConstruct; -import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; import java.util.Collection; import java.util.List; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/ActionStmtExecAdapter.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/ActionStmtExecAdapter.java new file mode 100644 index 00000000..2910ce6d --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/ActionStmtExecAdapter.java @@ -0,0 +1,22 @@ +package pt.up.fe.specs.fortran.ast.nodes.program.construct; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.ActionStmt; + +import java.util.Collection; + +public class ActionStmtExecAdapter extends ExecConstruct { + public ActionStmtExecAdapter(DataStore data, Collection children) { + super(data, children); + } + + public ActionStmt getStmt() { + return getChild(ActionStmt.class, 0); + } + + @Override + public String getCode() { + return getStmt().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/DeclStmtAdapter.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/DeclStmtAdapter.java index 5d5732ed..fa5227ae 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/DeclStmtAdapter.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/DeclStmtAdapter.java @@ -11,12 +11,12 @@ public DeclStmtAdapter(DataStore data, Collection childre super(data, children); } - public DeclStmt getDeclarationStmt() { + public DeclStmt getStmt() { return getChild(DeclStmt.class, 0); } @Override public String getCode() { - return getDeclarationStmt().getCode(); + return getStmt().getCode(); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/ExecConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/ExecConstruct.java new file mode 100644 index 00000000..c009db2a --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/ExecConstruct.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.program.construct; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class ExecConstruct extends ExecPartConstruct { + public ExecConstruct(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/ExecPartConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/ExecPartConstruct.java new file mode 100644 index 00000000..2e1a87c4 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/ExecPartConstruct.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.program.construct; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class ExecPartConstruct extends FortranNode { + public ExecPartConstruct(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/IDEStmtDeclAdapter.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/IDEStmtDeclAdapter.java new file mode 100644 index 00000000..160abd7b --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/IDEStmtDeclAdapter.java @@ -0,0 +1,22 @@ +package pt.up.fe.specs.fortran.ast.nodes.program.construct; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.IDEStmt; + +import java.util.Collection; + +public class IDEStmtDeclAdapter extends DeclConstruct { + public IDEStmtDeclAdapter(DataStore data, Collection children) { + super(data, children); + } + + public IDEStmt getStmt() { + return getChild(IDEStmt.class, 0); + } + + @Override + public String getCode() { + return getStmt().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/IDEStmtExecAdapter.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/IDEStmtExecAdapter.java new file mode 100644 index 00000000..96ddaede --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/IDEStmtExecAdapter.java @@ -0,0 +1,22 @@ +package pt.up.fe.specs.fortran.ast.nodes.program.construct; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.IDEStmt; + +import java.util.Collection; + +public class IDEStmtExecAdapter extends ExecConstruct { + public IDEStmtExecAdapter(DataStore data, Collection children) { + super(data, children); + } + + public IDEStmt getStmt() { + return getChild(IDEStmt.class, 0); + } + + @Override + public String getCode() { + return getStmt().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/SpecDirectiveAdapter.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/SpecDirectiveAdapter.java index 91f470fc..bc93caee 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/SpecDirectiveAdapter.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/SpecDirectiveAdapter.java @@ -11,12 +11,12 @@ public SpecDirectiveAdapter(DataStore data, Collection ch super(data, children); } - public CompilerDirective getCompilerDirective() { + public CompilerDirective getDirective() { return getChild(CompilerDirective.class, 0); } @Override public String getCode() { - return getCompilerDirective().getCode(); + return getDirective().getCode(); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/SpecStmtAdapter.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/SpecStmtAdapter.java index ae607cde..c34ad225 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/SpecStmtAdapter.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/SpecStmtAdapter.java @@ -11,12 +11,12 @@ public SpecStmtAdapter(DataStore data, Collection childre super(data, children); } - public SpecStmt getSpecificationStmt() { + public SpecStmt getStmt() { return getChild(SpecStmt.class, 0); } @Override public String getCode() { - return getSpecificationStmt().getCode(); + return getStmt().getCode(); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ActionStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ActionStmt.java index 7095f0af..078837e0 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ActionStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ActionStmt.java @@ -8,8 +8,7 @@ /** * R515 action-stmt */ -public abstract class ActionStmt extends ExecutableStmt { - +public abstract class ActionStmt extends Stmt { public ActionStmt(DataStore data, Collection children) { super(data, children); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ContainsStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ContainsStmt.java index 3b8d05ac..3f9f2ece 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ContainsStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ContainsStmt.java @@ -6,7 +6,7 @@ import java.util.Collection; -public class ContainsStmt extends ExecutableStmt { +public class ContainsStmt extends Stmt { public ContainsStmt(DataStore data, Collection children) { super(data, children); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExecutableConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExecutableConstruct.java deleted file mode 100644 index 83ec3644..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExecutableConstruct.java +++ /dev/null @@ -1,12 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.stmt; - -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; - -import java.util.Collection; - -public abstract class ExecutableConstruct extends FortranNode { - public ExecutableConstruct(DataStore data, Collection children) { - super(data, children); - } -} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExecutableStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExecutableStmt.java deleted file mode 100644 index bd10334d..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExecutableStmt.java +++ /dev/null @@ -1,31 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.stmt; - -import org.suikasoft.jOptions.Datakey.DataKey; -import org.suikasoft.jOptions.Datakey.KeyFactory; -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.decl.LabelDecl; -import pt.up.fe.specs.util.SpecsCollections; -import pt.up.fe.specs.util.utilities.PrintOnce; - -import java.util.Collection; - -/** - * R514 executable-construct - */ -public abstract class ExecutableStmt extends Stmt { - - // DATAKEYS BEGIN - - /** - * The original source of this statement. - */ - public final static DataKey SOURCE = KeyFactory.string("source"); - - - // DATAKEYS END - - public ExecutableStmt(DataStore data, Collection children) { - super(data, children); - } -} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/FormatStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/FormatStmt.java index 47454ef8..6e25c09c 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/FormatStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/FormatStmt.java @@ -1,11 +1,15 @@ package pt.up.fe.specs.fortran.ast.nodes.stmt; +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import java.util.Collection; -public class FormatStmt extends ExecutableStmt { +public class FormatStmt extends IDEStmt { + public static final DataKey SOURCE = KeyFactory.string("source"); + public FormatStmt(DataStore data, Collection children) { super(data, children); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/IDEStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/IDEStmt.java new file mode 100644 index 00000000..253d2014 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/IDEStmt.java @@ -0,0 +1,16 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +/* + * Represents a statement that can be interpreted as either ImplicitPartStmt, + * DeclConstruct or ExecPartConstruct. + */ +public abstract class IDEStmt extends Stmt { + public IDEStmt(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ISStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ISStmt.java new file mode 100644 index 00000000..3fd80b7a --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ISStmt.java @@ -0,0 +1,16 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +/* + * Represents a statement that can be interpreted as either ImplicitPartStmt + * or SpecConstruct. + */ +public abstract class ISStmt extends Stmt { + public ISStmt(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/LiteralExecutionStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/LiteralExecutionStmt.java index cbd9fd39..4f7c8fe1 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/LiteralExecutionStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/LiteralExecutionStmt.java @@ -6,7 +6,8 @@ import java.util.Collection; -public class LiteralExecutionStmt extends ExecutableStmt implements LiteralNode { +// TODO(Process-ing): Why does this exist?!?! +public class LiteralExecutionStmt extends Stmt implements LiteralNode { public LiteralExecutionStmt(DataStore data, Collection children) { super(data, children); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ParameterStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ParameterStmt.java index 54c899ab..17f53576 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ParameterStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ParameterStmt.java @@ -9,7 +9,7 @@ import java.util.List; import java.util.stream.Collectors; -public class ParameterStmt extends SpecStmt { +public class ParameterStmt extends ISStmt { public ParameterStmt(DataStore data, Collection children) { super(data, children); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ReturnStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ReturnStmt.java index bd480a00..5121e2c1 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ReturnStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ReturnStmt.java @@ -3,16 +3,14 @@ import org.suikasoft.jOptions.Datakey.DataKey; import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; import java.util.Collection; import java.util.Optional; import static pt.up.fe.specs.fortran.ast.FortranKeyword.RETURN; -public class ReturnStmt extends ActionStmt{ +public class ReturnStmt extends ActionStmt { public static final DataKey> TARGET = KeyFactory.optional("target"); public ReturnStmt(DataStore data, Collection children) { super(data, children); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfConstruct.java index 693c6fb5..c8838a73 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfConstruct.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfConstruct.java @@ -4,7 +4,7 @@ import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.stmt.ExecutableConstruct; +import pt.up.fe.specs.fortran.ast.nodes.program.construct.ExecConstruct; import java.util.Collection; import java.util.List; @@ -13,7 +13,7 @@ /** * R1134 if-construct */ -public class IfConstruct extends ExecutableConstruct { +public class IfConstruct extends ExecConstruct { public static final DataKey> NAME = KeyFactory.optional("name"); public IfConstruct(DataStore data, Collection children) { diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DefaultImplicitStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/implicit/DefaultImplicitStmt.java similarity index 82% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DefaultImplicitStmt.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/implicit/DefaultImplicitStmt.java index 95d76918..b1cc2656 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DefaultImplicitStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/implicit/DefaultImplicitStmt.java @@ -1,11 +1,9 @@ -package pt.up.fe.specs.fortran.ast.nodes.stmt; +package pt.up.fe.specs.fortran.ast.nodes.stmt.implicit; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.specification.ImplicitSpec; -import pt.up.fe.specs.fortran.ast.nodes.specification.LetterSpec; -import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DeclType; import java.util.Collection; import java.util.List; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/implicit/IDEStmtImplicitAdapter.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/implicit/IDEStmtImplicitAdapter.java new file mode 100644 index 00000000..2187fade --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/implicit/IDEStmtImplicitAdapter.java @@ -0,0 +1,22 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.implicit; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.IDEStmt; + +import java.util.Collection; + +public class IDEStmtImplicitAdapter extends ImplicitPartStmt { + public IDEStmtImplicitAdapter(DataStore data, Collection children) { + super(data, children); + } + + public IDEStmt getStmt() { + return getChild(IDEStmt.class, 0); + } + + @Override + public String getStmtCode() { + return getStmt().getStmtCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/implicit/ISStmtImplicitAdapter.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/implicit/ISStmtImplicitAdapter.java new file mode 100644 index 00000000..36e9ce75 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/implicit/ISStmtImplicitAdapter.java @@ -0,0 +1,22 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.implicit; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.ISStmt; + +import java.util.Collection; + +public class ISStmtImplicitAdapter extends ImplicitPartStmt { + public ISStmtImplicitAdapter(DataStore data, Collection children) { + super(data, children); + } + + public ISStmt getStmt() { + return getChild(ISStmt.class, 0); + } + + @Override + public String getStmtCode() { + return getStmt().getStmtCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImplicitNoneStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/implicit/ImplicitNoneStmt.java similarity index 96% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImplicitNoneStmt.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/implicit/ImplicitNoneStmt.java index f148e98c..4d720c9c 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImplicitNoneStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/implicit/ImplicitNoneStmt.java @@ -1,4 +1,4 @@ -package pt.up.fe.specs.fortran.ast.nodes.stmt; +package pt.up.fe.specs.fortran.ast.nodes.stmt.implicit; import org.suikasoft.jOptions.Datakey.DataKey; import org.suikasoft.jOptions.Datakey.KeyFactory; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImplicitPartStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/implicit/ImplicitPartStmt.java similarity index 74% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImplicitPartStmt.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/implicit/ImplicitPartStmt.java index cd3ed8a2..a5870899 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImplicitPartStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/implicit/ImplicitPartStmt.java @@ -1,7 +1,8 @@ -package pt.up.fe.specs.fortran.ast.nodes.stmt; +package pt.up.fe.specs.fortran.ast.nodes.stmt.implicit; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; import java.util.Collection; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImplicitStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/implicit/ImplicitStmt.java similarity index 85% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImplicitStmt.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/implicit/ImplicitStmt.java index a1c1410b..bbef869f 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ImplicitStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/implicit/ImplicitStmt.java @@ -1,4 +1,4 @@ -package pt.up.fe.specs.fortran.ast.nodes.stmt; +package pt.up.fe.specs.fortran.ast.nodes.stmt.implicit; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java index 04610738..26357379 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java @@ -8,13 +8,13 @@ import pt.up.fe.specs.fortran.ast.nodes.loops.LoopControl; import pt.up.fe.specs.fortran.ast.nodes.loops.enums.DoKind; import pt.up.fe.specs.fortran.ast.nodes.program.Execution; +import pt.up.fe.specs.fortran.ast.nodes.program.construct.ExecConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.ContinueStmt; -import pt.up.fe.specs.fortran.ast.nodes.stmt.ExecutableConstruct; import java.util.Collection; import java.util.Optional; -public class DoConstruct extends ExecutableConstruct { +public class DoConstruct extends ExecConstruct { public static final DataKey> NAME = KeyFactory.optional("name"); public static final DataKey> DO_LABEL = KeyFactory.optional("doLabel"); diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/CaseConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/CaseConstruct.java index af6fa581..2f646230 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/CaseConstruct.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/CaseConstruct.java @@ -4,13 +4,13 @@ import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.stmt.ExecutableConstruct; +import pt.up.fe.specs.fortran.ast.nodes.program.construct.ExecConstruct; import java.util.Collection; import java.util.List; import java.util.Optional; -public class CaseConstruct extends ExecutableConstruct { +public class CaseConstruct extends ExecConstruct { public static final DataKey> NAME = KeyFactory.optional("name"); public CaseConstruct(DataStore data, Collection children) { diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 567e8a2a..e48fdba7 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -18,6 +18,9 @@ import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.EmptyFunctionSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.FunctionSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.type.*; +import pt.up.fe.specs.fortran.ast.nodes.stmt.implicit.DefaultImplicitStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.implicit.ImplicitNoneStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.implicit.ImplicitStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.AbstractInterfaceStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.DefaultInterfaceStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.EndInterfaceStmt; diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index d1a1884f..20eed2aa 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -20,6 +20,8 @@ import pt.up.fe.specs.fortran.ast.nodes.specification.type.AccessTypeAttr; import pt.up.fe.specs.fortran.ast.nodes.specification.type.BindTypeAttr; import pt.up.fe.specs.fortran.ast.nodes.specification.type.ExtendsTypeAttr; +import pt.up.fe.specs.fortran.ast.nodes.stmt.implicit.DefaultImplicitStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.implicit.ImplicitNoneStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.AbstractInterfaceStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.DefaultInterfaceStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.EndInterfaceStmt; diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 3b10d433..15d364be 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -24,6 +24,8 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.dimstmt.DimensionStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.enums.ImportKind; import pt.up.fe.specs.fortran.ast.nodes.stmt.ifstmt.*; +import pt.up.fe.specs.fortran.ast.nodes.stmt.implicit.DefaultImplicitStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.implicit.ImplicitNoneStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.AbstractInterfaceStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.DefaultInterfaceStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.EndInterfaceStmt; @@ -73,19 +75,10 @@ public void stmtWithAttrs(Stmt stmt, FlangAttributes attrs) { }); } - public void executableStmt(ExecutableStmt executableStmt) { - stmt(executableStmt); - - // Uncomment this if we really need the statement source - // executableStmt.set(ExecutableStmt.SOURCE, attributes(executableStmt).getString("source")); - } - - public void actionStmt(ActionStmt actionStmt) { - executableStmt(actionStmt); + stmt(actionStmt); } - public void printStmt(PrintStmt printStmt) { actionStmt(printStmt); @@ -94,7 +87,7 @@ public void printStmt(PrintStmt printStmt) { } public void formatStmt(FormatStmt formatStmt) { - executableStmt(formatStmt); + stmt(formatStmt); // TODO(Process-ing): Remove this var source = attributes(formatStmt).getString("source"); @@ -462,7 +455,7 @@ public void gotoStmt(GotoStmt gotoStmt) { } public void containsStmt(ContainsStmt containsStmt) { - executableStmt(containsStmt); + stmt(containsStmt); } public void allocateStmt(AllocateStmt allocateStmt) { @@ -654,7 +647,7 @@ public void endSubroutineStmt(EndSubroutineStmt endSubroutineStmt) { } public void returnStmt(ReturnStmt returnStmt) { - executableStmt(returnStmt); + actionStmt(returnStmt); var target = attributes() .getOptionalString(returnStmt, "CharBlock", FlangName.EXPR, FlangName.LITERAL_CONSTANT, FlangName.INT_LITERAL_CONSTANT) diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSpecificationStatement.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSpecificationStatement.java index 818eef0e..02077361 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSpecificationStatement.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSpecificationStatement.java @@ -1,14 +1,14 @@ package pt.up.fe.specs.fortran.weaver.joinpoints; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.stmt.SpecificationStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.SpecStmt; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.ASpecificationStatement; public class FSpecificationStatement extends ASpecificationStatement { - public final SpecificationStmt specificationStmt; + public final SpecStmt specificationStmt; - public FSpecificationStatement(SpecificationStmt specificationStmt) { + public FSpecificationStatement(SpecStmt specificationStmt) { super(new FStatement(specificationStmt)); this.specificationStmt = specificationStmt; } From 6324099cc34d4635ea663295bc5d9099eab002fc Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 11 Aug 2026 20:16:24 +0100 Subject: [PATCH 241/260] Improve type consistency on Execution node --- .../specs/fortran/ast/FortranNodeFactory.java | 61 ++++++++++++++--- .../{StmtBlock.java => ExecBlock.java} | 12 ++-- .../fortran/ast/nodes/program/Execution.java | 6 +- ...xecAdapter.java => ActionStmtAdapter.java} | 4 +- ...Adapter.java => DirectiveExecAdapter.java} | 4 +- .../construct/DirectiveSpecAdapter.java | 22 ++++++ .../program/construct/IDEStmtExecAdapter.java | 2 +- .../program/construct/ISStmtSpecAdapter.java | 22 ++++++ .../ast/nodes/stmt/ifstmt/ElseBlock.java | 8 +-- .../ast/nodes/stmt/ifstmt/ElseIfBlock.java | 9 +-- .../ast/nodes/stmt/ifstmt/IfThenBlock.java | 8 +-- .../ast/nodes/stmt/loop/DoConstruct.java | 6 +- .../ast/nodes/stmt/selectcase/CaseBlock.java | 6 +- .../parser/processors/ANodeProcessor.java | 67 +++++++++++++++++++ .../parser/processors/NodeProcessor.java | 1 - .../fortran/parser/processors/Nodes.java | 3 +- .../parser/processors/ProgramProcessors.java | 46 ++----------- .../parser/processors/StmtProcessors.java | 52 +++++++------- 18 files changed, 228 insertions(+), 111 deletions(-) rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/{StmtBlock.java => ExecBlock.java} (57%) rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/{ActionStmtExecAdapter.java => ActionStmtAdapter.java} (75%) rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/{SpecDirectiveAdapter.java => DirectiveExecAdapter.java} (81%) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/DirectiveSpecAdapter.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/ISStmtSpecAdapter.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java index e73a57c1..c9cb9405 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java @@ -22,14 +22,14 @@ import pt.up.fe.specs.fortran.ast.nodes.omp.enums.OmpClauseKind; import pt.up.fe.specs.fortran.ast.nodes.omp.enums.OmpDirectiveKind; import pt.up.fe.specs.fortran.ast.nodes.program.*; -import pt.up.fe.specs.fortran.ast.nodes.program.construct.DeclStmtAdapter; -import pt.up.fe.specs.fortran.ast.nodes.program.construct.SpecDirectiveAdapter; -import pt.up.fe.specs.fortran.ast.nodes.program.construct.SpecStmtAdapter; +import pt.up.fe.specs.fortran.ast.nodes.program.construct.*; import pt.up.fe.specs.fortran.ast.nodes.program.unit.EndProgramStmt; import pt.up.fe.specs.fortran.ast.nodes.program.unit.ProgramStmt; import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; import pt.up.fe.specs.fortran.ast.nodes.program.unit.ProgramUnit; import pt.up.fe.specs.fortran.ast.nodes.stmt.*; +import pt.up.fe.specs.fortran.ast.nodes.stmt.implicit.IDEStmtImplicitAdapter; +import pt.up.fe.specs.fortran.ast.nodes.stmt.implicit.ISStmtImplicitAdapter; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.EndDoStmt; @@ -139,7 +139,7 @@ private void initComments(Stmt stmt) { stmt.set(Stmt.LEADING_COMMENTS, List.of()); } - public MainProgram mainProgram(String programName, List execution) { + public MainProgram mainProgram(String programName, List execution) { DataStore data = newDataStore(MainProgram.class); var programStmt = newNode(ProgramStmt.class, Collections.emptyList()); @@ -155,10 +155,17 @@ public MainProgram mainProgram(String programName, List execution) return new MainProgram(data, List.of(programStmt, specificationBlock, executionBlock, endProgramStmt)); } - public Execution execution(List statements) { - DataStore data = newDataStore(Execution.class); + public Execution execution(List constructs) { + SpecsCheck.checkArgument( + constructs.isEmpty() || !(constructs.get(constructs.size() - 1) instanceof ExecConstruct), + () -> "The last construct of Execution must be of type ExecConstruct" + ); - return new Execution(data, statements); + return newNode(Execution.class, constructs); + } + + public ExecBlock execBlock(List constructs) { + return newNode(ExecBlock.class, constructs); } // STMT @@ -383,11 +390,47 @@ public DeclStmtAdapter declStmtAdapter(DeclStmt declStmt) { return newNode(DeclStmtAdapter.class, List.of(declStmt)); } + public IDEStmtDeclAdapter ideStmtDeclAdapter(IDEStmt ideStmt) { + return newNode(IDEStmtDeclAdapter.class, List.of(ideStmt)); + } + public SpecStmtAdapter specStmtAdapter(SpecStmt specStmt) { return newNode(SpecStmtAdapter.class, List.of(specStmt)); } - public SpecDirectiveAdapter specDirectiveAdapter(CompilerDirective compilerDirective) { - return newNode(SpecDirectiveAdapter.class, List.of(compilerDirective)); + public DirectiveSpecAdapter directiveSpecAdapter(CompilerDirective compilerDirective) { + return newNode(DirectiveSpecAdapter.class, List.of(compilerDirective)); + } + + public ISStmtSpecAdapter isStmtSpecAdapter(ISStmt isStmt) { + return newNode(ISStmtSpecAdapter.class, List.of(isStmt)); + } + + private T withInfoOf(T dest, Stmt source) { + dest.set(Stmt.LEADING_COMMENTS, source.getLeadingComments()); + dest.set(Stmt.TRAILING_COMMENT, source.getTrailingComment()); + source.getLabel().ifPresent(label -> dest.addChild(0, label)); + + return dest; + } + + public IDEStmtImplicitAdapter ideStmtImplicitAdapter(IDEStmt ideStmt) { + return withInfoOf(newNode(IDEStmtImplicitAdapter.class, List.of(ideStmt)), ideStmt); + } + + public ISStmtImplicitAdapter isStmtImplicitAdapter(ISStmt isStmt) { + return withInfoOf(newNode(ISStmtImplicitAdapter.class, List.of(isStmt)), isStmt); + } + + public ActionStmtAdapter actionStmtAdapter(ActionStmt actionStmt) { + return newNode(ActionStmtAdapter.class, List.of(actionStmt)); + } + + public IDEStmtExecAdapter ideStmtExecAdapter(IDEStmt ideStmt) { + return newNode(IDEStmtExecAdapter.class, List.of(ideStmt)); + } + + public DirectiveExecAdapter directiveExecAdapter(CompilerDirective directive) { + return newNode(DirectiveExecAdapter.class, List.of(directive)); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/StmtBlock.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/ExecBlock.java similarity index 57% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/StmtBlock.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/ExecBlock.java index d67aa4df..d985c06e 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/StmtBlock.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/ExecBlock.java @@ -2,25 +2,25 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.program.construct.ExecPartConstruct; import java.util.Collection; import java.util.List; import java.util.stream.Collectors; -public class StmtBlock extends FortranNode { +public class ExecBlock extends FortranNode { - public StmtBlock(DataStore data, Collection children) { + public ExecBlock(DataStore data, Collection children) { super(data, children); } - // TODO(Process-ing): Modify the weaver to avoid needing this wrapper - public List getStatements() { - return getChildren(); + public List getConstructs() { + return getChildren(ExecPartConstruct.class); } @Override public String getCode() { - return getStatements().stream() + return getConstructs().stream() .map(FortranNode::getCode) .collect(Collectors.joining(ln())); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Execution.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Execution.java index 641ac2a3..770e5ce7 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Execution.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Execution.java @@ -12,9 +12,11 @@ * executable-construct [execution-part-construct]... *

* Contains statements to execute + *

+ * It is more specialized than ExecBlock, since it requires the last construct + * to be a ExecConstruct (if it exists) to avoid AST ambiguity. */ -public class Execution extends StmtBlock { - +public class Execution extends ExecBlock { public Execution(DataStore data, Collection children) { super(data, children); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/ActionStmtExecAdapter.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/ActionStmtAdapter.java similarity index 75% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/ActionStmtExecAdapter.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/ActionStmtAdapter.java index 2910ce6d..1277068d 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/ActionStmtExecAdapter.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/ActionStmtAdapter.java @@ -6,8 +6,8 @@ import java.util.Collection; -public class ActionStmtExecAdapter extends ExecConstruct { - public ActionStmtExecAdapter(DataStore data, Collection children) { +public class ActionStmtAdapter extends ExecConstruct { + public ActionStmtAdapter(DataStore data, Collection children) { super(data, children); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/SpecDirectiveAdapter.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/DirectiveExecAdapter.java similarity index 81% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/SpecDirectiveAdapter.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/DirectiveExecAdapter.java index bc93caee..885d3180 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/SpecDirectiveAdapter.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/DirectiveExecAdapter.java @@ -6,8 +6,8 @@ import java.util.Collection; -public class SpecDirectiveAdapter extends SpecConstruct { - public SpecDirectiveAdapter(DataStore data, Collection children) { +public class DirectiveExecAdapter extends ExecConstruct { + public DirectiveExecAdapter(DataStore data, Collection children) { super(data, children); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/DirectiveSpecAdapter.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/DirectiveSpecAdapter.java new file mode 100644 index 00000000..f00e4d91 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/DirectiveSpecAdapter.java @@ -0,0 +1,22 @@ +package pt.up.fe.specs.fortran.ast.nodes.program.construct; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.CompilerDirective; + +import java.util.Collection; + +public class DirectiveSpecAdapter extends SpecConstruct { + public DirectiveSpecAdapter(DataStore data, Collection children) { + super(data, children); + } + + public CompilerDirective getDirective() { + return getChild(CompilerDirective.class, 0); + } + + @Override + public String getCode() { + return getDirective().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/IDEStmtExecAdapter.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/IDEStmtExecAdapter.java index 96ddaede..da67f4eb 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/IDEStmtExecAdapter.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/IDEStmtExecAdapter.java @@ -6,7 +6,7 @@ import java.util.Collection; -public class IDEStmtExecAdapter extends ExecConstruct { +public class IDEStmtExecAdapter extends ExecPartConstruct { public IDEStmtExecAdapter(DataStore data, Collection children) { super(data, children); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/ISStmtSpecAdapter.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/ISStmtSpecAdapter.java new file mode 100644 index 00000000..bcfff93c --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/construct/ISStmtSpecAdapter.java @@ -0,0 +1,22 @@ +package pt.up.fe.specs.fortran.ast.nodes.program.construct; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.ISStmt; + +import java.util.Collection; + +public class ISStmtSpecAdapter extends SpecConstruct { + public ISStmtSpecAdapter(DataStore data, Collection children) { + super(data, children); + } + + public ISStmt getStmt() { + return getChild(ISStmt.class, 0); + } + + @Override + public String getCode() { + return getStmt().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseBlock.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseBlock.java index 1b5d99e7..b9ca7608 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseBlock.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseBlock.java @@ -2,9 +2,7 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.program.Execution; -import pt.up.fe.specs.fortran.ast.nodes.program.StmtBlock; -import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; +import pt.up.fe.specs.fortran.ast.nodes.program.ExecBlock; import java.util.Collection; @@ -17,8 +15,8 @@ public ElseStmt getElseStmt() { return getChild(ElseStmt.class, 0); } - public Execution getBlock() { - return getChild(Execution.class, 1); + public ExecBlock getBlock() { + return getChild(ExecBlock.class, 1); } @Override diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseIfBlock.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseIfBlock.java index b7e06555..884b15e6 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseIfBlock.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseIfBlock.java @@ -1,12 +1,9 @@ package pt.up.fe.specs.fortran.ast.nodes.stmt.ifstmt; import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; +import pt.up.fe.specs.fortran.ast.nodes.program.ExecBlock; import pt.up.fe.specs.fortran.ast.nodes.program.Execution; -import pt.up.fe.specs.fortran.ast.nodes.program.StmtBlock; -import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; import java.util.Collection; @@ -19,8 +16,8 @@ public ElseIfStmt getElseIfStmt() { return getChild(ElseIfStmt.class, 0); } - public Execution getBlock() { - return getChild(Execution.class, 1); + public ExecBlock getBlock() { + return getChild(ExecBlock.class, 1); } @Override diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfThenBlock.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfThenBlock.java index 8796e048..69b26990 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfThenBlock.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ifstmt/IfThenBlock.java @@ -1,11 +1,9 @@ package pt.up.fe.specs.fortran.ast.nodes.stmt.ifstmt; import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; +import pt.up.fe.specs.fortran.ast.nodes.program.ExecBlock; import pt.up.fe.specs.fortran.ast.nodes.program.Execution; -import pt.up.fe.specs.fortran.ast.nodes.program.StmtBlock; import java.util.Collection; @@ -18,8 +16,8 @@ public IfThenStmt getIfThenStmt() { return getChild(IfThenStmt.class, 0); } - public Execution getBlock() { - return getChild(Execution.class, 1); + public ExecBlock getBlock() { + return getChild(ExecBlock.class, 1); } @Override diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java index 26357379..a3af1ee6 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java @@ -7,7 +7,7 @@ import pt.up.fe.specs.fortran.ast.nodes.decl.LabelDecl; import pt.up.fe.specs.fortran.ast.nodes.loops.LoopControl; import pt.up.fe.specs.fortran.ast.nodes.loops.enums.DoKind; -import pt.up.fe.specs.fortran.ast.nodes.program.Execution; +import pt.up.fe.specs.fortran.ast.nodes.program.ExecBlock; import pt.up.fe.specs.fortran.ast.nodes.program.construct.ExecConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.ContinueStmt; @@ -26,8 +26,8 @@ public DoStmt getDoStmt() { return getChild(DoStmt.class); } - public Execution getBody() { - return getChild(Execution.class); + public ExecBlock getBody() { + return getChild(ExecBlock.class); } public EndDoStmt getEndDoStmt() { diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/CaseBlock.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/CaseBlock.java index 6f289075..a1ee99bf 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/CaseBlock.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/selectcase/CaseBlock.java @@ -2,7 +2,7 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.program.StmtBlock; +import pt.up.fe.specs.fortran.ast.nodes.program.ExecBlock; import java.util.Collection; @@ -15,8 +15,8 @@ public CaseStmt getCaseStmt() { return getChild(CaseStmt.class, 0); } - public StmtBlock getStmtBlock() { - return getChild(StmtBlock.class, 1); + public ExecBlock getStmtBlock() { + return getChild(ExecBlock.class, 1); } @Override diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ANodeProcessor.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ANodeProcessor.java index 6b21ddd5..4188d580 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ANodeProcessor.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ANodeProcessor.java @@ -1,5 +1,10 @@ package pt.up.fe.specs.fortran.parser.processors; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.program.construct.DeclConstruct; +import pt.up.fe.specs.fortran.ast.nodes.program.construct.ExecPartConstruct; +import pt.up.fe.specs.fortran.ast.nodes.program.construct.SpecConstruct; +import pt.up.fe.specs.fortran.ast.nodes.stmt.*; import pt.up.fe.specs.fortran.parser.FortranJsonResult; public class ANodeProcessor implements NodeProcessor { @@ -15,4 +20,66 @@ public ANodeProcessor(FortranJsonResult data) { public FortranJsonResult data() { return data; } + + // Utility functions + + public DeclConstruct toDeclConstruct(FortranNode node) { + if (node instanceof DeclConstruct declConstruct) { + return declConstruct; + } + + if (node instanceof DeclStmt declStmt) { + return factory().declStmtAdapter(declStmt); + } + + if (node instanceof IDEStmt ideStmt) { + return factory().ideStmtDeclAdapter(ideStmt); + } + + if (node instanceof SpecStmt || node instanceof CompilerDirective) { + return toSpecConstruct(node); + } + + throw new RuntimeException("Cannot convert node to DeclConstruct: " + node); + } + + public SpecConstruct toSpecConstruct(FortranNode node) { + if (node instanceof SpecConstruct specConstruct) { + return specConstruct; + } + + if (node instanceof SpecStmt specStmt) { + return factory().specStmtAdapter(specStmt); + } + + if (node instanceof CompilerDirective compilerDirective) { + return factory().directiveSpecAdapter(compilerDirective); + } + + if (node instanceof ISStmt isStmt) { + return factory().isStmtSpecAdapter(isStmt); + } + + throw new RuntimeException("Cannot convert node to SpecConstruct: " + node); + } + + public ExecPartConstruct toExecPartConstruct(FortranNode node) { + if (node instanceof ExecPartConstruct execPartConstruct) { + return execPartConstruct; + } + + if (node instanceof ActionStmt actionStmt) { + return factory().actionStmtAdapter(actionStmt); + } + + if (node instanceof IDEStmt ideStmt) { + return factory().ideStmtExecAdapter(ideStmt); + } + + if (node instanceof CompilerDirective compilerDirective) { + return factory().directiveExecAdapter(compilerDirective); + } + + throw new RuntimeException("Cannot convert node to ExecPartConstruct: " + node); + } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/NodeProcessor.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/NodeProcessor.java index c13ff61e..bc97a74c 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/NodeProcessor.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/NodeProcessor.java @@ -30,7 +30,6 @@ default FortranNode getNode(String id) { return node; } - default FortranNode getChild(FortranNode node, FlangName name) { return getChild(node, name.getString()); } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 20eed2aa..5eb3d91f 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -98,7 +98,7 @@ public Nodes(FortranJsonResult data) { processors.put(MainProgram.class, p::mainProgram); processors.put(SubprogramUnit.class, p::subprogramUnit); processors.put(Specification.class, p::specification); - processors.put(Execution.class, p::execution); + processors.put(ExecBlock.class, p::execBlock); processors.put(Subroutine.class, p::subroutine); processors.put(Function.class, p::function); processors.put(InternalSubprogramPart.class, p::internalSubprogramPart); @@ -150,7 +150,6 @@ public Nodes(FortranJsonResult data) { processors.put(FormatStmt.class, s::formatStmt); processors.put(TypeDeclarationStmt.class, s::typeDeclarationStmt); processors.put(AssignmentStmt.class, s::assignmentStmt); - processors.put(StmtBlock.class, s::stmtBlock); processors.put(CompilerDirective.class, s::compilerDirective); processors.put(GotoStmt.class, s::gotoStmt); processors.put(StopStmt.class, s::stopStmt); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java index cefae789..2e20823f 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java @@ -3,17 +3,13 @@ import pt.up.fe.specs.fortran.ast.FortranContext; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.program.*; -import pt.up.fe.specs.fortran.ast.nodes.program.construct.DeclConstruct; -import pt.up.fe.specs.fortran.ast.nodes.program.construct.SpecConstruct; import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.Function; import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.Subroutine; import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; import pt.up.fe.specs.fortran.ast.nodes.program.unit.Module; import pt.up.fe.specs.fortran.ast.nodes.program.unit.ModuleSubprogramPart; import pt.up.fe.specs.fortran.ast.nodes.program.unit.SubprogramUnit; -import pt.up.fe.specs.fortran.ast.nodes.stmt.CompilerDirective; -import pt.up.fe.specs.fortran.ast.nodes.stmt.DeclStmt; -import pt.up.fe.specs.fortran.ast.nodes.stmt.SpecStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.*; import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; import pt.up.fe.specs.util.SpecsIo; @@ -126,42 +122,14 @@ public void specification(Specification specification) { } } - public DeclConstruct toDeclConstruct(FortranNode node) { - if (node instanceof DeclConstruct declConstruct) { - return declConstruct; - } - - if (node instanceof DeclStmt declStmt) { - return factory().declStmtAdapter(declStmt); - } - - if (node instanceof SpecStmt || node instanceof CompilerDirective) { - return toSpecConstruct(node); - } - - throw new RuntimeException("Cannot convert node to DeclConstruct: " + node); - } + public void execBlock(ExecBlock execBlock) { + var rawExecPartConstructs = getChildren(execBlock, FlangName.EXECUTION_PART_CONSTRUCT); - public SpecConstruct toSpecConstruct(FortranNode node) { - if (node instanceof SpecConstruct specConstruct) { - return specConstruct; - } + var execPartConstructs = rawExecPartConstructs.stream() + .map(this::toExecPartConstruct) + .toList(); - if (node instanceof SpecStmt specStmt) { - return factory().specStmtAdapter(specStmt); - } - - if (node instanceof CompilerDirective compilerDirective) { - return factory().specDirectiveAdapter(compilerDirective); - } - - throw new RuntimeException("Cannot convert node to SpecConstruct: " + node); - } - - public void execution(Execution execution) { - if (attributes(execution).has(FlangName.EXECUTION_PART_CONSTRUCT)) { - execution.setChildren(getChildren(execution, FlangName.EXECUTION_PART_CONSTRUCT)); - } + execBlock.addChildren(execPartConstructs); } public void internalSubprogramPart(InternalSubprogramPart part) { diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 15d364be..3cbcb747 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -4,8 +4,6 @@ import pt.up.fe.specs.fortran.ast.nodes.decl.NamedParameter; import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; import pt.up.fe.specs.fortran.ast.nodes.loops.WhileLoopControl; -import pt.up.fe.specs.fortran.ast.nodes.program.Execution; -import pt.up.fe.specs.fortran.ast.nodes.program.StmtBlock; import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.*; import pt.up.fe.specs.fortran.ast.nodes.program.unit.EndModuleStmt; import pt.up.fe.specs.fortran.ast.nodes.program.unit.EndProgramStmt; @@ -128,19 +126,15 @@ public void assignmentStmt(AssignmentStmt assignmentStmt) { assignmentStmt.addChild(expression); } - public void stmtBlock(StmtBlock stmtBlock) { - stmtBlock.setChildren(getChildren(stmtBlock, FlangName.EXECUTION_PART_CONSTRUCT)); - } - public void ifConstruct(IfConstruct ifConstruct) { // Add if-then block var ifThenStmt = getStmtChild(ifConstruct, FlangName.IF_THEN_STMT); - var thenBlock = factory().newNode(Execution.class); - if (attributes(ifConstruct).has(FlangName.EXECUTION_PART_CONSTRUCT)) { - var blockStatements = getChildren(ifConstruct, FlangName.EXECUTION_PART_CONSTRUCT); - thenBlock.addChildren(blockStatements); - } + var rawConstructs = getChildren(ifConstruct, FlangName.EXECUTION_PART_CONSTRUCT); + var constructs = rawConstructs.stream() + .map(this::toExecPartConstruct) + .toList(); + var thenBlock = factory().execBlock(constructs); var ifThenBlock = factory().newNode(IfThenBlock.class); ifThenBlock.addChild(ifThenStmt); @@ -184,9 +178,11 @@ public void elseIfBlock(ElseIfBlock ifElseBlock) { var elseIfStmt = getStmtChild(ifElseBlock, FlangName.ELSE_IF_STMT); ifElseBlock.addChild(elseIfStmt); - var blockStatements = getChildren(ifElseBlock, FlangName.EXECUTION_PART_CONSTRUCT); - var block = factory().newNode(Execution.class); - block.addChildren(blockStatements); + var rawConstructs = getChildren(ifElseBlock, FlangName.EXECUTION_PART_CONSTRUCT); + var constructs = rawConstructs.stream() + .map(this::toExecPartConstruct) + .toList(); + var block = factory().execBlock(constructs); ifElseBlock.addChild(block); } @@ -201,9 +197,10 @@ public void elseBlock(ElseBlock elseBlock) { var elseStmt = getStmtChild(elseBlock, FlangName.ELSE_STMT); elseBlock.addChild(elseStmt); - var blockStatements = getChildren(elseBlock, FlangName.EXECUTION_PART_CONSTRUCT); - var block = factory().newNode(Execution.class); - block.addChildren(blockStatements); + var blockStatements = getChildren(elseBlock, FlangName.EXECUTION_PART_CONSTRUCT).stream() + .map(this::toExecPartConstruct) + .toList(); + var block = factory().execBlock(blockStatements); elseBlock.addChild(block); } @@ -255,9 +252,11 @@ public void caseBlock(CaseBlock caseBlock) { var caseStmtId = attributes().get(caseStmtWrapperId).getString("statement"); var caseStmt = buildCaseStmt(caseStmtId); - var blockStatements = getChildren(caseBlock, FlangName.EXECUTION_PART_CONSTRUCT); - var block = factory().newNode(StmtBlock.class); - block.addChildren(blockStatements); + var rawConstructs = getChildren(caseBlock, FlangName.EXECUTION_PART_CONSTRUCT); + var constructs = rawConstructs.stream() + .map(this::toExecPartConstruct) + .toList(); + var block = factory().execBlock(constructs); caseBlock.addChild(caseStmt); caseBlock.addChild(block); @@ -361,16 +360,19 @@ public void doConstruct(DoConstruct doConstruct) { var doLabel = extractLabel(doStmtSource); doConstruct.set(DoConstruct.DO_LABEL, doLabel); - var bodyStmts = new ArrayList<>(getChildren(doConstruct, FlangName.EXECUTION_PART_CONSTRUCT)); + var rawConstructs = new ArrayList<>(getChildren(doConstruct, FlangName.EXECUTION_PART_CONSTRUCT)); // In labeled do loops with no continue statement at the end, Flang will add // an empty continue statement at the end, which we want to ignore - var lastStmt = bodyStmts.get(bodyStmts.size() - 1); - if (attributes(lastStmt).getOptionalString("source").map(String::isEmpty).orElse(false)) { - bodyStmts.remove(bodyStmts.size() - 1); // Remove last element + var lastConstruct = rawConstructs.get(rawConstructs.size() - 1); + if (attributes(lastConstruct).getOptionalString("source").map(String::isEmpty).orElse(false)) { + rawConstructs.remove(rawConstructs.size() - 1); // Remove last element } - var body = factory().newNode(Execution.class, bodyStmts); + var constructs = rawConstructs.stream() + .map(this::toExecPartConstruct) + .toList(); + var body = factory().execBlock(constructs); doConstruct.addChild(body); var endDoStmt = getStmtChild(doConstruct, FlangName.END_DO_STMT); From e160f482085c571b0be37270ea9b93947da12eff Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 11 Aug 2026 20:23:29 +0100 Subject: [PATCH 242/260] Fix structure of OMP constructs --- .../fortran/ast/nodes/omp/OmpBlockConstruct.java | 12 ++++++------ .../fortran/parser/processors/OmpProcessors.java | 6 +++++- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpBlockConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpBlockConstruct.java index 9f5268d0..a566e34c 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpBlockConstruct.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/omp/OmpBlockConstruct.java @@ -4,7 +4,7 @@ import pt.up.fe.specs.fortran.ast.FortranKeyword; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.omp.enums.OmpDirectiveKind; -import pt.up.fe.specs.fortran.ast.nodes.program.Execution; +import pt.up.fe.specs.fortran.ast.nodes.program.ExecBlock; import java.util.Collection; import java.util.stream.Collectors; @@ -14,14 +14,14 @@ public OmpBlockConstruct(DataStore data, Collection child super(data, children); } - public Execution getBody() { - return getChild(Execution.class); + public ExecBlock getBody() { + return getChild(ExecBlock.class); } - public Execution setBody(Execution body) { - removeChildren(Execution.class); + public ExecBlock setBody(ExecBlock body) { + removeChildren(ExecBlock.class); - return (Execution) addChild(body); + return (ExecBlock) addChild(body); } @Override diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/OmpProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/OmpProcessors.java index 1f23df81..51f1349a 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/OmpProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/OmpProcessors.java @@ -32,7 +32,11 @@ public void ompBlockConstruct(OmpBlockConstruct ompBlockConstruct) { ompBlockConstruct.set(OmpBlockConstruct.KINDS, kinds); - Execution body = factory().newNode(Execution.class, getChildren(ompBlockConstruct, FlangName.EXECUTION_PART_CONSTRUCT)); + var rawInnerConstructs = getChildren(ompBlockConstruct, FlangName.EXECUTION_PART_CONSTRUCT); + var innerConstructs = rawInnerConstructs.stream() + .map(this::toExecPartConstruct) + .toList(); + var body = factory().execBlock(innerConstructs); ompBlockConstruct.addChild(body); if (attributes().get(clauseList).has(FlangName.OMP_CLAUSE)) From 919b6b885cc7ac846e8fa68f9b4e3f97f7371533 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 11 Aug 2026 21:46:04 +0100 Subject: [PATCH 243/260] Fix code generation for legacy do loops --- .../fortran/ast/nodes/stmt/loop/DoConstruct.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java index a3af1ee6..8f295d04 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/loop/DoConstruct.java @@ -8,6 +8,7 @@ import pt.up.fe.specs.fortran.ast.nodes.loops.LoopControl; import pt.up.fe.specs.fortran.ast.nodes.loops.enums.DoKind; import pt.up.fe.specs.fortran.ast.nodes.program.ExecBlock; +import pt.up.fe.specs.fortran.ast.nodes.program.construct.ActionStmtAdapter; import pt.up.fe.specs.fortran.ast.nodes.program.construct.ExecConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.ContinueStmt; @@ -85,13 +86,17 @@ public boolean hasContinueEnd() { var doLabel = doLabelOpt.get(); var body = getBody(); - var lastStmt = body.getChildTry(body.getNumChildren() - 1); + var lastConstruct = body.getChildTry(body.getNumChildren() - 1); - if (lastStmt.isEmpty() || !(lastStmt.get() instanceof ContinueStmt contLastStmt)) { - return false; + if (lastConstruct.isPresent() && lastConstruct.get() instanceof ActionStmtAdapter stmtAdapter) { + var lastStmt = stmtAdapter.getStmt(); + + if (lastStmt instanceof ContinueStmt contStmt) { + var contLabel = contStmt.getLabel().map(LabelDecl::getValue); + return contLabel.map(doLabel::equals).orElse(false); + } } - var contLabel = contLastStmt.getLabel().map(LabelDecl::getValue); - return contLabel.map(doLabel::equals).orElse(false); + return false; } } From b148c375ce29091a181b779537ff69ab133bb641 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 11 Aug 2026 21:47:50 +0100 Subject: [PATCH 244/260] Fix processing of paramenter statements --- .../up/fe/specs/fortran/parser/processors/ANodeProcessor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ANodeProcessor.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ANodeProcessor.java index 4188d580..6aaf022c 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ANodeProcessor.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ANodeProcessor.java @@ -36,7 +36,7 @@ public DeclConstruct toDeclConstruct(FortranNode node) { return factory().ideStmtDeclAdapter(ideStmt); } - if (node instanceof SpecStmt || node instanceof CompilerDirective) { + if (node instanceof SpecStmt || node instanceof ISStmt || node instanceof CompilerDirective) { return toSpecConstruct(node); } From 85f96e7c240e88df14dc6599d2e18604fd5d320d Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 11 Aug 2026 22:52:27 +0100 Subject: [PATCH 245/260] Fix weaver --- .../fortran/weaverspecs/actionModel.xml | 6 +- .../fortran/weaverspecs/artifacts.xml | 22 +- .../fortran/weaverspecs/joinPointModel.xml | 20 +- .../fortran/weaver/FortranJoinpoints.java | 5 +- .../specs/fortran/weaver/FortranWeaver.json | 539 ++++++++---------- .../fortran/weaver/importable/AstFactory.java | 8 +- .../weaver/joinpoints/FActionStatement.java | 2 +- .../weaver/joinpoints/FDoConstruct.java | 2 +- .../fortran/weaver/joinpoints/FElseBlock.java | 6 +- .../weaver/joinpoints/FElseIfBlock.java | 6 +- .../fortran/weaver/joinpoints/FExecBlock.java | 28 + .../weaver/joinpoints/FExecConstruct.java | 19 + .../weaver/joinpoints/FExecPartConstruct.java | 18 + .../joinpoints/FExecutableConstruct.java | 18 - .../joinpoints/FExecutableStatement.java | 20 - .../fortran/weaver/joinpoints/FExecution.java | 21 +- .../weaver/joinpoints/FIfConstruct.java | 2 +- .../weaver/joinpoints/FIfThenBlock.java | 6 +- .../weaver/joinpoints/FOmpBlockConstruct.java | 8 +- .../weaver/joinpoints/FOmpConstruct.java | 2 +- .../weaver/joinpoints/FSpecification.java | 13 - .../joinpoints/FSpecificationStatement.java | 10 +- .../weaver/joinpoints/FStatementBlock.java | 30 - .../weaver/joinpoints/FSubprogram.java | 5 - .../weaver/joinpoints/FSubroutine.java | 5 + 25 files changed, 368 insertions(+), 453 deletions(-) create mode 100644 FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecBlock.java create mode 100644 FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecConstruct.java create mode 100644 FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecPartConstruct.java delete mode 100644 FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecutableConstruct.java delete mode 100644 FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecutableStatement.java delete mode 100644 FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FStatementBlock.java diff --git a/FortranWeaver/resources/fortran/weaverspecs/actionModel.xml b/FortranWeaver/resources/fortran/weaverspecs/actionModel.xml index 64b7e000..0ec00b04 100644 --- a/FortranWeaver/resources/fortran/weaverspecs/actionModel.xml +++ b/FortranWeaver/resources/fortran/weaverspecs/actionModel.xml @@ -70,7 +70,7 @@ - + @@ -85,11 +85,11 @@ - + - + diff --git a/FortranWeaver/resources/fortran/weaverspecs/artifacts.xml b/FortranWeaver/resources/fortran/weaverspecs/artifacts.xml index 19c1de0f..8b12b7f7 100644 --- a/FortranWeaver/resources/fortran/weaverspecs/artifacts.xml +++ b/FortranWeaver/resources/fortran/weaverspecs/artifacts.xml @@ -72,7 +72,7 @@ - + @@ -87,21 +87,20 @@ - + - - + + - - + @@ -129,10 +128,13 @@ - + + + + @@ -157,7 +159,7 @@ - + @@ -166,7 +168,7 @@ - + @@ -174,7 +176,7 @@ - + diff --git a/FortranWeaver/resources/fortran/weaverspecs/joinPointModel.xml b/FortranWeaver/resources/fortran/weaverspecs/joinPointModel.xml index 979779ab..3d19d9e6 100644 --- a/FortranWeaver/resources/fortran/weaverspecs/joinPointModel.xml +++ b/FortranWeaver/resources/fortran/weaverspecs/joinPointModel.xml @@ -14,9 +14,7 @@ - - - + @@ -34,20 +32,22 @@ - + + + - + - + - + - + @@ -56,7 +56,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranJoinpoints.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranJoinpoints.java index 140fc204..5b08beaf 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranJoinpoints.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranJoinpoints.java @@ -66,7 +66,6 @@ public class FortranJoinpoints { JOINPOINT_FACTORY.put(DataRef.class, FDataRef::new); JOINPOINT_FACTORY.put(Designator.class, FDesignator::new); JOINPOINT_FACTORY.put(DoConstruct.class, FDoConstruct::new); - JOINPOINT_FACTORY.put(ExecutableStmt.class, FExecutableStatement::new); JOINPOINT_FACTORY.put(Execution.class, FExecution::new); JOINPOINT_FACTORY.put(Expr.class, FExpr::new); JOINPOINT_FACTORY.put(IntLiteral.class, FIntLiteral::new); @@ -75,7 +74,7 @@ public class FortranJoinpoints { JOINPOINT_FACTORY.put(NameValue.class, FNameValue::new); JOINPOINT_FACTORY.put(RangeLoopControl.class, FRangeLoopControl::new); JOINPOINT_FACTORY.put(RealLiteral.class, FRealLiteral::new); - JOINPOINT_FACTORY.put(StmtBlock.class, FStatementBlock::new); + JOINPOINT_FACTORY.put(ExecBlock.class, FExecBlock::new); JOINPOINT_FACTORY.put(StringLiteral.class, FStringLiteral::new); JOINPOINT_FACTORY.put(Specification.class, FSpecification::new); JOINPOINT_FACTORY.put(OmpConstruct.class, FOmpConstruct::new); @@ -95,7 +94,7 @@ public class FortranJoinpoints { JOINPOINT_FACTORY.put(ElseIfBlock.class, FElseIfBlock::new); JOINPOINT_FACTORY.put(ElseIfStmt.class, FElseIfStatement::new); JOINPOINT_FACTORY.put(ElseBlock.class, FElseBlock::new); - JOINPOINT_FACTORY.put(SpecificationStmt.class, FSpecificationStatement::new); + JOINPOINT_FACTORY.put(SpecStmt.class, FSpecificationStatement::new); JOINPOINT_FACTORY.put(TypeDeclarationStmt.class, FTypeDeclarationStatement::new); JOINPOINT_FACTORY.put(AttributeSpecifier.class, FAttributeSpecifier::new); JOINPOINT_FACTORY.put(KeywordAttributeSpecifier.class, FKeywordAttributeSpecifier::new); diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json index c6fcaa6d..047899f4 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json @@ -231,8 +231,8 @@ { "type": "joinpoint", "name": "actionStatement", - "extends": "executableStatement" , - "tooltip": "Represents an action statement", + "extends": "statement" , + "tooltip": "Represents an executable statement", "children": [ { "type": "attribute", @@ -2210,14 +2210,14 @@ { "type": "joinpoint", "name": "doConstruct", - "extends": "executableConstruct" , + "extends": "execConstruct" , "tooltip": "Represents a do loop", "children": [ { "type": "attribute", "children": [ { - "type": "execution", + "type": "execBlock", "name": "body" }] }, @@ -2491,7 +2491,7 @@ "type": "attribute", "children": [ { - "type": "statementBlock", + "type": "execBlock", "name": "body" }] }, @@ -2726,7 +2726,7 @@ "type": "attribute", "children": [ { - "type": "statementBlock", + "type": "execBlock", "name": "body" }] }, @@ -3430,9 +3430,17 @@ }, { "type": "joinpoint", - "name": "executableConstruct", + "name": "execBlock", "extends": "joinpoint" , "children": [ + { + "type": "attribute", + "children": [ + { + "type": "execPartConstruct[]", + "name": "constructs" + }] + }, { "type": "attribute", "tooltip": "Returns an array with the children of the node", @@ -3656,26 +3664,235 @@ }, { "type": "joinpoint", - "name": "executableStatement", - "extends": "statement" , - "tooltip": "Represents an executable statement", + "name": "execConstruct", + "extends": "execPartConstruct" , "children": [ { "type": "attribute", + "tooltip": "Returns an array with the children of the node", "children": [ { - "type": "Boolean", - "name": "isFirst" + "type": "joinpoint[]", + "name": "children" }] }, { "type": "attribute", + "tooltip": "String with the code represented by this node", + "children": [ + { + "type": "String", + "name": "code" + }] + }, + { + "type": "attribute", + "tooltip": "true if the given node is a descendant of this node", "children": [ { "type": "Boolean", - "name": "isLast" + "name": "contains" + }, + { + "type": "joinpoint", + "name": "jp", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns an array with the descendants of the node", + "children": [ + { + "type": "joinpoint[]", + "name": "descendants" + }] + }, + { + "type": "attribute", + "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", + "children": [ + { + "type": "joinpoint", + "name": "getAncestor" + }, + { + "type": "String", + "name": "type", + "defaultValue": "" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the index of this join point in relation to its parent", + "children": [ + { + "type": "int", + "name": "indexOfSelf" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that came before this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "leftJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "children": [ + { + "type": "joinpoint", + "name": "parent" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "children": [ + { + "type": "joinpoint", + "name": "rightJp" + }] + }, + { + "type": "attribute", + "tooltip": "Returns the 'program' join point", + "children": [ + { + "type": "program", + "name": "root" }] }, + { + "type": "attribute", + "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", + "children": [ + { + "type": "joinpoint[]", + "name": "scopeNodes" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", + "children": [ + { + "type": "joinpoint", + "name": "copy" + }] + }, + { + "type": "action", + "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", + "children": [ + { + "type": "joinpoint", + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point after this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Inserts the given join point before this join point", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a string", + "children": [ + { + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "execPartConstruct", + "extends": "joinpoint" , + "children": [ { "type": "attribute", "tooltip": "Returns an array with the children of the node", @@ -3900,22 +4117,14 @@ { "type": "joinpoint", "name": "execution", - "extends": "statementBlock" , + "extends": "execBlock" , "children": [ { "type": "attribute", "children": [ { - "type": "executableStatement[]", - "name": "executableStmts" - }] - }, - { - "type": "attribute", - "children": [ - { - "type": "statement[]", - "name": "stmts" + "type": "execPartConstruct[]", + "name": "constructs" }] }, { @@ -4035,7 +4244,7 @@ "name": "insertBegin" }, { - "type": "executableStatement", + "type": "execPartConstruct", "name": "stmt", "defaultValue": "" }] @@ -4048,7 +4257,7 @@ "name": "insertEnd" }, { - "type": "executableStatement", + "type": "execPartConstruct", "name": "stmt", "defaultValue": "" }] @@ -5101,7 +5310,7 @@ { "type": "joinpoint", "name": "ifConstruct", - "extends": "executableConstruct" , + "extends": "execConstruct" , "tooltip": "Represents the root of an if construct", "children": [ { @@ -5617,7 +5826,7 @@ "type": "attribute", "children": [ { - "type": "statementBlock", + "type": "execBlock", "name": "body" }] }, @@ -6542,14 +6751,6 @@ "name": "internalSubprogram", "extends": "subprogram" , "children": [ - { - "type": "attribute", - "children": [ - { - "type": "String", - "name": "moduleName" - }] - }, { "type": "attribute", "tooltip": "Returns the subprogram's specification part", @@ -8288,7 +8489,7 @@ "name": "setBody" }, { - "type": "execution", + "type": "execBlock", "name": "body", "defaultValue": "" }] @@ -8662,7 +8863,7 @@ { "type": "joinpoint", "name": "ompConstruct", - "extends": "executableConstruct" , + "extends": "execConstruct" , "tooltip": "Represents a generic OpenMP construct", "children": [ { @@ -11067,24 +11268,8 @@ { "type": "joinpoint", "name": "specification", - "extends": "statementBlock" , + "extends": "joinpoint" , "children": [ - { - "type": "attribute", - "children": [ - { - "type": "specificationStatement[]", - "name": "specificationStmts" - }] - }, - { - "type": "attribute", - "children": [ - { - "type": "statement[]", - "name": "stmts" - }] - }, { "type": "attribute", "tooltip": "Returns an array with the children of the node", @@ -11805,240 +11990,6 @@ }] }] }, - { - "type": "joinpoint", - "name": "statementBlock", - "extends": "joinpoint" , - "children": [ - { - "type": "attribute", - "children": [ - { - "type": "statement[]", - "name": "stmts" - }] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - }] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - }] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - }] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - }] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - }] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - }] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - }] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - }] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - }] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - }] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - }] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - }] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - }] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - }] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - }] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - }] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - }] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - }] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - }] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - }] - }] - }, { "type": "joinpoint", "name": "stringLiteral", @@ -12270,14 +12221,6 @@ "name": "subprogram", "extends": "joinpoint" , "children": [ - { - "type": "attribute", - "children": [ - { - "type": "String", - "name": "moduleName" - }] - }, { "type": "attribute", "tooltip": "Returns the subprogram's specification part", @@ -12518,7 +12461,7 @@ "children": [ { "type": "String", - "name": "moduleName" + "name": "name" }] }, { diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/importable/AstFactory.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/importable/AstFactory.java index 915a3ddc..039e89a2 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/importable/AstFactory.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/importable/AstFactory.java @@ -1,6 +1,5 @@ package pt.up.fe.specs.fortran.weaver.importable; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.expr.Argument; import pt.up.fe.specs.fortran.ast.nodes.expr.DataRef; import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; @@ -8,6 +7,7 @@ import pt.up.fe.specs.fortran.ast.nodes.loops.RangeLoopControl; import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpClause; import pt.up.fe.specs.fortran.ast.nodes.omp.enums.OmpClauseKind; +import pt.up.fe.specs.fortran.ast.nodes.program.construct.ExecPartConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; import pt.up.fe.specs.fortran.weaver.FortranJoinpoints; import pt.up.fe.specs.fortran.weaver.FortranWeaver; @@ -70,12 +70,12 @@ public static AOmpReductionClause ompReductionClause(String operator, Object[] a } public static AExecution execution(Object[] args) { - List stmts = SpecsCollections.asListT(AExecutableStatement.class, args) + List constructs = SpecsCollections.asListT(AExecPartConstruct.class, args) .stream() - .map(AExecutableStatement::getNode) + .map(stmt -> (ExecPartConstruct) stmt.getNode()) .toList(); - return FortranJoinpoints.create(FortranWeaver.getFactory().execution(stmts), AExecution.class); + return FortranJoinpoints.create(FortranWeaver.getFactory().execution(constructs), AExecution.class); } public static AOmpOrderedClause ompOrderedClause(int value) { diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FActionStatement.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FActionStatement.java index b9380fbf..bdebdad5 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FActionStatement.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FActionStatement.java @@ -9,7 +9,7 @@ public class FActionStatement extends AActionStatement { private final ActionStmt actionStmt; public FActionStatement(ActionStmt actionStmt) { - super(new FExecutableStatement(actionStmt)); + super(new FStatement(actionStmt)); this.actionStmt = actionStmt; } diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FDoConstruct.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FDoConstruct.java index 4218c8d2..006bdb13 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FDoConstruct.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FDoConstruct.java @@ -14,7 +14,7 @@ public class FDoConstruct extends ADoConstruct { private final DoConstruct doConstruct; public FDoConstruct(DoConstruct doConstruct) { - super(new FExecutableConstruct(doConstruct)); + super(new FExecConstruct(doConstruct)); this.doConstruct = doConstruct; } diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FElseBlock.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FElseBlock.java index 27ee8e2c..c148a14e 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FElseBlock.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FElseBlock.java @@ -4,7 +4,7 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.ifstmt.ElseBlock; import pt.up.fe.specs.fortran.weaver.FortranJoinpoints; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AElseBlock; -import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AStatementBlock; +import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AExecBlock; public class FElseBlock extends AElseBlock { @@ -15,8 +15,8 @@ public FElseBlock(ElseBlock elseBlock) { } @Override - public AStatementBlock getBodyImpl() { - return FortranJoinpoints.create(elseBlock.getBlock(), AStatementBlock.class); + public AExecBlock getBodyImpl() { + return FortranJoinpoints.create(elseBlock.getBlock(), AExecBlock.class); } @Override diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FElseIfBlock.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FElseIfBlock.java index bcad5ab3..0d0f9257 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FElseIfBlock.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FElseIfBlock.java @@ -5,7 +5,7 @@ import pt.up.fe.specs.fortran.weaver.FortranJoinpoints; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AElseIfBlock; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AElseIfStatement; -import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AStatementBlock; +import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AExecBlock; public class FElseIfBlock extends AElseIfBlock { @@ -16,8 +16,8 @@ public FElseIfBlock(ElseIfBlock elseIfBlock) { } @Override - public AStatementBlock getBodyImpl() { - return FortranJoinpoints.create(elseIfBlock.getBlock(), AStatementBlock.class); + public AExecBlock getBodyImpl() { + return FortranJoinpoints.create(elseIfBlock.getBlock(), AExecBlock.class); } @Override diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecBlock.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecBlock.java new file mode 100644 index 00000000..78de61a2 --- /dev/null +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecBlock.java @@ -0,0 +1,28 @@ +package pt.up.fe.specs.fortran.weaver.joinpoints; + +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.program.ExecBlock; +import pt.up.fe.specs.fortran.weaver.FortranJoinpoints; +import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AExecBlock; +import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AExecPartConstruct; + +public class FExecBlock extends AExecBlock { + private final ExecBlock execBlock; + + public FExecBlock(ExecBlock execBlock) { + this.execBlock = execBlock; + } + + @Override + public AExecPartConstruct[] getConstructsArrayImpl() { + return (AExecPartConstruct[]) execBlock.getConstructs() + .stream() + .map(FortranJoinpoints::create) + .toArray(); + } + + @Override + public FortranNode getNode() { + return execBlock; + } +} diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecConstruct.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecConstruct.java new file mode 100644 index 00000000..d9982532 --- /dev/null +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecConstruct.java @@ -0,0 +1,19 @@ +package pt.up.fe.specs.fortran.weaver.joinpoints; + +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.program.construct.ExecConstruct; +import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AExecConstruct; + +public class FExecConstruct extends AExecConstruct { + public final ExecConstruct executableConstruct; + + public FExecConstruct(ExecConstruct executableConstruct) { + super(new FExecPartConstruct(executableConstruct)); + this.executableConstruct = executableConstruct; + } + + @Override + public FortranNode getNode() { + return executableConstruct; + } +} diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecPartConstruct.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecPartConstruct.java new file mode 100644 index 00000000..367d8386 --- /dev/null +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecPartConstruct.java @@ -0,0 +1,18 @@ +package pt.up.fe.specs.fortran.weaver.joinpoints; + +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.program.construct.ExecPartConstruct; +import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AExecPartConstruct; + +public class FExecPartConstruct extends AExecPartConstruct { + private final ExecPartConstruct execPartConstruct; + + public FExecPartConstruct(ExecPartConstruct execPartConstruct) { + this.execPartConstruct = execPartConstruct; + } + + @Override + public FortranNode getNode() { + return execPartConstruct; + } +} diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecutableConstruct.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecutableConstruct.java deleted file mode 100644 index 4c5e40f7..00000000 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecutableConstruct.java +++ /dev/null @@ -1,18 +0,0 @@ -package pt.up.fe.specs.fortran.weaver.joinpoints; - -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.stmt.ExecutableConstruct; -import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AExecutableConstruct; - -public class FExecutableConstruct extends AExecutableConstruct { - public final ExecutableConstruct executableConstruct; - - public FExecutableConstruct(ExecutableConstruct executableConstruct) { - this.executableConstruct = executableConstruct; - } - - @Override - public FortranNode getNode() { - return executableConstruct; - } -} diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecutableStatement.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecutableStatement.java deleted file mode 100644 index b168dfd7..00000000 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecutableStatement.java +++ /dev/null @@ -1,20 +0,0 @@ -package pt.up.fe.specs.fortran.weaver.joinpoints; - -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.stmt.ExecutableStmt; -import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AExecutableStatement; - -public class FExecutableStatement extends AExecutableStatement { - - private final ExecutableStmt executableStmt; - - public FExecutableStatement(ExecutableStmt executableStmt) { - super(new FStatement(executableStmt)); - this.executableStmt = executableStmt; - } - - @Override - public FortranNode getNode() { - return executableStmt; - } -} diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecution.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecution.java index 73825203..594fa14f 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecution.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExecution.java @@ -2,38 +2,25 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.program.Execution; -import pt.up.fe.specs.fortran.weaver.FortranJoinpoints; -import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AExecutableStatement; +import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AExecPartConstruct; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AExecution; -import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AStatement; - -import java.util.stream.Collectors; public class FExecution extends AExecution { private final Execution execution; public FExecution(Execution execution) { - super(new FStatementBlock(execution)); + super(new FExecBlock(execution)); this.execution = execution; } @Override - public AExecutableStatement[] getExecutableStmtsArrayImpl() { - return execution.getStatements() - .stream() - .map(FortranJoinpoints::create) - .toList() - .toArray(new AExecutableStatement[0]); - } - - @Override - public void insertBeginImpl(AExecutableStatement stmt) { + public void insertBeginImpl(AExecPartConstruct stmt) { execution.addChild(0, stmt.getNode()); } @Override - public void insertEndImpl(AExecutableStatement stmt) { + public void insertEndImpl(AExecPartConstruct stmt) { execution.addChild(stmt.getNode()); } diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FIfConstruct.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FIfConstruct.java index 6c6bed4e..d192404d 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FIfConstruct.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FIfConstruct.java @@ -13,7 +13,7 @@ public class FIfConstruct extends AIfConstruct { public final IfConstruct ifConstruct; public FIfConstruct(IfConstruct ifConstruct) { - super(new FExecutableConstruct(ifConstruct)); + super(new FExecConstruct(ifConstruct)); this.ifConstruct = ifConstruct; } diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FIfThenBlock.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FIfThenBlock.java index fda9d604..2ae9a8f7 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FIfThenBlock.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FIfThenBlock.java @@ -3,9 +3,9 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.stmt.ifstmt.IfThenBlock; import pt.up.fe.specs.fortran.weaver.FortranJoinpoints; +import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AExecBlock; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AIfThenBlock; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AIfThenStatement; -import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AStatementBlock; public class FIfThenBlock extends AIfThenBlock { @@ -16,8 +16,8 @@ public FIfThenBlock(IfThenBlock ifThenBlock) { } @Override - public AStatementBlock getBodyImpl() { - return FortranJoinpoints.create(ifThenBlock.getBlock(), AStatementBlock.class); + public AExecBlock getBodyImpl() { + return FortranJoinpoints.create(ifThenBlock.getBlock(), AExecBlock.class); } @Override diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FOmpBlockConstruct.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FOmpBlockConstruct.java index 75ec0d84..15a0cb8c 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FOmpBlockConstruct.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FOmpBlockConstruct.java @@ -2,8 +2,8 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.omp.OmpBlockConstruct; -import pt.up.fe.specs.fortran.ast.nodes.program.Execution; -import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AExecution; +import pt.up.fe.specs.fortran.ast.nodes.program.ExecBlock; +import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AExecBlock; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AOmpBlockConstruct; public class FOmpBlockConstruct extends AOmpBlockConstruct { @@ -16,8 +16,8 @@ public FOmpBlockConstruct(OmpBlockConstruct ompBlockConstruct) { } @Override - public void setBodyImpl(AExecution body) { - ompBlockConstruct.setBody((Execution) body.getNode()); + public void setBodyImpl(AExecBlock body) { + ompBlockConstruct.setBody((ExecBlock) body.getNode()); } @Override diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FOmpConstruct.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FOmpConstruct.java index 6b2d92fb..7a90f0ab 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FOmpConstruct.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FOmpConstruct.java @@ -16,7 +16,7 @@ public class FOmpConstruct extends AOmpConstruct { public final OmpConstruct ompConstruct; public FOmpConstruct(OmpConstruct ompConstruct) { - super(new FExecutableConstruct(ompConstruct)); + super(new FExecConstruct(ompConstruct)); this.ompConstruct = ompConstruct; } diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSpecification.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSpecification.java index c0631888..ec121be0 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSpecification.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSpecification.java @@ -3,29 +3,16 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.program.Specification; import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.UseStmt; -import pt.up.fe.specs.fortran.weaver.FortranJoinpoints; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.ASpecification; -import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.ASpecificationStatement; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AUseStatement; public class FSpecification extends ASpecification { - public final Specification specification; public FSpecification(Specification specification) { - super(new FStatementBlock(specification)); this.specification = specification; } - @Override - public ASpecificationStatement[] getSpecificationStmtsArrayImpl() { - return specification.getSpecificationStatements() - .stream() - .map(FortranJoinpoints::create) - .toList() - .toArray(new ASpecificationStatement[0]); - } - @Override public void addUseStmtImpl(AUseStatement stmt) { specification.addUseStmt((UseStmt) stmt.getNode()); diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSpecificationStatement.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSpecificationStatement.java index 02077361..8fede0ae 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSpecificationStatement.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSpecificationStatement.java @@ -6,15 +6,15 @@ public class FSpecificationStatement extends ASpecificationStatement { - public final SpecStmt specificationStmt; + public final SpecStmt specStmt; - public FSpecificationStatement(SpecStmt specificationStmt) { - super(new FStatement(specificationStmt)); - this.specificationStmt = specificationStmt; + public FSpecificationStatement(SpecStmt specStmt) { + super(new FStatement(specStmt)); + this.specStmt = specStmt; } @Override public FortranNode getNode() { - return specificationStmt; + return specStmt; } } diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FStatementBlock.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FStatementBlock.java deleted file mode 100644 index 2de65620..00000000 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FStatementBlock.java +++ /dev/null @@ -1,30 +0,0 @@ -package pt.up.fe.specs.fortran.weaver.joinpoints; - -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.program.StmtBlock; -import pt.up.fe.specs.fortran.weaver.FortranJoinpoints; -import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AExpr; -import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AStatement; -import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AStatementBlock; - -public class FStatementBlock extends AStatementBlock { - - private final StmtBlock stmtBlock; - - public FStatementBlock(StmtBlock stmtBlock) { - this.stmtBlock = stmtBlock; - } - - @Override - public AStatement[] getStmtsArrayImpl() { - return (AStatement[]) stmtBlock.getStatements() - .stream() - .map(FortranJoinpoints::create) - .toArray(); - } - - @Override - public FortranNode getNode() { - return stmtBlock; - } -} diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSubprogram.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSubprogram.java index 900a7f34..943d6016 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSubprogram.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSubprogram.java @@ -18,11 +18,6 @@ public FortranNode getNode() { return subprogram; } - @Override - public String getModuleNameImpl() { - return subprogram.getName(); - } - @Override public ASpecification getSpecificationImpl() { return FortranJoinpoints.create(subprogram.getSpecification(), ASpecification.class); diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSubroutine.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSubroutine.java index a8e310e7..68fb63e9 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSubroutine.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FSubroutine.java @@ -13,6 +13,11 @@ public FSubroutine(Subroutine subroutine) { this.subroutine = subroutine; } + @Override + public String getNameImpl() { + return subroutine.getName(); + } + @Override public FortranNode getNode() { return subroutine; From 295faafe459ad029f39e190dc9668887b6884ebb Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 13 Aug 2026 14:12:12 +0100 Subject: [PATCH 246/260] Extend attribute specifier nodes --- .../ast/nodes/stmt/TypeDeclarationStmt.java | 8 ++--- .../nodes/type/attributes/AccessAttrSpec.java | 26 +++++++++++++++++ .../type/attributes/AllocatableKeyword.java | 12 -------- ...{AttributeSpecifier.java => AttrSpec.java} | 4 +-- .../nodes/type/attributes/CodimAttrSpec.java | 23 +++++++++++++++ .../{DimensionSpec.java => DimAttrSpec.java} | 14 ++++----- .../{IntentSpec.java => IntentAttrSpec.java} | 9 ++---- .../attributes/KeywordAttributeSpecifier.java | 29 ------------------- .../type/attributes/LangBindAttrSpec.java | 22 ++++++++++++++ .../nodes/type/attributes/OtherAttrSpec.java | 26 +++++++++++++++++ .../type/attributes/ParameterKeyword.java | 12 -------- .../type/attributes/enums/AttrSpecKind.java | 25 ++++++++++++++++ .../type/attributes/enums/IntentKind.java | 4 --- .../fe/specs/fortran/parser/FlangToClass.java | 6 ++-- .../processors/AttributesProcessor.java | 15 +++++----- .../fortran/parser/processors/Nodes.java | 7 ++--- .../parser/processors/StmtProcessors.java | 4 +-- 17 files changed, 152 insertions(+), 94 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/AccessAttrSpec.java delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/AllocatableKeyword.java rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/{AttributeSpecifier.java => AttrSpec.java} (60%) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/CodimAttrSpec.java rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/{DimensionSpec.java => DimAttrSpec.java} (68%) rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/{IntentSpec.java => IntentAttrSpec.java} (69%) delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/KeywordAttributeSpecifier.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/LangBindAttrSpec.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/OtherAttrSpec.java delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/ParameterKeyword.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/enums/AttrSpecKind.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java index 92143378..d9c073ea 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/TypeDeclarationStmt.java @@ -3,7 +3,7 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.decl.EntityDecl; -import pt.up.fe.specs.fortran.ast.nodes.type.attributes.AttributeSpecifier; +import pt.up.fe.specs.fortran.ast.nodes.type.attributes.AttrSpec; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DeclType; import pt.up.fe.specs.util.SpecsCheck; @@ -28,8 +28,8 @@ public List getDecls() { return getChildrenOf(EntityDecl.class); } - public List getAttributes() { - return getChildrenOf(AttributeSpecifier.class); + public List getAttributes() { + return getChildrenOf(AttrSpec.class); } @Override @@ -60,7 +60,7 @@ public String getStmtCode() { return code.toString(); } - private static String getAttributesCode(List attributes) { + private static String getAttributesCode(List attributes) { return attributes.stream().map(FortranNode::getCode) .collect(Collectors.joining(", ")); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/AccessAttrSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/AccessAttrSpec.java new file mode 100644 index 00000000..d73e5b14 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/AccessAttrSpec.java @@ -0,0 +1,26 @@ +package pt.up.fe.specs.fortran.ast.nodes.type.attributes; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.specification.enums.AccessKind; + +import java.util.Collection; + +public class AccessAttrSpec extends AttrSpec { + public static final DataKey ACCESS_KIND = KeyFactory.enumeration("access_kind", AccessKind.class); + + public AccessAttrSpec(DataStore data, Collection children) { + super(data, children); + } + + public AccessKind getAccessKind() { + return get(ACCESS_KIND); + } + + @Override + public String getCode() { + return encase(getAccessKind().name()); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/AllocatableKeyword.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/AllocatableKeyword.java deleted file mode 100644 index 91f0786c..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/AllocatableKeyword.java +++ /dev/null @@ -1,12 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.type.attributes; - -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; - -import java.util.Collection; - -public class AllocatableKeyword extends KeywordAttributeSpecifier{ - public AllocatableKeyword(DataStore data, Collection children) { - super(data, children); - } -} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/AttributeSpecifier.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/AttrSpec.java similarity index 60% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/AttributeSpecifier.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/AttrSpec.java index a1fb09da..836eec13 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/AttributeSpecifier.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/AttrSpec.java @@ -5,8 +5,8 @@ import java.util.Collection; -public abstract class AttributeSpecifier extends FortranNode { - public AttributeSpecifier(DataStore data, Collection children) { +public abstract class AttrSpec extends FortranNode { + public AttrSpec(DataStore data, Collection children) { super(data, children); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/CodimAttrSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/CodimAttrSpec.java new file mode 100644 index 00000000..ccea334d --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/CodimAttrSpec.java @@ -0,0 +1,23 @@ +package pt.up.fe.specs.fortran.ast.nodes.type.attributes; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.specification.coshape.CoarraySpec; + +import java.util.Collection; + +public class CodimAttrSpec extends AttrSpec { + public CodimAttrSpec(DataStore data, Collection children) { + super(data, children); + } + + public CoarraySpec getCoarraySpec() { + return getChild(CoarraySpec.class, 0); + } + + @Override + public String getCode() { + return keyword(FortranKeyword.CODIMENSION) + getCoarraySpec().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/DimensionSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/DimAttrSpec.java similarity index 68% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/DimensionSpec.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/DimAttrSpec.java index 4421b617..e317890a 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/DimensionSpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/DimAttrSpec.java @@ -7,18 +7,18 @@ import java.util.Collection; -public class DimensionSpec extends AttributeSpecifier { - public DimensionSpec(DataStore data, Collection children) { +public class DimAttrSpec extends AttrSpec { + public DimAttrSpec(DataStore data, Collection children) { super(data, children); } + private ArraySpec getArraySpec() { + return getChild(ArraySpec.class, 0); + } + @Override public String getCode() { - var arraySpec = getArraySpecification(); + var arraySpec = getArraySpec(); return keyword(FortranKeyword.DIMENSION) + arraySpec.getCode(); } - - private ArraySpec getArraySpecification() { - return getChild(ArraySpec.class, 0); - } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/IntentSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/IntentAttrSpec.java similarity index 69% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/IntentSpec.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/IntentAttrSpec.java index 1701955e..9a74d862 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/IntentSpec.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/IntentAttrSpec.java @@ -11,11 +11,11 @@ import static pt.up.fe.specs.fortran.ast.FortranKeyword.INTENT; -public class IntentSpec extends AttributeSpecifier { +public class IntentAttrSpec extends AttrSpec { public final static DataKey KIND = KeyFactory.enumeration("kind", IntentKind.class); - public IntentSpec(DataStore data, Collection children) { + public IntentAttrSpec(DataStore data, Collection children) { super(data, children); } @@ -25,9 +25,6 @@ public IntentKind getKind() { @Override public String getCode() { - var kind = getKind(); - var lowercase = getContext().get(FortranContext.FORTRAN_KEYWORDS).isLowercase(); - - return keyword(INTENT) + "(" + kind.getCode(lowercase) + ")"; + return keyword(INTENT) + "(" + encase(getKind().getString()) + ")"; } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/KeywordAttributeSpecifier.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/KeywordAttributeSpecifier.java deleted file mode 100644 index 977e2288..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/KeywordAttributeSpecifier.java +++ /dev/null @@ -1,29 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.type.attributes; - -import org.suikasoft.jOptions.Datakey.DataKey; -import org.suikasoft.jOptions.Datakey.KeyFactory; -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; - -import java.util.Collection; - -public abstract class KeywordAttributeSpecifier extends AttributeSpecifier { - // DATAKEYS BEGIN - - /** - * The keyword of the attribute specifier, e.g., "allocatable", "pointer", etc. - */ - public final static DataKey KEYWORD = KeyFactory.string("keyword"); - - - // DATAKEYS END - - public KeywordAttributeSpecifier(DataStore data, Collection children) { - super(data, children); - } - - @Override - public String getCode() { - return get(KEYWORD).toUpperCase(); - } -} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/LangBindAttrSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/LangBindAttrSpec.java new file mode 100644 index 00000000..abfd2710 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/LangBindAttrSpec.java @@ -0,0 +1,22 @@ +package pt.up.fe.specs.fortran.ast.nodes.type.attributes; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.specification.LanguageBindingSpec; + +import java.util.Collection; + +public class LangBindAttrSpec extends AttrSpec { + public LangBindAttrSpec(DataStore data, Collection children) { + super(data, children); + } + + public LanguageBindingSpec getLanguageBindingSpec() { + return getChild(LanguageBindingSpec.class, 0); + } + + @Override + public String getCode() { + return getLanguageBindingSpec().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/OtherAttrSpec.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/OtherAttrSpec.java new file mode 100644 index 00000000..232ea99d --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/OtherAttrSpec.java @@ -0,0 +1,26 @@ +package pt.up.fe.specs.fortran.ast.nodes.type.attributes; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.type.attributes.enums.AttrSpecKind; + +import java.util.Collection; + +public class OtherAttrSpec extends AttrSpec { + public static final DataKey KIND = KeyFactory.enumeration("kind", AttrSpecKind.class); + + public OtherAttrSpec(DataStore data, Collection children) { + super(data, children); + } + + public AttrSpecKind getKind() { + return get(KIND); + } + + @Override + public String getCode() { + return encase(getKind().name()); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/ParameterKeyword.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/ParameterKeyword.java deleted file mode 100644 index 214065f1..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/ParameterKeyword.java +++ /dev/null @@ -1,12 +0,0 @@ -package pt.up.fe.specs.fortran.ast.nodes.type.attributes; - -import org.suikasoft.jOptions.Interfaces.DataStore; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; - -import java.util.Collection; - -public class ParameterKeyword extends KeywordAttributeSpecifier { - public ParameterKeyword(DataStore data, Collection children) { - super(data, children); - } -} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/enums/AttrSpecKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/enums/AttrSpecKind.java new file mode 100644 index 00000000..8e6041d4 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/enums/AttrSpecKind.java @@ -0,0 +1,25 @@ +package pt.up.fe.specs.fortran.ast.nodes.type.attributes.enums; + +public enum AttrSpecKind { + ALLOCATABLE, + ASYNCHRONOUS, + CONTIGUOUS, + EXTERNAL, + INTRINSIC, + OPTIONAL, + PARAMETER, + POINTER, + PROTECTED, + SAVE, + TARGET, + VALUE, + VOLATILE, + + // CUDA + CONSTANT, + DEVICE, + MANAGED, + PINNED, + SHARED, + TEXTURE; +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/enums/IntentKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/enums/IntentKind.java index 13d05e29..184076f3 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/enums/IntentKind.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/attributes/enums/IntentKind.java @@ -28,8 +28,4 @@ public static Optional convertTry(String name) { public String getString() { return this.string; } - - public String getCode(boolean lowercase) { - return lowercase ? string.toLowerCase() : string.toUpperCase(); - } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index e48fdba7..900742d3 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -71,9 +71,7 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.SelectCaseStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.*; import pt.up.fe.specs.fortran.ast.nodes.type.*; -import pt.up.fe.specs.fortran.ast.nodes.type.attributes.AllocatableKeyword; -import pt.up.fe.specs.fortran.ast.nodes.type.attributes.IntentSpec; -import pt.up.fe.specs.fortran.ast.nodes.type.attributes.ParameterKeyword; +import pt.up.fe.specs.fortran.ast.nodes.type.attributes.IntentAttrSpec; import pt.up.fe.specs.fortran.ast.nodes.utils.NameValue; import java.util.HashMap; @@ -305,7 +303,7 @@ public class FlangToClass { /// ATTRIBUTES NAME_TO_MAPPER.put(FlangName.ALLOCATABLE, ClassMapper.always(AllocatableKeyword.class)); - NAME_TO_MAPPER.put(FlangName.INTENT_SPEC, ClassMapper.always(IntentSpec.class)); + NAME_TO_MAPPER.put(FlangName.INTENT_SPEC, ClassMapper.always(IntentAttrSpec.class)); NAME_TO_MAPPER.put(FlangName.PARAMETER, ClassMapper.always(ParameterKeyword.class)); /// SHAPES diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AttributesProcessor.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AttributesProcessor.java index 94d14eec..1378d217 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AttributesProcessor.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AttributesProcessor.java @@ -3,8 +3,7 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ArraySpec; import pt.up.fe.specs.fortran.ast.nodes.specification.NamedConstantDef; -import pt.up.fe.specs.fortran.ast.nodes.type.attributes.IntentSpec; -import pt.up.fe.specs.fortran.ast.nodes.type.attributes.KeywordAttributeSpecifier; +import pt.up.fe.specs.fortran.ast.nodes.type.attributes.IntentAttrSpec; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.enums.IntentKind; import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; @@ -46,16 +45,16 @@ else if (variantKey.equals(FlangName.IMPLIED_SHAPE_SPEC.getString())) { additionalShape.ifPresent(arraySpecification::addChild); } - public void keywordSpecifier(KeywordAttributeSpecifier keywordSpecifier) { + public void keywordSpecifier(KeywordAttrSpec keywordSpecifier) { var keyword = attributes(keywordSpecifier).getString("keyword"); - keywordSpecifier.set(KeywordAttributeSpecifier.KEYWORD, keyword); + keywordSpecifier.set(KeywordAttrSpec.KEYWORD, keyword); } - public void intentSpec(IntentSpec intentSpec) { - intentSpec.set( - IntentSpec.KIND, - IntentKind.convertTry(attributes(intentSpec).getString("intent")).get() + public void intentSpec(IntentAttrSpec intentAttrSpec) { + intentAttrSpec.set( + IntentAttrSpec.KIND, + IntentKind.convertTry(attributes(intentAttrSpec).getString("intent")).get() ); } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 5eb3d91f..9024d98a 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -71,8 +71,7 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.UseOnlyStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.UseRenameStmt; import pt.up.fe.specs.fortran.ast.nodes.type.*; -import pt.up.fe.specs.fortran.ast.nodes.type.attributes.IntentSpec; -import pt.up.fe.specs.fortran.ast.nodes.type.attributes.KeywordAttributeSpecifier; +import pt.up.fe.specs.fortran.ast.nodes.type.attributes.IntentAttrSpec; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ConstLenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.KindParamLenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ParamLenSelector; @@ -257,8 +256,8 @@ public Nodes(FortranJsonResult data) { var a = new AttributesProcessor(data); processors.put(ArraySpec.class, a::arraySpecification); - processors.put(KeywordAttributeSpecifier.class, a::keywordSpecifier); - processors.put(IntentSpec.class, a::intentSpec); + processors.put(KeywordAttrSpec.class, a::keywordSpecifier); + processors.put(IntentAttrSpec.class, a::intentSpec); processors.put(NamedConstantDef.class, a::namedConstantDef); var shapes = new ShapesProcessor(data); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 3cbcb747..7166e751 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -35,7 +35,7 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.DerivedTypeStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.EndTypeStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.*; -import pt.up.fe.specs.fortran.ast.nodes.type.attributes.DimensionSpec; +import pt.up.fe.specs.fortran.ast.nodes.type.attributes.DimAttrSpec; import pt.up.fe.specs.fortran.parser.FlangAttributes; import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; @@ -109,7 +109,7 @@ public void typeDeclarationStmt(TypeDeclarationStmt typeDeclarationStmt) { var attributes = getChildren(typeDeclarationStmt, FlangName.ATTR_SPEC); var processedAttributes = attributes.stream() .map(attr -> attr instanceof ArraySpec - ? factory().newNode(DimensionSpec.class, List.of(attr)) + ? factory().newNode(DimAttrSpec.class, List.of(attr)) : attr) .toList(); typeDeclarationStmt.addChildren(processedAttributes); From 64922190c741713729b9f926e91ae7a7aa823f5c Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 13 Aug 2026 14:28:48 +0100 Subject: [PATCH 247/260] Add processors for the new attribute specifiers --- .../up/fe/specs/fortran/parser/FlangName.java | 7 ++++ .../fe/specs/fortran/parser/FlangToClass.java | 24 +++++++++-- .../processors/AttributesProcessor.java | 41 +++++++++++++++---- .../fortran/parser/processors/Nodes.java | 10 +++-- 4 files changed, 66 insertions(+), 16 deletions(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index a06a60d3..9b2d7321 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -327,6 +327,13 @@ public enum FlangName implements StringProvider { PARAMETER, ASSUMED_IMPLIED_SPEC, ASSUMED_RANK_SPEC, + INTRINSIC, + OPTIONAL, + PROTECTED, + SAVE, + TARGET, + VALUE, + VOLATILE, // OTHER INITIALIZATION, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 900742d3..cfc5a42e 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -28,6 +28,7 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.DataComponentDefStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.DerivedTypeStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.EndTypeStmt; +import pt.up.fe.specs.fortran.ast.nodes.type.attributes.*; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DeclType; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DerivedDeclType; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.IntrinsicDeclType; @@ -71,7 +72,6 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.SelectCaseStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.*; import pt.up.fe.specs.fortran.ast.nodes.type.*; -import pt.up.fe.specs.fortran.ast.nodes.type.attributes.IntentAttrSpec; import pt.up.fe.specs.fortran.ast.nodes.utils.NameValue; import java.util.HashMap; @@ -302,9 +302,25 @@ public class FlangToClass { NAME_TO_MAPPER.put(FlangName.CONCURRENT_CONTROL, ClassMapper.always(ConcurrentRange.class)); /// ATTRIBUTES - NAME_TO_MAPPER.put(FlangName.ALLOCATABLE, ClassMapper.always(AllocatableKeyword.class)); - NAME_TO_MAPPER.put(FlangName.INTENT_SPEC, ClassMapper.always(IntentAttrSpec.class)); - NAME_TO_MAPPER.put(FlangName.PARAMETER, ClassMapper.always(ParameterKeyword.class)); + NAME_TO_MAPPER.put(FlangName.ATTR_SPEC, ClassMapper.caseFor(AttrSpec.class) + .map(FlangName.ACCESS_SPEC, AccessAttrSpec.class) + .map(FlangName.ALLOCATABLE, OtherAttrSpec.class) + .map(FlangName.ASYNCHRONOUS, OtherAttrSpec.class) + .map(FlangName.COARRAY_SPEC, CodimAttrSpec.class) + .map(FlangName.CONTIGUOUS, OtherAttrSpec.class) + .map(FlangName.ARRAY_SPEC, DimAttrSpec.class) + .map(FlangName.EXTERNAL, OtherAttrSpec.class) + .map(FlangName.INTENT_SPEC, IntentAttrSpec.class) + .map(FlangName.INTRINSIC, OtherAttrSpec.class) + .map(FlangName.LANGUAGE_BINDING_SPEC, LangBindAttrSpec.class) + .map(FlangName.OPTIONAL, OtherAttrSpec.class) + .map(FlangName.PARAMETER, OtherAttrSpec.class) + .map(FlangName.POINTER, OtherAttrSpec.class) + .map(FlangName.PROTECTED, OtherAttrSpec.class) + .map(FlangName.SAVE, OtherAttrSpec.class) + .map(FlangName.TARGET, OtherAttrSpec.class) + .map(FlangName.VALUE, OtherAttrSpec.class) + .map(FlangName.VOLATILE, OtherAttrSpec.class)); /// SHAPES NAME_TO_MAPPER.put(FlangName.EXPLICIT_SHAPE_SPEC, ClassMapper.always(ExplicitShape.class)); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AttributesProcessor.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AttributesProcessor.java index 1378d217..9bb36e42 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AttributesProcessor.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AttributesProcessor.java @@ -1,9 +1,11 @@ package pt.up.fe.specs.fortran.parser.processors; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.specification.enums.AccessKind; import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ArraySpec; import pt.up.fe.specs.fortran.ast.nodes.specification.NamedConstantDef; -import pt.up.fe.specs.fortran.ast.nodes.type.attributes.IntentAttrSpec; +import pt.up.fe.specs.fortran.ast.nodes.type.attributes.*; +import pt.up.fe.specs.fortran.ast.nodes.type.attributes.enums.AttrSpecKind; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.enums.IntentKind; import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; @@ -45,17 +47,38 @@ else if (variantKey.equals(FlangName.IMPLIED_SHAPE_SPEC.getString())) { additionalShape.ifPresent(arraySpecification::addChild); } - public void keywordSpecifier(KeywordAttrSpec keywordSpecifier) { - var keyword = attributes(keywordSpecifier).getString("keyword"); + public void accessAttrSpec(AccessAttrSpec accessAttrSpec) { + var accessKindSrc = attributes().getString(accessAttrSpec, "value", FlangName.ACCESS_SPEC, FlangName.KIND); + var accessKind = AccessKind.valueOf(accessKindSrc.toUpperCase()); + accessAttrSpec.set(AccessAttrSpec.ACCESS_KIND, accessKind); + } + + public void codimAttrSpec(CodimAttrSpec codimAttrSpec) { + var coarraySpec = getChild(codimAttrSpec, FlangName.COARRAY_SPEC); + codimAttrSpec.addChild(coarraySpec); + } + + public void dimAttrSpec(DimAttrSpec dimAttrSpec) { + var arraySpec = getChild(dimAttrSpec, FlangName.ARRAY_SPEC); + dimAttrSpec.addChild(arraySpec); + } + + public void intentAttrSpec(IntentAttrSpec intentAttrSpec) { + var intentKindSrc = attributes().getString(intentAttrSpec, "intent", FlangName.INTENT_SPEC); + var intentKind = IntentKind.convertTry(intentKindSrc) + .orElseThrow(() -> new RuntimeException("Invalid intent kind: " + intentKindSrc)); + intentAttrSpec.set(IntentAttrSpec.KIND, intentKind); + } - keywordSpecifier.set(KeywordAttrSpec.KEYWORD, keyword); + public void langBindAttrSpec(LangBindAttrSpec langBindAttrSpec) { + var languageBindingSpec = getChild(langBindAttrSpec, FlangName.LANGUAGE_BINDING_SPEC); + langBindAttrSpec.addChild(languageBindingSpec); } - public void intentSpec(IntentAttrSpec intentAttrSpec) { - intentAttrSpec.set( - IntentAttrSpec.KIND, - IntentKind.convertTry(attributes(intentAttrSpec).getString("intent")).get() - ); + public void otherAttrSpec(OtherAttrSpec otherAttrSpec) { + var variantKey = attributes(otherAttrSpec).getVariantKey(); + var kind = AttrSpecKind.valueOf(variantKey.toUpperCase()); + otherAttrSpec.set(OtherAttrSpec.KIND, kind); } public void namedConstantDef(NamedConstantDef namedConstantDef) { diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 9024d98a..024b6fe8 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -28,6 +28,7 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.DataComponentDefStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.DerivedTypeStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.EndTypeStmt; +import pt.up.fe.specs.fortran.ast.nodes.type.attributes.*; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DerivedDeclType; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.IntrinsicDeclType; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.StarDeclType; @@ -71,7 +72,6 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.UseOnlyStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.UseRenameStmt; import pt.up.fe.specs.fortran.ast.nodes.type.*; -import pt.up.fe.specs.fortran.ast.nodes.type.attributes.IntentAttrSpec; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ConstLenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.KindParamLenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ParamLenSelector; @@ -256,8 +256,12 @@ public Nodes(FortranJsonResult data) { var a = new AttributesProcessor(data); processors.put(ArraySpec.class, a::arraySpecification); - processors.put(KeywordAttrSpec.class, a::keywordSpecifier); - processors.put(IntentAttrSpec.class, a::intentSpec); + processors.put(AccessAttrSpec.class, a::accessAttrSpec); + processors.put(CodimAttrSpec.class, a::codimAttrSpec); + processors.put(DimAttrSpec.class, a::dimAttrSpec); + processors.put(IntentAttrSpec.class, a::intentAttrSpec); + processors.put(LangBindAttrSpec.class, a::langBindAttrSpec); + processors.put(OtherAttrSpec.class, a::otherAttrSpec); processors.put(NamedConstantDef.class, a::namedConstantDef); var shapes = new ShapesProcessor(data); From 9643d1e5127c677c3f7f15c5e228087f1bc591c1 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sun, 23 Aug 2026 23:51:45 +0100 Subject: [PATCH 248/260] Fix weaver --- .../program/subprogram/FunctionStmt.java | 2 - .../fortran/weaverspecs/artifacts.xml | 2 +- .../fortran/weaverspecs/joinPointModel.xml | 6 +- .../fortran/weaver/FortranJoinpoints.java | 10 +- .../specs/fortran/weaver/FortranWeaver.json | 234 +----------------- .../fortran/weaver/joinpoints/FAttrSpec.java | 18 ++ .../joinpoints/FAttributeSpecifier.java | 19 -- .../FKeywordAttributeSpecifier.java | 20 -- .../weaver/joinpoints/FOtherAttrSpec.java | 20 ++ .../weaver/joinpoints/FParameterKeyword.java | 20 -- .../joinpoints/FTypeDeclarationStatement.java | 7 +- 11 files changed, 52 insertions(+), 306 deletions(-) create mode 100644 FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FAttrSpec.java delete mode 100644 FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FAttributeSpecifier.java delete mode 100644 FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FKeywordAttributeSpecifier.java create mode 100644 FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FOtherAttrSpec.java delete mode 100644 FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FParameterKeyword.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/FunctionStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/FunctionStmt.java index 5794aa3a..ed7daeac 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/FunctionStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/subprogram/FunctionStmt.java @@ -14,9 +14,7 @@ import java.util.List; import java.util.Optional; import java.util.stream.Collectors; -import java.util.stream.Stream; -// TODO(Process-ing): Include support for `prefix` public class FunctionStmt extends Stmt { public static final DataKey FUNCTION_NAME = KeyFactory.string("function_name"); public static final DataKey> RESULT_NAME = KeyFactory.optional("result_name"); diff --git a/FortranWeaver/resources/fortran/weaverspecs/artifacts.xml b/FortranWeaver/resources/fortran/weaverspecs/artifacts.xml index 8b12b7f7..7988a4c3 100644 --- a/FortranWeaver/resources/fortran/weaverspecs/artifacts.xml +++ b/FortranWeaver/resources/fortran/weaverspecs/artifacts.xml @@ -182,7 +182,7 @@ - + diff --git a/FortranWeaver/resources/fortran/weaverspecs/joinPointModel.xml b/FortranWeaver/resources/fortran/weaverspecs/joinPointModel.xml index 3d19d9e6..7161b037 100644 --- a/FortranWeaver/resources/fortran/weaverspecs/joinPointModel.xml +++ b/FortranWeaver/resources/fortran/weaverspecs/joinPointModel.xml @@ -93,11 +93,9 @@ - + - - - + diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranJoinpoints.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranJoinpoints.java index 5b08beaf..8127600c 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranJoinpoints.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranJoinpoints.java @@ -35,9 +35,8 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.ifstmt.*; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.UseStmt; -import pt.up.fe.specs.fortran.ast.nodes.type.attributes.AttributeSpecifier; -import pt.up.fe.specs.fortran.ast.nodes.type.attributes.KeywordAttributeSpecifier; -import pt.up.fe.specs.fortran.ast.nodes.type.attributes.ParameterKeyword; +import pt.up.fe.specs.fortran.ast.nodes.type.attributes.AttrSpec; +import pt.up.fe.specs.fortran.ast.nodes.type.attributes.OtherAttrSpec; import pt.up.fe.specs.fortran.ast.nodes.utils.NameValue; import pt.up.fe.specs.fortran.weaver.abstracts.AFortranWeaverJoinPoint; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AJoinPoint; @@ -96,9 +95,8 @@ public class FortranJoinpoints { JOINPOINT_FACTORY.put(ElseBlock.class, FElseBlock::new); JOINPOINT_FACTORY.put(SpecStmt.class, FSpecificationStatement::new); JOINPOINT_FACTORY.put(TypeDeclarationStmt.class, FTypeDeclarationStatement::new); - JOINPOINT_FACTORY.put(AttributeSpecifier.class, FAttributeSpecifier::new); - JOINPOINT_FACTORY.put(KeywordAttributeSpecifier.class, FKeywordAttributeSpecifier::new); - JOINPOINT_FACTORY.put(ParameterKeyword.class, FParameterKeyword::new); + JOINPOINT_FACTORY.put(AttrSpec.class, FAttrSpec::new); + JOINPOINT_FACTORY.put(OtherAttrSpec.class, FOtherAttrSpec::new); JOINPOINT_FACTORY.put(FortranDecl.class, FFortranDecl::new); JOINPOINT_FACTORY.put(EntityDecl.class, FEntityDecl::new); JOINPOINT_FACTORY.put(Initialization.class, FInitialization::new); diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json index 047899f4..70e0ae32 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json @@ -983,7 +983,7 @@ }, { "type": "joinpoint", - "name": "attributeSpecifier", + "name": "attrSpec", "extends": "joinpoint" , "children": [ { @@ -6981,232 +6981,6 @@ }] }] }, - { - "type": "joinpoint", - "name": "keywordAttributeSpecifier", - "extends": "attributeSpecifier" , - "children": [ - { - "type": "attribute", - "tooltip": "Returns an array with the children of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "children" - }] - }, - { - "type": "attribute", - "tooltip": "String with the code represented by this node", - "children": [ - { - "type": "String", - "name": "code" - }] - }, - { - "type": "attribute", - "tooltip": "true if the given node is a descendant of this node", - "children": [ - { - "type": "Boolean", - "name": "contains" - }, - { - "type": "joinpoint", - "name": "jp", - "defaultValue": "" - }] - }, - { - "type": "attribute", - "tooltip": "Returns an array with the descendants of the node", - "children": [ - { - "type": "joinpoint[]", - "name": "descendants" - }] - }, - { - "type": "attribute", - "tooltip": "Looks for an ancestor joinpoint name, walking back on the AST", - "children": [ - { - "type": "joinpoint", - "name": "getAncestor" - }, - { - "type": "String", - "name": "type", - "defaultValue": "" - }] - }, - { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", - "children": [ - { - "type": "int", - "name": "indexOfSelf" - }] - }, - { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "leftJp" - }] - }, - { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", - "children": [ - { - "type": "joinpoint", - "name": "parent" - }] - }, - { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", - "children": [ - { - "type": "joinpoint", - "name": "rightJp" - }] - }, - { - "type": "attribute", - "tooltip": "Returns the 'program' join point", - "children": [ - { - "type": "program", - "name": "root" - }] - }, - { - "type": "attribute", - "tooltip": "the nodes of the scope of the current join point. If this node has a body (e.g., loop, function) corresponds to the children of the body. Otherwise, returns an empty array", - "children": [ - { - "type": "joinpoint[]", - "name": "scopeNodes" - }] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, but not of the nodes in its fields", - "children": [ - { - "type": "joinpoint", - "name": "copy" - }] - }, - { - "type": "action", - "tooltip": "Performs a copy of the node and its children, including the nodes in their fields (only the first level of field nodes, this function is not recursive)", - "children": [ - { - "type": "joinpoint", - "name": "deepCopy" - }] - }, - { - "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", - "children": [ - { - "type": "joinpoint", - "name": "detach" - }] - }, - { - "type": "action", - "tooltip": "Inserts the given join point after this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - }] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertAfter" - }, - { - "type": "String", - "name": "code", - "defaultValue": "" - }] - }, - { - "type": "action", - "tooltip": "Inserts the given join point before this join point", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - }] - }, - { - "type": "action", - "tooltip": "Overload which accepts a string", - "children": [ - { - "type": "joinpoint", - "name": "insertBefore" - }, - { - "type": "String", - "name": "node", - "defaultValue": "" - }] - }, - { - "type": "action", - "tooltip": "Replaces this node with the given node", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint", - "name": "node", - "defaultValue": "" - }] - }, - { - "type": "action", - "tooltip": "Overload which accepts a list of join points", - "children": [ - { - "type": "joinpoint", - "name": "replaceWith" - }, - { - "type": "joinpoint[]", - "name": "node", - "defaultValue": "" - }] - }] - }, { "type": "joinpoint", "name": "kindedLiteral", @@ -10078,8 +9852,8 @@ }, { "type": "joinpoint", - "name": "parameterKeyword", - "extends": "keywordAttributeSpecifier" , + "name": "otherAttrSpec", + "extends": "attrSpec" , "children": [ { "type": "attribute", @@ -12703,7 +12477,7 @@ "type": "attribute", "children": [ { - "type": "attributeSpecifier[]", + "type": "attrSpec[]", "name": "attrs" }] }, diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FAttrSpec.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FAttrSpec.java new file mode 100644 index 00000000..eab7d4f8 --- /dev/null +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FAttrSpec.java @@ -0,0 +1,18 @@ +package pt.up.fe.specs.fortran.weaver.joinpoints; + +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.type.attributes.AttrSpec; +import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AAttrSpec; + +public class FAttrSpec extends AAttrSpec { + public final AttrSpec attrSpec; + + public FAttrSpec(AttrSpec attrSpec) { + this.attrSpec = attrSpec; + } + + @Override + public FortranNode getNode() { + return null; + } +} diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FAttributeSpecifier.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FAttributeSpecifier.java deleted file mode 100644 index a1a5ea8c..00000000 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FAttributeSpecifier.java +++ /dev/null @@ -1,19 +0,0 @@ -package pt.up.fe.specs.fortran.weaver.joinpoints; - -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.type.attributes.AttributeSpecifier; -import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AAttributeSpecifier; - -public class FAttributeSpecifier extends AAttributeSpecifier { - - public final AttributeSpecifier attributeSpecifier; - - public FAttributeSpecifier(AttributeSpecifier attributeSpecifier) { - this.attributeSpecifier = attributeSpecifier; - } - - @Override - public FortranNode getNode() { - return null; - } -} diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FKeywordAttributeSpecifier.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FKeywordAttributeSpecifier.java deleted file mode 100644 index f1b83914..00000000 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FKeywordAttributeSpecifier.java +++ /dev/null @@ -1,20 +0,0 @@ -package pt.up.fe.specs.fortran.weaver.joinpoints; - -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.type.attributes.KeywordAttributeSpecifier; -import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AKeywordAttributeSpecifier; - -public class FKeywordAttributeSpecifier extends AKeywordAttributeSpecifier { - - public final KeywordAttributeSpecifier keywordAttributeSpecifier; - - public FKeywordAttributeSpecifier(KeywordAttributeSpecifier keywordAttributeSpecifier) { - super(new FAttributeSpecifier(keywordAttributeSpecifier)); - this.keywordAttributeSpecifier = keywordAttributeSpecifier; - } - - @Override - public FortranNode getNode() { - return keywordAttributeSpecifier; - } -} diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FOtherAttrSpec.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FOtherAttrSpec.java new file mode 100644 index 00000000..c28b4f08 --- /dev/null +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FOtherAttrSpec.java @@ -0,0 +1,20 @@ +package pt.up.fe.specs.fortran.weaver.joinpoints; + +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.type.attributes.OtherAttrSpec; +import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AOtherAttrSpec; + +public class FOtherAttrSpec extends AOtherAttrSpec { + private final OtherAttrSpec otherAttrSpec; + + public FOtherAttrSpec(OtherAttrSpec otherAttrSpec) { + super(new FAttrSpec(otherAttrSpec)); + + this.otherAttrSpec = otherAttrSpec; + } + + @Override + public FortranNode getNode() { + return otherAttrSpec; + } +} diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FParameterKeyword.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FParameterKeyword.java deleted file mode 100644 index be8c4ac3..00000000 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FParameterKeyword.java +++ /dev/null @@ -1,20 +0,0 @@ -package pt.up.fe.specs.fortran.weaver.joinpoints; - -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.type.attributes.ParameterKeyword; -import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AParameterKeyword; - -public class FParameterKeyword extends AParameterKeyword { - - public final ParameterKeyword parameterKeyword; - - public FParameterKeyword(ParameterKeyword parameterKeyword) { - super(new FKeywordAttributeSpecifier(parameterKeyword)); - this.parameterKeyword = parameterKeyword; - } - - @Override - public FortranNode getNode() { - return parameterKeyword; - } -} diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FTypeDeclarationStatement.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FTypeDeclarationStatement.java index b673097a..571de3f0 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FTypeDeclarationStatement.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FTypeDeclarationStatement.java @@ -3,9 +3,8 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.stmt.TypeDeclarationStmt; import pt.up.fe.specs.fortran.weaver.FortranJoinpoints; -import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AAttributeSpecifier; +import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AAttrSpec; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AEntityDecl; -import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AExpr; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.ATypeDeclarationStatement; public class FTypeDeclarationStatement extends ATypeDeclarationStatement { @@ -18,12 +17,12 @@ public FTypeDeclarationStatement(TypeDeclarationStmt typeDeclarationStmt) { } @Override - public AAttributeSpecifier[] getAttrsArrayImpl() { + public AAttrSpec[] getAttrsArrayImpl() { return typeDeclarationStmt.getAttributes() .stream() .map(FortranJoinpoints::create) .toList() - .toArray(new AAttributeSpecifier[0]); + .toArray(new AAttrSpec[0]); } @Override From 670d7c1c6dc5830e54f03a6c154dbc99fa0c15c2 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 24 Aug 2026 11:40:41 +0100 Subject: [PATCH 249/260] Add nodes for pointer assignment statement --- .../nodes/stmt/pointerassign/DoubleBound.java | 26 ++++++++++++++ .../DoubleBoundPointerAssignStmt.java | 29 ++++++++++++++++ .../stmt/pointerassign/PointerAssignStmt.java | 23 +++++++++++++ .../SingleBoundPointerAssignStmt.java | 34 +++++++++++++++++++ 4 files changed, 112 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/pointerassign/DoubleBound.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/pointerassign/DoubleBoundPointerAssignStmt.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/pointerassign/PointerAssignStmt.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/pointerassign/SingleBoundPointerAssignStmt.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/pointerassign/DoubleBound.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/pointerassign/DoubleBound.java new file mode 100644 index 00000000..0822b5ee --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/pointerassign/DoubleBound.java @@ -0,0 +1,26 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.pointerassign; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; + +import java.util.Collection; + +public class DoubleBound extends FortranNode { + public DoubleBound(DataStore data, Collection children) { + super(data, children); + } + + public Expr getLowerBound() { + return getChild(Expr.class, 0); + } + + public Expr getUpperBound() { + return getChild(Expr.class, 1); + } + + @Override + public String getCode() { + return getLowerBound().getCode() + ":" + getUpperBound().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/pointerassign/DoubleBoundPointerAssignStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/pointerassign/DoubleBoundPointerAssignStmt.java new file mode 100644 index 00000000..6a3ca109 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/pointerassign/DoubleBoundPointerAssignStmt.java @@ -0,0 +1,29 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.pointerassign; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +public class DoubleBoundPointerAssignStmt extends PointerAssignStmt { + public DoubleBoundPointerAssignStmt(DataStore data, Collection children) { + super(data, children); + } + + public List getBounds() { + return getChildrenOf(DoubleBound.class); + } + + @Override + public String getStmtCode() { + var objectCode = getObject().getCode(); + var boundsCode = getBounds().stream() + .map(DoubleBound::getCode) + .collect(Collectors.joining(", ", "(", ")")); + var targetCode = getTarget().getCode(); + + return objectCode + boundsCode + " => " + targetCode; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/pointerassign/PointerAssignStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/pointerassign/PointerAssignStmt.java new file mode 100644 index 00000000..8bb10700 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/pointerassign/PointerAssignStmt.java @@ -0,0 +1,23 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.pointerassign; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.expr.DataRef; +import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; +import pt.up.fe.specs.fortran.ast.nodes.stmt.ActionStmt; + +import java.util.Collection; + +public abstract class PointerAssignStmt extends ActionStmt { + public PointerAssignStmt(DataStore data, Collection children) { + super(data, children); + } + + public DataRef getObject() { + return getChild(DataRef.class, 0); + } + + public Expr getTarget() { + return getChild(Expr.class, getNumChildren() - 1); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/pointerassign/SingleBoundPointerAssignStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/pointerassign/SingleBoundPointerAssignStmt.java new file mode 100644 index 00000000..a04c3f44 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/pointerassign/SingleBoundPointerAssignStmt.java @@ -0,0 +1,34 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.pointerassign; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; +import pt.up.fe.specs.util.SpecsCollections; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +public class SingleBoundPointerAssignStmt extends PointerAssignStmt { + public SingleBoundPointerAssignStmt(DataStore data, Collection children) { + super(data, children); + } + + public List getBounds() { + return SpecsCollections.cast(getChildren().subList(1, getNumChildren() - 1), Expr.class); + } + + @Override + public String getStmtCode() { + var objectCode = getObject().getCode(); + var targetCode = getTarget().getCode(); + + var bounds = getBounds(); + var boundsCode = bounds.isEmpty() ? "" + : bounds.stream() + .map(Expr::getCode) + .collect(Collectors.joining(", ", "(", ")")); + + return objectCode + boundsCode + " => " + targetCode; + } +} From d8165b780bec21ac2cba31dc980b16a4300b6d3b Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 24 Aug 2026 12:28:58 +0100 Subject: [PATCH 250/260] Add pointer assignment test --- .../parser/stmt/pointer_assign.expected.f90 | 78 + .../fortran/parser/stmt/pointer_assign.f90 | 78 + .../fortran/parser/stmt/pointer_assign.json | 4446 +++++++++++++++++ .../fortran/parser/FortranParserTest.java | 14 +- 4 files changed, 4615 insertions(+), 1 deletion(-) create mode 100644 FortranParser/resources-test/fortran/parser/stmt/pointer_assign.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/stmt/pointer_assign.f90 create mode 100644 FortranParser/resources-test/fortran/parser/stmt/pointer_assign.json diff --git a/FortranParser/resources-test/fortran/parser/stmt/pointer_assign.expected.f90 b/FortranParser/resources-test/fortran/parser/stmt/pointer_assign.expected.f90 new file mode 100644 index 00000000..3179cf02 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/stmt/pointer_assign.expected.f90 @@ -0,0 +1,78 @@ +PROGRAM POINTER_ASSIGN + IMPLICIT NONE + + ! Targets + INTEGER, TARGET :: scalar_target = 42 + INTEGER, TARGET :: array_target(5) = [10, 20, 30, 40, 50] + + ! Pointers + INTEGER, POINTER :: ptr_scalar => null() + INTEGER, POINTER :: ptr_copy => null() + INTEGER, POINTER :: ptr_array(:) => null() + INTEGER, POINTER :: ptr_slice(:) => null() + INTEGER, POINTER :: ptr_lbound(:) => null() + INTEGER, POINTER :: ptr_bounds(:) => null() + INTEGER, POINTER :: ptr_2d(:, :) => null() + + ! Procedure Pointer + ABSTRACT INTERFACE + FUNCTION func_interface(x) RESULT(res) + INTEGER, INTENT(IN) :: x + INTEGER :: res + END FUNCTION func_interface + END INTERFACE + PROCEDURE(func_interface), POINTER :: ptr_proc => null() + + ! 1. Scalar pointer assignment + ptr_scalar => scalar_target + PRINT *, "1. Scalar pointer:", ptr_scalar + + ! 2. Pointer-to-pointer assignment + ptr_copy => ptr_scalar + PRINT *, "2. Pointer copy:", ptr_copy + + ! 3. Whole array assignment + ptr_array => array_target + PRINT *, "3. Whole array:", ptr_array + + ! 4. Array section / slice assignment + ptr_slice => array_target(2:4) + PRINT *, "4. Array slice (2:4):", ptr_slice + + ! 5. Lower bound remapping + ptr_lbound(10:) => array_target + PRINT *, "5. Lower bound remapped | LBound:", lbound(ptr_lbound, 1), "| ptr(10):", ptr_lbound(10) + + ! 6. Full bounds remapping (same rank) + ptr_bounds(0:4) => array_target + PRINT *, "6. Full bounds remapped | LBound:", lbound(ptr_bounds, 1), "| ptr(0):", ptr_bounds(0) + + ! 7. Rank remapping (1D contiguous target to 2D pointer) + ptr_2d(1:2, 1:2) => array_target(1:4) + PRINT *, "7. Rank remapped 2D pointer (element 2,2):", ptr_2d(2, 2) + + ! 8. Procedure pointer assignment + ptr_proc => double_val + PRINT *, "8. Procedure pointer result:", ptr_proc(5) + + ! 9. Nullification pointer assignments + ptr_scalar => null() + ptr_copy => null() + ptr_array => null() + ptr_slice => null() + ptr_lbound => null() + ptr_bounds => null() + ptr_2d => null() + ptr_proc => null() + + PRINT *, "9. Any pointers still associated?", associated(ptr_scalar) .OR. associated(ptr_proc) + +CONTAINS + + FUNCTION double_val(x) RESULT(res) + INTEGER, INTENT(IN) :: x + INTEGER :: res + res = x * 2 + END FUNCTION double_val + +END PROGRAM POINTER_ASSIGN \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/stmt/pointer_assign.f90 b/FortranParser/resources-test/fortran/parser/stmt/pointer_assign.f90 new file mode 100644 index 00000000..05e22606 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/stmt/pointer_assign.f90 @@ -0,0 +1,78 @@ +program pointer_assign + implicit none + + ! Targets + integer, target :: scalar_target = 42 + integer, target :: array_target(5) = [10, 20, 30, 40, 50] + + ! Pointers + integer, pointer :: ptr_scalar => null() + integer, pointer :: ptr_copy => null() + integer, pointer :: ptr_array(:) => null() + integer, pointer :: ptr_slice(:) => null() + integer, pointer :: ptr_lbound(:) => null() + integer, pointer :: ptr_bounds(:) => null() + integer, pointer :: ptr_2d(:, :) => null() + + ! Procedure Pointer + abstract interface + function func_interface(x) result(res) + integer, intent(in) :: x + integer :: res + end function func_interface + end interface + procedure(func_interface), pointer :: ptr_proc => null() + + ! 1. Scalar pointer assignment + ptr_scalar => scalar_target + print *, "1. Scalar pointer:", ptr_scalar + + ! 2. Pointer-to-pointer assignment + ptr_copy => ptr_scalar + print *, "2. Pointer copy:", ptr_copy + + ! 3. Whole array assignment + ptr_array => array_target + print *, "3. Whole array:", ptr_array + + ! 4. Array section / slice assignment + ptr_slice => array_target(2:4) + print *, "4. Array slice (2:4):", ptr_slice + + ! 5. Lower bound remapping + ptr_lbound(10:) => array_target + print *, "5. Lower bound remapped | LBound:", lbound(ptr_lbound, 1), "| ptr(10):", ptr_lbound(10) + + ! 6. Full bounds remapping (same rank) + ptr_bounds(0:4) => array_target + print *, "6. Full bounds remapped | LBound:", lbound(ptr_bounds, 1), "| ptr(0):", ptr_bounds(0) + + ! 7. Rank remapping (1D contiguous target to 2D pointer) + ptr_2d(1:2, 1:2) => array_target(1:4) + print *, "7. Rank remapped 2D pointer (element 2,2):", ptr_2d(2, 2) + + ! 8. Procedure pointer assignment + ptr_proc => double_val + print *, "8. Procedure pointer result:", ptr_proc(5) + + ! 9. Nullification pointer assignments + ptr_scalar => null() + ptr_copy => null() + ptr_array => null() + ptr_slice => null() + ptr_lbound => null() + ptr_bounds => null() + ptr_2d => null() + ptr_proc => null() + + print *, "9. Any pointers still associated?", associated(ptr_scalar) .or. associated(ptr_proc) + +contains + + function double_val(x) result(res) + integer, intent(in) :: x + integer :: res + res = x * 2 + end function double_val + +end program pointer_assign \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/stmt/pointer_assign.json b/FortranParser/resources-test/fortran/parser/stmt/pointer_assign.json new file mode 100644 index 00000000..11550f4c --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/stmt/pointer_assign.json @@ -0,0 +1,4446 @@ +{ + "fileExtension": "f90", + "nodes": [ + { + "id": "0x55ef964b1f00-Program", + "ProgramUnit": [ + "0x55ef964eb5a0-ProgramUnit" + ] + }, + { + "id": "0x55ef964eb5a0-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x55ef964ef160-MainProgram" + }, + { + "id": "0x55ef964ef160-MainProgram", + "Statement": "0x55ef964ef2a8-Statement", + "SpecificationPart": "0x55ef964ef200-SpecificationPart", + "ExecutionPart": "0x55ef964ef1e8-ExecutionPart", + "InternalSubprogramPart": "0x55ef964ef1a0-InternalSubprogramPart", + "Statement": "0x55ef964ef160-Statement" + }, + { + "id": "0x55ef964ef2a8-Statement", + "statement": "0x55ef964ef2b8-ProgramStmt", + "source": "program POINTER_ASSIGN" + }, + { + "id": "0x55ef964ef2b8-ProgramStmt", + "Name": "0x55ef964ef2b8-Name" + }, + { + "id": "0x55ef964ef2b8-Name", + "source": "POINTER_ASSIGN" + }, + { + "id": "0x55ef964ef200-SpecificationPart", + "ImplicitPart": "0x55ef964ef218-ImplicitPart", + "DeclarationConstruct": [ + "0x55ef964bf110-DeclarationConstruct", + "0x55ef964dcd40-DeclarationConstruct", + "0x55ef964f5890-DeclarationConstruct", + "0x55ef964f5b90-DeclarationConstruct", + "0x55ef964dd510-DeclarationConstruct", + "0x55ef964dd7c0-DeclarationConstruct", + "0x55ef964dda70-DeclarationConstruct", + "0x55ef964ddd20-DeclarationConstruct", + "0x55ef964de020-DeclarationConstruct", + "0x55ef964e8670-DeclarationConstruct", + "0x55ef964de880-DeclarationConstruct" + ] + }, + { + "id": "0x55ef964ef218-ImplicitPart", + "ImplicitPartStmt": [ + "0x55ef964d9100-ImplicitPartStmt" + ] + }, + { + "id": "0x55ef964d9100-ImplicitPartStmt", + "variantKey": "Statement", + "Statement": "0x55ef964d9100-Statement" + }, + { + "id": "0x55ef964d9100-Statement", + "statement": "0x55ef964ecef0-ImplicitStmt", + "source": "implicit none" + }, + { + "id": "0x55ef964ecef0-ImplicitStmt", + "variantKey": "ImplicitNoneNameSpec", + "ImplicitNoneNameSpec": [] + }, + { + "id": "0x55ef964bf110-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55ef964bf110-SpecificationConstruct" + }, + { + "id": "0x55ef964bf110-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964bf110-Statement" + }, + { + "id": "0x55ef964bf110-Statement", + "statement": "0x55ef964f4ba0-TypeDeclarationStmt", + "source": "integer, target :: scalar_target = 42" + }, + { + "id": "0x55ef964f4ba0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55ef964f4bd0-DeclarationTypeSpec", + "AttrSpec": [ + "0x55ef964f5fc0-AttrSpec" + ], + "EntityDecl": [ + "0x55ef964f4f50-EntityDecl" + ] + }, + { + "id": "0x55ef964f4bd0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55ef964f4bd0-IntrinsicTypeSpec" + }, + { + "id": "0x55ef964f4bd0-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55ef964f4bd0-IntegerTypeSpec" + }, + { + "id": "0x55ef964f4bd0-IntegerTypeSpec" + }, + { + "id": "0x55ef964f5fc0-AttrSpec", + "variantKey": "Target", + "Target": "0x55ef964f5fc0-Target" + }, + { + "id": "0x55ef964f5fc0-Target", + "keyword": "Target" + }, + { + "id": "0x55ef964f4f50-EntityDecl", + "Name": "0x55ef964f5008-Name", + "Initialization": "0x55ef964f4f50-Initialization" + }, + { + "id": "0x55ef964f5008-Name", + "source": "scalar_target" + }, + { + "id": "0x55ef964f4f50-Initialization", + "variantKey": "Expr", + "Expr": "0x55ef96451790-Expr" + }, + { + "id": "0x55ef96451790-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964517b0-LiteralConstant" + }, + { + "id": "0x55ef964517b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ef964517b0-IntLiteralConstant" + }, + { + "id": "0x55ef964517b0-IntLiteralConstant", + "CharBlock": "42" + }, + { + "id": "0x55ef964dcd40-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55ef964dcd40-SpecificationConstruct" + }, + { + "id": "0x55ef964dcd40-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964dcd40-Statement" + }, + { + "id": "0x55ef964dcd40-Statement", + "statement": "0x55ef964e8730-TypeDeclarationStmt", + "source": "integer, target :: array_target(5) = [10, 20, 30, 40, 50]" + }, + { + "id": "0x55ef964e8730-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55ef964e8760-DeclarationTypeSpec", + "AttrSpec": [ + "0x55ef964cac80-AttrSpec" + ], + "EntityDecl": [ + "0x55ef964dcb70-EntityDecl" + ] + }, + { + "id": "0x55ef964e8760-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55ef964e8760-IntrinsicTypeSpec" + }, + { + "id": "0x55ef964e8760-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55ef964e8760-IntegerTypeSpec" + }, + { + "id": "0x55ef964e8760-IntegerTypeSpec" + }, + { + "id": "0x55ef964cac80-AttrSpec", + "variantKey": "Target", + "Target": "0x55ef964cac80-Target" + }, + { + "id": "0x55ef964cac80-Target", + "keyword": "Target" + }, + { + "id": "0x55ef964dcb70-EntityDecl", + "Name": "0x55ef964dcc28-Name", + "ArraySpec": "0x55ef964dcbf0-ArraySpec", + "Initialization": "0x55ef964dcb70-Initialization" + }, + { + "id": "0x55ef964dcc28-Name", + "source": "array_target" + }, + { + "id": "0x55ef964dcbf0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x55ef964ecf30-ExplicitShapeSpec" + ] + }, + { + "id": "0x55ef964ecf30-ExplicitShapeSpec", + "upper_bound": "0x55ef964ecf30-SpecificationExpr" + }, + { + "id": "0x55ef964ecf30-SpecificationExpr", + "Expr": "0x55ef964f5110-Expr" + }, + { + "id": "0x55ef964f5110-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964f5130-LiteralConstant" + }, + { + "id": "0x55ef964f5130-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ef964f5130-IntLiteralConstant" + }, + { + "id": "0x55ef964f5130-IntLiteralConstant", + "CharBlock": "5" + }, + { + "id": "0x55ef964dcb70-Initialization", + "variantKey": "Expr", + "Expr": "0x55ef964dca80-Expr" + }, + { + "id": "0x55ef964dca80-Expr", + "variantKey": "ArrayConstructor", + "ArrayConstructor": "0x55ef964dcaa0-ArrayConstructor" + }, + { + "id": "0x55ef964dcaa0-ArrayConstructor", + "AcSpec": "0x55ef964dcaa0-AcSpec" + }, + { + "id": "0x55ef964dcaa0-AcSpec", + "values": [ + "0x55ef964ecfe0-AcValue", + "0x55ef964ebc10-AcValue", + "0x55ef964ec2f0-AcValue", + "0x55ef964ec3b0-AcValue", + "0x55ef964ec7b0-AcValue" + ] + }, + { + "id": "0x55ef964ecfe0-AcValue", + "variantKey": "Expr", + "Expr": "0x55ef964f57a0-Expr" + }, + { + "id": "0x55ef964f57a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964f57c0-LiteralConstant" + }, + { + "id": "0x55ef964f57c0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ef964f57c0-IntLiteralConstant" + }, + { + "id": "0x55ef964f57c0-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x55ef964ebc10-AcValue", + "variantKey": "Expr", + "Expr": "0x55ef964f5aa0-Expr" + }, + { + "id": "0x55ef964f5aa0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964f5ac0-LiteralConstant" + }, + { + "id": "0x55ef964f5ac0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ef964f5ac0-IntLiteralConstant" + }, + { + "id": "0x55ef964f5ac0-IntLiteralConstant", + "CharBlock": "20" + }, + { + "id": "0x55ef964ec2f0-AcValue", + "variantKey": "Expr", + "Expr": "0x55ef964f5da0-Expr" + }, + { + "id": "0x55ef964f5da0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964f5dc0-LiteralConstant" + }, + { + "id": "0x55ef964f5dc0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ef964f5dc0-IntLiteralConstant" + }, + { + "id": "0x55ef964f5dc0-IntLiteralConstant", + "CharBlock": "30" + }, + { + "id": "0x55ef964ec3b0-AcValue", + "variantKey": "Expr", + "Expr": "0x55ef964e8580-Expr" + }, + { + "id": "0x55ef964e8580-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964e85a0-LiteralConstant" + }, + { + "id": "0x55ef964e85a0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ef964e85a0-IntLiteralConstant" + }, + { + "id": "0x55ef964e85a0-IntLiteralConstant", + "CharBlock": "40" + }, + { + "id": "0x55ef964ec7b0-AcValue", + "variantKey": "Expr", + "Expr": "0x55ef964dc8c0-Expr" + }, + { + "id": "0x55ef964dc8c0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964dc8e0-LiteralConstant" + }, + { + "id": "0x55ef964dc8e0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ef964dc8e0-IntLiteralConstant" + }, + { + "id": "0x55ef964dc8e0-IntLiteralConstant", + "CharBlock": "50" + }, + { + "id": "0x55ef964f5890-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55ef964f5890-SpecificationConstruct" + }, + { + "id": "0x55ef964f5890-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964f5890-Statement" + }, + { + "id": "0x55ef964f5890-Statement", + "statement": "0x55ef964f4d30-TypeDeclarationStmt", + "source": "integer, pointer :: ptr_scalar => null()" + }, + { + "id": "0x55ef964f4d30-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55ef964f4d60-DeclarationTypeSpec", + "AttrSpec": [ + "0x55ef964e81a0-AttrSpec" + ], + "EntityDecl": [ + "0x55ef964dcf80-EntityDecl" + ] + }, + { + "id": "0x55ef964f4d60-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55ef964f4d60-IntrinsicTypeSpec" + }, + { + "id": "0x55ef964f4d60-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55ef964f4d60-IntegerTypeSpec" + }, + { + "id": "0x55ef964f4d60-IntegerTypeSpec" + }, + { + "id": "0x55ef964e81a0-AttrSpec", + "variantKey": "Pointer", + "Pointer": "0x55ef964e81a0-Pointer" + }, + { + "id": "0x55ef964e81a0-Pointer", + "keyword": "Pointer" + }, + { + "id": "0x55ef964dcf80-EntityDecl", + "Name": "0x55ef964dd038-Name", + "Initialization": "0x55ef964dcf80-Initialization" + }, + { + "id": "0x55ef964dd038-Name", + "source": "ptr_scalar" + }, + { + "id": "0x55ef964dcf80-Initialization", + "variantKey": "NullInit", + "NullInit": "0x55ef964dcf80-NullInit" + }, + { + "id": "0x55ef964dcf80-NullInit", + "Expr": "0x55ef964dce90-Expr" + }, + { + "id": "0x55ef964dce90-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55ef964dca10-FunctionReference" + }, + { + "id": "0x55ef964dca10-FunctionReference", + "Call": "0x55ef964dca10-Call" + }, + { + "id": "0x55ef964dca10-Call", + "ProcedureDesignator": "0x55ef964dca28-ProcedureDesignator" + }, + { + "id": "0x55ef964dca28-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55ef964dca28-Name" + }, + { + "id": "0x55ef964dca28-Name", + "source": "null" + }, + { + "id": "0x55ef964f5b90-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55ef964f5b90-SpecificationConstruct" + }, + { + "id": "0x55ef964f5b90-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964f5b90-Statement" + }, + { + "id": "0x55ef964f5b90-Statement", + "statement": "0x55ef964f5420-TypeDeclarationStmt", + "source": "integer, pointer :: ptr_copy => null()" + }, + { + "id": "0x55ef964f5420-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55ef964f5450-DeclarationTypeSpec", + "AttrSpec": [ + "0x55ef964e9170-AttrSpec" + ], + "EntityDecl": [ + "0x55ef964dd1d0-EntityDecl" + ] + }, + { + "id": "0x55ef964f5450-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55ef964f5450-IntrinsicTypeSpec" + }, + { + "id": "0x55ef964f5450-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55ef964f5450-IntegerTypeSpec" + }, + { + "id": "0x55ef964f5450-IntegerTypeSpec" + }, + { + "id": "0x55ef964e9170-AttrSpec", + "variantKey": "Pointer", + "Pointer": "0x55ef964e9170-Pointer" + }, + { + "id": "0x55ef964e9170-Pointer", + "keyword": "Pointer" + }, + { + "id": "0x55ef964dd1d0-EntityDecl", + "Name": "0x55ef964dd288-Name", + "Initialization": "0x55ef964dd1d0-Initialization" + }, + { + "id": "0x55ef964dd288-Name", + "source": "ptr_copy" + }, + { + "id": "0x55ef964dd1d0-Initialization", + "variantKey": "NullInit", + "NullInit": "0x55ef964dd1d0-NullInit" + }, + { + "id": "0x55ef964dd1d0-NullInit", + "Expr": "0x55ef964dd0e0-Expr" + }, + { + "id": "0x55ef964dd0e0-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55ef964e9370-FunctionReference" + }, + { + "id": "0x55ef964e9370-FunctionReference", + "Call": "0x55ef964e9370-Call" + }, + { + "id": "0x55ef964e9370-Call", + "ProcedureDesignator": "0x55ef964e9388-ProcedureDesignator" + }, + { + "id": "0x55ef964e9388-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55ef964e9388-Name" + }, + { + "id": "0x55ef964e9388-Name", + "source": "null" + }, + { + "id": "0x55ef964dd510-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55ef964dd510-SpecificationConstruct" + }, + { + "id": "0x55ef964dd510-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964dd510-Statement" + }, + { + "id": "0x55ef964dd510-Statement", + "statement": "0x55ef964dcd90-TypeDeclarationStmt", + "source": "integer, pointer :: ptr_array(:) => null()" + }, + { + "id": "0x55ef964dcd90-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55ef964dcdc0-DeclarationTypeSpec", + "AttrSpec": [ + "0x55ef964e8f70-AttrSpec" + ], + "EntityDecl": [ + "0x55ef964dd420-EntityDecl" + ] + }, + { + "id": "0x55ef964dcdc0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55ef964dcdc0-IntrinsicTypeSpec" + }, + { + "id": "0x55ef964dcdc0-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55ef964dcdc0-IntegerTypeSpec" + }, + { + "id": "0x55ef964dcdc0-IntegerTypeSpec" + }, + { + "id": "0x55ef964e8f70-AttrSpec", + "variantKey": "Pointer", + "Pointer": "0x55ef964e8f70-Pointer" + }, + { + "id": "0x55ef964e8f70-Pointer", + "keyword": "Pointer" + }, + { + "id": "0x55ef964dd420-EntityDecl", + "Name": "0x55ef964dd4d8-Name", + "ArraySpec": "0x55ef964dd4a0-ArraySpec", + "Initialization": "0x55ef964dd420-Initialization" + }, + { + "id": "0x55ef964dd4d8-Name", + "source": "ptr_array" + }, + { + "id": "0x55ef964dd4a0-ArraySpec", + "variantKey": "DeferredShapeSpecList", + "DeferredShapeSpecList": "0x55ef964dd4a0-DeferredShapeSpecList" + }, + { + "id": "0x55ef964dd4a0-DeferredShapeSpecList", + "int": "1" + }, + { + "id": "0x55ef964dd420-Initialization", + "variantKey": "NullInit", + "NullInit": "0x55ef964dd420-NullInit" + }, + { + "id": "0x55ef964dd420-NullInit", + "Expr": "0x55ef964dd330-Expr" + }, + { + "id": "0x55ef964dd330-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55ef964f5650-FunctionReference" + }, + { + "id": "0x55ef964f5650-FunctionReference", + "Call": "0x55ef964f5650-Call" + }, + { + "id": "0x55ef964f5650-Call", + "ProcedureDesignator": "0x55ef964f5668-ProcedureDesignator" + }, + { + "id": "0x55ef964f5668-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55ef964f5668-Name" + }, + { + "id": "0x55ef964f5668-Name", + "source": "null" + }, + { + "id": "0x55ef964dd7c0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55ef964dd7c0-SpecificationConstruct" + }, + { + "id": "0x55ef964dd7c0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964dd7c0-Statement" + }, + { + "id": "0x55ef964dd7c0-Statement", + "statement": "0x55ef964dce10-TypeDeclarationStmt", + "source": "integer, pointer :: ptr_slice(:) => null()" + }, + { + "id": "0x55ef964dce10-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55ef964dce40-DeclarationTypeSpec", + "AttrSpec": [ + "0x55ef964e8fc0-AttrSpec" + ], + "EntityDecl": [ + "0x55ef964dd6d0-EntityDecl" + ] + }, + { + "id": "0x55ef964dce40-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55ef964dce40-IntrinsicTypeSpec" + }, + { + "id": "0x55ef964dce40-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55ef964dce40-IntegerTypeSpec" + }, + { + "id": "0x55ef964dce40-IntegerTypeSpec" + }, + { + "id": "0x55ef964e8fc0-AttrSpec", + "variantKey": "Pointer", + "Pointer": "0x55ef964e8fc0-Pointer" + }, + { + "id": "0x55ef964e8fc0-Pointer", + "keyword": "Pointer" + }, + { + "id": "0x55ef964dd6d0-EntityDecl", + "Name": "0x55ef964dd788-Name", + "ArraySpec": "0x55ef964dd750-ArraySpec", + "Initialization": "0x55ef964dd6d0-Initialization" + }, + { + "id": "0x55ef964dd788-Name", + "source": "ptr_slice" + }, + { + "id": "0x55ef964dd750-ArraySpec", + "variantKey": "DeferredShapeSpecList", + "DeferredShapeSpecList": "0x55ef964dd750-DeferredShapeSpecList" + }, + { + "id": "0x55ef964dd750-DeferredShapeSpecList", + "int": "1" + }, + { + "id": "0x55ef964dd6d0-Initialization", + "variantKey": "NullInit", + "NullInit": "0x55ef964dd6d0-NullInit" + }, + { + "id": "0x55ef964dd6d0-NullInit", + "Expr": "0x55ef964dd5e0-Expr" + }, + { + "id": "0x55ef964dd5e0-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55ef964f5a30-FunctionReference" + }, + { + "id": "0x55ef964f5a30-FunctionReference", + "Call": "0x55ef964f5a30-Call" + }, + { + "id": "0x55ef964f5a30-Call", + "ProcedureDesignator": "0x55ef964f5a48-ProcedureDesignator" + }, + { + "id": "0x55ef964f5a48-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55ef964f5a48-Name" + }, + { + "id": "0x55ef964f5a48-Name", + "source": "null" + }, + { + "id": "0x55ef964dda70-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55ef964dda70-SpecificationConstruct" + }, + { + "id": "0x55ef964dda70-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964dda70-Statement" + }, + { + "id": "0x55ef964dda70-Statement", + "statement": "0x55ef964dd060-TypeDeclarationStmt", + "source": "integer, pointer :: ptr_lbound(:) => null()" + }, + { + "id": "0x55ef964dd060-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55ef964dd090-DeclarationTypeSpec", + "AttrSpec": [ + "0x55ef964e63f0-AttrSpec" + ], + "EntityDecl": [ + "0x55ef964dd980-EntityDecl" + ] + }, + { + "id": "0x55ef964dd090-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55ef964dd090-IntrinsicTypeSpec" + }, + { + "id": "0x55ef964dd090-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55ef964dd090-IntegerTypeSpec" + }, + { + "id": "0x55ef964dd090-IntegerTypeSpec" + }, + { + "id": "0x55ef964e63f0-AttrSpec", + "variantKey": "Pointer", + "Pointer": "0x55ef964e63f0-Pointer" + }, + { + "id": "0x55ef964e63f0-Pointer", + "keyword": "Pointer" + }, + { + "id": "0x55ef964dd980-EntityDecl", + "Name": "0x55ef964dda38-Name", + "ArraySpec": "0x55ef964dda00-ArraySpec", + "Initialization": "0x55ef964dd980-Initialization" + }, + { + "id": "0x55ef964dda38-Name", + "source": "ptr_lbound" + }, + { + "id": "0x55ef964dda00-ArraySpec", + "variantKey": "DeferredShapeSpecList", + "DeferredShapeSpecList": "0x55ef964dda00-DeferredShapeSpecList" + }, + { + "id": "0x55ef964dda00-DeferredShapeSpecList", + "int": "1" + }, + { + "id": "0x55ef964dd980-Initialization", + "variantKey": "NullInit", + "NullInit": "0x55ef964dd980-NullInit" + }, + { + "id": "0x55ef964dd980-NullInit", + "Expr": "0x55ef964dd890-Expr" + }, + { + "id": "0x55ef964dd890-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55ef964f5950-FunctionReference" + }, + { + "id": "0x55ef964f5950-FunctionReference", + "Call": "0x55ef964f5950-Call" + }, + { + "id": "0x55ef964f5950-Call", + "ProcedureDesignator": "0x55ef964f5968-ProcedureDesignator" + }, + { + "id": "0x55ef964f5968-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55ef964f5968-Name" + }, + { + "id": "0x55ef964f5968-Name", + "source": "null" + }, + { + "id": "0x55ef964ddd20-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55ef964ddd20-SpecificationConstruct" + }, + { + "id": "0x55ef964ddd20-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964ddd20-Statement" + }, + { + "id": "0x55ef964ddd20-Statement", + "statement": "0x55ef964dd2b0-TypeDeclarationStmt", + "source": "integer, pointer :: ptr_bounds(:) => null()" + }, + { + "id": "0x55ef964dd2b0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55ef964dd2e0-DeclarationTypeSpec", + "AttrSpec": [ + "0x55ef964eef50-AttrSpec" + ], + "EntityDecl": [ + "0x55ef964ddc30-EntityDecl" + ] + }, + { + "id": "0x55ef964dd2e0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55ef964dd2e0-IntrinsicTypeSpec" + }, + { + "id": "0x55ef964dd2e0-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55ef964dd2e0-IntegerTypeSpec" + }, + { + "id": "0x55ef964dd2e0-IntegerTypeSpec" + }, + { + "id": "0x55ef964eef50-AttrSpec", + "variantKey": "Pointer", + "Pointer": "0x55ef964eef50-Pointer" + }, + { + "id": "0x55ef964eef50-Pointer", + "keyword": "Pointer" + }, + { + "id": "0x55ef964ddc30-EntityDecl", + "Name": "0x55ef964ddce8-Name", + "ArraySpec": "0x55ef964ddcb0-ArraySpec", + "Initialization": "0x55ef964ddc30-Initialization" + }, + { + "id": "0x55ef964ddce8-Name", + "source": "ptr_bounds" + }, + { + "id": "0x55ef964ddcb0-ArraySpec", + "variantKey": "DeferredShapeSpecList", + "DeferredShapeSpecList": "0x55ef964ddcb0-DeferredShapeSpecList" + }, + { + "id": "0x55ef964ddcb0-DeferredShapeSpecList", + "int": "1" + }, + { + "id": "0x55ef964ddc30-Initialization", + "variantKey": "NullInit", + "NullInit": "0x55ef964ddc30-NullInit" + }, + { + "id": "0x55ef964ddc30-NullInit", + "Expr": "0x55ef964ddb40-Expr" + }, + { + "id": "0x55ef964ddb40-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55ef964f5be0-FunctionReference" + }, + { + "id": "0x55ef964f5be0-FunctionReference", + "Call": "0x55ef964f5be0-Call" + }, + { + "id": "0x55ef964f5be0-Call", + "ProcedureDesignator": "0x55ef964f5bf8-ProcedureDesignator" + }, + { + "id": "0x55ef964f5bf8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55ef964f5bf8-Name" + }, + { + "id": "0x55ef964f5bf8-Name", + "source": "null" + }, + { + "id": "0x55ef964de020-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55ef964de020-SpecificationConstruct" + }, + { + "id": "0x55ef964de020-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964de020-Statement" + }, + { + "id": "0x55ef964de020-Statement", + "statement": "0x55ef964dd560-TypeDeclarationStmt", + "source": "integer, pointer :: ptr_2d(:, :) => null()" + }, + { + "id": "0x55ef964dd560-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55ef964dd590-DeclarationTypeSpec", + "AttrSpec": [ + "0x55ef964ddd80-AttrSpec" + ], + "EntityDecl": [ + "0x55ef964ddf30-EntityDecl" + ] + }, + { + "id": "0x55ef964dd590-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55ef964dd590-IntrinsicTypeSpec" + }, + { + "id": "0x55ef964dd590-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55ef964dd590-IntegerTypeSpec" + }, + { + "id": "0x55ef964dd590-IntegerTypeSpec" + }, + { + "id": "0x55ef964ddd80-AttrSpec", + "variantKey": "Pointer", + "Pointer": "0x55ef964ddd80-Pointer" + }, + { + "id": "0x55ef964ddd80-Pointer", + "keyword": "Pointer" + }, + { + "id": "0x55ef964ddf30-EntityDecl", + "Name": "0x55ef964ddfe8-Name", + "ArraySpec": "0x55ef964ddfb0-ArraySpec", + "Initialization": "0x55ef964ddf30-Initialization" + }, + { + "id": "0x55ef964ddfe8-Name", + "source": "ptr_2d" + }, + { + "id": "0x55ef964ddfb0-ArraySpec", + "variantKey": "DeferredShapeSpecList", + "DeferredShapeSpecList": "0x55ef964ddfb0-DeferredShapeSpecList" + }, + { + "id": "0x55ef964ddfb0-DeferredShapeSpecList", + "int": "2" + }, + { + "id": "0x55ef964ddf30-Initialization", + "variantKey": "NullInit", + "NullInit": "0x55ef964ddf30-NullInit" + }, + { + "id": "0x55ef964ddf30-NullInit", + "Expr": "0x55ef964dde40-Expr" + }, + { + "id": "0x55ef964dde40-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55ef964f5cc0-FunctionReference" + }, + { + "id": "0x55ef964f5cc0-FunctionReference", + "Call": "0x55ef964f5cc0-Call" + }, + { + "id": "0x55ef964f5cc0-Call", + "ProcedureDesignator": "0x55ef964f5cd8-ProcedureDesignator" + }, + { + "id": "0x55ef964f5cd8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55ef964f5cd8-Name" + }, + { + "id": "0x55ef964f5cd8-Name", + "source": "null" + }, + { + "id": "0x55ef964e8670-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55ef964e8670-SpecificationConstruct" + }, + { + "id": "0x55ef964e8670-SpecificationConstruct", + "variantKey": "InterfaceBlock", + "InterfaceBlock": "0x55ef964de520-InterfaceBlock" + }, + { + "id": "0x55ef964de520-InterfaceBlock", + "Statement": "0x55ef964de598-Statement", + "InterfaceSpecification": [ + "0x55ef96487790-InterfaceSpecification" + ], + "Statement": "0x55ef964de520-Statement" + }, + { + "id": "0x55ef964de598-Statement", + "statement": "0x55ef964de5a8-InterfaceStmt", + "source": "abstract interface" + }, + { + "id": "0x55ef964de5a8-InterfaceStmt", + "variantKey": "Abstract", + "Abstract": "0x55ef964de5a8-Abstract" + }, + { + "id": "0x55ef964de5a8-Abstract" + }, + { + "id": "0x55ef96487790-InterfaceSpecification", + "variantKey": "InterfaceBody", + "InterfaceBody": "0x55ef96487790-InterfaceBody" + }, + { + "id": "0x55ef96487790-InterfaceBody", + "variantKey": "Function", + "Function": "0x55ef96487790-Function" + }, + { + "id": "0x55ef96487790-Function", + "Statement": "0x55ef964877d8-Statement", + "SpecificationPart": "0x55ef9644eb00-SpecificationPart", + "Statement": "0x55ef96487790-Statement" + }, + { + "id": "0x55ef964877d8-Statement", + "statement": "0x55ef964877e8-FunctionStmt", + "source": "function func_interface(x) result(res)" + }, + { + "id": "0x55ef964877e8-FunctionStmt", + "prefix": [], + "functionName": "0x55ef96487848-Name", + "paramNames": [ + "0x55ef964ecf60-Name" + ], + "suffix": "0x55ef964877e8-Suffix" + }, + { + "id": "0x55ef96487848-Name", + "source": "func_interface" + }, + { + "id": "0x55ef964ecf60-Name", + "source": "x" + }, + { + "id": "0x55ef964877e8-Suffix", + "resultName": "0x55ef96487808-Name" + }, + { + "id": "0x55ef96487808-Name", + "source": "res" + }, + { + "id": "0x55ef9644eb00-SpecificationPart", + "ImplicitPart": "0x55ef9644eb18-ImplicitPart", + "DeclarationConstruct": [ + "0x55ef964b04e0-DeclarationConstruct", + "0x55ef964beda0-DeclarationConstruct" + ] + }, + { + "id": "0x55ef9644eb18-ImplicitPart" + }, + { + "id": "0x55ef964b04e0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55ef964b04e0-SpecificationConstruct" + }, + { + "id": "0x55ef964b04e0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964b04e0-Statement" + }, + { + "id": "0x55ef964b04e0-Statement", + "statement": "0x55ef964de0f0-TypeDeclarationStmt", + "source": "integer, intent(in) :: x" + }, + { + "id": "0x55ef964de0f0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55ef964de120-DeclarationTypeSpec", + "AttrSpec": [ + "0x55ef964de200-AttrSpec" + ], + "EntityDecl": [ + "0x55ef964de250-EntityDecl" + ] + }, + { + "id": "0x55ef964de120-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55ef964de120-IntrinsicTypeSpec" + }, + { + "id": "0x55ef964de120-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55ef964de120-IntegerTypeSpec" + }, + { + "id": "0x55ef964de120-IntegerTypeSpec" + }, + { + "id": "0x55ef964de200-AttrSpec", + "variantKey": "IntentSpec", + "IntentSpec": "0x55ef964de200-IntentSpec" + }, + { + "id": "0x55ef964de200-IntentSpec", + "Intent": "0x55ef964de200-Intent", + "intent": "In" + }, + { + "id": "0x55ef964de200-Intent", + "disambiguation": "Fortran::parser::IntentSpec::Intent", + "value": "In" + }, + { + "id": "0x55ef964de250-EntityDecl", + "Name": "0x55ef964de308-Name" + }, + { + "id": "0x55ef964de308-Name", + "source": "x" + }, + { + "id": "0x55ef964beda0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55ef964beda0-SpecificationConstruct" + }, + { + "id": "0x55ef964beda0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964beda0-Statement" + }, + { + "id": "0x55ef964beda0-Statement", + "statement": "0x55ef964de170-TypeDeclarationStmt", + "source": "integer :: res" + }, + { + "id": "0x55ef964de170-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55ef964de1a0-DeclarationTypeSpec", + "EntityDecl": [ + "0x55ef964de3c0-EntityDecl" + ] + }, + { + "id": "0x55ef964de1a0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55ef964de1a0-IntrinsicTypeSpec" + }, + { + "id": "0x55ef964de1a0-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55ef964de1a0-IntegerTypeSpec" + }, + { + "id": "0x55ef964de1a0-IntegerTypeSpec" + }, + { + "id": "0x55ef964de3c0-EntityDecl", + "Name": "0x55ef964de478-Name" + }, + { + "id": "0x55ef964de478-Name", + "source": "res" + }, + { + "id": "0x55ef96487790-Statement", + "statement": "0x55ef964877a0-EndFunctionStmt", + "source": "end function func_interface" + }, + { + "id": "0x55ef964877a0-EndFunctionStmt", + "Name": "0x55ef964877a0-Name" + }, + { + "id": "0x55ef964877a0-Name", + "source": "func_interface" + }, + { + "id": "0x55ef964de520-Statement", + "statement": "0x55ef964de530-EndInterfaceStmt", + "source": "end interface" + }, + { + "id": "0x55ef964de530-EndInterfaceStmt" + }, + { + "id": "0x55ef964de880-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55ef964de880-SpecificationConstruct" + }, + { + "id": "0x55ef964de880-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964de880-Statement" + }, + { + "id": "0x55ef964de880-Statement", + "statement": "0x55ef964f4e40-ProcedureDeclarationStmt", + "source": "procedure(func_interface), pointer :: ptr_proc => null()" + }, + { + "id": "0x55ef964f4e40-ProcedureDeclarationStmt", + "ProcInterface": "0x55ef964f4e70-ProcInterface", + "ProcAttrSpec": [ + "0x55ef964ed040-ProcAttrSpec" + ], + "ProcDecl": [ + "0x55ef964de7c0-ProcDecl" + ] + }, + { + "id": "0x55ef964f4e70-ProcInterface", + "variantKey": "Name", + "Name": "0x55ef964f4e70-Name" + }, + { + "id": "0x55ef964f4e70-Name", + "source": "func_interface" + }, + { + "id": "0x55ef964ed040-ProcAttrSpec", + "variantKey": "Pointer", + "Pointer": "0x55ef964ed040-Pointer" + }, + { + "id": "0x55ef964ed040-Pointer", + "keyword": "Pointer" + }, + { + "id": "0x55ef964de7c0-ProcDecl", + "Name": "0x55ef964de7e8-Name", + "ProcPointerInit": "0x55ef964de7c0-ProcPointerInit" + }, + { + "id": "0x55ef964de7e8-Name", + "source": "ptr_proc" + }, + { + "id": "0x55ef964de7c0-ProcPointerInit", + "variantKey": "NullInit", + "NullInit": "0x55ef964de7c0-NullInit" + }, + { + "id": "0x55ef964de7c0-NullInit", + "Expr": "0x55ef964de6d0-Expr" + }, + { + "id": "0x55ef964de6d0-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55ef964f53b0-FunctionReference" + }, + { + "id": "0x55ef964f53b0-FunctionReference", + "Call": "0x55ef964f53b0-Call" + }, + { + "id": "0x55ef964f53b0-Call", + "ProcedureDesignator": "0x55ef964f53c8-ProcedureDesignator" + }, + { + "id": "0x55ef964f53c8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55ef964f53c8-Name" + }, + { + "id": "0x55ef964f53c8-Name", + "source": "null" + }, + { + "id": "0x55ef964ef1e8-ExecutionPart", + "ExecutionPartConstruct": [ + "0x55ef964f4a50-ExecutionPartConstruct", + "0x55ef964df8e0-ExecutionPartConstruct", + "0x55ef964dfa70-ExecutionPartConstruct", + "0x55ef964dfe70-ExecutionPartConstruct", + "0x55ef964e0000-ExecutionPartConstruct", + "0x55ef964e0400-ExecutionPartConstruct", + "0x55ef964e0860-ExecutionPartConstruct", + "0x55ef964e0ba0-ExecutionPartConstruct", + "0x55ef964e0f20-ExecutionPartConstruct", + "0x55ef964e29d0-ExecutionPartConstruct", + "0x55ef964f54b0-ExecutionPartConstruct", + "0x55ef964e3a00-ExecutionPartConstruct", + "0x55ef964e2270-ExecutionPartConstruct", + "0x55ef964e11a0-ExecutionPartConstruct", + "0x55ef964e3390-ExecutionPartConstruct", + "0x55ef964e3330-ExecutionPartConstruct", + "0x55ef964e34d0-ExecutionPartConstruct", + "0x55ef964e5090-ExecutionPartConstruct", + "0x55ef964e5220-ExecutionPartConstruct", + "0x55ef964e53b0-ExecutionPartConstruct", + "0x55ef964e5540-ExecutionPartConstruct", + "0x55ef964e56d0-ExecutionPartConstruct", + "0x55ef964e5860-ExecutionPartConstruct", + "0x55ef964e59f0-ExecutionPartConstruct", + "0x55ef964f67a0-ExecutionPartConstruct" + ] + }, + { + "id": "0x55ef964ef1e8-ExecutionPartConstruct" + }, + { + "id": "0x55ef964f4a50-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ef964f4a50-ExecutableConstruct" + }, + { + "id": "0x55ef964f4a50-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964f4a50-Statement" + }, + { + "id": "0x55ef964f4a50-Statement", + "statement": "0x55ef964f4a60-ActionStmt", + "source": "ptr_scalar => scalar_target" + }, + { + "id": "0x55ef964f4a60-ActionStmt", + "variantKey": "PointerAssignmentStmt", + "PointerAssignmentStmt": "0x55ef964f4910-PointerAssignmentStmt" + }, + { + "id": "0x55ef964f4910-PointerAssignmentStmt", + "DataRef": "0x55ef964f4a10-DataRef", + "Bounds": "0x55ef964f49f0-Bounds", + "Expr": "0x55ef964f4920-Expr", + "variantKey": "BoundsSpec", + "BoundsSpec": [] + }, + { + "id": "0x55ef964f4a10-DataRef", + "variantKey": "Name", + "Name": "0x55ef964f4a10-Name" + }, + { + "id": "0x55ef964f4a10-Name", + "source": "ptr_scalar" + }, + { + "id": "0x55ef964f49f0-Bounds", + "variantKey": "list" + }, + { + "id": "0x55ef964f4920-Expr", + "variantKey": "Designator", + "Designator": "0x55ef964de610-Designator" + }, + { + "id": "0x55ef964de610-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ef964de620-DataRef" + }, + { + "id": "0x55ef964de620-DataRef", + "variantKey": "Name", + "Name": "0x55ef964de620-Name" + }, + { + "id": "0x55ef964de620-Name", + "source": "scalar_target" + }, + { + "id": "0x55ef964df8e0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ef964df8e0-ExecutableConstruct" + }, + { + "id": "0x55ef964df8e0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964df8e0-Statement" + }, + { + "id": "0x55ef964df8e0-Statement", + "statement": "0x55ef964df8f0-ActionStmt", + "source": "print *, \"1. Scalar pointer:\", ptr_scalar" + }, + { + "id": "0x55ef964df8f0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55ef964df760-PrintStmt" + }, + { + "id": "0x55ef964df760-PrintStmt", + "Format": "0x55ef964df778-Format", + "OutputItem": [ + "0x55ef964df610-OutputItem", + "0x55ef964df520-OutputItem" + ] + }, + { + "id": "0x55ef964df778-Format", + "variantKey": "Star", + "Star": "0x55ef964df778-Star" + }, + { + "id": "0x55ef964df778-Star" + }, + { + "id": "0x55ef964df610-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ef964df610-Expr" + }, + { + "id": "0x55ef964df610-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964df630-LiteralConstant" + }, + { + "id": "0x55ef964df630-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55ef964df630-CharLiteralConstant" + }, + { + "id": "0x55ef964df630-CharLiteralConstant", + "string": "1. Scalar pointer:" + }, + { + "id": "0x55ef964df520-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ef964df520-Expr" + }, + { + "id": "0x55ef964df520-Expr", + "variantKey": "Designator", + "Designator": "0x55ef964df170-Designator" + }, + { + "id": "0x55ef964df170-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ef964df180-DataRef" + }, + { + "id": "0x55ef964df180-DataRef", + "variantKey": "Name", + "Name": "0x55ef964df180-Name" + }, + { + "id": "0x55ef964df180-Name", + "source": "ptr_scalar" + }, + { + "id": "0x55ef964dfa70-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ef964dfa70-ExecutableConstruct" + }, + { + "id": "0x55ef964dfa70-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964dfa70-Statement" + }, + { + "id": "0x55ef964dfa70-Statement", + "statement": "0x55ef964dfa80-ActionStmt", + "source": "ptr_copy => ptr_scalar" + }, + { + "id": "0x55ef964dfa80-ActionStmt", + "variantKey": "PointerAssignmentStmt", + "PointerAssignmentStmt": "0x55ef964df930-PointerAssignmentStmt" + }, + { + "id": "0x55ef964df930-PointerAssignmentStmt", + "DataRef": "0x55ef964dfa30-DataRef", + "Bounds": "0x55ef964dfa10-Bounds", + "Expr": "0x55ef964df940-Expr", + "variantKey": "BoundsSpec", + "BoundsSpec": [] + }, + { + "id": "0x55ef964dfa30-DataRef", + "variantKey": "Name", + "Name": "0x55ef964dfa30-Name" + }, + { + "id": "0x55ef964dfa30-Name", + "source": "ptr_copy" + }, + { + "id": "0x55ef964dfa10-Bounds", + "variantKey": "list" + }, + { + "id": "0x55ef964df940-Expr", + "variantKey": "Designator", + "Designator": "0x55ef964def50-Designator" + }, + { + "id": "0x55ef964def50-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ef964def60-DataRef" + }, + { + "id": "0x55ef964def60-DataRef", + "variantKey": "Name", + "Name": "0x55ef964def60-Name" + }, + { + "id": "0x55ef964def60-Name", + "source": "ptr_scalar" + }, + { + "id": "0x55ef964dfe70-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ef964dfe70-ExecutableConstruct" + }, + { + "id": "0x55ef964dfe70-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964dfe70-Statement" + }, + { + "id": "0x55ef964dfe70-Statement", + "statement": "0x55ef964dfe80-ActionStmt", + "source": "print *, \"2. Pointer copy:\", ptr_copy" + }, + { + "id": "0x55ef964dfe80-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55ef964dfd60-PrintStmt" + }, + { + "id": "0x55ef964dfd60-PrintStmt", + "Format": "0x55ef964dfd78-Format", + "OutputItem": [ + "0x55ef964dfc80-OutputItem", + "0x55ef964dfb90-OutputItem" + ] + }, + { + "id": "0x55ef964dfd78-Format", + "variantKey": "Star", + "Star": "0x55ef964dfd78-Star" + }, + { + "id": "0x55ef964dfd78-Star" + }, + { + "id": "0x55ef964dfc80-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ef964dfc80-Expr" + }, + { + "id": "0x55ef964dfc80-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964dfca0-LiteralConstant" + }, + { + "id": "0x55ef964dfca0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55ef964dfca0-CharLiteralConstant" + }, + { + "id": "0x55ef964dfca0-CharLiteralConstant", + "string": "2. Pointer copy:" + }, + { + "id": "0x55ef964dfb90-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ef964dfb90-Expr" + }, + { + "id": "0x55ef964dfb90-Expr", + "variantKey": "Designator", + "Designator": "0x55ef964dfb20-Designator" + }, + { + "id": "0x55ef964dfb20-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ef964dfb30-DataRef" + }, + { + "id": "0x55ef964dfb30-DataRef", + "variantKey": "Name", + "Name": "0x55ef964dfb30-Name" + }, + { + "id": "0x55ef964dfb30-Name", + "source": "ptr_copy" + }, + { + "id": "0x55ef964e0000-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ef964e0000-ExecutableConstruct" + }, + { + "id": "0x55ef964e0000-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964e0000-Statement" + }, + { + "id": "0x55ef964e0000-Statement", + "statement": "0x55ef964e0010-ActionStmt", + "source": "ptr_array => array_target" + }, + { + "id": "0x55ef964e0010-ActionStmt", + "variantKey": "PointerAssignmentStmt", + "PointerAssignmentStmt": "0x55ef964dfec0-PointerAssignmentStmt" + }, + { + "id": "0x55ef964dfec0-PointerAssignmentStmt", + "DataRef": "0x55ef964dffc0-DataRef", + "Bounds": "0x55ef964dffa0-Bounds", + "Expr": "0x55ef964dfed0-Expr", + "variantKey": "BoundsSpec", + "BoundsSpec": [] + }, + { + "id": "0x55ef964dffc0-DataRef", + "variantKey": "Name", + "Name": "0x55ef964dffc0-Name" + }, + { + "id": "0x55ef964dffc0-Name", + "source": "ptr_array" + }, + { + "id": "0x55ef964dffa0-Bounds", + "variantKey": "list" + }, + { + "id": "0x55ef964dfed0-Expr", + "variantKey": "Designator", + "Designator": "0x55ef964dfac0-Designator" + }, + { + "id": "0x55ef964dfac0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ef964dfad0-DataRef" + }, + { + "id": "0x55ef964dfad0-DataRef", + "variantKey": "Name", + "Name": "0x55ef964dfad0-Name" + }, + { + "id": "0x55ef964dfad0-Name", + "source": "array_target" + }, + { + "id": "0x55ef964e0400-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ef964e0400-ExecutableConstruct" + }, + { + "id": "0x55ef964e0400-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964e0400-Statement" + }, + { + "id": "0x55ef964e0400-Statement", + "statement": "0x55ef964e0410-ActionStmt", + "source": "print *, \"3. Whole array:\", ptr_array" + }, + { + "id": "0x55ef964e0410-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55ef964e02f0-PrintStmt" + }, + { + "id": "0x55ef964e02f0-PrintStmt", + "Format": "0x55ef964e0308-Format", + "OutputItem": [ + "0x55ef964e0210-OutputItem", + "0x55ef964e0120-OutputItem" + ] + }, + { + "id": "0x55ef964e0308-Format", + "variantKey": "Star", + "Star": "0x55ef964e0308-Star" + }, + { + "id": "0x55ef964e0308-Star" + }, + { + "id": "0x55ef964e0210-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ef964e0210-Expr" + }, + { + "id": "0x55ef964e0210-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964e0230-LiteralConstant" + }, + { + "id": "0x55ef964e0230-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55ef964e0230-CharLiteralConstant" + }, + { + "id": "0x55ef964e0230-CharLiteralConstant", + "string": "3. Whole array:" + }, + { + "id": "0x55ef964e0120-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ef964e0120-Expr" + }, + { + "id": "0x55ef964e0120-Expr", + "variantKey": "Designator", + "Designator": "0x55ef964e00b0-Designator" + }, + { + "id": "0x55ef964e00b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ef964e00c0-DataRef" + }, + { + "id": "0x55ef964e00c0-DataRef", + "variantKey": "Name", + "Name": "0x55ef964e00c0-Name" + }, + { + "id": "0x55ef964e00c0-Name", + "source": "ptr_array" + }, + { + "id": "0x55ef964e0860-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ef964e0860-ExecutableConstruct" + }, + { + "id": "0x55ef964e0860-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964e0860-Statement" + }, + { + "id": "0x55ef964e0860-Statement", + "statement": "0x55ef964e0870-ActionStmt", + "source": "ptr_slice => array_target(2:4)" + }, + { + "id": "0x55ef964e0870-ActionStmt", + "variantKey": "PointerAssignmentStmt", + "PointerAssignmentStmt": "0x55ef964e0720-PointerAssignmentStmt" + }, + { + "id": "0x55ef964e0720-PointerAssignmentStmt", + "DataRef": "0x55ef964e0820-DataRef", + "Bounds": "0x55ef964e0800-Bounds", + "Expr": "0x55ef964e0730-Expr", + "variantKey": "BoundsSpec", + "BoundsSpec": [] + }, + { + "id": "0x55ef964e0820-DataRef", + "variantKey": "Name", + "Name": "0x55ef964e0820-Name" + }, + { + "id": "0x55ef964e0820-Name", + "source": "ptr_slice" + }, + { + "id": "0x55ef964e0800-Bounds", + "variantKey": "list" + }, + { + "id": "0x55ef964e0730-Expr", + "variantKey": "Designator", + "Designator": "0x55ef964e06c0-Designator" + }, + { + "id": "0x55ef964e06c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ef964e06d0-DataRef" + }, + { + "id": "0x55ef964e06d0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55ef964ed070-ArrayElement" + }, + { + "id": "0x55ef964ed070-ArrayElement", + "base": "0x55ef964ed070-DataRef", + "subscripts": [ + "0x55ef964e0620-SectionSubscript" + ] + }, + { + "id": "0x55ef964ed070-DataRef", + "variantKey": "Name", + "Name": "0x55ef964ed070-Name" + }, + { + "id": "0x55ef964ed070-Name", + "source": "array_target" + }, + { + "id": "0x55ef964e0620-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x55ef964e0620-SubscriptTriplet" + }, + { + "id": "0x55ef964e0620-SubscriptTriplet", + "start": "0x55ef964e0450-Expr", + "end": "0x55ef964e0530-Expr" + }, + { + "id": "0x55ef964e0450-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964e0470-LiteralConstant" + }, + { + "id": "0x55ef964e0470-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ef964e0470-IntLiteralConstant" + }, + { + "id": "0x55ef964e0470-IntLiteralConstant", + "CharBlock": "2" + }, + { + "id": "0x55ef964e0530-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964e0550-LiteralConstant" + }, + { + "id": "0x55ef964e0550-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ef964e0550-IntLiteralConstant" + }, + { + "id": "0x55ef964e0550-IntLiteralConstant", + "CharBlock": "4" + }, + { + "id": "0x55ef964e0ba0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ef964e0ba0-ExecutableConstruct" + }, + { + "id": "0x55ef964e0ba0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964e0ba0-Statement" + }, + { + "id": "0x55ef964e0ba0-Statement", + "statement": "0x55ef964e0bb0-ActionStmt", + "source": "print *, \"4. Array slice (2:4):\", ptr_slice" + }, + { + "id": "0x55ef964e0bb0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55ef964e0a90-PrintStmt" + }, + { + "id": "0x55ef964e0a90-PrintStmt", + "Format": "0x55ef964e0aa8-Format", + "OutputItem": [ + "0x55ef964e09b0-OutputItem", + "0x55ef964e08c0-OutputItem" + ] + }, + { + "id": "0x55ef964e0aa8-Format", + "variantKey": "Star", + "Star": "0x55ef964e0aa8-Star" + }, + { + "id": "0x55ef964e0aa8-Star" + }, + { + "id": "0x55ef964e09b0-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ef964e09b0-Expr" + }, + { + "id": "0x55ef964e09b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964e09d0-LiteralConstant" + }, + { + "id": "0x55ef964e09d0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55ef964e09d0-CharLiteralConstant" + }, + { + "id": "0x55ef964e09d0-CharLiteralConstant", + "string": "4. Array slice (2:4):" + }, + { + "id": "0x55ef964e08c0-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ef964e08c0-Expr" + }, + { + "id": "0x55ef964e08c0-Expr", + "variantKey": "Designator", + "Designator": "0x55ef964e0660-Designator" + }, + { + "id": "0x55ef964e0660-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ef964e0670-DataRef" + }, + { + "id": "0x55ef964e0670-DataRef", + "variantKey": "Name", + "Name": "0x55ef964e0670-Name" + }, + { + "id": "0x55ef964e0670-Name", + "source": "ptr_slice" + }, + { + "id": "0x55ef964e0f20-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ef964e0f20-ExecutableConstruct" + }, + { + "id": "0x55ef964e0f20-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964e0f20-Statement" + }, + { + "id": "0x55ef964e0f20-Statement", + "statement": "0x55ef964e0f30-ActionStmt", + "source": "ptr_lbound(10:) => array_target" + }, + { + "id": "0x55ef964e0f30-ActionStmt", + "variantKey": "PointerAssignmentStmt", + "PointerAssignmentStmt": "0x55ef964e0de0-PointerAssignmentStmt" + }, + { + "id": "0x55ef964e0de0-PointerAssignmentStmt", + "DataRef": "0x55ef964e0ee0-DataRef", + "Bounds": "0x55ef964e0ec0-Bounds", + "Expr": "0x55ef964e0df0-Expr", + "variantKey": "BoundsSpec", + "BoundsSpec": [ + "0x55ef964ed020-BoundsSpec" + ] + }, + { + "id": "0x55ef964e0ee0-DataRef", + "variantKey": "Name", + "Name": "0x55ef964e0ee0-Name" + }, + { + "id": "0x55ef964e0ee0-Name", + "source": "ptr_lbound" + }, + { + "id": "0x55ef964e0ec0-Bounds", + "variantKey": "BoundsSpec", + "BoundsSpec": [ + "0x55ef964ed020-BoundsSpec" + ] + }, + { + "id": "0x55ef964ed020-BoundsSpec", + "Expr": "0x55ef964e0bf0-Expr" + }, + { + "id": "0x55ef964e0bf0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964e0c10-LiteralConstant" + }, + { + "id": "0x55ef964e0c10-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ef964e0c10-IntLiteralConstant" + }, + { + "id": "0x55ef964e0c10-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x55ef964e0df0-Expr", + "variantKey": "Designator", + "Designator": "0x55ef964e0d80-Designator" + }, + { + "id": "0x55ef964e0d80-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ef964e0d90-DataRef" + }, + { + "id": "0x55ef964e0d90-DataRef", + "variantKey": "Name", + "Name": "0x55ef964e0d90-Name" + }, + { + "id": "0x55ef964e0d90-Name", + "source": "array_target" + }, + { + "id": "0x55ef964e29d0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ef964e29d0-ExecutableConstruct" + }, + { + "id": "0x55ef964e29d0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964e29d0-Statement" + }, + { + "id": "0x55ef964e29d0-Statement", + "statement": "0x55ef964e29e0-ActionStmt", + "source": "print *, \"5. Lower bound remapped | LBound:\", lbound(ptr_lbound, 1), \"| ptr(10):\", ptr_lbound(10)" + }, + { + "id": "0x55ef964e29e0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55ef964e2850-PrintStmt" + }, + { + "id": "0x55ef964e2850-PrintStmt", + "Format": "0x55ef964e2868-Format", + "OutputItem": [ + "0x55ef964e2700-OutputItem", + "0x55ef964e18e0-OutputItem", + "0x55ef964e1c60-OutputItem", + "0x55ef964e2610-OutputItem" + ] + }, + { + "id": "0x55ef964e2868-Format", + "variantKey": "Star", + "Star": "0x55ef964e2868-Star" + }, + { + "id": "0x55ef964e2868-Star" + }, + { + "id": "0x55ef964e2700-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ef964e2700-Expr" + }, + { + "id": "0x55ef964e2700-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964e2720-LiteralConstant" + }, + { + "id": "0x55ef964e2720-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55ef964e2720-CharLiteralConstant" + }, + { + "id": "0x55ef964e2720-CharLiteralConstant", + "string": "5. Lower bound remapped | LBound:" + }, + { + "id": "0x55ef964e18e0-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ef964e18e0-Expr" + }, + { + "id": "0x55ef964e18e0-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55ef964e17f0-FunctionReference" + }, + { + "id": "0x55ef964e17f0-FunctionReference", + "Call": "0x55ef964e17f0-Call" + }, + { + "id": "0x55ef964e17f0-Call", + "ProcedureDesignator": "0x55ef964e1808-ProcedureDesignator", + "ActualArgSpec": [ + "0x55ef964e1680-ActualArgSpec", + "0x55ef964bfcf0-ActualArgSpec" + ] + }, + { + "id": "0x55ef964e1808-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55ef964e1808-Name" + }, + { + "id": "0x55ef964e1808-Name", + "source": "lbound" + }, + { + "id": "0x55ef964e1680-ActualArgSpec", + "ActualArg": "0x55ef964e1680-ActualArg" + }, + { + "id": "0x55ef964e1680-ActualArg", + "variantKey": "Expr", + "Expr": "0x55ef964e13b0-Expr" + }, + { + "id": "0x55ef964e13b0-Expr", + "variantKey": "Designator", + "Designator": "0x55ef964e0fe0-Designator" + }, + { + "id": "0x55ef964e0fe0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ef964e0ff0-DataRef" + }, + { + "id": "0x55ef964e0ff0-DataRef", + "variantKey": "Name", + "Name": "0x55ef964e0ff0-Name" + }, + { + "id": "0x55ef964e0ff0-Name", + "source": "ptr_lbound" + }, + { + "id": "0x55ef964bfcf0-ActualArgSpec", + "ActualArg": "0x55ef964bfcf0-ActualArg" + }, + { + "id": "0x55ef964bfcf0-ActualArg", + "variantKey": "Expr", + "Expr": "0x55ef964e10b0-Expr" + }, + { + "id": "0x55ef964e10b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964e10d0-LiteralConstant" + }, + { + "id": "0x55ef964e10d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ef964e10d0-IntLiteralConstant" + }, + { + "id": "0x55ef964e10d0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55ef964e1c60-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ef964e1c60-Expr" + }, + { + "id": "0x55ef964e1c60-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964e1c80-LiteralConstant" + }, + { + "id": "0x55ef964e1c80-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55ef964e1c80-CharLiteralConstant" + }, + { + "id": "0x55ef964e1c80-CharLiteralConstant", + "string": "| ptr(10):" + }, + { + "id": "0x55ef964e2610-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ef964e2610-Expr" + }, + { + "id": "0x55ef964e2610-Expr", + "variantKey": "Designator", + "Designator": "0x55ef9651f420-Designator" + }, + { + "id": "0x55ef9651f420-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ef9651f430-DataRef" + }, + { + "id": "0x55ef9651f430-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55ef964e63a0-ArrayElement" + }, + { + "id": "0x55ef964e63a0-ArrayElement", + "base": "0x55ef964e63a0-DataRef", + "subscripts": [ + "0x55ef965072e0-SectionSubscript" + ] + }, + { + "id": "0x55ef964e63a0-DataRef", + "variantKey": "Name", + "Name": "0x55ef964e63a0-Name" + }, + { + "id": "0x55ef964e63a0-Name", + "source": "ptr_lbound" + }, + { + "id": "0x55ef965072e0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55ef9651bfd0-Expr" + }, + { + "id": "0x55ef9651bfd0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef9651bff0-LiteralConstant" + }, + { + "id": "0x55ef9651bff0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ef9651bff0-IntLiteralConstant" + }, + { + "id": "0x55ef9651bff0-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x55ef964f54b0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ef964f54b0-ExecutableConstruct" + }, + { + "id": "0x55ef964f54b0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964f54b0-Statement" + }, + { + "id": "0x55ef964f54b0-Statement", + "statement": "0x55ef964f54c0-ActionStmt", + "source": "ptr_bounds(0:4) => array_target" + }, + { + "id": "0x55ef964f54c0-ActionStmt", + "variantKey": "PointerAssignmentStmt", + "PointerAssignmentStmt": "0x55ef964e2cf0-PointerAssignmentStmt" + }, + { + "id": "0x55ef964e2cf0-PointerAssignmentStmt", + "DataRef": "0x55ef964e2df0-DataRef", + "Bounds": "0x55ef964e2dd0-Bounds", + "Expr": "0x55ef964e2d00-Expr", + "variantKey": "BoundsRemapping", + "BoundsRemapping": [ + "0x55ef964ed140-BoundsRemapping" + ] + }, + { + "id": "0x55ef964e2df0-DataRef", + "variantKey": "Name", + "Name": "0x55ef964e2df0-Name" + }, + { + "id": "0x55ef964e2df0-Name", + "source": "ptr_bounds" + }, + { + "id": "0x55ef964e2dd0-Bounds", + "variantKey": "BoundsRemapping", + "BoundsRemapping": [ + "0x55ef964ed140-BoundsRemapping" + ] + }, + { + "id": "0x55ef964ed140-BoundsRemapping", + "Expr": "0x55ef964e2b00-Expr" + }, + { + "id": "0x55ef964e2a20-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964e2a40-LiteralConstant" + }, + { + "id": "0x55ef964e2a40-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ef964e2a40-IntLiteralConstant" + }, + { + "id": "0x55ef964e2a40-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55ef964e2b00-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964e2b20-LiteralConstant" + }, + { + "id": "0x55ef964e2b20-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ef964e2b20-IntLiteralConstant" + }, + { + "id": "0x55ef964e2b20-IntLiteralConstant", + "CharBlock": "4" + }, + { + "id": "0x55ef964e2d00-Expr", + "variantKey": "Designator", + "Designator": "0x55ef964df2f0-Designator" + }, + { + "id": "0x55ef964df2f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ef964df300-DataRef" + }, + { + "id": "0x55ef964df300-DataRef", + "variantKey": "Name", + "Name": "0x55ef964df300-Name" + }, + { + "id": "0x55ef964df300-Name", + "source": "array_target" + }, + { + "id": "0x55ef964e3a00-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ef964e3a00-ExecutableConstruct" + }, + { + "id": "0x55ef964e3a00-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964e3a00-Statement" + }, + { + "id": "0x55ef964e3a00-Statement", + "statement": "0x55ef964e3a10-ActionStmt", + "source": "print *, \"6. Full bounds remapped | LBound:\", lbound(ptr_bounds, 1), \"| ptr(0):\", ptr_bounds(0)" + }, + { + "id": "0x55ef964e3a10-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55ef964e3880-PrintStmt" + }, + { + "id": "0x55ef964e3880-PrintStmt", + "Format": "0x55ef964e3898-Format", + "OutputItem": [ + "0x55ef964e3730-OutputItem", + "0x55ef964e3150-OutputItem", + "0x55ef964e3240-OutputItem", + "0x55ef964e3640-OutputItem" + ] + }, + { + "id": "0x55ef964e3898-Format", + "variantKey": "Star", + "Star": "0x55ef964e3898-Star" + }, + { + "id": "0x55ef964e3898-Star" + }, + { + "id": "0x55ef964e3730-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ef964e3730-Expr" + }, + { + "id": "0x55ef964e3730-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964e3750-LiteralConstant" + }, + { + "id": "0x55ef964e3750-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55ef964e3750-CharLiteralConstant" + }, + { + "id": "0x55ef964e3750-CharLiteralConstant", + "string": "6. Full bounds remapped | LBound:" + }, + { + "id": "0x55ef964e3150-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ef964e3150-Expr" + }, + { + "id": "0x55ef964e3150-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55ef964f4ca0-FunctionReference" + }, + { + "id": "0x55ef964f4ca0-FunctionReference", + "Call": "0x55ef964f4ca0-Call" + }, + { + "id": "0x55ef964f4ca0-Call", + "ProcedureDesignator": "0x55ef964f4cb8-ProcedureDesignator", + "ActualArgSpec": [ + "0x55ef964e3040-ActualArgSpec", + "0x55ef964e2bf0-ActualArgSpec" + ] + }, + { + "id": "0x55ef964f4cb8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55ef964f4cb8-Name" + }, + { + "id": "0x55ef964f4cb8-Name", + "source": "lbound" + }, + { + "id": "0x55ef964e3040-ActualArgSpec", + "ActualArg": "0x55ef964e3040-ActualArg" + }, + { + "id": "0x55ef964e3040-ActualArg", + "variantKey": "Expr", + "Expr": "0x55ef964e2f00-Expr" + }, + { + "id": "0x55ef964e2f00-Expr", + "variantKey": "Designator", + "Designator": "0x55ef964e0d20-Designator" + }, + { + "id": "0x55ef964e0d20-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ef964e0d30-DataRef" + }, + { + "id": "0x55ef964e0d30-DataRef", + "variantKey": "Name", + "Name": "0x55ef964e0d30-Name" + }, + { + "id": "0x55ef964e0d30-Name", + "source": "ptr_bounds" + }, + { + "id": "0x55ef964e2bf0-ActualArgSpec", + "ActualArg": "0x55ef964e2bf0-ActualArg" + }, + { + "id": "0x55ef964e2bf0-ActualArg", + "variantKey": "Expr", + "Expr": "0x55ef964e2e20-Expr" + }, + { + "id": "0x55ef964e2e20-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964e2e40-LiteralConstant" + }, + { + "id": "0x55ef964e2e40-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ef964e2e40-IntLiteralConstant" + }, + { + "id": "0x55ef964e2e40-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55ef964e3240-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ef964e3240-Expr" + }, + { + "id": "0x55ef964e3240-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964e3260-LiteralConstant" + }, + { + "id": "0x55ef964e3260-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55ef964e3260-CharLiteralConstant" + }, + { + "id": "0x55ef964e3260-CharLiteralConstant", + "string": "| ptr(0):" + }, + { + "id": "0x55ef964e3640-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ef964e3640-Expr" + }, + { + "id": "0x55ef964e3640-Expr", + "variantKey": "Designator", + "Designator": "0x55ef9651ea80-Designator" + }, + { + "id": "0x55ef9651ea80-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ef9651ea90-DataRef" + }, + { + "id": "0x55ef9651ea90-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55ef964e8bc0-ArrayElement" + }, + { + "id": "0x55ef964e8bc0-ArrayElement", + "base": "0x55ef964e8bc0-DataRef", + "subscripts": [ + "0x55ef96514990-SectionSubscript" + ] + }, + { + "id": "0x55ef964e8bc0-DataRef", + "variantKey": "Name", + "Name": "0x55ef964e8bc0-Name" + }, + { + "id": "0x55ef964e8bc0-Name", + "source": "ptr_bounds" + }, + { + "id": "0x55ef96514990-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55ef964e2180-Expr" + }, + { + "id": "0x55ef964e2180-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964e21a0-LiteralConstant" + }, + { + "id": "0x55ef964e21a0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ef964e21a0-IntLiteralConstant" + }, + { + "id": "0x55ef964e21a0-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55ef964e2270-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ef964e2270-ExecutableConstruct" + }, + { + "id": "0x55ef964e2270-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964e2270-Statement" + }, + { + "id": "0x55ef964e2270-Statement", + "statement": "0x55ef964e2280-ActionStmt", + "source": "ptr_2d(1:2, 1:2) => array_target(1:4)" + }, + { + "id": "0x55ef964e2280-ActionStmt", + "variantKey": "PointerAssignmentStmt", + "PointerAssignmentStmt": "0x55ef964e40a0-PointerAssignmentStmt" + }, + { + "id": "0x55ef964e40a0-PointerAssignmentStmt", + "DataRef": "0x55ef964e41a0-DataRef", + "Bounds": "0x55ef964e4180-Bounds", + "Expr": "0x55ef964e40b0-Expr", + "variantKey": "BoundsRemapping", + "BoundsRemapping": [ + "0x55ef964eb1e0-BoundsRemapping", + "0x55ef964eaff0-BoundsRemapping" + ] + }, + { + "id": "0x55ef964e41a0-DataRef", + "variantKey": "Name", + "Name": "0x55ef964e41a0-Name" + }, + { + "id": "0x55ef964e41a0-Name", + "source": "ptr_2d" + }, + { + "id": "0x55ef964e4180-Bounds", + "variantKey": "BoundsRemapping", + "BoundsRemapping": [ + "0x55ef964eb1e0-BoundsRemapping", + "0x55ef964eaff0-BoundsRemapping" + ] + }, + { + "id": "0x55ef964eb1e0-BoundsRemapping", + "Expr": "0x55ef964e3a50-Expr" + }, + { + "id": "0x55ef964e3b30-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964e3b50-LiteralConstant" + }, + { + "id": "0x55ef964e3b50-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ef964e3b50-IntLiteralConstant" + }, + { + "id": "0x55ef964e3b50-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55ef964e3a50-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964e3a70-LiteralConstant" + }, + { + "id": "0x55ef964e3a70-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ef964e3a70-IntLiteralConstant" + }, + { + "id": "0x55ef964e3a70-IntLiteralConstant", + "CharBlock": "2" + }, + { + "id": "0x55ef964eaff0-BoundsRemapping", + "Expr": "0x55ef964e3cf0-Expr" + }, + { + "id": "0x55ef964e3c10-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964e3c30-LiteralConstant" + }, + { + "id": "0x55ef964e3c30-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ef964e3c30-IntLiteralConstant" + }, + { + "id": "0x55ef964e3c30-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55ef964e3cf0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964e3d10-LiteralConstant" + }, + { + "id": "0x55ef964e3d10-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ef964e3d10-IntLiteralConstant" + }, + { + "id": "0x55ef964e3d10-IntLiteralConstant", + "CharBlock": "2" + }, + { + "id": "0x55ef964e40b0-Expr", + "variantKey": "Designator", + "Designator": "0x55ef964e0050-Designator" + }, + { + "id": "0x55ef964e0050-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ef964e0060-DataRef" + }, + { + "id": "0x55ef964e0060-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55ef964eb950-ArrayElement" + }, + { + "id": "0x55ef964eb950-ArrayElement", + "base": "0x55ef964eb950-DataRef", + "subscripts": [ + "0x55ef964e14f0-SectionSubscript" + ] + }, + { + "id": "0x55ef964eb950-DataRef", + "variantKey": "Name", + "Name": "0x55ef964eb950-Name" + }, + { + "id": "0x55ef964eb950-Name", + "source": "array_target" + }, + { + "id": "0x55ef964e14f0-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x55ef964e14f0-SubscriptTriplet" + }, + { + "id": "0x55ef964e14f0-SubscriptTriplet", + "start": "0x55ef964e3ee0-Expr", + "end": "0x55ef964e3fc0-Expr" + }, + { + "id": "0x55ef964e3ee0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964e3f00-LiteralConstant" + }, + { + "id": "0x55ef964e3f00-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ef964e3f00-IntLiteralConstant" + }, + { + "id": "0x55ef964e3f00-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55ef964e3fc0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964e3fe0-LiteralConstant" + }, + { + "id": "0x55ef964e3fe0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ef964e3fe0-IntLiteralConstant" + }, + { + "id": "0x55ef964e3fe0-IntLiteralConstant", + "CharBlock": "4" + }, + { + "id": "0x55ef964e11a0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ef964e11a0-ExecutableConstruct" + }, + { + "id": "0x55ef964e11a0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964e11a0-Statement" + }, + { + "id": "0x55ef964e11a0-Statement", + "statement": "0x55ef964e11b0-ActionStmt", + "source": "print *, \"7. Rank remapped 2D pointer (element 2,2):\", ptr_2d(2, 2)" + }, + { + "id": "0x55ef964e11b0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55ef964e4720-PrintStmt" + }, + { + "id": "0x55ef964e4720-PrintStmt", + "Format": "0x55ef964e4738-Format", + "OutputItem": [ + "0x55ef964e4640-OutputItem", + "0x55ef964e4550-OutputItem" + ] + }, + { + "id": "0x55ef964e4738-Format", + "variantKey": "Star", + "Star": "0x55ef964e4738-Star" + }, + { + "id": "0x55ef964e4738-Star" + }, + { + "id": "0x55ef964e4640-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ef964e4640-Expr" + }, + { + "id": "0x55ef964e4640-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964e4660-LiteralConstant" + }, + { + "id": "0x55ef964e4660-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55ef964e4660-CharLiteralConstant" + }, + { + "id": "0x55ef964e4660-CharLiteralConstant", + "string": "7. Rank remapped 2D pointer (element 2,2):" + }, + { + "id": "0x55ef964e4550-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ef964e4550-Expr" + }, + { + "id": "0x55ef964e4550-Expr", + "variantKey": "Designator", + "Designator": "0x55ef9651fdc0-Designator" + }, + { + "id": "0x55ef9651fdc0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ef9651fdd0-DataRef" + }, + { + "id": "0x55ef9651fdd0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55ef964eef90-ArrayElement" + }, + { + "id": "0x55ef964eef90-ArrayElement", + "base": "0x55ef964eef90-DataRef", + "subscripts": [ + "0x55ef965062d0-SectionSubscript", + "0x55ef9650e3d0-SectionSubscript" + ] + }, + { + "id": "0x55ef964eef90-DataRef", + "variantKey": "Name", + "Name": "0x55ef964eef90-Name" + }, + { + "id": "0x55ef964eef90-Name", + "source": "ptr_2d" + }, + { + "id": "0x55ef965062d0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55ef964e33e0-Expr" + }, + { + "id": "0x55ef964e33e0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964e3400-LiteralConstant" + }, + { + "id": "0x55ef964e3400-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ef964e3400-IntLiteralConstant" + }, + { + "id": "0x55ef964e3400-IntLiteralConstant", + "CharBlock": "2" + }, + { + "id": "0x55ef9650e3d0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55ef964ff670-Expr" + }, + { + "id": "0x55ef964ff670-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964ff690-LiteralConstant" + }, + { + "id": "0x55ef964ff690-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ef964ff690-IntLiteralConstant" + }, + { + "id": "0x55ef964ff690-IntLiteralConstant", + "CharBlock": "2" + }, + { + "id": "0x55ef964e3390-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ef964e3390-ExecutableConstruct" + }, + { + "id": "0x55ef964e3390-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964e3390-Statement" + }, + { + "id": "0x55ef964e3390-Statement", + "statement": "0x55ef964e33a0-ActionStmt", + "source": "ptr_proc => double_val" + }, + { + "id": "0x55ef964e33a0-ActionStmt", + "variantKey": "PointerAssignmentStmt", + "PointerAssignmentStmt": "0x55ef964e4820-PointerAssignmentStmt" + }, + { + "id": "0x55ef964e4820-PointerAssignmentStmt", + "DataRef": "0x55ef964e4920-DataRef", + "Bounds": "0x55ef964e4900-Bounds", + "Expr": "0x55ef964e4830-Expr", + "variantKey": "BoundsSpec", + "BoundsSpec": [] + }, + { + "id": "0x55ef964e4920-DataRef", + "variantKey": "Name", + "Name": "0x55ef964e4920-Name" + }, + { + "id": "0x55ef964e4920-Name", + "source": "ptr_proc" + }, + { + "id": "0x55ef964e4900-Bounds", + "variantKey": "list" + }, + { + "id": "0x55ef964e4830-Expr", + "variantKey": "Designator", + "Designator": "0x55ef964e1530-Designator" + }, + { + "id": "0x55ef964e1530-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ef964e1540-DataRef" + }, + { + "id": "0x55ef964e1540-DataRef", + "variantKey": "Name", + "Name": "0x55ef964e1540-Name" + }, + { + "id": "0x55ef964e1540-Name", + "source": "double_val" + }, + { + "id": "0x55ef964e3330-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ef964e3330-ExecutableConstruct" + }, + { + "id": "0x55ef964e3330-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964e3330-Statement" + }, + { + "id": "0x55ef964e3330-Statement", + "statement": "0x55ef964e3340-ActionStmt", + "source": "print *, \"8. Procedure pointer result:\", ptr_proc(5)" + }, + { + "id": "0x55ef964e3340-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55ef964e4d20-PrintStmt" + }, + { + "id": "0x55ef964e4d20-PrintStmt", + "Format": "0x55ef964e4d38-Format", + "OutputItem": [ + "0x55ef964e4c40-OutputItem", + "0x55ef964e4b50-OutputItem" + ] + }, + { + "id": "0x55ef964e4d38-Format", + "variantKey": "Star", + "Star": "0x55ef964e4d38-Star" + }, + { + "id": "0x55ef964e4d38-Star" + }, + { + "id": "0x55ef964e4c40-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ef964e4c40-Expr" + }, + { + "id": "0x55ef964e4c40-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964e4c60-LiteralConstant" + }, + { + "id": "0x55ef964e4c60-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55ef964e4c60-CharLiteralConstant" + }, + { + "id": "0x55ef964e4c60-CharLiteralConstant", + "string": "8. Procedure pointer result:" + }, + { + "id": "0x55ef964e4b50-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ef964e4b50-Expr" + }, + { + "id": "0x55ef964e4b50-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55ef964f5340-FunctionReference" + }, + { + "id": "0x55ef964f5340-FunctionReference", + "Call": "0x55ef964f5340-Call" + }, + { + "id": "0x55ef964f5340-Call", + "ProcedureDesignator": "0x55ef964f5358-ProcedureDesignator", + "ActualArgSpec": [ + "0x55ef964e4a40-ActualArgSpec" + ] + }, + { + "id": "0x55ef964f5358-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55ef964f5358-Name" + }, + { + "id": "0x55ef964f5358-Name", + "source": "ptr_proc" + }, + { + "id": "0x55ef964e4a40-ActualArgSpec", + "ActualArg": "0x55ef964e4a40-ActualArg" + }, + { + "id": "0x55ef964e4a40-ActualArg", + "variantKey": "Expr", + "Expr": "0x55ef964e4950-Expr" + }, + { + "id": "0x55ef964e4950-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964e4970-LiteralConstant" + }, + { + "id": "0x55ef964e4970-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ef964e4970-IntLiteralConstant" + }, + { + "id": "0x55ef964e4970-IntLiteralConstant", + "CharBlock": "5" + }, + { + "id": "0x55ef964e34d0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ef964e34d0-ExecutableConstruct" + }, + { + "id": "0x55ef964e34d0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964e34d0-Statement" + }, + { + "id": "0x55ef964e34d0-Statement", + "statement": "0x55ef964e34e0-ActionStmt", + "source": "ptr_scalar => null()" + }, + { + "id": "0x55ef964e34e0-ActionStmt", + "variantKey": "PointerAssignmentStmt", + "PointerAssignmentStmt": "0x55ef964e4e20-PointerAssignmentStmt" + }, + { + "id": "0x55ef964e4e20-PointerAssignmentStmt", + "DataRef": "0x55ef964e4f20-DataRef", + "Bounds": "0x55ef964e4f00-Bounds", + "Expr": "0x55ef964e4e30-Expr", + "variantKey": "BoundsSpec", + "BoundsSpec": [] + }, + { + "id": "0x55ef964e4f20-DataRef", + "variantKey": "Name", + "Name": "0x55ef964e4f20-Name" + }, + { + "id": "0x55ef964e4f20-Name", + "source": "ptr_scalar" + }, + { + "id": "0x55ef964e4f00-Bounds", + "variantKey": "list" + }, + { + "id": "0x55ef964e4e30-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55ef964ded90-FunctionReference" + }, + { + "id": "0x55ef964ded90-FunctionReference", + "Call": "0x55ef964ded90-Call" + }, + { + "id": "0x55ef964ded90-Call", + "ProcedureDesignator": "0x55ef964deda8-ProcedureDesignator" + }, + { + "id": "0x55ef964deda8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55ef964deda8-Name" + }, + { + "id": "0x55ef964deda8-Name", + "source": "null" + }, + { + "id": "0x55ef964e5090-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ef964e5090-ExecutableConstruct" + }, + { + "id": "0x55ef964e5090-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964e5090-Statement" + }, + { + "id": "0x55ef964e5090-Statement", + "statement": "0x55ef964e50a0-ActionStmt", + "source": "ptr_copy => null()" + }, + { + "id": "0x55ef964e50a0-ActionStmt", + "variantKey": "PointerAssignmentStmt", + "PointerAssignmentStmt": "0x55ef964e4f50-PointerAssignmentStmt" + }, + { + "id": "0x55ef964e4f50-PointerAssignmentStmt", + "DataRef": "0x55ef964e5050-DataRef", + "Bounds": "0x55ef964e5030-Bounds", + "Expr": "0x55ef964e4f60-Expr", + "variantKey": "BoundsSpec", + "BoundsSpec": [] + }, + { + "id": "0x55ef964e5050-DataRef", + "variantKey": "Name", + "Name": "0x55ef964e5050-Name" + }, + { + "id": "0x55ef964e5050-Name", + "source": "ptr_copy" + }, + { + "id": "0x55ef964e5030-Bounds", + "variantKey": "list" + }, + { + "id": "0x55ef964e4f60-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55ef964e24b0-FunctionReference" + }, + { + "id": "0x55ef964e24b0-FunctionReference", + "Call": "0x55ef964e24b0-Call" + }, + { + "id": "0x55ef964e24b0-Call", + "ProcedureDesignator": "0x55ef964e24c8-ProcedureDesignator" + }, + { + "id": "0x55ef964e24c8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55ef964e24c8-Name" + }, + { + "id": "0x55ef964e24c8-Name", + "source": "null" + }, + { + "id": "0x55ef964e5220-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ef964e5220-ExecutableConstruct" + }, + { + "id": "0x55ef964e5220-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964e5220-Statement" + }, + { + "id": "0x55ef964e5220-Statement", + "statement": "0x55ef964e5230-ActionStmt", + "source": "ptr_array => null()" + }, + { + "id": "0x55ef964e5230-ActionStmt", + "variantKey": "PointerAssignmentStmt", + "PointerAssignmentStmt": "0x55ef964e50e0-PointerAssignmentStmt" + }, + { + "id": "0x55ef964e50e0-PointerAssignmentStmt", + "DataRef": "0x55ef964e51e0-DataRef", + "Bounds": "0x55ef964e51c0-Bounds", + "Expr": "0x55ef964e50f0-Expr", + "variantKey": "BoundsSpec", + "BoundsSpec": [] + }, + { + "id": "0x55ef964e51e0-DataRef", + "variantKey": "Name", + "Name": "0x55ef964e51e0-Name" + }, + { + "id": "0x55ef964e51e0-Name", + "source": "ptr_array" + }, + { + "id": "0x55ef964e51c0-Bounds", + "variantKey": "list" + }, + { + "id": "0x55ef964e50f0-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55ef964dee00-FunctionReference" + }, + { + "id": "0x55ef964dee00-FunctionReference", + "Call": "0x55ef964dee00-Call" + }, + { + "id": "0x55ef964dee00-Call", + "ProcedureDesignator": "0x55ef964dee18-ProcedureDesignator" + }, + { + "id": "0x55ef964dee18-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55ef964dee18-Name" + }, + { + "id": "0x55ef964dee18-Name", + "source": "null" + }, + { + "id": "0x55ef964e53b0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ef964e53b0-ExecutableConstruct" + }, + { + "id": "0x55ef964e53b0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964e53b0-Statement" + }, + { + "id": "0x55ef964e53b0-Statement", + "statement": "0x55ef964e53c0-ActionStmt", + "source": "ptr_slice => null()" + }, + { + "id": "0x55ef964e53c0-ActionStmt", + "variantKey": "PointerAssignmentStmt", + "PointerAssignmentStmt": "0x55ef964e5270-PointerAssignmentStmt" + }, + { + "id": "0x55ef964e5270-PointerAssignmentStmt", + "DataRef": "0x55ef964e5370-DataRef", + "Bounds": "0x55ef964e5350-Bounds", + "Expr": "0x55ef964e5280-Expr", + "variantKey": "BoundsSpec", + "BoundsSpec": [] + }, + { + "id": "0x55ef964e5370-DataRef", + "variantKey": "Name", + "Name": "0x55ef964e5370-Name" + }, + { + "id": "0x55ef964e5370-Name", + "source": "ptr_slice" + }, + { + "id": "0x55ef964e5350-Bounds", + "variantKey": "list" + }, + { + "id": "0x55ef964e5280-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55ef964df6f0-FunctionReference" + }, + { + "id": "0x55ef964df6f0-FunctionReference", + "Call": "0x55ef964df6f0-Call" + }, + { + "id": "0x55ef964df6f0-Call", + "ProcedureDesignator": "0x55ef964df708-ProcedureDesignator" + }, + { + "id": "0x55ef964df708-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55ef964df708-Name" + }, + { + "id": "0x55ef964df708-Name", + "source": "null" + }, + { + "id": "0x55ef964e5540-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ef964e5540-ExecutableConstruct" + }, + { + "id": "0x55ef964e5540-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964e5540-Statement" + }, + { + "id": "0x55ef964e5540-Statement", + "statement": "0x55ef964e5550-ActionStmt", + "source": "ptr_lbound => null()" + }, + { + "id": "0x55ef964e5550-ActionStmt", + "variantKey": "PointerAssignmentStmt", + "PointerAssignmentStmt": "0x55ef964e5400-PointerAssignmentStmt" + }, + { + "id": "0x55ef964e5400-PointerAssignmentStmt", + "DataRef": "0x55ef964e5500-DataRef", + "Bounds": "0x55ef964e54e0-Bounds", + "Expr": "0x55ef964e5410-Expr", + "variantKey": "BoundsSpec", + "BoundsSpec": [] + }, + { + "id": "0x55ef964e5500-DataRef", + "variantKey": "Name", + "Name": "0x55ef964e5500-Name" + }, + { + "id": "0x55ef964e5500-Name", + "source": "ptr_lbound" + }, + { + "id": "0x55ef964e54e0-Bounds", + "variantKey": "list" + }, + { + "id": "0x55ef964e5410-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55ef964df020-FunctionReference" + }, + { + "id": "0x55ef964df020-FunctionReference", + "Call": "0x55ef964df020-Call" + }, + { + "id": "0x55ef964df020-Call", + "ProcedureDesignator": "0x55ef964df038-ProcedureDesignator" + }, + { + "id": "0x55ef964df038-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55ef964df038-Name" + }, + { + "id": "0x55ef964df038-Name", + "source": "null" + }, + { + "id": "0x55ef964e56d0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ef964e56d0-ExecutableConstruct" + }, + { + "id": "0x55ef964e56d0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964e56d0-Statement" + }, + { + "id": "0x55ef964e56d0-Statement", + "statement": "0x55ef964e56e0-ActionStmt", + "source": "ptr_bounds => null()" + }, + { + "id": "0x55ef964e56e0-ActionStmt", + "variantKey": "PointerAssignmentStmt", + "PointerAssignmentStmt": "0x55ef964e5590-PointerAssignmentStmt" + }, + { + "id": "0x55ef964e5590-PointerAssignmentStmt", + "DataRef": "0x55ef964e5690-DataRef", + "Bounds": "0x55ef964e5670-Bounds", + "Expr": "0x55ef964e55a0-Expr", + "variantKey": "BoundsSpec", + "BoundsSpec": [] + }, + { + "id": "0x55ef964e5690-DataRef", + "variantKey": "Name", + "Name": "0x55ef964e5690-Name" + }, + { + "id": "0x55ef964e5690-Name", + "source": "ptr_bounds" + }, + { + "id": "0x55ef964e5670-Bounds", + "variantKey": "list" + }, + { + "id": "0x55ef964e55a0-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55ef964e2110-FunctionReference" + }, + { + "id": "0x55ef964e2110-FunctionReference", + "Call": "0x55ef964e2110-Call" + }, + { + "id": "0x55ef964e2110-Call", + "ProcedureDesignator": "0x55ef964e2128-ProcedureDesignator" + }, + { + "id": "0x55ef964e2128-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55ef964e2128-Name" + }, + { + "id": "0x55ef964e2128-Name", + "source": "null" + }, + { + "id": "0x55ef964e5860-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ef964e5860-ExecutableConstruct" + }, + { + "id": "0x55ef964e5860-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964e5860-Statement" + }, + { + "id": "0x55ef964e5860-Statement", + "statement": "0x55ef964e5870-ActionStmt", + "source": "ptr_2d => null()" + }, + { + "id": "0x55ef964e5870-ActionStmt", + "variantKey": "PointerAssignmentStmt", + "PointerAssignmentStmt": "0x55ef964e5720-PointerAssignmentStmt" + }, + { + "id": "0x55ef964e5720-PointerAssignmentStmt", + "DataRef": "0x55ef964e5820-DataRef", + "Bounds": "0x55ef964e5800-Bounds", + "Expr": "0x55ef964e5730-Expr", + "variantKey": "BoundsSpec", + "BoundsSpec": [] + }, + { + "id": "0x55ef964e5820-DataRef", + "variantKey": "Name", + "Name": "0x55ef964e5820-Name" + }, + { + "id": "0x55ef964e5820-Name", + "source": "ptr_2d" + }, + { + "id": "0x55ef964e5800-Bounds", + "variantKey": "list" + }, + { + "id": "0x55ef964e5730-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55ef964e1fc0-FunctionReference" + }, + { + "id": "0x55ef964e1fc0-FunctionReference", + "Call": "0x55ef964e1fc0-Call" + }, + { + "id": "0x55ef964e1fc0-Call", + "ProcedureDesignator": "0x55ef964e1fd8-ProcedureDesignator" + }, + { + "id": "0x55ef964e1fd8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55ef964e1fd8-Name" + }, + { + "id": "0x55ef964e1fd8-Name", + "source": "null" + }, + { + "id": "0x55ef964e59f0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ef964e59f0-ExecutableConstruct" + }, + { + "id": "0x55ef964e59f0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964e59f0-Statement" + }, + { + "id": "0x55ef964e59f0-Statement", + "statement": "0x55ef964e5a00-ActionStmt", + "source": "ptr_proc => null()" + }, + { + "id": "0x55ef964e5a00-ActionStmt", + "variantKey": "PointerAssignmentStmt", + "PointerAssignmentStmt": "0x55ef964e58b0-PointerAssignmentStmt" + }, + { + "id": "0x55ef964e58b0-PointerAssignmentStmt", + "DataRef": "0x55ef964e59b0-DataRef", + "Bounds": "0x55ef964e5990-Bounds", + "Expr": "0x55ef964e58c0-Expr", + "variantKey": "BoundsSpec", + "BoundsSpec": [] + }, + { + "id": "0x55ef964e59b0-DataRef", + "variantKey": "Name", + "Name": "0x55ef964e59b0-Name" + }, + { + "id": "0x55ef964e59b0-Name", + "source": "ptr_proc" + }, + { + "id": "0x55ef964e5990-Bounds", + "variantKey": "list" + }, + { + "id": "0x55ef964e58c0-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55ef964dc850-FunctionReference" + }, + { + "id": "0x55ef964dc850-FunctionReference", + "Call": "0x55ef964dc850-Call" + }, + { + "id": "0x55ef964dc850-Call", + "ProcedureDesignator": "0x55ef964dc868-ProcedureDesignator" + }, + { + "id": "0x55ef964dc868-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55ef964dc868-Name" + }, + { + "id": "0x55ef964dc868-Name", + "source": "null" + }, + { + "id": "0x55ef964f67a0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ef964f67a0-ExecutableConstruct" + }, + { + "id": "0x55ef964f67a0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964f67a0-Statement" + }, + { + "id": "0x55ef964f67a0-Statement", + "statement": "0x55ef964f67b0-ActionStmt", + "source": "print *, \"9. Any pointers still associated?\", associated(ptr_scalar) .or. associated(ptr_proc)" + }, + { + "id": "0x55ef964f67b0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55ef964f6620-PrintStmt" + }, + { + "id": "0x55ef964f6620-PrintStmt", + "Format": "0x55ef964f6638-Format", + "OutputItem": [ + "0x55ef964f64d0-OutputItem", + "0x55ef964f63e0-OutputItem" + ] + }, + { + "id": "0x55ef964f6638-Format", + "variantKey": "Star", + "Star": "0x55ef964f6638-Star" + }, + { + "id": "0x55ef964f6638-Star" + }, + { + "id": "0x55ef964f64d0-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ef964f64d0-Expr" + }, + { + "id": "0x55ef964f64d0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964f64f0-LiteralConstant" + }, + { + "id": "0x55ef964f64f0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55ef964f64f0-CharLiteralConstant" + }, + { + "id": "0x55ef964f64f0-CharLiteralConstant", + "string": "9. Any pointers still associated?" + }, + { + "id": "0x55ef964f63e0-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ef964f63e0-Expr" + }, + { + "id": "0x55ef964f63e0-Expr", + "variantKey": "OR", + "OR": "0x55ef964f6400-OR" + }, + { + "id": "0x55ef964f6400-OR", + "left": "0x55ef964f62f0-Expr", + "right": "0x55ef964f6210-Expr", + "op": "OR" + }, + { + "id": "0x55ef964f62f0-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55ef964e1260-FunctionReference" + }, + { + "id": "0x55ef964e1260-FunctionReference", + "Call": "0x55ef964e1260-Call" + }, + { + "id": "0x55ef964e1260-Call", + "ProcedureDesignator": "0x55ef964e1278-ProcedureDesignator", + "ActualArgSpec": [ + "0x55ef964e5c50-ActualArgSpec" + ] + }, + { + "id": "0x55ef964e1278-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55ef964e1278-Name" + }, + { + "id": "0x55ef964e1278-Name", + "source": "associated" + }, + { + "id": "0x55ef964e5c50-ActualArgSpec", + "ActualArg": "0x55ef964e5c50-ActualArg" + }, + { + "id": "0x55ef964e5c50-ActualArg", + "variantKey": "Expr", + "Expr": "0x55ef964e5b00-Expr" + }, + { + "id": "0x55ef964e5b00-Expr", + "variantKey": "Designator", + "Designator": "0x55ef964e5aa0-Designator" + }, + { + "id": "0x55ef964e5aa0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ef964e5ab0-DataRef" + }, + { + "id": "0x55ef964e5ab0-DataRef", + "variantKey": "Name", + "Name": "0x55ef964e5ab0-Name" + }, + { + "id": "0x55ef964e5ab0-Name", + "source": "ptr_scalar" + }, + { + "id": "0x55ef964f6210-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55ef964e62e0-FunctionReference" + }, + { + "id": "0x55ef964e62e0-FunctionReference", + "Call": "0x55ef964e62e0-Call" + }, + { + "id": "0x55ef964e62e0-Call", + "ProcedureDesignator": "0x55ef964e62f8-ProcedureDesignator", + "ActualArgSpec": [ + "0x55ef964e6170-ActualArgSpec" + ] + }, + { + "id": "0x55ef964e62f8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55ef964e62f8-Name" + }, + { + "id": "0x55ef964e62f8-Name", + "source": "associated" + }, + { + "id": "0x55ef964e6170-ActualArgSpec", + "ActualArg": "0x55ef964e6170-ActualArg" + }, + { + "id": "0x55ef964e6170-ActualArg", + "variantKey": "Expr", + "Expr": "0x55ef964e5f40-Expr" + }, + { + "id": "0x55ef964e5f40-Expr", + "variantKey": "Designator", + "Designator": "0x55ef964e5e70-Designator" + }, + { + "id": "0x55ef964e5e70-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ef964e5e80-DataRef" + }, + { + "id": "0x55ef964e5e80-DataRef", + "variantKey": "Name", + "Name": "0x55ef964e5e80-Name" + }, + { + "id": "0x55ef964e5e80-Name", + "source": "ptr_proc" + }, + { + "id": "0x55ef964ef1a0-InternalSubprogramPart", + "Statement": "0x55ef964ef1b8-Statement", + "InternalSubprogram": [ + "0x55ef964eb530-InternalSubprogram" + ] + }, + { + "id": "0x55ef964ef1b8-Statement", + "statement": "0x55ef964ef1c8-ContainsStmt", + "source": "contains" + }, + { + "id": "0x55ef964ef1c8-ContainsStmt" + }, + { + "id": "0x55ef964eb530-InternalSubprogram", + "variantKey": "FunctionSubprogram", + "FunctionSubprogram": "0x55ef964f67f0-FunctionSubprogram" + }, + { + "id": "0x55ef964f67f0-FunctionSubprogram", + "Statement": "0x55ef964f6938-Statement", + "SpecificationPart": "0x55ef964f6890-SpecificationPart", + "ExecutionPart": "0x55ef964f6878-ExecutionPart", + "Statement": "0x55ef964f67f0-Statement" + }, + { + "id": "0x55ef964f6938-Statement", + "statement": "0x55ef964f6948-FunctionStmt", + "source": "function double_val(x) result(res)" + }, + { + "id": "0x55ef964f6948-FunctionStmt", + "prefix": [], + "functionName": "0x55ef964f69a8-Name", + "paramNames": [ + "0x55ef964eb3a0-Name" + ], + "suffix": "0x55ef964f6948-Suffix" + }, + { + "id": "0x55ef964f69a8-Name", + "source": "double_val" + }, + { + "id": "0x55ef964eb3a0-Name", + "source": "x" + }, + { + "id": "0x55ef964f6948-Suffix", + "resultName": "0x55ef964f6968-Name" + }, + { + "id": "0x55ef964f6968-Name", + "source": "res" + }, + { + "id": "0x55ef964f6890-SpecificationPart", + "ImplicitPart": "0x55ef964f68a8-ImplicitPart", + "DeclarationConstruct": [ + "0x55ef964e5a50-DeclarationConstruct", + "0x55ef964e5bf0-DeclarationConstruct" + ] + }, + { + "id": "0x55ef964f68a8-ImplicitPart" + }, + { + "id": "0x55ef964e5a50-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55ef964e5a50-SpecificationConstruct" + }, + { + "id": "0x55ef964e5a50-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964e5a50-Statement" + }, + { + "id": "0x55ef964e5a50-Statement", + "statement": "0x55ef964f8120-TypeDeclarationStmt", + "source": "integer, intent(in) :: x" + }, + { + "id": "0x55ef964f8120-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55ef964f8150-DeclarationTypeSpec", + "AttrSpec": [ + "0x55ef964e43f0-AttrSpec" + ], + "EntityDecl": [ + "0x55ef964f8720-EntityDecl" + ] + }, + { + "id": "0x55ef964f8150-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55ef964f8150-IntrinsicTypeSpec" + }, + { + "id": "0x55ef964f8150-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55ef964f8150-IntegerTypeSpec" + }, + { + "id": "0x55ef964f8150-IntegerTypeSpec" + }, + { + "id": "0x55ef964e43f0-AttrSpec", + "variantKey": "IntentSpec", + "IntentSpec": "0x55ef964e43f0-IntentSpec" + }, + { + "id": "0x55ef964e43f0-IntentSpec", + "Intent": "0x55ef964e43f0-Intent", + "intent": "In" + }, + { + "id": "0x55ef964e43f0-Intent", + "disambiguation": "Fortran::parser::IntentSpec::Intent", + "value": "In" + }, + { + "id": "0x55ef964f8720-EntityDecl", + "Name": "0x55ef964f87d8-Name" + }, + { + "id": "0x55ef964f87d8-Name", + "source": "x" + }, + { + "id": "0x55ef964e5bf0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55ef964e5bf0-SpecificationConstruct" + }, + { + "id": "0x55ef964e5bf0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964e5bf0-Statement" + }, + { + "id": "0x55ef964e5bf0-Statement", + "statement": "0x55ef964f6a30-TypeDeclarationStmt", + "source": "integer :: res" + }, + { + "id": "0x55ef964f6a30-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55ef964f6a60-DeclarationTypeSpec", + "EntityDecl": [ + "0x55ef964de8e0-EntityDecl" + ] + }, + { + "id": "0x55ef964f6a60-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55ef964f6a60-IntrinsicTypeSpec" + }, + { + "id": "0x55ef964f6a60-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55ef964f6a60-IntegerTypeSpec" + }, + { + "id": "0x55ef964f6a60-IntegerTypeSpec" + }, + { + "id": "0x55ef964de8e0-EntityDecl", + "Name": "0x55ef964de998-Name" + }, + { + "id": "0x55ef964de998-Name", + "source": "res" + }, + { + "id": "0x55ef964f6878-ExecutionPart", + "ExecutionPartConstruct": [ + "0x55ef964e1f70-ExecutionPartConstruct" + ] + }, + { + "id": "0x55ef964f6878-ExecutionPartConstruct" + }, + { + "id": "0x55ef964e1f70-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ef964e1f70-ExecutableConstruct" + }, + { + "id": "0x55ef964e1f70-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ef964e1f70-Statement" + }, + { + "id": "0x55ef964e1f70-Statement", + "statement": "0x55ef964e1f80-ActionStmt", + "source": "res = x * 2" + }, + { + "id": "0x55ef964e1f80-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55ef964f6ca0-AssignmentStmt" + }, + { + "id": "0x55ef964f6ca0-AssignmentStmt", + "Variable": "0x55ef964f6d80-Variable", + "Expr": "0x55ef964f6cb0-Expr" + }, + { + "id": "0x55ef964f6d80-Variable", + "variantKey": "Designator", + "Designator": "0x55ef964de670-Designator" + }, + { + "id": "0x55ef964de670-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ef964de680-DataRef" + }, + { + "id": "0x55ef964de680-DataRef", + "variantKey": "Name", + "Name": "0x55ef964de680-Name" + }, + { + "id": "0x55ef964de680-Name", + "source": "res" + }, + { + "id": "0x55ef964f6cb0-Expr", + "variantKey": "Multiply", + "Multiply": "0x55ef964f6cd0-Multiply" + }, + { + "id": "0x55ef964f6cd0-Multiply", + "left": "0x55ef964f6bc0-Expr", + "right": "0x55ef964df350-Expr", + "op": "MULTIPLY" + }, + { + "id": "0x55ef964f6bc0-Expr", + "variantKey": "Designator", + "Designator": "0x55ef964e1d40-Designator" + }, + { + "id": "0x55ef964e1d40-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ef964e1d50-DataRef" + }, + { + "id": "0x55ef964e1d50-DataRef", + "variantKey": "Name", + "Name": "0x55ef964e1d50-Name" + }, + { + "id": "0x55ef964e1d50-Name", + "source": "x" + }, + { + "id": "0x55ef964df350-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ef964df370-LiteralConstant" + }, + { + "id": "0x55ef964df370-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ef964df370-IntLiteralConstant" + }, + { + "id": "0x55ef964df370-IntLiteralConstant", + "CharBlock": "2" + }, + { + "id": "0x55ef964f67f0-Statement", + "statement": "0x55ef964f6800-EndFunctionStmt", + "source": "end function double_val" + }, + { + "id": "0x55ef964f6800-EndFunctionStmt", + "Name": "0x55ef964f6800-Name" + }, + { + "id": "0x55ef964f6800-Name", + "source": "double_val" + }, + { + "id": "0x55ef964ef160-Statement", + "statement": "0x55ef964ef170-EndProgramStmt", + "source": "end program POINTER_ASSIGN" + }, + { + "id": "0x55ef964ef170-EndProgramStmt", + "Name": "0x55ef964ef170-Name" + }, + { + "id": "0x55ef964ef170-Name", + "source": "POINTER_ASSIGN" + } + ], + "comments": [ + { + "text": " Targets", + "stmtId": "0x55ef964bf110-Statement", + "trailing": false + }, + { + "text": " Pointers", + "stmtId": "0x55ef964f5890-Statement", + "trailing": false + }, + { + "text": " Procedure Pointer", + "stmtId": "0x55ef964de598-Statement", + "trailing": false + }, + { + "text": " 1. Scalar pointer assignment", + "stmtId": "0x55ef964f4a50-Statement", + "trailing": false + }, + { + "text": " 2. Pointer-to-pointer assignment", + "stmtId": "0x55ef964dfa70-Statement", + "trailing": false + }, + { + "text": " 3. Whole array assignment", + "stmtId": "0x55ef964e0000-Statement", + "trailing": false + }, + { + "text": " 4. Array section / slice assignment", + "stmtId": "0x55ef964e0860-Statement", + "trailing": false + }, + { + "text": " 5. Lower bound remapping", + "stmtId": "0x55ef964e0f20-Statement", + "trailing": false + }, + { + "text": " 6. Full bounds remapping (same rank)", + "stmtId": "0x55ef964f54b0-Statement", + "trailing": false + }, + { + "text": " 7. Rank remapping (1D contiguous target to 2D pointer)", + "stmtId": "0x55ef964e2270-Statement", + "trailing": false + }, + { + "text": " 8. Procedure pointer assignment", + "stmtId": "0x55ef964e3390-Statement", + "trailing": false + }, + { + "text": " 9. Nullification pointer assignments", + "stmtId": "0x55ef964e34d0-Statement", + "trailing": false + } + ], + "enums": { + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "Fortran::common::ImportKind": [ + "Default", + "Only", + "None", + "All" + ], + "Fortran::common::OmpDependenceKind": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::common::OmpMemoryOrderType": [ + "Acq_Rel", + "Acquire", + "Relaxed", + "Release", + "Seq_Cst" + ], + "Fortran::common::OpenACCDeviceType": [ + "Star", + "Default", + "Nvidia", + "Radeon", + "Host", + "Multicore", + "None" + ], + "Fortran::parser::AccDataModifier::Modifier": [ + "ReadOnly", + "Zero" + ], + "Fortran::parser::AccessSpec::Kind": [ + "Public", + "Private" + ], + "Fortran::parser::BindEntity::Kind": [ + "Object", + "Common" + ], + "Fortran::parser::CompilerDirective::VectorLength::Kind": [ + "Auto", + "Fixed", + "Scalable" + ], + "Fortran::parser::ConnectSpec::CharExpr::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Encoding", + "Form", + "Pad", + "Position", + "Round", + "Sign", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::DefinedOperator::IntrinsicOperator": [ + "Power", + "Multiply", + "Divide", + "Add", + "Subtract", + "Concat", + "LT", + "LE", + "EQ", + "NE", + "GE", + "GT", + "NOT", + "AND", + "OR", + "EQV", + "NEQV" + ], + "Fortran::parser::ImplicitStmt::ImplicitNoneNameSpec": [ + "External", + "Type" + ], + "Fortran::parser::InquireSpec::CharVar::Kind": [ + "Access", + "Action", + "Asynchronous", + "Blank", + "Decimal", + "Delim", + "Direct", + "Encoding", + "Form", + "Formatted", + "Iomsg", + "Name", + "Pad", + "Position", + "Read", + "Readwrite", + "Round", + "Sequential", + "Sign", + "Stream", + "Status", + "Unformatted", + "Write", + "Carriagecontrol", + "Convert", + "Dispose" + ], + "Fortran::parser::InquireSpec::IntVar::Kind": [ + "Iostat", + "Nextrec", + "Number", + "Pos", + "Recl", + "Size" + ], + "Fortran::parser::InquireSpec::LogVar::Kind": [ + "Exist", + "Named", + "Opened", + "Pending" + ], + "Fortran::parser::IntentSpec::Intent": [ + "In", + "Out", + "InOut" + ], + "Fortran::parser::IoControlSpec::CharExpr::Kind": [ + "Advance", + "Blank", + "Decimal", + "Delim", + "Pad", + "Round", + "Sign" + ], + "Fortran::parser::ReductionOperator::Operator": [ + "Plus", + "Multiply", + "Max", + "Min", + "Iand", + "Ior", + "Ieor", + "And", + "Or", + "Eqv", + "Neqv" + ], + "Fortran::parser::OmpAccessGroup::Value": [ + "Cgroup" + ], + "Fortran::parser::OmpAdjustArgsClause::OmpAdjustOp::Value": [ + "Nothing", + "Need_Device_Ptr" + ], + "Fortran::parser::OmpAlwaysModifier::Value": [ + "Always" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpAttachModifier::Value": [ + "Always", + "Never", + "Auto" + ], + "Fortran::parser::OmpAutomapModifier::Value": [ + "Automap" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpCloseModifier::Value": [ + "Close" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default", + "Present" + ], + "Fortran::parser::OmpDeleteModifier::Value": [ + "Delete" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpDirectiveSpecification::Flag": [ + "DeprecatedSyntax", + "CrossesLabelDo" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpInteropType::Value": [ + "Target", + "Targetsync" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "Storage", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpObject::Invalid::Kind": [ + "BlankCommonBlock" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpPresentModifier::Value": [ + "Present" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpRefModifier::Value": [ + "Ref_Ptee", + "Ref_Ptr", + "Ref_Ptr_Ptee" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpSelfModifier::Value": [ + "Self" + ], + "Fortran::parser::OmpSeverityClause::SevLevel": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpThreadsetClause::ThreadsetPolicy": [ + "Omp_Pool", + "Omp_Team" + ], + "Fortran::parser::OmpTraitSelectorName::Value": [ + "Arch", + "Atomic_Default_Mem_Order", + "Condition", + "Device_Num", + "Extension", + "Isa", + "Kind", + "Requires", + "Simd", + "Uid", + "Vendor" + ], + "Fortran::parser::OmpTraitSetSelectorName::Value": [ + "Construct", + "Device", + "Implementation", + "Target_Device", + "User" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpxHoldModifier::Value": [ + "Ompx_Hold" + ], + "Fortran::parser::ProcedureStmt::Kind": [ + "ModuleProcedure", + "Procedure" + ], + "Fortran::parser::SavedEntity::Kind": [ + "Entity", + "Common" + ], + "Fortran::parser::StopStmt::Kind": [ + "Stop", + "ErrorStop" + ], + "Fortran::parser::UseStmt::ModuleNature": [ + "Intrinsic", + "Non_Intrinsic" + ] + } +} diff --git a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java index 56148643..c087bef6 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -13,7 +13,6 @@ import java.util.function.BiFunction; -import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.fail; public class FortranParserTest { @@ -639,6 +638,7 @@ void testLengthSelectorNative() { testNative("type/length_selector.f90"); } } + @Test void testIoControl() { testJson("io/io_control.json"); @@ -699,6 +699,18 @@ void testImplicitNative() { } } + @Test + void testPointerAssign() { + testJson("stmt/pointer_assign.json"); + } + + @Test + void testPointerAssignNative() { + if (SpecsPlatforms.isLinux()) { + testNative("stmt/pointer_assign.f90"); + } + } + @Test void testFujitsu0000_0000() { testJson("fujitsu/0000/0000_0000.json"); From c96c703c72746290a94646e3cdff281c449c37d8 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 24 Aug 2026 12:46:54 +0100 Subject: [PATCH 251/260] Extend initialization nodes --- .../specs/fortran/ast/FortranNodeFactory.java | 6 ++-- .../fortran/ast/nodes/decl/EntityDecl.java | 1 + .../nodes/decl/component/ComponentDecl.java | 2 +- .../decl/init/DataTargetInitialization.java | 22 +++++++++++++ .../decl/{ => init}/ExprInitialization.java | 2 +- .../nodes/decl/{ => init}/Initialization.java | 2 +- .../decl/{ => init}/ListInitialization.java | 3 +- .../nodes/decl/init/NameProcPointerInit.java | 25 +++++++++++++++ .../nodes/decl/init/NullInitialization.java | 22 +++++++++++++ .../nodes/decl/init/NullProcPointerInit.java | 22 +++++++++++++ .../ast/nodes/decl/init/ProcPointerInit.java | 12 +++++++ .../fortran/ast/nodes/expr/NullInit.java | 13 ++++++++ .../up/fe/specs/fortran/parser/FlangName.java | 4 +++ .../parser/processors/DeclProcessors.java | 31 ++++++++++++------- .../fortran/weaver/FortranJoinpoints.java | 4 +-- .../joinpoints/FExprInitialization.java | 2 +- .../weaver/joinpoints/FInitialization.java | 2 +- 17 files changed, 153 insertions(+), 22 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/init/DataTargetInitialization.java rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/{ => init}/ExprInitialization.java (91%) rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/{ => init}/Initialization.java (86%) rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/{ => init}/ListInitialization.java (86%) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/init/NameProcPointerInit.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/init/NullInitialization.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/init/NullProcPointerInit.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/init/ProcPointerInit.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/NullInit.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java index c9cb9405..bc426226 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java @@ -3,10 +3,10 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import org.suikasoft.jOptions.storedefinition.StoreDefinitions; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.decl.ExprInitialization; import pt.up.fe.specs.fortran.ast.nodes.decl.LabelDecl; -import pt.up.fe.specs.fortran.ast.nodes.decl.ListInitialization; import pt.up.fe.specs.fortran.ast.nodes.decl.NamedParameter; +import pt.up.fe.specs.fortran.ast.nodes.decl.init.ExprInitialization; +import pt.up.fe.specs.fortran.ast.nodes.decl.init.ListInitialization; import pt.up.fe.specs.fortran.ast.nodes.expr.*; import pt.up.fe.specs.fortran.ast.nodes.expr.enums.BinaryOperatorKind; import pt.up.fe.specs.fortran.ast.nodes.io.Format; @@ -24,8 +24,8 @@ import pt.up.fe.specs.fortran.ast.nodes.program.*; import pt.up.fe.specs.fortran.ast.nodes.program.construct.*; import pt.up.fe.specs.fortran.ast.nodes.program.unit.EndProgramStmt; -import pt.up.fe.specs.fortran.ast.nodes.program.unit.ProgramStmt; import pt.up.fe.specs.fortran.ast.nodes.program.unit.MainProgram; +import pt.up.fe.specs.fortran.ast.nodes.program.unit.ProgramStmt; import pt.up.fe.specs.fortran.ast.nodes.program.unit.ProgramUnit; import pt.up.fe.specs.fortran.ast.nodes.stmt.*; import pt.up.fe.specs.fortran.ast.nodes.stmt.implicit.IDEStmtImplicitAdapter; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/EntityDecl.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/EntityDecl.java index 1bab4d7d..8a4901b4 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/EntityDecl.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/EntityDecl.java @@ -4,6 +4,7 @@ import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.decl.init.Initialization; import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ArraySpec; import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DeclType; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/ComponentDecl.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/ComponentDecl.java index da57f531..a634074c 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/ComponentDecl.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/component/ComponentDecl.java @@ -4,7 +4,7 @@ import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.decl.Initialization; +import pt.up.fe.specs.fortran.ast.nodes.decl.init.Initialization; import pt.up.fe.specs.fortran.ast.nodes.specification.coshape.CoarraySpec; import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ComponentArraySpec; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.CharLenSelector; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/init/DataTargetInitialization.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/init/DataTargetInitialization.java new file mode 100644 index 00000000..d5391a82 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/init/DataTargetInitialization.java @@ -0,0 +1,22 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl.init; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.expr.Designator; + +import java.util.Collection; + +public class DataTargetInitialization extends Initialization { + public DataTargetInitialization(DataStore data, Collection children) { + super(data, children); + } + + public Designator getInitialDataTarget() { + return getChild(Designator.class, 0); + } + + @Override + public String getCode() { + return " => " + getInitialDataTarget().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/ExprInitialization.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/init/ExprInitialization.java similarity index 91% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/ExprInitialization.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/init/ExprInitialization.java index 2e36e646..dd3d80ce 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/ExprInitialization.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/init/ExprInitialization.java @@ -1,4 +1,4 @@ -package pt.up.fe.specs.fortran.ast.nodes.decl; +package pt.up.fe.specs.fortran.ast.nodes.decl.init; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/Initialization.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/init/Initialization.java similarity index 86% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/Initialization.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/init/Initialization.java index b7ec0db2..0747a22f 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/Initialization.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/init/Initialization.java @@ -1,4 +1,4 @@ -package pt.up.fe.specs.fortran.ast.nodes.decl; +package pt.up.fe.specs.fortran.ast.nodes.decl.init; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/ListInitialization.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/init/ListInitialization.java similarity index 86% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/ListInitialization.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/init/ListInitialization.java index 022ed80d..d109df89 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/ListInitialization.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/init/ListInitialization.java @@ -1,7 +1,8 @@ -package pt.up.fe.specs.fortran.ast.nodes.decl; +package pt.up.fe.specs.fortran.ast.nodes.decl.init; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.decl.DataStmtValue; import java.util.Collection; import java.util.List; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/init/NameProcPointerInit.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/init/NameProcPointerInit.java new file mode 100644 index 00000000..8c6e7a00 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/init/NameProcPointerInit.java @@ -0,0 +1,25 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl.init; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class NameProcPointerInit extends ProcPointerInit { + public static final DataKey NAME = KeyFactory.string("name"); + + public NameProcPointerInit(DataStore data, Collection children) { + super(data, children); + } + + public String getName() { + return get(NAME); + } + + @Override + public String getCode() { + return " => " + getName(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/init/NullInitialization.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/init/NullInitialization.java new file mode 100644 index 00000000..72c9b4ea --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/init/NullInitialization.java @@ -0,0 +1,22 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl.init; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.expr.NullInit; + +import java.util.Collection; + +public class NullInitialization extends Initialization { + public NullInitialization(DataStore data, Collection children) { + super(data, children); + } + + public NullInit getNullInit() { + return getChild(NullInit.class, 0); + } + + @Override + public String getCode() { + return " => " + getNullInit().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/init/NullProcPointerInit.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/init/NullProcPointerInit.java new file mode 100644 index 00000000..0989bdb7 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/init/NullProcPointerInit.java @@ -0,0 +1,22 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl.init; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.expr.NullInit; + +import java.util.Collection; + +public class NullProcPointerInit extends ProcPointerInit { + public NullProcPointerInit(DataStore data, Collection children) { + super(data, children); + } + + public NullInit getNullInit() { + return getChild(NullInit.class, 0); + } + + @Override + public String getCode() { + return " => " + getNullInit().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/init/ProcPointerInit.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/init/ProcPointerInit.java new file mode 100644 index 00000000..6df0a59a --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/init/ProcPointerInit.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl.init; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class ProcPointerInit extends FortranNode { + public ProcPointerInit(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/NullInit.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/NullInit.java new file mode 100644 index 00000000..c4378423 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/NullInit.java @@ -0,0 +1,13 @@ +package pt.up.fe.specs.fortran.ast.nodes.expr; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +/// Special case for the call "NULL()" +public class NullInit extends Call { + public NullInit(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 9b2d7321..667874b3 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -158,6 +158,10 @@ public enum FlangName implements StringProvider { ACCESS_ID, IMPORT_STMT, IMPORT_KIND, + POINTER_ASSIGNMENT_STMT, + BOUNDS, + BOUNDS_SPEC, + BOUNDS_REMAPPING, // Variables VARIABLE, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java index 77fd9fab..cfe74a3b 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java @@ -1,17 +1,26 @@ package pt.up.fe.specs.fortran.parser.processors; -import pt.up.fe.specs.fortran.ast.nodes.decl.*; +import pt.up.fe.specs.fortran.ast.nodes.decl.DataStmtValue; +import pt.up.fe.specs.fortran.ast.nodes.decl.EntityDecl; +import pt.up.fe.specs.fortran.ast.nodes.decl.NamedParameter; +import pt.up.fe.specs.fortran.ast.nodes.decl.StarParameter; import pt.up.fe.specs.fortran.ast.nodes.decl.component.ComponentDecl; import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.AccessComponentAttr; import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.CodimComponentAttr; import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.DimComponentAttr; import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.OtherComponentAttr; import pt.up.fe.specs.fortran.ast.nodes.decl.enums.ComponentAttrKind; +import pt.up.fe.specs.fortran.ast.nodes.decl.init.Initialization; +import pt.up.fe.specs.fortran.ast.nodes.expr.enums.BinaryOperatorKind; import pt.up.fe.specs.fortran.ast.nodes.specification.*; import pt.up.fe.specs.fortran.ast.nodes.specification.enums.AccessKind; import pt.up.fe.specs.fortran.ast.nodes.specification.enums.EmptyFunctionSpecKind; +import pt.up.fe.specs.fortran.ast.nodes.specification.enums.GenericSpecKind; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.DeclTypeFunctionSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.EmptyFunctionSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.genericspec.NameGenericSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.genericspec.OpGenericSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.genericspec.OtherGenericSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.interfaces.InterfaceBlock; import pt.up.fe.specs.fortran.ast.nodes.specification.interfaces.InterfaceFunction; import pt.up.fe.specs.fortran.ast.nodes.specification.interfaces.InterfaceSubroutine; @@ -23,11 +32,6 @@ import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.DeferredTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.ExprTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.StarTypeParamValue; -import pt.up.fe.specs.fortran.ast.nodes.expr.enums.BinaryOperatorKind; -import pt.up.fe.specs.fortran.ast.nodes.specification.enums.GenericSpecKind; -import pt.up.fe.specs.fortran.ast.nodes.specification.genericspec.NameGenericSpec; -import pt.up.fe.specs.fortran.ast.nodes.specification.genericspec.OpGenericSpec; -import pt.up.fe.specs.fortran.ast.nodes.specification.genericspec.OtherGenericSpec; import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; @@ -97,16 +101,19 @@ public void namedParameter(NamedParameter namedParameter) { namedParameter.set(NamedParameter.NAME, name); } - public void starParameter(StarParameter ignoredParameter) {} + public void starParameter(StarParameter ignoredParameter) { + } public void exprTypeParamValue(ExprTypeParamValue value) { var expr = getChild(value, FlangName.EXPR); value.addChild(expr); } - public void starTypeParamValue(StarTypeParamValue ignoredValue) {} + public void starTypeParamValue(StarTypeParamValue ignoredValue) { + } - public void deferredTypeParamValue(DeferredTypeParamValue ignoredValue) {} + public void deferredTypeParamValue(DeferredTypeParamValue ignoredValue) { + } public void namedOperator(NamedOperator namedOperator) { var operatorName = attributes().getString(namedOperator, "source", FlangName.NAME); @@ -172,7 +179,8 @@ public void emptyFunctionSpec(EmptyFunctionSpec functionSpec) { functionSpec.set(EmptyFunctionSpec.KIND, kind); } - public void abstractTypeAttr(AbstractTypeAttr ignoredAttr) {} + public void abstractTypeAttr(AbstractTypeAttr ignoredAttr) { + } public void accessTypeAttr(AccessTypeAttr accessTypeAttr) { var accessSpec = attributes().getString(accessTypeAttr, "value", FlangName.ACCESS_SPEC, FlangName.KIND); @@ -180,7 +188,8 @@ public void accessTypeAttr(AccessTypeAttr accessTypeAttr) { accessTypeAttr.set(AccessStmt.ACCESS_KIND, accessKind); } - public void bindTypeAttr(BindTypeAttr ignoredAttr) {} + public void bindTypeAttr(BindTypeAttr ignoredAttr) { + } public void extendsTypeAttr(ExtendsTypeAttr extendsTypeAttr) { var parentType = attributes().getString(extendsTypeAttr, "source", FlangName.EXTENDS, FlangName.NAME); diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranJoinpoints.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranJoinpoints.java index 8127600c..b1e09de1 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranJoinpoints.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranJoinpoints.java @@ -15,9 +15,9 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import pt.up.fe.specs.fortran.ast.nodes.decl.EntityDecl; -import pt.up.fe.specs.fortran.ast.nodes.decl.ExprInitialization; import pt.up.fe.specs.fortran.ast.nodes.decl.FortranDecl; -import pt.up.fe.specs.fortran.ast.nodes.decl.Initialization; +import pt.up.fe.specs.fortran.ast.nodes.decl.init.ExprInitialization; +import pt.up.fe.specs.fortran.ast.nodes.decl.init.Initialization; import pt.up.fe.specs.fortran.ast.nodes.expr.*; import pt.up.fe.specs.fortran.ast.nodes.loops.LoopControl; import pt.up.fe.specs.fortran.ast.nodes.loops.RangeLoopControl; diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExprInitialization.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExprInitialization.java index ae74463c..ce1923f5 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExprInitialization.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FExprInitialization.java @@ -1,7 +1,7 @@ package pt.up.fe.specs.fortran.weaver.joinpoints; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.decl.ExprInitialization; +import pt.up.fe.specs.fortran.ast.nodes.decl.init.ExprInitialization; import pt.up.fe.specs.fortran.weaver.FortranJoinpoints; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AExpr; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AExprInitialization; diff --git a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FInitialization.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FInitialization.java index 966e819b..47d98f0f 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FInitialization.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FInitialization.java @@ -1,7 +1,7 @@ package pt.up.fe.specs.fortran.weaver.joinpoints; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.decl.Initialization; +import pt.up.fe.specs.fortran.ast.nodes.decl.init.Initialization; import pt.up.fe.specs.fortran.weaver.abstracts.joinpoints.AInitialization; public class FInitialization extends AInitialization { From 42b03194185b775e857d11a9d6f24e206b3fcea2 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 24 Aug 2026 12:52:06 +0100 Subject: [PATCH 252/260] Add AST nodes for procedure interfaces --- .../nodes/decl/proc/NamedProcInterface.java | 25 +++++++++++++++++++ .../ast/nodes/decl/proc/ProcInterface.java | 12 +++++++++ .../nodes/decl/proc/TypeProcInterface.java | 22 ++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/NamedProcInterface.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/ProcInterface.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/TypeProcInterface.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/NamedProcInterface.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/NamedProcInterface.java new file mode 100644 index 00000000..6d83df9b --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/NamedProcInterface.java @@ -0,0 +1,25 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl.proc; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class NamedProcInterface extends ProcInterface { + public static final DataKey NAME = KeyFactory.string("name"); + + public NamedProcInterface(DataStore data, Collection children) { + super(data, children); + } + + public String getName() { + return get(NAME); + } + + @Override + public String getCode() { + return getName(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/ProcInterface.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/ProcInterface.java new file mode 100644 index 00000000..bb33d496 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/ProcInterface.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl.proc; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class ProcInterface extends FortranNode { + public ProcInterface(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/TypeProcInterface.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/TypeProcInterface.java new file mode 100644 index 00000000..5a6cc619 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/TypeProcInterface.java @@ -0,0 +1,22 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl.proc; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DeclType; + +import java.util.Collection; + +public class TypeProcInterface extends ProcInterface { + public TypeProcInterface(DataStore data, Collection children) { + super(data, children); + } + + public DeclType getDeclType() { + return getChild(DeclType.class, 0); + } + + @Override + public String getCode() { + return getDeclType().getCode(); + } +} From c05c05db2f1f1fbc28c3f4ef8964cf51c8d3bebf Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 24 Aug 2026 13:04:41 +0100 Subject: [PATCH 253/260] Add AST nodes for procedure attributes --- .../ast/nodes/decl/enums/ProcAttrKind.java | 8 ++++++ .../nodes/decl/proc/attr/AccessProcAttr.java | 26 ++++++++++++++++++ .../nodes/decl/proc/attr/IntentProcAttr.java | 27 +++++++++++++++++++ .../decl/proc/attr/LangBindProcAttr.java | 22 +++++++++++++++ .../nodes/decl/proc/attr/OtherProcStmt.java | 26 ++++++++++++++++++ .../ast/nodes/decl/proc/attr/ProcAttr.java | 12 +++++++++ .../{ => interfaces}/NamedProcInterface.java | 2 +- .../proc/{ => interfaces}/ProcInterface.java | 2 +- .../{ => interfaces}/TypeProcInterface.java | 2 +- 9 files changed, 124 insertions(+), 3 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/enums/ProcAttrKind.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/attr/AccessProcAttr.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/attr/IntentProcAttr.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/attr/LangBindProcAttr.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/attr/OtherProcStmt.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/attr/ProcAttr.java rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/{ => interfaces}/NamedProcInterface.java (90%) rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/{ => interfaces}/ProcInterface.java (83%) rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/{ => interfaces}/TypeProcInterface.java (89%) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/enums/ProcAttrKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/enums/ProcAttrKind.java new file mode 100644 index 00000000..0d6d2fb4 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/enums/ProcAttrKind.java @@ -0,0 +1,8 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl.enums; + +public enum ProcAttrKind { + OPTIONAL, + POINTER, + PROTECTED, + SAVE; +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/attr/AccessProcAttr.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/attr/AccessProcAttr.java new file mode 100644 index 00000000..5bee05da --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/attr/AccessProcAttr.java @@ -0,0 +1,26 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl.proc.attr; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.specification.enums.AccessKind; + +import java.util.Collection; + +public class AccessProcAttr extends ProcAttr { + public static final DataKey ACCESS_KIND = KeyFactory.enumeration("access_kind", AccessKind.class); + + public AccessProcAttr(DataStore data, Collection children) { + super(data, children); + } + + public AccessKind getAccessKind() { + return get(ACCESS_KIND); + } + + @Override + public String getCode() { + return encase(getAccessKind().name()); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/attr/IntentProcAttr.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/attr/IntentProcAttr.java new file mode 100644 index 00000000..6f1dad1e --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/attr/IntentProcAttr.java @@ -0,0 +1,27 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl.proc.attr; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.type.attributes.enums.IntentKind; + +import java.util.Collection; + +public class IntentProcAttr extends ProcAttr { + public static final DataKey INTENT_KIND = KeyFactory.enumeration("intentKind", IntentKind.class); + + public IntentProcAttr(DataStore data, Collection children) { + super(data, children); + } + + public IntentKind getIntentKind() { + return get(INTENT_KIND); + } + + @Override + public String getCode() { + return keyword(FortranKeyword.INTENT) + "(" + encase(getIntentKind().getString()) + ")"; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/attr/LangBindProcAttr.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/attr/LangBindProcAttr.java new file mode 100644 index 00000000..3cd77150 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/attr/LangBindProcAttr.java @@ -0,0 +1,22 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl.proc.attr; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.specification.LanguageBindingSpec; + +import java.util.Collection; + +public class LangBindProcAttr extends ProcAttr { + public LangBindProcAttr(DataStore data, Collection children) { + super(data, children); + } + + public LanguageBindingSpec getLanguageBindingSpec() { + return getChild(LanguageBindingSpec.class, 0); + } + + @Override + public String getCode() { + return getLanguageBindingSpec().getCode(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/attr/OtherProcStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/attr/OtherProcStmt.java new file mode 100644 index 00000000..e6abdd24 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/attr/OtherProcStmt.java @@ -0,0 +1,26 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl.proc.attr; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.decl.enums.ProcAttrKind; + +import java.util.Collection; + +public class OtherProcStmt extends ProcAttr { + public static final DataKey KIND = KeyFactory.enumeration("kind", ProcAttrKind.class); + + public OtherProcStmt(DataStore data, Collection children) { + super(data, children); + } + + public ProcAttrKind getKind() { + return get(KIND); + } + + @Override + public String getCode() { + return encase(getKind().name()); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/attr/ProcAttr.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/attr/ProcAttr.java new file mode 100644 index 00000000..b39ed4b1 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/attr/ProcAttr.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl.proc.attr; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class ProcAttr extends FortranNode { + public ProcAttr(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/NamedProcInterface.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/interfaces/NamedProcInterface.java similarity index 90% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/NamedProcInterface.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/interfaces/NamedProcInterface.java index 6d83df9b..e584dceb 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/NamedProcInterface.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/interfaces/NamedProcInterface.java @@ -1,4 +1,4 @@ -package pt.up.fe.specs.fortran.ast.nodes.decl.proc; +package pt.up.fe.specs.fortran.ast.nodes.decl.proc.interfaces; import org.suikasoft.jOptions.Datakey.DataKey; import org.suikasoft.jOptions.Datakey.KeyFactory; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/ProcInterface.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/interfaces/ProcInterface.java similarity index 83% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/ProcInterface.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/interfaces/ProcInterface.java index bb33d496..5f597d00 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/ProcInterface.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/interfaces/ProcInterface.java @@ -1,4 +1,4 @@ -package pt.up.fe.specs.fortran.ast.nodes.decl.proc; +package pt.up.fe.specs.fortran.ast.nodes.decl.proc.interfaces; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/TypeProcInterface.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/interfaces/TypeProcInterface.java similarity index 89% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/TypeProcInterface.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/interfaces/TypeProcInterface.java index 5a6cc619..f33f4eac 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/TypeProcInterface.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/interfaces/TypeProcInterface.java @@ -1,4 +1,4 @@ -package pt.up.fe.specs.fortran.ast.nodes.decl.proc; +package pt.up.fe.specs.fortran.ast.nodes.decl.proc.interfaces; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; From d5f5f46b2e0bad1a094a882ecefaef8e8b36cb0c Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 24 Aug 2026 13:17:55 +0100 Subject: [PATCH 254/260] Create AST nodes for procedure declaration statement --- .../fe/specs/fortran/ast/FortranKeyword.java | 1 + .../fortran/ast/nodes/decl/proc/ProcDecl.java | 34 ++++++++++++++ .../fortran/ast/nodes/stmt/ProcDeclStmt.java | 44 +++++++++++++++++++ 3 files changed, 79 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/ProcDecl.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ProcDeclStmt.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java index 9c64ad09..060fff35 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -85,6 +85,7 @@ public enum FortranKeyword { EXTENDS, ABSTRACT, INTERFACE, + PROCEDURE, OMP; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/ProcDecl.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/ProcDecl.java new file mode 100644 index 00000000..c9603641 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/ProcDecl.java @@ -0,0 +1,34 @@ +package pt.up.fe.specs.fortran.ast.nodes.decl.proc; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.decl.init.ProcPointerInit; + +import java.util.Collection; +import java.util.Optional; + +public class ProcDecl extends FortranNode { + public static final DataKey NAME = KeyFactory.string("name"); + + public ProcDecl(DataStore data, Collection children) { + super(data, children); + } + + public String getName() { + return get(NAME); + } + + public Optional getInit() { + return getChildTry(ProcPointerInit.class, 0); + } + + @Override + public String getCode() { + var name = getName(); + var initCode = getInit().map(ProcPointerInit::getCode).orElse(""); + + return name + initCode; + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ProcDeclStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ProcDeclStmt.java new file mode 100644 index 00000000..5fbc4eb5 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ProcDeclStmt.java @@ -0,0 +1,44 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.FortranKeyword; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.decl.proc.ProcDecl; +import pt.up.fe.specs.fortran.ast.nodes.decl.proc.attr.ProcAttr; +import pt.up.fe.specs.fortran.ast.nodes.decl.proc.interfaces.ProcInterface; + +import java.util.Collection; +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +public class ProcDeclStmt extends SpecStmt { + public ProcDeclStmt(DataStore data, Collection children) { + super(data, children); + } + + public Optional getProcInterface() { + return getChildTry(ProcInterface.class, 0); + } + + public List getProcAttrs() { + return getChildrenOf(ProcAttr.class); + } + + public List getProcDecls() { + return getChildrenOf(ProcDecl.class); + } + + @Override + public String getStmtCode() { + var interfaceCode = getProcInterface().map(ProcInterface::getCode).orElse(""); + var attrsCode = getProcAttrs().stream() + .map(attr -> ", " + attr.getCode()) + .collect(Collectors.joining()); + var declsCode = getProcDecls().stream() + .map(ProcDecl::getCode) + .collect(Collectors.joining(", ")); + + return keyword(FortranKeyword.PROCEDURE) + "(" + interfaceCode + ")" + attrsCode + " :: " + declsCode; + } +} From 9b434c266bfefed5ba2f59253ca80e53232a2b93 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 24 Aug 2026 13:36:33 +0100 Subject: [PATCH 255/260] Add mapping of new nodes to names --- ...{OtherProcStmt.java => OtherProcAttr.java} | 4 +- .../up/fe/specs/fortran/parser/FlangName.java | 6 ++ .../fe/specs/fortran/parser/FlangToClass.java | 81 ++++++++++++------- 3 files changed, 62 insertions(+), 29 deletions(-) rename FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/attr/{OtherProcStmt.java => OtherProcAttr.java} (86%) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/attr/OtherProcStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/attr/OtherProcAttr.java similarity index 86% rename from FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/attr/OtherProcStmt.java rename to FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/attr/OtherProcAttr.java index e6abdd24..654d625b 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/attr/OtherProcStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/proc/attr/OtherProcAttr.java @@ -8,10 +8,10 @@ import java.util.Collection; -public class OtherProcStmt extends ProcAttr { +public class OtherProcAttr extends ProcAttr { public static final DataKey KIND = KeyFactory.enumeration("kind", ProcAttrKind.class); - public OtherProcStmt(DataStore data, Collection children) { + public OtherProcAttr(DataStore data, Collection children) { super(data, children); } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 667874b3..83cd07f3 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -79,6 +79,11 @@ public enum FlangName implements StringProvider { SUBROUTINE, PROCEDURE_STMT, END_INTERFACE_STMT, + NULL_INIT, + PROC_POINTER_INIT, + PROC_INTERFACE, + PROC_DECL, + PROC_ATTR_SPEC, /// STMTs STATEMENT, @@ -162,6 +167,7 @@ public enum FlangName implements StringProvider { BOUNDS, BOUNDS_SPEC, BOUNDS_REMAPPING, + PROCEDURE_DECLARATION_STMT, // Variables VARIABLE, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index cfc5a42e..a1967bbd 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -8,33 +8,12 @@ import pt.up.fe.specs.fortran.ast.nodes.decl.*; import pt.up.fe.specs.fortran.ast.nodes.decl.component.ComponentDecl; import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.*; -import pt.up.fe.specs.fortran.ast.nodes.specification.coshape.DeferredCoshapeSpec; -import pt.up.fe.specs.fortran.ast.nodes.specification.coshape.ExplicitCoshapeSpec; -import pt.up.fe.specs.fortran.ast.nodes.specification.interfaces.InterfaceBlock; -import pt.up.fe.specs.fortran.ast.nodes.specification.interfaces.InterfaceFunction; -import pt.up.fe.specs.fortran.ast.nodes.specification.interfaces.InterfaceSubroutine; -import pt.up.fe.specs.fortran.ast.nodes.specification.shape.*; -import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.DeclTypeFunctionSpec; -import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.EmptyFunctionSpec; -import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.FunctionSpec; -import pt.up.fe.specs.fortran.ast.nodes.specification.type.*; -import pt.up.fe.specs.fortran.ast.nodes.stmt.implicit.DefaultImplicitStmt; -import pt.up.fe.specs.fortran.ast.nodes.stmt.implicit.ImplicitNoneStmt; -import pt.up.fe.specs.fortran.ast.nodes.stmt.implicit.ImplicitStmt; -import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.AbstractInterfaceStmt; -import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.DefaultInterfaceStmt; -import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.EndInterfaceStmt; -import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.InterfaceStmt; -import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.DataComponentDefStmt; -import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.DerivedTypeStmt; -import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.EndTypeStmt; -import pt.up.fe.specs.fortran.ast.nodes.type.attributes.*; -import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DeclType; -import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DerivedDeclType; -import pt.up.fe.specs.fortran.ast.nodes.type.decltype.IntrinsicDeclType; -import pt.up.fe.specs.fortran.ast.nodes.type.decltype.StarDeclType; -import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.*; -import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.*; +import pt.up.fe.specs.fortran.ast.nodes.decl.init.*; +import pt.up.fe.specs.fortran.ast.nodes.decl.proc.ProcDecl; +import pt.up.fe.specs.fortran.ast.nodes.decl.proc.attr.*; +import pt.up.fe.specs.fortran.ast.nodes.decl.proc.interfaces.NamedProcInterface; +import pt.up.fe.specs.fortran.ast.nodes.decl.proc.interfaces.ProcInterface; +import pt.up.fe.specs.fortran.ast.nodes.decl.proc.interfaces.TypeProcInterface; import pt.up.fe.specs.fortran.ast.nodes.expr.*; import pt.up.fe.specs.fortran.ast.nodes.io.*; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentLoopControl; @@ -53,16 +32,33 @@ import pt.up.fe.specs.fortran.ast.nodes.program.unit.*; import pt.up.fe.specs.fortran.ast.nodes.program.unit.Module; import pt.up.fe.specs.fortran.ast.nodes.specification.*; +import pt.up.fe.specs.fortran.ast.nodes.specification.coshape.DeferredCoshapeSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.coshape.ExplicitCoshapeSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.DeclTypeFunctionSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.EmptyFunctionSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.FunctionSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.genericspec.GenericSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.genericspec.NameGenericSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.genericspec.OpGenericSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.genericspec.OtherGenericSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.interfaces.InterfaceBlock; +import pt.up.fe.specs.fortran.ast.nodes.specification.interfaces.InterfaceFunction; +import pt.up.fe.specs.fortran.ast.nodes.specification.interfaces.InterfaceSubroutine; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.*; +import pt.up.fe.specs.fortran.ast.nodes.specification.type.*; import pt.up.fe.specs.fortran.ast.nodes.stmt.*; import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmtSet; import pt.up.fe.specs.fortran.ast.nodes.stmt.dimstmt.DimensionDecl; import pt.up.fe.specs.fortran.ast.nodes.stmt.dimstmt.DimensionStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.ifstmt.*; +import pt.up.fe.specs.fortran.ast.nodes.stmt.implicit.DefaultImplicitStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.implicit.ImplicitNoneStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.implicit.ImplicitStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.AbstractInterfaceStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.DefaultInterfaceStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.EndInterfaceStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.InterfaceStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.EndDoStmt; @@ -70,8 +66,18 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.CaseConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.EndSelectStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.SelectCaseStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.DataComponentDefStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.DerivedTypeStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.EndTypeStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.*; import pt.up.fe.specs.fortran.ast.nodes.type.*; +import pt.up.fe.specs.fortran.ast.nodes.type.attributes.*; +import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DeclType; +import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DerivedDeclType; +import pt.up.fe.specs.fortran.ast.nodes.type.decltype.IntrinsicDeclType; +import pt.up.fe.specs.fortran.ast.nodes.type.decltype.StarDeclType; +import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.*; +import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.*; import pt.up.fe.specs.fortran.ast.nodes.utils.NameValue; import java.util.HashMap; @@ -137,6 +143,26 @@ public class FlangToClass { NAME_TO_MAPPER.put(FlangName.INTERFACE_BLOCK, ClassMapper.always(InterfaceBlock.class)); NAME_TO_MAPPER.put(FlangName.FUNCTION, ClassMapper.always(InterfaceFunction.class)); NAME_TO_MAPPER.put(FlangName.SUBROUTINE, ClassMapper.always(InterfaceSubroutine.class)); + NAME_TO_MAPPER.put(FlangName.INITIALIZATION, ClassMapper.caseFor(Initialization.class) + .map(FlangName.EXPR, ExprInitialization.class) + .map(FlangName.NULL_INIT, NullInitialization.class) + .map(FlangName.DESIGNATOR, DataTargetInitialization.class) + .map(FlangName.DATA_STMT_VALUE, ListInitialization.class)); + NAME_TO_MAPPER.put(FlangName.PROC_POINTER_INIT, ClassMapper.caseFor(ProcPointerInit.class) + .map(FlangName.NAME, NameProcPointerInit.class) + .map(FlangName.NULL_INIT, NullProcPointerInit.class)); + NAME_TO_MAPPER.put(FlangName.PROC_INTERFACE, ClassMapper.caseFor(ProcInterface.class) + .map(FlangName.NAME, NamedProcInterface.class) + .map(FlangName.DECLARATION_TYPE_SPEC, TypeProcInterface.class)); + NAME_TO_MAPPER.put(FlangName.PROC_ATTR_SPEC, ClassMapper.caseFor(ProcAttr.class) + .map(FlangName.ACCESS_SPEC, AccessProcAttr.class) + .map(FlangName.LANGUAGE_BINDING_SPEC, LangBindProcAttr.class) + .map(FlangName.INTENT_SPEC, IntentProcAttr.class) + .map(FlangName.OPTIONAL, OtherProcAttr.class) + .map(FlangName.POINTER, OtherProcAttr.class) + .map(FlangName.PROTECTED, OtherProcAttr.class) + .map(FlangName.SAVE, OtherProcAttr.class)); + NAME_TO_MAPPER.put(FlangName.PROC_DECL, ClassMapper.always(ProcDecl.class)); /// STMTs NAME_TO_MAPPER.put(FlangName.PRINT_STMT, ClassMapper.always(PrintStmt.class)); @@ -216,6 +242,7 @@ public class FlangToClass { .map(FlangName.GENERIC_SPEC, DefaultInterfaceStmt.class) .map(FlangName.ABSTRACT, AbstractInterfaceStmt.class)); NAME_TO_MAPPER.put(FlangName.END_INTERFACE_STMT, ClassMapper.always(EndInterfaceStmt.class)); + NAME_TO_MAPPER.put(FlangName.PROCEDURE_DECLARATION_STMT, ClassMapper.always(ProcDeclStmt.class)); /// Variables //NAME_TO_CLASS.put(FlangName.DATA_REF, DataRef.class); // TODO(Process-ing): Improve this From 76a79600e9ebb0e42faf3fab1ec6d69fe0e61c16 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 24 Aug 2026 13:55:47 +0100 Subject: [PATCH 256/260] Improve call node structure --- .../fe/specs/fortran/ast/nodes/expr/Call.java | 5 ++-- .../specs/fortran/ast/nodes/expr/DataRef.java | 1 + .../ast/nodes/expr/NamedProcDesignator.java | 25 +++++++++++++++++++ .../ast/nodes/expr/ProcDesignator.java | 12 +++++++++ 4 files changed, 40 insertions(+), 3 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/NamedProcDesignator.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/ProcDesignator.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/Call.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/Call.java index a53ae949..891ac4bd 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/Call.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/Call.java @@ -8,13 +8,12 @@ import java.util.stream.Collectors; public class Call extends Expr { - public Call(DataStore data, Collection children) { super(data, children); } - public DataRef getCallee() { - return getChild(DataRef.class, 0); + public ProcDesignator getCallee() { + return getChild(ProcDesignator.class, 0); } public List getArgs() { diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/DataRef.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/DataRef.java index 64393462..19ca2122 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/DataRef.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/DataRef.java @@ -9,6 +9,7 @@ import java.util.Collection; import java.util.Optional; +// TODO(Process-ing): Improve node hierarchy public class DataRef extends Designator { // DATAKEYS BEGIN diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/NamedProcDesignator.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/NamedProcDesignator.java new file mode 100644 index 00000000..3aa8c515 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/NamedProcDesignator.java @@ -0,0 +1,25 @@ +package pt.up.fe.specs.fortran.ast.nodes.expr; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public class NamedProcDesignator extends ProcDesignator { + public static final DataKey NAME = KeyFactory.string("name"); + + public NamedProcDesignator(DataStore data, Collection children) { + super(data, children); + } + + public String getName() { + return get(NAME); + } + + @Override + public String getCode() { + return getName(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/ProcDesignator.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/ProcDesignator.java new file mode 100644 index 00000000..997b0b4a --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/ProcDesignator.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.expr; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class ProcDesignator extends FortranNode { + public ProcDesignator(DataStore data, Collection children) { + super(data, children); + } +} From 84e6555dbe835a0f37d5056d66117e5f6948d361 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 24 Aug 2026 14:06:55 +0100 Subject: [PATCH 257/260] Fix processing with new call structure --- .../specs/fortran/ast/FortranNodeFactory.java | 7 ++ .../up/fe/specs/fortran/parser/FlangName.java | 2 +- .../fe/specs/fortran/parser/FlangToClass.java | 3 + .../parser/processors/DeclProcessors.java | 44 ++++++------ .../parser/processors/ExprProcessors.java | 10 +++ .../fortran/parser/processors/Nodes.java | 67 +++++++++++-------- 6 files changed, 81 insertions(+), 52 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java index bc426226..89cc206d 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java @@ -433,4 +433,11 @@ public IDEStmtExecAdapter ideStmtExecAdapter(IDEStmt ideStmt) { public DirectiveExecAdapter directiveExecAdapter(CompilerDirective directive) { return newNode(DirectiveExecAdapter.class, List.of(directive)); } + + public NamedProcDesignator namedProcDesignator(String name) { + var data = newDataStore(NamedProcDesignator.class); + data.set(NamedProcDesignator.NAME, name); + + return new NamedProcDesignator(data, List.of()); + } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 83cd07f3..f649ab1a 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -79,7 +79,6 @@ public enum FlangName implements StringProvider { SUBROUTINE, PROCEDURE_STMT, END_INTERFACE_STMT, - NULL_INIT, PROC_POINTER_INIT, PROC_INTERFACE, PROC_DECL, @@ -217,6 +216,7 @@ public enum FlangName implements StringProvider { COMPLEX_LITERAL_CONSTANT, SUBSTRING, SUBSTRING_RANGE, + NULL_INIT, // ARRAYs ARRAY_CONSTRUCTOR, diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index a1967bbd..7727fca3 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -295,6 +295,9 @@ public class FlangToClass { .map(FlangName.SIGNED_REAL_LITERAL_CONSTANT, RealComplexPart.class) .map(FlangName.NAMED_CONSTANT, NamedComplexPart.class)); NAME_TO_MAPPER.put(FlangName.SUBSTRING, ClassMapper.always(Substring.class)); + NAME_TO_MAPPER.put(FlangName.NULL_INIT, ClassMapper.always(NullInit.class)); + NAME_TO_MAPPER.put(FlangName.PROCEDURE_DESIGNATOR, ClassMapper.caseFor(ProcDesignator.class) + .map(FlangName.NAME, NamedProcDesignator.class)); /// TYPEs NAME_TO_MAPPER.put(FlangName.INTEGER_TYPE_SPEC, ClassMapper.always(IntegerType.class)); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java index cfe74a3b..7412d6b7 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java @@ -10,7 +10,10 @@ import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.DimComponentAttr; import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.OtherComponentAttr; import pt.up.fe.specs.fortran.ast.nodes.decl.enums.ComponentAttrKind; -import pt.up.fe.specs.fortran.ast.nodes.decl.init.Initialization; +import pt.up.fe.specs.fortran.ast.nodes.decl.init.DataTargetInitialization; +import pt.up.fe.specs.fortran.ast.nodes.decl.init.ExprInitialization; +import pt.up.fe.specs.fortran.ast.nodes.decl.init.ListInitialization; +import pt.up.fe.specs.fortran.ast.nodes.decl.init.NullInitialization; import pt.up.fe.specs.fortran.ast.nodes.expr.enums.BinaryOperatorKind; import pt.up.fe.specs.fortran.ast.nodes.specification.*; import pt.up.fe.specs.fortran.ast.nodes.specification.enums.AccessKind; @@ -54,36 +57,29 @@ public void entityDecl(EntityDecl entityDecl) { } if (attributes(entityDecl).has(FlangName.INITIALIZATION)) { - var initId = attributes(entityDecl).getString(FlangName.INITIALIZATION); - var init = buildInitialization(initId); + var init = getChild(entityDecl, FlangName.INITIALIZATION); entityDecl.addChild(init); } } - public Initialization buildInitialization(String id) { - var attrs = attributes().getAttrs(id); - var variantKey = attrs.getVariantKey(); - - if (variantKey.equals(FlangName.DATA_STMT_VALUE.getString())) { - var dataStmtValueIds = attrs.getStringList(FlangName.DATA_STMT_VALUE); - var dataStmtValues = dataStmtValueIds.stream() - .map(this::getNode) - .toList(); - - var init = factory().listInitialization(); - init.addChildren(dataStmtValues); - - return init; - } + public void exprInitialization(ExprInitialization exprInitialization) { + var expr = getChild(exprInitialization, FlangName.EXPR); + exprInitialization.addChild(expr); + } - // Otherwise, we assume it's an ExprInitialization - var childId = attrs.getString(variantKey); - var initExpr = getChild(childId); + public void nullInitialization(NullInitialization nullInitialization) { + var nullInit = getChild(nullInitialization, FlangName.NULL_INIT); + nullInitialization.addChild(nullInit); + } - var init = factory().exprInitialization(); - init.addChild(initExpr); + public void dataTargetInitialization(DataTargetInitialization dataTargetInitialization) { + var designator = getChild(dataTargetInitialization, FlangName.DESIGNATOR); + dataTargetInitialization.addChild(designator); + } - return init; + public void listInitialization(ListInitialization listInitialization) { + var dataStmtValues = getChildren(listInitialization, FlangName.DATA_STMT_VALUE); + listInitialization.addChildren(dataStmtValues); } public void dataStmtValue(DataStmtValue dataStmtValue) { diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java index 7f7b9636..cd8f0935 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java @@ -238,4 +238,14 @@ public void substring(Substring substring) { substring.setOptional(Substring.UPPER_IDX, upper.indexOfSelf()); }); } + + public void nullInit(NullInit nullInit) { + var nullRef = factory().namedProcDesignator("null"); + nullInit.addChild(nullRef); + } + + public void namedProcDesignator(NamedProcDesignator namedProcDesignator) { + var name = attributes().getString(namedProcDesignator, "source", FlangName.NAME); + namedProcDesignator.set(NamedProcDesignator.NAME, name); + } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 024b6fe8..0c25d64b 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -10,32 +10,10 @@ import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.CodimComponentAttr; import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.DimComponentAttr; import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.OtherComponentAttr; -import pt.up.fe.specs.fortran.ast.nodes.specification.interfaces.InterfaceBlock; -import pt.up.fe.specs.fortran.ast.nodes.specification.interfaces.InterfaceFunction; -import pt.up.fe.specs.fortran.ast.nodes.specification.interfaces.InterfaceSubroutine; -import pt.up.fe.specs.fortran.ast.nodes.specification.shape.*; -import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.DeclTypeFunctionSpec; -import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.EmptyFunctionSpec; -import pt.up.fe.specs.fortran.ast.nodes.specification.type.AbstractTypeAttr; -import pt.up.fe.specs.fortran.ast.nodes.specification.type.AccessTypeAttr; -import pt.up.fe.specs.fortran.ast.nodes.specification.type.BindTypeAttr; -import pt.up.fe.specs.fortran.ast.nodes.specification.type.ExtendsTypeAttr; -import pt.up.fe.specs.fortran.ast.nodes.stmt.implicit.DefaultImplicitStmt; -import pt.up.fe.specs.fortran.ast.nodes.stmt.implicit.ImplicitNoneStmt; -import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.AbstractInterfaceStmt; -import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.DefaultInterfaceStmt; -import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.EndInterfaceStmt; -import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.DataComponentDefStmt; -import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.DerivedTypeStmt; -import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.EndTypeStmt; -import pt.up.fe.specs.fortran.ast.nodes.type.attributes.*; -import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DerivedDeclType; -import pt.up.fe.specs.fortran.ast.nodes.type.decltype.IntrinsicDeclType; -import pt.up.fe.specs.fortran.ast.nodes.type.decltype.StarDeclType; -import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ParamCharLenSelector; -import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.DeferredTypeParamValue; -import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.ExprTypeParamValue; -import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.StarTypeParamValue; +import pt.up.fe.specs.fortran.ast.nodes.decl.init.DataTargetInitialization; +import pt.up.fe.specs.fortran.ast.nodes.decl.init.ExprInitialization; +import pt.up.fe.specs.fortran.ast.nodes.decl.init.ListInitialization; +import pt.up.fe.specs.fortran.ast.nodes.decl.init.NullInitialization; import pt.up.fe.specs.fortran.ast.nodes.expr.*; import pt.up.fe.specs.fortran.ast.nodes.io.*; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentLoopControl; @@ -46,20 +24,38 @@ import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpDataSharingClause; import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpNowaitClause; import pt.up.fe.specs.fortran.ast.nodes.omp.clause.OmpReductionClause; -import pt.up.fe.specs.fortran.ast.nodes.program.*; +import pt.up.fe.specs.fortran.ast.nodes.program.ExecBlock; +import pt.up.fe.specs.fortran.ast.nodes.program.FortranFile; +import pt.up.fe.specs.fortran.ast.nodes.program.InternalSubprogramPart; +import pt.up.fe.specs.fortran.ast.nodes.program.Specification; import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.*; import pt.up.fe.specs.fortran.ast.nodes.program.unit.*; import pt.up.fe.specs.fortran.ast.nodes.program.unit.Module; import pt.up.fe.specs.fortran.ast.nodes.specification.*; +import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.DeclTypeFunctionSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.funcspec.EmptyFunctionSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.genericspec.NameGenericSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.genericspec.OpGenericSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.genericspec.OtherGenericSpec; +import pt.up.fe.specs.fortran.ast.nodes.specification.interfaces.InterfaceBlock; +import pt.up.fe.specs.fortran.ast.nodes.specification.interfaces.InterfaceFunction; +import pt.up.fe.specs.fortran.ast.nodes.specification.interfaces.InterfaceSubroutine; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.*; +import pt.up.fe.specs.fortran.ast.nodes.specification.type.AbstractTypeAttr; +import pt.up.fe.specs.fortran.ast.nodes.specification.type.AccessTypeAttr; +import pt.up.fe.specs.fortran.ast.nodes.specification.type.BindTypeAttr; +import pt.up.fe.specs.fortran.ast.nodes.specification.type.ExtendsTypeAttr; import pt.up.fe.specs.fortran.ast.nodes.stmt.*; import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmtSet; import pt.up.fe.specs.fortran.ast.nodes.stmt.dimstmt.DimensionDecl; import pt.up.fe.specs.fortran.ast.nodes.stmt.dimstmt.DimensionStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.ifstmt.*; +import pt.up.fe.specs.fortran.ast.nodes.stmt.implicit.DefaultImplicitStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.implicit.ImplicitNoneStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.AbstractInterfaceStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.DefaultInterfaceStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.interfaces.EndInterfaceStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.EndDoStmt; @@ -67,14 +63,25 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.CaseConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.EndSelectStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.SelectCaseStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.DataComponentDefStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.DerivedTypeStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.EndTypeStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.NamesRename; import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.UseName; import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.UseOnlyStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.usestmt.UseRenameStmt; import pt.up.fe.specs.fortran.ast.nodes.type.*; +import pt.up.fe.specs.fortran.ast.nodes.type.attributes.*; +import pt.up.fe.specs.fortran.ast.nodes.type.decltype.DerivedDeclType; +import pt.up.fe.specs.fortran.ast.nodes.type.decltype.IntrinsicDeclType; +import pt.up.fe.specs.fortran.ast.nodes.type.decltype.StarDeclType; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ConstLenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.KindParamLenSelector; +import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ParamCharLenSelector; import pt.up.fe.specs.fortran.ast.nodes.type.lenselector.ParamLenSelector; +import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.DeferredTypeParamValue; +import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.ExprTypeParamValue; +import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.StarTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.TypeParam; import pt.up.fe.specs.fortran.ast.nodes.utils.IoUnit; import pt.up.fe.specs.fortran.ast.nodes.utils.NameValue; @@ -111,6 +118,10 @@ public Nodes(FortranJsonResult data) { var d = new DeclProcessors(data); processors.put(EntityDecl.class, d::entityDecl); + processors.put(ExprInitialization.class, d::exprInitialization); + processors.put(NullInitialization.class, d::nullInitialization); + processors.put(DataTargetInitialization.class, d::dataTargetInitialization); + processors.put(ListInitialization.class, d::listInitialization); processors.put(DataStmtValue.class, d::dataStmtValue); processors.put(NamedParameter.class, d::namedParameter); processors.put(StarParameter.class, d::starParameter); @@ -235,6 +246,8 @@ public Nodes(FortranJsonResult data) { processors.put(NamedComplexPart.class, e::namedComplexPart); processors.put(ComplexLiteral.class, e::complexLiteral); processors.put(Substring.class, e::substring); + processors.put(NullInit.class, e::nullInit); + processors.put(NamedProcDesignator.class, e::namedProcDesignator); var t = new TypeProcessors(data); processors.put(IntegerType.class, t::integerType); From 6fe8297bfec9a5b3a62e043cf0d816261ef89b25 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 24 Aug 2026 16:10:42 +0100 Subject: [PATCH 258/260] Add processors for procedure declaration statement --- .../parser/processors/DeclProcessors.java | 66 +++++++++++++++++-- .../fortran/parser/processors/Nodes.java | 22 +++++-- .../parser/processors/StmtProcessors.java | 20 +++++- 3 files changed, 98 insertions(+), 10 deletions(-) diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java index 7412d6b7..56fcb1e5 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/DeclProcessors.java @@ -10,10 +10,15 @@ import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.DimComponentAttr; import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.OtherComponentAttr; import pt.up.fe.specs.fortran.ast.nodes.decl.enums.ComponentAttrKind; -import pt.up.fe.specs.fortran.ast.nodes.decl.init.DataTargetInitialization; -import pt.up.fe.specs.fortran.ast.nodes.decl.init.ExprInitialization; -import pt.up.fe.specs.fortran.ast.nodes.decl.init.ListInitialization; -import pt.up.fe.specs.fortran.ast.nodes.decl.init.NullInitialization; +import pt.up.fe.specs.fortran.ast.nodes.decl.enums.ProcAttrKind; +import pt.up.fe.specs.fortran.ast.nodes.decl.init.*; +import pt.up.fe.specs.fortran.ast.nodes.decl.proc.ProcDecl; +import pt.up.fe.specs.fortran.ast.nodes.decl.proc.attr.AccessProcAttr; +import pt.up.fe.specs.fortran.ast.nodes.decl.proc.attr.IntentProcAttr; +import pt.up.fe.specs.fortran.ast.nodes.decl.proc.attr.LangBindProcAttr; +import pt.up.fe.specs.fortran.ast.nodes.decl.proc.attr.OtherProcAttr; +import pt.up.fe.specs.fortran.ast.nodes.decl.proc.interfaces.NamedProcInterface; +import pt.up.fe.specs.fortran.ast.nodes.decl.proc.interfaces.TypeProcInterface; import pt.up.fe.specs.fortran.ast.nodes.expr.enums.BinaryOperatorKind; import pt.up.fe.specs.fortran.ast.nodes.specification.*; import pt.up.fe.specs.fortran.ast.nodes.specification.enums.AccessKind; @@ -32,6 +37,7 @@ import pt.up.fe.specs.fortran.ast.nodes.specification.type.BindTypeAttr; import pt.up.fe.specs.fortran.ast.nodes.specification.type.ExtendsTypeAttr; import pt.up.fe.specs.fortran.ast.nodes.stmt.AccessStmt; +import pt.up.fe.specs.fortran.ast.nodes.type.attributes.enums.IntentKind; import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.DeferredTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.ExprTypeParamValue; import pt.up.fe.specs.fortran.ast.nodes.type.typeparam.StarTypeParamValue; @@ -283,4 +289,56 @@ public void interfaceSubroutine(InterfaceSubroutine interfaceSubroutine) { var endSubroutineStmt = getStmtChild(interfaceSubroutine, FlangName.END_SUBROUTINE_STMT); interfaceSubroutine.addChild(endSubroutineStmt); } + + public void nameProcPointerInit(NameProcPointerInit nameProcPointerInit) { + var name = attributes().getString(nameProcPointerInit, "source", FlangName.NAME); + nameProcPointerInit.set(NameProcPointerInit.NAME, name); + } + + public void nullProcPointerInit(NullProcPointerInit nullProcPointerInit) { + var nullInit = getChild(nullProcPointerInit, FlangName.NULL_INIT); + nullProcPointerInit.addChild(nullInit); + } + + public void namedProcInterface(NamedProcInterface namedProcInterface) { + var name = attributes().getString(namedProcInterface, "source", FlangName.NAME); + namedProcInterface.set(NamedProcInterface.NAME, name); + } + + public void typeProcInterface(TypeProcInterface typeProcInterface) { + var declType = getChild(typeProcInterface, FlangName.DECLARATION_TYPE_SPEC); + typeProcInterface.addChild(declType); + } + + public void accessProcAttr(AccessProcAttr accessProcAttr) { + var accessKindSrc = attributes().getString(accessProcAttr, "value", FlangName.ACCESS_SPEC, FlangName.KIND); + var accessKind = AccessKind.valueOf(accessKindSrc.toUpperCase()); + accessProcAttr.set(AccessProcAttr.ACCESS_KIND, accessKind); + } + + public void langBindProcAttr(LangBindProcAttr langBindProcAttr) { + var languageBindingSpec = getChild(langBindProcAttr, FlangName.LANGUAGE_BINDING_SPEC); + langBindProcAttr.addChild(languageBindingSpec); + } + + public void intentProcAttr(IntentProcAttr intentProcAttr) { + var intentKindSrc = attributes().getString(intentProcAttr, "intent", FlangName.INTENT_SPEC); + var intentKind = IntentKind.convertTry(intentKindSrc) + .orElseThrow(() -> new RuntimeException("Invalid intent kind: " + intentKindSrc)); + intentProcAttr.set(IntentProcAttr.INTENT_KIND, intentKind); + } + + public void otherProcAttr(OtherProcAttr otherProcAttr) { + var variantKey = attributes(otherProcAttr).getVariantKey(); + var kind = ProcAttrKind.valueOf(variantKey.toUpperCase()); + otherProcAttr.set(OtherProcAttr.KIND, kind); + } + + public void procDecl(ProcDecl procDecl) { + var name = attributes().getString(procDecl, "source", FlangName.NAME); + procDecl.set(ProcDecl.NAME, name); + + var init = getChildOptional(procDecl, FlangName.PROC_POINTER_INIT); + init.ifPresent(procDecl::addChild); + } } diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 0c25d64b..74b2cdc9 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -10,10 +10,14 @@ import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.CodimComponentAttr; import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.DimComponentAttr; import pt.up.fe.specs.fortran.ast.nodes.decl.component.attr.OtherComponentAttr; -import pt.up.fe.specs.fortran.ast.nodes.decl.init.DataTargetInitialization; -import pt.up.fe.specs.fortran.ast.nodes.decl.init.ExprInitialization; -import pt.up.fe.specs.fortran.ast.nodes.decl.init.ListInitialization; -import pt.up.fe.specs.fortran.ast.nodes.decl.init.NullInitialization; +import pt.up.fe.specs.fortran.ast.nodes.decl.init.*; +import pt.up.fe.specs.fortran.ast.nodes.decl.proc.ProcDecl; +import pt.up.fe.specs.fortran.ast.nodes.decl.proc.attr.AccessProcAttr; +import pt.up.fe.specs.fortran.ast.nodes.decl.proc.attr.IntentProcAttr; +import pt.up.fe.specs.fortran.ast.nodes.decl.proc.attr.LangBindProcAttr; +import pt.up.fe.specs.fortran.ast.nodes.decl.proc.attr.OtherProcAttr; +import pt.up.fe.specs.fortran.ast.nodes.decl.proc.interfaces.NamedProcInterface; +import pt.up.fe.specs.fortran.ast.nodes.decl.proc.interfaces.TypeProcInterface; import pt.up.fe.specs.fortran.ast.nodes.expr.*; import pt.up.fe.specs.fortran.ast.nodes.io.*; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentLoopControl; @@ -150,6 +154,15 @@ public Nodes(FortranJsonResult data) { processors.put(InterfaceBlock.class, d::interfaceBlock); processors.put(InterfaceFunction.class, d::interfaceFunction); processors.put(InterfaceSubroutine.class, d::interfaceSubroutine); + processors.put(NameProcPointerInit.class, d::nameProcPointerInit); + processors.put(NullProcPointerInit.class, d::nullProcPointerInit); + processors.put(NamedProcInterface.class, d::namedProcInterface); + processors.put(TypeProcInterface.class, d::typeProcInterface); + processors.put(AccessProcAttr.class, d::accessProcAttr); + processors.put(LangBindProcAttr.class, d::langBindProcAttr); + processors.put(IntentProcAttr.class, d::intentProcAttr); + processors.put(OtherProcAttr.class, d::otherProcAttr); + processors.put(ProcDecl.class, d::procDecl); var v = new VariableProcessor(data); processors.put(DataRef.class, v::dataRef); @@ -223,6 +236,7 @@ public Nodes(FortranJsonResult data) { processors.put(DefaultInterfaceStmt.class, s::defaultInterfaceStmt); processors.put(AbstractInterfaceStmt.class, s::abstractInterfaceStmt); processors.put(EndInterfaceStmt.class, s::endInterfaceStmt); + processors.put(ProcDeclStmt.class, s::procDeclStmt); var e = new ExprProcessors(data); processors.put(StringLiteral.class, e::stringLiteral); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 7166e751..5c11b582 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -4,15 +4,18 @@ import pt.up.fe.specs.fortran.ast.nodes.decl.NamedParameter; import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; import pt.up.fe.specs.fortran.ast.nodes.loops.WhileLoopControl; -import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.*; +import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.EndFunctionStmt; +import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.EndSubroutineStmt; +import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.FunctionStmt; +import pt.up.fe.specs.fortran.ast.nodes.program.subprogram.SubroutineStmt; import pt.up.fe.specs.fortran.ast.nodes.program.unit.EndModuleStmt; import pt.up.fe.specs.fortran.ast.nodes.program.unit.EndProgramStmt; import pt.up.fe.specs.fortran.ast.nodes.program.unit.ModuleStmt; import pt.up.fe.specs.fortran.ast.nodes.program.unit.ProgramStmt; -import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ArraySpec; import pt.up.fe.specs.fortran.ast.nodes.specification.LanguageBindingSpec; import pt.up.fe.specs.fortran.ast.nodes.specification.NamedConstantDef; import pt.up.fe.specs.fortran.ast.nodes.specification.enums.AccessKind; +import pt.up.fe.specs.fortran.ast.nodes.specification.shape.ArraySpec; import pt.up.fe.specs.fortran.ast.nodes.stmt.*; import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmtObject; @@ -850,4 +853,17 @@ public void abstractInterfaceStmt(AbstractInterfaceStmt abstractInterfaceStmt) { public void endInterfaceStmt(EndInterfaceStmt endInterfaceStmt) { stmt(endInterfaceStmt); } + + public void procDeclStmt(ProcDeclStmt procDeclStmt) { + stmt(procDeclStmt); + + var procInterface = getChildOptional(procDeclStmt, FlangName.PROC_INTERFACE); + procInterface.ifPresent(procDeclStmt::addChild); + + var procAttrs = getChildren(procDeclStmt, FlangName.PROC_ATTR_SPEC); + procDeclStmt.addChildren(procAttrs); + + var procDecls = getChildren(procDeclStmt, FlangName.PROC_DECL); + procDeclStmt.addChildren(procDecls); + } } From 1210f28d6b7c133a7cd821d122d4f94ef69938c1 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 24 Aug 2026 16:27:55 +0100 Subject: [PATCH 259/260] Add processors for pointer assignment statement --- .../fortran/parser/stmt/pointer_assign.json | 3239 +++++++++-------- .../fe/specs/fortran/parser/FlangToClass.java | 8 + .../fortran/parser/processors/Nodes.java | 6 + .../parser/processors/StmtProcessors.java | 37 + 4 files changed, 1672 insertions(+), 1618 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/stmt/pointer_assign.json b/FortranParser/resources-test/fortran/parser/stmt/pointer_assign.json index 11550f4c..aa3fe797 100644 --- a/FortranParser/resources-test/fortran/parser/stmt/pointer_assign.json +++ b/FortranParser/resources-test/fortran/parser/stmt/pointer_assign.json @@ -2,4070 +2,4073 @@ "fileExtension": "f90", "nodes": [ { - "id": "0x55ef964b1f00-Program", + "id": "0x55c2dfb00f00-Program", "ProgramUnit": [ - "0x55ef964eb5a0-ProgramUnit" + "0x55c2dfb3a5a0-ProgramUnit" ] }, { - "id": "0x55ef964eb5a0-ProgramUnit", + "id": "0x55c2dfb3a5a0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x55ef964ef160-MainProgram" + "MainProgram": "0x55c2dfb3e160-MainProgram" }, { - "id": "0x55ef964ef160-MainProgram", - "Statement": "0x55ef964ef2a8-Statement", - "SpecificationPart": "0x55ef964ef200-SpecificationPart", - "ExecutionPart": "0x55ef964ef1e8-ExecutionPart", - "InternalSubprogramPart": "0x55ef964ef1a0-InternalSubprogramPart", - "Statement": "0x55ef964ef160-Statement" + "id": "0x55c2dfb3e160-MainProgram", + "Statement": "0x55c2dfb3e2a8-Statement", + "SpecificationPart": "0x55c2dfb3e200-SpecificationPart", + "ExecutionPart": "0x55c2dfb3e1e8-ExecutionPart", + "InternalSubprogramPart": "0x55c2dfb3e1a0-InternalSubprogramPart", + "Statement": "0x55c2dfb3e160-Statement" }, { - "id": "0x55ef964ef2a8-Statement", - "statement": "0x55ef964ef2b8-ProgramStmt", + "id": "0x55c2dfb3e2a8-Statement", + "statement": "0x55c2dfb3e2b8-ProgramStmt", "source": "program POINTER_ASSIGN" }, { - "id": "0x55ef964ef2b8-ProgramStmt", - "Name": "0x55ef964ef2b8-Name" + "id": "0x55c2dfb3e2b8-ProgramStmt", + "Name": "0x55c2dfb3e2b8-Name" }, { - "id": "0x55ef964ef2b8-Name", + "id": "0x55c2dfb3e2b8-Name", "source": "POINTER_ASSIGN" }, { - "id": "0x55ef964ef200-SpecificationPart", - "ImplicitPart": "0x55ef964ef218-ImplicitPart", + "id": "0x55c2dfb3e200-SpecificationPart", + "ImplicitPart": "0x55c2dfb3e218-ImplicitPart", "DeclarationConstruct": [ - "0x55ef964bf110-DeclarationConstruct", - "0x55ef964dcd40-DeclarationConstruct", - "0x55ef964f5890-DeclarationConstruct", - "0x55ef964f5b90-DeclarationConstruct", - "0x55ef964dd510-DeclarationConstruct", - "0x55ef964dd7c0-DeclarationConstruct", - "0x55ef964dda70-DeclarationConstruct", - "0x55ef964ddd20-DeclarationConstruct", - "0x55ef964de020-DeclarationConstruct", - "0x55ef964e8670-DeclarationConstruct", - "0x55ef964de880-DeclarationConstruct" + "0x55c2dfb0e110-DeclarationConstruct", + "0x55c2dfb2bd40-DeclarationConstruct", + "0x55c2dfb44890-DeclarationConstruct", + "0x55c2dfb44b90-DeclarationConstruct", + "0x55c2dfb2c510-DeclarationConstruct", + "0x55c2dfb2c7c0-DeclarationConstruct", + "0x55c2dfb2ca70-DeclarationConstruct", + "0x55c2dfb2cd20-DeclarationConstruct", + "0x55c2dfb2d020-DeclarationConstruct", + "0x55c2dfb37670-DeclarationConstruct", + "0x55c2dfb2d880-DeclarationConstruct" ] }, { - "id": "0x55ef964ef218-ImplicitPart", + "id": "0x55c2dfb3e218-ImplicitPart", "ImplicitPartStmt": [ - "0x55ef964d9100-ImplicitPartStmt" + "0x55c2dfb28100-ImplicitPartStmt" ] }, { - "id": "0x55ef964d9100-ImplicitPartStmt", + "id": "0x55c2dfb28100-ImplicitPartStmt", "variantKey": "Statement", - "Statement": "0x55ef964d9100-Statement" + "Statement": "0x55c2dfb28100-Statement" }, { - "id": "0x55ef964d9100-Statement", - "statement": "0x55ef964ecef0-ImplicitStmt", + "id": "0x55c2dfb28100-Statement", + "statement": "0x55c2dfb3bef0-ImplicitStmt", "source": "implicit none" }, { - "id": "0x55ef964ecef0-ImplicitStmt", + "id": "0x55c2dfb3bef0-ImplicitStmt", "variantKey": "ImplicitNoneNameSpec", "ImplicitNoneNameSpec": [] }, { - "id": "0x55ef964bf110-DeclarationConstruct", + "id": "0x55c2dfb0e110-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55ef964bf110-SpecificationConstruct" + "SpecificationConstruct": "0x55c2dfb0e110-SpecificationConstruct" }, { - "id": "0x55ef964bf110-SpecificationConstruct", + "id": "0x55c2dfb0e110-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55ef964bf110-Statement" + "Statement": "0x55c2dfb0e110-Statement" }, { - "id": "0x55ef964bf110-Statement", - "statement": "0x55ef964f4ba0-TypeDeclarationStmt", + "id": "0x55c2dfb0e110-Statement", + "statement": "0x55c2dfb43ba0-TypeDeclarationStmt", "source": "integer, target :: scalar_target = 42" }, { - "id": "0x55ef964f4ba0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55ef964f4bd0-DeclarationTypeSpec", + "id": "0x55c2dfb43ba0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55c2dfb43bd0-DeclarationTypeSpec", "AttrSpec": [ - "0x55ef964f5fc0-AttrSpec" + "0x55c2dfb44fc0-AttrSpec" ], "EntityDecl": [ - "0x55ef964f4f50-EntityDecl" + "0x55c2dfb43f50-EntityDecl" ] }, { - "id": "0x55ef964f4bd0-DeclarationTypeSpec", + "id": "0x55c2dfb43bd0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55ef964f4bd0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55c2dfb43bd0-IntrinsicTypeSpec" }, { - "id": "0x55ef964f4bd0-IntrinsicTypeSpec", + "id": "0x55c2dfb43bd0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55ef964f4bd0-IntegerTypeSpec" + "IntegerTypeSpec": "0x55c2dfb43bd0-IntegerTypeSpec" }, { - "id": "0x55ef964f4bd0-IntegerTypeSpec" + "id": "0x55c2dfb43bd0-IntegerTypeSpec" }, { - "id": "0x55ef964f5fc0-AttrSpec", + "id": "0x55c2dfb44fc0-AttrSpec", "variantKey": "Target", - "Target": "0x55ef964f5fc0-Target" + "Target": "0x55c2dfb44fc0-Target" }, { - "id": "0x55ef964f5fc0-Target", + "id": "0x55c2dfb44fc0-Target", "keyword": "Target" }, { - "id": "0x55ef964f4f50-EntityDecl", - "Name": "0x55ef964f5008-Name", - "Initialization": "0x55ef964f4f50-Initialization" + "id": "0x55c2dfb43f50-EntityDecl", + "Name": "0x55c2dfb44008-Name", + "Initialization": "0x55c2dfb43f50-Initialization" }, { - "id": "0x55ef964f5008-Name", + "id": "0x55c2dfb44008-Name", "source": "scalar_target" }, { - "id": "0x55ef964f4f50-Initialization", + "id": "0x55c2dfb43f50-Initialization", "variantKey": "Expr", - "Expr": "0x55ef96451790-Expr" + "Expr": "0x55c2dfaa0790-Expr" }, { - "id": "0x55ef96451790-Expr", + "id": "0x55c2dfaa0790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964517b0-LiteralConstant" + "LiteralConstant": "0x55c2dfaa07b0-LiteralConstant" }, { - "id": "0x55ef964517b0-LiteralConstant", + "id": "0x55c2dfaa07b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ef964517b0-IntLiteralConstant" + "IntLiteralConstant": "0x55c2dfaa07b0-IntLiteralConstant" }, { - "id": "0x55ef964517b0-IntLiteralConstant", + "id": "0x55c2dfaa07b0-IntLiteralConstant", "CharBlock": "42" }, { - "id": "0x55ef964dcd40-DeclarationConstruct", + "id": "0x55c2dfb2bd40-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55ef964dcd40-SpecificationConstruct" + "SpecificationConstruct": "0x55c2dfb2bd40-SpecificationConstruct" }, { - "id": "0x55ef964dcd40-SpecificationConstruct", + "id": "0x55c2dfb2bd40-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55ef964dcd40-Statement" + "Statement": "0x55c2dfb2bd40-Statement" }, { - "id": "0x55ef964dcd40-Statement", - "statement": "0x55ef964e8730-TypeDeclarationStmt", + "id": "0x55c2dfb2bd40-Statement", + "statement": "0x55c2dfb37730-TypeDeclarationStmt", "source": "integer, target :: array_target(5) = [10, 20, 30, 40, 50]" }, { - "id": "0x55ef964e8730-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55ef964e8760-DeclarationTypeSpec", + "id": "0x55c2dfb37730-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55c2dfb37760-DeclarationTypeSpec", "AttrSpec": [ - "0x55ef964cac80-AttrSpec" + "0x55c2dfb19c80-AttrSpec" ], "EntityDecl": [ - "0x55ef964dcb70-EntityDecl" + "0x55c2dfb2bb70-EntityDecl" ] }, { - "id": "0x55ef964e8760-DeclarationTypeSpec", + "id": "0x55c2dfb37760-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55ef964e8760-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55c2dfb37760-IntrinsicTypeSpec" }, { - "id": "0x55ef964e8760-IntrinsicTypeSpec", + "id": "0x55c2dfb37760-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55ef964e8760-IntegerTypeSpec" + "IntegerTypeSpec": "0x55c2dfb37760-IntegerTypeSpec" }, { - "id": "0x55ef964e8760-IntegerTypeSpec" + "id": "0x55c2dfb37760-IntegerTypeSpec" }, { - "id": "0x55ef964cac80-AttrSpec", + "id": "0x55c2dfb19c80-AttrSpec", "variantKey": "Target", - "Target": "0x55ef964cac80-Target" + "Target": "0x55c2dfb19c80-Target" }, { - "id": "0x55ef964cac80-Target", + "id": "0x55c2dfb19c80-Target", "keyword": "Target" }, { - "id": "0x55ef964dcb70-EntityDecl", - "Name": "0x55ef964dcc28-Name", - "ArraySpec": "0x55ef964dcbf0-ArraySpec", - "Initialization": "0x55ef964dcb70-Initialization" + "id": "0x55c2dfb2bb70-EntityDecl", + "Name": "0x55c2dfb2bc28-Name", + "ArraySpec": "0x55c2dfb2bbf0-ArraySpec", + "Initialization": "0x55c2dfb2bb70-Initialization" }, { - "id": "0x55ef964dcc28-Name", + "id": "0x55c2dfb2bc28-Name", "source": "array_target" }, { - "id": "0x55ef964dcbf0-ArraySpec", + "id": "0x55c2dfb2bbf0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55ef964ecf30-ExplicitShapeSpec" + "0x55c2dfb3bf30-ExplicitShapeSpec" ] }, { - "id": "0x55ef964ecf30-ExplicitShapeSpec", - "upper_bound": "0x55ef964ecf30-SpecificationExpr" + "id": "0x55c2dfb3bf30-ExplicitShapeSpec", + "upper_bound": "0x55c2dfb3bf30-SpecificationExpr" }, { - "id": "0x55ef964ecf30-SpecificationExpr", - "Expr": "0x55ef964f5110-Expr" + "id": "0x55c2dfb3bf30-SpecificationExpr", + "Expr": "0x55c2dfb44110-Expr" }, { - "id": "0x55ef964f5110-Expr", + "id": "0x55c2dfb44110-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964f5130-LiteralConstant" + "LiteralConstant": "0x55c2dfb44130-LiteralConstant" }, { - "id": "0x55ef964f5130-LiteralConstant", + "id": "0x55c2dfb44130-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ef964f5130-IntLiteralConstant" + "IntLiteralConstant": "0x55c2dfb44130-IntLiteralConstant" }, { - "id": "0x55ef964f5130-IntLiteralConstant", + "id": "0x55c2dfb44130-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x55ef964dcb70-Initialization", + "id": "0x55c2dfb2bb70-Initialization", "variantKey": "Expr", - "Expr": "0x55ef964dca80-Expr" + "Expr": "0x55c2dfb2ba80-Expr" }, { - "id": "0x55ef964dca80-Expr", + "id": "0x55c2dfb2ba80-Expr", "variantKey": "ArrayConstructor", - "ArrayConstructor": "0x55ef964dcaa0-ArrayConstructor" + "ArrayConstructor": "0x55c2dfb2baa0-ArrayConstructor" }, { - "id": "0x55ef964dcaa0-ArrayConstructor", - "AcSpec": "0x55ef964dcaa0-AcSpec" + "id": "0x55c2dfb2baa0-ArrayConstructor", + "AcSpec": "0x55c2dfb2baa0-AcSpec" }, { - "id": "0x55ef964dcaa0-AcSpec", + "id": "0x55c2dfb2baa0-AcSpec", "values": [ - "0x55ef964ecfe0-AcValue", - "0x55ef964ebc10-AcValue", - "0x55ef964ec2f0-AcValue", - "0x55ef964ec3b0-AcValue", - "0x55ef964ec7b0-AcValue" + "0x55c2dfb3bfe0-AcValue", + "0x55c2dfb3ac10-AcValue", + "0x55c2dfb3b2f0-AcValue", + "0x55c2dfb3b3b0-AcValue", + "0x55c2dfb3b7b0-AcValue" ] }, { - "id": "0x55ef964ecfe0-AcValue", + "id": "0x55c2dfb3bfe0-AcValue", "variantKey": "Expr", - "Expr": "0x55ef964f57a0-Expr" + "Expr": "0x55c2dfb447a0-Expr" }, { - "id": "0x55ef964f57a0-Expr", + "id": "0x55c2dfb447a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964f57c0-LiteralConstant" + "LiteralConstant": "0x55c2dfb447c0-LiteralConstant" }, { - "id": "0x55ef964f57c0-LiteralConstant", + "id": "0x55c2dfb447c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ef964f57c0-IntLiteralConstant" + "IntLiteralConstant": "0x55c2dfb447c0-IntLiteralConstant" }, { - "id": "0x55ef964f57c0-IntLiteralConstant", + "id": "0x55c2dfb447c0-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x55ef964ebc10-AcValue", + "id": "0x55c2dfb3ac10-AcValue", "variantKey": "Expr", - "Expr": "0x55ef964f5aa0-Expr" + "Expr": "0x55c2dfb44aa0-Expr" }, { - "id": "0x55ef964f5aa0-Expr", + "id": "0x55c2dfb44aa0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964f5ac0-LiteralConstant" + "LiteralConstant": "0x55c2dfb44ac0-LiteralConstant" }, { - "id": "0x55ef964f5ac0-LiteralConstant", + "id": "0x55c2dfb44ac0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ef964f5ac0-IntLiteralConstant" + "IntLiteralConstant": "0x55c2dfb44ac0-IntLiteralConstant" }, { - "id": "0x55ef964f5ac0-IntLiteralConstant", + "id": "0x55c2dfb44ac0-IntLiteralConstant", "CharBlock": "20" }, { - "id": "0x55ef964ec2f0-AcValue", + "id": "0x55c2dfb3b2f0-AcValue", "variantKey": "Expr", - "Expr": "0x55ef964f5da0-Expr" + "Expr": "0x55c2dfb44da0-Expr" }, { - "id": "0x55ef964f5da0-Expr", + "id": "0x55c2dfb44da0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964f5dc0-LiteralConstant" + "LiteralConstant": "0x55c2dfb44dc0-LiteralConstant" }, { - "id": "0x55ef964f5dc0-LiteralConstant", + "id": "0x55c2dfb44dc0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ef964f5dc0-IntLiteralConstant" + "IntLiteralConstant": "0x55c2dfb44dc0-IntLiteralConstant" }, { - "id": "0x55ef964f5dc0-IntLiteralConstant", + "id": "0x55c2dfb44dc0-IntLiteralConstant", "CharBlock": "30" }, { - "id": "0x55ef964ec3b0-AcValue", + "id": "0x55c2dfb3b3b0-AcValue", "variantKey": "Expr", - "Expr": "0x55ef964e8580-Expr" + "Expr": "0x55c2dfb37580-Expr" }, { - "id": "0x55ef964e8580-Expr", + "id": "0x55c2dfb37580-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964e85a0-LiteralConstant" + "LiteralConstant": "0x55c2dfb375a0-LiteralConstant" }, { - "id": "0x55ef964e85a0-LiteralConstant", + "id": "0x55c2dfb375a0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ef964e85a0-IntLiteralConstant" + "IntLiteralConstant": "0x55c2dfb375a0-IntLiteralConstant" }, { - "id": "0x55ef964e85a0-IntLiteralConstant", + "id": "0x55c2dfb375a0-IntLiteralConstant", "CharBlock": "40" }, { - "id": "0x55ef964ec7b0-AcValue", + "id": "0x55c2dfb3b7b0-AcValue", "variantKey": "Expr", - "Expr": "0x55ef964dc8c0-Expr" + "Expr": "0x55c2dfb2b8c0-Expr" }, { - "id": "0x55ef964dc8c0-Expr", + "id": "0x55c2dfb2b8c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964dc8e0-LiteralConstant" + "LiteralConstant": "0x55c2dfb2b8e0-LiteralConstant" }, { - "id": "0x55ef964dc8e0-LiteralConstant", + "id": "0x55c2dfb2b8e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ef964dc8e0-IntLiteralConstant" + "IntLiteralConstant": "0x55c2dfb2b8e0-IntLiteralConstant" }, { - "id": "0x55ef964dc8e0-IntLiteralConstant", + "id": "0x55c2dfb2b8e0-IntLiteralConstant", "CharBlock": "50" }, { - "id": "0x55ef964f5890-DeclarationConstruct", + "id": "0x55c2dfb44890-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55ef964f5890-SpecificationConstruct" + "SpecificationConstruct": "0x55c2dfb44890-SpecificationConstruct" }, { - "id": "0x55ef964f5890-SpecificationConstruct", + "id": "0x55c2dfb44890-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55ef964f5890-Statement" + "Statement": "0x55c2dfb44890-Statement" }, { - "id": "0x55ef964f5890-Statement", - "statement": "0x55ef964f4d30-TypeDeclarationStmt", + "id": "0x55c2dfb44890-Statement", + "statement": "0x55c2dfb43d30-TypeDeclarationStmt", "source": "integer, pointer :: ptr_scalar => null()" }, { - "id": "0x55ef964f4d30-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55ef964f4d60-DeclarationTypeSpec", + "id": "0x55c2dfb43d30-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55c2dfb43d60-DeclarationTypeSpec", "AttrSpec": [ - "0x55ef964e81a0-AttrSpec" + "0x55c2dfb371a0-AttrSpec" ], "EntityDecl": [ - "0x55ef964dcf80-EntityDecl" + "0x55c2dfb2bf80-EntityDecl" ] }, { - "id": "0x55ef964f4d60-DeclarationTypeSpec", + "id": "0x55c2dfb43d60-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55ef964f4d60-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55c2dfb43d60-IntrinsicTypeSpec" }, { - "id": "0x55ef964f4d60-IntrinsicTypeSpec", + "id": "0x55c2dfb43d60-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55ef964f4d60-IntegerTypeSpec" + "IntegerTypeSpec": "0x55c2dfb43d60-IntegerTypeSpec" }, { - "id": "0x55ef964f4d60-IntegerTypeSpec" + "id": "0x55c2dfb43d60-IntegerTypeSpec" }, { - "id": "0x55ef964e81a0-AttrSpec", + "id": "0x55c2dfb371a0-AttrSpec", "variantKey": "Pointer", - "Pointer": "0x55ef964e81a0-Pointer" + "Pointer": "0x55c2dfb371a0-Pointer" }, { - "id": "0x55ef964e81a0-Pointer", + "id": "0x55c2dfb371a0-Pointer", "keyword": "Pointer" }, { - "id": "0x55ef964dcf80-EntityDecl", - "Name": "0x55ef964dd038-Name", - "Initialization": "0x55ef964dcf80-Initialization" + "id": "0x55c2dfb2bf80-EntityDecl", + "Name": "0x55c2dfb2c038-Name", + "Initialization": "0x55c2dfb2bf80-Initialization" }, { - "id": "0x55ef964dd038-Name", + "id": "0x55c2dfb2c038-Name", "source": "ptr_scalar" }, { - "id": "0x55ef964dcf80-Initialization", + "id": "0x55c2dfb2bf80-Initialization", "variantKey": "NullInit", - "NullInit": "0x55ef964dcf80-NullInit" + "NullInit": "0x55c2dfb2bf80-NullInit" }, { - "id": "0x55ef964dcf80-NullInit", - "Expr": "0x55ef964dce90-Expr" + "id": "0x55c2dfb2bf80-NullInit", + "Expr": "0x55c2dfb2be90-Expr" }, { - "id": "0x55ef964dce90-Expr", + "id": "0x55c2dfb2be90-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55ef964dca10-FunctionReference" + "FunctionReference": "0x55c2dfb2ba10-FunctionReference" }, { - "id": "0x55ef964dca10-FunctionReference", - "Call": "0x55ef964dca10-Call" + "id": "0x55c2dfb2ba10-FunctionReference", + "Call": "0x55c2dfb2ba10-Call" }, { - "id": "0x55ef964dca10-Call", - "ProcedureDesignator": "0x55ef964dca28-ProcedureDesignator" + "id": "0x55c2dfb2ba10-Call", + "ProcedureDesignator": "0x55c2dfb2ba28-ProcedureDesignator" }, { - "id": "0x55ef964dca28-ProcedureDesignator", + "id": "0x55c2dfb2ba28-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55ef964dca28-Name" + "Name": "0x55c2dfb2ba28-Name" }, { - "id": "0x55ef964dca28-Name", + "id": "0x55c2dfb2ba28-Name", "source": "null" }, { - "id": "0x55ef964f5b90-DeclarationConstruct", + "id": "0x55c2dfb44b90-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55ef964f5b90-SpecificationConstruct" + "SpecificationConstruct": "0x55c2dfb44b90-SpecificationConstruct" }, { - "id": "0x55ef964f5b90-SpecificationConstruct", + "id": "0x55c2dfb44b90-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55ef964f5b90-Statement" + "Statement": "0x55c2dfb44b90-Statement" }, { - "id": "0x55ef964f5b90-Statement", - "statement": "0x55ef964f5420-TypeDeclarationStmt", + "id": "0x55c2dfb44b90-Statement", + "statement": "0x55c2dfb44420-TypeDeclarationStmt", "source": "integer, pointer :: ptr_copy => null()" }, { - "id": "0x55ef964f5420-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55ef964f5450-DeclarationTypeSpec", + "id": "0x55c2dfb44420-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55c2dfb44450-DeclarationTypeSpec", "AttrSpec": [ - "0x55ef964e9170-AttrSpec" + "0x55c2dfb38170-AttrSpec" ], "EntityDecl": [ - "0x55ef964dd1d0-EntityDecl" + "0x55c2dfb2c1d0-EntityDecl" ] }, { - "id": "0x55ef964f5450-DeclarationTypeSpec", + "id": "0x55c2dfb44450-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55ef964f5450-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55c2dfb44450-IntrinsicTypeSpec" }, { - "id": "0x55ef964f5450-IntrinsicTypeSpec", + "id": "0x55c2dfb44450-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55ef964f5450-IntegerTypeSpec" + "IntegerTypeSpec": "0x55c2dfb44450-IntegerTypeSpec" }, { - "id": "0x55ef964f5450-IntegerTypeSpec" + "id": "0x55c2dfb44450-IntegerTypeSpec" }, { - "id": "0x55ef964e9170-AttrSpec", + "id": "0x55c2dfb38170-AttrSpec", "variantKey": "Pointer", - "Pointer": "0x55ef964e9170-Pointer" + "Pointer": "0x55c2dfb38170-Pointer" }, { - "id": "0x55ef964e9170-Pointer", + "id": "0x55c2dfb38170-Pointer", "keyword": "Pointer" }, { - "id": "0x55ef964dd1d0-EntityDecl", - "Name": "0x55ef964dd288-Name", - "Initialization": "0x55ef964dd1d0-Initialization" + "id": "0x55c2dfb2c1d0-EntityDecl", + "Name": "0x55c2dfb2c288-Name", + "Initialization": "0x55c2dfb2c1d0-Initialization" }, { - "id": "0x55ef964dd288-Name", + "id": "0x55c2dfb2c288-Name", "source": "ptr_copy" }, { - "id": "0x55ef964dd1d0-Initialization", + "id": "0x55c2dfb2c1d0-Initialization", "variantKey": "NullInit", - "NullInit": "0x55ef964dd1d0-NullInit" + "NullInit": "0x55c2dfb2c1d0-NullInit" }, { - "id": "0x55ef964dd1d0-NullInit", - "Expr": "0x55ef964dd0e0-Expr" + "id": "0x55c2dfb2c1d0-NullInit", + "Expr": "0x55c2dfb2c0e0-Expr" }, { - "id": "0x55ef964dd0e0-Expr", + "id": "0x55c2dfb2c0e0-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55ef964e9370-FunctionReference" + "FunctionReference": "0x55c2dfb38370-FunctionReference" }, { - "id": "0x55ef964e9370-FunctionReference", - "Call": "0x55ef964e9370-Call" + "id": "0x55c2dfb38370-FunctionReference", + "Call": "0x55c2dfb38370-Call" }, { - "id": "0x55ef964e9370-Call", - "ProcedureDesignator": "0x55ef964e9388-ProcedureDesignator" + "id": "0x55c2dfb38370-Call", + "ProcedureDesignator": "0x55c2dfb38388-ProcedureDesignator" }, { - "id": "0x55ef964e9388-ProcedureDesignator", + "id": "0x55c2dfb38388-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55ef964e9388-Name" + "Name": "0x55c2dfb38388-Name" }, { - "id": "0x55ef964e9388-Name", + "id": "0x55c2dfb38388-Name", "source": "null" }, { - "id": "0x55ef964dd510-DeclarationConstruct", + "id": "0x55c2dfb2c510-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55ef964dd510-SpecificationConstruct" + "SpecificationConstruct": "0x55c2dfb2c510-SpecificationConstruct" }, { - "id": "0x55ef964dd510-SpecificationConstruct", + "id": "0x55c2dfb2c510-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55ef964dd510-Statement" + "Statement": "0x55c2dfb2c510-Statement" }, { - "id": "0x55ef964dd510-Statement", - "statement": "0x55ef964dcd90-TypeDeclarationStmt", + "id": "0x55c2dfb2c510-Statement", + "statement": "0x55c2dfb2bd90-TypeDeclarationStmt", "source": "integer, pointer :: ptr_array(:) => null()" }, { - "id": "0x55ef964dcd90-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55ef964dcdc0-DeclarationTypeSpec", + "id": "0x55c2dfb2bd90-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55c2dfb2bdc0-DeclarationTypeSpec", "AttrSpec": [ - "0x55ef964e8f70-AttrSpec" + "0x55c2dfb37f70-AttrSpec" ], "EntityDecl": [ - "0x55ef964dd420-EntityDecl" + "0x55c2dfb2c420-EntityDecl" ] }, { - "id": "0x55ef964dcdc0-DeclarationTypeSpec", + "id": "0x55c2dfb2bdc0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55ef964dcdc0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55c2dfb2bdc0-IntrinsicTypeSpec" }, { - "id": "0x55ef964dcdc0-IntrinsicTypeSpec", + "id": "0x55c2dfb2bdc0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55ef964dcdc0-IntegerTypeSpec" + "IntegerTypeSpec": "0x55c2dfb2bdc0-IntegerTypeSpec" }, { - "id": "0x55ef964dcdc0-IntegerTypeSpec" + "id": "0x55c2dfb2bdc0-IntegerTypeSpec" }, { - "id": "0x55ef964e8f70-AttrSpec", + "id": "0x55c2dfb37f70-AttrSpec", "variantKey": "Pointer", - "Pointer": "0x55ef964e8f70-Pointer" + "Pointer": "0x55c2dfb37f70-Pointer" }, { - "id": "0x55ef964e8f70-Pointer", + "id": "0x55c2dfb37f70-Pointer", "keyword": "Pointer" }, { - "id": "0x55ef964dd420-EntityDecl", - "Name": "0x55ef964dd4d8-Name", - "ArraySpec": "0x55ef964dd4a0-ArraySpec", - "Initialization": "0x55ef964dd420-Initialization" + "id": "0x55c2dfb2c420-EntityDecl", + "Name": "0x55c2dfb2c4d8-Name", + "ArraySpec": "0x55c2dfb2c4a0-ArraySpec", + "Initialization": "0x55c2dfb2c420-Initialization" }, { - "id": "0x55ef964dd4d8-Name", + "id": "0x55c2dfb2c4d8-Name", "source": "ptr_array" }, { - "id": "0x55ef964dd4a0-ArraySpec", + "id": "0x55c2dfb2c4a0-ArraySpec", "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x55ef964dd4a0-DeferredShapeSpecList" + "DeferredShapeSpecList": "0x55c2dfb2c4a0-DeferredShapeSpecList" }, { - "id": "0x55ef964dd4a0-DeferredShapeSpecList", + "id": "0x55c2dfb2c4a0-DeferredShapeSpecList", "int": "1" }, { - "id": "0x55ef964dd420-Initialization", + "id": "0x55c2dfb2c420-Initialization", "variantKey": "NullInit", - "NullInit": "0x55ef964dd420-NullInit" + "NullInit": "0x55c2dfb2c420-NullInit" }, { - "id": "0x55ef964dd420-NullInit", - "Expr": "0x55ef964dd330-Expr" + "id": "0x55c2dfb2c420-NullInit", + "Expr": "0x55c2dfb2c330-Expr" }, { - "id": "0x55ef964dd330-Expr", + "id": "0x55c2dfb2c330-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55ef964f5650-FunctionReference" + "FunctionReference": "0x55c2dfb44650-FunctionReference" }, { - "id": "0x55ef964f5650-FunctionReference", - "Call": "0x55ef964f5650-Call" + "id": "0x55c2dfb44650-FunctionReference", + "Call": "0x55c2dfb44650-Call" }, { - "id": "0x55ef964f5650-Call", - "ProcedureDesignator": "0x55ef964f5668-ProcedureDesignator" + "id": "0x55c2dfb44650-Call", + "ProcedureDesignator": "0x55c2dfb44668-ProcedureDesignator" }, { - "id": "0x55ef964f5668-ProcedureDesignator", + "id": "0x55c2dfb44668-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55ef964f5668-Name" + "Name": "0x55c2dfb44668-Name" }, { - "id": "0x55ef964f5668-Name", + "id": "0x55c2dfb44668-Name", "source": "null" }, { - "id": "0x55ef964dd7c0-DeclarationConstruct", + "id": "0x55c2dfb2c7c0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55ef964dd7c0-SpecificationConstruct" + "SpecificationConstruct": "0x55c2dfb2c7c0-SpecificationConstruct" }, { - "id": "0x55ef964dd7c0-SpecificationConstruct", + "id": "0x55c2dfb2c7c0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55ef964dd7c0-Statement" + "Statement": "0x55c2dfb2c7c0-Statement" }, { - "id": "0x55ef964dd7c0-Statement", - "statement": "0x55ef964dce10-TypeDeclarationStmt", + "id": "0x55c2dfb2c7c0-Statement", + "statement": "0x55c2dfb2be10-TypeDeclarationStmt", "source": "integer, pointer :: ptr_slice(:) => null()" }, { - "id": "0x55ef964dce10-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55ef964dce40-DeclarationTypeSpec", + "id": "0x55c2dfb2be10-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55c2dfb2be40-DeclarationTypeSpec", "AttrSpec": [ - "0x55ef964e8fc0-AttrSpec" + "0x55c2dfb37fc0-AttrSpec" ], "EntityDecl": [ - "0x55ef964dd6d0-EntityDecl" + "0x55c2dfb2c6d0-EntityDecl" ] }, { - "id": "0x55ef964dce40-DeclarationTypeSpec", + "id": "0x55c2dfb2be40-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55ef964dce40-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55c2dfb2be40-IntrinsicTypeSpec" }, { - "id": "0x55ef964dce40-IntrinsicTypeSpec", + "id": "0x55c2dfb2be40-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55ef964dce40-IntegerTypeSpec" + "IntegerTypeSpec": "0x55c2dfb2be40-IntegerTypeSpec" }, { - "id": "0x55ef964dce40-IntegerTypeSpec" + "id": "0x55c2dfb2be40-IntegerTypeSpec" }, { - "id": "0x55ef964e8fc0-AttrSpec", + "id": "0x55c2dfb37fc0-AttrSpec", "variantKey": "Pointer", - "Pointer": "0x55ef964e8fc0-Pointer" + "Pointer": "0x55c2dfb37fc0-Pointer" }, { - "id": "0x55ef964e8fc0-Pointer", + "id": "0x55c2dfb37fc0-Pointer", "keyword": "Pointer" }, { - "id": "0x55ef964dd6d0-EntityDecl", - "Name": "0x55ef964dd788-Name", - "ArraySpec": "0x55ef964dd750-ArraySpec", - "Initialization": "0x55ef964dd6d0-Initialization" + "id": "0x55c2dfb2c6d0-EntityDecl", + "Name": "0x55c2dfb2c788-Name", + "ArraySpec": "0x55c2dfb2c750-ArraySpec", + "Initialization": "0x55c2dfb2c6d0-Initialization" }, { - "id": "0x55ef964dd788-Name", + "id": "0x55c2dfb2c788-Name", "source": "ptr_slice" }, { - "id": "0x55ef964dd750-ArraySpec", + "id": "0x55c2dfb2c750-ArraySpec", "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x55ef964dd750-DeferredShapeSpecList" + "DeferredShapeSpecList": "0x55c2dfb2c750-DeferredShapeSpecList" }, { - "id": "0x55ef964dd750-DeferredShapeSpecList", + "id": "0x55c2dfb2c750-DeferredShapeSpecList", "int": "1" }, { - "id": "0x55ef964dd6d0-Initialization", + "id": "0x55c2dfb2c6d0-Initialization", "variantKey": "NullInit", - "NullInit": "0x55ef964dd6d0-NullInit" + "NullInit": "0x55c2dfb2c6d0-NullInit" }, { - "id": "0x55ef964dd6d0-NullInit", - "Expr": "0x55ef964dd5e0-Expr" + "id": "0x55c2dfb2c6d0-NullInit", + "Expr": "0x55c2dfb2c5e0-Expr" }, { - "id": "0x55ef964dd5e0-Expr", + "id": "0x55c2dfb2c5e0-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55ef964f5a30-FunctionReference" + "FunctionReference": "0x55c2dfb44a30-FunctionReference" }, { - "id": "0x55ef964f5a30-FunctionReference", - "Call": "0x55ef964f5a30-Call" + "id": "0x55c2dfb44a30-FunctionReference", + "Call": "0x55c2dfb44a30-Call" }, { - "id": "0x55ef964f5a30-Call", - "ProcedureDesignator": "0x55ef964f5a48-ProcedureDesignator" + "id": "0x55c2dfb44a30-Call", + "ProcedureDesignator": "0x55c2dfb44a48-ProcedureDesignator" }, { - "id": "0x55ef964f5a48-ProcedureDesignator", + "id": "0x55c2dfb44a48-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55ef964f5a48-Name" + "Name": "0x55c2dfb44a48-Name" }, { - "id": "0x55ef964f5a48-Name", + "id": "0x55c2dfb44a48-Name", "source": "null" }, { - "id": "0x55ef964dda70-DeclarationConstruct", + "id": "0x55c2dfb2ca70-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55ef964dda70-SpecificationConstruct" + "SpecificationConstruct": "0x55c2dfb2ca70-SpecificationConstruct" }, { - "id": "0x55ef964dda70-SpecificationConstruct", + "id": "0x55c2dfb2ca70-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55ef964dda70-Statement" + "Statement": "0x55c2dfb2ca70-Statement" }, { - "id": "0x55ef964dda70-Statement", - "statement": "0x55ef964dd060-TypeDeclarationStmt", + "id": "0x55c2dfb2ca70-Statement", + "statement": "0x55c2dfb2c060-TypeDeclarationStmt", "source": "integer, pointer :: ptr_lbound(:) => null()" }, { - "id": "0x55ef964dd060-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55ef964dd090-DeclarationTypeSpec", + "id": "0x55c2dfb2c060-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55c2dfb2c090-DeclarationTypeSpec", "AttrSpec": [ - "0x55ef964e63f0-AttrSpec" + "0x55c2dfb353f0-AttrSpec" ], "EntityDecl": [ - "0x55ef964dd980-EntityDecl" + "0x55c2dfb2c980-EntityDecl" ] }, { - "id": "0x55ef964dd090-DeclarationTypeSpec", + "id": "0x55c2dfb2c090-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55ef964dd090-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55c2dfb2c090-IntrinsicTypeSpec" }, { - "id": "0x55ef964dd090-IntrinsicTypeSpec", + "id": "0x55c2dfb2c090-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55ef964dd090-IntegerTypeSpec" + "IntegerTypeSpec": "0x55c2dfb2c090-IntegerTypeSpec" }, { - "id": "0x55ef964dd090-IntegerTypeSpec" + "id": "0x55c2dfb2c090-IntegerTypeSpec" }, { - "id": "0x55ef964e63f0-AttrSpec", + "id": "0x55c2dfb353f0-AttrSpec", "variantKey": "Pointer", - "Pointer": "0x55ef964e63f0-Pointer" + "Pointer": "0x55c2dfb353f0-Pointer" }, { - "id": "0x55ef964e63f0-Pointer", + "id": "0x55c2dfb353f0-Pointer", "keyword": "Pointer" }, { - "id": "0x55ef964dd980-EntityDecl", - "Name": "0x55ef964dda38-Name", - "ArraySpec": "0x55ef964dda00-ArraySpec", - "Initialization": "0x55ef964dd980-Initialization" + "id": "0x55c2dfb2c980-EntityDecl", + "Name": "0x55c2dfb2ca38-Name", + "ArraySpec": "0x55c2dfb2ca00-ArraySpec", + "Initialization": "0x55c2dfb2c980-Initialization" }, { - "id": "0x55ef964dda38-Name", + "id": "0x55c2dfb2ca38-Name", "source": "ptr_lbound" }, { - "id": "0x55ef964dda00-ArraySpec", + "id": "0x55c2dfb2ca00-ArraySpec", "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x55ef964dda00-DeferredShapeSpecList" + "DeferredShapeSpecList": "0x55c2dfb2ca00-DeferredShapeSpecList" }, { - "id": "0x55ef964dda00-DeferredShapeSpecList", + "id": "0x55c2dfb2ca00-DeferredShapeSpecList", "int": "1" }, { - "id": "0x55ef964dd980-Initialization", + "id": "0x55c2dfb2c980-Initialization", "variantKey": "NullInit", - "NullInit": "0x55ef964dd980-NullInit" + "NullInit": "0x55c2dfb2c980-NullInit" }, { - "id": "0x55ef964dd980-NullInit", - "Expr": "0x55ef964dd890-Expr" + "id": "0x55c2dfb2c980-NullInit", + "Expr": "0x55c2dfb2c890-Expr" }, { - "id": "0x55ef964dd890-Expr", + "id": "0x55c2dfb2c890-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55ef964f5950-FunctionReference" + "FunctionReference": "0x55c2dfb44950-FunctionReference" }, { - "id": "0x55ef964f5950-FunctionReference", - "Call": "0x55ef964f5950-Call" + "id": "0x55c2dfb44950-FunctionReference", + "Call": "0x55c2dfb44950-Call" }, { - "id": "0x55ef964f5950-Call", - "ProcedureDesignator": "0x55ef964f5968-ProcedureDesignator" + "id": "0x55c2dfb44950-Call", + "ProcedureDesignator": "0x55c2dfb44968-ProcedureDesignator" }, { - "id": "0x55ef964f5968-ProcedureDesignator", + "id": "0x55c2dfb44968-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55ef964f5968-Name" + "Name": "0x55c2dfb44968-Name" }, { - "id": "0x55ef964f5968-Name", + "id": "0x55c2dfb44968-Name", "source": "null" }, { - "id": "0x55ef964ddd20-DeclarationConstruct", + "id": "0x55c2dfb2cd20-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55ef964ddd20-SpecificationConstruct" + "SpecificationConstruct": "0x55c2dfb2cd20-SpecificationConstruct" }, { - "id": "0x55ef964ddd20-SpecificationConstruct", + "id": "0x55c2dfb2cd20-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55ef964ddd20-Statement" + "Statement": "0x55c2dfb2cd20-Statement" }, { - "id": "0x55ef964ddd20-Statement", - "statement": "0x55ef964dd2b0-TypeDeclarationStmt", + "id": "0x55c2dfb2cd20-Statement", + "statement": "0x55c2dfb2c2b0-TypeDeclarationStmt", "source": "integer, pointer :: ptr_bounds(:) => null()" }, { - "id": "0x55ef964dd2b0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55ef964dd2e0-DeclarationTypeSpec", + "id": "0x55c2dfb2c2b0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55c2dfb2c2e0-DeclarationTypeSpec", "AttrSpec": [ - "0x55ef964eef50-AttrSpec" + "0x55c2dfb3df50-AttrSpec" ], "EntityDecl": [ - "0x55ef964ddc30-EntityDecl" + "0x55c2dfb2cc30-EntityDecl" ] }, { - "id": "0x55ef964dd2e0-DeclarationTypeSpec", + "id": "0x55c2dfb2c2e0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55ef964dd2e0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55c2dfb2c2e0-IntrinsicTypeSpec" }, { - "id": "0x55ef964dd2e0-IntrinsicTypeSpec", + "id": "0x55c2dfb2c2e0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55ef964dd2e0-IntegerTypeSpec" + "IntegerTypeSpec": "0x55c2dfb2c2e0-IntegerTypeSpec" }, { - "id": "0x55ef964dd2e0-IntegerTypeSpec" + "id": "0x55c2dfb2c2e0-IntegerTypeSpec" }, { - "id": "0x55ef964eef50-AttrSpec", + "id": "0x55c2dfb3df50-AttrSpec", "variantKey": "Pointer", - "Pointer": "0x55ef964eef50-Pointer" + "Pointer": "0x55c2dfb3df50-Pointer" }, { - "id": "0x55ef964eef50-Pointer", + "id": "0x55c2dfb3df50-Pointer", "keyword": "Pointer" }, { - "id": "0x55ef964ddc30-EntityDecl", - "Name": "0x55ef964ddce8-Name", - "ArraySpec": "0x55ef964ddcb0-ArraySpec", - "Initialization": "0x55ef964ddc30-Initialization" + "id": "0x55c2dfb2cc30-EntityDecl", + "Name": "0x55c2dfb2cce8-Name", + "ArraySpec": "0x55c2dfb2ccb0-ArraySpec", + "Initialization": "0x55c2dfb2cc30-Initialization" }, { - "id": "0x55ef964ddce8-Name", + "id": "0x55c2dfb2cce8-Name", "source": "ptr_bounds" }, { - "id": "0x55ef964ddcb0-ArraySpec", + "id": "0x55c2dfb2ccb0-ArraySpec", "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x55ef964ddcb0-DeferredShapeSpecList" + "DeferredShapeSpecList": "0x55c2dfb2ccb0-DeferredShapeSpecList" }, { - "id": "0x55ef964ddcb0-DeferredShapeSpecList", + "id": "0x55c2dfb2ccb0-DeferredShapeSpecList", "int": "1" }, { - "id": "0x55ef964ddc30-Initialization", + "id": "0x55c2dfb2cc30-Initialization", "variantKey": "NullInit", - "NullInit": "0x55ef964ddc30-NullInit" + "NullInit": "0x55c2dfb2cc30-NullInit" }, { - "id": "0x55ef964ddc30-NullInit", - "Expr": "0x55ef964ddb40-Expr" + "id": "0x55c2dfb2cc30-NullInit", + "Expr": "0x55c2dfb2cb40-Expr" }, { - "id": "0x55ef964ddb40-Expr", + "id": "0x55c2dfb2cb40-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55ef964f5be0-FunctionReference" + "FunctionReference": "0x55c2dfb44be0-FunctionReference" }, { - "id": "0x55ef964f5be0-FunctionReference", - "Call": "0x55ef964f5be0-Call" + "id": "0x55c2dfb44be0-FunctionReference", + "Call": "0x55c2dfb44be0-Call" }, { - "id": "0x55ef964f5be0-Call", - "ProcedureDesignator": "0x55ef964f5bf8-ProcedureDesignator" + "id": "0x55c2dfb44be0-Call", + "ProcedureDesignator": "0x55c2dfb44bf8-ProcedureDesignator" }, { - "id": "0x55ef964f5bf8-ProcedureDesignator", + "id": "0x55c2dfb44bf8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55ef964f5bf8-Name" + "Name": "0x55c2dfb44bf8-Name" }, { - "id": "0x55ef964f5bf8-Name", + "id": "0x55c2dfb44bf8-Name", "source": "null" }, { - "id": "0x55ef964de020-DeclarationConstruct", + "id": "0x55c2dfb2d020-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55ef964de020-SpecificationConstruct" + "SpecificationConstruct": "0x55c2dfb2d020-SpecificationConstruct" }, { - "id": "0x55ef964de020-SpecificationConstruct", + "id": "0x55c2dfb2d020-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55ef964de020-Statement" + "Statement": "0x55c2dfb2d020-Statement" }, { - "id": "0x55ef964de020-Statement", - "statement": "0x55ef964dd560-TypeDeclarationStmt", + "id": "0x55c2dfb2d020-Statement", + "statement": "0x55c2dfb2c560-TypeDeclarationStmt", "source": "integer, pointer :: ptr_2d(:, :) => null()" }, { - "id": "0x55ef964dd560-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55ef964dd590-DeclarationTypeSpec", + "id": "0x55c2dfb2c560-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55c2dfb2c590-DeclarationTypeSpec", "AttrSpec": [ - "0x55ef964ddd80-AttrSpec" + "0x55c2dfb2cd80-AttrSpec" ], "EntityDecl": [ - "0x55ef964ddf30-EntityDecl" + "0x55c2dfb2cf30-EntityDecl" ] }, { - "id": "0x55ef964dd590-DeclarationTypeSpec", + "id": "0x55c2dfb2c590-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55ef964dd590-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55c2dfb2c590-IntrinsicTypeSpec" }, { - "id": "0x55ef964dd590-IntrinsicTypeSpec", + "id": "0x55c2dfb2c590-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55ef964dd590-IntegerTypeSpec" + "IntegerTypeSpec": "0x55c2dfb2c590-IntegerTypeSpec" }, { - "id": "0x55ef964dd590-IntegerTypeSpec" + "id": "0x55c2dfb2c590-IntegerTypeSpec" }, { - "id": "0x55ef964ddd80-AttrSpec", + "id": "0x55c2dfb2cd80-AttrSpec", "variantKey": "Pointer", - "Pointer": "0x55ef964ddd80-Pointer" + "Pointer": "0x55c2dfb2cd80-Pointer" }, { - "id": "0x55ef964ddd80-Pointer", + "id": "0x55c2dfb2cd80-Pointer", "keyword": "Pointer" }, { - "id": "0x55ef964ddf30-EntityDecl", - "Name": "0x55ef964ddfe8-Name", - "ArraySpec": "0x55ef964ddfb0-ArraySpec", - "Initialization": "0x55ef964ddf30-Initialization" + "id": "0x55c2dfb2cf30-EntityDecl", + "Name": "0x55c2dfb2cfe8-Name", + "ArraySpec": "0x55c2dfb2cfb0-ArraySpec", + "Initialization": "0x55c2dfb2cf30-Initialization" }, { - "id": "0x55ef964ddfe8-Name", + "id": "0x55c2dfb2cfe8-Name", "source": "ptr_2d" }, { - "id": "0x55ef964ddfb0-ArraySpec", + "id": "0x55c2dfb2cfb0-ArraySpec", "variantKey": "DeferredShapeSpecList", - "DeferredShapeSpecList": "0x55ef964ddfb0-DeferredShapeSpecList" + "DeferredShapeSpecList": "0x55c2dfb2cfb0-DeferredShapeSpecList" }, { - "id": "0x55ef964ddfb0-DeferredShapeSpecList", + "id": "0x55c2dfb2cfb0-DeferredShapeSpecList", "int": "2" }, { - "id": "0x55ef964ddf30-Initialization", + "id": "0x55c2dfb2cf30-Initialization", "variantKey": "NullInit", - "NullInit": "0x55ef964ddf30-NullInit" + "NullInit": "0x55c2dfb2cf30-NullInit" }, { - "id": "0x55ef964ddf30-NullInit", - "Expr": "0x55ef964dde40-Expr" + "id": "0x55c2dfb2cf30-NullInit", + "Expr": "0x55c2dfb2ce40-Expr" }, { - "id": "0x55ef964dde40-Expr", + "id": "0x55c2dfb2ce40-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55ef964f5cc0-FunctionReference" + "FunctionReference": "0x55c2dfb44cc0-FunctionReference" }, { - "id": "0x55ef964f5cc0-FunctionReference", - "Call": "0x55ef964f5cc0-Call" + "id": "0x55c2dfb44cc0-FunctionReference", + "Call": "0x55c2dfb44cc0-Call" }, { - "id": "0x55ef964f5cc0-Call", - "ProcedureDesignator": "0x55ef964f5cd8-ProcedureDesignator" + "id": "0x55c2dfb44cc0-Call", + "ProcedureDesignator": "0x55c2dfb44cd8-ProcedureDesignator" }, { - "id": "0x55ef964f5cd8-ProcedureDesignator", + "id": "0x55c2dfb44cd8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55ef964f5cd8-Name" + "Name": "0x55c2dfb44cd8-Name" }, { - "id": "0x55ef964f5cd8-Name", + "id": "0x55c2dfb44cd8-Name", "source": "null" }, { - "id": "0x55ef964e8670-DeclarationConstruct", + "id": "0x55c2dfb37670-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55ef964e8670-SpecificationConstruct" + "SpecificationConstruct": "0x55c2dfb37670-SpecificationConstruct" }, { - "id": "0x55ef964e8670-SpecificationConstruct", + "id": "0x55c2dfb37670-SpecificationConstruct", "variantKey": "InterfaceBlock", - "InterfaceBlock": "0x55ef964de520-InterfaceBlock" + "InterfaceBlock": "0x55c2dfb2d520-InterfaceBlock" }, { - "id": "0x55ef964de520-InterfaceBlock", - "Statement": "0x55ef964de598-Statement", + "id": "0x55c2dfb2d520-InterfaceBlock", + "Statement": "0x55c2dfb2d598-Statement", "InterfaceSpecification": [ - "0x55ef96487790-InterfaceSpecification" + "0x55c2dfad6790-InterfaceSpecification" ], - "Statement": "0x55ef964de520-Statement" + "Statement": "0x55c2dfb2d520-Statement" }, { - "id": "0x55ef964de598-Statement", - "statement": "0x55ef964de5a8-InterfaceStmt", + "id": "0x55c2dfb2d598-Statement", + "statement": "0x55c2dfb2d5a8-InterfaceStmt", "source": "abstract interface" }, { - "id": "0x55ef964de5a8-InterfaceStmt", + "id": "0x55c2dfb2d5a8-InterfaceStmt", "variantKey": "Abstract", - "Abstract": "0x55ef964de5a8-Abstract" + "Abstract": "0x55c2dfb2d5a8-Abstract" }, { - "id": "0x55ef964de5a8-Abstract" + "id": "0x55c2dfb2d5a8-Abstract" }, { - "id": "0x55ef96487790-InterfaceSpecification", + "id": "0x55c2dfad6790-InterfaceSpecification", "variantKey": "InterfaceBody", - "InterfaceBody": "0x55ef96487790-InterfaceBody" + "InterfaceBody": "0x55c2dfad6790-InterfaceBody" }, { - "id": "0x55ef96487790-InterfaceBody", + "id": "0x55c2dfad6790-InterfaceBody", "variantKey": "Function", - "Function": "0x55ef96487790-Function" + "Function": "0x55c2dfad6790-Function" }, { - "id": "0x55ef96487790-Function", - "Statement": "0x55ef964877d8-Statement", - "SpecificationPart": "0x55ef9644eb00-SpecificationPart", - "Statement": "0x55ef96487790-Statement" + "id": "0x55c2dfad6790-Function", + "Statement": "0x55c2dfad67d8-Statement", + "SpecificationPart": "0x55c2dfa9db00-SpecificationPart", + "Statement": "0x55c2dfad6790-Statement" }, { - "id": "0x55ef964877d8-Statement", - "statement": "0x55ef964877e8-FunctionStmt", + "id": "0x55c2dfad67d8-Statement", + "statement": "0x55c2dfad67e8-FunctionStmt", "source": "function func_interface(x) result(res)" }, { - "id": "0x55ef964877e8-FunctionStmt", + "id": "0x55c2dfad67e8-FunctionStmt", "prefix": [], - "functionName": "0x55ef96487848-Name", + "functionName": "0x55c2dfad6848-Name", "paramNames": [ - "0x55ef964ecf60-Name" + "0x55c2dfb3bf60-Name" ], - "suffix": "0x55ef964877e8-Suffix" + "suffix": "0x55c2dfad67e8-Suffix" }, { - "id": "0x55ef96487848-Name", + "id": "0x55c2dfad6848-Name", "source": "func_interface" }, { - "id": "0x55ef964ecf60-Name", + "id": "0x55c2dfb3bf60-Name", "source": "x" }, { - "id": "0x55ef964877e8-Suffix", - "resultName": "0x55ef96487808-Name" + "id": "0x55c2dfad67e8-Suffix", + "resultName": "0x55c2dfad6808-Name" }, { - "id": "0x55ef96487808-Name", + "id": "0x55c2dfad6808-Name", "source": "res" }, { - "id": "0x55ef9644eb00-SpecificationPart", - "ImplicitPart": "0x55ef9644eb18-ImplicitPart", + "id": "0x55c2dfa9db00-SpecificationPart", + "ImplicitPart": "0x55c2dfa9db18-ImplicitPart", "DeclarationConstruct": [ - "0x55ef964b04e0-DeclarationConstruct", - "0x55ef964beda0-DeclarationConstruct" + "0x55c2dfaff4e0-DeclarationConstruct", + "0x55c2dfb0dda0-DeclarationConstruct" ] }, { - "id": "0x55ef9644eb18-ImplicitPart" + "id": "0x55c2dfa9db18-ImplicitPart" }, { - "id": "0x55ef964b04e0-DeclarationConstruct", + "id": "0x55c2dfaff4e0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55ef964b04e0-SpecificationConstruct" + "SpecificationConstruct": "0x55c2dfaff4e0-SpecificationConstruct" }, { - "id": "0x55ef964b04e0-SpecificationConstruct", + "id": "0x55c2dfaff4e0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55ef964b04e0-Statement" + "Statement": "0x55c2dfaff4e0-Statement" }, { - "id": "0x55ef964b04e0-Statement", - "statement": "0x55ef964de0f0-TypeDeclarationStmt", + "id": "0x55c2dfaff4e0-Statement", + "statement": "0x55c2dfb2d0f0-TypeDeclarationStmt", "source": "integer, intent(in) :: x" }, { - "id": "0x55ef964de0f0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55ef964de120-DeclarationTypeSpec", + "id": "0x55c2dfb2d0f0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55c2dfb2d120-DeclarationTypeSpec", "AttrSpec": [ - "0x55ef964de200-AttrSpec" + "0x55c2dfb2d200-AttrSpec" ], "EntityDecl": [ - "0x55ef964de250-EntityDecl" + "0x55c2dfb2d250-EntityDecl" ] }, { - "id": "0x55ef964de120-DeclarationTypeSpec", + "id": "0x55c2dfb2d120-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55ef964de120-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55c2dfb2d120-IntrinsicTypeSpec" }, { - "id": "0x55ef964de120-IntrinsicTypeSpec", + "id": "0x55c2dfb2d120-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55ef964de120-IntegerTypeSpec" + "IntegerTypeSpec": "0x55c2dfb2d120-IntegerTypeSpec" }, { - "id": "0x55ef964de120-IntegerTypeSpec" + "id": "0x55c2dfb2d120-IntegerTypeSpec" }, { - "id": "0x55ef964de200-AttrSpec", + "id": "0x55c2dfb2d200-AttrSpec", "variantKey": "IntentSpec", - "IntentSpec": "0x55ef964de200-IntentSpec" + "IntentSpec": "0x55c2dfb2d200-IntentSpec" }, { - "id": "0x55ef964de200-IntentSpec", - "Intent": "0x55ef964de200-Intent", + "id": "0x55c2dfb2d200-IntentSpec", + "Intent": "0x55c2dfb2d200-Intent", "intent": "In" }, { - "id": "0x55ef964de200-Intent", + "id": "0x55c2dfb2d200-Intent", "disambiguation": "Fortran::parser::IntentSpec::Intent", "value": "In" }, { - "id": "0x55ef964de250-EntityDecl", - "Name": "0x55ef964de308-Name" + "id": "0x55c2dfb2d250-EntityDecl", + "Name": "0x55c2dfb2d308-Name" }, { - "id": "0x55ef964de308-Name", + "id": "0x55c2dfb2d308-Name", "source": "x" }, { - "id": "0x55ef964beda0-DeclarationConstruct", + "id": "0x55c2dfb0dda0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55ef964beda0-SpecificationConstruct" + "SpecificationConstruct": "0x55c2dfb0dda0-SpecificationConstruct" }, { - "id": "0x55ef964beda0-SpecificationConstruct", + "id": "0x55c2dfb0dda0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55ef964beda0-Statement" + "Statement": "0x55c2dfb0dda0-Statement" }, { - "id": "0x55ef964beda0-Statement", - "statement": "0x55ef964de170-TypeDeclarationStmt", + "id": "0x55c2dfb0dda0-Statement", + "statement": "0x55c2dfb2d170-TypeDeclarationStmt", "source": "integer :: res" }, { - "id": "0x55ef964de170-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55ef964de1a0-DeclarationTypeSpec", + "id": "0x55c2dfb2d170-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55c2dfb2d1a0-DeclarationTypeSpec", "EntityDecl": [ - "0x55ef964de3c0-EntityDecl" + "0x55c2dfb2d3c0-EntityDecl" ] }, { - "id": "0x55ef964de1a0-DeclarationTypeSpec", + "id": "0x55c2dfb2d1a0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55ef964de1a0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55c2dfb2d1a0-IntrinsicTypeSpec" }, { - "id": "0x55ef964de1a0-IntrinsicTypeSpec", + "id": "0x55c2dfb2d1a0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55ef964de1a0-IntegerTypeSpec" + "IntegerTypeSpec": "0x55c2dfb2d1a0-IntegerTypeSpec" }, { - "id": "0x55ef964de1a0-IntegerTypeSpec" + "id": "0x55c2dfb2d1a0-IntegerTypeSpec" }, { - "id": "0x55ef964de3c0-EntityDecl", - "Name": "0x55ef964de478-Name" + "id": "0x55c2dfb2d3c0-EntityDecl", + "Name": "0x55c2dfb2d478-Name" }, { - "id": "0x55ef964de478-Name", + "id": "0x55c2dfb2d478-Name", "source": "res" }, { - "id": "0x55ef96487790-Statement", - "statement": "0x55ef964877a0-EndFunctionStmt", + "id": "0x55c2dfad6790-Statement", + "statement": "0x55c2dfad67a0-EndFunctionStmt", "source": "end function func_interface" }, { - "id": "0x55ef964877a0-EndFunctionStmt", - "Name": "0x55ef964877a0-Name" + "id": "0x55c2dfad67a0-EndFunctionStmt", + "Name": "0x55c2dfad67a0-Name" }, { - "id": "0x55ef964877a0-Name", + "id": "0x55c2dfad67a0-Name", "source": "func_interface" }, { - "id": "0x55ef964de520-Statement", - "statement": "0x55ef964de530-EndInterfaceStmt", + "id": "0x55c2dfb2d520-Statement", + "statement": "0x55c2dfb2d530-EndInterfaceStmt", "source": "end interface" }, { - "id": "0x55ef964de530-EndInterfaceStmt" + "id": "0x55c2dfb2d530-EndInterfaceStmt" }, { - "id": "0x55ef964de880-DeclarationConstruct", + "id": "0x55c2dfb2d880-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55ef964de880-SpecificationConstruct" + "SpecificationConstruct": "0x55c2dfb2d880-SpecificationConstruct" }, { - "id": "0x55ef964de880-SpecificationConstruct", + "id": "0x55c2dfb2d880-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55ef964de880-Statement" + "Statement": "0x55c2dfb2d880-Statement" }, { - "id": "0x55ef964de880-Statement", - "statement": "0x55ef964f4e40-ProcedureDeclarationStmt", + "id": "0x55c2dfb2d880-Statement", + "statement": "0x55c2dfb43e40-ProcedureDeclarationStmt", "source": "procedure(func_interface), pointer :: ptr_proc => null()" }, { - "id": "0x55ef964f4e40-ProcedureDeclarationStmt", - "ProcInterface": "0x55ef964f4e70-ProcInterface", + "id": "0x55c2dfb43e40-ProcedureDeclarationStmt", + "ProcInterface": "0x55c2dfb43e70-ProcInterface", "ProcAttrSpec": [ - "0x55ef964ed040-ProcAttrSpec" + "0x55c2dfb3c040-ProcAttrSpec" ], "ProcDecl": [ - "0x55ef964de7c0-ProcDecl" + "0x55c2dfb2d7c0-ProcDecl" ] }, { - "id": "0x55ef964f4e70-ProcInterface", + "id": "0x55c2dfb43e70-ProcInterface", "variantKey": "Name", - "Name": "0x55ef964f4e70-Name" + "Name": "0x55c2dfb43e70-Name" }, { - "id": "0x55ef964f4e70-Name", + "id": "0x55c2dfb43e70-Name", "source": "func_interface" }, { - "id": "0x55ef964ed040-ProcAttrSpec", + "id": "0x55c2dfb3c040-ProcAttrSpec", "variantKey": "Pointer", - "Pointer": "0x55ef964ed040-Pointer" + "Pointer": "0x55c2dfb3c040-Pointer" }, { - "id": "0x55ef964ed040-Pointer", + "id": "0x55c2dfb3c040-Pointer", "keyword": "Pointer" }, { - "id": "0x55ef964de7c0-ProcDecl", - "Name": "0x55ef964de7e8-Name", - "ProcPointerInit": "0x55ef964de7c0-ProcPointerInit" + "id": "0x55c2dfb2d7c0-ProcDecl", + "Name": "0x55c2dfb2d7e8-Name", + "ProcPointerInit": "0x55c2dfb2d7c0-ProcPointerInit" }, { - "id": "0x55ef964de7e8-Name", + "id": "0x55c2dfb2d7e8-Name", "source": "ptr_proc" }, { - "id": "0x55ef964de7c0-ProcPointerInit", + "id": "0x55c2dfb2d7c0-ProcPointerInit", "variantKey": "NullInit", - "NullInit": "0x55ef964de7c0-NullInit" + "NullInit": "0x55c2dfb2d7c0-NullInit" }, { - "id": "0x55ef964de7c0-NullInit", - "Expr": "0x55ef964de6d0-Expr" + "id": "0x55c2dfb2d7c0-NullInit", + "Expr": "0x55c2dfb2d6d0-Expr" }, { - "id": "0x55ef964de6d0-Expr", + "id": "0x55c2dfb2d6d0-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55ef964f53b0-FunctionReference" + "FunctionReference": "0x55c2dfb443b0-FunctionReference" }, { - "id": "0x55ef964f53b0-FunctionReference", - "Call": "0x55ef964f53b0-Call" + "id": "0x55c2dfb443b0-FunctionReference", + "Call": "0x55c2dfb443b0-Call" }, { - "id": "0x55ef964f53b0-Call", - "ProcedureDesignator": "0x55ef964f53c8-ProcedureDesignator" + "id": "0x55c2dfb443b0-Call", + "ProcedureDesignator": "0x55c2dfb443c8-ProcedureDesignator" }, { - "id": "0x55ef964f53c8-ProcedureDesignator", + "id": "0x55c2dfb443c8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55ef964f53c8-Name" + "Name": "0x55c2dfb443c8-Name" }, { - "id": "0x55ef964f53c8-Name", + "id": "0x55c2dfb443c8-Name", "source": "null" }, { - "id": "0x55ef964ef1e8-ExecutionPart", + "id": "0x55c2dfb3e1e8-ExecutionPart", "ExecutionPartConstruct": [ - "0x55ef964f4a50-ExecutionPartConstruct", - "0x55ef964df8e0-ExecutionPartConstruct", - "0x55ef964dfa70-ExecutionPartConstruct", - "0x55ef964dfe70-ExecutionPartConstruct", - "0x55ef964e0000-ExecutionPartConstruct", - "0x55ef964e0400-ExecutionPartConstruct", - "0x55ef964e0860-ExecutionPartConstruct", - "0x55ef964e0ba0-ExecutionPartConstruct", - "0x55ef964e0f20-ExecutionPartConstruct", - "0x55ef964e29d0-ExecutionPartConstruct", - "0x55ef964f54b0-ExecutionPartConstruct", - "0x55ef964e3a00-ExecutionPartConstruct", - "0x55ef964e2270-ExecutionPartConstruct", - "0x55ef964e11a0-ExecutionPartConstruct", - "0x55ef964e3390-ExecutionPartConstruct", - "0x55ef964e3330-ExecutionPartConstruct", - "0x55ef964e34d0-ExecutionPartConstruct", - "0x55ef964e5090-ExecutionPartConstruct", - "0x55ef964e5220-ExecutionPartConstruct", - "0x55ef964e53b0-ExecutionPartConstruct", - "0x55ef964e5540-ExecutionPartConstruct", - "0x55ef964e56d0-ExecutionPartConstruct", - "0x55ef964e5860-ExecutionPartConstruct", - "0x55ef964e59f0-ExecutionPartConstruct", - "0x55ef964f67a0-ExecutionPartConstruct" + "0x55c2dfb43a50-ExecutionPartConstruct", + "0x55c2dfb2e8e0-ExecutionPartConstruct", + "0x55c2dfb2ea70-ExecutionPartConstruct", + "0x55c2dfb2ee70-ExecutionPartConstruct", + "0x55c2dfb2f000-ExecutionPartConstruct", + "0x55c2dfb2f400-ExecutionPartConstruct", + "0x55c2dfb2f860-ExecutionPartConstruct", + "0x55c2dfb2fba0-ExecutionPartConstruct", + "0x55c2dfb2ff20-ExecutionPartConstruct", + "0x55c2dfb319d0-ExecutionPartConstruct", + "0x55c2dfb444b0-ExecutionPartConstruct", + "0x55c2dfb32a00-ExecutionPartConstruct", + "0x55c2dfb31270-ExecutionPartConstruct", + "0x55c2dfb301a0-ExecutionPartConstruct", + "0x55c2dfb32390-ExecutionPartConstruct", + "0x55c2dfb32330-ExecutionPartConstruct", + "0x55c2dfb324d0-ExecutionPartConstruct", + "0x55c2dfb34090-ExecutionPartConstruct", + "0x55c2dfb34220-ExecutionPartConstruct", + "0x55c2dfb343b0-ExecutionPartConstruct", + "0x55c2dfb34540-ExecutionPartConstruct", + "0x55c2dfb346d0-ExecutionPartConstruct", + "0x55c2dfb34860-ExecutionPartConstruct", + "0x55c2dfb349f0-ExecutionPartConstruct", + "0x55c2dfb457a0-ExecutionPartConstruct" ] }, { - "id": "0x55ef964ef1e8-ExecutionPartConstruct" + "id": "0x55c2dfb3e1e8-ExecutionPartConstruct" }, { - "id": "0x55ef964f4a50-ExecutionPartConstruct", + "id": "0x55c2dfb43a50-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ef964f4a50-ExecutableConstruct" + "ExecutableConstruct": "0x55c2dfb43a50-ExecutableConstruct" }, { - "id": "0x55ef964f4a50-ExecutableConstruct", + "id": "0x55c2dfb43a50-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ef964f4a50-Statement" + "Statement": "0x55c2dfb43a50-Statement" }, { - "id": "0x55ef964f4a50-Statement", - "statement": "0x55ef964f4a60-ActionStmt", + "id": "0x55c2dfb43a50-Statement", + "statement": "0x55c2dfb43a60-ActionStmt", "source": "ptr_scalar => scalar_target" }, { - "id": "0x55ef964f4a60-ActionStmt", + "id": "0x55c2dfb43a60-ActionStmt", "variantKey": "PointerAssignmentStmt", - "PointerAssignmentStmt": "0x55ef964f4910-PointerAssignmentStmt" + "PointerAssignmentStmt": "0x55c2dfb43910-PointerAssignmentStmt" }, { - "id": "0x55ef964f4910-PointerAssignmentStmt", - "DataRef": "0x55ef964f4a10-DataRef", - "Bounds": "0x55ef964f49f0-Bounds", - "Expr": "0x55ef964f4920-Expr", + "id": "0x55c2dfb43910-PointerAssignmentStmt", + "DataRef": "0x55c2dfb43a10-DataRef", + "Bounds": "0x55c2dfb439f0-Bounds", + "Expr": "0x55c2dfb43920-Expr", "variantKey": "BoundsSpec", "BoundsSpec": [] }, { - "id": "0x55ef964f4a10-DataRef", + "id": "0x55c2dfb43a10-DataRef", "variantKey": "Name", - "Name": "0x55ef964f4a10-Name" + "Name": "0x55c2dfb43a10-Name" }, { - "id": "0x55ef964f4a10-Name", + "id": "0x55c2dfb43a10-Name", "source": "ptr_scalar" }, { - "id": "0x55ef964f49f0-Bounds", + "id": "0x55c2dfb439f0-Bounds", "variantKey": "list" }, { - "id": "0x55ef964f4920-Expr", + "id": "0x55c2dfb43920-Expr", "variantKey": "Designator", - "Designator": "0x55ef964de610-Designator" + "Designator": "0x55c2dfb2d610-Designator" }, { - "id": "0x55ef964de610-Designator", + "id": "0x55c2dfb2d610-Designator", "variantKey": "DataRef", - "DataRef": "0x55ef964de620-DataRef" + "DataRef": "0x55c2dfb2d620-DataRef" }, { - "id": "0x55ef964de620-DataRef", + "id": "0x55c2dfb2d620-DataRef", "variantKey": "Name", - "Name": "0x55ef964de620-Name" + "Name": "0x55c2dfb2d620-Name" }, { - "id": "0x55ef964de620-Name", + "id": "0x55c2dfb2d620-Name", "source": "scalar_target" }, { - "id": "0x55ef964df8e0-ExecutionPartConstruct", + "id": "0x55c2dfb2e8e0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ef964df8e0-ExecutableConstruct" + "ExecutableConstruct": "0x55c2dfb2e8e0-ExecutableConstruct" }, { - "id": "0x55ef964df8e0-ExecutableConstruct", + "id": "0x55c2dfb2e8e0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ef964df8e0-Statement" + "Statement": "0x55c2dfb2e8e0-Statement" }, { - "id": "0x55ef964df8e0-Statement", - "statement": "0x55ef964df8f0-ActionStmt", + "id": "0x55c2dfb2e8e0-Statement", + "statement": "0x55c2dfb2e8f0-ActionStmt", "source": "print *, \"1. Scalar pointer:\", ptr_scalar" }, { - "id": "0x55ef964df8f0-ActionStmt", + "id": "0x55c2dfb2e8f0-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x55ef964df760-PrintStmt" + "PrintStmt": "0x55c2dfb2e760-PrintStmt" }, { - "id": "0x55ef964df760-PrintStmt", - "Format": "0x55ef964df778-Format", + "id": "0x55c2dfb2e760-PrintStmt", + "Format": "0x55c2dfb2e778-Format", "OutputItem": [ - "0x55ef964df610-OutputItem", - "0x55ef964df520-OutputItem" + "0x55c2dfb2e610-OutputItem", + "0x55c2dfb2e520-OutputItem" ] }, { - "id": "0x55ef964df778-Format", + "id": "0x55c2dfb2e778-Format", "variantKey": "Star", - "Star": "0x55ef964df778-Star" + "Star": "0x55c2dfb2e778-Star" }, { - "id": "0x55ef964df778-Star" + "id": "0x55c2dfb2e778-Star" }, { - "id": "0x55ef964df610-OutputItem", + "id": "0x55c2dfb2e610-OutputItem", "variantKey": "Expr", - "Expr": "0x55ef964df610-Expr" + "Expr": "0x55c2dfb2e610-Expr" }, { - "id": "0x55ef964df610-Expr", + "id": "0x55c2dfb2e610-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964df630-LiteralConstant" + "LiteralConstant": "0x55c2dfb2e630-LiteralConstant" }, { - "id": "0x55ef964df630-LiteralConstant", + "id": "0x55c2dfb2e630-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55ef964df630-CharLiteralConstant" + "CharLiteralConstant": "0x55c2dfb2e630-CharLiteralConstant" }, { - "id": "0x55ef964df630-CharLiteralConstant", + "id": "0x55c2dfb2e630-CharLiteralConstant", "string": "1. Scalar pointer:" }, { - "id": "0x55ef964df520-OutputItem", + "id": "0x55c2dfb2e520-OutputItem", "variantKey": "Expr", - "Expr": "0x55ef964df520-Expr" + "Expr": "0x55c2dfb2e520-Expr" }, { - "id": "0x55ef964df520-Expr", + "id": "0x55c2dfb2e520-Expr", "variantKey": "Designator", - "Designator": "0x55ef964df170-Designator" + "Designator": "0x55c2dfb2e170-Designator" }, { - "id": "0x55ef964df170-Designator", + "id": "0x55c2dfb2e170-Designator", "variantKey": "DataRef", - "DataRef": "0x55ef964df180-DataRef" + "DataRef": "0x55c2dfb2e180-DataRef" }, { - "id": "0x55ef964df180-DataRef", + "id": "0x55c2dfb2e180-DataRef", "variantKey": "Name", - "Name": "0x55ef964df180-Name" + "Name": "0x55c2dfb2e180-Name" }, { - "id": "0x55ef964df180-Name", + "id": "0x55c2dfb2e180-Name", "source": "ptr_scalar" }, { - "id": "0x55ef964dfa70-ExecutionPartConstruct", + "id": "0x55c2dfb2ea70-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ef964dfa70-ExecutableConstruct" + "ExecutableConstruct": "0x55c2dfb2ea70-ExecutableConstruct" }, { - "id": "0x55ef964dfa70-ExecutableConstruct", + "id": "0x55c2dfb2ea70-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ef964dfa70-Statement" + "Statement": "0x55c2dfb2ea70-Statement" }, { - "id": "0x55ef964dfa70-Statement", - "statement": "0x55ef964dfa80-ActionStmt", + "id": "0x55c2dfb2ea70-Statement", + "statement": "0x55c2dfb2ea80-ActionStmt", "source": "ptr_copy => ptr_scalar" }, { - "id": "0x55ef964dfa80-ActionStmt", + "id": "0x55c2dfb2ea80-ActionStmt", "variantKey": "PointerAssignmentStmt", - "PointerAssignmentStmt": "0x55ef964df930-PointerAssignmentStmt" + "PointerAssignmentStmt": "0x55c2dfb2e930-PointerAssignmentStmt" }, { - "id": "0x55ef964df930-PointerAssignmentStmt", - "DataRef": "0x55ef964dfa30-DataRef", - "Bounds": "0x55ef964dfa10-Bounds", - "Expr": "0x55ef964df940-Expr", + "id": "0x55c2dfb2e930-PointerAssignmentStmt", + "DataRef": "0x55c2dfb2ea30-DataRef", + "Bounds": "0x55c2dfb2ea10-Bounds", + "Expr": "0x55c2dfb2e940-Expr", "variantKey": "BoundsSpec", "BoundsSpec": [] }, { - "id": "0x55ef964dfa30-DataRef", + "id": "0x55c2dfb2ea30-DataRef", "variantKey": "Name", - "Name": "0x55ef964dfa30-Name" + "Name": "0x55c2dfb2ea30-Name" }, { - "id": "0x55ef964dfa30-Name", + "id": "0x55c2dfb2ea30-Name", "source": "ptr_copy" }, { - "id": "0x55ef964dfa10-Bounds", + "id": "0x55c2dfb2ea10-Bounds", "variantKey": "list" }, { - "id": "0x55ef964df940-Expr", + "id": "0x55c2dfb2e940-Expr", "variantKey": "Designator", - "Designator": "0x55ef964def50-Designator" + "Designator": "0x55c2dfb2df50-Designator" }, { - "id": "0x55ef964def50-Designator", + "id": "0x55c2dfb2df50-Designator", "variantKey": "DataRef", - "DataRef": "0x55ef964def60-DataRef" + "DataRef": "0x55c2dfb2df60-DataRef" }, { - "id": "0x55ef964def60-DataRef", + "id": "0x55c2dfb2df60-DataRef", "variantKey": "Name", - "Name": "0x55ef964def60-Name" + "Name": "0x55c2dfb2df60-Name" }, { - "id": "0x55ef964def60-Name", + "id": "0x55c2dfb2df60-Name", "source": "ptr_scalar" }, { - "id": "0x55ef964dfe70-ExecutionPartConstruct", + "id": "0x55c2dfb2ee70-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ef964dfe70-ExecutableConstruct" + "ExecutableConstruct": "0x55c2dfb2ee70-ExecutableConstruct" }, { - "id": "0x55ef964dfe70-ExecutableConstruct", + "id": "0x55c2dfb2ee70-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ef964dfe70-Statement" + "Statement": "0x55c2dfb2ee70-Statement" }, { - "id": "0x55ef964dfe70-Statement", - "statement": "0x55ef964dfe80-ActionStmt", + "id": "0x55c2dfb2ee70-Statement", + "statement": "0x55c2dfb2ee80-ActionStmt", "source": "print *, \"2. Pointer copy:\", ptr_copy" }, { - "id": "0x55ef964dfe80-ActionStmt", + "id": "0x55c2dfb2ee80-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x55ef964dfd60-PrintStmt" + "PrintStmt": "0x55c2dfb2ed60-PrintStmt" }, { - "id": "0x55ef964dfd60-PrintStmt", - "Format": "0x55ef964dfd78-Format", + "id": "0x55c2dfb2ed60-PrintStmt", + "Format": "0x55c2dfb2ed78-Format", "OutputItem": [ - "0x55ef964dfc80-OutputItem", - "0x55ef964dfb90-OutputItem" + "0x55c2dfb2ec80-OutputItem", + "0x55c2dfb2eb90-OutputItem" ] }, { - "id": "0x55ef964dfd78-Format", + "id": "0x55c2dfb2ed78-Format", "variantKey": "Star", - "Star": "0x55ef964dfd78-Star" + "Star": "0x55c2dfb2ed78-Star" }, { - "id": "0x55ef964dfd78-Star" + "id": "0x55c2dfb2ed78-Star" }, { - "id": "0x55ef964dfc80-OutputItem", + "id": "0x55c2dfb2ec80-OutputItem", "variantKey": "Expr", - "Expr": "0x55ef964dfc80-Expr" + "Expr": "0x55c2dfb2ec80-Expr" }, { - "id": "0x55ef964dfc80-Expr", + "id": "0x55c2dfb2ec80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964dfca0-LiteralConstant" + "LiteralConstant": "0x55c2dfb2eca0-LiteralConstant" }, { - "id": "0x55ef964dfca0-LiteralConstant", + "id": "0x55c2dfb2eca0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55ef964dfca0-CharLiteralConstant" + "CharLiteralConstant": "0x55c2dfb2eca0-CharLiteralConstant" }, { - "id": "0x55ef964dfca0-CharLiteralConstant", + "id": "0x55c2dfb2eca0-CharLiteralConstant", "string": "2. Pointer copy:" }, { - "id": "0x55ef964dfb90-OutputItem", + "id": "0x55c2dfb2eb90-OutputItem", "variantKey": "Expr", - "Expr": "0x55ef964dfb90-Expr" + "Expr": "0x55c2dfb2eb90-Expr" }, { - "id": "0x55ef964dfb90-Expr", + "id": "0x55c2dfb2eb90-Expr", "variantKey": "Designator", - "Designator": "0x55ef964dfb20-Designator" + "Designator": "0x55c2dfb2eb20-Designator" }, { - "id": "0x55ef964dfb20-Designator", + "id": "0x55c2dfb2eb20-Designator", "variantKey": "DataRef", - "DataRef": "0x55ef964dfb30-DataRef" + "DataRef": "0x55c2dfb2eb30-DataRef" }, { - "id": "0x55ef964dfb30-DataRef", + "id": "0x55c2dfb2eb30-DataRef", "variantKey": "Name", - "Name": "0x55ef964dfb30-Name" + "Name": "0x55c2dfb2eb30-Name" }, { - "id": "0x55ef964dfb30-Name", + "id": "0x55c2dfb2eb30-Name", "source": "ptr_copy" }, { - "id": "0x55ef964e0000-ExecutionPartConstruct", + "id": "0x55c2dfb2f000-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ef964e0000-ExecutableConstruct" + "ExecutableConstruct": "0x55c2dfb2f000-ExecutableConstruct" }, { - "id": "0x55ef964e0000-ExecutableConstruct", + "id": "0x55c2dfb2f000-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ef964e0000-Statement" + "Statement": "0x55c2dfb2f000-Statement" }, { - "id": "0x55ef964e0000-Statement", - "statement": "0x55ef964e0010-ActionStmt", + "id": "0x55c2dfb2f000-Statement", + "statement": "0x55c2dfb2f010-ActionStmt", "source": "ptr_array => array_target" }, { - "id": "0x55ef964e0010-ActionStmt", + "id": "0x55c2dfb2f010-ActionStmt", "variantKey": "PointerAssignmentStmt", - "PointerAssignmentStmt": "0x55ef964dfec0-PointerAssignmentStmt" + "PointerAssignmentStmt": "0x55c2dfb2eec0-PointerAssignmentStmt" }, { - "id": "0x55ef964dfec0-PointerAssignmentStmt", - "DataRef": "0x55ef964dffc0-DataRef", - "Bounds": "0x55ef964dffa0-Bounds", - "Expr": "0x55ef964dfed0-Expr", + "id": "0x55c2dfb2eec0-PointerAssignmentStmt", + "DataRef": "0x55c2dfb2efc0-DataRef", + "Bounds": "0x55c2dfb2efa0-Bounds", + "Expr": "0x55c2dfb2eed0-Expr", "variantKey": "BoundsSpec", "BoundsSpec": [] }, { - "id": "0x55ef964dffc0-DataRef", + "id": "0x55c2dfb2efc0-DataRef", "variantKey": "Name", - "Name": "0x55ef964dffc0-Name" + "Name": "0x55c2dfb2efc0-Name" }, { - "id": "0x55ef964dffc0-Name", + "id": "0x55c2dfb2efc0-Name", "source": "ptr_array" }, { - "id": "0x55ef964dffa0-Bounds", + "id": "0x55c2dfb2efa0-Bounds", "variantKey": "list" }, { - "id": "0x55ef964dfed0-Expr", + "id": "0x55c2dfb2eed0-Expr", "variantKey": "Designator", - "Designator": "0x55ef964dfac0-Designator" + "Designator": "0x55c2dfb2eac0-Designator" }, { - "id": "0x55ef964dfac0-Designator", + "id": "0x55c2dfb2eac0-Designator", "variantKey": "DataRef", - "DataRef": "0x55ef964dfad0-DataRef" + "DataRef": "0x55c2dfb2ead0-DataRef" }, { - "id": "0x55ef964dfad0-DataRef", + "id": "0x55c2dfb2ead0-DataRef", "variantKey": "Name", - "Name": "0x55ef964dfad0-Name" + "Name": "0x55c2dfb2ead0-Name" }, { - "id": "0x55ef964dfad0-Name", + "id": "0x55c2dfb2ead0-Name", "source": "array_target" }, { - "id": "0x55ef964e0400-ExecutionPartConstruct", + "id": "0x55c2dfb2f400-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ef964e0400-ExecutableConstruct" + "ExecutableConstruct": "0x55c2dfb2f400-ExecutableConstruct" }, { - "id": "0x55ef964e0400-ExecutableConstruct", + "id": "0x55c2dfb2f400-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ef964e0400-Statement" + "Statement": "0x55c2dfb2f400-Statement" }, { - "id": "0x55ef964e0400-Statement", - "statement": "0x55ef964e0410-ActionStmt", + "id": "0x55c2dfb2f400-Statement", + "statement": "0x55c2dfb2f410-ActionStmt", "source": "print *, \"3. Whole array:\", ptr_array" }, { - "id": "0x55ef964e0410-ActionStmt", + "id": "0x55c2dfb2f410-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x55ef964e02f0-PrintStmt" + "PrintStmt": "0x55c2dfb2f2f0-PrintStmt" }, { - "id": "0x55ef964e02f0-PrintStmt", - "Format": "0x55ef964e0308-Format", + "id": "0x55c2dfb2f2f0-PrintStmt", + "Format": "0x55c2dfb2f308-Format", "OutputItem": [ - "0x55ef964e0210-OutputItem", - "0x55ef964e0120-OutputItem" + "0x55c2dfb2f210-OutputItem", + "0x55c2dfb2f120-OutputItem" ] }, { - "id": "0x55ef964e0308-Format", + "id": "0x55c2dfb2f308-Format", "variantKey": "Star", - "Star": "0x55ef964e0308-Star" + "Star": "0x55c2dfb2f308-Star" }, { - "id": "0x55ef964e0308-Star" + "id": "0x55c2dfb2f308-Star" }, { - "id": "0x55ef964e0210-OutputItem", + "id": "0x55c2dfb2f210-OutputItem", "variantKey": "Expr", - "Expr": "0x55ef964e0210-Expr" + "Expr": "0x55c2dfb2f210-Expr" }, { - "id": "0x55ef964e0210-Expr", + "id": "0x55c2dfb2f210-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964e0230-LiteralConstant" + "LiteralConstant": "0x55c2dfb2f230-LiteralConstant" }, { - "id": "0x55ef964e0230-LiteralConstant", + "id": "0x55c2dfb2f230-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55ef964e0230-CharLiteralConstant" + "CharLiteralConstant": "0x55c2dfb2f230-CharLiteralConstant" }, { - "id": "0x55ef964e0230-CharLiteralConstant", + "id": "0x55c2dfb2f230-CharLiteralConstant", "string": "3. Whole array:" }, { - "id": "0x55ef964e0120-OutputItem", + "id": "0x55c2dfb2f120-OutputItem", "variantKey": "Expr", - "Expr": "0x55ef964e0120-Expr" + "Expr": "0x55c2dfb2f120-Expr" }, { - "id": "0x55ef964e0120-Expr", + "id": "0x55c2dfb2f120-Expr", "variantKey": "Designator", - "Designator": "0x55ef964e00b0-Designator" + "Designator": "0x55c2dfb2f0b0-Designator" }, { - "id": "0x55ef964e00b0-Designator", + "id": "0x55c2dfb2f0b0-Designator", "variantKey": "DataRef", - "DataRef": "0x55ef964e00c0-DataRef" + "DataRef": "0x55c2dfb2f0c0-DataRef" }, { - "id": "0x55ef964e00c0-DataRef", + "id": "0x55c2dfb2f0c0-DataRef", "variantKey": "Name", - "Name": "0x55ef964e00c0-Name" + "Name": "0x55c2dfb2f0c0-Name" }, { - "id": "0x55ef964e00c0-Name", + "id": "0x55c2dfb2f0c0-Name", "source": "ptr_array" }, { - "id": "0x55ef964e0860-ExecutionPartConstruct", + "id": "0x55c2dfb2f860-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ef964e0860-ExecutableConstruct" + "ExecutableConstruct": "0x55c2dfb2f860-ExecutableConstruct" }, { - "id": "0x55ef964e0860-ExecutableConstruct", + "id": "0x55c2dfb2f860-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ef964e0860-Statement" + "Statement": "0x55c2dfb2f860-Statement" }, { - "id": "0x55ef964e0860-Statement", - "statement": "0x55ef964e0870-ActionStmt", + "id": "0x55c2dfb2f860-Statement", + "statement": "0x55c2dfb2f870-ActionStmt", "source": "ptr_slice => array_target(2:4)" }, { - "id": "0x55ef964e0870-ActionStmt", + "id": "0x55c2dfb2f870-ActionStmt", "variantKey": "PointerAssignmentStmt", - "PointerAssignmentStmt": "0x55ef964e0720-PointerAssignmentStmt" + "PointerAssignmentStmt": "0x55c2dfb2f720-PointerAssignmentStmt" }, { - "id": "0x55ef964e0720-PointerAssignmentStmt", - "DataRef": "0x55ef964e0820-DataRef", - "Bounds": "0x55ef964e0800-Bounds", - "Expr": "0x55ef964e0730-Expr", + "id": "0x55c2dfb2f720-PointerAssignmentStmt", + "DataRef": "0x55c2dfb2f820-DataRef", + "Bounds": "0x55c2dfb2f800-Bounds", + "Expr": "0x55c2dfb2f730-Expr", "variantKey": "BoundsSpec", "BoundsSpec": [] }, { - "id": "0x55ef964e0820-DataRef", + "id": "0x55c2dfb2f820-DataRef", "variantKey": "Name", - "Name": "0x55ef964e0820-Name" + "Name": "0x55c2dfb2f820-Name" }, { - "id": "0x55ef964e0820-Name", + "id": "0x55c2dfb2f820-Name", "source": "ptr_slice" }, { - "id": "0x55ef964e0800-Bounds", + "id": "0x55c2dfb2f800-Bounds", "variantKey": "list" }, { - "id": "0x55ef964e0730-Expr", + "id": "0x55c2dfb2f730-Expr", "variantKey": "Designator", - "Designator": "0x55ef964e06c0-Designator" + "Designator": "0x55c2dfb2f6c0-Designator" }, { - "id": "0x55ef964e06c0-Designator", + "id": "0x55c2dfb2f6c0-Designator", "variantKey": "DataRef", - "DataRef": "0x55ef964e06d0-DataRef" + "DataRef": "0x55c2dfb2f6d0-DataRef" }, { - "id": "0x55ef964e06d0-DataRef", + "id": "0x55c2dfb2f6d0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55ef964ed070-ArrayElement" + "ArrayElement": "0x55c2dfb3c070-ArrayElement" }, { - "id": "0x55ef964ed070-ArrayElement", - "base": "0x55ef964ed070-DataRef", + "id": "0x55c2dfb3c070-ArrayElement", + "base": "0x55c2dfb3c070-DataRef", "subscripts": [ - "0x55ef964e0620-SectionSubscript" + "0x55c2dfb2f620-SectionSubscript" ] }, { - "id": "0x55ef964ed070-DataRef", + "id": "0x55c2dfb3c070-DataRef", "variantKey": "Name", - "Name": "0x55ef964ed070-Name" + "Name": "0x55c2dfb3c070-Name" }, { - "id": "0x55ef964ed070-Name", + "id": "0x55c2dfb3c070-Name", "source": "array_target" }, { - "id": "0x55ef964e0620-SectionSubscript", + "id": "0x55c2dfb2f620-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x55ef964e0620-SubscriptTriplet" + "SubscriptTriplet": "0x55c2dfb2f620-SubscriptTriplet" }, { - "id": "0x55ef964e0620-SubscriptTriplet", - "start": "0x55ef964e0450-Expr", - "end": "0x55ef964e0530-Expr" + "id": "0x55c2dfb2f620-SubscriptTriplet", + "start": "0x55c2dfb2f450-Expr", + "end": "0x55c2dfb2f530-Expr" }, { - "id": "0x55ef964e0450-Expr", + "id": "0x55c2dfb2f450-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964e0470-LiteralConstant" + "LiteralConstant": "0x55c2dfb2f470-LiteralConstant" }, { - "id": "0x55ef964e0470-LiteralConstant", + "id": "0x55c2dfb2f470-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ef964e0470-IntLiteralConstant" + "IntLiteralConstant": "0x55c2dfb2f470-IntLiteralConstant" }, { - "id": "0x55ef964e0470-IntLiteralConstant", + "id": "0x55c2dfb2f470-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x55ef964e0530-Expr", + "id": "0x55c2dfb2f530-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964e0550-LiteralConstant" + "LiteralConstant": "0x55c2dfb2f550-LiteralConstant" }, { - "id": "0x55ef964e0550-LiteralConstant", + "id": "0x55c2dfb2f550-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ef964e0550-IntLiteralConstant" + "IntLiteralConstant": "0x55c2dfb2f550-IntLiteralConstant" }, { - "id": "0x55ef964e0550-IntLiteralConstant", + "id": "0x55c2dfb2f550-IntLiteralConstant", "CharBlock": "4" }, { - "id": "0x55ef964e0ba0-ExecutionPartConstruct", + "id": "0x55c2dfb2fba0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ef964e0ba0-ExecutableConstruct" + "ExecutableConstruct": "0x55c2dfb2fba0-ExecutableConstruct" }, { - "id": "0x55ef964e0ba0-ExecutableConstruct", + "id": "0x55c2dfb2fba0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ef964e0ba0-Statement" + "Statement": "0x55c2dfb2fba0-Statement" }, { - "id": "0x55ef964e0ba0-Statement", - "statement": "0x55ef964e0bb0-ActionStmt", + "id": "0x55c2dfb2fba0-Statement", + "statement": "0x55c2dfb2fbb0-ActionStmt", "source": "print *, \"4. Array slice (2:4):\", ptr_slice" }, { - "id": "0x55ef964e0bb0-ActionStmt", + "id": "0x55c2dfb2fbb0-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x55ef964e0a90-PrintStmt" + "PrintStmt": "0x55c2dfb2fa90-PrintStmt" }, { - "id": "0x55ef964e0a90-PrintStmt", - "Format": "0x55ef964e0aa8-Format", + "id": "0x55c2dfb2fa90-PrintStmt", + "Format": "0x55c2dfb2faa8-Format", "OutputItem": [ - "0x55ef964e09b0-OutputItem", - "0x55ef964e08c0-OutputItem" + "0x55c2dfb2f9b0-OutputItem", + "0x55c2dfb2f8c0-OutputItem" ] }, { - "id": "0x55ef964e0aa8-Format", + "id": "0x55c2dfb2faa8-Format", "variantKey": "Star", - "Star": "0x55ef964e0aa8-Star" + "Star": "0x55c2dfb2faa8-Star" }, { - "id": "0x55ef964e0aa8-Star" + "id": "0x55c2dfb2faa8-Star" }, { - "id": "0x55ef964e09b0-OutputItem", + "id": "0x55c2dfb2f9b0-OutputItem", "variantKey": "Expr", - "Expr": "0x55ef964e09b0-Expr" + "Expr": "0x55c2dfb2f9b0-Expr" }, { - "id": "0x55ef964e09b0-Expr", + "id": "0x55c2dfb2f9b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964e09d0-LiteralConstant" + "LiteralConstant": "0x55c2dfb2f9d0-LiteralConstant" }, { - "id": "0x55ef964e09d0-LiteralConstant", + "id": "0x55c2dfb2f9d0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55ef964e09d0-CharLiteralConstant" + "CharLiteralConstant": "0x55c2dfb2f9d0-CharLiteralConstant" }, { - "id": "0x55ef964e09d0-CharLiteralConstant", + "id": "0x55c2dfb2f9d0-CharLiteralConstant", "string": "4. Array slice (2:4):" }, { - "id": "0x55ef964e08c0-OutputItem", + "id": "0x55c2dfb2f8c0-OutputItem", "variantKey": "Expr", - "Expr": "0x55ef964e08c0-Expr" + "Expr": "0x55c2dfb2f8c0-Expr" }, { - "id": "0x55ef964e08c0-Expr", + "id": "0x55c2dfb2f8c0-Expr", "variantKey": "Designator", - "Designator": "0x55ef964e0660-Designator" + "Designator": "0x55c2dfb2f660-Designator" }, { - "id": "0x55ef964e0660-Designator", + "id": "0x55c2dfb2f660-Designator", "variantKey": "DataRef", - "DataRef": "0x55ef964e0670-DataRef" + "DataRef": "0x55c2dfb2f670-DataRef" }, { - "id": "0x55ef964e0670-DataRef", + "id": "0x55c2dfb2f670-DataRef", "variantKey": "Name", - "Name": "0x55ef964e0670-Name" + "Name": "0x55c2dfb2f670-Name" }, { - "id": "0x55ef964e0670-Name", + "id": "0x55c2dfb2f670-Name", "source": "ptr_slice" }, { - "id": "0x55ef964e0f20-ExecutionPartConstruct", + "id": "0x55c2dfb2ff20-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ef964e0f20-ExecutableConstruct" + "ExecutableConstruct": "0x55c2dfb2ff20-ExecutableConstruct" }, { - "id": "0x55ef964e0f20-ExecutableConstruct", + "id": "0x55c2dfb2ff20-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ef964e0f20-Statement" + "Statement": "0x55c2dfb2ff20-Statement" }, { - "id": "0x55ef964e0f20-Statement", - "statement": "0x55ef964e0f30-ActionStmt", + "id": "0x55c2dfb2ff20-Statement", + "statement": "0x55c2dfb2ff30-ActionStmt", "source": "ptr_lbound(10:) => array_target" }, { - "id": "0x55ef964e0f30-ActionStmt", + "id": "0x55c2dfb2ff30-ActionStmt", "variantKey": "PointerAssignmentStmt", - "PointerAssignmentStmt": "0x55ef964e0de0-PointerAssignmentStmt" + "PointerAssignmentStmt": "0x55c2dfb2fde0-PointerAssignmentStmt" }, { - "id": "0x55ef964e0de0-PointerAssignmentStmt", - "DataRef": "0x55ef964e0ee0-DataRef", - "Bounds": "0x55ef964e0ec0-Bounds", - "Expr": "0x55ef964e0df0-Expr", + "id": "0x55c2dfb2fde0-PointerAssignmentStmt", + "DataRef": "0x55c2dfb2fee0-DataRef", + "Bounds": "0x55c2dfb2fec0-Bounds", + "Expr": "0x55c2dfb2fdf0-Expr", "variantKey": "BoundsSpec", "BoundsSpec": [ - "0x55ef964ed020-BoundsSpec" + "0x55c2dfb3c020-BoundsSpec" ] }, { - "id": "0x55ef964e0ee0-DataRef", + "id": "0x55c2dfb2fee0-DataRef", "variantKey": "Name", - "Name": "0x55ef964e0ee0-Name" + "Name": "0x55c2dfb2fee0-Name" }, { - "id": "0x55ef964e0ee0-Name", + "id": "0x55c2dfb2fee0-Name", "source": "ptr_lbound" }, { - "id": "0x55ef964e0ec0-Bounds", + "id": "0x55c2dfb2fec0-Bounds", "variantKey": "BoundsSpec", "BoundsSpec": [ - "0x55ef964ed020-BoundsSpec" + "0x55c2dfb3c020-BoundsSpec" ] }, { - "id": "0x55ef964ed020-BoundsSpec", - "Expr": "0x55ef964e0bf0-Expr" + "id": "0x55c2dfb3c020-BoundsSpec", + "Expr": "0x55c2dfb2fbf0-Expr" }, { - "id": "0x55ef964e0bf0-Expr", + "id": "0x55c2dfb2fbf0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964e0c10-LiteralConstant" + "LiteralConstant": "0x55c2dfb2fc10-LiteralConstant" }, { - "id": "0x55ef964e0c10-LiteralConstant", + "id": "0x55c2dfb2fc10-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ef964e0c10-IntLiteralConstant" + "IntLiteralConstant": "0x55c2dfb2fc10-IntLiteralConstant" }, { - "id": "0x55ef964e0c10-IntLiteralConstant", + "id": "0x55c2dfb2fc10-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x55ef964e0df0-Expr", + "id": "0x55c2dfb2fdf0-Expr", "variantKey": "Designator", - "Designator": "0x55ef964e0d80-Designator" + "Designator": "0x55c2dfb2fd80-Designator" }, { - "id": "0x55ef964e0d80-Designator", + "id": "0x55c2dfb2fd80-Designator", "variantKey": "DataRef", - "DataRef": "0x55ef964e0d90-DataRef" + "DataRef": "0x55c2dfb2fd90-DataRef" }, { - "id": "0x55ef964e0d90-DataRef", + "id": "0x55c2dfb2fd90-DataRef", "variantKey": "Name", - "Name": "0x55ef964e0d90-Name" + "Name": "0x55c2dfb2fd90-Name" }, { - "id": "0x55ef964e0d90-Name", + "id": "0x55c2dfb2fd90-Name", "source": "array_target" }, { - "id": "0x55ef964e29d0-ExecutionPartConstruct", + "id": "0x55c2dfb319d0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ef964e29d0-ExecutableConstruct" + "ExecutableConstruct": "0x55c2dfb319d0-ExecutableConstruct" }, { - "id": "0x55ef964e29d0-ExecutableConstruct", + "id": "0x55c2dfb319d0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ef964e29d0-Statement" + "Statement": "0x55c2dfb319d0-Statement" }, { - "id": "0x55ef964e29d0-Statement", - "statement": "0x55ef964e29e0-ActionStmt", + "id": "0x55c2dfb319d0-Statement", + "statement": "0x55c2dfb319e0-ActionStmt", "source": "print *, \"5. Lower bound remapped | LBound:\", lbound(ptr_lbound, 1), \"| ptr(10):\", ptr_lbound(10)" }, { - "id": "0x55ef964e29e0-ActionStmt", + "id": "0x55c2dfb319e0-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x55ef964e2850-PrintStmt" + "PrintStmt": "0x55c2dfb31850-PrintStmt" }, { - "id": "0x55ef964e2850-PrintStmt", - "Format": "0x55ef964e2868-Format", + "id": "0x55c2dfb31850-PrintStmt", + "Format": "0x55c2dfb31868-Format", "OutputItem": [ - "0x55ef964e2700-OutputItem", - "0x55ef964e18e0-OutputItem", - "0x55ef964e1c60-OutputItem", - "0x55ef964e2610-OutputItem" + "0x55c2dfb31700-OutputItem", + "0x55c2dfb308e0-OutputItem", + "0x55c2dfb30c60-OutputItem", + "0x55c2dfb31610-OutputItem" ] }, { - "id": "0x55ef964e2868-Format", + "id": "0x55c2dfb31868-Format", "variantKey": "Star", - "Star": "0x55ef964e2868-Star" + "Star": "0x55c2dfb31868-Star" }, { - "id": "0x55ef964e2868-Star" + "id": "0x55c2dfb31868-Star" }, { - "id": "0x55ef964e2700-OutputItem", + "id": "0x55c2dfb31700-OutputItem", "variantKey": "Expr", - "Expr": "0x55ef964e2700-Expr" + "Expr": "0x55c2dfb31700-Expr" }, { - "id": "0x55ef964e2700-Expr", + "id": "0x55c2dfb31700-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964e2720-LiteralConstant" + "LiteralConstant": "0x55c2dfb31720-LiteralConstant" }, { - "id": "0x55ef964e2720-LiteralConstant", + "id": "0x55c2dfb31720-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55ef964e2720-CharLiteralConstant" + "CharLiteralConstant": "0x55c2dfb31720-CharLiteralConstant" }, { - "id": "0x55ef964e2720-CharLiteralConstant", + "id": "0x55c2dfb31720-CharLiteralConstant", "string": "5. Lower bound remapped | LBound:" }, { - "id": "0x55ef964e18e0-OutputItem", + "id": "0x55c2dfb308e0-OutputItem", "variantKey": "Expr", - "Expr": "0x55ef964e18e0-Expr" + "Expr": "0x55c2dfb308e0-Expr" }, { - "id": "0x55ef964e18e0-Expr", + "id": "0x55c2dfb308e0-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55ef964e17f0-FunctionReference" + "FunctionReference": "0x55c2dfb307f0-FunctionReference" }, { - "id": "0x55ef964e17f0-FunctionReference", - "Call": "0x55ef964e17f0-Call" + "id": "0x55c2dfb307f0-FunctionReference", + "Call": "0x55c2dfb307f0-Call" }, { - "id": "0x55ef964e17f0-Call", - "ProcedureDesignator": "0x55ef964e1808-ProcedureDesignator", + "id": "0x55c2dfb307f0-Call", + "ProcedureDesignator": "0x55c2dfb30808-ProcedureDesignator", "ActualArgSpec": [ - "0x55ef964e1680-ActualArgSpec", - "0x55ef964bfcf0-ActualArgSpec" + "0x55c2dfb30680-ActualArgSpec", + "0x55c2dfb0ecf0-ActualArgSpec" ] }, { - "id": "0x55ef964e1808-ProcedureDesignator", + "id": "0x55c2dfb30808-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55ef964e1808-Name" + "Name": "0x55c2dfb30808-Name" }, { - "id": "0x55ef964e1808-Name", + "id": "0x55c2dfb30808-Name", "source": "lbound" }, { - "id": "0x55ef964e1680-ActualArgSpec", - "ActualArg": "0x55ef964e1680-ActualArg" + "id": "0x55c2dfb30680-ActualArgSpec", + "ActualArg": "0x55c2dfb30680-ActualArg" }, { - "id": "0x55ef964e1680-ActualArg", + "id": "0x55c2dfb30680-ActualArg", "variantKey": "Expr", - "Expr": "0x55ef964e13b0-Expr" + "Expr": "0x55c2dfb303b0-Expr" }, { - "id": "0x55ef964e13b0-Expr", + "id": "0x55c2dfb303b0-Expr", "variantKey": "Designator", - "Designator": "0x55ef964e0fe0-Designator" + "Designator": "0x55c2dfb2ffe0-Designator" }, { - "id": "0x55ef964e0fe0-Designator", + "id": "0x55c2dfb2ffe0-Designator", "variantKey": "DataRef", - "DataRef": "0x55ef964e0ff0-DataRef" + "DataRef": "0x55c2dfb2fff0-DataRef" }, { - "id": "0x55ef964e0ff0-DataRef", + "id": "0x55c2dfb2fff0-DataRef", "variantKey": "Name", - "Name": "0x55ef964e0ff0-Name" + "Name": "0x55c2dfb2fff0-Name" }, { - "id": "0x55ef964e0ff0-Name", + "id": "0x55c2dfb2fff0-Name", "source": "ptr_lbound" }, { - "id": "0x55ef964bfcf0-ActualArgSpec", - "ActualArg": "0x55ef964bfcf0-ActualArg" + "id": "0x55c2dfb0ecf0-ActualArgSpec", + "ActualArg": "0x55c2dfb0ecf0-ActualArg" }, { - "id": "0x55ef964bfcf0-ActualArg", + "id": "0x55c2dfb0ecf0-ActualArg", "variantKey": "Expr", - "Expr": "0x55ef964e10b0-Expr" + "Expr": "0x55c2dfb300b0-Expr" }, { - "id": "0x55ef964e10b0-Expr", + "id": "0x55c2dfb300b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964e10d0-LiteralConstant" + "LiteralConstant": "0x55c2dfb300d0-LiteralConstant" }, { - "id": "0x55ef964e10d0-LiteralConstant", + "id": "0x55c2dfb300d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ef964e10d0-IntLiteralConstant" + "IntLiteralConstant": "0x55c2dfb300d0-IntLiteralConstant" }, { - "id": "0x55ef964e10d0-IntLiteralConstant", + "id": "0x55c2dfb300d0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55ef964e1c60-OutputItem", + "id": "0x55c2dfb30c60-OutputItem", "variantKey": "Expr", - "Expr": "0x55ef964e1c60-Expr" + "Expr": "0x55c2dfb30c60-Expr" }, { - "id": "0x55ef964e1c60-Expr", + "id": "0x55c2dfb30c60-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964e1c80-LiteralConstant" + "LiteralConstant": "0x55c2dfb30c80-LiteralConstant" }, { - "id": "0x55ef964e1c80-LiteralConstant", + "id": "0x55c2dfb30c80-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55ef964e1c80-CharLiteralConstant" + "CharLiteralConstant": "0x55c2dfb30c80-CharLiteralConstant" }, { - "id": "0x55ef964e1c80-CharLiteralConstant", + "id": "0x55c2dfb30c80-CharLiteralConstant", "string": "| ptr(10):" }, { - "id": "0x55ef964e2610-OutputItem", + "id": "0x55c2dfb31610-OutputItem", "variantKey": "Expr", - "Expr": "0x55ef964e2610-Expr" + "Expr": "0x55c2dfb31610-Expr" }, { - "id": "0x55ef964e2610-Expr", + "id": "0x55c2dfb31610-Expr", "variantKey": "Designator", - "Designator": "0x55ef9651f420-Designator" + "Designator": "0x55c2dfb6e420-Designator" }, { - "id": "0x55ef9651f420-Designator", + "id": "0x55c2dfb6e420-Designator", "variantKey": "DataRef", - "DataRef": "0x55ef9651f430-DataRef" + "DataRef": "0x55c2dfb6e430-DataRef" }, { - "id": "0x55ef9651f430-DataRef", + "id": "0x55c2dfb6e430-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55ef964e63a0-ArrayElement" + "ArrayElement": "0x55c2dfb353a0-ArrayElement" }, { - "id": "0x55ef964e63a0-ArrayElement", - "base": "0x55ef964e63a0-DataRef", + "id": "0x55c2dfb353a0-ArrayElement", + "base": "0x55c2dfb353a0-DataRef", "subscripts": [ - "0x55ef965072e0-SectionSubscript" + "0x55c2dfb562e0-SectionSubscript" ] }, { - "id": "0x55ef964e63a0-DataRef", + "id": "0x55c2dfb353a0-DataRef", "variantKey": "Name", - "Name": "0x55ef964e63a0-Name" + "Name": "0x55c2dfb353a0-Name" }, { - "id": "0x55ef964e63a0-Name", + "id": "0x55c2dfb353a0-Name", "source": "ptr_lbound" }, { - "id": "0x55ef965072e0-SectionSubscript", + "id": "0x55c2dfb562e0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55ef9651bfd0-Expr" + "Expr": "0x55c2dfb6afd0-Expr" }, { - "id": "0x55ef9651bfd0-Expr", + "id": "0x55c2dfb6afd0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef9651bff0-LiteralConstant" + "LiteralConstant": "0x55c2dfb6aff0-LiteralConstant" }, { - "id": "0x55ef9651bff0-LiteralConstant", + "id": "0x55c2dfb6aff0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ef9651bff0-IntLiteralConstant" + "IntLiteralConstant": "0x55c2dfb6aff0-IntLiteralConstant" }, { - "id": "0x55ef9651bff0-IntLiteralConstant", + "id": "0x55c2dfb6aff0-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x55ef964f54b0-ExecutionPartConstruct", + "id": "0x55c2dfb444b0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ef964f54b0-ExecutableConstruct" + "ExecutableConstruct": "0x55c2dfb444b0-ExecutableConstruct" }, { - "id": "0x55ef964f54b0-ExecutableConstruct", + "id": "0x55c2dfb444b0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ef964f54b0-Statement" + "Statement": "0x55c2dfb444b0-Statement" }, { - "id": "0x55ef964f54b0-Statement", - "statement": "0x55ef964f54c0-ActionStmt", + "id": "0x55c2dfb444b0-Statement", + "statement": "0x55c2dfb444c0-ActionStmt", "source": "ptr_bounds(0:4) => array_target" }, { - "id": "0x55ef964f54c0-ActionStmt", + "id": "0x55c2dfb444c0-ActionStmt", "variantKey": "PointerAssignmentStmt", - "PointerAssignmentStmt": "0x55ef964e2cf0-PointerAssignmentStmt" + "PointerAssignmentStmt": "0x55c2dfb31cf0-PointerAssignmentStmt" }, { - "id": "0x55ef964e2cf0-PointerAssignmentStmt", - "DataRef": "0x55ef964e2df0-DataRef", - "Bounds": "0x55ef964e2dd0-Bounds", - "Expr": "0x55ef964e2d00-Expr", + "id": "0x55c2dfb31cf0-PointerAssignmentStmt", + "DataRef": "0x55c2dfb31df0-DataRef", + "Bounds": "0x55c2dfb31dd0-Bounds", + "Expr": "0x55c2dfb31d00-Expr", "variantKey": "BoundsRemapping", "BoundsRemapping": [ - "0x55ef964ed140-BoundsRemapping" + "0x55c2dfb3c140-BoundsRemapping" ] }, { - "id": "0x55ef964e2df0-DataRef", + "id": "0x55c2dfb31df0-DataRef", "variantKey": "Name", - "Name": "0x55ef964e2df0-Name" + "Name": "0x55c2dfb31df0-Name" }, { - "id": "0x55ef964e2df0-Name", + "id": "0x55c2dfb31df0-Name", "source": "ptr_bounds" }, { - "id": "0x55ef964e2dd0-Bounds", + "id": "0x55c2dfb31dd0-Bounds", "variantKey": "BoundsRemapping", "BoundsRemapping": [ - "0x55ef964ed140-BoundsRemapping" + "0x55c2dfb3c140-BoundsRemapping" ] }, { - "id": "0x55ef964ed140-BoundsRemapping", - "Expr": "0x55ef964e2b00-Expr" + "id": "0x55c2dfb3c140-BoundsRemapping", + "lower": "0x55c2dfb31a20-Expr", + "upper": "0x55c2dfb31b00-Expr" }, { - "id": "0x55ef964e2a20-Expr", + "id": "0x55c2dfb31a20-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964e2a40-LiteralConstant" + "LiteralConstant": "0x55c2dfb31a40-LiteralConstant" }, { - "id": "0x55ef964e2a40-LiteralConstant", + "id": "0x55c2dfb31a40-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ef964e2a40-IntLiteralConstant" + "IntLiteralConstant": "0x55c2dfb31a40-IntLiteralConstant" }, { - "id": "0x55ef964e2a40-IntLiteralConstant", + "id": "0x55c2dfb31a40-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55ef964e2b00-Expr", + "id": "0x55c2dfb31b00-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964e2b20-LiteralConstant" + "LiteralConstant": "0x55c2dfb31b20-LiteralConstant" }, { - "id": "0x55ef964e2b20-LiteralConstant", + "id": "0x55c2dfb31b20-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ef964e2b20-IntLiteralConstant" + "IntLiteralConstant": "0x55c2dfb31b20-IntLiteralConstant" }, { - "id": "0x55ef964e2b20-IntLiteralConstant", + "id": "0x55c2dfb31b20-IntLiteralConstant", "CharBlock": "4" }, { - "id": "0x55ef964e2d00-Expr", + "id": "0x55c2dfb31d00-Expr", "variantKey": "Designator", - "Designator": "0x55ef964df2f0-Designator" + "Designator": "0x55c2dfb2e2f0-Designator" }, { - "id": "0x55ef964df2f0-Designator", + "id": "0x55c2dfb2e2f0-Designator", "variantKey": "DataRef", - "DataRef": "0x55ef964df300-DataRef" + "DataRef": "0x55c2dfb2e300-DataRef" }, { - "id": "0x55ef964df300-DataRef", + "id": "0x55c2dfb2e300-DataRef", "variantKey": "Name", - "Name": "0x55ef964df300-Name" + "Name": "0x55c2dfb2e300-Name" }, { - "id": "0x55ef964df300-Name", + "id": "0x55c2dfb2e300-Name", "source": "array_target" }, { - "id": "0x55ef964e3a00-ExecutionPartConstruct", + "id": "0x55c2dfb32a00-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ef964e3a00-ExecutableConstruct" + "ExecutableConstruct": "0x55c2dfb32a00-ExecutableConstruct" }, { - "id": "0x55ef964e3a00-ExecutableConstruct", + "id": "0x55c2dfb32a00-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ef964e3a00-Statement" + "Statement": "0x55c2dfb32a00-Statement" }, { - "id": "0x55ef964e3a00-Statement", - "statement": "0x55ef964e3a10-ActionStmt", + "id": "0x55c2dfb32a00-Statement", + "statement": "0x55c2dfb32a10-ActionStmt", "source": "print *, \"6. Full bounds remapped | LBound:\", lbound(ptr_bounds, 1), \"| ptr(0):\", ptr_bounds(0)" }, { - "id": "0x55ef964e3a10-ActionStmt", + "id": "0x55c2dfb32a10-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x55ef964e3880-PrintStmt" + "PrintStmt": "0x55c2dfb32880-PrintStmt" }, { - "id": "0x55ef964e3880-PrintStmt", - "Format": "0x55ef964e3898-Format", + "id": "0x55c2dfb32880-PrintStmt", + "Format": "0x55c2dfb32898-Format", "OutputItem": [ - "0x55ef964e3730-OutputItem", - "0x55ef964e3150-OutputItem", - "0x55ef964e3240-OutputItem", - "0x55ef964e3640-OutputItem" + "0x55c2dfb32730-OutputItem", + "0x55c2dfb32150-OutputItem", + "0x55c2dfb32240-OutputItem", + "0x55c2dfb32640-OutputItem" ] }, { - "id": "0x55ef964e3898-Format", + "id": "0x55c2dfb32898-Format", "variantKey": "Star", - "Star": "0x55ef964e3898-Star" + "Star": "0x55c2dfb32898-Star" }, { - "id": "0x55ef964e3898-Star" + "id": "0x55c2dfb32898-Star" }, { - "id": "0x55ef964e3730-OutputItem", + "id": "0x55c2dfb32730-OutputItem", "variantKey": "Expr", - "Expr": "0x55ef964e3730-Expr" + "Expr": "0x55c2dfb32730-Expr" }, { - "id": "0x55ef964e3730-Expr", + "id": "0x55c2dfb32730-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964e3750-LiteralConstant" + "LiteralConstant": "0x55c2dfb32750-LiteralConstant" }, { - "id": "0x55ef964e3750-LiteralConstant", + "id": "0x55c2dfb32750-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55ef964e3750-CharLiteralConstant" + "CharLiteralConstant": "0x55c2dfb32750-CharLiteralConstant" }, { - "id": "0x55ef964e3750-CharLiteralConstant", + "id": "0x55c2dfb32750-CharLiteralConstant", "string": "6. Full bounds remapped | LBound:" }, { - "id": "0x55ef964e3150-OutputItem", + "id": "0x55c2dfb32150-OutputItem", "variantKey": "Expr", - "Expr": "0x55ef964e3150-Expr" + "Expr": "0x55c2dfb32150-Expr" }, { - "id": "0x55ef964e3150-Expr", + "id": "0x55c2dfb32150-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55ef964f4ca0-FunctionReference" + "FunctionReference": "0x55c2dfb43ca0-FunctionReference" }, { - "id": "0x55ef964f4ca0-FunctionReference", - "Call": "0x55ef964f4ca0-Call" + "id": "0x55c2dfb43ca0-FunctionReference", + "Call": "0x55c2dfb43ca0-Call" }, { - "id": "0x55ef964f4ca0-Call", - "ProcedureDesignator": "0x55ef964f4cb8-ProcedureDesignator", + "id": "0x55c2dfb43ca0-Call", + "ProcedureDesignator": "0x55c2dfb43cb8-ProcedureDesignator", "ActualArgSpec": [ - "0x55ef964e3040-ActualArgSpec", - "0x55ef964e2bf0-ActualArgSpec" + "0x55c2dfb32040-ActualArgSpec", + "0x55c2dfb31bf0-ActualArgSpec" ] }, { - "id": "0x55ef964f4cb8-ProcedureDesignator", + "id": "0x55c2dfb43cb8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55ef964f4cb8-Name" + "Name": "0x55c2dfb43cb8-Name" }, { - "id": "0x55ef964f4cb8-Name", + "id": "0x55c2dfb43cb8-Name", "source": "lbound" }, { - "id": "0x55ef964e3040-ActualArgSpec", - "ActualArg": "0x55ef964e3040-ActualArg" + "id": "0x55c2dfb32040-ActualArgSpec", + "ActualArg": "0x55c2dfb32040-ActualArg" }, { - "id": "0x55ef964e3040-ActualArg", + "id": "0x55c2dfb32040-ActualArg", "variantKey": "Expr", - "Expr": "0x55ef964e2f00-Expr" + "Expr": "0x55c2dfb31f00-Expr" }, { - "id": "0x55ef964e2f00-Expr", + "id": "0x55c2dfb31f00-Expr", "variantKey": "Designator", - "Designator": "0x55ef964e0d20-Designator" + "Designator": "0x55c2dfb2fd20-Designator" }, { - "id": "0x55ef964e0d20-Designator", + "id": "0x55c2dfb2fd20-Designator", "variantKey": "DataRef", - "DataRef": "0x55ef964e0d30-DataRef" + "DataRef": "0x55c2dfb2fd30-DataRef" }, { - "id": "0x55ef964e0d30-DataRef", + "id": "0x55c2dfb2fd30-DataRef", "variantKey": "Name", - "Name": "0x55ef964e0d30-Name" + "Name": "0x55c2dfb2fd30-Name" }, { - "id": "0x55ef964e0d30-Name", + "id": "0x55c2dfb2fd30-Name", "source": "ptr_bounds" }, { - "id": "0x55ef964e2bf0-ActualArgSpec", - "ActualArg": "0x55ef964e2bf0-ActualArg" + "id": "0x55c2dfb31bf0-ActualArgSpec", + "ActualArg": "0x55c2dfb31bf0-ActualArg" }, { - "id": "0x55ef964e2bf0-ActualArg", + "id": "0x55c2dfb31bf0-ActualArg", "variantKey": "Expr", - "Expr": "0x55ef964e2e20-Expr" + "Expr": "0x55c2dfb31e20-Expr" }, { - "id": "0x55ef964e2e20-Expr", + "id": "0x55c2dfb31e20-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964e2e40-LiteralConstant" + "LiteralConstant": "0x55c2dfb31e40-LiteralConstant" }, { - "id": "0x55ef964e2e40-LiteralConstant", + "id": "0x55c2dfb31e40-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ef964e2e40-IntLiteralConstant" + "IntLiteralConstant": "0x55c2dfb31e40-IntLiteralConstant" }, { - "id": "0x55ef964e2e40-IntLiteralConstant", + "id": "0x55c2dfb31e40-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55ef964e3240-OutputItem", + "id": "0x55c2dfb32240-OutputItem", "variantKey": "Expr", - "Expr": "0x55ef964e3240-Expr" + "Expr": "0x55c2dfb32240-Expr" }, { - "id": "0x55ef964e3240-Expr", + "id": "0x55c2dfb32240-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964e3260-LiteralConstant" + "LiteralConstant": "0x55c2dfb32260-LiteralConstant" }, { - "id": "0x55ef964e3260-LiteralConstant", + "id": "0x55c2dfb32260-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55ef964e3260-CharLiteralConstant" + "CharLiteralConstant": "0x55c2dfb32260-CharLiteralConstant" }, { - "id": "0x55ef964e3260-CharLiteralConstant", + "id": "0x55c2dfb32260-CharLiteralConstant", "string": "| ptr(0):" }, { - "id": "0x55ef964e3640-OutputItem", + "id": "0x55c2dfb32640-OutputItem", "variantKey": "Expr", - "Expr": "0x55ef964e3640-Expr" + "Expr": "0x55c2dfb32640-Expr" }, { - "id": "0x55ef964e3640-Expr", + "id": "0x55c2dfb32640-Expr", "variantKey": "Designator", - "Designator": "0x55ef9651ea80-Designator" + "Designator": "0x55c2dfb6da80-Designator" }, { - "id": "0x55ef9651ea80-Designator", + "id": "0x55c2dfb6da80-Designator", "variantKey": "DataRef", - "DataRef": "0x55ef9651ea90-DataRef" + "DataRef": "0x55c2dfb6da90-DataRef" }, { - "id": "0x55ef9651ea90-DataRef", + "id": "0x55c2dfb6da90-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55ef964e8bc0-ArrayElement" + "ArrayElement": "0x55c2dfb37bc0-ArrayElement" }, { - "id": "0x55ef964e8bc0-ArrayElement", - "base": "0x55ef964e8bc0-DataRef", + "id": "0x55c2dfb37bc0-ArrayElement", + "base": "0x55c2dfb37bc0-DataRef", "subscripts": [ - "0x55ef96514990-SectionSubscript" + "0x55c2dfb63990-SectionSubscript" ] }, { - "id": "0x55ef964e8bc0-DataRef", + "id": "0x55c2dfb37bc0-DataRef", "variantKey": "Name", - "Name": "0x55ef964e8bc0-Name" + "Name": "0x55c2dfb37bc0-Name" }, { - "id": "0x55ef964e8bc0-Name", + "id": "0x55c2dfb37bc0-Name", "source": "ptr_bounds" }, { - "id": "0x55ef96514990-SectionSubscript", + "id": "0x55c2dfb63990-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55ef964e2180-Expr" + "Expr": "0x55c2dfb31180-Expr" }, { - "id": "0x55ef964e2180-Expr", + "id": "0x55c2dfb31180-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964e21a0-LiteralConstant" + "LiteralConstant": "0x55c2dfb311a0-LiteralConstant" }, { - "id": "0x55ef964e21a0-LiteralConstant", + "id": "0x55c2dfb311a0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ef964e21a0-IntLiteralConstant" + "IntLiteralConstant": "0x55c2dfb311a0-IntLiteralConstant" }, { - "id": "0x55ef964e21a0-IntLiteralConstant", + "id": "0x55c2dfb311a0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55ef964e2270-ExecutionPartConstruct", + "id": "0x55c2dfb31270-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ef964e2270-ExecutableConstruct" + "ExecutableConstruct": "0x55c2dfb31270-ExecutableConstruct" }, { - "id": "0x55ef964e2270-ExecutableConstruct", + "id": "0x55c2dfb31270-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ef964e2270-Statement" + "Statement": "0x55c2dfb31270-Statement" }, { - "id": "0x55ef964e2270-Statement", - "statement": "0x55ef964e2280-ActionStmt", + "id": "0x55c2dfb31270-Statement", + "statement": "0x55c2dfb31280-ActionStmt", "source": "ptr_2d(1:2, 1:2) => array_target(1:4)" }, { - "id": "0x55ef964e2280-ActionStmt", + "id": "0x55c2dfb31280-ActionStmt", "variantKey": "PointerAssignmentStmt", - "PointerAssignmentStmt": "0x55ef964e40a0-PointerAssignmentStmt" + "PointerAssignmentStmt": "0x55c2dfb330a0-PointerAssignmentStmt" }, { - "id": "0x55ef964e40a0-PointerAssignmentStmt", - "DataRef": "0x55ef964e41a0-DataRef", - "Bounds": "0x55ef964e4180-Bounds", - "Expr": "0x55ef964e40b0-Expr", + "id": "0x55c2dfb330a0-PointerAssignmentStmt", + "DataRef": "0x55c2dfb331a0-DataRef", + "Bounds": "0x55c2dfb33180-Bounds", + "Expr": "0x55c2dfb330b0-Expr", "variantKey": "BoundsRemapping", "BoundsRemapping": [ - "0x55ef964eb1e0-BoundsRemapping", - "0x55ef964eaff0-BoundsRemapping" + "0x55c2dfb3a1e0-BoundsRemapping", + "0x55c2dfb39ff0-BoundsRemapping" ] }, { - "id": "0x55ef964e41a0-DataRef", + "id": "0x55c2dfb331a0-DataRef", "variantKey": "Name", - "Name": "0x55ef964e41a0-Name" + "Name": "0x55c2dfb331a0-Name" }, { - "id": "0x55ef964e41a0-Name", + "id": "0x55c2dfb331a0-Name", "source": "ptr_2d" }, { - "id": "0x55ef964e4180-Bounds", + "id": "0x55c2dfb33180-Bounds", "variantKey": "BoundsRemapping", "BoundsRemapping": [ - "0x55ef964eb1e0-BoundsRemapping", - "0x55ef964eaff0-BoundsRemapping" + "0x55c2dfb3a1e0-BoundsRemapping", + "0x55c2dfb39ff0-BoundsRemapping" ] }, { - "id": "0x55ef964eb1e0-BoundsRemapping", - "Expr": "0x55ef964e3a50-Expr" + "id": "0x55c2dfb3a1e0-BoundsRemapping", + "lower": "0x55c2dfb32b30-Expr", + "upper": "0x55c2dfb32a50-Expr" }, { - "id": "0x55ef964e3b30-Expr", + "id": "0x55c2dfb32b30-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964e3b50-LiteralConstant" + "LiteralConstant": "0x55c2dfb32b50-LiteralConstant" }, { - "id": "0x55ef964e3b50-LiteralConstant", + "id": "0x55c2dfb32b50-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ef964e3b50-IntLiteralConstant" + "IntLiteralConstant": "0x55c2dfb32b50-IntLiteralConstant" }, { - "id": "0x55ef964e3b50-IntLiteralConstant", + "id": "0x55c2dfb32b50-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55ef964e3a50-Expr", + "id": "0x55c2dfb32a50-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964e3a70-LiteralConstant" + "LiteralConstant": "0x55c2dfb32a70-LiteralConstant" }, { - "id": "0x55ef964e3a70-LiteralConstant", + "id": "0x55c2dfb32a70-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ef964e3a70-IntLiteralConstant" + "IntLiteralConstant": "0x55c2dfb32a70-IntLiteralConstant" }, { - "id": "0x55ef964e3a70-IntLiteralConstant", + "id": "0x55c2dfb32a70-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x55ef964eaff0-BoundsRemapping", - "Expr": "0x55ef964e3cf0-Expr" + "id": "0x55c2dfb39ff0-BoundsRemapping", + "lower": "0x55c2dfb32c10-Expr", + "upper": "0x55c2dfb32cf0-Expr" }, { - "id": "0x55ef964e3c10-Expr", + "id": "0x55c2dfb32c10-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964e3c30-LiteralConstant" + "LiteralConstant": "0x55c2dfb32c30-LiteralConstant" }, { - "id": "0x55ef964e3c30-LiteralConstant", + "id": "0x55c2dfb32c30-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ef964e3c30-IntLiteralConstant" + "IntLiteralConstant": "0x55c2dfb32c30-IntLiteralConstant" }, { - "id": "0x55ef964e3c30-IntLiteralConstant", + "id": "0x55c2dfb32c30-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55ef964e3cf0-Expr", + "id": "0x55c2dfb32cf0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964e3d10-LiteralConstant" + "LiteralConstant": "0x55c2dfb32d10-LiteralConstant" }, { - "id": "0x55ef964e3d10-LiteralConstant", + "id": "0x55c2dfb32d10-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ef964e3d10-IntLiteralConstant" + "IntLiteralConstant": "0x55c2dfb32d10-IntLiteralConstant" }, { - "id": "0x55ef964e3d10-IntLiteralConstant", + "id": "0x55c2dfb32d10-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x55ef964e40b0-Expr", + "id": "0x55c2dfb330b0-Expr", "variantKey": "Designator", - "Designator": "0x55ef964e0050-Designator" + "Designator": "0x55c2dfb2f050-Designator" }, { - "id": "0x55ef964e0050-Designator", + "id": "0x55c2dfb2f050-Designator", "variantKey": "DataRef", - "DataRef": "0x55ef964e0060-DataRef" + "DataRef": "0x55c2dfb2f060-DataRef" }, { - "id": "0x55ef964e0060-DataRef", + "id": "0x55c2dfb2f060-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55ef964eb950-ArrayElement" + "ArrayElement": "0x55c2dfb3a950-ArrayElement" }, { - "id": "0x55ef964eb950-ArrayElement", - "base": "0x55ef964eb950-DataRef", + "id": "0x55c2dfb3a950-ArrayElement", + "base": "0x55c2dfb3a950-DataRef", "subscripts": [ - "0x55ef964e14f0-SectionSubscript" + "0x55c2dfb304f0-SectionSubscript" ] }, { - "id": "0x55ef964eb950-DataRef", + "id": "0x55c2dfb3a950-DataRef", "variantKey": "Name", - "Name": "0x55ef964eb950-Name" + "Name": "0x55c2dfb3a950-Name" }, { - "id": "0x55ef964eb950-Name", + "id": "0x55c2dfb3a950-Name", "source": "array_target" }, { - "id": "0x55ef964e14f0-SectionSubscript", + "id": "0x55c2dfb304f0-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x55ef964e14f0-SubscriptTriplet" + "SubscriptTriplet": "0x55c2dfb304f0-SubscriptTriplet" }, { - "id": "0x55ef964e14f0-SubscriptTriplet", - "start": "0x55ef964e3ee0-Expr", - "end": "0x55ef964e3fc0-Expr" + "id": "0x55c2dfb304f0-SubscriptTriplet", + "start": "0x55c2dfb32ee0-Expr", + "end": "0x55c2dfb32fc0-Expr" }, { - "id": "0x55ef964e3ee0-Expr", + "id": "0x55c2dfb32ee0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964e3f00-LiteralConstant" + "LiteralConstant": "0x55c2dfb32f00-LiteralConstant" }, { - "id": "0x55ef964e3f00-LiteralConstant", + "id": "0x55c2dfb32f00-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ef964e3f00-IntLiteralConstant" + "IntLiteralConstant": "0x55c2dfb32f00-IntLiteralConstant" }, { - "id": "0x55ef964e3f00-IntLiteralConstant", + "id": "0x55c2dfb32f00-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55ef964e3fc0-Expr", + "id": "0x55c2dfb32fc0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964e3fe0-LiteralConstant" + "LiteralConstant": "0x55c2dfb32fe0-LiteralConstant" }, { - "id": "0x55ef964e3fe0-LiteralConstant", + "id": "0x55c2dfb32fe0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ef964e3fe0-IntLiteralConstant" + "IntLiteralConstant": "0x55c2dfb32fe0-IntLiteralConstant" }, { - "id": "0x55ef964e3fe0-IntLiteralConstant", + "id": "0x55c2dfb32fe0-IntLiteralConstant", "CharBlock": "4" }, { - "id": "0x55ef964e11a0-ExecutionPartConstruct", + "id": "0x55c2dfb301a0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ef964e11a0-ExecutableConstruct" + "ExecutableConstruct": "0x55c2dfb301a0-ExecutableConstruct" }, { - "id": "0x55ef964e11a0-ExecutableConstruct", + "id": "0x55c2dfb301a0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ef964e11a0-Statement" + "Statement": "0x55c2dfb301a0-Statement" }, { - "id": "0x55ef964e11a0-Statement", - "statement": "0x55ef964e11b0-ActionStmt", + "id": "0x55c2dfb301a0-Statement", + "statement": "0x55c2dfb301b0-ActionStmt", "source": "print *, \"7. Rank remapped 2D pointer (element 2,2):\", ptr_2d(2, 2)" }, { - "id": "0x55ef964e11b0-ActionStmt", + "id": "0x55c2dfb301b0-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x55ef964e4720-PrintStmt" + "PrintStmt": "0x55c2dfb33720-PrintStmt" }, { - "id": "0x55ef964e4720-PrintStmt", - "Format": "0x55ef964e4738-Format", + "id": "0x55c2dfb33720-PrintStmt", + "Format": "0x55c2dfb33738-Format", "OutputItem": [ - "0x55ef964e4640-OutputItem", - "0x55ef964e4550-OutputItem" + "0x55c2dfb33640-OutputItem", + "0x55c2dfb33550-OutputItem" ] }, { - "id": "0x55ef964e4738-Format", + "id": "0x55c2dfb33738-Format", "variantKey": "Star", - "Star": "0x55ef964e4738-Star" + "Star": "0x55c2dfb33738-Star" }, { - "id": "0x55ef964e4738-Star" + "id": "0x55c2dfb33738-Star" }, { - "id": "0x55ef964e4640-OutputItem", + "id": "0x55c2dfb33640-OutputItem", "variantKey": "Expr", - "Expr": "0x55ef964e4640-Expr" + "Expr": "0x55c2dfb33640-Expr" }, { - "id": "0x55ef964e4640-Expr", + "id": "0x55c2dfb33640-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964e4660-LiteralConstant" + "LiteralConstant": "0x55c2dfb33660-LiteralConstant" }, { - "id": "0x55ef964e4660-LiteralConstant", + "id": "0x55c2dfb33660-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55ef964e4660-CharLiteralConstant" + "CharLiteralConstant": "0x55c2dfb33660-CharLiteralConstant" }, { - "id": "0x55ef964e4660-CharLiteralConstant", + "id": "0x55c2dfb33660-CharLiteralConstant", "string": "7. Rank remapped 2D pointer (element 2,2):" }, { - "id": "0x55ef964e4550-OutputItem", + "id": "0x55c2dfb33550-OutputItem", "variantKey": "Expr", - "Expr": "0x55ef964e4550-Expr" + "Expr": "0x55c2dfb33550-Expr" }, { - "id": "0x55ef964e4550-Expr", + "id": "0x55c2dfb33550-Expr", "variantKey": "Designator", - "Designator": "0x55ef9651fdc0-Designator" + "Designator": "0x55c2dfb6edc0-Designator" }, { - "id": "0x55ef9651fdc0-Designator", + "id": "0x55c2dfb6edc0-Designator", "variantKey": "DataRef", - "DataRef": "0x55ef9651fdd0-DataRef" + "DataRef": "0x55c2dfb6edd0-DataRef" }, { - "id": "0x55ef9651fdd0-DataRef", + "id": "0x55c2dfb6edd0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55ef964eef90-ArrayElement" + "ArrayElement": "0x55c2dfb3df90-ArrayElement" }, { - "id": "0x55ef964eef90-ArrayElement", - "base": "0x55ef964eef90-DataRef", + "id": "0x55c2dfb3df90-ArrayElement", + "base": "0x55c2dfb3df90-DataRef", "subscripts": [ - "0x55ef965062d0-SectionSubscript", - "0x55ef9650e3d0-SectionSubscript" + "0x55c2dfb552d0-SectionSubscript", + "0x55c2dfb5d3d0-SectionSubscript" ] }, { - "id": "0x55ef964eef90-DataRef", + "id": "0x55c2dfb3df90-DataRef", "variantKey": "Name", - "Name": "0x55ef964eef90-Name" + "Name": "0x55c2dfb3df90-Name" }, { - "id": "0x55ef964eef90-Name", + "id": "0x55c2dfb3df90-Name", "source": "ptr_2d" }, { - "id": "0x55ef965062d0-SectionSubscript", + "id": "0x55c2dfb552d0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55ef964e33e0-Expr" + "Expr": "0x55c2dfb323e0-Expr" }, { - "id": "0x55ef964e33e0-Expr", + "id": "0x55c2dfb323e0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964e3400-LiteralConstant" + "LiteralConstant": "0x55c2dfb32400-LiteralConstant" }, { - "id": "0x55ef964e3400-LiteralConstant", + "id": "0x55c2dfb32400-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ef964e3400-IntLiteralConstant" + "IntLiteralConstant": "0x55c2dfb32400-IntLiteralConstant" }, { - "id": "0x55ef964e3400-IntLiteralConstant", + "id": "0x55c2dfb32400-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x55ef9650e3d0-SectionSubscript", + "id": "0x55c2dfb5d3d0-SectionSubscript", "variantKey": "Expr", - "Expr": "0x55ef964ff670-Expr" + "Expr": "0x55c2dfb4e670-Expr" }, { - "id": "0x55ef964ff670-Expr", + "id": "0x55c2dfb4e670-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964ff690-LiteralConstant" + "LiteralConstant": "0x55c2dfb4e690-LiteralConstant" }, { - "id": "0x55ef964ff690-LiteralConstant", + "id": "0x55c2dfb4e690-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ef964ff690-IntLiteralConstant" + "IntLiteralConstant": "0x55c2dfb4e690-IntLiteralConstant" }, { - "id": "0x55ef964ff690-IntLiteralConstant", + "id": "0x55c2dfb4e690-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x55ef964e3390-ExecutionPartConstruct", + "id": "0x55c2dfb32390-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ef964e3390-ExecutableConstruct" + "ExecutableConstruct": "0x55c2dfb32390-ExecutableConstruct" }, { - "id": "0x55ef964e3390-ExecutableConstruct", + "id": "0x55c2dfb32390-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ef964e3390-Statement" + "Statement": "0x55c2dfb32390-Statement" }, { - "id": "0x55ef964e3390-Statement", - "statement": "0x55ef964e33a0-ActionStmt", + "id": "0x55c2dfb32390-Statement", + "statement": "0x55c2dfb323a0-ActionStmt", "source": "ptr_proc => double_val" }, { - "id": "0x55ef964e33a0-ActionStmt", + "id": "0x55c2dfb323a0-ActionStmt", "variantKey": "PointerAssignmentStmt", - "PointerAssignmentStmt": "0x55ef964e4820-PointerAssignmentStmt" + "PointerAssignmentStmt": "0x55c2dfb33820-PointerAssignmentStmt" }, { - "id": "0x55ef964e4820-PointerAssignmentStmt", - "DataRef": "0x55ef964e4920-DataRef", - "Bounds": "0x55ef964e4900-Bounds", - "Expr": "0x55ef964e4830-Expr", + "id": "0x55c2dfb33820-PointerAssignmentStmt", + "DataRef": "0x55c2dfb33920-DataRef", + "Bounds": "0x55c2dfb33900-Bounds", + "Expr": "0x55c2dfb33830-Expr", "variantKey": "BoundsSpec", "BoundsSpec": [] }, { - "id": "0x55ef964e4920-DataRef", + "id": "0x55c2dfb33920-DataRef", "variantKey": "Name", - "Name": "0x55ef964e4920-Name" + "Name": "0x55c2dfb33920-Name" }, { - "id": "0x55ef964e4920-Name", + "id": "0x55c2dfb33920-Name", "source": "ptr_proc" }, { - "id": "0x55ef964e4900-Bounds", + "id": "0x55c2dfb33900-Bounds", "variantKey": "list" }, { - "id": "0x55ef964e4830-Expr", + "id": "0x55c2dfb33830-Expr", "variantKey": "Designator", - "Designator": "0x55ef964e1530-Designator" + "Designator": "0x55c2dfb30530-Designator" }, { - "id": "0x55ef964e1530-Designator", + "id": "0x55c2dfb30530-Designator", "variantKey": "DataRef", - "DataRef": "0x55ef964e1540-DataRef" + "DataRef": "0x55c2dfb30540-DataRef" }, { - "id": "0x55ef964e1540-DataRef", + "id": "0x55c2dfb30540-DataRef", "variantKey": "Name", - "Name": "0x55ef964e1540-Name" + "Name": "0x55c2dfb30540-Name" }, { - "id": "0x55ef964e1540-Name", + "id": "0x55c2dfb30540-Name", "source": "double_val" }, { - "id": "0x55ef964e3330-ExecutionPartConstruct", + "id": "0x55c2dfb32330-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ef964e3330-ExecutableConstruct" + "ExecutableConstruct": "0x55c2dfb32330-ExecutableConstruct" }, { - "id": "0x55ef964e3330-ExecutableConstruct", + "id": "0x55c2dfb32330-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ef964e3330-Statement" + "Statement": "0x55c2dfb32330-Statement" }, { - "id": "0x55ef964e3330-Statement", - "statement": "0x55ef964e3340-ActionStmt", + "id": "0x55c2dfb32330-Statement", + "statement": "0x55c2dfb32340-ActionStmt", "source": "print *, \"8. Procedure pointer result:\", ptr_proc(5)" }, { - "id": "0x55ef964e3340-ActionStmt", + "id": "0x55c2dfb32340-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x55ef964e4d20-PrintStmt" + "PrintStmt": "0x55c2dfb33d20-PrintStmt" }, { - "id": "0x55ef964e4d20-PrintStmt", - "Format": "0x55ef964e4d38-Format", + "id": "0x55c2dfb33d20-PrintStmt", + "Format": "0x55c2dfb33d38-Format", "OutputItem": [ - "0x55ef964e4c40-OutputItem", - "0x55ef964e4b50-OutputItem" + "0x55c2dfb33c40-OutputItem", + "0x55c2dfb33b50-OutputItem" ] }, { - "id": "0x55ef964e4d38-Format", + "id": "0x55c2dfb33d38-Format", "variantKey": "Star", - "Star": "0x55ef964e4d38-Star" + "Star": "0x55c2dfb33d38-Star" }, { - "id": "0x55ef964e4d38-Star" + "id": "0x55c2dfb33d38-Star" }, { - "id": "0x55ef964e4c40-OutputItem", + "id": "0x55c2dfb33c40-OutputItem", "variantKey": "Expr", - "Expr": "0x55ef964e4c40-Expr" + "Expr": "0x55c2dfb33c40-Expr" }, { - "id": "0x55ef964e4c40-Expr", + "id": "0x55c2dfb33c40-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964e4c60-LiteralConstant" + "LiteralConstant": "0x55c2dfb33c60-LiteralConstant" }, { - "id": "0x55ef964e4c60-LiteralConstant", + "id": "0x55c2dfb33c60-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55ef964e4c60-CharLiteralConstant" + "CharLiteralConstant": "0x55c2dfb33c60-CharLiteralConstant" }, { - "id": "0x55ef964e4c60-CharLiteralConstant", + "id": "0x55c2dfb33c60-CharLiteralConstant", "string": "8. Procedure pointer result:" }, { - "id": "0x55ef964e4b50-OutputItem", + "id": "0x55c2dfb33b50-OutputItem", "variantKey": "Expr", - "Expr": "0x55ef964e4b50-Expr" + "Expr": "0x55c2dfb33b50-Expr" }, { - "id": "0x55ef964e4b50-Expr", + "id": "0x55c2dfb33b50-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55ef964f5340-FunctionReference" + "FunctionReference": "0x55c2dfb44340-FunctionReference" }, { - "id": "0x55ef964f5340-FunctionReference", - "Call": "0x55ef964f5340-Call" + "id": "0x55c2dfb44340-FunctionReference", + "Call": "0x55c2dfb44340-Call" }, { - "id": "0x55ef964f5340-Call", - "ProcedureDesignator": "0x55ef964f5358-ProcedureDesignator", + "id": "0x55c2dfb44340-Call", + "ProcedureDesignator": "0x55c2dfb44358-ProcedureDesignator", "ActualArgSpec": [ - "0x55ef964e4a40-ActualArgSpec" + "0x55c2dfb33a40-ActualArgSpec" ] }, { - "id": "0x55ef964f5358-ProcedureDesignator", + "id": "0x55c2dfb44358-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55ef964f5358-Name" + "Name": "0x55c2dfb44358-Name" }, { - "id": "0x55ef964f5358-Name", + "id": "0x55c2dfb44358-Name", "source": "ptr_proc" }, { - "id": "0x55ef964e4a40-ActualArgSpec", - "ActualArg": "0x55ef964e4a40-ActualArg" + "id": "0x55c2dfb33a40-ActualArgSpec", + "ActualArg": "0x55c2dfb33a40-ActualArg" }, { - "id": "0x55ef964e4a40-ActualArg", + "id": "0x55c2dfb33a40-ActualArg", "variantKey": "Expr", - "Expr": "0x55ef964e4950-Expr" + "Expr": "0x55c2dfb33950-Expr" }, { - "id": "0x55ef964e4950-Expr", + "id": "0x55c2dfb33950-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964e4970-LiteralConstant" + "LiteralConstant": "0x55c2dfb33970-LiteralConstant" }, { - "id": "0x55ef964e4970-LiteralConstant", + "id": "0x55c2dfb33970-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ef964e4970-IntLiteralConstant" + "IntLiteralConstant": "0x55c2dfb33970-IntLiteralConstant" }, { - "id": "0x55ef964e4970-IntLiteralConstant", + "id": "0x55c2dfb33970-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x55ef964e34d0-ExecutionPartConstruct", + "id": "0x55c2dfb324d0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ef964e34d0-ExecutableConstruct" + "ExecutableConstruct": "0x55c2dfb324d0-ExecutableConstruct" }, { - "id": "0x55ef964e34d0-ExecutableConstruct", + "id": "0x55c2dfb324d0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ef964e34d0-Statement" + "Statement": "0x55c2dfb324d0-Statement" }, { - "id": "0x55ef964e34d0-Statement", - "statement": "0x55ef964e34e0-ActionStmt", + "id": "0x55c2dfb324d0-Statement", + "statement": "0x55c2dfb324e0-ActionStmt", "source": "ptr_scalar => null()" }, { - "id": "0x55ef964e34e0-ActionStmt", + "id": "0x55c2dfb324e0-ActionStmt", "variantKey": "PointerAssignmentStmt", - "PointerAssignmentStmt": "0x55ef964e4e20-PointerAssignmentStmt" + "PointerAssignmentStmt": "0x55c2dfb33e20-PointerAssignmentStmt" }, { - "id": "0x55ef964e4e20-PointerAssignmentStmt", - "DataRef": "0x55ef964e4f20-DataRef", - "Bounds": "0x55ef964e4f00-Bounds", - "Expr": "0x55ef964e4e30-Expr", + "id": "0x55c2dfb33e20-PointerAssignmentStmt", + "DataRef": "0x55c2dfb33f20-DataRef", + "Bounds": "0x55c2dfb33f00-Bounds", + "Expr": "0x55c2dfb33e30-Expr", "variantKey": "BoundsSpec", "BoundsSpec": [] }, { - "id": "0x55ef964e4f20-DataRef", + "id": "0x55c2dfb33f20-DataRef", "variantKey": "Name", - "Name": "0x55ef964e4f20-Name" + "Name": "0x55c2dfb33f20-Name" }, { - "id": "0x55ef964e4f20-Name", + "id": "0x55c2dfb33f20-Name", "source": "ptr_scalar" }, { - "id": "0x55ef964e4f00-Bounds", + "id": "0x55c2dfb33f00-Bounds", "variantKey": "list" }, { - "id": "0x55ef964e4e30-Expr", + "id": "0x55c2dfb33e30-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55ef964ded90-FunctionReference" + "FunctionReference": "0x55c2dfb2dd90-FunctionReference" }, { - "id": "0x55ef964ded90-FunctionReference", - "Call": "0x55ef964ded90-Call" + "id": "0x55c2dfb2dd90-FunctionReference", + "Call": "0x55c2dfb2dd90-Call" }, { - "id": "0x55ef964ded90-Call", - "ProcedureDesignator": "0x55ef964deda8-ProcedureDesignator" + "id": "0x55c2dfb2dd90-Call", + "ProcedureDesignator": "0x55c2dfb2dda8-ProcedureDesignator" }, { - "id": "0x55ef964deda8-ProcedureDesignator", + "id": "0x55c2dfb2dda8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55ef964deda8-Name" + "Name": "0x55c2dfb2dda8-Name" }, { - "id": "0x55ef964deda8-Name", + "id": "0x55c2dfb2dda8-Name", "source": "null" }, { - "id": "0x55ef964e5090-ExecutionPartConstruct", + "id": "0x55c2dfb34090-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ef964e5090-ExecutableConstruct" + "ExecutableConstruct": "0x55c2dfb34090-ExecutableConstruct" }, { - "id": "0x55ef964e5090-ExecutableConstruct", + "id": "0x55c2dfb34090-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ef964e5090-Statement" + "Statement": "0x55c2dfb34090-Statement" }, { - "id": "0x55ef964e5090-Statement", - "statement": "0x55ef964e50a0-ActionStmt", + "id": "0x55c2dfb34090-Statement", + "statement": "0x55c2dfb340a0-ActionStmt", "source": "ptr_copy => null()" }, { - "id": "0x55ef964e50a0-ActionStmt", + "id": "0x55c2dfb340a0-ActionStmt", "variantKey": "PointerAssignmentStmt", - "PointerAssignmentStmt": "0x55ef964e4f50-PointerAssignmentStmt" + "PointerAssignmentStmt": "0x55c2dfb33f50-PointerAssignmentStmt" }, { - "id": "0x55ef964e4f50-PointerAssignmentStmt", - "DataRef": "0x55ef964e5050-DataRef", - "Bounds": "0x55ef964e5030-Bounds", - "Expr": "0x55ef964e4f60-Expr", + "id": "0x55c2dfb33f50-PointerAssignmentStmt", + "DataRef": "0x55c2dfb34050-DataRef", + "Bounds": "0x55c2dfb34030-Bounds", + "Expr": "0x55c2dfb33f60-Expr", "variantKey": "BoundsSpec", "BoundsSpec": [] }, { - "id": "0x55ef964e5050-DataRef", + "id": "0x55c2dfb34050-DataRef", "variantKey": "Name", - "Name": "0x55ef964e5050-Name" + "Name": "0x55c2dfb34050-Name" }, { - "id": "0x55ef964e5050-Name", + "id": "0x55c2dfb34050-Name", "source": "ptr_copy" }, { - "id": "0x55ef964e5030-Bounds", + "id": "0x55c2dfb34030-Bounds", "variantKey": "list" }, { - "id": "0x55ef964e4f60-Expr", + "id": "0x55c2dfb33f60-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55ef964e24b0-FunctionReference" + "FunctionReference": "0x55c2dfb314b0-FunctionReference" }, { - "id": "0x55ef964e24b0-FunctionReference", - "Call": "0x55ef964e24b0-Call" + "id": "0x55c2dfb314b0-FunctionReference", + "Call": "0x55c2dfb314b0-Call" }, { - "id": "0x55ef964e24b0-Call", - "ProcedureDesignator": "0x55ef964e24c8-ProcedureDesignator" + "id": "0x55c2dfb314b0-Call", + "ProcedureDesignator": "0x55c2dfb314c8-ProcedureDesignator" }, { - "id": "0x55ef964e24c8-ProcedureDesignator", + "id": "0x55c2dfb314c8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55ef964e24c8-Name" + "Name": "0x55c2dfb314c8-Name" }, { - "id": "0x55ef964e24c8-Name", + "id": "0x55c2dfb314c8-Name", "source": "null" }, { - "id": "0x55ef964e5220-ExecutionPartConstruct", + "id": "0x55c2dfb34220-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ef964e5220-ExecutableConstruct" + "ExecutableConstruct": "0x55c2dfb34220-ExecutableConstruct" }, { - "id": "0x55ef964e5220-ExecutableConstruct", + "id": "0x55c2dfb34220-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ef964e5220-Statement" + "Statement": "0x55c2dfb34220-Statement" }, { - "id": "0x55ef964e5220-Statement", - "statement": "0x55ef964e5230-ActionStmt", + "id": "0x55c2dfb34220-Statement", + "statement": "0x55c2dfb34230-ActionStmt", "source": "ptr_array => null()" }, { - "id": "0x55ef964e5230-ActionStmt", + "id": "0x55c2dfb34230-ActionStmt", "variantKey": "PointerAssignmentStmt", - "PointerAssignmentStmt": "0x55ef964e50e0-PointerAssignmentStmt" + "PointerAssignmentStmt": "0x55c2dfb340e0-PointerAssignmentStmt" }, { - "id": "0x55ef964e50e0-PointerAssignmentStmt", - "DataRef": "0x55ef964e51e0-DataRef", - "Bounds": "0x55ef964e51c0-Bounds", - "Expr": "0x55ef964e50f0-Expr", + "id": "0x55c2dfb340e0-PointerAssignmentStmt", + "DataRef": "0x55c2dfb341e0-DataRef", + "Bounds": "0x55c2dfb341c0-Bounds", + "Expr": "0x55c2dfb340f0-Expr", "variantKey": "BoundsSpec", "BoundsSpec": [] }, { - "id": "0x55ef964e51e0-DataRef", + "id": "0x55c2dfb341e0-DataRef", "variantKey": "Name", - "Name": "0x55ef964e51e0-Name" + "Name": "0x55c2dfb341e0-Name" }, { - "id": "0x55ef964e51e0-Name", + "id": "0x55c2dfb341e0-Name", "source": "ptr_array" }, { - "id": "0x55ef964e51c0-Bounds", + "id": "0x55c2dfb341c0-Bounds", "variantKey": "list" }, { - "id": "0x55ef964e50f0-Expr", + "id": "0x55c2dfb340f0-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55ef964dee00-FunctionReference" + "FunctionReference": "0x55c2dfb2de00-FunctionReference" }, { - "id": "0x55ef964dee00-FunctionReference", - "Call": "0x55ef964dee00-Call" + "id": "0x55c2dfb2de00-FunctionReference", + "Call": "0x55c2dfb2de00-Call" }, { - "id": "0x55ef964dee00-Call", - "ProcedureDesignator": "0x55ef964dee18-ProcedureDesignator" + "id": "0x55c2dfb2de00-Call", + "ProcedureDesignator": "0x55c2dfb2de18-ProcedureDesignator" }, { - "id": "0x55ef964dee18-ProcedureDesignator", + "id": "0x55c2dfb2de18-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55ef964dee18-Name" + "Name": "0x55c2dfb2de18-Name" }, { - "id": "0x55ef964dee18-Name", + "id": "0x55c2dfb2de18-Name", "source": "null" }, { - "id": "0x55ef964e53b0-ExecutionPartConstruct", + "id": "0x55c2dfb343b0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ef964e53b0-ExecutableConstruct" + "ExecutableConstruct": "0x55c2dfb343b0-ExecutableConstruct" }, { - "id": "0x55ef964e53b0-ExecutableConstruct", + "id": "0x55c2dfb343b0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ef964e53b0-Statement" + "Statement": "0x55c2dfb343b0-Statement" }, { - "id": "0x55ef964e53b0-Statement", - "statement": "0x55ef964e53c0-ActionStmt", + "id": "0x55c2dfb343b0-Statement", + "statement": "0x55c2dfb343c0-ActionStmt", "source": "ptr_slice => null()" }, { - "id": "0x55ef964e53c0-ActionStmt", + "id": "0x55c2dfb343c0-ActionStmt", "variantKey": "PointerAssignmentStmt", - "PointerAssignmentStmt": "0x55ef964e5270-PointerAssignmentStmt" + "PointerAssignmentStmt": "0x55c2dfb34270-PointerAssignmentStmt" }, { - "id": "0x55ef964e5270-PointerAssignmentStmt", - "DataRef": "0x55ef964e5370-DataRef", - "Bounds": "0x55ef964e5350-Bounds", - "Expr": "0x55ef964e5280-Expr", + "id": "0x55c2dfb34270-PointerAssignmentStmt", + "DataRef": "0x55c2dfb34370-DataRef", + "Bounds": "0x55c2dfb34350-Bounds", + "Expr": "0x55c2dfb34280-Expr", "variantKey": "BoundsSpec", "BoundsSpec": [] }, { - "id": "0x55ef964e5370-DataRef", + "id": "0x55c2dfb34370-DataRef", "variantKey": "Name", - "Name": "0x55ef964e5370-Name" + "Name": "0x55c2dfb34370-Name" }, { - "id": "0x55ef964e5370-Name", + "id": "0x55c2dfb34370-Name", "source": "ptr_slice" }, { - "id": "0x55ef964e5350-Bounds", + "id": "0x55c2dfb34350-Bounds", "variantKey": "list" }, { - "id": "0x55ef964e5280-Expr", + "id": "0x55c2dfb34280-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55ef964df6f0-FunctionReference" + "FunctionReference": "0x55c2dfb2e6f0-FunctionReference" }, { - "id": "0x55ef964df6f0-FunctionReference", - "Call": "0x55ef964df6f0-Call" + "id": "0x55c2dfb2e6f0-FunctionReference", + "Call": "0x55c2dfb2e6f0-Call" }, { - "id": "0x55ef964df6f0-Call", - "ProcedureDesignator": "0x55ef964df708-ProcedureDesignator" + "id": "0x55c2dfb2e6f0-Call", + "ProcedureDesignator": "0x55c2dfb2e708-ProcedureDesignator" }, { - "id": "0x55ef964df708-ProcedureDesignator", + "id": "0x55c2dfb2e708-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55ef964df708-Name" + "Name": "0x55c2dfb2e708-Name" }, { - "id": "0x55ef964df708-Name", + "id": "0x55c2dfb2e708-Name", "source": "null" }, { - "id": "0x55ef964e5540-ExecutionPartConstruct", + "id": "0x55c2dfb34540-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ef964e5540-ExecutableConstruct" + "ExecutableConstruct": "0x55c2dfb34540-ExecutableConstruct" }, { - "id": "0x55ef964e5540-ExecutableConstruct", + "id": "0x55c2dfb34540-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ef964e5540-Statement" + "Statement": "0x55c2dfb34540-Statement" }, { - "id": "0x55ef964e5540-Statement", - "statement": "0x55ef964e5550-ActionStmt", + "id": "0x55c2dfb34540-Statement", + "statement": "0x55c2dfb34550-ActionStmt", "source": "ptr_lbound => null()" }, { - "id": "0x55ef964e5550-ActionStmt", + "id": "0x55c2dfb34550-ActionStmt", "variantKey": "PointerAssignmentStmt", - "PointerAssignmentStmt": "0x55ef964e5400-PointerAssignmentStmt" + "PointerAssignmentStmt": "0x55c2dfb34400-PointerAssignmentStmt" }, { - "id": "0x55ef964e5400-PointerAssignmentStmt", - "DataRef": "0x55ef964e5500-DataRef", - "Bounds": "0x55ef964e54e0-Bounds", - "Expr": "0x55ef964e5410-Expr", + "id": "0x55c2dfb34400-PointerAssignmentStmt", + "DataRef": "0x55c2dfb34500-DataRef", + "Bounds": "0x55c2dfb344e0-Bounds", + "Expr": "0x55c2dfb34410-Expr", "variantKey": "BoundsSpec", "BoundsSpec": [] }, { - "id": "0x55ef964e5500-DataRef", + "id": "0x55c2dfb34500-DataRef", "variantKey": "Name", - "Name": "0x55ef964e5500-Name" + "Name": "0x55c2dfb34500-Name" }, { - "id": "0x55ef964e5500-Name", + "id": "0x55c2dfb34500-Name", "source": "ptr_lbound" }, { - "id": "0x55ef964e54e0-Bounds", + "id": "0x55c2dfb344e0-Bounds", "variantKey": "list" }, { - "id": "0x55ef964e5410-Expr", + "id": "0x55c2dfb34410-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55ef964df020-FunctionReference" + "FunctionReference": "0x55c2dfb2e020-FunctionReference" }, { - "id": "0x55ef964df020-FunctionReference", - "Call": "0x55ef964df020-Call" + "id": "0x55c2dfb2e020-FunctionReference", + "Call": "0x55c2dfb2e020-Call" }, { - "id": "0x55ef964df020-Call", - "ProcedureDesignator": "0x55ef964df038-ProcedureDesignator" + "id": "0x55c2dfb2e020-Call", + "ProcedureDesignator": "0x55c2dfb2e038-ProcedureDesignator" }, { - "id": "0x55ef964df038-ProcedureDesignator", + "id": "0x55c2dfb2e038-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55ef964df038-Name" + "Name": "0x55c2dfb2e038-Name" }, { - "id": "0x55ef964df038-Name", + "id": "0x55c2dfb2e038-Name", "source": "null" }, { - "id": "0x55ef964e56d0-ExecutionPartConstruct", + "id": "0x55c2dfb346d0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ef964e56d0-ExecutableConstruct" + "ExecutableConstruct": "0x55c2dfb346d0-ExecutableConstruct" }, { - "id": "0x55ef964e56d0-ExecutableConstruct", + "id": "0x55c2dfb346d0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ef964e56d0-Statement" + "Statement": "0x55c2dfb346d0-Statement" }, { - "id": "0x55ef964e56d0-Statement", - "statement": "0x55ef964e56e0-ActionStmt", + "id": "0x55c2dfb346d0-Statement", + "statement": "0x55c2dfb346e0-ActionStmt", "source": "ptr_bounds => null()" }, { - "id": "0x55ef964e56e0-ActionStmt", + "id": "0x55c2dfb346e0-ActionStmt", "variantKey": "PointerAssignmentStmt", - "PointerAssignmentStmt": "0x55ef964e5590-PointerAssignmentStmt" + "PointerAssignmentStmt": "0x55c2dfb34590-PointerAssignmentStmt" }, { - "id": "0x55ef964e5590-PointerAssignmentStmt", - "DataRef": "0x55ef964e5690-DataRef", - "Bounds": "0x55ef964e5670-Bounds", - "Expr": "0x55ef964e55a0-Expr", + "id": "0x55c2dfb34590-PointerAssignmentStmt", + "DataRef": "0x55c2dfb34690-DataRef", + "Bounds": "0x55c2dfb34670-Bounds", + "Expr": "0x55c2dfb345a0-Expr", "variantKey": "BoundsSpec", "BoundsSpec": [] }, { - "id": "0x55ef964e5690-DataRef", + "id": "0x55c2dfb34690-DataRef", "variantKey": "Name", - "Name": "0x55ef964e5690-Name" + "Name": "0x55c2dfb34690-Name" }, { - "id": "0x55ef964e5690-Name", + "id": "0x55c2dfb34690-Name", "source": "ptr_bounds" }, { - "id": "0x55ef964e5670-Bounds", + "id": "0x55c2dfb34670-Bounds", "variantKey": "list" }, { - "id": "0x55ef964e55a0-Expr", + "id": "0x55c2dfb345a0-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55ef964e2110-FunctionReference" + "FunctionReference": "0x55c2dfb31110-FunctionReference" }, { - "id": "0x55ef964e2110-FunctionReference", - "Call": "0x55ef964e2110-Call" + "id": "0x55c2dfb31110-FunctionReference", + "Call": "0x55c2dfb31110-Call" }, { - "id": "0x55ef964e2110-Call", - "ProcedureDesignator": "0x55ef964e2128-ProcedureDesignator" + "id": "0x55c2dfb31110-Call", + "ProcedureDesignator": "0x55c2dfb31128-ProcedureDesignator" }, { - "id": "0x55ef964e2128-ProcedureDesignator", + "id": "0x55c2dfb31128-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55ef964e2128-Name" + "Name": "0x55c2dfb31128-Name" }, { - "id": "0x55ef964e2128-Name", + "id": "0x55c2dfb31128-Name", "source": "null" }, { - "id": "0x55ef964e5860-ExecutionPartConstruct", + "id": "0x55c2dfb34860-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ef964e5860-ExecutableConstruct" + "ExecutableConstruct": "0x55c2dfb34860-ExecutableConstruct" }, { - "id": "0x55ef964e5860-ExecutableConstruct", + "id": "0x55c2dfb34860-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ef964e5860-Statement" + "Statement": "0x55c2dfb34860-Statement" }, { - "id": "0x55ef964e5860-Statement", - "statement": "0x55ef964e5870-ActionStmt", + "id": "0x55c2dfb34860-Statement", + "statement": "0x55c2dfb34870-ActionStmt", "source": "ptr_2d => null()" }, { - "id": "0x55ef964e5870-ActionStmt", + "id": "0x55c2dfb34870-ActionStmt", "variantKey": "PointerAssignmentStmt", - "PointerAssignmentStmt": "0x55ef964e5720-PointerAssignmentStmt" + "PointerAssignmentStmt": "0x55c2dfb34720-PointerAssignmentStmt" }, { - "id": "0x55ef964e5720-PointerAssignmentStmt", - "DataRef": "0x55ef964e5820-DataRef", - "Bounds": "0x55ef964e5800-Bounds", - "Expr": "0x55ef964e5730-Expr", + "id": "0x55c2dfb34720-PointerAssignmentStmt", + "DataRef": "0x55c2dfb34820-DataRef", + "Bounds": "0x55c2dfb34800-Bounds", + "Expr": "0x55c2dfb34730-Expr", "variantKey": "BoundsSpec", "BoundsSpec": [] }, { - "id": "0x55ef964e5820-DataRef", + "id": "0x55c2dfb34820-DataRef", "variantKey": "Name", - "Name": "0x55ef964e5820-Name" + "Name": "0x55c2dfb34820-Name" }, { - "id": "0x55ef964e5820-Name", + "id": "0x55c2dfb34820-Name", "source": "ptr_2d" }, { - "id": "0x55ef964e5800-Bounds", + "id": "0x55c2dfb34800-Bounds", "variantKey": "list" }, { - "id": "0x55ef964e5730-Expr", + "id": "0x55c2dfb34730-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55ef964e1fc0-FunctionReference" + "FunctionReference": "0x55c2dfb30fc0-FunctionReference" }, { - "id": "0x55ef964e1fc0-FunctionReference", - "Call": "0x55ef964e1fc0-Call" + "id": "0x55c2dfb30fc0-FunctionReference", + "Call": "0x55c2dfb30fc0-Call" }, { - "id": "0x55ef964e1fc0-Call", - "ProcedureDesignator": "0x55ef964e1fd8-ProcedureDesignator" + "id": "0x55c2dfb30fc0-Call", + "ProcedureDesignator": "0x55c2dfb30fd8-ProcedureDesignator" }, { - "id": "0x55ef964e1fd8-ProcedureDesignator", + "id": "0x55c2dfb30fd8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55ef964e1fd8-Name" + "Name": "0x55c2dfb30fd8-Name" }, { - "id": "0x55ef964e1fd8-Name", + "id": "0x55c2dfb30fd8-Name", "source": "null" }, { - "id": "0x55ef964e59f0-ExecutionPartConstruct", + "id": "0x55c2dfb349f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ef964e59f0-ExecutableConstruct" + "ExecutableConstruct": "0x55c2dfb349f0-ExecutableConstruct" }, { - "id": "0x55ef964e59f0-ExecutableConstruct", + "id": "0x55c2dfb349f0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ef964e59f0-Statement" + "Statement": "0x55c2dfb349f0-Statement" }, { - "id": "0x55ef964e59f0-Statement", - "statement": "0x55ef964e5a00-ActionStmt", + "id": "0x55c2dfb349f0-Statement", + "statement": "0x55c2dfb34a00-ActionStmt", "source": "ptr_proc => null()" }, { - "id": "0x55ef964e5a00-ActionStmt", + "id": "0x55c2dfb34a00-ActionStmt", "variantKey": "PointerAssignmentStmt", - "PointerAssignmentStmt": "0x55ef964e58b0-PointerAssignmentStmt" + "PointerAssignmentStmt": "0x55c2dfb348b0-PointerAssignmentStmt" }, { - "id": "0x55ef964e58b0-PointerAssignmentStmt", - "DataRef": "0x55ef964e59b0-DataRef", - "Bounds": "0x55ef964e5990-Bounds", - "Expr": "0x55ef964e58c0-Expr", + "id": "0x55c2dfb348b0-PointerAssignmentStmt", + "DataRef": "0x55c2dfb349b0-DataRef", + "Bounds": "0x55c2dfb34990-Bounds", + "Expr": "0x55c2dfb348c0-Expr", "variantKey": "BoundsSpec", "BoundsSpec": [] }, { - "id": "0x55ef964e59b0-DataRef", + "id": "0x55c2dfb349b0-DataRef", "variantKey": "Name", - "Name": "0x55ef964e59b0-Name" + "Name": "0x55c2dfb349b0-Name" }, { - "id": "0x55ef964e59b0-Name", + "id": "0x55c2dfb349b0-Name", "source": "ptr_proc" }, { - "id": "0x55ef964e5990-Bounds", + "id": "0x55c2dfb34990-Bounds", "variantKey": "list" }, { - "id": "0x55ef964e58c0-Expr", + "id": "0x55c2dfb348c0-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55ef964dc850-FunctionReference" + "FunctionReference": "0x55c2dfb2b850-FunctionReference" }, { - "id": "0x55ef964dc850-FunctionReference", - "Call": "0x55ef964dc850-Call" + "id": "0x55c2dfb2b850-FunctionReference", + "Call": "0x55c2dfb2b850-Call" }, { - "id": "0x55ef964dc850-Call", - "ProcedureDesignator": "0x55ef964dc868-ProcedureDesignator" + "id": "0x55c2dfb2b850-Call", + "ProcedureDesignator": "0x55c2dfb2b868-ProcedureDesignator" }, { - "id": "0x55ef964dc868-ProcedureDesignator", + "id": "0x55c2dfb2b868-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55ef964dc868-Name" + "Name": "0x55c2dfb2b868-Name" }, { - "id": "0x55ef964dc868-Name", + "id": "0x55c2dfb2b868-Name", "source": "null" }, { - "id": "0x55ef964f67a0-ExecutionPartConstruct", + "id": "0x55c2dfb457a0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ef964f67a0-ExecutableConstruct" + "ExecutableConstruct": "0x55c2dfb457a0-ExecutableConstruct" }, { - "id": "0x55ef964f67a0-ExecutableConstruct", + "id": "0x55c2dfb457a0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ef964f67a0-Statement" + "Statement": "0x55c2dfb457a0-Statement" }, { - "id": "0x55ef964f67a0-Statement", - "statement": "0x55ef964f67b0-ActionStmt", + "id": "0x55c2dfb457a0-Statement", + "statement": "0x55c2dfb457b0-ActionStmt", "source": "print *, \"9. Any pointers still associated?\", associated(ptr_scalar) .or. associated(ptr_proc)" }, { - "id": "0x55ef964f67b0-ActionStmt", + "id": "0x55c2dfb457b0-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x55ef964f6620-PrintStmt" + "PrintStmt": "0x55c2dfb45620-PrintStmt" }, { - "id": "0x55ef964f6620-PrintStmt", - "Format": "0x55ef964f6638-Format", + "id": "0x55c2dfb45620-PrintStmt", + "Format": "0x55c2dfb45638-Format", "OutputItem": [ - "0x55ef964f64d0-OutputItem", - "0x55ef964f63e0-OutputItem" + "0x55c2dfb454d0-OutputItem", + "0x55c2dfb453e0-OutputItem" ] }, { - "id": "0x55ef964f6638-Format", + "id": "0x55c2dfb45638-Format", "variantKey": "Star", - "Star": "0x55ef964f6638-Star" + "Star": "0x55c2dfb45638-Star" }, { - "id": "0x55ef964f6638-Star" + "id": "0x55c2dfb45638-Star" }, { - "id": "0x55ef964f64d0-OutputItem", + "id": "0x55c2dfb454d0-OutputItem", "variantKey": "Expr", - "Expr": "0x55ef964f64d0-Expr" + "Expr": "0x55c2dfb454d0-Expr" }, { - "id": "0x55ef964f64d0-Expr", + "id": "0x55c2dfb454d0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964f64f0-LiteralConstant" + "LiteralConstant": "0x55c2dfb454f0-LiteralConstant" }, { - "id": "0x55ef964f64f0-LiteralConstant", + "id": "0x55c2dfb454f0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55ef964f64f0-CharLiteralConstant" + "CharLiteralConstant": "0x55c2dfb454f0-CharLiteralConstant" }, { - "id": "0x55ef964f64f0-CharLiteralConstant", + "id": "0x55c2dfb454f0-CharLiteralConstant", "string": "9. Any pointers still associated?" }, { - "id": "0x55ef964f63e0-OutputItem", + "id": "0x55c2dfb453e0-OutputItem", "variantKey": "Expr", - "Expr": "0x55ef964f63e0-Expr" + "Expr": "0x55c2dfb453e0-Expr" }, { - "id": "0x55ef964f63e0-Expr", + "id": "0x55c2dfb453e0-Expr", "variantKey": "OR", - "OR": "0x55ef964f6400-OR" + "OR": "0x55c2dfb45400-OR" }, { - "id": "0x55ef964f6400-OR", - "left": "0x55ef964f62f0-Expr", - "right": "0x55ef964f6210-Expr", + "id": "0x55c2dfb45400-OR", + "left": "0x55c2dfb452f0-Expr", + "right": "0x55c2dfb45210-Expr", "op": "OR" }, { - "id": "0x55ef964f62f0-Expr", + "id": "0x55c2dfb452f0-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55ef964e1260-FunctionReference" + "FunctionReference": "0x55c2dfb30260-FunctionReference" }, { - "id": "0x55ef964e1260-FunctionReference", - "Call": "0x55ef964e1260-Call" + "id": "0x55c2dfb30260-FunctionReference", + "Call": "0x55c2dfb30260-Call" }, { - "id": "0x55ef964e1260-Call", - "ProcedureDesignator": "0x55ef964e1278-ProcedureDesignator", + "id": "0x55c2dfb30260-Call", + "ProcedureDesignator": "0x55c2dfb30278-ProcedureDesignator", "ActualArgSpec": [ - "0x55ef964e5c50-ActualArgSpec" + "0x55c2dfb34c50-ActualArgSpec" ] }, { - "id": "0x55ef964e1278-ProcedureDesignator", + "id": "0x55c2dfb30278-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55ef964e1278-Name" + "Name": "0x55c2dfb30278-Name" }, { - "id": "0x55ef964e1278-Name", + "id": "0x55c2dfb30278-Name", "source": "associated" }, { - "id": "0x55ef964e5c50-ActualArgSpec", - "ActualArg": "0x55ef964e5c50-ActualArg" + "id": "0x55c2dfb34c50-ActualArgSpec", + "ActualArg": "0x55c2dfb34c50-ActualArg" }, { - "id": "0x55ef964e5c50-ActualArg", + "id": "0x55c2dfb34c50-ActualArg", "variantKey": "Expr", - "Expr": "0x55ef964e5b00-Expr" + "Expr": "0x55c2dfb34b00-Expr" }, { - "id": "0x55ef964e5b00-Expr", + "id": "0x55c2dfb34b00-Expr", "variantKey": "Designator", - "Designator": "0x55ef964e5aa0-Designator" + "Designator": "0x55c2dfb34aa0-Designator" }, { - "id": "0x55ef964e5aa0-Designator", + "id": "0x55c2dfb34aa0-Designator", "variantKey": "DataRef", - "DataRef": "0x55ef964e5ab0-DataRef" + "DataRef": "0x55c2dfb34ab0-DataRef" }, { - "id": "0x55ef964e5ab0-DataRef", + "id": "0x55c2dfb34ab0-DataRef", "variantKey": "Name", - "Name": "0x55ef964e5ab0-Name" + "Name": "0x55c2dfb34ab0-Name" }, { - "id": "0x55ef964e5ab0-Name", + "id": "0x55c2dfb34ab0-Name", "source": "ptr_scalar" }, { - "id": "0x55ef964f6210-Expr", + "id": "0x55c2dfb45210-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55ef964e62e0-FunctionReference" + "FunctionReference": "0x55c2dfb352e0-FunctionReference" }, { - "id": "0x55ef964e62e0-FunctionReference", - "Call": "0x55ef964e62e0-Call" + "id": "0x55c2dfb352e0-FunctionReference", + "Call": "0x55c2dfb352e0-Call" }, { - "id": "0x55ef964e62e0-Call", - "ProcedureDesignator": "0x55ef964e62f8-ProcedureDesignator", + "id": "0x55c2dfb352e0-Call", + "ProcedureDesignator": "0x55c2dfb352f8-ProcedureDesignator", "ActualArgSpec": [ - "0x55ef964e6170-ActualArgSpec" + "0x55c2dfb35170-ActualArgSpec" ] }, { - "id": "0x55ef964e62f8-ProcedureDesignator", + "id": "0x55c2dfb352f8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55ef964e62f8-Name" + "Name": "0x55c2dfb352f8-Name" }, { - "id": "0x55ef964e62f8-Name", + "id": "0x55c2dfb352f8-Name", "source": "associated" }, { - "id": "0x55ef964e6170-ActualArgSpec", - "ActualArg": "0x55ef964e6170-ActualArg" + "id": "0x55c2dfb35170-ActualArgSpec", + "ActualArg": "0x55c2dfb35170-ActualArg" }, { - "id": "0x55ef964e6170-ActualArg", + "id": "0x55c2dfb35170-ActualArg", "variantKey": "Expr", - "Expr": "0x55ef964e5f40-Expr" + "Expr": "0x55c2dfb34f40-Expr" }, { - "id": "0x55ef964e5f40-Expr", + "id": "0x55c2dfb34f40-Expr", "variantKey": "Designator", - "Designator": "0x55ef964e5e70-Designator" + "Designator": "0x55c2dfb34e70-Designator" }, { - "id": "0x55ef964e5e70-Designator", + "id": "0x55c2dfb34e70-Designator", "variantKey": "DataRef", - "DataRef": "0x55ef964e5e80-DataRef" + "DataRef": "0x55c2dfb34e80-DataRef" }, { - "id": "0x55ef964e5e80-DataRef", + "id": "0x55c2dfb34e80-DataRef", "variantKey": "Name", - "Name": "0x55ef964e5e80-Name" + "Name": "0x55c2dfb34e80-Name" }, { - "id": "0x55ef964e5e80-Name", + "id": "0x55c2dfb34e80-Name", "source": "ptr_proc" }, { - "id": "0x55ef964ef1a0-InternalSubprogramPart", - "Statement": "0x55ef964ef1b8-Statement", + "id": "0x55c2dfb3e1a0-InternalSubprogramPart", + "Statement": "0x55c2dfb3e1b8-Statement", "InternalSubprogram": [ - "0x55ef964eb530-InternalSubprogram" + "0x55c2dfb3a530-InternalSubprogram" ] }, { - "id": "0x55ef964ef1b8-Statement", - "statement": "0x55ef964ef1c8-ContainsStmt", + "id": "0x55c2dfb3e1b8-Statement", + "statement": "0x55c2dfb3e1c8-ContainsStmt", "source": "contains" }, { - "id": "0x55ef964ef1c8-ContainsStmt" + "id": "0x55c2dfb3e1c8-ContainsStmt" }, { - "id": "0x55ef964eb530-InternalSubprogram", + "id": "0x55c2dfb3a530-InternalSubprogram", "variantKey": "FunctionSubprogram", - "FunctionSubprogram": "0x55ef964f67f0-FunctionSubprogram" + "FunctionSubprogram": "0x55c2dfb457f0-FunctionSubprogram" }, { - "id": "0x55ef964f67f0-FunctionSubprogram", - "Statement": "0x55ef964f6938-Statement", - "SpecificationPart": "0x55ef964f6890-SpecificationPart", - "ExecutionPart": "0x55ef964f6878-ExecutionPart", - "Statement": "0x55ef964f67f0-Statement" + "id": "0x55c2dfb457f0-FunctionSubprogram", + "Statement": "0x55c2dfb45938-Statement", + "SpecificationPart": "0x55c2dfb45890-SpecificationPart", + "ExecutionPart": "0x55c2dfb45878-ExecutionPart", + "Statement": "0x55c2dfb457f0-Statement" }, { - "id": "0x55ef964f6938-Statement", - "statement": "0x55ef964f6948-FunctionStmt", + "id": "0x55c2dfb45938-Statement", + "statement": "0x55c2dfb45948-FunctionStmt", "source": "function double_val(x) result(res)" }, { - "id": "0x55ef964f6948-FunctionStmt", + "id": "0x55c2dfb45948-FunctionStmt", "prefix": [], - "functionName": "0x55ef964f69a8-Name", + "functionName": "0x55c2dfb459a8-Name", "paramNames": [ - "0x55ef964eb3a0-Name" + "0x55c2dfb3a3a0-Name" ], - "suffix": "0x55ef964f6948-Suffix" + "suffix": "0x55c2dfb45948-Suffix" }, { - "id": "0x55ef964f69a8-Name", + "id": "0x55c2dfb459a8-Name", "source": "double_val" }, { - "id": "0x55ef964eb3a0-Name", + "id": "0x55c2dfb3a3a0-Name", "source": "x" }, { - "id": "0x55ef964f6948-Suffix", - "resultName": "0x55ef964f6968-Name" + "id": "0x55c2dfb45948-Suffix", + "resultName": "0x55c2dfb45968-Name" }, { - "id": "0x55ef964f6968-Name", + "id": "0x55c2dfb45968-Name", "source": "res" }, { - "id": "0x55ef964f6890-SpecificationPart", - "ImplicitPart": "0x55ef964f68a8-ImplicitPart", + "id": "0x55c2dfb45890-SpecificationPart", + "ImplicitPart": "0x55c2dfb458a8-ImplicitPart", "DeclarationConstruct": [ - "0x55ef964e5a50-DeclarationConstruct", - "0x55ef964e5bf0-DeclarationConstruct" + "0x55c2dfb34a50-DeclarationConstruct", + "0x55c2dfb34bf0-DeclarationConstruct" ] }, { - "id": "0x55ef964f68a8-ImplicitPart" + "id": "0x55c2dfb458a8-ImplicitPart" }, { - "id": "0x55ef964e5a50-DeclarationConstruct", + "id": "0x55c2dfb34a50-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55ef964e5a50-SpecificationConstruct" + "SpecificationConstruct": "0x55c2dfb34a50-SpecificationConstruct" }, { - "id": "0x55ef964e5a50-SpecificationConstruct", + "id": "0x55c2dfb34a50-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55ef964e5a50-Statement" + "Statement": "0x55c2dfb34a50-Statement" }, { - "id": "0x55ef964e5a50-Statement", - "statement": "0x55ef964f8120-TypeDeclarationStmt", + "id": "0x55c2dfb34a50-Statement", + "statement": "0x55c2dfb47120-TypeDeclarationStmt", "source": "integer, intent(in) :: x" }, { - "id": "0x55ef964f8120-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55ef964f8150-DeclarationTypeSpec", + "id": "0x55c2dfb47120-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55c2dfb47150-DeclarationTypeSpec", "AttrSpec": [ - "0x55ef964e43f0-AttrSpec" + "0x55c2dfb333f0-AttrSpec" ], "EntityDecl": [ - "0x55ef964f8720-EntityDecl" + "0x55c2dfb47720-EntityDecl" ] }, { - "id": "0x55ef964f8150-DeclarationTypeSpec", + "id": "0x55c2dfb47150-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55ef964f8150-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55c2dfb47150-IntrinsicTypeSpec" }, { - "id": "0x55ef964f8150-IntrinsicTypeSpec", + "id": "0x55c2dfb47150-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55ef964f8150-IntegerTypeSpec" + "IntegerTypeSpec": "0x55c2dfb47150-IntegerTypeSpec" }, { - "id": "0x55ef964f8150-IntegerTypeSpec" + "id": "0x55c2dfb47150-IntegerTypeSpec" }, { - "id": "0x55ef964e43f0-AttrSpec", + "id": "0x55c2dfb333f0-AttrSpec", "variantKey": "IntentSpec", - "IntentSpec": "0x55ef964e43f0-IntentSpec" + "IntentSpec": "0x55c2dfb333f0-IntentSpec" }, { - "id": "0x55ef964e43f0-IntentSpec", - "Intent": "0x55ef964e43f0-Intent", + "id": "0x55c2dfb333f0-IntentSpec", + "Intent": "0x55c2dfb333f0-Intent", "intent": "In" }, { - "id": "0x55ef964e43f0-Intent", + "id": "0x55c2dfb333f0-Intent", "disambiguation": "Fortran::parser::IntentSpec::Intent", "value": "In" }, { - "id": "0x55ef964f8720-EntityDecl", - "Name": "0x55ef964f87d8-Name" + "id": "0x55c2dfb47720-EntityDecl", + "Name": "0x55c2dfb477d8-Name" }, { - "id": "0x55ef964f87d8-Name", + "id": "0x55c2dfb477d8-Name", "source": "x" }, { - "id": "0x55ef964e5bf0-DeclarationConstruct", + "id": "0x55c2dfb34bf0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55ef964e5bf0-SpecificationConstruct" + "SpecificationConstruct": "0x55c2dfb34bf0-SpecificationConstruct" }, { - "id": "0x55ef964e5bf0-SpecificationConstruct", + "id": "0x55c2dfb34bf0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55ef964e5bf0-Statement" + "Statement": "0x55c2dfb34bf0-Statement" }, { - "id": "0x55ef964e5bf0-Statement", - "statement": "0x55ef964f6a30-TypeDeclarationStmt", + "id": "0x55c2dfb34bf0-Statement", + "statement": "0x55c2dfb45a30-TypeDeclarationStmt", "source": "integer :: res" }, { - "id": "0x55ef964f6a30-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55ef964f6a60-DeclarationTypeSpec", + "id": "0x55c2dfb45a30-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55c2dfb45a60-DeclarationTypeSpec", "EntityDecl": [ - "0x55ef964de8e0-EntityDecl" + "0x55c2dfb2d8e0-EntityDecl" ] }, { - "id": "0x55ef964f6a60-DeclarationTypeSpec", + "id": "0x55c2dfb45a60-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55ef964f6a60-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55c2dfb45a60-IntrinsicTypeSpec" }, { - "id": "0x55ef964f6a60-IntrinsicTypeSpec", + "id": "0x55c2dfb45a60-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55ef964f6a60-IntegerTypeSpec" + "IntegerTypeSpec": "0x55c2dfb45a60-IntegerTypeSpec" }, { - "id": "0x55ef964f6a60-IntegerTypeSpec" + "id": "0x55c2dfb45a60-IntegerTypeSpec" }, { - "id": "0x55ef964de8e0-EntityDecl", - "Name": "0x55ef964de998-Name" + "id": "0x55c2dfb2d8e0-EntityDecl", + "Name": "0x55c2dfb2d998-Name" }, { - "id": "0x55ef964de998-Name", + "id": "0x55c2dfb2d998-Name", "source": "res" }, { - "id": "0x55ef964f6878-ExecutionPart", + "id": "0x55c2dfb45878-ExecutionPart", "ExecutionPartConstruct": [ - "0x55ef964e1f70-ExecutionPartConstruct" + "0x55c2dfb30f70-ExecutionPartConstruct" ] }, { - "id": "0x55ef964f6878-ExecutionPartConstruct" + "id": "0x55c2dfb45878-ExecutionPartConstruct" }, { - "id": "0x55ef964e1f70-ExecutionPartConstruct", + "id": "0x55c2dfb30f70-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ef964e1f70-ExecutableConstruct" + "ExecutableConstruct": "0x55c2dfb30f70-ExecutableConstruct" }, { - "id": "0x55ef964e1f70-ExecutableConstruct", + "id": "0x55c2dfb30f70-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ef964e1f70-Statement" + "Statement": "0x55c2dfb30f70-Statement" }, { - "id": "0x55ef964e1f70-Statement", - "statement": "0x55ef964e1f80-ActionStmt", + "id": "0x55c2dfb30f70-Statement", + "statement": "0x55c2dfb30f80-ActionStmt", "source": "res = x * 2" }, { - "id": "0x55ef964e1f80-ActionStmt", + "id": "0x55c2dfb30f80-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55ef964f6ca0-AssignmentStmt" + "AssignmentStmt": "0x55c2dfb45ca0-AssignmentStmt" }, { - "id": "0x55ef964f6ca0-AssignmentStmt", - "Variable": "0x55ef964f6d80-Variable", - "Expr": "0x55ef964f6cb0-Expr" + "id": "0x55c2dfb45ca0-AssignmentStmt", + "Variable": "0x55c2dfb45d80-Variable", + "Expr": "0x55c2dfb45cb0-Expr" }, { - "id": "0x55ef964f6d80-Variable", + "id": "0x55c2dfb45d80-Variable", "variantKey": "Designator", - "Designator": "0x55ef964de670-Designator" + "Designator": "0x55c2dfb2d670-Designator" }, { - "id": "0x55ef964de670-Designator", + "id": "0x55c2dfb2d670-Designator", "variantKey": "DataRef", - "DataRef": "0x55ef964de680-DataRef" + "DataRef": "0x55c2dfb2d680-DataRef" }, { - "id": "0x55ef964de680-DataRef", + "id": "0x55c2dfb2d680-DataRef", "variantKey": "Name", - "Name": "0x55ef964de680-Name" + "Name": "0x55c2dfb2d680-Name" }, { - "id": "0x55ef964de680-Name", + "id": "0x55c2dfb2d680-Name", "source": "res" }, { - "id": "0x55ef964f6cb0-Expr", + "id": "0x55c2dfb45cb0-Expr", "variantKey": "Multiply", - "Multiply": "0x55ef964f6cd0-Multiply" + "Multiply": "0x55c2dfb45cd0-Multiply" }, { - "id": "0x55ef964f6cd0-Multiply", - "left": "0x55ef964f6bc0-Expr", - "right": "0x55ef964df350-Expr", + "id": "0x55c2dfb45cd0-Multiply", + "left": "0x55c2dfb45bc0-Expr", + "right": "0x55c2dfb2e350-Expr", "op": "MULTIPLY" }, { - "id": "0x55ef964f6bc0-Expr", + "id": "0x55c2dfb45bc0-Expr", "variantKey": "Designator", - "Designator": "0x55ef964e1d40-Designator" + "Designator": "0x55c2dfb30d40-Designator" }, { - "id": "0x55ef964e1d40-Designator", + "id": "0x55c2dfb30d40-Designator", "variantKey": "DataRef", - "DataRef": "0x55ef964e1d50-DataRef" + "DataRef": "0x55c2dfb30d50-DataRef" }, { - "id": "0x55ef964e1d50-DataRef", + "id": "0x55c2dfb30d50-DataRef", "variantKey": "Name", - "Name": "0x55ef964e1d50-Name" + "Name": "0x55c2dfb30d50-Name" }, { - "id": "0x55ef964e1d50-Name", + "id": "0x55c2dfb30d50-Name", "source": "x" }, { - "id": "0x55ef964df350-Expr", + "id": "0x55c2dfb2e350-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ef964df370-LiteralConstant" + "LiteralConstant": "0x55c2dfb2e370-LiteralConstant" }, { - "id": "0x55ef964df370-LiteralConstant", + "id": "0x55c2dfb2e370-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ef964df370-IntLiteralConstant" + "IntLiteralConstant": "0x55c2dfb2e370-IntLiteralConstant" }, { - "id": "0x55ef964df370-IntLiteralConstant", + "id": "0x55c2dfb2e370-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x55ef964f67f0-Statement", - "statement": "0x55ef964f6800-EndFunctionStmt", + "id": "0x55c2dfb457f0-Statement", + "statement": "0x55c2dfb45800-EndFunctionStmt", "source": "end function double_val" }, { - "id": "0x55ef964f6800-EndFunctionStmt", - "Name": "0x55ef964f6800-Name" + "id": "0x55c2dfb45800-EndFunctionStmt", + "Name": "0x55c2dfb45800-Name" }, { - "id": "0x55ef964f6800-Name", + "id": "0x55c2dfb45800-Name", "source": "double_val" }, { - "id": "0x55ef964ef160-Statement", - "statement": "0x55ef964ef170-EndProgramStmt", + "id": "0x55c2dfb3e160-Statement", + "statement": "0x55c2dfb3e170-EndProgramStmt", "source": "end program POINTER_ASSIGN" }, { - "id": "0x55ef964ef170-EndProgramStmt", - "Name": "0x55ef964ef170-Name" + "id": "0x55c2dfb3e170-EndProgramStmt", + "Name": "0x55c2dfb3e170-Name" }, { - "id": "0x55ef964ef170-Name", + "id": "0x55c2dfb3e170-Name", "source": "POINTER_ASSIGN" } ], "comments": [ { "text": " Targets", - "stmtId": "0x55ef964bf110-Statement", + "stmtId": "0x55c2dfb0e110-Statement", "trailing": false }, { "text": " Pointers", - "stmtId": "0x55ef964f5890-Statement", + "stmtId": "0x55c2dfb44890-Statement", "trailing": false }, { "text": " Procedure Pointer", - "stmtId": "0x55ef964de598-Statement", + "stmtId": "0x55c2dfb2d598-Statement", "trailing": false }, { "text": " 1. Scalar pointer assignment", - "stmtId": "0x55ef964f4a50-Statement", + "stmtId": "0x55c2dfb43a50-Statement", "trailing": false }, { "text": " 2. Pointer-to-pointer assignment", - "stmtId": "0x55ef964dfa70-Statement", + "stmtId": "0x55c2dfb2ea70-Statement", "trailing": false }, { "text": " 3. Whole array assignment", - "stmtId": "0x55ef964e0000-Statement", + "stmtId": "0x55c2dfb2f000-Statement", "trailing": false }, { "text": " 4. Array section / slice assignment", - "stmtId": "0x55ef964e0860-Statement", + "stmtId": "0x55c2dfb2f860-Statement", "trailing": false }, { "text": " 5. Lower bound remapping", - "stmtId": "0x55ef964e0f20-Statement", + "stmtId": "0x55c2dfb2ff20-Statement", "trailing": false }, { "text": " 6. Full bounds remapping (same rank)", - "stmtId": "0x55ef964f54b0-Statement", + "stmtId": "0x55c2dfb444b0-Statement", "trailing": false }, { "text": " 7. Rank remapping (1D contiguous target to 2D pointer)", - "stmtId": "0x55ef964e2270-Statement", + "stmtId": "0x55c2dfb31270-Statement", "trailing": false }, { "text": " 8. Procedure pointer assignment", - "stmtId": "0x55ef964e3390-Statement", + "stmtId": "0x55c2dfb32390-Statement", "trailing": false }, { "text": " 9. Nullification pointer assignments", - "stmtId": "0x55ef964e34d0-Statement", + "stmtId": "0x55c2dfb324d0-Statement", "trailing": false } ], diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java index 7727fca3..e65fc432 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -62,6 +62,10 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.EndDoStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.pointerassign.DoubleBound; +import pt.up.fe.specs.fortran.ast.nodes.stmt.pointerassign.DoubleBoundPointerAssignStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.pointerassign.PointerAssignStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.pointerassign.SingleBoundPointerAssignStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.CaseBlock; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.CaseConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.EndSelectStmt; @@ -243,6 +247,10 @@ public class FlangToClass { .map(FlangName.ABSTRACT, AbstractInterfaceStmt.class)); NAME_TO_MAPPER.put(FlangName.END_INTERFACE_STMT, ClassMapper.always(EndInterfaceStmt.class)); NAME_TO_MAPPER.put(FlangName.PROCEDURE_DECLARATION_STMT, ClassMapper.always(ProcDeclStmt.class)); + NAME_TO_MAPPER.put(FlangName.POINTER_ASSIGNMENT_STMT, ClassMapper.caseFor(PointerAssignStmt.class) + .map(FlangName.BOUNDS_SPEC, SingleBoundPointerAssignStmt.class) + .map(FlangName.BOUNDS_REMAPPING, DoubleBoundPointerAssignStmt.class)); + NAME_TO_MAPPER.put(FlangName.BOUNDS_REMAPPING, ClassMapper.always(DoubleBound.class)); /// Variables //NAME_TO_CLASS.put(FlangName.DATA_REF, DataRef.class); // TODO(Process-ing): Improve this diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java index 74b2cdc9..72d06b42 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/Nodes.java @@ -63,6 +63,9 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.EndDoStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.pointerassign.DoubleBound; +import pt.up.fe.specs.fortran.ast.nodes.stmt.pointerassign.DoubleBoundPointerAssignStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.pointerassign.SingleBoundPointerAssignStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.CaseBlock; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.CaseConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.EndSelectStmt; @@ -237,6 +240,9 @@ public Nodes(FortranJsonResult data) { processors.put(AbstractInterfaceStmt.class, s::abstractInterfaceStmt); processors.put(EndInterfaceStmt.class, s::endInterfaceStmt); processors.put(ProcDeclStmt.class, s::procDeclStmt); + processors.put(SingleBoundPointerAssignStmt.class, s::singleBoundPointerAssignStmt); + processors.put(DoubleBoundPointerAssignStmt.class, s::doubleBoundPointerAssignStmt); + processors.put(DoubleBound.class, s::doubleBound); var e = new ExprProcessors(data); processors.put(StringLiteral.class, e::stringLiteral); diff --git a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 5c11b582..61f6177a 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java @@ -33,6 +33,9 @@ import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoConstruct; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.DoStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.loop.EndDoStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.pointerassign.DoubleBound; +import pt.up.fe.specs.fortran.ast.nodes.stmt.pointerassign.DoubleBoundPointerAssignStmt; +import pt.up.fe.specs.fortran.ast.nodes.stmt.pointerassign.SingleBoundPointerAssignStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.*; import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.DataComponentDefStmt; import pt.up.fe.specs.fortran.ast.nodes.stmt.typedef.DerivedTypeStmt; @@ -866,4 +869,38 @@ public void procDeclStmt(ProcDeclStmt procDeclStmt) { var procDecls = getChildren(procDeclStmt, FlangName.PROC_DECL); procDeclStmt.addChildren(procDecls); } + + public void singleBoundPointerAssignStmt(SingleBoundPointerAssignStmt pointerAssignStmt) { + stmt(pointerAssignStmt); + + var object = getChild(pointerAssignStmt, FlangName.DATA_REF); + pointerAssignStmt.addChild(object); + + var bounds = getChildren(pointerAssignStmt, FlangName.BOUNDS_SPEC); + pointerAssignStmt.addChildren(bounds); + + var target = getChild(pointerAssignStmt, FlangName.EXPR); + pointerAssignStmt.addChild(target); + } + + public void doubleBoundPointerAssignStmt(DoubleBoundPointerAssignStmt pointerAssignStmt) { + stmt(pointerAssignStmt); + + var object = getChild(pointerAssignStmt, FlangName.DATA_REF); + pointerAssignStmt.addChild(object); + + var bounds = getChildren(pointerAssignStmt, FlangName.BOUNDS_REMAPPING); + pointerAssignStmt.addChildren(bounds); + + var target = getChild(pointerAssignStmt, FlangName.EXPR); + pointerAssignStmt.addChild(target); + } + + public void doubleBound(DoubleBound doubleBound) { + var lower = getChild(doubleBound, "lower"); + doubleBound.addChild(lower); + + var upper = getChild(doubleBound, "upper"); + doubleBound.addChild(upper); + } } From 1ce16d8f90a3ccb6a24ee2d71dfb0c0abdca3bb0 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 24 Aug 2026 16:29:35 +0100 Subject: [PATCH 260/260] Fix code generation for pointer assignment statement with single bounds --- .../nodes/stmt/pointerassign/SingleBoundPointerAssignStmt.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/pointerassign/SingleBoundPointerAssignStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/pointerassign/SingleBoundPointerAssignStmt.java index a04c3f44..adc26c2b 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/pointerassign/SingleBoundPointerAssignStmt.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/pointerassign/SingleBoundPointerAssignStmt.java @@ -26,7 +26,7 @@ public String getStmtCode() { var bounds = getBounds(); var boundsCode = bounds.isEmpty() ? "" : bounds.stream() - .map(Expr::getCode) + .map(bound -> bound.getCode() + ":") .collect(Collectors.joining(", ", "(", ")")); return objectCode + boundsCode + " => " + targetCode;